.include "asm/macros.inc" .include "constants/constants.inc" .syntax unified .text thumb_func_start walda_maybe walda_maybe: @ 81D99E4 push {r4,lr} sub sp, 0x8 ldr r4, =gStringVar2 bl sub_80D2548 adds r1, r0, 0 adds r0, r4, 0 bl StringCopy movs r0, 0 str r0, [sp] ldr r0, =sub_81D9A1C str r0, [sp, 0x4] movs r0, 0x4 adds r1, r4, 0 movs r2, 0 movs r3, 0 bl do_choose_name_or_words_screen add sp, 0x8 pop {r4} pop {r0} bx r0 .pool thumb_func_end walda_maybe thumb_func_start sub_81D9A1C sub_81D9A1C: @ 81D9A1C push {r4,r5,lr} ldr r4, =gSpecialVar_0x8004 ldr r5, =gStringVar2 adds r0, r5, 0 bl sub_81D9A98 strh r0, [r4] ldrh r0, [r4] cmp r0, 0x1 beq _081D9A68 cmp r0, 0x1 bgt _081D9A44 cmp r0, 0 beq _081D9A62 b _081D9A68 .pool _081D9A44: cmp r0, 0x2 bne _081D9A68 bl sub_80D2578 cmp r0, 0 beq _081D9A5C ldr r0, =gUnknown_085EE49A bl sub_80D255C b _081D9A68 .pool _081D9A5C: movs r0, 0x1 strh r0, [r4] b _081D9A68 _081D9A62: adds r0, r5, 0 bl sub_80D255C _081D9A68: ldr r4, =gStringVar1 bl sub_80D2548 adds r1, r0, 0 adds r0, r4, 0 bl StringCopy ldr r1, =gUnknown_03005DAC ldr r0, =sub_80AF168 str r0, [r1] ldr r0, =c2_exit_to_overworld_2_switch bl SetMainCallback2 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81D9A1C thumb_func_start sub_81D9A98 sub_81D9A98: @ 81D9A98 push {r4,lr} adds r4, r0, 0 ldrb r0, [r4] cmp r0, 0xFF bne _081D9AA6 movs r0, 0x2 b _081D9ABC _081D9AA6: bl sub_80D2548 adds r1, r0, 0 adds r0, r4, 0 bl StringCompare cmp r0, 0 beq _081D9ABA movs r0, 0 b _081D9ABC _081D9ABA: movs r0, 0x1 _081D9ABC: pop {r4} pop {r1} bx r1 thumb_func_end sub_81D9A98 thumb_func_start sub_81D9AC4 sub_81D9AC4: @ 81D9AC4 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x10 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] adds r0, 0xA bl ReadUnalignedWord adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldr r0, =gScriptResult mov r8, r0 bl sub_80D2548 mov r7, sp adds r7, 0xA add r6, sp, 0xC mov r5, sp adds r5, 0xD str r4, [sp] str r0, [sp, 0x4] add r0, sp, 0x8 adds r1, r7, 0 adds r2, r6, 0 adds r3, r5, 0 bl sub_81D9B68 mov r1, r8 strh r0, [r1] lsls r0, 16 cmp r0, 0 beq _081D9B1E ldrb r0, [r5] bl sub_80D24BC ldrb r0, [r6] bl sub_80D24F0 add r0, sp, 0x8 ldrh r0, [r0] ldrh r1, [r7] bl sub_80D2524 _081D9B1E: mov r1, r8 ldrh r0, [r1] bl sub_80D2480 mov r1, r8 ldrb r0, [r1] add sp, 0x10 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_81D9AC4 thumb_func_start sub_81D9B40 sub_81D9B40: @ 81D9B40 push {lr} lsls r0, 24 lsrs r2, r0, 24 movs r1, 0 ldr r3, =gUnknown_0862AD14 _081D9B4A: adds r0, r1, r3 ldrb r0, [r0] cmp r0, r2 bne _081D9B5C lsls r0, r1, 24 lsrs r0, 24 b _081D9B64 .pool _081D9B5C: adds r1, 0x1 cmp r1, 0x1F bls _081D9B4A movs r0, 0x20 _081D9B64: pop {r1} bx r1 thumb_func_end sub_81D9B40 thumb_func_start sub_81D9B68 sub_81D9B68: @ 81D9B68 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x2C mov r10, r0 str r1, [sp, 0x20] str r2, [sp, 0x24] str r3, [sp, 0x28] ldr r0, [sp, 0x4C] ldr r5, [sp, 0x50] lsls r0, 16 lsrs r0, 16 mov r9, r0 adds r0, r5, 0 bl StringLength lsls r0, 16 lsrs r0, 16 cmp r0, 0xF bne _081D9C7E movs r4, 0 add r7, sp, 0x10 _081D9B98: adds r0, r5, r4 ldrb r0, [r0] bl sub_81D9B40 adds r1, r7, r4 strb r0, [r1] lsls r0, 24 lsrs r0, 24 cmp r0, 0x20 beq _081D9C7E adds r4, 0x1 cmp r4, 0xE ble _081D9B98 movs r6, 0x3 movs r5, 0 movs r0, 0x5 mov r8, r0 movs r4, 0xD _081D9BBC: mov r1, r8 str r1, [sp] add r0, sp, 0x4 adds r1, r7, 0 adds r2, r5, 0 adds r3, r6, 0 bl sub_81D9D5C adds r6, 0x8 adds r5, 0x5 subs r4, 0x1 cmp r4, 0 bge _081D9BBC movs r0, 0x2 str r0, [sp] add r0, sp, 0x4 adds r1, r7, 0 movs r2, 0x46 movs r3, 0x73 bl sub_81D9D5C add r0, sp, 0x4 movs r1, 0 movs r2, 0x3 bl sub_81D9DAC adds r4, r0, 0 adds r0, r7, 0 movs r1, 0x75 movs r2, 0x3 bl sub_81D9DAC cmp r4, r0 bne _081D9C7E add r0, sp, 0x4 movs r1, 0x9 movs r2, 0x15 bl sub_81D9C90 add r0, sp, 0x4 ldrb r0, [r0, 0x8] movs r2, 0xF ands r2, r0 add r0, sp, 0x4 movs r1, 0x8 bl sub_81D9C90 add r0, sp, 0x4 ldrb r2, [r0, 0x8] lsrs r2, 4 movs r1, 0x8 bl sub_81D9CDC add r0, sp, 0x4 ldrb r2, [r0, 0x6] adds r1, r0, 0 ldrb r0, [r0] ldrb r1, [r1, 0x2] eors r0, r1 add r1, sp, 0x4 ldrb r4, [r1, 0x4] eors r0, r4 mov r3, r9 lsrs r1, r3, 8 eors r0, r1 cmp r2, r0 bne _081D9C7E add r0, sp, 0x4 ldrb r3, [r0, 0x7] adds r2, r0, 0 ldrb r1, [r0, 0x1] ldrb r0, [r2, 0x3] eors r1, r0 adds r0, r2, 0 ldrb r2, [r0, 0x5] eors r1, r2 movs r0, 0xFF mov r5, r9 ands r0, r5 eors r1, r0 cmp r3, r1 bne _081D9C7E add r0, sp, 0x4 ldrh r0, [r0] mov r1, r10 strh r0, [r1] mov r0, sp adds r0, 0x6 ldrh r0, [r0] ldr r3, [sp, 0x20] strh r0, [r3] ldr r5, [sp, 0x24] strb r4, [r5] ldr r0, [sp, 0x28] strb r2, [r0] movs r0, 0x1 b _081D9C80 _081D9C7E: movs r0, 0 _081D9C80: add sp, 0x2C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_81D9B68 thumb_func_start sub_81D9C90 sub_81D9C90: @ 81D9C90 push {r4-r7,lr} adds r7, r0, 0 mov r12, r1 subs r3, r2, 0x1 cmp r2, 0 beq _081D9CD6 _081D9C9C: ldrb r1, [r7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r4, r0, 31 mov r2, r12 subs r2, 0x1 subs r5, r3, 0x1 cmp r2, 0 blt _081D9CCC movs r6, 0x80 adds r3, r2, r7 _081D9CB4: ldrb r1, [r3] adds r0, r6, 0 ands r0, r1 lsls r0, 24 lsls r1, 1 orrs r4, r1 strb r4, [r3] lsrs r4, r0, 31 subs r3, 0x1 subs r2, 0x1 cmp r2, 0 bge _081D9CB4 _081D9CCC: adds r3, r5, 0 movs r0, 0x1 negs r0, r0 cmp r3, r0 bne _081D9C9C _081D9CD6: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81D9C90 thumb_func_start sub_81D9CDC sub_81D9CDC: @ 81D9CDC push {r4-r6,lr} adds r6, r0, 0 adds r5, r1, 0 lsls r2, 24 lsrs r3, r2, 24 lsls r0, r3, 4 orrs r3, r0 lsls r0, r3, 24 lsrs r3, r0, 24 movs r4, 0 cmp r4, r5 bcs _081D9D04 _081D9CF4: adds r2, r6, r4 ldrb r1, [r2] adds r0, r3, 0 eors r0, r1 strb r0, [r2] adds r4, 0x1 cmp r4, r5 bcc _081D9CF4 _081D9D04: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_81D9CDC thumb_func_start sub_81D9D0C sub_81D9D0C: @ 81D9D0C push {lr} lsrs r3, r1, 3 movs r2, 0x7 ands r2, r1 movs r1, 0x80 asrs r1, r2 adds r0, r3 ldrb r0, [r0] ands r0, r1 cmp r0, 0 beq _081D9D24 movs r0, 0x1 _081D9D24: pop {r1} bx r1 thumb_func_end sub_81D9D0C thumb_func_start sub_81D9D28 sub_81D9D28: @ 81D9D28 lsrs r3, r1, 3 movs r2, 0x7 ands r2, r1 movs r1, 0x80 asrs r1, r2 lsls r1, 24 lsrs r1, 24 adds r0, r3 ldrb r2, [r0] orrs r1, r2 strb r1, [r0] bx lr thumb_func_end sub_81D9D28 thumb_func_start sub_81D9D40 sub_81D9D40: @ 81D9D40 lsrs r3, r1, 3 movs r2, 0x7 ands r2, r1 movs r1, 0x80 asrs r1, r2 mvns r1, r1 lsls r1, 24 lsrs r1, 24 adds r0, r3 ldrb r2, [r0] ands r1, r2 strb r1, [r0] bx lr thumb_func_end sub_81D9D40 thumb_func_start sub_81D9D5C sub_81D9D5C: @ 81D9D5C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r6, r0, 0 mov r9, r1 adds r1, r2, 0 mov r8, r3 ldr r7, [sp, 0x1C] movs r5, 0 cmp r5, r7 bcs _081D9DA0 adds r4, r1, 0 _081D9D76: mov r0, r8 adds r1, r0, r5 mov r0, r9 bl sub_81D9D0C lsls r0, 24 cmp r0, 0 beq _081D9D90 adds r0, r6, 0 adds r1, r4, 0 bl sub_81D9D28 b _081D9D98 _081D9D90: adds r0, r6, 0 adds r1, r4, 0 bl sub_81D9D40 _081D9D98: adds r4, 0x1 adds r5, 0x1 cmp r5, r7 bcc _081D9D76 _081D9DA0: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81D9D5C thumb_func_start sub_81D9DAC sub_81D9DAC: @ 81D9DAC push {r4-r7,lr} mov r7, r8 push {r7} mov r8, r0 adds r7, r1, 0 adds r6, r2, 0 movs r4, 0 movs r5, 0 cmp r4, r6 bcs _081D9DD6 _081D9DC0: lsls r4, 1 adds r1, r7, r5 mov r0, r8 bl sub_81D9D0C lsls r0, 24 lsrs r0, 24 orrs r4, r0 adds r5, 0x1 cmp r5, r6 bcc _081D9DC0 _081D9DD6: adds r0, r4, 0 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_81D9DAC .align 2, 0 @ Don't pad with nop.