.include "constants/gba_constants.inc" .include "asm/macros.inc" .syntax unified .text thumb_func_start GroundScript_ExecutePP GroundScript_ExecutePP: push {r4-r7,lr} adds r5, r0, 0 adds r7, r1, 0 adds r6, r2, 0 cmp r6, 0 beq _0809D7A2 ldr r0, [r6] cmp r0, 0 bne _0809D7A6 _0809D7A2: movs r0, 0 b _0809D8B8 _0809D7A6: movs r1, 0x4 ldrsh r0, [r6, r1] cmp r0, 0x5 bhi _0809D858 lsls r0, 2 ldr r1, _0809D7B8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0809D7B8: .4byte _0809D7BC .align 2, 0 _0809D7BC: .4byte _0809D830 .4byte _0809D84A .4byte _0809D7D4 .4byte _0809D7D4 .4byte _0809D858 .4byte _0809D7EE _0809D7D4: movs r3, 0x24 ldrsh r0, [r5, r3] cmp r0, 0x1 beq _0809D838 adds r4, r5, 0 adds r4, 0x24 cmp r0, 0x5 bne _0809D86C adds r0, r5, 0 adds r0, 0x84 bl sub_809D568 b _0809D86C _0809D7EE: movs r1, 0x24 ldrsh r0, [r5, r1] cmp r0, 0x2 beq _0809D808 ldr r0, _0809D800 ldr r1, _0809D804 bl FatalError .align 2, 0 _0809D800: .4byte gUnknown_8116538 _0809D804: .4byte gUnknown_8116544 _0809D808: adds r2, r5, 0 adds r2, 0x84 movs r3, 0 ldrsh r1, [r2, r3] movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _0809D828 ldr r0, _0809D820 ldr r1, _0809D824 bl FatalError .align 2, 0 _0809D820: .4byte gUnknown_8116560 _0809D824: .4byte gUnknown_811656C _0809D828: adds r4, r5, 0 adds r4, 0x24 adds r0, r2, 0 b _0809D840 _0809D830: movs r1, 0x24 ldrsh r0, [r5, r1] cmp r0, 0x1 bne _0809D84A _0809D838: adds r0, r5, 0 adds r0, 0x84 adds r4, r5, 0 adds r4, 0x24 _0809D840: adds r1, r4, 0 movs r2, 0x60 bl memcpy b _0809D86C _0809D84A: adds r0, r5, 0 adds r0, 0x84 bl sub_809D568 adds r4, r5, 0 adds r4, 0x24 b _0809D86C _0809D858: ldr r0, _0809D864 ldr r1, _0809D868 movs r3, 0x4 ldrsh r2, [r6, r3] bl FatalError .align 2, 0 _0809D864: .4byte gUnknown_8116588 _0809D868: .4byte gUnknown_8116594 _0809D86C: adds r0, r4, 0 bl sub_809D568 cmp r7, 0 beq _0809D87C ldr r0, [r7] str r0, [r5, 0xC] b _0809D884 _0809D87C: adds r0, r5, 0 adds r0, 0xC bl sub_809D520 _0809D884: ldrh r0, [r6, 0x4] movs r1, 0 strh r0, [r5, 0x24] movs r0, 0x3 strh r0, [r5, 0x26] ldrh r0, [r6, 0x6] strh r0, [r5, 0x30] ldrb r0, [r6, 0x8] adds r2, r5, 0 adds r2, 0x32 strb r0, [r2] ldr r0, [r6] str r0, [r5, 0x28] str r0, [r5, 0x2C] str r1, [r5, 0x34] str r1, [r5, 0x38] ldr r0, [r5] ldr r2, [r0, 0x14] cmp r2, 0 beq _0809D8B6 ldr r0, [r5, 0x4] adds r1, r5, 0 adds r1, 0x4A bl _call_via_r2 _0809D8B6: movs r0, 0x1 _0809D8B8: pop {r4-r7} pop {r1} bx r1 thumb_func_end GroundScript_ExecutePP thumb_func_start sub_809D8C0 sub_809D8C0: push {r4-r6,lr} sub sp, 0xC adds r4, r0, 0 adds r5, r1, 0 adds r6, r3, 0 lsls r2, 16 asrs r2, 16 mov r1, sp bl sub_809D6E4 adds r0, r4, 0 adds r1, r5, 0 mov r2, sp adds r3, r6, 0 bl GroundScript_ExecutePP lsls r0, 24 lsrs r0, 24 add sp, 0xC pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_809D8C0 thumb_func_start sub_809D8EC sub_809D8EC: push {r4,r5,lr} adds r4, r0, 0 lsls r1, 16 asrs r5, r1, 16 cmp r5, 0 bne _0809D910 bl sub_809A750 lsls r0, 24 cmp r0, 0 bne _0809D910 adds r0, r4, 0 movs r1, 0 bl sub_80A2460 str r0, [r4, 0x28] movs r0, 0 b _0809D922 _0809D910: adds r0, r4, 0 adds r0, 0x46 strh r5, [r0] movs r0, 0x2 strh r0, [r4, 0x26] ldr r1, _0809D928 movs r0, 0x1 strb r0, [r1] movs r0, 0x1 _0809D922: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0809D928: .4byte gUnknown_2039A36 thumb_func_end sub_809D8EC thumb_func_start sub_809D92C sub_809D92C: push {lr} ldr r1, _0809D93C bl sub_809D770 lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _0809D93C: .4byte gUnknown_81165C8 thumb_func_end sub_809D92C thumb_func_start sub_809D940 sub_809D940: push {r4,lr} bl sub_80A8B74 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_80AC378 orrs r4, r0 lsls r4, 24 lsrs r4, 24 bl sub_80AD290 orrs r4, r0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_809D940 thumb_func_start sub_809D968 sub_809D968: push {r4-r6,lr} adds r5, r0, 0 lsls r1, 16 asrs r6, r1, 16 movs r4, 0 adds r2, r5, 0 adds r2, 0x46 ldrh r1, [r2] movs r0, 0 ldrsh r3, [r2, r0] movs r0, 0x1 negs r0, r0 cmp r3, r0 beq _0809D98E cmp r3, r6 bne _0809D98E ldr r0, _0809D9B4 strh r0, [r2] movs r4, 0x1 _0809D98E: adds r2, r5, 0 adds r2, 0xA6 ldrh r1, [r2] movs r0, 0 ldrsh r3, [r2, r0] movs r0, 0x1 negs r0, r0 cmp r3, r0 beq _0809D9AA cmp r3, r6 bne _0809D9AA ldr r0, _0809D9B4 strh r0, [r2] movs r4, 0x1 _0809D9AA: adds r0, r4, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0809D9B4: .4byte 0x0000ffff thumb_func_end sub_809D968 thumb_func_start sub_809D9B8 sub_809D9B8: lsls r0, 16 asrs r0, 16 ldr r1, _0809D9D4 adds r1, r0, r1 movs r3, 0 movs r2, 0x1 strb r2, [r1] ldr r1, _0809D9D8 lsls r0, 2 adds r0, r1 str r3, [r0] ldr r0, _0809D9DC strb r2, [r0] bx lr .align 2, 0 _0809D9D4: .4byte gUnknown_2039A38 _0809D9D8: .4byte gUnknown_2039B48 _0809D9DC: .4byte gUnknown_2039A36 thumb_func_end sub_809D9B8 thumb_func_start sub_809D9E0 sub_809D9E0: lsls r0, 16 asrs r0, 16 ldr r2, _0809D9FC adds r2, r0, r2 movs r3, 0x1 strb r3, [r2] ldr r2, _0809DA00 lsls r0, 2 adds r0, r2 str r1, [r0] ldr r0, _0809DA04 strb r3, [r0] bx lr .align 2, 0 _0809D9FC: .4byte gUnknown_2039A38 _0809DA00: .4byte gUnknown_2039B48 _0809DA04: .4byte gUnknown_2039A36 thumb_func_end sub_809D9E0 thumb_func_start sub_809DA08 sub_809DA08: push {r4,r5,lr} adds r5, r0, 0 lsls r1, 16 asrs r4, r1, 16 ldr r1, _0809DA2C lsls r0, r4, 2 adds r0, r1 str r2, [r0] cmp r4, 0 bne _0809DA38 bl sub_809A750 lsls r0, 24 cmp r0, 0 bne _0809DA30 movs r0, 0 b _0809DA5E .align 2, 0 _0809DA2C: .4byte gUnknown_2039B48 _0809DA30: adds r0, r5, 0 adds r0, 0x46 strh r4, [r0] b _0809DA52 _0809DA38: movs r1, 0x80 adds r2, r5, 0 adds r2, 0x46 adds r0, r4, 0 orrs r0, r1 strh r0, [r2] ldr r0, _0809DA64 adds r0, r4, r0 movs r1, 0x1 strb r1, [r0] ldr r0, _0809DA68 adds r0, r4, r0 strb r1, [r0] _0809DA52: movs r0, 0x2 strh r0, [r5, 0x26] ldr r1, _0809DA6C movs r0, 0x1 strb r0, [r1] movs r0, 0x1 _0809DA5E: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0809DA64: .4byte gUnknown_2039A38 _0809DA68: .4byte gUnknown_2039AC0 _0809DA6C: .4byte gUnknown_2039A36 thumb_func_end sub_809DA08 thumb_func_start HandleAction HandleAction: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x148 adds r7, r0, 0 movs r1, 0x26 ldrsh r0, [r7, r1] cmp r0, 0 bne _0809DA8A bl _0809EAB8 _0809DA8A: movs r2, 0x26 ldrsh r0, [r7, r2] cmp r0, 0x4 bls _0809DA96 bl _0809E9CC _0809DA96: lsls r0, 2 ldr r1, _0809DAA0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0809DAA0: .4byte _0809DAA4 .align 2, 0 _0809DAA4: .4byte _0809E9C6 .4byte _0809E9C6 .4byte _0809DAB8 .4byte _0809E900 .4byte _0809E9C6 _0809DAB8: adds r1, r7, 0 adds r1, 0x44 ldrb r0, [r1] subs r0, 0x3 adds r6, r1, 0 cmp r0, 0xED bls _0809DACA bl _0809E9D6 _0809DACA: lsls r0, 2 ldr r1, _0809DAD4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0809DAD4: .4byte _0809DAD8 .align 2, 0 _0809DAD8: .4byte _0809E382 .4byte _0809E3C4 .4byte _0809E524 .4byte _0809E464 .4byte _0809E4B4 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809DED6 .4byte _0809DED6 .4byte _0809DED6 .4byte _0809DED6 .4byte _0809DED6 .4byte _0809DED6 .4byte _0809DED6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E308 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E308 .4byte _0809E308 .4byte _0809E308 .4byte _0809E308 .4byte _0809E308 .4byte _0809E308 .4byte _0809E308 .4byte _0809E308 .4byte _0809E308 .4byte _0809E31C .4byte _0809E75C .4byte _0809E33C .4byte _0809E368 .4byte _0809E658 .4byte _0809E6B4 .4byte _0809E6E8 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809DE90 .4byte _0809DE90 .4byte _0809DE90 .4byte _0809DE90 .4byte _0809E9D6 .4byte _0809DE90 .4byte _0809DE90 .4byte _0809E9D6 .4byte _0809DE90 .4byte _0809DF60 .4byte _0809DF60 .4byte _0809DF60 .4byte _0809DF60 .4byte _0809DF60 .4byte _0809DF60 .4byte _0809DF60 .4byte _0809E0A2 .4byte _0809DFDC .4byte _0809DFDC .4byte _0809DFDC .4byte _0809DFDC .4byte _0809DFDC .4byte _0809DFDC .4byte _0809DFDC .4byte _0809E0A2 .4byte _0809E078 .4byte _0809E078 .4byte _0809E078 .4byte _0809E078 .4byte _0809E078 .4byte _0809E078 .4byte _0809E08C .4byte _0809E08C .4byte _0809E08C .4byte _0809E08C .4byte _0809E08C .4byte _0809E08C .4byte _0809E078 .4byte _0809E078 .4byte _0809E078 .4byte _0809E078 .4byte _0809E078 .4byte _0809E078 .4byte _0809E08C .4byte _0809E08C .4byte _0809E08C .4byte _0809E08C .4byte _0809E08C .4byte _0809E08C .4byte _0809E0E8 .4byte _0809E0E8 .4byte _0809DE90 .4byte _0809DE90 .4byte _0809DE90 .4byte _0809DE90 .4byte _0809DE90 .4byte _0809DE90 .4byte _0809E146 .4byte _0809E146 .4byte _0809E146 .4byte _0809E146 .4byte _0809E146 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809DE90 .4byte _0809DE90 .4byte _0809E9D6 .4byte _0809E2D0 .4byte _0809E2D0 .4byte _0809E2D0 .4byte _0809E2D0 .4byte _0809E2D0 .4byte _0809E2D0 .4byte _0809E2D0 .4byte _0809E2D0 .4byte _0809E2D0 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E798 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E864 .4byte _0809E864 .4byte _0809E864 .4byte _0809E864 .4byte _0809E864 .4byte _0809E864 .4byte _0809E864 .4byte _0809E9D6 .4byte _0809E8D8 .4byte _0809DE90 .4byte _0809DE90 .4byte _0809DEA6 .4byte _0809DEBE .4byte _0809DED6 .4byte _0809DEE8 .4byte _0809DF24 .4byte _0809DF24 .4byte _0809E2DE .4byte _0809E9D6 .4byte _0809E2DE .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 .4byte _0809E9D6 _0809DE90: adds r1, r7, 0 adds r1, 0x4E ldrh r2, [r1] movs r3, 0 ldrsh r0, [r1, r3] cmp r0, 0 ble _0809DEA2 bl _0809EAB2 _0809DEA2: bl _0809E8F4 _0809DEA6: ldr r1, [r7] ldr r0, [r7, 0x4] ldr r1, [r1, 0x4C] bl _call_via_r1 lsls r0, 24 cmp r0, 0 beq _0809DEBA bl _0809E9D6 _0809DEBA: bl _0809E8F4 _0809DEBE: ldr r1, [r7] ldr r0, [r7, 0x4] ldr r1, [r1, 0x50] bl _call_via_r1 lsls r0, 24 cmp r0, 0 beq _0809DED2 bl _0809E9D6 _0809DED2: bl _0809E8F4 _0809DED6: bl sub_8099B94 lsls r0, 24 cmp r0, 0 beq _0809DEE4 bl _0809E9D6 _0809DEE4: bl _0809E8F4 _0809DEE8: add r1, sp, 0x4 ldr r0, [r7, 0x40] ldm r0!, {r4-r6} stm r1!, {r4-r6} ldr r0, [r0] str r0, [r1] add r0, sp, 0x4 ldrh r0, [r0, 0x2] bl IsEqualtoBGTrack lsls r0, 24 cmp r0, 0 bne _0809DF06 bl _0809E8F4 _0809DF06: adds r2, r7, 0 adds r2, 0x50 ldrh r1, [r2] adds r0, r1, 0x1 strh r0, [r2] lsls r1, 16 ldr r0, _0809DF20 cmp r1, r0 bgt _0809DF1C bl _0809E9D6 _0809DF1C: bl _0809E8F4 .align 2, 0 _0809DF20: .4byte 0x2a2f0000 _0809DF24: add r1, sp, 0x4 ldr r0, [r7, 0x40] ldm r0!, {r2-r4} stm r1!, {r2-r4} ldr r0, [r0] str r0, [r1] add r0, sp, 0x4 ldrh r0, [r0, 0x2] bl sub_80119C0 lsls r0, 24 cmp r0, 0 bne _0809DF42 bl _0809E8F4 _0809DF42: adds r2, r7, 0 adds r2, 0x50 ldrh r1, [r2] adds r0, r1, 0x1 strh r0, [r2] lsls r1, 16 ldr r0, _0809DF5C cmp r1, r0 bgt _0809DF58 bl _0809E9D6 _0809DF58: bl _0809E8F4 .align 2, 0 _0809DF5C: .4byte 0x0e0f0000 _0809DF60: ldr r1, [r7] ldr r0, [r7, 0x4] add r5, sp, 0xA4 ldr r2, [r1, 0xC] adds r1, r5, 0 bl _call_via_r2 ldr r1, [r7, 0x60] ldr r0, [r5] subs r1, r0 add r4, sp, 0xAC str r1, [r4] ldr r0, [r7, 0x64] ldr r1, [r5, 0x4] subs r0, r1 str r0, [r4, 0x4] ldr r1, [r7, 0x54] adds r0, r4, 0 bl sub_800290C ldr r0, [r4] cmp r0, 0 bne _0809DF98 ldr r0, [r4, 0x4] cmp r0, 0 bne _0809DF98 bl _0809E8F4 _0809DF98: ldr r1, [r7] ldr r0, [r7, 0x4] ldr r2, [r1, 0x48] adds r1, r4, 0 bl _call_via_r2 movs r1, 0x9 ands r1, r0 cmp r1, 0 beq _0809DFB0 bl _0809E8F4 _0809DFB0: ldr r2, [r7] ldr r0, [r7, 0x4] movs r1, 0x80 lsls r1, 5 ldr r2, [r2, 0x30] bl _call_via_r2 adds r2, r7, 0 adds r2, 0x4E ldrh r0, [r2] movs r5, 0 ldrsh r1, [r2, r5] cmp r1, 0 bge _0809DFD0 bl _0809E9D6 _0809DFD0: cmp r1, 0 ble _0809DFD8 bl _0809EAAC _0809DFD8: bl _0809E8F4 _0809DFDC: ldr r1, [r7] ldr r0, [r7, 0x4] add r5, sp, 0xB4 ldr r2, [r1, 0xC] adds r1, r5, 0 bl _call_via_r2 ldr r1, [r7, 0x60] ldr r0, [r5] subs r1, r0 add r4, sp, 0xBC str r1, [r4] ldr r0, [r7, 0x64] ldr r1, [r5, 0x4] subs r0, r1 str r0, [r4, 0x4] ldr r1, [r7, 0x54] adds r0, r4, 0 bl sub_800290C ldr r0, [r4] adds r5, r4, 0 cmp r0, 0 bne _0809E016 ldr r0, [r5, 0x4] cmp r0, 0 bne _0809E016 bl _0809E8F4 _0809E016: ldr r1, [r7] ldr r0, [r7, 0x4] ldr r2, [r1, 0x48] adds r1, r5, 0 bl _call_via_r2 adds r4, r0, 0 adds r0, r5, 0 bl sub_8002C60 lsls r0, 24 adds r2, r7, 0 adds r2, 0x4A asrs r1, r0, 24 lsrs r0, 24 strb r0, [r2] ldr r2, [r7] ldr r0, [r7, 0x4] ldr r2, [r2, 0x2C] bl _call_via_r2 movs r0, 0x9 ands r0, r4 cmp r0, 0 beq _0809E04C bl _0809E8F4 _0809E04C: ldr r2, [r7] ldr r0, [r7, 0x4] movs r1, 0x80 lsls r1, 5 ldr r2, [r2, 0x30] bl _call_via_r2 adds r2, r7, 0 adds r2, 0x4E ldrh r0, [r2] movs r6, 0 ldrsh r1, [r2, r6] cmp r1, 0 bge _0809E06C bl _0809E9D6 _0809E06C: cmp r1, 0 ble _0809E074 bl _0809EAAC _0809E074: bl _0809E8F4 _0809E078: adds r6, r7, 0 adds r6, 0x4E movs r1, 0 ldrsh r0, [r6, r1] cmp r0, 0 ble _0809E088 bl _0809EA62 _0809E088: bl _0809E8F4 _0809E08C: movs r2, 0x4E adds r2, r7 mov r8, r2 movs r3, 0 ldrsh r0, [r2, r3] cmp r0, 0 ble _0809E09E bl _0809E9DA _0809E09E: bl _0809E8F4 _0809E0A2: ldr r1, [r7] ldr r0, [r7, 0x4] add r4, sp, 0xE4 add r2, sp, 0xE8 ldr r3, [r1, 0x10] adds r1, r4, 0 bl _call_via_r3 ldr r0, [r7, 0x6C] ldr r1, [r4] subs r0, r1 adds r2, r4, 0 cmp r0, 0 bne _0809E0C2 bl _0809E8F4 _0809E0C2: ldr r4, [r7, 0x54] cmn r0, r4 bge _0809E0CC subs r0, r1, r4 b _0809E0D4 _0809E0CC: cmp r0, r4 ble _0809E0D2 adds r0, r4, 0 _0809E0D2: adds r0, r1, r0 _0809E0D4: str r0, [r2] ldr r2, [r7] ldr r0, [r7, 0x4] add r1, sp, 0xE4 ldr r1, [r1] ldr r2, [r2, 0x28] bl _call_via_r2 bl _0809E9D6 _0809E0E8: ldr r1, [r7] ldr r0, [r7, 0x4] add r4, sp, 0x14 ldr r2, [r1, 0x14] adds r1, r4, 0 bl _call_via_r2 movs r1, 0 ldrsb r1, [r4, r1] ldr r2, [r7, 0x54] add r4, sp, 0xEC adds r0, r4, 0 bl sub_8002BB8 ldr r2, [r4] ldr r3, [r4, 0x4] add r1, sp, 0xF4 str r2, [r1] str r3, [r1, 0x4] ldr r2, [r7] ldr r0, [r7, 0x4] ldr r2, [r2, 0x48] bl _call_via_r2 movs r1, 0x9 ands r1, r0 cmp r1, 0 beq _0809E124 bl _0809E8F4 _0809E124: ldr r2, [r7] ldr r0, [r7, 0x4] movs r1, 0x80 lsls r1, 5 ldr r2, [r2, 0x30] bl _call_via_r2 adds r1, r7, 0 adds r1, 0x4E ldrh r2, [r1] movs r4, 0 ldrsh r0, [r1, r4] cmp r0, 0 ble _0809E144 bl _0809EAB2 _0809E144: b _0809E8F4 _0809E146: adds r1, r7, 0 adds r1, 0x4E ldrh r2, [r1] movs r5, 0 ldrsh r0, [r1, r5] mov r10, r1 cmp r0, 0 ble _0809E15A bl _0809EAB2 _0809E15A: add r1, sp, 0x4 ldr r0, [r7, 0x40] ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldr r0, [r0] str r0, [r1] movs r4, 0x1 negs r4, r4 mov r8, r4 movs r5, 0 ldr r1, [r7] ldr r0, [r7, 0x4] mov r4, sp adds r4, 0x15 ldr r2, [r1, 0x14] adds r1, r4, 0 bl _call_via_r2 add r0, sp, 0x4 ldrb r0, [r0] subs r0, 0x91 mov r9, r4 cmp r0, 0x4 bhi _0809E234 lsls r0, 2 ldr r1, _0809E194 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0809E194: .4byte _0809E198 .align 2, 0 _0809E198: .4byte _0809E1AC .4byte _0809E1AC .4byte _0809E1BA .4byte _0809E1E0 .4byte _0809E20C _0809E1AC: adds r0, r7, 0 adds r0, 0x71 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 mov r8, r0 b _0809E234 _0809E1BA: ldr r0, [sp, 0x8] lsls r0, 16 asrs r0, 16 bl sub_80A7AE8 lsls r0, 16 asrs r4, r0, 16 cmp r4, 0 blt _0809E234 movs r5, 0x1 add r1, sp, 0xFC adds r0, r4, 0 bl sub_80A8FD8 add r1, sp, 0x104 adds r0, r4, 0 bl sub_80A8F9C b _0809E234 _0809E1E0: ldr r0, [sp, 0x8] lsls r0, 16 asrs r0, 16 bl sub_80A7AE8 lsls r0, 16 asrs r0, 16 cmp r0, 0 blt _0809E234 movs r5, 0x1 add r1, sp, 0xFC bl sub_80A8FD8 ldr r0, _0809E208 ldr r1, [r0, 0x4] ldr r0, [r0] add r2, sp, 0x104 str r0, [r2] str r1, [r2, 0x4] b _0809E234 .align 2, 0 _0809E208: .4byte gUnknown_81164DC _0809E20C: movs r5, 0x1 ldr r1, [r7] ldr r0, [r7, 0x4] add r4, sp, 0xFC ldr r2, [r1, 0xC] adds r1, r4, 0 bl _call_via_r2 ldr r2, [r7] ldr r0, [r7, 0x4] add r1, sp, 0x104 ldr r2, [r2, 0x8] bl _call_via_r2 ldr r0, [sp, 0x8] lsls r0, 16 asrs r0, 16 adds r1, r4, 0 bl sub_80AD8B4 _0809E234: cmp r5, 0 beq _0809E282 ldr r1, [r7] ldr r0, [r7, 0x4] add r5, sp, 0x10C ldr r2, [r1, 0xC] adds r1, r5, 0 bl _call_via_r2 ldr r1, [r7] ldr r0, [r7, 0x4] add r4, sp, 0x114 ldr r2, [r1, 0x8] adds r1, r4, 0 bl _call_via_r2 add r6, sp, 0xFC add r3, sp, 0x104 adds r0, r5, 0 adds r1, r4, 0 adds r2, r6, 0 bl sub_8002DF0 lsls r0, 24 asrs r0, 24 mov r8, r0 movs r0, 0x1 negs r0, r0 cmp r8, r0 bne _0809E28C ldr r3, _0809E2CC adds r0, r5, 0 adds r1, r3, 0 adds r2, r6, 0 bl sub_8002D54 lsls r0, 24 asrs r0, 24 mov r8, r0 _0809E282: movs r0, 0x1 negs r0, r0 cmp r8, r0 bne _0809E28C b _0809E8F4 _0809E28C: mov r5, r9 movs r0, 0 ldrsb r0, [r5, r0] cmp r8, r0 bne _0809E298 b _0809E8F4 _0809E298: mov r6, r9 movs r0, 0 ldrsb r0, [r6, r0] add r1, sp, 0x4 ldrh r2, [r1, 0x2] lsls r2, 24 lsrs r2, 24 mov r1, r8 bl sub_8002A70 adds r1, r7, 0 adds r1, 0x4A strb r0, [r1] ldr r2, [r7] ldr r0, [r7, 0x4] ldrb r1, [r1] lsls r1, 24 asrs r1, 24 ldr r2, [r2, 0x2C] bl _call_via_r2 add r0, sp, 0x4 ldrb r0, [r0, 0x1] mov r1, r10 strh r0, [r1] b _0809E9CC .align 2, 0 _0809E2CC: .4byte gUnknown_81164DC _0809E2D0: bl sub_809D234 lsls r0, 24 cmp r0, 0 beq _0809E2DC b _0809E9D6 _0809E2DC: b _0809E8F4 _0809E2DE: adds r0, r7, 0 adds r0, 0x46 movs r2, 0 ldrsh r1, [r0, r2] movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _0809E2F0 b _0809E9D6 _0809E2F0: ldr r1, _0809E304 adds r0, r7, 0 adds r0, 0x4C movs r3, 0 ldrsh r0, [r0, r3] lsls r0, 2 adds r0, r1 ldr r1, [r0] b _0809E8EC .align 2, 0 _0809E304: .4byte gUnknown_2039B48 _0809E308: adds r0, r7, 0 adds r0, 0x46 movs r4, 0 ldrsh r1, [r0, r4] movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _0809E31A b _0809E9D6 _0809E31A: b _0809E8CA _0809E31C: adds r0, r7, 0 adds r0, 0x46 movs r5, 0 ldrsh r1, [r0, r5] movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _0809E32E b _0809E9D6 _0809E32E: bl sub_8099B94 lsls r0, 24 cmp r0, 0 beq _0809E33A b _0809E9D6 _0809E33A: b _0809E8CA _0809E33C: add r1, sp, 0x4 ldr r0, [r7, 0x40] ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldr r0, [r0] str r0, [r1] add r0, sp, 0x4 ldrb r1, [r0, 0x1] movs r4, 0x2 ldrsh r2, [r0, r4] ldr r3, [sp, 0x8] adds r0, r7, 0 bl sub_80A14E8 adds r1, r0, 0 cmp r1, 0 bge _0809E360 b _0809E9D6 _0809E360: movs r0, 0x3 strh r0, [r7, 0x26] adds r0, r7, 0 b _0809E60C _0809E368: add r0, sp, 0x11C bl sub_809B260 lsls r0, 24 cmp r0, 0 bne _0809E376 b _0809E9D6 _0809E376: add r0, sp, 0x11C ldr r1, [r0] adds r0, r7, 0 bl sub_80A2460 b _0809E8C8 _0809E382: add r0, sp, 0x120 bl sub_809B260 lsls r0, 24 cmp r0, 0 bne _0809E390 b _0809E9D6 _0809E390: add r4, sp, 0x120 ldr r0, [r4] cmp r0, 0 blt _0809E3BA add r1, sp, 0x4 ldr r0, [r7, 0x40] ldm r0!, {r2,r5,r6} stm r1!, {r2,r5,r6} ldr r0, [r0] str r0, [r1] ldrb r0, [r4] bl sub_8002694 lsls r0, 16 asrs r0, 16 add r1, sp, 0x4 movs r3, 0x2 ldrsh r2, [r1, r3] movs r1, 0 bl sub_8098D1C _0809E3BA: ldr r1, [r4] adds r0, r7, 0 bl sub_80A2460 b _0809E8C8 _0809E3C4: adds r4, r7, 0 adds r4, 0x4C movs r5, 0 ldrsh r0, [r4, r5] cmp r0, 0 bne _0809E40C add r0, sp, 0x124 bl sub_809B260 lsls r0, 24 cmp r0, 0 bne _0809E3DE b _0809E9D6 _0809E3DE: add r0, sp, 0x124 ldr r0, [r0] cmp r0, 0 blt _0809E400 lsls r0, 16 asrs r0, 16 bl sub_80A26B8 adds r2, r0, 0 lsls r2, 16 asrs r2, 16 movs r0, 0 movs r1, 0x12 bl sub_80018D8 movs r0, 0x1 b _0809E402 _0809E400: ldr r0, _0809E408 _0809E402: strh r0, [r4] b _0809E8CE .align 2, 0 _0809E408: .4byte 0x0000ffff _0809E40C: cmp r0, 0x1 bne _0809E464 add r1, sp, 0x4 ldr r0, [r7, 0x40] ldm r0!, {r2-r4} stm r1!, {r2-r4} ldr r0, [r0] str r0, [r1] movs r0, 0 movs r1, 0x12 bl sub_8001658 adds r2, r0, 0 lsls r2, 16 asrs r4, r2, 16 lsrs r2, 16 movs r0, 0 movs r1, 0x30 bl sub_8001784 cmp r4, 0x13 bne _0809E43C cmp r0, 0 beq _0809E45A _0809E43C: add r0, sp, 0x4 movs r5, 0x2 ldrsh r0, [r0, r5] bl sub_8098DCC adds r0, r7, 0 movs r1, 0 bl sub_80A2460 str r0, [r7, 0x28] movs r0, 0 movs r1, 0 bl sub_80A87AC b _0809E8F4 _0809E45A: movs r0, 0 movs r1, 0x13 movs r2, 0x13 bl sub_80018D8 _0809E464: adds r0, r7, 0 adds r0, 0x4C movs r2, 0 ldrsh r1, [r0, r2] adds r5, r0, 0 cmp r1, 0 bne _0809E4B4 add r0, sp, 0x128 bl sub_809B260 lsls r0, 24 cmp r0, 0 bne _0809E480 b _0809E9D6 _0809E480: add r0, sp, 0x128 ldr r1, [r0] cmp r1, 0 blt _0809E4AA ldrb r0, [r6] cmp r0, 0x4 bne _0809E49A lsls r0, r1, 16 asrs r0, 16 bl sub_80A26B8 lsls r0, 16 b _0809E49C _0809E49A: lsls r0, r1, 16 _0809E49C: asrs r2, r0, 16 movs r0, 0 movs r1, 0x13 bl sub_80018D8 movs r0, 0x1 b _0809E4AC _0809E4AA: ldr r0, _0809E4B0 _0809E4AC: strh r0, [r5] b _0809E8CE .align 2, 0 _0809E4B0: .4byte 0x0000ffff _0809E4B4: adds r0, r7, 0 adds r0, 0x4C movs r3, 0 ldrsh r1, [r0, r3] adds r5, r0, 0 cmp r1, 0x1 beq _0809E4C4 b _0809E5B8 _0809E4C4: movs r0, 0 movs r1, 0x13 bl sub_8001658 lsls r0, 16 asrs r6, r0, 16 add r4, sp, 0x18 adds r0, r4, 0 adds r1, r6, 0 bl sub_80990EC lsls r0, 24 cmp r0, 0 beq _0809E580 adds r0, r4, 0 adds r1, r6, 0 bl sub_8099220 movs r0, 0x6 bl sub_80023E4 adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 ldrb r0, [r4] ldr r4, _0809E51C ldr r2, [r4] movs r1, 0 str r1, [sp] bl sub_809034C adds r1, r0, 0 ldr r0, _0809E520 str r1, [r0] cmp r1, 0x1 beq _0809E586 cmp r1, 0x1 bcc _0809E580 cmp r1, 0x2 bne _0809E5AE strh r1, [r5] ldr r2, [r4] movs r0, 0x9 b _0809E58E .align 2, 0 _0809E51C: .4byte gUnknown_203B4B0 _0809E520: .4byte gUnknown_2039DA4 _0809E524: adds r0, r7, 0 adds r0, 0x4C movs r4, 0 ldrsh r6, [r0, r4] adds r5, r0, 0 cmp r6, 0x1 bne _0809E5B8 movs r0, 0 movs r1, 0x14 bl sub_8001658 lsls r0, 24 lsrs r0, 24 bl sub_8095228 adds r4, r0, 0 movs r0, 0x6 bl sub_80023E4 adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 ldrb r0, [r4, 0x4] ldr r4, _0809E578 ldr r2, [r4] str r6, [sp] movs r1, 0 bl sub_809034C adds r1, r0, 0 ldr r0, _0809E57C str r1, [r0] cmp r1, 0x1 beq _0809E586 cmp r1, 0x1 bcc _0809E580 cmp r1, 0x2 bne _0809E5AE strh r1, [r5] ldr r2, [r4] movs r0, 0x9 b _0809E58E .align 2, 0 _0809E578: .4byte gUnknown_203B4B0 _0809E57C: .4byte gUnknown_2039DA4 _0809E580: movs r0, 0x3 strh r0, [r5] b _0809E9CC _0809E586: movs r0, 0x4 strh r0, [r5] ldr r2, [r4] movs r0, 0xA _0809E58E: movs r1, 0x1 bl sub_809B1C0 adds r0, r7, 0 movs r1, 0x1 bl sub_809D8EC lsls r0, 24 cmp r0, 0 bne _0809E5A4 b _0809E9CC _0809E5A4: movs r0, 0 movs r1, 0xB bl sub_80A87AC b _0809E9CC _0809E5AE: ldr r0, _0809E5B4 strh r0, [r5] b _0809E9CC .align 2, 0 _0809E5B4: .4byte 0x0000ffff _0809E5B8: movs r6, 0 ldrsh r2, [r5, r6] cmp r2, 0x2 bne _0809E5DA add r0, sp, 0x12C bl sub_809B260 lsls r0, 24 cmp r0, 0 bne _0809E5CE b _0809E9D6 _0809E5CE: add r0, sp, 0x12C ldr r0, [r0] cmp r0, 0 beq _0809E626 movs r0, 0x3 b _0809E628 _0809E5DA: cmp r2, 0x3 bne _0809E614 add r1, sp, 0x4 ldr r0, [r7, 0x40] ldm r0!, {r3-r5} stm r1!, {r3-r5} ldr r0, [r0] str r0, [r1] strh r2, [r7, 0x26] add r0, sp, 0x4 movs r6, 0x2 ldrsh r0, [r0, r6] bl sub_80999FC movs r0, 0x70 movs r1, 0 bl GroundMap_ExecuteEvent movs r1, 0x8 ldrsh r0, [r7, r1] cmp r0, 0 bne _0809E608 b _0809E9CC _0809E608: adds r0, r7, 0 movs r1, 0x1 _0809E60C: bl sub_80A2460 str r0, [r7, 0x28] b _0809E9CC _0809E614: cmp r2, 0x4 bne _0809E63C add r0, sp, 0x130 bl sub_809B260 lsls r0, 24 cmp r0, 0 bne _0809E626 b _0809E9D6 _0809E626: ldr r0, _0809E638 _0809E628: strh r0, [r5] movs r0, 0 movs r1, 0 bl sub_80A87AC bl sub_809A76C b _0809E9CC .align 2, 0 _0809E638: .4byte 0x0000ffff _0809E63C: movs r0, 0 movs r1, 0 bl sub_8099220 movs r4, 0x1 negs r4, r4 movs r0, 0 movs r1, 0x13 adds r2, r4, 0 bl sub_80018D8 adds r0, r7, 0 adds r1, r4, 0 b _0809E8EE _0809E658: add r1, sp, 0x4 ldr r0, [r7, 0x40] ldm r0!, {r2-r4} stm r1!, {r2-r4} ldr r0, [r0] str r0, [r1] add r0, sp, 0x134 bl sub_809B260 lsls r0, 24 cmp r0, 0 bne _0809E672 b _0809E9D6 _0809E672: add r0, sp, 0x134 ldr r0, [r0] cmp r0, 0x1 bne _0809E6A4 ldr r0, [sp, 0x8] lsls r0, 16 asrs r1, r0, 16 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _0809E6A4 adds r0, r1, 0 bl sub_80A8D54 movs r2, 0 adds r3, r0, 0 adds r3, 0x4C ldr r4, _0809E6B0 _0809E696: adds r0, r3, r2 adds r1, r2, r4 ldrb r1, [r1] strb r1, [r0] adds r2, 0x1 cmp r2, 0x9 ble _0809E696 _0809E6A4: add r0, sp, 0x134 ldr r1, [r0] adds r0, r7, 0 bl sub_80A2460 b _0809E8C8 .align 2, 0 _0809E6B0: .4byte gUnknown_2039D98 _0809E6B4: add r0, sp, 0x138 bl sub_809B260 lsls r0, 24 cmp r0, 0 bne _0809E6C2 b _0809E9D6 _0809E6C2: add r4, sp, 0x138 ldr r0, [r4] cmp r0, 0x1 bne _0809E6D0 ldr r0, _0809E6DC bl SetRescueTeamName _0809E6D0: ldr r1, [r4] adds r0, r7, 0 bl sub_80A2460 b _0809E8C8 .align 2, 0 _0809E6DC: .4byte gUnknown_2039D98 _0809E6E0: movs r1, 0x2 add r0, sp, 0x13C str r1, [r0] b _0809E74A _0809E6E8: add r1, sp, 0x4 ldr r0, [r7, 0x40] ldm r0!, {r2,r5,r6} stm r1!, {r2,r5,r6} ldr r0, [r0] str r0, [r1] ldr r5, [sp, 0x10] add r0, sp, 0x13C bl sub_809B260 lsls r0, 24 cmp r0, 0 bne _0809E704 b _0809E9D6 _0809E704: add r0, sp, 0x13C ldr r0, [r0] cmp r0, 0x1 bne _0809E74A add r4, sp, 0x18 ldr r0, _0809E758 adds r3, r4, 0 movs r2, 0 mov r1, sp adds r1, 0x27 _0809E718: strb r2, [r1] subs r1, 0x1 cmp r1, r3 bge _0809E718 adds r1, r4, 0 bl CopyStringtoBuffer movs r2, 0 ldrb r0, [r4] ldrb r3, [r5] cmp r0, r3 bne _0809E6E0 cmp r0, 0 beq _0809E74A _0809E734: adds r2, 0x1 cmp r2, 0xF bgt _0809E74A adds r0, r4, r2 adds r1, r5, r2 ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 bne _0809E6E0 cmp r0, 0 bne _0809E734 _0809E74A: add r0, sp, 0x13C ldr r1, [r0] adds r0, r7, 0 bl sub_80A2460 b _0809E8C8 .align 2, 0 _0809E758: .4byte gUnknown_2039D98 _0809E75C: adds r2, r7, 0 adds r2, 0x50 ldrh r3, [r2] movs r4, 0 ldrsh r0, [r2, r4] cmp r0, 0 bne _0809E76C b _0809E872 _0809E76C: add r4, sp, 0xA0 adds r0, r4, 0 bl sub_809AFFC lsls r0, 24 cmp r0, 0 bne _0809E77C b _0809E9D6 _0809E77C: ldrb r0, [r4] cmp r0, 0 bne _0809E784 b _0809E8CA _0809E784: add r1, sp, 0x4 ldr r0, [r7, 0x40] ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldr r0, [r0] str r0, [r1] add r0, sp, 0x4 movs r4, 0x2 ldrsh r1, [r0, r4] b _0809E8C2 _0809E798: add r1, sp, 0x4 ldr r0, [r7, 0x40] ldm r0!, {r2,r5,r6} stm r1!, {r2,r5,r6} ldr r0, [r0] str r0, [r1] adds r2, r7, 0 adds r2, 0x50 movs r3, 0 ldrsh r0, [r2, r3] adds r4, r2, 0 cmp r0, 0 bne _0809E84C movs r3, 0 adds r0, r7, 0 adds r0, 0x4C movs r5, 0 ldrsh r2, [r0, r5] adds r5, r0, 0 cmp r2, 0 bge _0809E7CC ldr r0, [r7, 0x28] ldrb r0, [r0] cmp r0, 0xD1 beq _0809E812 b _0809E8F4 _0809E7CC: ldr r1, [r7, 0x28] ldrb r0, [r1] cmp r0, 0xD0 bne _0809E7F8 movs r6, 0x2 ldrsh r0, [r1, r6] cmp r0, r2 beq _0809E812 _0809E7DC: ldr r0, [r7, 0x28] adds r1, r0, 0 adds r1, 0x10 str r1, [r7, 0x28] ldrb r0, [r0, 0x10] cmp r0, 0xD0 bne _0809E7F8 movs r0, 0x2 ldrsh r1, [r1, r0] movs r2, 0 ldrsh r0, [r5, r2] cmp r1, r0 bne _0809E7DC movs r3, 0x1 _0809E7F8: cmp r3, 0 bne _0809E812 ldr r1, [r7, 0x28] ldrb r0, [r1] cmp r0, 0xD1 bne _0809E8F4 _0809E804: adds r0, r1, 0 adds r1, 0x10 str r1, [r7, 0x28] ldrb r0, [r0, 0x10] cmp r0, 0xD1 beq _0809E804 b _0809E8F4 _0809E812: add r0, sp, 0x4 ldrb r0, [r0, 0x1] ldr r1, [sp, 0x8] lsls r1, 16 asrs r1, 16 ldr r2, [r7, 0x28] ldr r2, [r2, 0xC] bl sub_809AE90 lsls r0, 24 cmp r0, 0 beq _0809E844 movs r0, 0 movs r1, 0xA bl sub_80A87AC adds r0, r7, 0 movs r1, 0 bl sub_809D8EC lsls r0, 24 cmp r0, 0 beq _0809E844 movs r0, 0x1 strh r0, [r4] _0809E844: ldr r0, [r7, 0x28] adds r0, 0x10 str r0, [r7, 0x28] b _0809E9CC _0809E84C: adds r0, r7, 0 adds r0, 0x46 movs r3, 0 ldrsh r1, [r0, r3] movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _0809E85E b _0809E9D6 _0809E85E: movs r0, 0 strh r0, [r2] b _0809E8D0 _0809E864: adds r2, r7, 0 adds r2, 0x50 ldrh r3, [r2] movs r4, 0 ldrsh r0, [r2, r4] cmp r0, 0 bne _0809E88A _0809E872: adds r0, r7, 0 adds r0, 0x46 movs r5, 0 ldrsh r1, [r0, r5] movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _0809E884 b _0809E9D6 _0809E884: adds r0, r3, 0x1 strh r0, [r2] b _0809E9CC _0809E88A: add r0, sp, 0x140 bl sub_809B18C lsls r0, 24 cmp r0, 0 bne _0809E898 b _0809E9D6 _0809E898: add r0, sp, 0x140 ldr r3, [r0] cmp r3, 0 ble _0809E8CA adds r0, r7, 0 adds r0, 0x4C movs r6, 0 ldrsh r2, [r0, r6] ldr r1, [r7, 0x40] lsls r0, r3, 4 lsls r2, 4 adds r2, r1 add r1, sp, 0x4 adds r0, r2 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldr r0, [r0] str r0, [r1] add r0, sp, 0x4 movs r5, 0x2 ldrsh r1, [r0, r5] _0809E8C2: adds r0, r7, 0 bl sub_80A242C _0809E8C8: str r0, [r7, 0x28] _0809E8CA: movs r0, 0x3 strh r0, [r7, 0x26] _0809E8CE: movs r0, 0 _0809E8D0: movs r1, 0 bl sub_80A87AC b _0809E9CC _0809E8D8: adds r0, r7, 0 adds r0, 0x46 movs r6, 0 ldrsh r1, [r0, r6] movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _0809E9D6 ldr r0, _0809E8FC ldr r1, [r0, 0x4] _0809E8EC: adds r0, r7, 0 _0809E8EE: bl sub_80A2460 str r0, [r7, 0x28] _0809E8F4: movs r0, 0x3 strh r0, [r7, 0x26] b _0809E9CC .align 2, 0 _0809E8FC: .4byte gUnknown_2039B48 _0809E900: adds r0, r7, 0 bl ExecuteScriptCommand strh r0, [r7, 0x26] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 bhi _0809E9BC lsls r0, 2 ldr r1, _0809E91C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0809E91C: .4byte _0809E920 .align 2, 0 _0809E920: .4byte _0809E934 .4byte _0809E9B8 .4byte _0809E9BC .4byte _0809E9D6 .4byte _0809E9B4 _0809E934: adds r0, r7, 0 adds r0, 0x86 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 beq _0809E9AA adds r4, r7, 0 adds r4, 0x84 adds r0, r7, 0 adds r0, 0x24 adds r1, r4, 0 movs r2, 0x60 bl memcpy ldr r2, [r7] ldr r0, [r2, 0x2C] cmp r0, 0 beq _0809E98E adds r5, r7, 0 adds r5, 0x4A movs r1, 0 ldrsb r1, [r5, r1] movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _0809E98E ldr r0, [r7, 0x4] add r1, sp, 0x144 ldr r2, [r2, 0x18] bl _call_via_r2 add r0, sp, 0x144 ldr r0, [r0] movs r1, 0x80 lsls r1, 3 ands r0, r1 cmp r0, 0 beq _0809E98E ldr r2, [r7] ldr r0, [r7, 0x4] movs r1, 0 ldrsb r1, [r5, r1] ldr r2, [r2, 0x2C] bl _call_via_r2 _0809E98E: ldr r0, [r7] ldr r2, [r0, 0x30] cmp r2, 0 beq _0809E9A2 ldr r0, [r7, 0x4] adds r1, r7, 0 adds r1, 0x48 ldrh r1, [r1] bl _call_via_r2 _0809E9A2: adds r0, r4, 0 bl sub_809D568 b _0809E9D6 _0809E9AA: adds r0, r7, 0 adds r0, 0x24 bl sub_809D568 b _0809E9D6 _0809E9B4: movs r0, 0x4 b _0809EABA _0809E9B8: movs r0, 0x1 b _0809EABA _0809E9BC: adds r1, r7, 0 adds r1, 0x50 movs r0, 0 strh r0, [r1] b _0809E9CC _0809E9C6: movs r2, 0x26 ldrsh r0, [r7, r2] b _0809EABA _0809E9CC: movs r3, 0x1 cmp r3, 0 beq _0809E9D6 bl _0809DA8A _0809E9D6: movs r0, 0x3 b _0809EABA _0809E9DA: ldr r1, [r7] ldr r0, [r7, 0x4] add r4, sp, 0xCC ldr r2, [r1, 0xC] adds r1, r4, 0 bl _call_via_r2 add r5, sp, 0xD4 adds r1, r7, 0 adds r1, 0x58 adds r2, r7, 0 adds r2, 0x60 mov r6, r8 movs r0, 0 ldrsh r6, [r6, r0] mov r9, r6 adds r6, r7, 0 adds r6, 0x50 movs r3, 0 ldrsh r0, [r6, r3] str r0, [sp] adds r0, r5, 0 mov r3, r9 bl sub_8002934 ldr r1, [r5] ldr r0, [r4] subs r1, r0 add r0, sp, 0xDC str r1, [r0] ldr r1, [r5, 0x4] ldr r2, [r4, 0x4] subs r1, r2 str r1, [r0, 0x4] bl sub_8002C60 lsls r0, 24 adds r2, r7, 0 adds r2, 0x4A asrs r1, r0, 24 lsrs r0, 24 strb r0, [r2] ldr r2, [r7] ldr r0, [r7, 0x4] ldr r2, [r2, 0x2C] bl _call_via_r2 ldr r1, [r7] ldr r0, [r7, 0x4] ldr r2, [r1, 0x24] adds r1, r5, 0 bl _call_via_r2 ldr r2, [r7] ldr r0, [r7, 0x4] movs r1, 0x80 lsls r1, 5 ldr r2, [r2, 0x30] bl _call_via_r2 mov r4, r8 ldrh r0, [r4] subs r0, 0x1 strh r0, [r4] ldrh r0, [r6] adds r0, 0x1 strh r0, [r6] b _0809E9D6 _0809EA62: add r5, sp, 0xC4 adds r1, r7, 0 adds r1, 0x58 adds r2, r7, 0 adds r2, 0x60 movs r3, 0 ldrsh r0, [r6, r3] mov r8, r0 adds r4, r7, 0 adds r4, 0x50 movs r3, 0 ldrsh r0, [r4, r3] str r0, [sp] adds r0, r5, 0 mov r3, r8 bl sub_8002934 ldr r1, [r7] ldr r0, [r7, 0x4] ldr r2, [r1, 0x24] adds r1, r5, 0 bl _call_via_r2 ldr r2, [r7] ldr r0, [r7, 0x4] movs r1, 0x80 lsls r1, 5 ldr r2, [r2, 0x30] bl _call_via_r2 ldrh r0, [r6] subs r0, 0x1 strh r0, [r6] ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] b _0809E9D6 _0809EAAC: subs r0, 0x1 strh r0, [r2] b _0809E9D6 _0809EAB2: subs r0, r2, 0x1 strh r0, [r1] b _0809E9D6 _0809EAB8: movs r0, 0 _0809EABA: add sp, 0x148 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end HandleAction thumb_func_start ExecuteScriptCommand ExecuteScriptCommand: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1BC mov r9, r0 movs r0, 0x24 add r0, r9 mov r10, r0 _0809EAE0: mov r1, r10 ldr r2, [r1, 0x4] str r2, [r1, 0x1C] add r1, sp, 0x8 adds r0, r2, 0 ldm r0!, {r3-r5} stm r1!, {r3-r5} ldr r0, [r0] str r0, [r1] adds r2, 0x10 mov r0, r10 str r2, [r0, 0x4] add r0, sp, 0x8 ldrb r0, [r0] mov r1, r10 adds r1, 0x20 strb r0, [r1] lsls r0, 24 lsrs r0, 24 subs r0, 0x1 adds r2, r1, 0 cmp r0, 0xF5 bhi _0809EAE0 lsls r0, 2 ldr r1, _0809EB18 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0809EB18: .4byte _0809EB1C .align 2, 0 _0809EB1C: .4byte _0809EEF4 .4byte _0809EF40 .4byte _0809EFA2 .4byte _0809EFD6 .4byte _0809F064 .4byte _0809F02A .4byte _0809F06C .4byte _0809F0D0 .4byte _0809F0D0 .4byte _0809F1FC .4byte _0809F2C8 .4byte _0809F2D6 .4byte _0809F2D6 .4byte _0809F2D6 .4byte _0809F2D6 .4byte _0809F2D6 .4byte _0809F2D6 .4byte _0809F2D6 .4byte _0809F2D6 .4byte _0809F2D6 .4byte _0809F2D6 .4byte _0809F42A .4byte _0809F432 .4byte _0809F43A .4byte _0809F442 .4byte _0809F4FE .4byte _0809F5BE .4byte _0809F5AE .4byte _0809F5C6 .4byte _0809F5C6 .4byte _0809F660 .4byte _0809F6EA .4byte _0809F786 .4byte _0809F830 .4byte _0809F842 .4byte _0809F854 .4byte _0809F872 .4byte _0809F884 .4byte _0809F896 .4byte _0809F896 .4byte _0809F8E8 .4byte _0809F8F4 .4byte _0809F900 .4byte _0809F90C .4byte _0809F93E .4byte _0809FAF8 .4byte _0809FB10 .4byte _0809F92E .4byte _0809F936 .4byte _0809FB28 .4byte _0809FB28 .4byte _0809FB28 .4byte _0809FB28 .4byte _0809FB28 .4byte _0809FB28 .4byte _0809FB28 .4byte _0809FBDA .4byte _0809FC12 .4byte _0809FC40 .4byte _0809FC2E .4byte _0809FC46 .4byte _0809FCA4 .4byte _0809FCC4 .4byte _0809EAE0 .4byte _080A0E3A .4byte _0809FCE8 .4byte _0809FCF0 .4byte _0809FD0A .4byte _0809FD38 .4byte _0809FD6C .4byte _0809FDA0 .4byte _0809FDA8 .4byte _0809FDC2 .4byte _0809FDD4 .4byte _0809FDE2 .4byte _0809FDC2 .4byte _0809FDD4 .4byte _0809FDE2 .4byte _0809FE04 .4byte _0809FE28 .4byte _0809FE86 .4byte _0809FEBE .4byte _0809FED0 .4byte _0809FF00 .4byte _0809FF32 .4byte _0809FF46 .4byte _0809FF62 .4byte _0809FF78 .4byte _0809FF9A .4byte _0809FFBA .4byte _0809FFE4 .4byte _080A0010 .4byte _080A0064 .4byte _080A0096 .4byte _080A010E .4byte _080A0186 .4byte _080A0198 .4byte _080A01B8 .4byte _080A01F0 .4byte _080A0220 .4byte _080A0250 .4byte _080A0282 .4byte _080A0282 .4byte _080A0560 .4byte _080A0198 .4byte _080A01B8 .4byte _080A01F0 .4byte _080A0220 .4byte _080A0250 .4byte _080A0282 .4byte _080A0282 .4byte _080A0560 .4byte _080A02B2 .4byte _080A0310 .4byte _080A0370 .4byte _080A03F8 .4byte _080A0462 .4byte _080A04F2 .4byte _080A02B2 .4byte _080A0310 .4byte _080A0370 .4byte _080A03F8 .4byte _080A0462 .4byte _080A04F2 .4byte _080A02B2 .4byte _080A0310 .4byte _080A0370 .4byte _080A03F8 .4byte _080A0462 .4byte _080A04F2 .4byte _080A02B2 .4byte _080A0310 .4byte _080A0370 .4byte _080A03F8 .4byte _080A0462 .4byte _080A04F2 .4byte _080A057C .4byte _080A05A4 .4byte _080A05F0 .4byte _080A060E .4byte _080A065C .4byte _080A068A .4byte _080A068A .4byte _080A068A .4byte _080A07CA .4byte _080A07DC .4byte _080A07C4 .4byte _080A07C4 .4byte _080A07C4 .4byte _0809EAE0 .4byte _080A080C .4byte _080A081E .4byte _080A086A .4byte _080A08BE .4byte _080A08CA .4byte _080A091E .4byte _080A0986 .4byte _080A0998 .4byte _080A09EA .4byte _080A0A52 .4byte _080A0A64 .4byte _080A0AB6 .4byte _080A0B1E .4byte _080A0B30 .4byte _080A0B42 .4byte _080A0B54 .4byte _080A0B6C .4byte _080A0B88 .4byte _080A0BA2 .4byte _080A0BB4 .4byte _080A0BDA .4byte _080A0BF6 .4byte _080A0C08 .4byte _080A0C20 .4byte _080A0C38 .4byte _080A0C50 .4byte _080A0C68 .4byte _080A0C80 .4byte _080A0C90 .4byte _080A0CA2 .4byte _080A0CC8 .4byte _080A0CF2 .4byte _080A0D16 .4byte _080A0D40 .4byte _080A0D6A .4byte _080A0D7A .4byte _080A0D94 .4byte _080A0DAE .4byte _080A0DD6 .4byte _080A0E08 .4byte _080A0DE2 .4byte _080A0E56 .4byte _080A0E56 .4byte _080A0E56 .4byte _080A0E56 .4byte _080A0E56 .4byte _080A0E56 .4byte _080A0E56 .4byte _080A0E56 .4byte _080A0E56 .4byte _080A0E56 .4byte _080A0E56 .4byte _080A0E56 .4byte _0809EAE0 .4byte _0809EAE0 .4byte _0809EAE0 .4byte _080A10A0 .4byte _0809EAE0 .4byte _0809EAE0 .4byte _080A10F8 .4byte _080A10F8 .4byte _080A10F8 .4byte _080A10F8 .4byte _080A10F8 .4byte _080A10F8 .4byte _080A10F8 .4byte _0809EAE0 .4byte _080A129E .4byte _080A12A8 .4byte _080A12B4 .4byte _0809F0C4 .4byte _0809F0C4 .4byte _0809F0C4 .4byte _0809F0C4 .4byte _0809F0C4 .4byte _0809F0C4 .4byte _080A12D0 .4byte _080A12E6 .4byte _080A12F4 .4byte _080A1318 .4byte _080A1324 .4byte _080A1338 .4byte _080A1344 .4byte _080A1368 .4byte _080A1374 .4byte _080A13CA .4byte _080A13F8 .4byte _080A1404 .4byte _080A140C .4byte _080A1428 .4byte _080A142C .4byte _0809EAE0 .4byte _0809EAE0 .4byte _0809EAE0 .4byte _0809EAE0 .4byte _0809EAE0 _0809EEF4: ldr r0, [sp, 0xC] lsls r0, 16 asrs r4, r0, 16 adds r6, r4, 0 add r0, sp, 0x8 ldrb r5, [r0, 0x1] movs r0, 0x1 bl sub_8011BA4 lsls r0, 24 cmp r0, 0 beq _0809EF26 ldr r1, _0809EF38 ldr r2, _0809EF3C lsls r0, r4, 1 adds r0, r4 lsls r0, 2 adds r2, 0x8 adds r0, r2 ldr r3, [r0] str r5, [sp] movs r0, 0x1 adds r2, r4, 0 bl Log _0809EF26: add r0, sp, 0x8 movs r1, 0x2 ldrsh r2, [r0, r1] adds r0, r6, 0 adds r1, r5, 0 bl sub_8098D1C b _0809EAE0 .align 2, 0 _0809EF38: .4byte gUnknown_81165D4 _0809EF3C: .4byte gUnknown_811BAF4 _0809EF40: ldr r0, [sp, 0xC] lsls r0, 16 asrs r4, r0, 16 movs r5, 0x1 negs r5, r5 cmp r4, r5 bne _0809EF5A movs r0, 0 movs r1, 0x13 bl sub_8001658 lsls r0, 16 asrs r4, r0, 16 _0809EF5A: movs r0, 0x1 bl sub_8011BA4 lsls r0, 24 cmp r0, 0 beq _0809EF70 ldr r1, _0809EF90 movs r0, 0x1 adds r2, r4, 0 bl Log _0809EF70: cmp r4, r5 beq _0809EF94 add r0, sp, 0x8 movs r2, 0x2 ldrsh r1, [r0, r2] adds r0, r4, 0 bl sub_8098E18 mov r0, r9 movs r1, 0x1 bl sub_80A2460 mov r3, r9 str r0, [r3, 0x28] b _0809EAE0 .align 2, 0 _0809EF90: .4byte gUnknown_81165F4 _0809EF94: mov r0, r9 movs r1, 0 bl sub_80A2460 mov r4, r9 str r0, [r4, 0x28] b _0809EAE0 _0809EFA2: ldr r0, [sp, 0xC] bl sub_8021700 lsls r0, 24 cmp r0, 0 beq _0809EFBE movs r1, 0x1 negs r1, r1 mov r0, r9 bl sub_80A2460 mov r5, r9 str r0, [r5, 0x28] b _0809EAE0 _0809EFBE: add r0, sp, 0x8 movs r1, 0x2 ldrsh r0, [r0, r1] bl sub_8098D80 mov r0, r9 movs r1, 0 bl sub_80A2460 mov r2, r9 str r0, [r2, 0x28] b _0809EAE0 _0809EFD6: ldr r1, [sp, 0xC] movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _0809F00C bl sub_802FCF0 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _0809F0BC movs r0, 0xC movs r1, 0 movs r2, 0 bl sub_809B1C0 lsls r0, 24 cmp r0, 0 beq _0809F0BC movs r0, 0 movs r1, 0xB bl sub_80A87AC mov r0, r9 adds r0, 0x4C strh r4, [r0] b _0809F0C4 _0809F00C: lsls r0, r1, 16 asrs r0, 16 bl sub_80A26B8 adds r2, r0, 0 lsls r2, 16 asrs r2, 16 movs r0, 0 movs r1, 0x12 bl sub_80018D8 mov r1, r9 adds r1, 0x4C movs r0, 0x1 b _0809F0C2 _0809F02A: ldr r2, [sp, 0xC] movs r0, 0x1 negs r0, r0 cmp r2, r0 bne _0809F054 movs r0, 0x24 movs r1, 0 movs r2, 0 bl sub_809B1C0 lsls r0, 24 cmp r0, 0 beq _0809F0BC movs r0, 0 movs r1, 0xB bl sub_80A87AC mov r1, r9 adds r1, 0x4C movs r0, 0 b _0809F0C2 _0809F054: movs r0, 0 movs r1, 0x13 bl sub_80018D8 mov r1, r9 adds r1, 0x4C movs r0, 0x1 b _0809F0C2 _0809F064: mov r1, r9 adds r1, 0x4C movs r0, 0x1 b _0809F0C2 _0809F06C: ldr r0, [sp, 0xC] lsls r0, 16 asrs r4, r0, 16 movs r0, 0x1 negs r0, r0 cmp r4, r0 bne _0809F088 movs r0, 0 movs r1, 0x13 bl sub_8001658 lsls r0, 16 asrs r4, r0, 16 b _0809F092 _0809F088: movs r0, 0 movs r1, 0x13 adds r2, r4, 0 bl sub_80018D8 _0809F092: movs r0, 0x1 bl sub_8011BA4 lsls r0, 24 cmp r0, 0 beq _0809F0A8 ldr r1, _0809F0B8 movs r0, 0x1 adds r2, r4, 0 bl Log _0809F0A8: movs r0, 0x1 negs r0, r0 cmp r4, r0 beq _0809F0BC mov r1, r9 adds r1, 0x4C movs r0, 0x1 b _0809F0C2 .align 2, 0 _0809F0B8: .4byte gUnknown_811660C _0809F0BC: mov r1, r9 adds r1, 0x4C ldr r0, _0809F0CC _0809F0C2: strh r0, [r1] _0809F0C4: movs r0, 0x2 bl _080A142E .align 2, 0 _0809F0CC: .4byte 0x0000ffff _0809F0D0: add r0, sp, 0x8 ldrb r0, [r0] cmp r0, 0x8 bne _0809F130 ldr r5, _0809F11C ldr r0, [sp, 0xC] strh r0, [r5] lsls r0, 16 asrs r0, 16 bl sub_80A4D7C ldr r4, _0809F120 strh r0, [r4] ldr r1, _0809F124 strh r0, [r1] movs r0, 0x1 bl sub_8011BA4 lsls r0, 24 cmp r0, 0 beq _0809F16A ldr r1, _0809F128 movs r3, 0 ldrsh r2, [r5, r3] movs r5, 0 ldrsh r3, [r4, r5] ldr r4, _0809F12C lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r4, 0x8 adds r0, r4 ldr r0, [r0] str r0, [sp] movs r0, 0x1 bl Log b _0809F16A .align 2, 0 _0809F11C: .4byte gUnknown_2039A30 _0809F120: .4byte gUnknown_2039A32 _0809F124: .4byte gUnknown_2039A34 _0809F128: .4byte gUnknown_8116628 _0809F12C: .4byte gUnknown_811BAF4 _0809F130: ldr r5, _0809F1E8 ldr r4, _0809F1EC ldr r1, [sp, 0xC] strh r1, [r4] strh r1, [r5] ldr r0, _0809F1F0 strh r1, [r0] movs r0, 0x1 bl sub_8011BA4 lsls r0, 24 cmp r0, 0 beq _0809F16A ldr r1, _0809F1F4 movs r0, 0 ldrsh r2, [r4, r0] movs r4, 0 ldrsh r3, [r5, r4] ldr r4, _0809F1F8 lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r4, 0x8 adds r0, r4 ldr r0, [r0] str r0, [sp] movs r0, 0x1 bl Log _0809F16A: ldr r5, _0809F1EC movs r0, 0 ldrsh r2, [r5, r0] movs r0, 0 movs r1, 0x10 bl sub_80018D8 ldr r6, _0809F1F8 movs r2, 0 ldrsh r1, [r5, r2] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r6 movs r3, 0x2 ldrsh r2, [r0, r3] movs r0, 0 movs r1, 0x11 bl sub_80018D8 ldr r4, _0809F1E8 movs r1, 0 ldrsh r0, [r4, r1] bl GroundSprite_Reset bl sub_809D0BC bl sub_80AD9D0 bl sub_80A786C bl sub_80ABB98 bl sub_80ACBD4 movs r2, 0 ldrsh r0, [r5, r2] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r6 movs r3, 0x2 ldrsh r1, [r1, r3] bl sub_809C770 movs r5, 0 ldrsh r0, [r4, r5] bl GroundMap_Select movs r1, 0 ldrsh r0, [r4, r1] bl GroundLink_Select movs r2, 0 ldrsh r0, [r4, r2] movs r1, 0 movs r2, 0 bl GroundLives_Select movs r3, 0 ldrsh r0, [r4, r3] b _0809F2A0 .align 2, 0 _0809F1E8: .4byte gUnknown_2039A32 _0809F1EC: .4byte gUnknown_2039A30 _0809F1F0: .4byte gUnknown_2039A34 _0809F1F4: .4byte gUnknown_8116644 _0809F1F8: .4byte gUnknown_811BAF4 _0809F1FC: ldr r0, [sp, 0xC] lsls r0, 16 asrs r0, 16 bl sub_80A2608 adds r6, r0, 0 ldr r1, _0809F2AC ldr r5, _0809F2B0 ldr r4, _0809F2B4 ldr r0, [sp, 0x10] strh r0, [r4] strh r0, [r5] strh r0, [r1] movs r0, 0x1 bl sub_8011BA4 lsls r0, 24 cmp r0, 0 beq _0809F242 ldr r1, _0809F2B8 movs r0, 0 ldrsh r2, [r4, r0] movs r4, 0 ldrsh r3, [r5, r4] ldr r4, _0809F2BC lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r4, 0x8 adds r0, r4 ldr r0, [r0] str r0, [sp] movs r0, 0x1 bl Log _0809F242: movs r1, 0 ldrsh r0, [r5, r1] bl GroundSprite_Reset bl sub_809D0BC bl sub_80AD9D0 bl sub_80A786C bl sub_80ABB98 bl sub_80ACBD4 ldrb r2, [r6, 0xC] ldr r1, _0809F2C0 ldr r0, [sp, 0x58] ands r0, r1 orrs r0, r2 str r0, [sp, 0x58] add r1, sp, 0x8 ldrh r2, [r1, 0x2] lsls r2, 24 lsrs r2, 16 ldr r1, _0809F2C4 ands r0, r1 orrs r0, r2 str r0, [sp, 0x58] movs r2, 0 ldrsh r0, [r5, r2] add r1, sp, 0x58 add r2, sp, 0x8 ldrb r2, [r2, 0x1] bl GroundMap_SelectDungeon movs r3, 0 ldrsh r0, [r5, r3] bl GroundLink_Select movs r4, 0 ldrsh r0, [r5, r4] movs r1, 0 movs r2, 0 bl GroundLives_Select movs r1, 0 ldrsh r0, [r5, r1] _0809F2A0: movs r1, 0 movs r2, 0 bl GroundObject_Select b _0809EAE0 .align 2, 0 _0809F2AC: .4byte gUnknown_2039A34 _0809F2B0: .4byte gUnknown_2039A32 _0809F2B4: .4byte gUnknown_2039A30 _0809F2B8: .4byte gUnknown_8116664 _0809F2BC: .4byte gUnknown_811BAF4 _0809F2C0: .4byte 0xffffff00 _0809F2C4: .4byte 0xffff00ff _0809F2C8: ldr r0, [sp, 0xC] lsls r0, 16 asrs r0, 16 bl GroundWeather_Select bl _0809EAE0 _0809F2D6: add r0, sp, 0x8 ldrh r0, [r0, 0x2] lsls r0, 16 cmp r0, 0 blt _0809F2E8 add r0, sp, 0x8 movs r2, 0x2 ldrsh r0, [r0, r2] b _0809F2EE _0809F2E8: mov r3, r10 movs r4, 0xC ldrsh r0, [r3, r4] _0809F2EE: adds r6, r0, 0 add r0, sp, 0x8 ldrb r0, [r0, 0x1] lsls r0, 24 cmp r0, 0 blt _0809F302 add r0, sp, 0x8 movs r1, 0x1 ldrsb r1, [r0, r1] b _0809F308 _0809F302: mov r5, r10 movs r1, 0xE ldrsb r1, [r5, r1] _0809F308: adds r5, r1, 0 add r0, sp, 0x8 ldrb r0, [r0] subs r0, 0xC cmp r0, 0x9 bls _0809F318 bl _0809EAE0 _0809F318: lsls r0, 2 ldr r1, _0809F324 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0809F324: .4byte _0809F328 .align 2, 0 _0809F328: .4byte _0809F350 .4byte _0809F380 .4byte _0809F398 .4byte _0809F3B0 .4byte _0809F3C8 .4byte _0809F3E0 .4byte _0809F3FA .4byte _0809F406 .4byte _0809F412 .4byte _0809F41E _0809F350: ldr r4, _0809F37C movs r1, 0 ldrsh r0, [r4, r1] adds r1, r6, 0 adds r2, r5, 0 bl GroundLives_Select movs r2, 0 ldrsh r0, [r4, r2] adds r1, r6, 0 adds r2, r5, 0 bl GroundObject_Select movs r3, 0 ldrsh r0, [r4, r3] adds r1, r6, 0 adds r2, r5, 0 bl GroundEffect_Select movs r1, 0 ldrsh r0, [r4, r1] b _0809F3CE .align 2, 0 _0809F37C: .4byte gUnknown_2039A32 _0809F380: ldr r0, _0809F394 movs r2, 0 ldrsh r0, [r0, r2] adds r1, r6, 0 adds r2, r5, 0 bl GroundLives_Select bl _0809EAE0 .align 2, 0 _0809F394: .4byte gUnknown_2039A32 _0809F398: ldr r0, _0809F3AC movs r3, 0 ldrsh r0, [r0, r3] adds r1, r6, 0 adds r2, r5, 0 bl GroundObject_Select bl _0809EAE0 .align 2, 0 _0809F3AC: .4byte gUnknown_2039A32 _0809F3B0: ldr r0, _0809F3C4 movs r4, 0 ldrsh r0, [r0, r4] adds r1, r6, 0 adds r2, r5, 0 bl GroundEffect_Select bl _0809EAE0 .align 2, 0 _0809F3C4: .4byte gUnknown_2039A32 _0809F3C8: ldr r0, _0809F3DC movs r1, 0 ldrsh r0, [r0, r1] _0809F3CE: adds r1, r6, 0 adds r2, r5, 0 bl GroundEvent_Select bl _0809EAE0 .align 2, 0 _0809F3DC: .4byte gUnknown_2039A32 _0809F3E0: adds r0, r6, 0 adds r1, r5, 0 bl GroundLives_Cancel adds r0, r6, 0 adds r1, r5, 0 bl GroundObject_Cancel adds r0, r6, 0 adds r1, r5, 0 bl GroundEffect_Cancel b _0809F41E _0809F3FA: adds r0, r6, 0 adds r1, r5, 0 bl GroundLives_Cancel bl _0809EAE0 _0809F406: adds r0, r6, 0 adds r1, r5, 0 bl GroundObject_Cancel bl _0809EAE0 _0809F412: adds r0, r6, 0 adds r1, r5, 0 bl GroundEffect_Cancel bl _0809EAE0 _0809F41E: adds r0, r6, 0 adds r1, r5, 0 bl GroundEvent_Cancel bl _0809EAE0 _0809F42A: bl sub_80A79FC bl _0809EAE0 _0809F432: bl GroundObject_CancelBlank bl _0809EAE0 _0809F43A: bl GroundEffect_CancelBlank bl _0809EAE0 _0809F442: mov r2, r9 ldr r1, [r2] ldr r0, [r2, 0x4] add r4, sp, 0x18 ldr r2, [r1, 0x14] adds r1, r4, 0 bl _call_via_r2 add r6, sp, 0x1C ldr r0, [sp, 0x10] add r5, sp, 0x34 movs r2, 0 strb r0, [r5] ldrb r1, [r4] mov r0, sp adds r0, 0x35 strb r1, [r0] adds r0, 0x1 movs r1, 0x1 strb r1, [r0] adds r0, 0x1 strb r1, [r0] str r2, [sp, 0x38] add r4, sp, 0x3C adds r0, r4, 0 movs r1, 0 movs r2, 0x10 bl memset ldr r2, _0809F4AC ldr r1, [sp, 0xC] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r2, 0x8 adds r0, r2 ldr r0, [r0] str r0, [r4, 0xC] adds r0, r6, 0 adds r1, r5, 0 movs r2, 0x18 bl memcpy add r0, sp, 0x8 ldrh r0, [r0, 0x2] lsls r0, 16 adds r1, r6, 0 cmp r0, 0 blt _0809F4B0 add r0, sp, 0x8 movs r3, 0x2 ldrsh r2, [r0, r3] b _0809F4B6 .align 2, 0 _0809F4AC: .4byte gFunctionScriptTable _0809F4B0: mov r4, r10 movs r5, 0xC ldrsh r2, [r4, r5] _0809F4B6: add r0, sp, 0x8 ldrb r0, [r0, 0x1] lsls r0, 24 cmp r0, 0 blt _0809F4C8 add r0, sp, 0x8 movs r3, 0x1 ldrsb r3, [r0, r3] b _0809F4CE _0809F4C8: mov r0, r10 movs r3, 0xE ldrsb r3, [r0, r3] _0809F4CE: movs r0, 0x1 negs r0, r0 bl GroundObject_Add lsls r0, 16 asrs r5, r0, 16 cmp r5, 0 bge _0809F4E2 bl _0809EAE0 _0809F4E2: mov r2, r9 ldr r1, [r2] ldr r0, [r2, 0x4] add r4, sp, 0x5C ldr r2, [r1, 0xC] adds r1, r4, 0 bl _call_via_r2 adds r0, r5, 0 adds r1, r4, 0 bl sub_80AC49C bl _0809EAE0 _0809F4FE: mov r3, r9 ldr r1, [r3] ldr r0, [r3, 0x4] add r4, sp, 0x4C ldr r2, [r1, 0x14] adds r1, r4, 0 bl _call_via_r2 add r5, sp, 0x1C ldr r0, [sp, 0x10] add r1, sp, 0x28 movs r3, 0 strb r0, [r1] ldrb r2, [r4] mov r0, sp adds r0, 0x29 strb r2, [r0] adds r0, 0x1 movs r2, 0x1 strb r2, [r0] adds r0, 0x1 strb r2, [r0] str r3, [sp, 0x2C] ldr r3, _0809F55C ldr r2, [sp, 0xC] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r3, 0x8 adds r0, r3 ldr r0, [r0] str r0, [sp, 0x30] adds r0, r5, 0 movs r2, 0xC bl memcpy add r0, sp, 0x8 ldrh r0, [r0, 0x2] lsls r0, 16 adds r1, r5, 0 cmp r0, 0 blt _0809F560 add r0, sp, 0x8 movs r4, 0x2 ldrsh r2, [r0, r4] b _0809F566 .align 2, 0 _0809F55C: .4byte gFunctionScriptTable _0809F560: mov r5, r10 movs r0, 0xC ldrsh r2, [r5, r0] _0809F566: add r0, sp, 0x8 ldrb r0, [r0, 0x1] lsls r0, 24 cmp r0, 0 blt _0809F578 add r0, sp, 0x8 movs r3, 0x1 ldrsb r3, [r0, r3] b _0809F57E _0809F578: mov r4, r10 movs r3, 0xE ldrsb r3, [r4, r3] _0809F57E: movs r0, 0x1 negs r0, r0 bl GroundEffect_Add lsls r0, 16 asrs r5, r0, 16 cmp r5, 0 bge _0809F592 bl _0809EAE0 _0809F592: mov r0, r9 ldr r1, [r0] ldr r0, [r0, 0x4] add r4, sp, 0x64 ldr r2, [r1, 0xC] adds r1, r4, 0 bl _call_via_r2 adds r0, r5, 0 adds r1, r4, 0 bl sub_80AD3B4 bl _0809EAE0 _0809F5AE: add r0, sp, 0x8 movs r1, 0x2 ldrsh r0, [r0, r1] movs r1, 0x1 bl GroundMap_ExecuteEvent bl _0809EAE0 _0809F5BE: add r0, sp, 0x8 movs r2, 0x2 ldrsh r0, [r0, r2] b _0809F712 _0809F5C6: ldr r1, [sp, 0xC] movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _0809F5D6 lsls r0, r1, 16 asrs r0, 16 b _0809F5DC _0809F5D6: ldr r0, _0809F5F0 movs r3, 0 ldrsh r0, [r0, r3] _0809F5DC: adds r4, r0, 0 add r0, sp, 0x8 ldrh r0, [r0, 0x2] lsls r0, 16 cmp r0, 0 blt _0809F5F4 add r0, sp, 0x8 movs r5, 0x2 ldrsh r1, [r0, r5] b _0809F5FA .align 2, 0 _0809F5F0: .4byte gUnknown_2039A30 _0809F5F4: mov r0, r10 movs r2, 0xC ldrsh r1, [r0, r2] _0809F5FA: adds r6, r1, 0 add r0, sp, 0x8 ldrb r0, [r0, 0x1] lsls r0, 24 cmp r0, 0 blt _0809F60E add r0, sp, 0x8 movs r5, 0x1 ldrsb r5, [r0, r5] b _0809F614 _0809F60E: mov r3, r10 movs r5, 0xE ldrsb r5, [r3, r5] _0809F614: adds r0, r4, 0 bl sub_80A4D7C lsls r0, 16 asrs r4, r0, 16 movs r3, 0 add r0, sp, 0x8 ldrb r0, [r0] cmp r0, 0x1E bne _0809F62A movs r3, 0x1 _0809F62A: adds r0, r4, 0 adds r1, r6, 0 adds r2, r5, 0 bl GroundMap_ExecuteStation ldr r1, _0809F65C movs r5, 0 ldrsh r0, [r1, r5] cmp r0, r4 bne _0809F642 bl _0809EAE0 _0809F642: strh r4, [r1] bl sub_809D940 mov r1, r9 movs r2, 0x8 ldrsh r0, [r1, r2] cmp r0, 0 bne _0809F656 bl _0809EAE0 _0809F656: bl _080A142C .align 2, 0 _0809F65C: .4byte gUnknown_2039A34 _0809F660: movs r0, 0 movs r1, 0x13 bl sub_8001658 lsls r0, 16 asrs r4, r0, 16 adds r0, r4, 0 bl sub_80A2608 adds r5, r0, 0 lsls r2, r4, 16 lsrs r2, 16 movs r0, 0 movs r1, 0x30 bl sub_8001784 cmp r0, 0 bne _0809F68A movs r3, 0x6 ldrsh r5, [r5, r3] b _0809F68E _0809F68A: movs r0, 0x8 ldrsh r5, [r5, r0] _0809F68E: adds r0, r4, 0 subs r0, 0x37 lsls r0, 16 lsrs r0, 16 cmp r0, 0x10 bls _0809F6DC adds r0, r4, 0 bl sub_80A2750 lsls r0, 16 asrs r0, 16 cmp r0, 0x1 bne _0809F6DC movs r0, 0x1 negs r0, r0 cmp r5, r0 bne _0809F6D8 movs r0, 0x1 bl sub_8011BA4 lsls r0, 24 cmp r0, 0 beq _0809F6C6 ldr r1, _0809F6D4 movs r0, 0x1 adds r2, r4, 0 bl Log _0809F6C6: adds r0, r4, 0 adds r1, r5, 0 bl sub_8098E18 bl _0809EAE0 .align 2, 0 _0809F6D4: .4byte gUnknown_8116684 _0809F6D8: adds r0, r5, 0 b _0809F712 _0809F6DC: movs r1, 0x1 negs r1, r1 adds r0, r4, 0 bl sub_8098E18 bl _0809EAE0 _0809F6EA: mov r1, r9 movs r2, 0xC ldrsh r0, [r1, r2] cmp r0, 0x1 beq _0809F71C cmp r0, 0x1 bgt _0809F700 cmp r0, 0 beq _0809F70C bl _0809EAE0 _0809F700: cmp r0, 0x2 beq _0809F73E cmp r0, 0x3 beq _0809F762 bl _0809EAE0 _0809F70C: add r0, sp, 0x8 movs r3, 0x2 ldrsh r0, [r0, r3] _0809F712: movs r1, 0 bl GroundMap_ExecuteEvent bl _0809EAE0 _0809F71C: add r4, sp, 0x1C add r0, sp, 0x8 movs r5, 0x2 ldrsh r2, [r0, r5] mov r0, r9 adds r1, r4, 0 bl sub_809D710 mov r1, r9 movs r2, 0xE ldrsh r0, [r1, r2] adds r1, 0x8 adds r2, r4, 0 bl GroundLives_ExecuteScript bl _0809EAE0 _0809F73E: add r4, sp, 0x28 add r0, sp, 0x8 movs r3, 0x2 ldrsh r2, [r0, r3] mov r0, r9 adds r1, r4, 0 bl sub_809D710 mov r5, r9 movs r1, 0xE ldrsh r0, [r5, r1] mov r1, r9 adds r1, 0x8 adds r2, r4, 0 bl GroundObject_ExecuteScript bl _0809EAE0 _0809F762: add r4, sp, 0x34 add r0, sp, 0x8 movs r3, 0x2 ldrsh r2, [r0, r3] mov r0, r9 adds r1, r4, 0 bl sub_809D710 mov r5, r9 movs r1, 0xE ldrsh r0, [r5, r1] mov r1, r9 adds r1, 0x8 adds r2, r4, 0 bl GroundEffect_ExecuteScript bl _0809EAE0 _0809F786: ldr r0, [sp, 0xC] lsls r0, 16 asrs r0, 16 bl sub_80A7AE8 lsls r0, 16 asrs r0, 16 mov r8, r0 cmp r0, 0 bge _0809F79E bl _0809EAE0 _0809F79E: add r1, sp, 0x6C bl sub_80A8BD8 ldr r0, [sp, 0x6C] movs r1, 0x80 lsls r1, 2 ands r0, r1 cmp r0, 0 beq _0809F818 mov r2, r9 ldr r1, [r2] ldr r0, [r2, 0x4] add r7, sp, 0x70 ldr r2, [r1, 0xC] adds r1, r7, 0 bl _call_via_r2 mov r3, r9 ldr r1, [r3] ldr r0, [r3, 0x4] add r5, sp, 0x78 ldr r2, [r1, 0x8] adds r1, r5, 0 bl _call_via_r2 add r6, sp, 0x80 mov r0, r8 adds r1, r6, 0 bl sub_80A8FD8 add r4, sp, 0x88 mov r0, r8 adds r1, r4, 0 bl sub_80A8F9C adds r0, r6, 0 adds r1, r4, 0 adds r2, r7, 0 adds r3, r5, 0 bl sub_8002DF0 lsls r0, 24 asrs r1, r0, 24 adds r4, r1, 0 movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _0809F812 ldr r3, _0809F82C adds r0, r7, 0 adds r1, r3, 0 adds r2, r6, 0 bl sub_8002D54 lsls r0, 24 asrs r1, r0, 24 cmp r1, r4 beq _0809F818 _0809F812: mov r0, r8 bl sub_80A9090 _0809F818: mov r4, r9 movs r5, 0xA ldrsh r0, [r4, r5] mov r1, r8 bl GroundLives_ExecutePlayerScriptActionLives movs r0, 0x3 bl _080A142E .align 2, 0 _0809F82C: .4byte gUnknown_81164DC _0809F830: add r0, sp, 0x8 movs r1, 0x2 ldrsh r0, [r0, r1] bl sub_80999E8 add r0, sp, 0x8 ldrb r0, [r0, 0x1] bl _080A130C _0809F842: add r0, sp, 0x8 movs r2, 0x2 ldrsh r0, [r0, r2] bl sub_80999FC add r0, sp, 0x8 ldrb r0, [r0, 0x1] bl _080A130C _0809F854: add r0, sp, 0x8 movs r3, 0x2 ldrsh r0, [r0, r3] ldr r1, [sp, 0xC] lsls r1, 16 lsrs r1, 16 ldr r2, [sp, 0x10] lsls r2, 16 lsrs r2, 16 bl sub_8099A10 add r0, sp, 0x8 ldrb r0, [r0, 0x1] bl _080A130C _0809F872: add r0, sp, 0x8 movs r4, 0x2 ldrsh r0, [r0, r4] bl sub_8099A34 add r0, sp, 0x8 ldrb r0, [r0, 0x1] bl _080A130C _0809F884: add r0, sp, 0x8 movs r5, 0x2 ldrsh r0, [r0, r5] bl sub_8099A48 add r0, sp, 0x8 ldrb r0, [r0, 0x1] bl _080A130C _0809F896: ldr r0, [sp, 0x10] asrs r0, 16 add r1, sp, 0x20 movs r2, 0 strb r0, [r1] ldr r0, [sp, 0x10] asrs r0, 8 adds r1, 0x1 strb r0, [r1] ldr r1, [sp, 0x10] mov r0, sp adds r0, 0x22 strb r1, [r0] adds r0, 0x1 strb r2, [r0] ldr r2, [sp, 0x20] str r2, [sp, 0x1C] add r0, sp, 0x8 ldrb r0, [r0] cmp r0, 0x27 beq _0809F8C6 cmp r0, 0x28 beq _0809F8D4 b _0809F8E0 _0809F8C6: add r0, sp, 0x8 movs r1, 0x2 ldrsh r0, [r0, r1] ldr r1, [sp, 0xC] bl sub_8099A5C b _0809F8E0 _0809F8D4: add r0, sp, 0x8 movs r3, 0x2 ldrsh r0, [r0, r3] ldr r1, [sp, 0xC] bl sub_8099AFC _0809F8E0: add r0, sp, 0x8 ldrb r0, [r0, 0x1] bl _080A130C _0809F8E8: add r0, sp, 0x8 ldrh r0, [r0, 0x2] bl sub_809A6E4 bl _0809EAE0 _0809F8F4: add r0, sp, 0x8 ldrh r0, [r0, 0x2] bl sub_809A6F8 bl _0809EAE0 _0809F900: ldr r0, [sp, 0xC] ldr r1, [sp, 0x10] bl sub_809A738 bl _0809EAE0 _0809F90C: bl sub_809A768 lsls r0, 24 cmp r0, 0 bne _0809F91A bl _0809EAE0 _0809F91A: movs r0, 0 movs r1, 0xA bl sub_80A87AC mov r0, r9 movs r1, 0 bl sub_809D8EC bl _080A130A _0809F92E: bl sub_809A76C bl _0809EAE0 _0809F936: bl sub_809A7B4 bl _0809EAE0 _0809F93E: add r0, sp, 0x8 ldrb r0, [r0, 0x1] cmp r0, 0xA bls _0809F94A bl _0809EAE0 _0809F94A: lsls r0, 2 ldr r1, _0809F954 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0809F954: .4byte _0809F958 .align 2, 0 _0809F958: .4byte _0809F984 .4byte _0809F992 .4byte _0809F9A4 .4byte _0809F9B6 .4byte _0809F9D8 .4byte _0809F9EA .4byte _0809F9FC .4byte _0809FA44 .4byte _0809FA56 .4byte _0809FA68 .4byte _0809FAB0 _0809F984: add r0, sp, 0x8 movs r4, 0x2 ldrsh r0, [r0, r4] bl sub_809A83C bl _0809EAE0 _0809F992: add r0, sp, 0x8 movs r5, 0x2 ldrsh r0, [r0, r5] mov r1, r9 adds r1, 0x8 bl sub_80A2500 bl _0809EAE0 _0809F9A4: add r0, sp, 0x8 movs r1, 0x2 ldrsh r0, [r0, r1] mov r1, r9 adds r1, 0xC bl sub_80A2500 bl _0809EAE0 _0809F9B6: ldr r0, [sp, 0xC] lsls r0, 16 asrs r0, 16 bl sub_80A7AE8 add r1, sp, 0x90 lsls r0, 16 movs r2, 0x1 orrs r0, r2 str r0, [r1] add r0, sp, 0x8 movs r2, 0x2 ldrsh r0, [r0, r2] bl sub_80A2500 bl _0809EAE0 _0809F9D8: add r0, sp, 0x8 movs r3, 0x2 ldrsh r0, [r0, r3] mov r1, r9 adds r1, 0x8 bl sub_80A252C bl _0809EAE0 _0809F9EA: add r0, sp, 0x8 movs r4, 0x2 ldrsh r0, [r0, r4] mov r1, r9 adds r1, 0xC bl sub_80A252C bl _0809EAE0 _0809F9FC: ldr r0, [sp, 0xC] lsls r0, 16 asrs r0, 16 bl sub_80A7AE8 lsls r0, 16 add r1, sp, 0x94 ldrh r2, [r1] orrs r2, r0 str r2, [r1] cmp r2, 0 blt _0809FA30 ldr r0, _0809FA2C ands r2, r0 movs r0, 0x1 orrs r2, r0 str r2, [r1] add r0, sp, 0x8 movs r5, 0x2 ldrsh r0, [r0, r5] bl sub_80A252C bl _0809EAE0 .align 2, 0 _0809FA2C: .4byte 0xffff0000 _0809FA30: add r0, sp, 0x8 movs r1, 0x2 ldrsh r0, [r0, r1] ldr r1, [sp, 0xC] lsls r1, 16 asrs r1, 16 bl sub_80A2584 bl _0809EAE0 _0809FA44: add r0, sp, 0x8 movs r2, 0x2 ldrsh r0, [r0, r2] mov r1, r9 adds r1, 0x8 bl sub_80A2558 bl _0809EAE0 _0809FA56: add r0, sp, 0x8 movs r3, 0x2 ldrsh r0, [r0, r3] mov r1, r9 adds r1, 0xC bl sub_80A2558 bl _0809EAE0 _0809FA68: ldr r0, [sp, 0xC] lsls r0, 16 asrs r0, 16 bl sub_80A7AE8 lsls r0, 16 add r1, sp, 0x98 ldrh r2, [r1] orrs r2, r0 str r2, [r1] cmp r2, 0 blt _0809FA9C ldr r0, _0809FA98 ands r2, r0 movs r0, 0x1 orrs r2, r0 str r2, [r1] add r0, sp, 0x8 movs r4, 0x2 ldrsh r0, [r0, r4] bl sub_80A2558 bl _0809EAE0 .align 2, 0 _0809FA98: .4byte 0xffff0000 _0809FA9C: add r0, sp, 0x8 movs r5, 0x2 ldrsh r0, [r0, r5] ldr r1, [sp, 0xC] lsls r1, 16 asrs r1, 16 bl sub_80A2598 bl _0809EAE0 _0809FAB0: ldr r0, [sp, 0xC] lsls r0, 16 asrs r0, 16 bl sub_80A2740 lsls r0, 24 lsrs r1, r0, 24 movs r4, 0 ldr r0, [sp, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0 beq _0809FAD0 cmp r0, 0x2 beq _0809FAD4 b _0809FAD8 _0809FAD0: movs r4, 0x1 b _0809FAD8 _0809FAD4: movs r4, 0x1 negs r4, r4 _0809FAD8: adds r0, r1, 0 bl sub_8090298 ldr r2, _0809FAF4 add r1, sp, 0x8 movs r3, 0x2 ldrsh r1, [r1, r3] lsls r1, 2 adds r1, r2 adds r0, r4 str r0, [r1] bl _0809EAE0 .align 2, 0 _0809FAF4: .4byte gUnknown_202DE30 _0809FAF8: add r0, sp, 0x8 movs r4, 0x2 ldrsh r0, [r0, r4] ldr r1, [sp, 0xC] lsls r1, 24 asrs r1, 24 add r2, sp, 0x8 ldrb r2, [r2, 0x1] bl sub_809AC7C bl _0809EAE0 _0809FB10: ldr r0, [sp, 0xC] add r1, sp, 0x9C str r0, [r1] ldr r0, [sp, 0x10] str r0, [r1, 0x4] add r0, sp, 0x8 movs r5, 0x2 ldrsh r0, [r0, r5] bl sub_809ADD8 bl _0809EAE0 _0809FB28: movs r1, 0 ldrb r0, [r2] subs r0, 0x32 cmp r0, 0x6 bhi _0809FBBE lsls r0, 2 ldr r1, _0809FB3C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0809FB3C: .4byte _0809FB40 .align 2, 0 _0809FB40: .4byte _0809FB5C .4byte _0809FB6C .4byte _0809FB7C .4byte _0809FB8C .4byte _0809FB9C .4byte _0809FBAC .4byte _0809FBB4 _0809FB5C: add r0, sp, 0x8 movs r2, 0x2 ldrsh r1, [r0, r2] ldr r2, [sp, 0x14] movs r0, 0 bl sub_809AE90 b _0809FBBA _0809FB6C: add r0, sp, 0x8 movs r3, 0x2 ldrsh r1, [r0, r3] ldr r2, [sp, 0x14] movs r0, 0x1 bl sub_809AE90 b _0809FBBA _0809FB7C: add r0, sp, 0x8 movs r4, 0x2 ldrsh r1, [r0, r4] ldr r2, [sp, 0x14] movs r0, 0x2 bl sub_809AE90 b _0809FBBA _0809FB8C: add r0, sp, 0x8 movs r5, 0x2 ldrsh r1, [r0, r5] ldr r2, [sp, 0x14] movs r0, 0x3 bl sub_809AE90 b _0809FBBA _0809FB9C: add r0, sp, 0x8 movs r2, 0x2 ldrsh r1, [r0, r2] ldr r2, [sp, 0x14] movs r0, 0x4 bl sub_809AE90 b _0809FBBA _0809FBAC: ldr r0, [sp, 0x14] bl sub_809AEEC b _0809FBBA _0809FBB4: ldr r0, [sp, 0x14] bl sub_809AF2C _0809FBBA: lsls r0, 24 lsrs r1, r0, 24 _0809FBBE: cmp r1, 0 bne _0809FBC6 bl _0809EAE0 _0809FBC6: movs r0, 0 movs r1, 0xA bl sub_80A87AC mov r0, r9 movs r1, 0 bl sub_809D8EC bl _080A130A _0809FBDA: add r0, sp, 0x8 movs r3, 0x2 ldrsh r0, [r0, r3] ldr r1, [sp, 0x14] bl sub_809AF6C lsls r0, 24 cmp r0, 0 bne _0809FBF0 bl _0809EAE0 _0809FBF0: add r0, sp, 0x8 ldrh r0, [r0, 0x2] lsls r0, 16 cmp r0, 0 bge _0809FBFE bl _0809EAE0 _0809FBFE: movs r0, 0 movs r1, 0xA bl sub_80A87AC mov r0, r9 movs r1, 0 bl sub_809D8EC bl _080A130A _0809FC12: add r0, sp, 0x8 ldrb r1, [r0, 0x1] negs r0, r1 orrs r0, r1 lsrs r0, 31 ldr r1, [sp, 0xC] ldr r2, [sp, 0x10] lsls r2, 16 asrs r2, 16 ldr r3, [sp, 0x14] bl sub_809AFC8 bl _080A1280 _0809FC2E: add r0, sp, 0x8 ldrb r0, [r0, 0x1] ldr r1, [sp, 0xC] ldr r2, [sp, 0x10] ldr r3, [sp, 0x14] bl sub_809B1D4 bl _080A1292 _0809FC40: movs r0, 0 bl _080A0654 _0809FC46: ldr r0, [sp, 0xC] lsls r0, 16 asrs r1, r0, 16 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _0809FC90 adds r0, r1, 0 bl sub_80A8D54 cmp r0, 0 bne _0809FC62 bl _0809EAE0 _0809FC62: movs r3, 0 ldr r2, _0809FC8C adds r5, r2, 0 adds r4, r0, 0 adds r4, 0x4C _0809FC6C: adds r0, r3, r5 adds r1, r4, r3 ldrb r1, [r1] strb r1, [r0] adds r3, 0x1 cmp r3, 0x9 ble _0809FC6C movs r0, 0 strb r0, [r2, 0xA] movs r0, 0x4 movs r1, 0 bl sub_809B1C0 bl _080A1292 .align 2, 0 _0809FC8C: .4byte gUnknown_2039D98 _0809FC90: ldr r2, _0809FCA0 movs r0, 0x4 movs r1, 0x1 bl sub_809B1C0 bl _080A1292 .align 2, 0 _0809FCA0: .4byte gUnknown_2039D98 _0809FCA4: ldr r4, _0809FCC0 adds r0, r4, 0 bl sub_80920B8 movs r0, 0 strb r0, [r4, 0xA] movs r0, 0x5 movs r1, 0 adds r2, r4, 0 bl sub_809B1C0 bl _080A1292 .align 2, 0 _0809FCC0: .4byte gUnknown_2039D98 _0809FCC4: ldr r2, _0809FCE4 adds r3, r2, 0 movs r1, 0 adds r0, r2, 0 adds r0, 0xB _0809FCCE: strb r1, [r0] subs r0, 0x1 cmp r0, r3 bge _0809FCCE add r0, sp, 0x8 ldrb r1, [r0, 0x1] movs r0, 0x6 bl sub_809B1C0 bl _080A1292 .align 2, 0 _0809FCE4: .4byte gUnknown_2039D98 _0809FCE8: bl sub_80118A4 bl _0809EAE0 _0809FCF0: add r0, sp, 0x8 ldrh r0, [r0, 0x2] lsls r0, 16 cmp r0, 0 blt _0809FD00 add r0, sp, 0x8 ldrh r0, [r0, 0x2] b _0809FD02 _0809FD00: movs r0, 0x1E _0809FD02: bl sub_80118C4 bl _0809EAE0 _0809FD0A: add r0, sp, 0x8 ldrb r0, [r0, 0x1] cmp r0, 0 bne _0809FD1E ldr r0, [sp, 0xC] lsls r0, 16 lsrs r0, 16 bl sub_80A25AC b _0809FD20 _0809FD1E: ldr r0, [sp, 0xC] _0809FD20: lsls r0, 16 lsrs r1, r0, 16 ldr r0, _0809FD34 cmp r1, r0 beq _0809FDA0 adds r0, r1, 0 bl xxx_call_start_new_bgm bl _0809EAE0 .align 2, 0 _0809FD34: .4byte 0x000003e7 _0809FD38: add r0, sp, 0x8 ldrb r0, [r0, 0x1] cmp r0, 0 bne _0809FD4C ldr r0, [sp, 0xC] lsls r0, 16 lsrs r0, 16 bl sub_80A25AC b _0809FD4E _0809FD4C: ldr r0, [sp, 0xC] _0809FD4E: lsls r0, 16 lsrs r2, r0, 16 ldr r0, _0809FD68 cmp r2, r0 beq _0809FDA0 add r0, sp, 0x8 ldrh r1, [r0, 0x2] adds r0, r2, 0 bl xxx_call_fade_in_new_bgm bl _0809EAE0 .align 2, 0 _0809FD68: .4byte 0x000003e7 _0809FD6C: add r0, sp, 0x8 ldrb r0, [r0, 0x1] cmp r0, 0 bne _0809FD80 ldr r0, [sp, 0xC] lsls r0, 16 lsrs r0, 16 bl sub_80A25AC b _0809FD82 _0809FD80: ldr r0, [sp, 0xC] _0809FD82: lsls r0, 16 lsrs r1, r0, 16 ldr r0, _0809FD9C cmp r1, r0 bne _0809FD90 bl _0809EAE0 _0809FD90: adds r0, r1, 0 bl sub_8011914 bl _0809EAE0 .align 2, 0 _0809FD9C: .4byte 0x000003e7 _0809FDA0: bl sub_8011924 bl _0809EAE0 _0809FDA8: add r0, sp, 0x8 ldrh r0, [r0, 0x2] lsls r0, 16 cmp r0, 0 blt _0809FDB8 add r0, sp, 0x8 ldrh r0, [r0, 0x2] b _0809FDBA _0809FDB8: movs r0, 0x1E _0809FDBA: bl xxx_call_fade_out_bgm bl _0809EAE0 _0809FDC2: ldr r0, [sp, 0xC] lsls r0, 16 lsrs r0, 16 movs r1, 0x80 lsls r1, 1 bl sub_8011974 bl _0809EAE0 _0809FDD4: ldr r0, [sp, 0xC] lsls r0, 16 lsrs r0, 16 bl sub_801199C bl _0809EAE0 _0809FDE2: ldr r0, [sp, 0xC] lsls r0, 16 lsrs r2, r0, 16 add r0, sp, 0x8 ldrh r0, [r0, 0x2] lsls r0, 16 cmp r0, 0 blt _0809FDF8 add r0, sp, 0x8 ldrh r1, [r0, 0x2] b _0809FDFA _0809FDF8: movs r1, 0x1E _0809FDFA: adds r0, r2, 0 bl sub_80119AC bl _0809EAE0 _0809FE04: mov r1, r9 adds r1, 0x84 movs r5, 0 ldrsh r0, [r1, r5] cmp r0, 0x1 bne _0809FE16 adds r0, r1, 0 bl sub_809D568 _0809FE16: mov r0, r9 ldr r1, [r0] ldr r0, [r0, 0x4] ldr r2, [r1, 0x1C] movs r1, 0 bl _call_via_r2 bl _0809EAE0 _0809FE28: mov r0, r9 adds r0, 0xC bl sub_809D52C adds r4, r0, 0 cmp r4, 0 bne _0809FE3A bl _0809EAE0 _0809FE3A: ldr r1, [r4] mov r2, r9 ldr r0, [r2, 0x4] add r5, sp, 0xA4 ldr r2, [r1, 0xC] adds r1, r5, 0 bl _call_via_r2 ldr r1, [r4] mov r3, r9 ldr r0, [r3, 0x4] mov r4, sp adds r4, 0x4D ldr r2, [r1, 0x14] adds r1, r4, 0 bl _call_via_r2 mov r0, r9 ldr r1, [r0] ldr r0, [r0, 0x4] ldr r2, [r1, 0x24] adds r1, r5, 0 bl _call_via_r2 ldrb r0, [r4] mov r1, r9 adds r1, 0x4A strb r0, [r1] mov r1, r9 ldr r2, [r1] ldr r0, [r1, 0x4] movs r1, 0 ldrsb r1, [r4, r1] ldr r2, [r2, 0x2C] bl _call_via_r2 bl _0809EAE0 _0809FE86: mov r2, r9 ldr r1, [r2] ldr r0, [r2, 0x4] add r6, sp, 0xAC ldr r2, [r1, 0xC] adds r1, r6, 0 bl _call_via_r2 add r0, sp, 0x8 movs r3, 0x2 ldrsh r0, [r0, r3] add r4, sp, 0xB4 add r5, sp, 0xBC adds r1, r4, 0 adds r2, r5, 0 adds r3, r6, 0 bl sub_80AD914 mov r0, r9 ldr r1, [r0] ldr r0, [r0, 0x4] ldr r3, [r1, 0x20] adds r1, r4, 0 adds r2, r5, 0 bl _call_via_r3 bl _0809EAE0 _0809FEBE: mov r1, r9 ldr r2, [r1] ldr r0, [r1, 0x4] ldr r1, [sp, 0xC] ldr r2, [r2, 0x3C] bl _call_via_r2 bl _0809EAE0 _0809FED0: ldr r0, [sp, 0xC] movs r1, 0x80 lsls r1, 3 ands r0, r1 cmp r0, 0 beq _0809FEEE mov r1, r9 adds r1, 0x84 movs r2, 0 ldrsh r0, [r1, r2] cmp r0, 0x1 bne _0809FEEE adds r0, r1, 0 bl sub_809D568 _0809FEEE: mov r3, r9 ldr r2, [r3] ldr r0, [r3, 0x4] ldr r1, [sp, 0xC] ldr r2, [r2, 0x40] bl _call_via_r2 bl _0809EAE0 _0809FF00: mov r4, r9 ldr r2, [r4] ldr r0, [r4, 0x4] mov r1, r9 adds r1, 0x4A ldr r2, [r2, 0x14] bl _call_via_r2 add r0, sp, 0x8 ldrh r1, [r0, 0x2] cmp r1, 0 beq _0809FF1E mov r0, r9 adds r0, 0x48 strh r1, [r0] _0809FF1E: mov r5, r9 ldr r2, [r5] ldr r0, [r5, 0x4] add r1, sp, 0x8 ldrh r1, [r1, 0x2] ldr r2, [r2, 0x30] bl _call_via_r2 bl _0809EAE0 _0809FF32: mov r0, r9 ldr r2, [r0] ldr r0, [r0, 0x4] add r1, sp, 0x8 ldrh r1, [r1, 0x2] ldr r2, [r2, 0x34] bl _call_via_r2 bl _0809EAE0 _0809FF46: mov r1, r9 ldr r3, [r1] ldr r0, [r1, 0x4] ldr r1, [sp, 0xC] lsls r1, 16 asrs r1, 16 add r2, sp, 0x8 movs r4, 0x2 ldrsh r2, [r2, r4] ldr r3, [r3, 0x38] bl _call_via_r3 bl _0809EAE0 _0809FF62: mov r5, r9 ldr r2, [r5] ldr r0, [r5, 0x4] add r1, sp, 0x8 movs r3, 0x2 ldrsh r1, [r1, r3] ldr r2, [r2, 0x44] bl _call_via_r2 bl _0809EAE0 _0809FF78: ldr r0, [sp, 0xC] lsls r0, 8 add r1, sp, 0xC4 str r0, [r1] ldr r0, [sp, 0x10] lsls r0, 8 str r0, [r1, 0x4] mov r4, r9 ldr r2, [r4] ldr r0, [r4, 0x4] ldr r2, [r2, 0x24] bl _call_via_r2 add r0, sp, 0x8 ldrb r0, [r0, 0x1] mov r5, r10 b _080A05EA _0809FF9A: add r0, sp, 0x8 movs r1, 0x2 ldrsh r0, [r0, r1] lsls r0, 8 add r1, sp, 0xCC str r0, [r1] ldr r0, [sp, 0xC] lsls r0, 8 str r0, [r1, 0x4] mov r3, r9 ldr r2, [r3] ldr r0, [r3, 0x4] ldr r2, [r2, 0x48] bl _call_via_r2 b _080A0650 _0809FFBA: add r0, sp, 0x8 movs r5, 0x2 ldrsh r0, [r0, r5] bl OtherRandomCapped lsls r0, 8 add r4, sp, 0xD4 str r0, [r4] ldr r0, [sp, 0xC] bl OtherRandomCapped lsls r0, 8 str r0, [r4, 0x4] mov r0, r9 ldr r1, [r0] ldr r0, [r0, 0x4] ldr r2, [r1, 0x48] adds r1, r4, 0 bl _call_via_r2 b _080A07B4 _0809FFE4: mov r2, r9 ldr r1, [r2] ldr r0, [r2, 0x4] add r4, sp, 0xDC ldr r2, [r1, 0xC] adds r1, r4, 0 bl _call_via_r2 ldr r0, [sp, 0xC] lsls r0, 16 asrs r0, 16 adds r1, r4, 0 bl sub_80AD8B4 mov r3, r9 ldr r1, [r3] ldr r0, [r3, 0x4] ldr r2, [r1, 0x24] adds r1, r4, 0 bl _call_via_r2 b _080A0650 _080A0010: mov r5, r9 ldr r1, [r5] ldr r0, [r5, 0x4] add r6, sp, 0xE4 ldr r2, [r1, 0xC] adds r1, r6, 0 bl _call_via_r2 ldr r0, [sp, 0xC] lsls r0, 16 asrs r0, 16 add r4, sp, 0xEC add r5, sp, 0xF4 adds r1, r4, 0 adds r2, r5, 0 adds r3, r6, 0 bl sub_80AD914 ldr r0, [r5] ldr r1, [r4] subs r0, r1 bl OtherRandomCapped ldr r1, [r4] adds r1, r0 str r1, [r6] ldr r0, [r5, 0x4] ldr r1, [r4, 0x4] subs r0, r1 bl OtherRandomCapped ldr r1, [r4, 0x4] adds r1, r0 str r1, [r6, 0x4] mov r0, r9 ldr r1, [r0] ldr r0, [r0, 0x4] ldr r2, [r1, 0x24] adds r1, r6, 0 bl _call_via_r2 b _080A07B4 _080A0064: ldr r0, [sp, 0xC] lsls r0, 16 asrs r0, 16 bl sub_80A7AE8 lsls r0, 16 asrs r0, 16 cmp r0, 0 bge _080A007A bl _0809EAE0 _080A007A: add r4, sp, 0xFC adds r1, r4, 0 bl sub_80A8FD8 mov r2, r9 ldr r1, [r2] ldr r0, [r2, 0x4] ldr r2, [r1, 0x24] adds r1, r4, 0 bl _call_via_r2 add r0, sp, 0x8 ldrb r0, [r0, 0x1] b _080A03F0 _080A0096: ldr r2, [sp, 0xC] lsls r2, 16 lsrs r2, 16 movs r0, 0 movs r1, 0x32 bl sub_8001784 add r5, sp, 0x104 str r0, [r5] ldr r2, [sp, 0xC] lsls r2, 16 lsrs r2, 16 movs r0, 0 movs r1, 0x33 bl sub_8001784 str r0, [r5, 0x4] ldr r2, [sp, 0xC] lsls r2, 16 lsrs r2, 16 movs r0, 0 movs r1, 0x34 bl sub_8001784 adds r6, r0, 0 ldr r2, [sp, 0xC] lsls r2, 16 lsrs r2, 16 movs r0, 0 movs r1, 0x35 bl sub_8001784 adds r4, r0, 0 lsls r4, 24 asrs r4, 24 mov r0, r9 ldr r1, [r0] ldr r0, [r0, 0x4] ldr r2, [r1, 0x24] adds r1, r5, 0 bl _call_via_r2 mov r2, r9 ldr r1, [r2] ldr r0, [r2, 0x4] ldr r2, [r1, 0x28] adds r1, r6, 0 bl _call_via_r2 mov r0, r9 adds r0, 0x4A strb r4, [r0] mov r3, r9 ldr r1, [r3] ldr r0, [r3, 0x4] ldr r2, [r1, 0x2C] adds r1, r4, 0 bl _call_via_r2 b _080A0650 _080A010E: mov r5, r9 ldr r1, [r5] ldr r0, [r5, 0x4] add r4, sp, 0x10C ldr r2, [r1, 0xC] adds r1, r4, 0 bl _call_via_r2 ldr r3, [r5] ldr r0, [r5, 0x4] add r1, sp, 0x114 add r2, sp, 0x118 ldr r3, [r3, 0x10] bl _call_via_r3 ldr r1, [r5] ldr r0, [r5, 0x4] mov r5, sp adds r5, 0x4E ldr r2, [r1, 0x14] adds r1, r5, 0 bl _call_via_r2 ldr r2, [sp, 0xC] lsls r2, 16 lsrs r2, 16 add r0, sp, 0x10C ldr r3, [r0] movs r0, 0 movs r1, 0x32 bl sub_800199C ldr r2, [sp, 0xC] lsls r2, 16 lsrs r2, 16 ldr r3, [r4, 0x4] movs r0, 0 movs r1, 0x33 bl sub_800199C ldr r2, [sp, 0xC] lsls r2, 16 lsrs r2, 16 add r0, sp, 0x114 ldr r3, [r0] movs r0, 0 movs r1, 0x34 bl sub_800199C ldr r2, [sp, 0xC] lsls r2, 16 lsrs r2, 16 movs r3, 0 ldrsb r3, [r5, r3] movs r0, 0 movs r1, 0x35 bl sub_800199C bl _0809EAE0 _080A0186: mov r0, r9 ldr r2, [r0] ldr r0, [r0, 0x4] ldr r1, [sp, 0xC] lsls r1, 8 ldr r2, [r2, 0x28] bl _call_via_r2 b _080A07B4 _080A0198: ldr r0, [sp, 0xC] lsls r0, 8 mov r2, r10 str r0, [r2, 0x3C] ldr r0, [sp, 0x10] lsls r0, 8 str r0, [r2, 0x40] add r0, sp, 0x8 movs r3, 0x2 ldrsh r0, [r0, r3] str r0, [r2, 0x30] ldr r0, _080A01B4 bl _080A12AE .align 2, 0 _080A01B4: .4byte 0x0000ffff _080A01B8: mov r4, r9 ldr r1, [r4] ldr r0, [r4, 0x4] add r4, sp, 0x11C ldr r2, [r1, 0xC] adds r1, r4, 0 bl _call_via_r2 ldr r1, [sp, 0xC] lsls r1, 8 add r0, sp, 0x11C ldr r0, [r0] adds r0, r1 mov r5, r10 str r0, [r5, 0x3C] ldr r1, [sp, 0x10] lsls r1, 8 ldr r0, [r4, 0x4] adds r0, r1 str r0, [r5, 0x40] add r0, sp, 0x8 movs r1, 0x2 ldrsh r0, [r0, r1] str r0, [r5, 0x30] ldr r0, _080A01EC b _080A05EA .align 2, 0 _080A01EC: .4byte 0x0000ffff _080A01F0: mov r2, r9 ldr r1, [r2] ldr r0, [r2, 0x4] mov r4, r10 adds r4, 0x3C ldr r2, [r1, 0xC] adds r1, r4, 0 bl _call_via_r2 ldr r0, [sp, 0xC] lsls r0, 16 asrs r0, 16 adds r1, r4, 0 bl sub_80AD8B4 add r0, sp, 0x8 movs r3, 0x2 ldrsh r0, [r0, r3] mov r4, r10 str r0, [r4, 0x30] ldr r0, _080A021C b _080A0656 .align 2, 0 _080A021C: .4byte 0x0000ffff _080A0220: mov r5, r9 ldr r1, [r5] ldr r0, [r5, 0x4] mov r4, r10 adds r4, 0x3C ldr r2, [r1, 0xC] adds r1, r4, 0 bl _call_via_r2 ldr r0, [sp, 0xC] lsls r0, 16 asrs r0, 16 adds r1, r4, 0 bl sub_80AD8B4 add r0, sp, 0x8 movs r1, 0x2 ldrsh r0, [r0, r1] mov r2, r10 str r0, [r2, 0x30] add r0, sp, 0x8 ldrb r0, [r0, 0x1] bl _080A12AE _080A0250: mov r3, r9 ldr r1, [r3] ldr r0, [r3, 0x4] mov r4, r10 adds r4, 0x3C ldr r2, [r1, 0xC] adds r1, r4, 0 bl _call_via_r2 ldr r0, [sp, 0xC] lsls r0, 16 asrs r0, 16 adds r1, r4, 0 bl sub_80AD8B4 add r0, sp, 0x8 movs r4, 0x2 ldrsh r0, [r0, r4] mov r5, r10 str r0, [r5, 0x30] add r0, sp, 0x8 ldrb r0, [r0, 0x1] bl OtherRandomCapped b _080A05EA _080A0282: ldr r0, [sp, 0xC] lsls r0, 16 asrs r0, 16 bl sub_80A7AE8 lsls r0, 16 asrs r0, 16 cmp r0, 0 bge _080A0298 bl _0809EAE0 _080A0298: mov r1, r10 adds r1, 0x3C bl sub_80A8FD8 add r0, sp, 0x8 movs r1, 0x2 ldrsh r0, [r0, r1] mov r2, r10 str r0, [r2, 0x30] add r0, sp, 0x8 ldrb r0, [r0, 0x1] bl _080A12AE _080A02B2: mov r3, r9 ldr r2, [r3] ldr r0, [r3, 0x4] mov r1, r10 adds r1, 0x34 ldr r2, [r2, 0xC] bl _call_via_r2 ldr r0, [sp, 0xC] lsls r1, r0, 8 mov r4, r10 str r1, [r4, 0x3C] ldr r0, [sp, 0x10] lsls r2, r0, 8 str r2, [r4, 0x40] add r0, sp, 0x8 ldrb r0, [r0] cmp r0, 0x7D beq _080A02DC cmp r0, 0x83 bne _080A0304 _080A02DC: mov r5, r10 ldr r0, [r5, 0x34] subs r0, r1, r0 ldr r1, [r5, 0x38] subs r1, r2, r1 bl sub_8009FB8 add r1, sp, 0x8 movs r2, 0x2 ldrsh r1, [r1, r2] bl __divsi3 strh r0, [r5, 0x2A] lsls r0, 16 cmp r0, 0 ble _080A0300 bl _0809F0C4 _080A0300: movs r0, 0x1 b _080A05EA _080A0304: add r0, sp, 0x8 ldrh r0, [r0, 0x2] mov r3, r10 strh r0, [r3, 0x2A] bl _0809F0C4 _080A0310: mov r4, r9 ldr r2, [r4] ldr r0, [r4, 0x4] mov r1, r10 adds r1, 0x34 ldr r2, [r2, 0xC] bl _call_via_r2 ldr r0, [sp, 0xC] lsls r0, 8 mov r5, r10 ldr r4, [r5, 0x34] adds r3, r4, r0 str r3, [r5, 0x3C] ldr r0, [sp, 0x10] lsls r0, 8 ldr r2, [r5, 0x38] adds r1, r2, r0 str r1, [r5, 0x40] add r0, sp, 0x8 ldrb r0, [r0] cmp r0, 0x7E beq _080A0342 cmp r0, 0x84 bne _080A036A _080A0342: subs r0, r3, r4 subs r1, r2 bl sub_8009FB8 add r1, sp, 0x8 movs r2, 0x2 ldrsh r1, [r1, r2] bl __divsi3 mov r3, r10 strh r0, [r3, 0x2A] lsls r0, 16 cmp r0, 0 ble _080A0362 bl _0809F0C4 _080A0362: movs r0, 0x1 strh r0, [r3, 0x2A] bl _0809F0C4 _080A036A: add r0, sp, 0x8 ldrh r0, [r0, 0x2] b _080A0654 _080A0370: ldr r4, [sp, 0xC] lsls r4, 1 subs r4, 0x1 ldr r5, [sp, 0x10] lsls r5, 1 subs r5, 0x1 mov r0, r9 ldr r2, [r0] ldr r0, [r0, 0x4] mov r1, r10 adds r1, 0x34 ldr r2, [r2, 0xC] bl _call_via_r2 adds r0, r4, 0 bl OtherRandomCapped add r1, sp, 0x8 movs r2, 0x2 ldrsh r1, [r1, r2] subs r0, r1 lsls r0, 8 mov r3, r10 ldr r1, [r3, 0x34] adds r1, r0 str r1, [r3, 0x3C] adds r0, r5, 0 bl OtherRandomCapped ldr r1, [sp, 0xC] subs r0, r1 lsls r0, 8 mov r4, r10 ldr r3, [r4, 0x38] adds r2, r3, r0 str r2, [r4, 0x40] add r0, sp, 0x8 ldrb r0, [r0] cmp r0, 0x7F beq _080A03C4 cmp r0, 0x85 bne _080A03EC _080A03C4: mov r5, r10 ldr r0, [r5, 0x3C] ldr r1, [r5, 0x34] subs r0, r1 subs r1, r2, r3 bl sub_8009FB8 add r1, sp, 0x8 movs r2, 0x2 ldrsh r1, [r1, r2] bl __divsi3 strh r0, [r5, 0x2A] lsls r0, 16 cmp r0, 0 ble _080A03E8 bl _0809F0C4 _080A03E8: movs r0, 0x1 b _080A05EA _080A03EC: add r0, sp, 0x8 ldrh r0, [r0, 0x2] _080A03F0: mov r3, r10 strh r0, [r3, 0x2A] bl _0809F0C4 _080A03F8: mov r4, r9 ldr r2, [r4] ldr r0, [r4, 0x4] mov r1, r10 adds r1, 0x34 ldr r2, [r2, 0xC] bl _call_via_r2 mov r5, r10 ldr r0, [r5, 0x34] ldr r1, [r5, 0x38] mov r2, r10 str r0, [r2, 0x3C] str r1, [r2, 0x40] ldr r0, [sp, 0xC] lsls r0, 16 asrs r0, 16 mov r1, r10 adds r1, 0x3C bl sub_80AD8B4 add r0, sp, 0x8 ldrb r0, [r0] cmp r0, 0x80 beq _080A042E cmp r0, 0x86 bne _080A045C _080A042E: mov r3, r10 ldr r0, [r3, 0x3C] ldr r1, [r3, 0x34] subs r0, r1 ldr r1, [r3, 0x40] ldr r2, [r3, 0x38] subs r1, r2 bl sub_8009FB8 add r1, sp, 0x8 movs r4, 0x2 ldrsh r1, [r1, r4] bl __divsi3 mov r5, r10 strh r0, [r5, 0x2A] lsls r0, 16 cmp r0, 0 ble _080A0458 bl _0809F0C4 _080A0458: movs r0, 0x1 b _080A05EA _080A045C: add r0, sp, 0x8 ldrh r0, [r0, 0x2] b _080A07B8 _080A0462: ldr r4, [sp, 0xC] lsls r4, 1 subs r4, 0x1 mov r2, r9 ldr r1, [r2] ldr r0, [r2, 0x4] mov r5, r10 adds r5, 0x3C ldr r2, [r1, 0xC] adds r1, r5, 0 bl _call_via_r2 ldr r0, [sp, 0x10] lsls r0, 16 asrs r0, 16 adds r1, r5, 0 bl sub_80AD8B4 adds r0, r4, 0 bl OtherRandomCapped add r1, sp, 0x8 movs r3, 0x2 ldrsh r1, [r1, r3] subs r0, r1 lsls r0, 8 mov r5, r10 ldr r1, [r5, 0x3C] adds r1, r0 str r1, [r5, 0x3C] adds r0, r4, 0 bl OtherRandomCapped add r1, sp, 0x8 movs r2, 0x2 ldrsh r1, [r1, r2] subs r0, r1 lsls r0, 8 ldr r1, [r5, 0x40] adds r2, r1, r0 str r2, [r5, 0x40] add r0, sp, 0x8 ldrb r0, [r0] cmp r0, 0x81 beq _080A04C0 cmp r0, 0x87 bne _080A04EC _080A04C0: mov r3, r10 ldr r0, [r3, 0x3C] ldr r1, [r3, 0x34] subs r0, r1 ldr r1, [r3, 0x38] subs r1, r2, r1 bl sub_8009FB8 add r1, sp, 0x8 movs r4, 0x2 ldrsh r1, [r1, r4] bl __divsi3 mov r5, r10 strh r0, [r5, 0x2A] lsls r0, 16 cmp r0, 0 ble _080A04E8 bl _0809F0C4 _080A04E8: movs r0, 0x1 b _080A05EA _080A04EC: add r0, sp, 0x8 ldrh r0, [r0, 0x2] b _080A07B8 _080A04F2: ldr r0, [sp, 0xC] lsls r0, 16 asrs r0, 16 bl sub_80A7AE8 lsls r0, 16 asrs r4, r0, 16 cmp r4, 0 bge _080A0508 bl _0809EAE0 _080A0508: mov r3, r9 ldr r2, [r3] ldr r0, [r3, 0x4] mov r1, r10 adds r1, 0x34 ldr r2, [r2, 0xC] bl _call_via_r2 mov r1, r10 adds r1, 0x3C adds r0, r4, 0 bl sub_80A8FD8 add r0, sp, 0x8 ldrb r0, [r0] cmp r0, 0x82 beq _080A052E cmp r0, 0x88 bne _080A055A _080A052E: mov r4, r10 ldr r0, [r4, 0x3C] ldr r1, [r4, 0x34] subs r0, r1 ldr r1, [r4, 0x40] ldr r2, [r4, 0x38] subs r1, r2 bl sub_8009FB8 add r1, sp, 0x8 movs r5, 0x2 ldrsh r1, [r1, r5] bl __divsi3 strh r0, [r4, 0x2A] lsls r0, 16 cmp r0, 0 ble _080A0556 bl _0809F0C4 _080A0556: movs r0, 0x1 b _080A0656 _080A055A: add r0, sp, 0x8 ldrh r0, [r0, 0x2] b _080A07B8 _080A0560: ldr r0, [sp, 0xC] lsls r0, 8 mov r2, r10 str r0, [r2, 0x48] add r0, sp, 0x8 movs r3, 0x2 ldrsh r0, [r0, r3] str r0, [r2, 0x30] ldr r0, _080A0578 bl _080A12AE .align 2, 0 _080A0578: .4byte 0x0000ffff _080A057C: ldr r1, [sp, 0xC] mov r0, r9 adds r0, 0x4A strb r1, [r0] mov r4, r9 ldr r2, [r4] ldr r0, [r4, 0x4] lsls r1, 24 asrs r1, 24 ldr r2, [r2, 0x2C] bl _call_via_r2 add r0, sp, 0x8 movs r5, 0x2 ldrsh r0, [r0, r5] mov r1, r10 str r0, [r1, 0x30] add r0, sp, 0x8 ldrb r0, [r0, 0x1] b _080A07BA _080A05A4: mov r2, r9 ldr r1, [r2] ldr r0, [r2, 0x4] mov r4, sp adds r4, 0x4F ldr r2, [r1, 0x14] adds r1, r4, 0 bl _call_via_r2 movs r0, 0 ldrsb r0, [r4, r0] ldr r1, [sp, 0xC] lsls r1, 24 lsrs r1, 24 bl sub_8002984 mov r1, r9 adds r1, 0x4A strb r0, [r1] mov r3, r9 ldr r2, [r3] ldr r0, [r3, 0x4] ldrb r1, [r1] lsls r1, 24 asrs r1, 24 ldr r2, [r2, 0x2C] bl _call_via_r2 add r0, sp, 0x8 movs r4, 0x2 ldrsh r0, [r0, r4] mov r5, r10 str r0, [r5, 0x30] add r0, sp, 0x8 ldrb r0, [r0, 0x1] _080A05EA: strh r0, [r5, 0x2A] bl _0809F0C4 _080A05F0: add r0, sp, 0x8 ldrh r0, [r0, 0x2] mov r1, r9 adds r1, 0x4A strb r0, [r1] mov r0, r9 ldr r2, [r0] ldr r0, [r0, 0x4] _080A0600: ldrb r1, [r1] lsls r1, 24 asrs r1, 24 ldr r2, [r2, 0x2C] bl _call_via_r2 b _080A07B4 _080A060E: ldr r0, [sp, 0xC] lsls r0, 16 asrs r0, 16 bl sub_80A7AE8 lsls r0, 16 asrs r0, 16 cmp r0, 0 blt _080A0650 add r4, sp, 0x50 adds r1, r4, 0 bl sub_80A9050 movs r0, 0 ldrsb r0, [r4, r0] add r1, sp, 0x8 ldrh r1, [r1, 0x2] lsls r1, 24 lsrs r1, 24 bl sub_8002984 mov r1, r9 adds r1, 0x4A strb r0, [r1] mov r3, r9 ldr r2, [r3] ldr r0, [r3, 0x4] ldrb r1, [r1] lsls r1, 24 asrs r1, 24 ldr r2, [r2, 0x2C] bl _call_via_r2 _080A0650: add r0, sp, 0x8 ldrb r0, [r0, 0x1] _080A0654: mov r4, r10 _080A0656: strh r0, [r4, 0x2A] bl _0809F0C4 _080A065C: mov r5, r9 ldr r1, [r5] ldr r0, [r5, 0x4] mov r4, sp adds r4, 0x51 ldr r2, [r1, 0x14] adds r1, r4, 0 bl _call_via_r2 movs r0, 0 ldrsb r0, [r4, r0] add r1, sp, 0x8 ldrh r1, [r1, 0x2] lsls r1, 24 lsrs r1, 24 bl sub_8002984 mov r1, r9 adds r1, 0x4A strb r0, [r1] ldr r2, [r5] ldr r0, [r5, 0x4] b _080A0600 _080A068A: movs r5, 0 add r0, sp, 0x8 ldrb r0, [r0] cmp r0, 0x8F beq _080A06CA cmp r0, 0x8F bgt _080A069E cmp r0, 0x8E beq _080A06A4 b _080A0724 _080A069E: cmp r0, 0x90 beq _080A06F8 b _080A0724 _080A06A4: ldr r0, [sp, 0xC] lsls r0, 16 asrs r0, 16 bl sub_80A7AE8 lsls r0, 16 asrs r4, r0, 16 cmp r4, 0 blt _080A0724 movs r5, 0x1 add r1, sp, 0x124 adds r0, r4, 0 bl sub_80A8FD8 add r1, sp, 0x12C adds r0, r4, 0 bl sub_80A8F9C b _080A0724 _080A06CA: ldr r0, [sp, 0xC] lsls r0, 16 asrs r0, 16 bl sub_80A7AE8 lsls r0, 16 asrs r0, 16 cmp r0, 0 blt _080A0724 movs r5, 0x1 add r1, sp, 0x124 bl sub_80A8FD8 ldr r0, _080A06F4 ldr r1, [r0, 0x4] ldr r0, [r0] add r2, sp, 0x12C str r0, [r2] str r1, [r2, 0x4] b _080A0724 .align 2, 0 _080A06F4: .4byte gUnknown_81164DC _080A06F8: movs r5, 0x1 mov r2, r9 ldr r1, [r2] ldr r0, [r2, 0x4] add r4, sp, 0x124 ldr r2, [r1, 0xC] adds r1, r4, 0 bl _call_via_r2 mov r3, r9 ldr r2, [r3] ldr r0, [r3, 0x4] add r1, sp, 0x12C ldr r2, [r2, 0x8] bl _call_via_r2 ldr r0, [sp, 0xC] lsls r0, 16 asrs r0, 16 adds r1, r4, 0 bl sub_80AD8B4 _080A0724: cmp r5, 0 beq _080A07B4 mov r4, r9 ldr r1, [r4] ldr r0, [r4, 0x4] add r5, sp, 0x134 ldr r2, [r1, 0xC] adds r1, r5, 0 bl _call_via_r2 ldr r1, [r4] ldr r0, [r4, 0x4] add r4, sp, 0x13C ldr r2, [r1, 0x8] adds r1, r4, 0 bl _call_via_r2 add r7, sp, 0x124 add r3, sp, 0x12C adds r0, r5, 0 adds r1, r4, 0 adds r2, r7, 0 bl sub_8002DF0 mov r1, sp adds r1, 0x52 strb r0, [r1] movs r0, 0x1 negs r0, r0 movs r4, 0 ldrsb r4, [r1, r4] adds r6, r1, 0 cmp r4, r0 bne _080A078C ldr r3, _080A07C0 adds r0, r5, 0 adds r1, r3, 0 adds r2, r7, 0 bl sub_8002D54 strb r0, [r6] movs r0, 0 ldrsb r0, [r6, r0] cmp r0, r4 bne _080A078C mov r5, r9 ldr r1, [r5] ldr r0, [r5, 0x4] ldr r2, [r1, 0x14] adds r1, r6, 0 bl _call_via_r2 _080A078C: movs r0, 0 ldrsb r0, [r6, r0] add r1, sp, 0x8 ldrh r1, [r1, 0x2] lsls r1, 24 lsrs r1, 24 bl sub_8002984 mov r1, r9 adds r1, 0x4A strb r0, [r1] mov r0, r9 ldr r2, [r0] ldr r0, [r0, 0x4] ldrb r1, [r1] lsls r1, 24 asrs r1, 24 ldr r2, [r2, 0x2C] bl _call_via_r2 _080A07B4: add r0, sp, 0x8 ldrb r0, [r0, 0x1] _080A07B8: mov r1, r10 _080A07BA: strh r0, [r1, 0x2A] bl _0809F0C4 .align 2, 0 _080A07C0: .4byte gUnknown_81164DC _080A07C4: movs r0, 0 bl _080A12AC _080A07CA: ldr r0, [sp, 0xC] mov r1, r9 adds r1, 0x71 movs r2, 0 strb r0, [r1] mov r3, r10 strh r2, [r3, 0x2A] bl _0809F0C4 _080A07DC: mov r4, r9 ldr r1, [r4] ldr r0, [r4, 0x4] mov r4, sp adds r4, 0x53 ldr r2, [r1, 0x14] adds r1, r4, 0 bl _call_via_r2 movs r0, 0 ldrsb r0, [r4, r0] ldr r1, [sp, 0xC] lsls r1, 24 lsrs r1, 24 bl sub_8002984 mov r1, r9 adds r1, 0x71 movs r2, 0 strb r0, [r1] mov r5, r10 strh r2, [r5, 0x2A] bl _0809F0C4 _080A080C: add r0, sp, 0x8 movs r1, 0x2 ldrsh r0, [r0, r1] ldr r1, [sp, 0xC] ldr r2, [sp, 0x10] bl sub_809D124 bl _0809EAE0 _080A081E: mov r2, r9 ldr r1, [r2] ldr r0, [r2, 0x4] ldr r1, [r1, 0x4] bl _call_via_r1 lsls r0, 16 asrs r1, r0, 16 mov r3, r9 movs r4, 0x8 ldrsh r0, [r3, r4] cmp r0, 0x2 beq _080A0856 cmp r0, 0x2 bgt _080A0844 cmp r0, 0x1 beq _080A084C bl _0809EAE0 _080A0844: cmp r0, 0x3 beq _080A0860 bl _0809EAE0 _080A084C: movs r0, 0x1 bl sub_809D170 bl _0809EAE0 _080A0856: movs r0, 0x2 bl sub_809D170 bl _0809EAE0 _080A0860: movs r0, 0x3 bl sub_809D170 bl _0809EAE0 _080A086A: mov r5, r9 ldr r1, [r5] ldr r0, [r5, 0x4] ldr r1, [r1, 0x4] bl _call_via_r1 lsls r0, 16 asrs r0, 16 movs r2, 0x8 ldrsh r1, [r5, r2] cmp r1, 0x2 beq _080A08A0 cmp r1, 0x2 bgt _080A088E cmp r1, 0x1 beq _080A0896 bl _0809EAE0 _080A088E: cmp r1, 0x3 beq _080A08AA bl _0809EAE0 _080A0896: add r4, sp, 0x144 adds r1, r4, 0 bl sub_80A8FD8 b _080A08B2 _080A08A0: add r4, sp, 0x144 adds r1, r4, 0 bl sub_80AC448 b _080A08B2 _080A08AA: add r4, sp, 0x144 adds r1, r4, 0 bl sub_80AD360 _080A08B2: movs r0, 0 adds r1, r4, 0 bl sub_809D158 bl _0809EAE0 _080A08BE: movs r0, 0x1 movs r1, 0 bl sub_809D170 bl _0809EAE0 _080A08CA: mov r3, r9 ldr r1, [r3] ldr r0, [r3, 0x4] ldr r1, [r1, 0x4] bl _call_via_r1 lsls r0, 16 asrs r1, r0, 16 cmp r1, 0 bge _080A08E2 bl _0809EAE0 _080A08E2: mov r4, r9 movs r5, 0x8 ldrsh r0, [r4, r5] cmp r0, 0x2 beq _080A090A cmp r0, 0x2 bgt _080A08F8 cmp r0, 0x1 beq _080A0900 bl _0809EAE0 _080A08F8: cmp r0, 0x3 beq _080A0914 bl _0809EAE0 _080A0900: add r0, sp, 0x8 movs r3, 0x2 ldrsh r2, [r0, r3] movs r0, 0x1 b _080A0990 _080A090A: add r0, sp, 0x8 movs r4, 0x2 ldrsh r2, [r0, r4] movs r0, 0x2 b _080A0990 _080A0914: add r0, sp, 0x8 movs r5, 0x2 ldrsh r2, [r0, r5] movs r0, 0x3 b _080A0990 _080A091E: mov r0, r9 ldr r1, [r0] ldr r0, [r0, 0x4] ldr r1, [r1, 0x4] bl _call_via_r1 lsls r0, 16 asrs r0, 16 mov r2, r9 movs r3, 0x8 ldrsh r1, [r2, r3] cmp r1, 0x2 beq _080A095C cmp r1, 0x2 bgt _080A0944 cmp r1, 0x1 beq _080A094C bl _0809EAE0 _080A0944: cmp r1, 0x3 beq _080A096C bl _0809EAE0 _080A094C: add r4, sp, 0x14C adds r1, r4, 0 bl sub_80A8FD8 add r0, sp, 0x8 movs r5, 0x2 ldrsh r2, [r0, r5] b _080A097A _080A095C: add r4, sp, 0x14C adds r1, r4, 0 bl sub_80AC448 add r0, sp, 0x8 movs r1, 0x2 ldrsh r2, [r0, r1] b _080A097A _080A096C: add r4, sp, 0x14C adds r1, r4, 0 bl sub_80AD360 add r0, sp, 0x8 movs r3, 0x2 ldrsh r2, [r0, r3] _080A097A: movs r0, 0 adds r1, r4, 0 bl sub_809D190 bl _0809F0C4 _080A0986: add r0, sp, 0x8 movs r4, 0x2 ldrsh r2, [r0, r4] movs r0, 0x1 movs r1, 0 _080A0990: bl sub_809D1A8 bl _0809F0C4 _080A0998: mov r5, r9 ldr r1, [r5] ldr r0, [r5, 0x4] ldr r1, [r1, 0x4] bl _call_via_r1 lsls r0, 16 asrs r1, r0, 16 cmp r1, 0 bge _080A09B0 bl _0809EAE0 _080A09B0: movs r2, 0x8 ldrsh r0, [r5, r2] cmp r0, 0x2 beq _080A09D6 cmp r0, 0x2 bgt _080A09C4 cmp r0, 0x1 beq _080A09CC bl _0809EAE0 _080A09C4: cmp r0, 0x3 beq _080A09E0 bl _0809EAE0 _080A09CC: add r0, sp, 0x8 movs r3, 0x2 ldrsh r2, [r0, r3] movs r0, 0x1 b _080A0A5C _080A09D6: add r0, sp, 0x8 movs r4, 0x2 ldrsh r2, [r0, r4] movs r0, 0x2 b _080A0A5C _080A09E0: add r0, sp, 0x8 movs r5, 0x2 ldrsh r2, [r0, r5] movs r0, 0x3 b _080A0A5C _080A09EA: mov r0, r9 ldr r1, [r0] ldr r0, [r0, 0x4] ldr r1, [r1, 0x4] bl _call_via_r1 lsls r0, 16 asrs r0, 16 mov r2, r9 movs r3, 0x8 ldrsh r1, [r2, r3] cmp r1, 0x2 beq _080A0A28 cmp r1, 0x2 bgt _080A0A10 cmp r1, 0x1 beq _080A0A18 bl _0809EAE0 _080A0A10: cmp r1, 0x3 beq _080A0A38 bl _0809EAE0 _080A0A18: add r4, sp, 0x154 adds r1, r4, 0 bl sub_80A8FD8 add r0, sp, 0x8 movs r5, 0x2 ldrsh r2, [r0, r5] b _080A0A46 _080A0A28: add r4, sp, 0x154 adds r1, r4, 0 bl sub_80AC448 add r0, sp, 0x8 movs r1, 0x2 ldrsh r2, [r0, r1] b _080A0A46 _080A0A38: add r4, sp, 0x154 adds r1, r4, 0 bl sub_80AD360 add r0, sp, 0x8 movs r3, 0x2 ldrsh r2, [r0, r3] _080A0A46: movs r0, 0 adds r1, r4, 0 bl sub_809D1CC bl _0809F0C4 _080A0A52: add r0, sp, 0x8 movs r4, 0x2 ldrsh r2, [r0, r4] movs r0, 0x1 movs r1, 0 _080A0A5C: bl sub_809D1E4 bl _0809F0C4 _080A0A64: mov r5, r9 ldr r1, [r5] ldr r0, [r5, 0x4] ldr r1, [r1, 0x4] bl _call_via_r1 lsls r0, 16 asrs r1, r0, 16 cmp r1, 0 bge _080A0A7C bl _0809EAE0 _080A0A7C: movs r2, 0x8 ldrsh r0, [r5, r2] cmp r0, 0x2 beq _080A0AA2 cmp r0, 0x2 bgt _080A0A90 cmp r0, 0x1 beq _080A0A98 bl _0809EAE0 _080A0A90: cmp r0, 0x3 beq _080A0AAC bl _0809EAE0 _080A0A98: add r0, sp, 0x8 movs r3, 0x2 ldrsh r2, [r0, r3] movs r0, 0x1 b _080A0B28 _080A0AA2: add r0, sp, 0x8 movs r4, 0x2 ldrsh r2, [r0, r4] movs r0, 0x2 b _080A0B28 _080A0AAC: add r0, sp, 0x8 movs r5, 0x2 ldrsh r2, [r0, r5] movs r0, 0x3 b _080A0B28 _080A0AB6: mov r0, r9 ldr r1, [r0] ldr r0, [r0, 0x4] ldr r1, [r1, 0x4] bl _call_via_r1 lsls r0, 16 asrs r0, 16 mov r2, r9 movs r3, 0x8 ldrsh r1, [r2, r3] cmp r1, 0x2 beq _080A0AF4 cmp r1, 0x2 bgt _080A0ADC cmp r1, 0x1 beq _080A0AE4 bl _0809EAE0 _080A0ADC: cmp r1, 0x3 beq _080A0B04 bl _0809EAE0 _080A0AE4: add r4, sp, 0x15C adds r1, r4, 0 bl sub_80A8FD8 add r0, sp, 0x8 movs r5, 0x2 ldrsh r2, [r0, r5] b _080A0B12 _080A0AF4: add r4, sp, 0x15C adds r1, r4, 0 bl sub_80AC448 add r0, sp, 0x8 movs r1, 0x2 ldrsh r2, [r0, r1] b _080A0B12 _080A0B04: add r4, sp, 0x15C adds r1, r4, 0 bl sub_80AD360 add r0, sp, 0x8 movs r3, 0x2 ldrsh r2, [r0, r3] _080A0B12: movs r0, 0 adds r1, r4, 0 bl sub_809D208 bl _0809F0C4 _080A0B1E: add r0, sp, 0x8 movs r4, 0x2 ldrsh r2, [r0, r4] movs r0, 0x1 movs r1, 0 _080A0B28: bl sub_809D220 bl _0809F0C4 _080A0B30: mov r0, r10 adds r0, 0x50 add r1, sp, 0x8 movs r5, 0x2 ldrsh r1, [r1, r5] bl sub_8001570 bl _0809EAE0 _080A0B42: mov r0, r10 adds r0, 0x50 add r1, sp, 0x8 movs r2, 0x2 ldrsh r1, [r1, r2] bl sub_80015C0 bl _0809EAE0 _080A0B54: mov r0, r10 adds r0, 0x50 add r1, sp, 0x8 movs r3, 0x2 ldrsh r1, [r1, r3] ldr r2, [sp, 0xC] add r3, sp, 0x8 ldrb r3, [r3, 0x1] bl sub_800226C bl _0809EAE0 _080A0B6C: mov r0, r10 adds r0, 0x50 add r1, sp, 0x8 movs r4, 0x2 ldrsh r1, [r1, r4] ldr r2, [sp, 0xC] lsls r2, 16 asrs r2, 16 add r3, sp, 0x8 ldrb r3, [r3, 0x1] bl sub_80022A0 bl _0809EAE0 _080A0B88: mov r0, r10 adds r0, 0x50 add r1, sp, 0x8 movs r5, 0x2 ldrsh r1, [r1, r5] ldr r2, [sp, 0xC] lsls r2, 16 lsrs r2, 16 ldr r3, [sp, 0x10] bl sub_800199C bl _0809EAE0 _080A0BA2: add r0, sp, 0x8 movs r1, 0x2 ldrsh r0, [r0, r1] ldr r1, [sp, 0xC] ldr r2, [sp, 0x10] bl ScenarioCalc bl _0809EAE0 _080A0BB4: add r0, sp, 0x8 movs r2, 0x2 ldrsh r0, [r0, r2] add r1, sp, 0x164 add r2, sp, 0x168 bl sub_8001B88 add r0, sp, 0x8 movs r3, 0x2 ldrsh r0, [r0, r3] add r1, sp, 0x164 ldr r1, [r1] add r2, sp, 0x168 ldr r2, [r2] adds r2, 0x1 bl ScenarioCalc bl _0809EAE0 _080A0BDA: ldr r2, [sp, 0xC] movs r0, 0 movs r1, 0x13 bl sub_80018D8 add r0, sp, 0x8 movs r4, 0x2 ldrsh r2, [r0, r4] movs r0, 0 movs r1, 0x16 bl sub_80018D8 bl _0809EAE0 _080A0BF6: add r0, sp, 0x8 movs r5, 0x2 ldrsh r2, [r0, r5] movs r0, 0 movs r1, 0x1C bl sub_80018D8 bl _0809EAE0 _080A0C08: add r0, sp, 0x8 movs r1, 0x2 ldrsh r0, [r0, r1] add r1, sp, 0x8 ldrb r2, [r1, 0x1] negs r1, r2 orrs r1, r2 lsrs r1, 31 bl sub_80026E8 bl _0809EAE0 _080A0C20: add r0, sp, 0x8 movs r2, 0x2 ldrsh r0, [r0, r2] add r1, sp, 0x8 ldrb r2, [r1, 0x1] negs r1, r2 orrs r1, r2 lsrs r1, 31 bl sub_809733C bl _0809EAE0 _080A0C38: add r0, sp, 0x8 movs r3, 0x2 ldrsh r0, [r0, r3] add r1, sp, 0x8 ldrb r2, [r1, 0x1] negs r1, r2 orrs r1, r2 lsrs r1, 31 bl sub_80973A8 bl _0809EAE0 _080A0C50: add r0, sp, 0x8 movs r4, 0x2 ldrsh r0, [r0, r4] add r1, sp, 0x8 ldrb r2, [r1, 0x1] negs r1, r2 orrs r1, r2 lsrs r1, 31 bl sub_8097418 bl _0809EAE0 _080A0C68: add r0, sp, 0x8 movs r5, 0x2 ldrsh r0, [r0, r5] add r1, sp, 0x8 ldrb r2, [r1, 0x1] negs r1, r2 orrs r1, r2 lsrs r1, 31 bl sub_80975A8 bl _0809EAE0 _080A0C80: add r0, sp, 0x8 ldrh r0, [r0, 0x2] lsls r0, 24 lsrs r0, 24 bl sub_80976F8 bl _0809EAE0 _080A0C90: add r0, sp, 0x8 movs r2, 0x2 ldrsh r1, [r0, r2] ldr r2, [sp, 0xC] movs r0, 0 movs r3, 0x2 bl sub_80022F8 b _080A0E1E _080A0CA2: mov r0, r10 adds r0, 0x50 ldr r1, [sp, 0xC] lsls r1, 16 asrs r1, 16 ldr r2, [sp, 0x10] add r3, sp, 0x8 ldrb r3, [r3, 0x1] bl sub_80022F8 lsls r0, 24 cmp r0, 0 bne _080A0CC0 bl _0809EAE0 _080A0CC0: add r0, sp, 0x8 movs r4, 0x2 ldrsh r1, [r0, r4] b _080A0D5C _080A0CC8: mov r0, r10 adds r0, 0x50 ldr r1, [sp, 0xC] lsls r1, 16 asrs r1, 16 ldr r2, [sp, 0x10] lsls r2, 16 asrs r2, 16 add r3, sp, 0x8 ldrb r3, [r3, 0x1] bl sub_8002318 lsls r0, 24 cmp r0, 0 bne _080A0CEA bl _0809EAE0 _080A0CEA: add r0, sp, 0x8 movs r2, 0x2 ldrsh r1, [r0, r2] b _080A0E2C _080A0CF2: mov r0, r10 adds r0, 0x50 ldr r1, [sp, 0xC] lsls r1, 16 asrs r1, 16 ldr r2, [sp, 0x10] lsls r2, 16 lsrs r2, 16 bl sub_8001784 cmp r0, 0 bne _080A0D0E bl _0809EAE0 _080A0D0E: add r0, sp, 0x8 movs r4, 0x2 ldrsh r1, [r0, r4] b _080A0D5C _080A0D16: mov r0, r10 adds r0, 0x50 ldr r1, [sp, 0xC] lsls r1, 16 asrs r1, 16 bl sub_8001AB0 ldr r1, [sp, 0x10] add r2, sp, 0x8 ldrb r2, [r2, 0x1] bl FlagJudge lsls r0, 24 cmp r0, 0 bne _080A0D38 bl _0809EAE0 _080A0D38: add r0, sp, 0x8 movs r2, 0x2 ldrsh r1, [r0, r2] b _080A0E2C _080A0D40: add r0, sp, 0x8 movs r4, 0x2 ldrsh r0, [r0, r4] ldr r1, [sp, 0xC] ldr r2, [sp, 0x10] bl sub_8001CC4 lsls r0, 24 cmp r0, 0 bne _080A0D58 bl _0809EAE0 _080A0D58: add r0, sp, 0x8 ldrb r1, [r0, 0x1] _080A0D5C: mov r0, r9 bl sub_80A242C mov r5, r10 str r0, [r5, 0x4] bl _0809EAE0 _080A0D6A: add r0, sp, 0x8 movs r1, 0x2 ldrsh r0, [r0, r1] ldr r1, [sp, 0xC] ldr r2, [sp, 0x10] bl sub_8001D08 b _080A0DBA _080A0D7A: add r0, sp, 0x8 movs r3, 0x2 ldrsh r0, [r0, r3] ldr r1, [sp, 0xC] ldr r2, [sp, 0x10] bl sub_8001D44 lsls r0, 24 cmp r0, 0 bne _080A0D92 bl _0809EAE0 _080A0D92: b _080A0DF6 _080A0D94: add r0, sp, 0x8 movs r5, 0x2 ldrsh r0, [r0, r5] bl sub_80023E4 lsls r0, 24 cmp r0, 0 bne _080A0DA8 bl _0809EAE0 _080A0DA8: add r0, sp, 0x8 ldrb r1, [r0, 0x1] b _080A132A _080A0DAE: add r0, sp, 0x8 ldrh r0, [r0, 0x2] lsls r0, 24 lsrs r0, 24 bl sub_8098100 _080A0DBA: lsls r0, 24 cmp r0, 0 bne _080A0DC4 bl _0809EAE0 _080A0DC4: add r0, sp, 0x8 ldrb r1, [r0, 0x1] mov r0, r9 bl sub_80A242C mov r2, r10 str r0, [r2, 0x4] bl _0809EAE0 _080A0DD6: ldr r0, [sp, 0xC] lsls r0, 16 asrs r0, 16 bl sub_80026CC b _080A0E1E _080A0DE2: add r0, sp, 0x8 ldrh r0, [r0, 0x2] lsls r0, 24 lsrs r0, 24 bl sub_809CBA4 cmp r0, 0 bgt _080A0DF6 bl _0809EAE0 _080A0DF6: add r0, sp, 0x8 ldrb r1, [r0, 0x1] mov r0, r9 bl sub_80A242C mov r4, r10 str r0, [r4, 0x4] bl _0809EAE0 _080A0E08: mov r5, r9 movs r1, 0x8 ldrsh r0, [r5, r1] cmp r0, 0x1 beq _080A0E16 bl _0809EAE0 _080A0E16: movs r2, 0xA ldrsh r0, [r5, r2] bl sub_80A8C98 _080A0E1E: lsls r0, 24 cmp r0, 0 bne _080A0E28 bl _0809EAE0 _080A0E28: add r0, sp, 0x8 ldrb r1, [r0, 0x1] _080A0E2C: mov r0, r9 bl sub_80A242C mov r3, r10 str r0, [r3, 0x4] bl _0809EAE0 _080A0E3A: add r0, sp, 0x8 ldrh r0, [r0, 0x2] lsls r0, 24 lsrs r0, 24 bl FindItemInInventory cmp r0, 0 bge _080A0E4E bl _0809EAE0 _080A0E4E: bl ShiftItemsDownFrom bl _0809EAE0 _080A0E56: add r0, sp, 0x8 ldrb r2, [r0] adds r0, r2, 0 subs r0, 0xC0 cmp r0, 0xB bls _080A0E64 b _080A1088 _080A0E64: lsls r0, 2 ldr r1, _080A0E70 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080A0E70: .4byte _080A0E74 .align 2, 0 _080A0E74: .4byte _080A0EA4 .4byte _080A0EB6 .4byte _080A0ECC .4byte _080A0EFA .4byte _080A0F08 .4byte _080A0F14 .4byte _080A0F26 .4byte _080A0F36 .4byte _080A0F98 .4byte _080A1008 .4byte _080A0F4C .4byte _080A107A _080A0EA4: mov r0, r10 adds r0, 0x50 add r1, sp, 0x8 movs r4, 0x2 ldrsh r1, [r1, r4] bl sub_8001658 adds r1, r0, 0 b _080A1098 _080A0EB6: mov r0, r10 adds r0, 0x50 add r1, sp, 0x8 movs r5, 0x2 ldrsh r1, [r1, r5] bl sub_8001658 ldr r1, [sp, 0xC] add r2, sp, 0x8 ldrb r2, [r2, 0x1] b _080A0EF2 _080A0ECC: mov r4, r10 adds r4, 0x50 add r0, sp, 0x8 movs r2, 0x2 ldrsh r1, [r0, r2] adds r0, r4, 0 bl sub_8001658 adds r5, r0, 0 ldr r1, [sp, 0xC] lsls r1, 16 asrs r1, 16 adds r0, r4, 0 bl sub_8001658 adds r1, r0, 0 add r0, sp, 0x8 ldrb r2, [r0, 0x1] adds r0, r5, 0 _080A0EF2: bl FlagCalc adds r1, r0, 0 b _080A1098 _080A0EFA: add r0, sp, 0x8 movs r3, 0x2 ldrsh r0, [r0, r3] bl OtherRandomCapped adds r1, r0, 0 b _080A1098 _080A0F08: add r0, sp, 0x8 movs r4, 0x2 ldrsh r1, [r0, r4] movs r0, 0 movs r2, 0 b _080A0F1E _080A0F14: add r0, sp, 0x8 movs r5, 0x2 ldrsh r1, [r0, r5] movs r0, 0 movs r2, 0x1 _080A0F1E: bl sub_8001784 adds r1, r0, 0 b _080A1098 _080A0F26: ldr r0, [sp, 0xC] lsls r0, 16 asrs r0, 16 bl sub_80A8C2C lsls r0, 16 asrs r1, r0, 16 b _080A1098 _080A0F36: mov r0, r9 ldr r1, [r0] ldr r0, [r0, 0x4] add r4, sp, 0x54 ldr r2, [r1, 0x14] adds r1, r4, 0 bl _call_via_r2 movs r1, 0 ldrsb r1, [r4, r1] b _080A1098 _080A0F4C: mov r2, r9 ldr r1, [r2] ldr r0, [r2, 0x4] movs r3, 0xB6 lsls r3, 1 add r3, sp mov r8, r3 ldr r2, [r1, 0xC] mov r1, r8 bl _call_via_r2 add r6, sp, 0x16C ldr r0, [r6] ldr r1, [r6, 0x4] add r4, sp, 0x174 str r0, [r4] str r1, [r4, 0x4] ldr r0, [sp, 0xC] lsls r0, 16 asrs r0, 16 adds r5, r4, 0 adds r1, r5, 0 bl sub_80AD8B4 ldr r1, [r4] ldr r0, [r6] subs r1, r0 add r0, sp, 0x17C str r1, [r0] ldr r1, [r5, 0x4] mov r4, r8 ldr r0, [r4, 0x4] subs r1, r0 add r0, sp, 0x17C str r1, [r0, 0x4] bl sub_8002C60 b _080A106A _080A0F98: ldr r0, [sp, 0xC] lsls r0, 16 asrs r0, 16 bl sub_80A7AE8 lsls r0, 16 asrs r6, r0, 16 cmp r6, 0 blt _080A1074 mov r5, r9 ldr r1, [r5] ldr r0, [r5, 0x4] movs r2, 0xC2 lsls r2, 1 add r2, sp mov r8, r2 ldr r2, [r1, 0xC] mov r1, r8 bl _call_via_r2 ldr r1, [r5] ldr r0, [r5, 0x4] add r5, sp, 0x18C ldr r2, [r1, 0x8] adds r1, r5, 0 bl _call_via_r2 add r7, sp, 0x194 adds r0, r6, 0 adds r1, r7, 0 bl sub_80A8FD8 add r4, sp, 0x19C adds r0, r6, 0 adds r1, r4, 0 bl sub_80A8F9C mov r0, r8 adds r1, r5, 0 adds r2, r7, 0 adds r3, r4, 0 bl sub_8002DF0 lsls r0, 24 asrs r1, r0, 24 movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _080A1098 ldr r3, _080A1004 mov r0, r8 adds r1, r3, 0 adds r2, r7, 0 b _080A1066 .align 2, 0 _080A1004: .4byte gUnknown_81164DC _080A1008: ldr r0, [sp, 0xC] lsls r0, 16 asrs r0, 16 bl sub_80A7AE8 lsls r0, 16 asrs r7, r0, 16 cmp r7, 0 blt _080A1074 mov r3, r9 ldr r1, [r3] ldr r0, [r3, 0x4] add r6, sp, 0x1A4 ldr r2, [r1, 0xC] adds r1, r6, 0 bl _call_via_r2 mov r4, r9 ldr r1, [r4] ldr r0, [r4, 0x4] add r4, sp, 0x1AC ldr r2, [r1, 0x8] adds r1, r4, 0 bl _call_via_r2 add r5, sp, 0x1B4 adds r0, r7, 0 adds r1, r5, 0 bl sub_80A8FD8 ldr r7, _080A1070 adds r0, r6, 0 adds r1, r4, 0 adds r2, r5, 0 adds r3, r7, 0 bl sub_8002DF0 lsls r0, 24 asrs r1, r0, 24 movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _080A1098 adds r0, r6, 0 adds r1, r7, 0 adds r2, r5, 0 adds r3, r7, 0 _080A1066: bl sub_8002D54 _080A106A: lsls r0, 24 asrs r1, r0, 24 b _080A1098 .align 2, 0 _080A1070: .4byte gUnknown_81164DC _080A1074: movs r1, 0x1 negs r1, r1 b _080A1098 _080A107A: add r0, sp, 0x8 movs r5, 0x2 ldrsh r0, [r0, r5] bl sub_809CC90 adds r1, r0, 0 b _080A1098 _080A1088: ldr r0, _080A1090 ldr r1, _080A1094 bl FatalError .align 2, 0 _080A1090: .4byte gUnknown_81166B4 _080A1094: .4byte gUnknown_81166C0 _080A1098: mov r0, r9 bl sub_80A2460 b _080A1330 _080A10A0: mov r0, r10 adds r0, 0x50 add r1, sp, 0x8 movs r2, 0x2 ldrsh r1, [r1, r2] bl sub_8001658 adds r2, r0, 0 mov r3, r10 strh r2, [r3, 0x28] ldr r1, [r3, 0x4] ldrb r0, [r1] cmp r0, 0xD0 bne _080A10DE lsls r0, r2, 16 asrs r3, r0, 16 _080A10C0: adds r2, r1, 0 movs r4, 0x2 ldrsh r0, [r1, r4] cmp r0, r3 bne _080A10CE bl _0809F0C4 _080A10CE: adds r0, r1, 0 adds r0, 0x10 mov r5, r10 str r0, [r5, 0x4] adds r1, r0, 0 ldrb r0, [r2, 0x10] cmp r0, 0xD0 beq _080A10C0 _080A10DE: mov r1, r10 ldr r0, [r1, 0x4] ldrb r0, [r0] cmp r0, 0xD1 beq _080A10EC bl _0809EAE0 _080A10EC: ldr r0, _080A10F4 strh r0, [r1, 0x28] bl _0809F0C4 .align 2, 0 _080A10F4: .4byte 0x0000ffff _080A10F8: ldr r7, [sp, 0x14] ldr r1, _080A11F0 movs r0, 0 str r0, [r1] mov r2, r10 strh r0, [r2, 0x28] add r0, sp, 0x8 ldrb r0, [r0] cmp r0, 0xD8 bgt _080A1176 cmp r0, 0xD6 blt _080A1176 mov r0, r10 adds r0, 0x50 ldr r1, [sp, 0x10] lsls r1, 16 asrs r1, 16 bl sub_8001658 adds r3, r0, 0 mov r4, r10 ldr r1, [r4, 0x4] ldrb r0, [r1] cmp r0, 0xD0 bne _080A114E _080A112A: adds r2, r1, 0 movs r5, 0x2 ldrsh r0, [r2, r5] cmp r0, r3 bne _080A1136 ldr r7, [r2, 0xC] _080A1136: adds r0, r1, 0 adds r0, 0x10 mov r1, r10 str r0, [r1, 0x4] ldrh r1, [r1, 0x28] adds r1, 0x1 mov r4, r10 strh r1, [r4, 0x28] adds r1, r0, 0 ldrb r0, [r2, 0x10] cmp r0, 0xD0 beq _080A112A _080A114E: mov r5, r10 ldr r1, [r5, 0x4] ldrb r0, [r1] cmp r0, 0xD1 bne _080A1176 _080A1158: cmp r7, 0 bne _080A115E ldr r7, [r1, 0xC] _080A115E: mov r0, r10 ldr r2, [r0, 0x4] adds r1, r2, 0 adds r1, 0x10 str r1, [r0, 0x4] ldrh r0, [r0, 0x28] adds r0, 0x1 mov r3, r10 strh r0, [r3, 0x28] ldrb r0, [r2, 0x10] cmp r0, 0xD1 beq _080A1158 _080A1176: cmp r7, 0 bne _080A117C ldr r7, _080A11F4 _080A117C: mov r4, r10 ldr r5, [r4, 0x4] ldrb r0, [r5] cmp r0, 0xD9 bne _080A11B8 ldr r0, _080A11F8 mov r8, r0 ldr r6, _080A11F0 movs r1, 0x4 add r1, r8 mov r12, r1 _080A1192: ldr r1, [r6] lsls r2, r1, 3 mov r4, r8 adds r3, r2, r4 adds r4, r5, 0 ldr r0, [r4, 0xC] str r0, [r3] add r2, r12 adds r1, 0x1 str r1, [r2] str r1, [r6] adds r0, r4, 0 adds r0, 0x10 mov r5, r10 str r0, [r5, 0x4] adds r5, r0, 0 ldrb r0, [r4, 0x10] cmp r0, 0xD9 beq _080A1192 _080A11B8: ldr r0, _080A11F0 ldr r1, [r0] cmp r1, 0 bgt _080A11C4 bl _0809EAE0 _080A11C4: ldr r3, _080A11F8 lsls r2, r1, 3 adds r1, r2, r3 movs r0, 0 str r0, [r1] adds r0, r3, 0x4 adds r2, r0 add r0, sp, 0x8 movs r1, 0x2 ldrsh r0, [r0, r1] str r0, [r2] add r0, sp, 0x8 ldrb r0, [r0] subs r0, 0xD2 cmp r0, 0x6 bhi _080A1280 lsls r0, 2 ldr r1, _080A11FC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080A11F0: .4byte gUnknown_203B4AC _080A11F4: .4byte gUnknown_81166D8 _080A11F8: .4byte gUnknown_2039D50 _080A11FC: .4byte _080A1200 .align 2, 0 _080A1200: .4byte _080A121C .4byte _080A121C .4byte _080A123E .4byte _080A1260 .4byte _080A121C .4byte _080A123E .4byte _080A1260 _080A121C: add r0, sp, 0x8 ldrb r0, [r0, 0x1] negs r1, r0 orrs r1, r0 lsrs r1, 31 movs r2, 0x1 negs r2, r2 ldr r0, [sp, 0xC] lsls r0, 16 asrs r0, 16 str r0, [sp] str r7, [sp, 0x4] adds r0, r3, 0 movs r3, 0 bl sub_809B028 b _080A1280 _080A123E: add r0, sp, 0x8 ldrb r0, [r0, 0x1] negs r1, r0 orrs r1, r0 lsrs r1, 31 movs r2, 0x1 negs r2, r2 ldr r0, [sp, 0xC] lsls r0, 16 asrs r0, 16 str r0, [sp] str r7, [sp, 0x4] adds r0, r3, 0 movs r3, 0x1 bl sub_809B028 b _080A1280 _080A1260: add r0, sp, 0x8 ldrb r0, [r0, 0x1] negs r1, r0 orrs r1, r0 lsrs r1, 31 movs r2, 0x1 negs r2, r2 ldr r0, [sp, 0xC] lsls r0, 16 asrs r0, 16 str r0, [sp] str r7, [sp, 0x4] adds r0, r3, 0 movs r3, 0x2 bl sub_809B028 _080A1280: mov r0, r9 movs r1, 0x1 bl sub_809D8EC lsls r0, 24 cmp r0, 0 bne _080A1292 bl _0809EAE0 _080A1292: movs r0, 0 movs r1, 0xB bl sub_80A87AC bl _0809F0C4 _080A129E: mov r0, r9 movs r1, 0x1 bl sub_809D8EC b _080A130A _080A12A8: add r0, sp, 0x8 ldrh r0, [r0, 0x2] _080A12AC: mov r2, r10 _080A12AE: strh r0, [r2, 0x2A] bl _0809F0C4 _080A12B4: add r0, sp, 0x8 movs r3, 0x2 ldrsh r1, [r0, r3] ldr r0, [sp, 0xC] subs r0, r1 bl OtherRandomCapped add r1, sp, 0x8 ldrh r1, [r1, 0x2] adds r1, r0 mov r4, r10 strh r1, [r4, 0x2A] bl _0809F0C4 _080A12D0: add r0, sp, 0x8 ldrh r0, [r0, 0x2] mov r5, r10 strh r0, [r5, 0x28] add r0, sp, 0x8 movs r2, 0x2 ldrsh r1, [r0, r2] mov r0, r9 bl sub_809D8EC b _080A130A _080A12E6: add r0, sp, 0x8 movs r3, 0x2 ldrsh r0, [r0, r3] bl sub_809D9B8 bl _0809EAE0 _080A12F4: add r0, sp, 0x8 ldrh r0, [r0, 0x2] mov r4, r10 strh r0, [r4, 0x28] add r0, sp, 0x8 movs r5, 0x2 ldrsh r1, [r0, r5] ldrb r2, [r0, 0x1] mov r0, r9 bl sub_809DA08 _080A130A: lsls r0, 24 _080A130C: cmp r0, 0 bne _080A1314 bl _0809EAE0 _080A1314: bl _0809F0C4 _080A1318: mov r1, r10 adds r1, 0x10 mov r0, r10 adds r0, 0x4 ldm r0!, {r2-r4} stm r1!, {r2-r4} _080A1324: add r0, sp, 0x8 movs r5, 0x2 ldrsh r1, [r0, r5] _080A132A: mov r0, r9 bl sub_80A242C _080A1330: mov r1, r10 str r0, [r1, 0x4] bl _0809EAE0 _080A1338: mov r1, r10 adds r1, 0x10 mov r0, r10 adds r0, 0x4 ldm r0!, {r2-r4} stm r1!, {r2-r4} _080A1344: ldr r2, _080A1364 add r0, sp, 0x8 movs r5, 0x2 ldrsh r1, [r0, r5] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r2, 0x8 adds r0, r2 ldr r0, [r0] mov r1, r10 str r0, [r1, 0x4] str r0, [r1, 0x8] bl _0809EAE0 .align 2, 0 _080A1364: .4byte gFunctionScriptTable _080A1368: mov r1, r10 adds r1, 0x10 mov r0, r10 adds r0, 0x4 ldm r0!, {r2-r4} stm r1!, {r2-r4} _080A1374: ldr r0, _080A138C movs r5, 0 ldrsh r1, [r0, r5] add r0, sp, 0x8 ldrh r0, [r0, 0x2] lsls r0, 16 cmp r0, 0 blt _080A1390 add r0, sp, 0x8 movs r3, 0x2 ldrsh r2, [r0, r3] b _080A1396 .align 2, 0 _080A138C: .4byte gUnknown_2039A34 _080A1390: mov r4, r10 movs r5, 0xC ldrsh r2, [r4, r5] _080A1396: adds r5, r2, 0 add r0, sp, 0x8 ldrb r0, [r0, 0x1] lsls r0, 24 cmp r0, 0 blt _080A13AA add r0, sp, 0x8 movs r4, 0x1 ldrsb r4, [r0, r4] b _080A13B0 _080A13AA: mov r0, r10 movs r4, 0xE ldrsb r4, [r0, r4] _080A13B0: add r0, sp, 0x1C adds r2, r5, 0 adds r3, r4, 0 bl GroundMap_GetStationScript ldr r0, [sp, 0x1C] mov r1, r10 str r0, [r1, 0x4] str r0, [r1, 0x8] strh r5, [r1, 0xC] strb r4, [r1, 0xE] bl _0809EAE0 _080A13CA: mov r0, r10 adds r0, 0x50 add r1, sp, 0x8 movs r2, 0x2 ldrsh r1, [r1, r2] bl sub_8001658 lsls r0, 16 asrs r0, 16 bl sub_80A4D7C ldr r4, _080A13F4 strh r0, [r4] bl sub_809D940 movs r3, 0 ldrsh r0, [r4, r3] bl GroundMap_ExecuteEnter bl _0809EAE0 .align 2, 0 _080A13F4: .4byte gUnknown_2039A34 _080A13F8: movs r0, 0 mov r4, r10 str r0, [r4, 0x10] str r0, [r4, 0x14] bl _0809EAE0 _080A1404: mov r5, r10 ldr r0, [r5, 0x10] cmp r0, 0 bne _080A1410 _080A140C: movs r0, 0 b _080A142E _080A1410: mov r0, r10 adds r0, 0x4 mov r1, r10 adds r1, 0x10 ldm r1!, {r2-r4} stm r0!, {r2-r4} movs r0, 0 mov r5, r10 str r0, [r5, 0x10] str r0, [r5, 0x14] bl _0809EAE0 _080A1428: movs r0, 0x1 b _080A142E _080A142C: movs r0, 0x4 _080A142E: add sp, 0x1BC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end ExecuteScriptCommand thumb_func_start sub_80A1440 sub_80A1440: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 adds r3, r2, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 adds r1, r4, 0 adds r2, r5, 0 bl sub_80A14E8 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80A1440 thumb_func_start GroundScript_ExecuteTrigger GroundScript_ExecuteTrigger: push {r4,r5,lr} sub sp, 0xF4 lsls r0, 16 asrs r4, r0, 16 lsls r0, r4, 1 adds r0, r4 lsls r0, 2 ldr r1, _080A14C8 adds r0, r1 movs r1, 0x2 ldrsh r0, [r0, r1] cmp r0, 0xB bne _080A14C4 add r5, sp, 0x10 ldr r1, _080A14CC movs r0, 0 str r0, [sp] adds r0, r5, 0 movs r2, 0 movs r3, 0 bl sub_809D600 movs r0, 0 add r1, sp, 0x4 adds r2, r4, 0 bl sub_809D710 ldr r3, _080A14D0 adds r0, r5, 0 movs r1, 0 add r2, sp, 0x4 bl GroundScript_ExecutePP add r1, sp, 0x44 add r0, sp, 0x38 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldr r0, _080A14D4 str r0, [r5, 0x34] str r0, [r5, 0x38] ldr r1, _080A14D8 adds r0, r5, 0 bl HandleAction adds r4, r0, 0 lsls r4, 16 asrs r4, 16 adds r0, r5, 0 bl sub_809D648 cmp r4, 0 beq _080A14DC _080A14C4: movs r0, 0 b _080A14DE .align 2, 0 _080A14C8: .4byte gFunctionScriptTable _080A14CC: .4byte gUnknown_8116488 _080A14D0: .4byte gUnknown_81166F8 _080A14D4: .4byte gUnknown_81164E4 _080A14D8: .4byte gUnknown_8116704 _080A14DC: movs r0, 0x1 _080A14DE: add sp, 0xF4 pop {r4,r5} pop {r1} bx r1 thumb_func_end GroundScript_ExecuteTrigger thumb_func_start sub_80A14E8 sub_80A14E8: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r4, _080A1514 add sp, r4 adds r6, r0, 0 adds r5, r2, 0 adds r7, r3, 0 lsls r1, 24 lsrs r1, 24 subs r0, r1, 0x1 cmp r0, 0x49 bls _080A1508 bl _080A236A _080A1508: lsls r0, 2 ldr r1, _080A1518 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080A1514: .4byte 0xfffffc80 _080A1518: .4byte _080A151C .align 2, 0 _080A151C: .4byte _080A1644 .4byte _080A164C .4byte _080A1672 .4byte _080A167A .4byte _080A1680 .4byte _080A1688 .4byte _080A1690 .4byte _080A1698 .4byte _080A169E .4byte _080A16C6 .4byte _080A1730 .4byte _080A1756 .4byte _080A178C .4byte _080A1792 .4byte _080A17C0 .4byte _080A17C6 .4byte _080A1800 .4byte _080A1814 .4byte _080A1824 .4byte _080A1840 .4byte _080A185E .4byte _080A18C2 .4byte _080A18E2 @ Wigglytuff Club Opening .4byte _080A18F2 .4byte _080A1904 .4byte _080A197C .4byte _080A1988 .4byte _080A19DC .4byte _080A19FC .4byte _080A1A0E .4byte _080A1A18 .4byte _080A1A70 .4byte _080A1AF8 .4byte _080A1B20 .4byte _080A1B36 .4byte _080A1B58 .4byte _080A1B64 .4byte _080A1BD8 .4byte _080A1BE4 .4byte _080A1C30 .4byte _080A1C84 .4byte _080A1DEC .4byte _080A1E30 .4byte _080A1E3C .4byte _080A1ED0 .4byte _080A1ED6 .4byte _080A1F28 .4byte _080A1F3C .4byte _080A1F44 .4byte _080A1F50 .4byte _080A1F80 .4byte _080A1FDA .4byte _080A202C .4byte _080A2054 .4byte _080A2060 .4byte _080A204A .4byte _080A206C .4byte _080A2076 .4byte _080A207C .4byte _080A2082 .4byte _080A20D4 .4byte _080A20F4 .4byte _080A21E4 .4byte _080A228C .4byte _080A229E .4byte _080A2298 .4byte _080A22AE .4byte _080A22CC .4byte _080A22E4 .4byte _080A2304 .4byte _080A2320 .4byte _080A232E .4byte _080A233A .4byte _080A2346 _080A1644: bl sub_8098C58 bl _080A236A _080A164C: bl sub_8011C34 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _080A1660 bl Random bl sub_8011C40 _080A1660: movs r0, 0x1 bl sub_8011C28 bl sub_8001064 bl sub_809965C bl _080A236A _080A1672: bl sub_8098CC8 bl _080A236A _080A167A: bl sub_80961D8 b _080A1804 _080A1680: bl sub_8096028 bl _080A236A _080A1688: bl sub_80963FC bl _080A236A _080A1690: bl sub_8096488 bl _080A236A _080A1698: bl sub_80964B4 b _080A1804 _080A169E: movs r0, 0x8 bl sub_80023E4 lsls r0, 24 cmp r0, 0 bne _080A16B0 bl sub_808D4B0 b _080A16B4 _080A16B0: bl sub_808D500 _080A16B4: lsls r0, 24 lsrs r4, r0, 24 bl nullsub_104 negs r0, r4 orrs r0, r4 lsrs r0, 31 bl _080A236C _080A16C6: movs r1, 0xC ldrsh r0, [r6, r1] cmp r0, 0x1 beq _080A16D2 bl _080A236A _080A16D2: movs r2, 0xE ldrsh r0, [r6, r2] add r1, sp, 0x314 bl sub_80A8C4C lsls r0, 16 asrs r1, r0, 16 cmp r1, 0 bne _080A16E8 bl _080A236A _080A16E8: add r0, sp, 0x314 ldrb r0, [r0] cmp r0, 0x44 bne _080A16FC movs r0, 0x82 lsls r0, 1 cmp r1, r0 bne _080A16FC bl _080A203C _080A16FC: movs r3, 0xE ldrsh r0, [r6, r3] bl sub_80A90C8 lsls r0, 16 ldr r1, _080A172C asrs r0, 14 adds r0, r1 ldr r1, [r0] add r0, sp, 0x4 bl strcpy movs r0, 0 movs r1, 0x1 add r2, sp, 0x4 bl sub_809AE90 _080A171E: lsls r0, 24 _080A1720: cmp r0, 0 beq _080A1726 b _080A1EBE _080A1726: bl _080A236A .align 2, 0 _080A172C: .4byte gFriendAreaDialogue _080A1730: movs r0, 0 movs r1, 0x14 bl sub_8001658 lsls r0, 16 asrs r0, 16 bl sub_80A2740 lsls r0, 24 lsrs r0, 24 bl sub_80969D0 movs r1, 0 cmp r0, 0 ble _080A1750 movs r1, 0x1 _080A1750: adds r0, r1, 0 bl _080A236C _080A1756: add r4, sp, 0x104 adds r0, r4, 0 bl sub_8099394 lsls r0, 24 cmp r0, 0 bne _080A1768 bl _080A236A _080A1768: ldr r0, _080A1788 ldr r1, [r0] ldrb r2, [r4] lsls r0, r2, 1 adds r0, r2 lsls r0, 4 adds r1, r0 adds r1, 0x2C movs r0, 0 ldrsb r0, [r1, r0] _080A177C: cmp r0, 0 ble _080A1782 b _080A1EBE _080A1782: bl _080A236A .align 2, 0 _080A1788: .4byte gUnknown_203B480 _080A178C: bl sub_8097640 b _080A1804 _080A1792: movs r5, 0x11 _080A1794: lsls r4, r5, 16 asrs r0, r4, 16 bl sub_809758C lsls r0, 24 cmp r0, 0 beq _080A17B6 lsrs r4, 16 movs r0, 0 movs r1, 0x2F adds r2, r4, 0 bl sub_8001784 cmp r0, 0 bne _080A17B6 bl _080A234E _080A17B6: adds r5, 0x1 cmp r5, 0x16 ble _080A1794 bl _080A236A _080A17C0: bl sub_80964E4 b _080A1804 _080A17C6: movs r4, 0x8 ldrsh r0, [r6, r4] cmp r0, 0x1 beq _080A17D2 bl _080A236A _080A17D2: movs r5, 0xA ldrsh r0, [r6, r5] cmp r0, 0 beq _080A17DE bl _080A236A _080A17DE: movs r1, 0xC ldrsh r0, [r6, r1] cmp r0, 0x1 beq _080A17EA bl _080A236A _080A17EA: movs r2, 0xA ldrsh r4, [r6, r2] movs r3, 0xE ldrsh r0, [r6, r3] bl sub_80A8E9C adds r1, r0, 0 adds r0, r4, 0 bl sub_80A87E0 b _080A171E _080A1800: bl sub_80A8D20 _080A1804: adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 negs r0, r1 orrs r0, r1 lsrs r0, 31 bl _080A236C _080A1814: ldr r0, _080A1820 ldrh r0, [r0] movs r1, 0xC0 lsls r1, 2 ands r0, r1 b _080A1720 .align 2, 0 _080A1820: .4byte gRealInputs _080A1824: lsls r0, r5, 16 asrs r0, 16 bl sub_80A8D54 cmp r0, 0 bne _080A1834 bl _080A236A _080A1834: ldrh r0, [r0] lsrs r0, 1 movs r1, 0x1 ands r0, r1 bl _080A236C _080A1840: movs r4, 0x8 ldrsh r0, [r6, r4] cmp r0, 0x1 beq _080A184C bl _080A236A _080A184C: movs r5, 0xA ldrsh r0, [r6, r5] bl sub_80A8BFC lsls r0, 16 asrs r0, 16 bl GetIsMoving b _080A171E _080A185E: lsls r0, r5, 16 asrs r0, 16 bl sub_80A7AE8 lsls r0, 16 asrs r5, r0, 16 cmp r5, 0 bge _080A1872 bl _080A236A _080A1872: lsls r4, r7, 8 ldr r1, [r6] ldr r0, [r6, 0x4] add r7, sp, 0x318 ldr r2, [r1, 0xC] adds r1, r7, 0 bl _call_via_r2 add r6, sp, 0x320 adds r0, r5, 0 adds r1, r6, 0 bl sub_80A8FD8 add r0, sp, 0x318 ldr r3, [r0] subs r1, r3, r4 add r0, sp, 0x320 ldr r2, [r0] cmp r1, r2 ble _080A189E bl _080A236A _080A189E: adds r0, r3, r4 cmp r0, r2 bge _080A18A8 bl _080A236A _080A18A8: ldr r2, [r7, 0x4] subs r0, r2, r4 ldr r1, [r6, 0x4] cmp r0, r1 ble _080A18B6 bl _080A236A _080A18B6: adds r0, r2, r4 cmp r0, r1 blt _080A18BE b _080A1EBE _080A18BE: bl _080A236A _080A18C2: movs r0, 0x1 bl sub_80A8D54 cmp r0, 0 bne _080A18D0 bl _080A236A _080A18D0: adds r1, r0, 0 adds r1, 0x4C movs r2, 0 adds r0, 0x55 _080A18D8: strb r2, [r0] subs r0, 0x1 cmp r0, r1 bge _080A18D8 b _080A1EBE _080A18E2: @ Wigglytuff Guild Opening movs r0, 0xC @ Wild Plains bl UnlockFriendArea movs r0, 0x12 @ Mist-Rise Forest bl UnlockFriendArea bl _080A236A _080A18F2: ldr r0, _080A1900 movs r1, 0x3C _080A18F6: movs r2, 0xA bl sub_80A8F50 bl _080A236A .align 2, 0 _080A1900: .4byte gUnknown_2039D98 _080A1904: movs r0, 0x51 bl GetFriendArea lsls r0, 24 lsrs r0, 24 bl UnlockFriendArea add r1, sp, 0x4 ldr r0, _080A1970 ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldm r0!, {r2,r4,r6} stm r1!, {r2,r4,r6} ldm r0!, {r3,r4,r6} stm r1!, {r3,r4,r6} ldr r0, [r0] str r0, [r1] add r4, sp, 0x2C adds r0, r4, 0 add r1, sp, 0x4 bl sub_808D144 adds r0, r4, 0 bl sub_808D1DC cmp r0, 0 bne _080A193C b _080A1EBE _080A193C: movs r3, 0 ldr r1, _080A1974 mov r8, r1 lsls r6, r5, 2 ldr r2, _080A1978 adds r4, r0, 0 adds r4, 0x4C mov r7, r8 _080A194C: adds r0, r4, r3 adds r1, r3, r7 ldrb r1, [r1] strb r1, [r0] adds r3, 0x1 cmp r3, 0x9 ble _080A194C _080A195A: adds r0, r6, r5 lsls r0, 4 adds r0, r2 mov r1, r8 movs r2, 0xA bl sub_80922B4 _080A1968: bl sub_8097848 bl _080A236A .align 2, 0 _080A1970: .4byte gUnknown_8116710 _080A1974: .4byte gUnknown_2039D98 _080A1978: .4byte gPlayerName _080A197C: ldr r0, _080A1984 movs r1, 0x53 b _080A18F6 .align 2, 0 _080A1984: .4byte gUnknown_2039D98 _080A1988: ldr r0, _080A19D4 bl GetFriendArea lsls r0, 24 lsrs r0, 24 bl UnlockFriendArea add r1, sp, 0x84 adds r2, r1, 0 ldr r0, _080A19D8 ldm r0!, {r3-r5} stm r2!, {r3-r5} ldm r0!, {r3,r4,r6} stm r2!, {r3,r4,r6} ldm r0!, {r3,r5,r6} stm r2!, {r3,r5,r6} ldr r0, [r0] str r0, [r2] add r4, sp, 0xAC adds r0, r4, 0 bl sub_808D144 adds r0, r4, 0 bl sub_808D1DC adds r4, r0, 0 cmp r4, 0 bne _080A19C2 b _080A1EBE _080A19C2: bl sub_8097848 ldrh r1, [r4] movs r0, 0x2 orrs r0, r1 strh r0, [r4] bl _080A236A .align 2, 0 _080A19D4: .4byte 0x00000183 _080A19D8: .4byte gUnknown_8116738 _080A19DC: ldr r0, _080A19F8 movs r1, 0 bl sub_808D434 adds r2, r0, 0 cmp r2, 0 bne _080A19EC b _080A1EBE _080A19EC: ldrh r1, [r2] movs r0, 0x2 orrs r0, r1 strh r0, [r2] bl _080A236A .align 2, 0 _080A19F8: .4byte 0x00000183 _080A19FC: movs r0, 0x82 lsls r0, 1 _080A1A00: bl sub_808D278 cmp r0, 0 bne _080A1A0A b _080A1EBE _080A1A0A: bl _080A236A _080A1A0E: ldr r0, _080A1A14 movs r1, 0x7C b _080A18F6 .align 2, 0 _080A1A14: .4byte gUnknown_2039D98 _080A1A18: add r1, sp, 0x108 adds r2, r1, 0 ldr r0, _080A1A64 ldm r0!, {r3,r4,r6} stm r2!, {r3,r4,r6} ldm r0!, {r3,r4,r6} stm r2!, {r3,r4,r6} ldm r0!, {r3,r4,r6} stm r2!, {r3,r4,r6} ldr r0, [r0] str r0, [r2] add r4, sp, 0x130 adds r0, r4, 0 bl sub_808D144 adds r0, r4, 0 bl sub_808D1DC cmp r0, 0 bne _080A1A42 b _080A1EBE _080A1A42: movs r3, 0 ldr r4, _080A1A68 mov r8, r4 lsls r6, r5, 2 ldr r2, _080A1A6C adds r4, r0, 0 adds r4, 0x4C mov r7, r8 _080A1A52: adds r0, r4, r3 adds r1, r3, r7 ldrb r1, [r1] strb r1, [r0] adds r3, 0x1 cmp r3, 0x9 ble _080A1A52 b _080A195A .align 2, 0 _080A1A64: .4byte gUnknown_8116760 _080A1A68: .4byte gUnknown_2039D98 _080A1A6C: .4byte gPlayerName _080A1A70: movs r0, 0x9E movs r1, 0x1 bl sub_80026E8 movs r0, 0x91 movs r1, 0 bl sub_808D434 cmp r0, 0 bne _080A1A9A ldr r3, _080A1AEC str r0, [sp] movs r0, 0x91 movs r1, 0 movs r2, 0 bl sub_808D2E8 cmp r0, 0 beq _080A1A9A bl sub_8097848 _080A1A9A: movs r0, 0x92 movs r1, 0 bl sub_808D434 cmp r0, 0 bne _080A1ABC ldr r3, _080A1AF0 str r0, [sp] movs r0, 0x92 movs r1, 0 movs r2, 0 bl sub_808D2E8 cmp r0, 0 beq _080A1ABC bl sub_8097848 _080A1ABC: movs r0, 0x90 movs r1, 0 bl sub_808D434 cmp r0, 0 beq _080A1ACC bl _080A236A _080A1ACC: ldr r3, _080A1AF4 str r0, [sp] movs r0, 0x90 movs r1, 0 movs r2, 0 bl sub_808D2E8 cmp r0, 0 bne _080A1AE2 bl _080A236A _080A1AE2: bl sub_8097848 bl _080A236A .align 2, 0 _080A1AEC: .4byte gUnknown_8116788 _080A1AF0: .4byte gUnknown_811678C _080A1AF4: .4byte gUnknown_8116790 _080A1AF8: movs r0, 0x90 bl HasRecruitedMon lsls r0, 24 cmp r0, 0 bne _080A1B08 bl _080A236A _080A1B08: movs r0, 0x91 bl HasRecruitedMon lsls r0, 24 cmp r0, 0 bne _080A1B18 bl _080A236A _080A1B18: movs r0, 0x92 bl HasRecruitedMon b _080A171E _080A1B20: bl sub_808D33C ldrh r0, [r0, 0x8] subs r0, 0x90 lsls r0, 16 lsrs r0, 16 cmp r0, 0x2 bls _080A1B32 b _080A1EBE _080A1B32: bl _080A236A _080A1B36: bl sub_808D33C cmp r0, 0 beq _080A1B4A movs r5, 0x8 ldrsh r1, [r0, r5] ldr r0, _080A1B54 cmp r1, r0 bne _080A1B4A b _080A203C _080A1B4A: ldr r0, _080A1B54 bl sub_8098134 b _080A171E .align 2, 0 _080A1B54: .4byte 0x00000113 _080A1B58: ldr r0, _080A1B60 movs r1, 0x79 b _080A18F6 .align 2, 0 _080A1B60: .4byte gUnknown_2039D98 _080A1B64: ldr r4, _080A1BCC adds r0, r4, 0 bl GetFriendArea lsls r0, 24 lsrs r0, 24 bl GetFriendAreaStatus lsls r0, 24 cmp r0, 0 bne _080A1B88 adds r0, r4, 0 bl GetFriendArea lsls r0, 24 lsrs r0, 24 bl UnlockFriendArea _080A1B88: add r1, sp, 0x188 adds r2, r1, 0 ldr r0, _080A1BD0 ldm r0!, {r3,r4,r6} stm r2!, {r3,r4,r6} ldm r0!, {r3,r5,r6} stm r2!, {r3,r5,r6} ldm r0!, {r4-r6} stm r2!, {r4-r6} ldr r0, [r0] str r0, [r2] add r4, sp, 0x1B0 adds r0, r4, 0 bl sub_808D144 adds r0, r4, 0 bl sub_808D1DC cmp r0, 0 bne _080A1BB2 b _080A1EBE _080A1BB2: movs r2, 0 adds r3, r0, 0 adds r3, 0x4C ldr r4, _080A1BD4 _080A1BBA: adds r0, r3, r2 adds r1, r2, r4 ldrb r1, [r1] strb r1, [r0] adds r2, 0x1 cmp r2, 0x9 ble _080A1BBA b _080A1968 .align 2, 0 _080A1BCC: .4byte 0x00000199 _080A1BD0: .4byte gUnknown_8116794 _080A1BD4: .4byte gUnknown_2039D98 _080A1BD8: ldr r0, _080A1BE0 movs r1, 0x7A b _080A18F6 .align 2, 0 _080A1BE0: .4byte gUnknown_2039D98 _080A1BE4: add r1, sp, 0x208 adds r2, r1, 0 ldr r0, _080A1C28 ldm r0!, {r3-r5} stm r2!, {r3-r5} ldm r0!, {r3,r4,r6} stm r2!, {r3,r4,r6} ldm r0!, {r3,r5,r6} stm r2!, {r3,r5,r6} ldr r0, [r0] str r0, [r2] add r4, sp, 0x230 adds r0, r4, 0 bl sub_808D144 adds r0, r4, 0 bl sub_808D1DC cmp r0, 0 bne _080A1C0E b _080A1EBE _080A1C0E: movs r2, 0 adds r3, r0, 0 adds r3, 0x4C ldr r4, _080A1C2C _080A1C16: adds r0, r3, r2 adds r1, r2, r4 ldrb r1, [r1] strb r1, [r0] adds r2, 0x1 cmp r2, 0x9 ble _080A1C16 b _080A1968 .align 2, 0 _080A1C28: .4byte gUnknown_81167BC _080A1C2C: .4byte gUnknown_2039D98 _080A1C30: bl GetNumberOfFilledInventorySlots cmp r0, 0x13 ble _080A1C70 ldr r0, _080A1C64 ldrb r4, [r0, 0x2] adds r0, r4, 0 bl IsNotMoneyOrUsedTMItem lsls r0, 24 cmp r0, 0 bne _080A1C4A b _080A236A _080A1C4A: ldr r0, _080A1C68 ldr r0, [r0] lsls r1, r4, 1 adds r0, 0x50 adds r1, r0, r1 ldrh r2, [r1] ldr r0, _080A1C6C cmp r2, r0 bls _080A1C5E b _080A236A _080A1C5E: adds r0, r2, 0x1 strh r0, [r1] b _080A236A .align 2, 0 _080A1C64: .4byte gUnknown_81167E4 _080A1C68: .4byte gTeamInventory_203B460 _080A1C6C: .4byte 0x000003e6 _080A1C70: ldr r0, _080A1C80 ldrb r0, [r0, 0x2] movs r1, 0 bl sub_809124C bl FillInventoryGaps b _080A236A .align 2, 0 _080A1C80: .4byte gUnknown_81167E4 _080A1C84: movs r0, 0xD1 lsls r0, 1 bl RandomCapped adds r0, 0x1 lsls r0, 16 asrs r5, r0, 16 movs r0, 0x20 bl RandomCapped adds r4, r0, 0 movs r7, 0xD2 lsls r7, 1 movs r6, 0 ldr r0, _080A1DE0 mov r8, r0 _080A1CA4: adds r0, r5, 0x1 lsls r0, 16 asrs r5, r0, 16 cmp r5, r8 ble _080A1CB0 movs r5, 0x1 _080A1CB0: subs r7, 0x1 cmp r7, 0 bge _080A1CCC cmp r6, 0 bne _080A1CBC b _080A2360 _080A1CBC: cmp r4, r6 blt _080A1CCC adds r0, r6, 0 bl RandomCapped adds r4, r0, 0 movs r7, 0xD2 lsls r7, 1 _080A1CCC: adds r0, r5, 0 subs r0, 0x90 lsls r0, 16 lsrs r0, 16 cmp r0, 0x2 bls _080A1CA4 ldr r0, _080A1DE4 cmp r5, r0 beq _080A1CA4 adds r0, 0x1 cmp r5, r0 beq _080A1CA4 adds r0, 0xB cmp r5, r0 beq _080A1CA4 subs r0, 0xD cmp r5, r0 beq _080A1CA4 subs r0, 0x88 cmp r5, r0 beq _080A1CA4 adds r0, 0x67 cmp r5, r0 beq _080A1CA4 adds r0, 0x1 cmp r5, r0 beq _080A1CA4 adds r0, 0x1 cmp r5, r0 beq _080A1CA4 adds r0, 0x23 cmp r5, r0 beq _080A1CA4 adds r0, 0x3 cmp r5, r0 beq _080A1CA4 adds r0, 0x1 cmp r5, r0 beq _080A1CA4 cmp r5, r8 beq _080A1CA4 cmp r5, 0x96 beq _080A1CA4 subs r0, 0x5 cmp r5, r0 beq _080A1CA4 cmp r5, 0x97 beq _080A1CA4 subs r0, 0x5 cmp r5, r0 beq _080A1CA4 adds r0, 0x1 cmp r5, r0 beq _080A1CA4 subs r0, 0x8C cmp r5, r0 beq _080A1CA4 subs r0, 0x1 cmp r5, r0 beq _080A1CA4 adds r0, 0x2 cmp r5, r0 beq _080A1CA4 adds r0, 0x5 cmp r5, r0 beq _080A1CA4 adds r0, 0x82 cmp r5, r0 beq _080A1CA4 adds r0, 0x1 cmp r5, r0 beq _080A1CA4 adds r0, 0x1 cmp r5, r0 beq _080A1CA4 subs r0, 0x83 cmp r5, r0 beq _080A1CA4 adds r0, r5, 0 bl IsExclusivePokemonUnlocked lsls r0, 24 cmp r0, 0 beq _080A1CA4 adds r0, r5, 0 bl GetFriendArea lsls r0, 24 lsrs r0, 24 bl GetFriendAreaStatus lsls r0, 24 cmp r0, 0 beq _080A1D9E adds r0, r5, 0 bl HasRecruitedMon lsls r0, 24 cmp r0, 0 bne _080A1CA4 adds r0, r5, 0 bl sub_808D278 cmp r0, 0 beq _080A1CA4 _080A1D9E: adds r6, 0x1 subs r4, 0x1 cmp r4, 0 blt _080A1DA8 b _080A1CA4 _080A1DA8: movs r0, 0 movs r1, 0x1F adds r2, r5, 0 bl sub_80018D8 ldr r4, _080A1DE8 adds r0, r5, 0 bl GetFriendArea adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 movs r2, 0 bl sub_8092578 adds r0, r5, 0 bl GetFriendArea lsls r0, 24 lsrs r0, 24 bl GetFriendAreaStatus lsls r0, 24 cmp r0, 0 bne _080A1EBE b _080A203C .align 2, 0 _080A1DE0: .4byte 0x000001a3 _080A1DE4: .4byte 0x0000019b _080A1DE8: .4byte gUnknown_202E628 _080A1DEC: movs r0, 0 movs r1, 0x1F bl sub_8001658 lsls r0, 16 asrs r5, r0, 16 ldr r4, _080A1E2C adds r0, r5, 0 bl GetFriendArea adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 movs r2, 0 bl sub_8092578 cmp r5, 0 bne _080A1E14 b _080A236A _080A1E14: adds r0, r5, 0 bl GetFriendArea lsls r0, 24 lsrs r0, 24 bl GetFriendAreaStatus lsls r0, 24 cmp r0, 0 bne _080A1EBE b _080A203C .align 2, 0 _080A1E2C: .4byte gUnknown_202E628 _080A1E30: ldr r0, _080A1E38 movs r1, 0x20 b _080A18F6 .align 2, 0 _080A1E38: .4byte gUnknown_2039D98 _080A1E3C: cmp r5, 0 bne _080A1E42 b _080A2360 _080A1E42: movs r0, 0 movs r1, 0x1F bl sub_8001658 lsls r0, 16 asrs r5, r0, 16 adds r6, r5, 0 ldr r4, _080A1EC4 adds r0, r5, 0 bl GetFriendArea adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 movs r2, 0 bl sub_8092578 cmp r5, 0 bne _080A1E6C b _080A236A _080A1E6C: adds r0, r5, 0 bl GetFriendArea lsls r0, 24 lsrs r0, 24 bl GetFriendAreaStatus lsls r0, 24 cmp r0, 0 bne _080A1E8E adds r0, r5, 0 bl GetFriendArea lsls r0, 24 lsrs r0, 24 bl UnlockFriendArea _080A1E8E: ldr r3, _080A1EC8 movs r0, 0 str r0, [sp] adds r0, r6, 0 movs r1, 0 movs r2, 0 bl sub_808D2E8 cmp r0, 0 bne _080A1EA4 b _080A236A _080A1EA4: movs r2, 0 adds r3, r0, 0 adds r3, 0x4C ldr r4, _080A1ECC _080A1EAC: adds r0, r3, r2 adds r1, r2, r4 ldrb r1, [r1] strb r1, [r0] adds r2, 0x1 cmp r2, 0x9 ble _080A1EAC bl sub_8097848 _080A1EBE: movs r0, 0x1 b _080A236C .align 2, 0 _080A1EC4: .4byte gUnknown_202E628 _080A1EC8: .4byte gUnknown_81167E8 _080A1ECC: .4byte gUnknown_2039D98 _080A1ED0: bl GetPtsToNextRank b _080A177C _080A1ED6: bl GetRescueTeamRank lsls r0, 24 lsrs r4, r0, 24 bl GetPtsToNextRank cmp r0, 0 bgt _080A1EE8 b _080A236A _080A1EE8: bl AddToTeamRankPts bl GetRescueTeamRank adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 adds r0, r4, 0 bl GetTeamRankString adds r1, r0, 0 ldr r4, _080A1F30 adds r0, r4, 0 bl strcpy adds r0, r5, 0 bl GetTeamRankString adds r1, r0, 0 adds r4, 0x50 adds r0, r4, 0 bl strcpy movs r1, 0x1 negs r1, r1 ldr r2, _080A1F34 movs r0, 0 bl sub_809AE90 lsls r0, 24 cmp r0, 0 bne _080A1EBE _080A1F28: ldr r0, _080A1F38 bl AddToTeamMoney b _080A236A .align 2, 0 _080A1F30: .4byte gUnknown_202DE58 _080A1F34: .4byte gUnknown_81167EC _080A1F38: .4byte 0x00002710 _080A1F3C: ldr r0, _080A1F40 b _080A1A00 .align 2, 0 _080A1F40: .4byte 0x00000133 _080A1F44: ldr r0, _080A1F4C movs r1, 0x52 b _080A18F6 .align 2, 0 _080A1F4C: .4byte gUnknown_2039D98 _080A1F50: add r1, sp, 0x288 adds r2, r1, 0 ldr r0, _080A1F7C ldm r0!, {r3-r5} stm r2!, {r3-r5} ldm r0!, {r3,r4,r6} stm r2!, {r3,r4,r6} ldm r0!, {r3,r5,r6} stm r2!, {r3,r5,r6} ldr r0, [r0] str r0, [r2] add r4, sp, 0x2B0 adds r0, r4, 0 bl sub_808D144 adds r0, r4, 0 bl sub_808D1DC cmp r0, 0 beq _080A1EBE b _080A1968 .align 2, 0 _080A1F7C: .4byte gUnknown_811681C _080A1F80: movs r2, 0x1 negs r2, r2 movs r0, 0x3 movs r1, 0x12 bl sub_8001D44 lsls r0, 24 cmp r0, 0 bne _080A1F94 b _080A236A _080A1F94: movs r0, 0 movs r1, 0xF bl sub_8001658 cmp r0, 0x4 bne _080A1FA2 b _080A236A _080A1FA2: movs r0, 0 movs r1, 0x42 movs r2, 0 bl sub_8001784 cmp r0, 0 ble _080A1FB2 b _080A236A _080A1FB2: movs r0, 0x80 lsls r0, 1 bl OtherRandomCapped cmp r0, 0 bne _080A1FCC movs r0, 0 movs r1, 0x42 movs r2, 0 movs r3, 0x4 bl sub_800199C b _080A1EBE _080A1FCC: movs r0, 0 movs r1, 0x42 movs r2, 0 movs r3, 0x1 bl sub_800199C b _080A236A _080A1FDA: ldr r6, _080A200C ldr r7, _080A2010 movs r5, 0x2 _080A1FE0: bl GetNumberOfFilledInventorySlots cmp r0, 0x13 ble _080A2018 ldrb r4, [r6, 0x2] adds r0, r4, 0 bl IsNotMoneyOrUsedTMItem lsls r0, 24 cmp r0, 0 beq _080A2024 ldr r0, _080A2014 ldr r0, [r0] lsls r1, r4, 1 adds r0, 0x50 adds r1, r0, r1 ldrh r0, [r1] cmp r0, r7 bhi _080A2024 adds r0, 0x1 strh r0, [r1] b _080A2024 .align 2, 0 _080A200C: .4byte gUnknown_8116844 _080A2010: .4byte 0x000003e6 _080A2014: .4byte gTeamInventory_203B460 _080A2018: ldrb r0, [r6, 0x2] movs r1, 0 bl sub_809124C bl FillInventoryGaps _080A2024: subs r5, 0x1 cmp r5, 0 bge _080A1FE0 b _080A236A _080A202C: bl sub_808D33C cmp r0, 0 beq _080A2040 movs r4, 0x8 ldrsh r0, [r0, r4] cmp r0, 0x71 bne _080A2040 _080A203C: movs r0, 0x2 b _080A236C _080A2040: movs r0, 0x71 bl sub_8098134 bl _080A171E _080A204A: movs r0, 0 movs r1, 0x1 bl sub_80A56A0 b _080A236A _080A2054: add r0, sp, 0x328 str r5, [r0] str r7, [r0, 0x4] bl sub_80A56F0 b _080A236A _080A2060: add r0, sp, 0x330 str r5, [r0] str r7, [r0, 0x4] bl sub_80A5704 b _080A236A _080A206C: lsls r0, r5, 16 lsrs r0, 16 bl sub_809C6CC b _080A236A _080A2076: bl sub_809C6EC b _080A236A _080A207C: bl sub_809C760 b _080A236A _080A2082: movs r0, 0 movs r4, 0x80 lsls r4, 9 _080A2088: movs r1, 0x80 lsls r1, 15 bl sub_80A86C8 adds r0, r4, 0 movs r5, 0x80 lsls r5, 9 adds r4, r5 asrs r0, 16 cmp r0, 0x17 ble _080A2088 movs r0, 0 adds r4, r5, 0 _080A20A2: movs r1, 0x80 lsls r1, 15 bl sub_80AC1B0 adds r0, r4, 0 movs r6, 0x80 lsls r6, 9 adds r4, r6 asrs r0, 16 cmp r0, 0xF ble _080A20A2 movs r0, 0 adds r4, r6, 0 _080A20BC: movs r1, 0x80 lsls r1, 15 bl sub_80AD0C8 adds r0, r4, 0 movs r1, 0x80 lsls r1, 9 adds r4, r1 asrs r0, 16 cmp r0, 0xF ble _080A20BC b _080A236A _080A20D4: add r0, sp, 0x338 str r5, [r0] adds r4, r0, 0 str r7, [r4, 0x4] movs r0, 0x1 adds r1, r4, 0 bl sub_80A5984 adds r2, r0, 0 lsls r2, 16 lsrs r2, 16 movs r0, 0 adds r1, r4, 0 bl sub_80A59A0 b _080A236A _080A20F4: add r1, sp, 0x308 movs r2, 0 movs r0, 0x1 strb r0, [r1] strb r2, [r1, 0x1] strb r0, [r1, 0x2] strb r0, [r1, 0x3] str r2, [r1, 0x4] ldr r0, _080A21D8 ldr r2, _080A21DC adds r0, r2 ldr r0, [r0] str r0, [r1, 0x8] movs r0, 0x1 negs r0, r0 lsls r2, r5, 16 asrs r2, 16 lsls r3, r7, 24 asrs r3, 24 bl GroundEffect_Add lsls r0, 16 asrs r0, 16 cmp r0, 0 bge _080A2128 b _080A236A _080A2128: bl sub_80AD158 adds r7, r0, 0 add r4, sp, 0x340 add r5, sp, 0x348 adds r0, r4, 0 adds r1, r5, 0 bl sub_80A579C ldr r0, [r4, 0x4] movs r1, 0xC0 lsls r1, 4 adds r0, r1 str r0, [r4, 0x4] ldr r0, [r5, 0x4] adds r0, r1 str r0, [r5, 0x4] ldr r1, [r6] ldr r0, [r6, 0x4] add r6, sp, 0x350 ldr r2, [r1, 0xC] adds r1, r6, 0 bl _call_via_r2 add r1, sp, 0x350 ldr r2, [r1] add r0, sp, 0x340 ldr r0, [r0] cmp r2, r0 blt _080A216E add r0, sp, 0x348 ldr r0, [r0] cmp r2, r0 blt _080A2170 subs r0, 0x1 _080A216E: str r0, [r1] _080A2170: ldr r1, [r6, 0x4] ldr r0, [r4, 0x4] cmp r1, r0 blt _080A2180 ldr r0, [r5, 0x4] cmp r1, r0 blt _080A2182 subs r0, 0x1 _080A2180: str r0, [r6, 0x4] _080A2182: add r1, sp, 0x340 ldr r0, [r1] ldr r2, _080A21E0 adds r0, r2 str r0, [r1] ldr r0, [r4, 0x4] adds r0, r2 str r0, [r4, 0x4] add r1, sp, 0x348 ldr r0, [r1] movs r2, 0x80 lsls r2, 3 adds r0, r2 str r0, [r1] ldr r0, [r5, 0x4] adds r0, r2 str r0, [r5, 0x4] ldr r1, [r7] ldr r0, [r7, 0x4] ldr r3, [r1, 0x20] adds r1, r4, 0 adds r2, r5, 0 bl _call_via_r3 ldr r1, [r7] ldr r0, [r7, 0x4] ldr r2, [r1, 0x24] adds r1, r6, 0 bl _call_via_r2 movs r0, 0 movs r1, 0 add r2, sp, 0x358 str r0, [r2] str r1, [r2, 0x4] ldr r2, [r7] ldr r0, [r7, 0x4] add r1, sp, 0x358 ldr r2, [r2, 0x48] bl _call_via_r2 b _080A1EBE .align 2, 0 _080A21D8: .4byte gFunctionScriptTable _080A21DC: .4byte 0x00001310 _080A21E0: .4byte 0xfffffc00 _080A21E4: ldr r0, _080A2288 ldrh r4, [r0] ldrh r0, [r0, 0x2] movs r1, 0xC ands r0, r1 cmp r0, 0 beq _080A21F4 b _080A236A _080A21F4: adds r0, r4, 0 bl sub_809CFE8 lsls r0, 24 asrs r1, r0, 24 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _080A2282 movs r2, 0x80 lsls r2, 1 add r0, sp, 0x360 bl sub_8002BB8 add r0, sp, 0x360 ldr r1, [r0, 0x4] ldr r0, [r0] add r2, sp, 0x368 str r0, [r2] str r1, [r2, 0x4] movs r0, 0x2 ands r4, r0 cmp r4, 0 beq _080A2226 movs r0, 0x4 _080A2226: cmp r0, 0 beq _080A2282 movs r3, 0xDA lsls r3, 2 add r3, sp mov r9, r3 add r7, sp, 0x370 add r4, sp, 0x378 mov r8, r0 _080A2238: ldr r1, [r6] ldr r0, [r6, 0x4] ldr r2, [r1, 0x48] mov r1, r9 bl _call_via_r2 cmp r0, 0 beq _080A2276 movs r5, 0 str r5, [r7] mov r1, r9 ldr r0, [r1, 0x4] str r0, [r7, 0x4] ldr r1, [r6] ldr r0, [r6, 0x4] ldr r2, [r1, 0x48] adds r1, r7, 0 bl _call_via_r2 cmp r0, 0 beq _080A2276 mov r2, r9 ldr r0, [r2] str r0, [r4] str r5, [r4, 0x4] ldr r1, [r6] ldr r0, [r6, 0x4] ldr r2, [r1, 0x48] adds r1, r4, 0 bl _call_via_r2 _080A2276: movs r3, 0x1 negs r3, r3 add r8, r3 mov r5, r8 cmp r5, 0 bne _080A2238 _080A2282: movs r0, 0x1 negs r0, r0 b _080A236C .align 2, 0 _080A2288: .4byte gRealInputs _080A228C: negs r0, r5 orrs r0, r5 lsrs r0, 31 bl sub_80993C0 b _080A236A _080A2298: movs r0, 0x1 bl sub_8011C28 _080A229E: adds r0, r5, 0 bl sub_8098F00 lsls r0, r5, 16 lsrs r0, 16 bl sub_80118C4 b _080A236A _080A22AE: bl GetCurrentBGSong ldr r1, _080A22C4 strh r0, [r1] lsls r0, 16 ldr r1, _080A22C8 cmp r0, r1 beq _080A22C0 b _080A1EBE _080A22C0: b _080A236A .align 2, 0 _080A22C4: .4byte gUnknown_2039DA8 _080A22C8: .4byte 0x03e70000 _080A22CC: ldr r4, _080A22DC ldrh r0, [r4] ldr r5, _080A22E0 cmp r0, r5 beq _080A236A bl xxx_call_start_new_bgm b _080A2312 .align 2, 0 _080A22DC: .4byte gUnknown_2039DA8 _080A22E0: .4byte 0x000003e7 _080A22E4: ldr r4, _080A22FC ldrh r0, [r4] ldr r6, _080A2300 cmp r0, r6 beq _080A236A lsls r1, r5, 16 lsrs r1, 16 bl xxx_call_fade_in_new_bgm strh r6, [r4] b _080A1EBE .align 2, 0 _080A22FC: .4byte gUnknown_2039DA8 _080A2300: .4byte 0x000003e7 _080A2304: ldr r4, _080A2318 ldrh r0, [r4] ldr r5, _080A231C cmp r0, r5 beq _080A236A bl sub_8011914 _080A2312: strh r5, [r4] b _080A1EBE .align 2, 0 _080A2318: .4byte gUnknown_2039DA8 _080A231C: .4byte 0x000003e7 _080A2320: lsls r0, r5, 16 lsrs r0, 16 lsls r1, r7, 16 lsrs r1, 16 bl sub_80997F4 b _080A236A _080A232E: lsls r1, r5, 16 lsrs r1, 16 movs r0, 0x1E bl sub_80997F4 b _080A236A _080A233A: lsls r1, r5, 16 lsrs r1, 16 movs r0, 0 bl GroundSprite_ExtendPaletteAdd b _080A236A _080A2346: movs r0, 0 bl GroundSprite_ExtendPaletteDelete b _080A236A _080A234E: movs r0, 0 movs r1, 0x2F adds r2, r4, 0 movs r3, 0x1 bl sub_800199C adds r0, r5, 0 subs r0, 0x10 b _080A236C _080A2360: movs r0, 0 movs r1, 0x1F movs r2, 0 bl sub_80018D8 _080A236A: movs r0, 0 _080A236C: movs r3, 0xE0 lsls r3, 2 add sp, r3 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80A14E8 thumb_func_start GroundScript_Unlock GroundScript_Unlock: push {r4-r7,lr} ldr r1, _080A241C ldrb r0, [r1] cmp r0, 0 beq _080A2414 movs r0, 0 strb r0, [r1] movs r6, 0 _080A2390: ldr r0, _080A2420 adds r7, r6, r0 ldrb r0, [r7] cmp r0, 0 beq _080A240E movs r0, 0x1 ldr r1, _080A2424 adds r2, r6, 0 bl Log lsls r5, r6, 16 asrs r5, 16 adds r0, r5, 0 bl sub_80A4D2C adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 bl sub_80A8B1C orrs r4, r0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 bl sub_80AC320 orrs r4, r0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 bl sub_80AD238 orrs r4, r0 lsls r4, 24 lsrs r4, 24 ldr r0, _080A2428 adds r5, r6, r0 ldrb r0, [r5] cmp r0, 0 beq _080A240C cmp r4, 0 beq _080A240E movs r0, 0x80 adds r4, r6, 0 orrs r4, r0 lsls r4, 16 asrs r4, 16 adds r0, r4, 0 bl sub_80A4D2C adds r0, r4, 0 bl sub_80A8B1C adds r0, r4, 0 bl sub_80AC320 adds r0, r4, 0 bl sub_80AD238 movs r0, 0 strb r0, [r5] _080A240C: strb r0, [r7] _080A240E: adds r6, 0x1 cmp r6, 0x80 ble _080A2390 _080A2414: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080A241C: .4byte gUnknown_2039A36 _080A2420: .4byte gUnknown_2039A38 _080A2424: .4byte gUnknown_8116848 _080A2428: .4byte gUnknown_2039AC0 thumb_func_end GroundScript_Unlock thumb_func_start sub_80A242C sub_80A242C: push {r4-r7,lr} sub sp, 0x10 adds r4, r1, 0 ldr r0, [r0, 0x2C] adds r2, r0, 0 adds r2, 0x10 mov r3, sp _080A243A: mov r1, sp adds r0, r2, 0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldr r0, [r0] str r0, [r1] adds r2, 0x10 ldrb r0, [r3] cmp r0, 0xF4 bne _080A243A movs r1, 0x2 ldrsh r0, [r3, r1] cmp r4, r0 bne _080A243A adds r0, r2, 0 add sp, 0x10 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80A242C thumb_func_start sub_80A2460 sub_80A2460: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x10 adds r5, r0, 0 mov r8, r1 ldr r6, [r5, 0x28] mov r4, sp _080A2470: mov r0, sp adds r1, r6, 0 ldm r1!, {r2,r3,r7} stm r0!, {r2,r3,r7} ldr r1, [r1] str r1, [r0] ldrb r0, [r4] cmp r0, 0xCC bne _080A249E ldr r1, [sp, 0x4] mov r0, r8 movs r2, 0x2 bl FlagJudge lsls r0, 24 cmp r0, 0 beq _080A24F0 movs r0, 0x2 ldrsh r1, [r4, r0] adds r0, r5, 0 bl sub_80A242C b _080A24F4 _080A249E: cmp r0, 0xCD bne _080A24BE ldr r1, [sp, 0x4] ldrb r2, [r4, 0x1] mov r0, r8 bl FlagJudge lsls r0, 24 cmp r0, 0 beq _080A24F0 movs r2, 0x2 ldrsh r1, [r4, r2] adds r0, r5, 0 bl sub_80A242C b _080A24F4 _080A24BE: cmp r0, 0xCE bne _080A24EC ldr r1, [sp, 0x4] lsls r1, 16 asrs r1, 16 adds r0, r5, 0 adds r0, 0x74 bl sub_8001658 adds r1, r0, 0 ldrb r2, [r4, 0x1] mov r0, r8 bl FlagJudge lsls r0, 24 cmp r0, 0 beq _080A24F0 movs r3, 0x2 ldrsh r1, [r4, r3] adds r0, r5, 0 bl sub_80A242C b _080A24F4 _080A24EC: adds r0, r6, 0 b _080A24F4 _080A24F0: adds r6, 0x10 b _080A2470 _080A24F4: add sp, 0x10 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80A2460 thumb_func_start sub_80A2500 sub_80A2500: push {r4,lr} adds r4, r0, 0 movs r2, 0 ldrsh r0, [r1, r2] cmp r0, 0x1 bne _080A2524 lsls r4, 16 asrs r4, 16 movs r2, 0x2 ldrsh r0, [r1, r2] bl sub_80A8BBC adds r1, r0, 0 lsls r1, 16 asrs r1, 16 adds r0, r4, 0 bl sub_809AB4C _080A2524: pop {r4} pop {r0} bx r0 thumb_func_end sub_80A2500 thumb_func_start sub_80A252C sub_80A252C: push {r4,lr} adds r4, r0, 0 movs r2, 0 ldrsh r0, [r1, r2] cmp r0, 0x1 bne _080A2550 lsls r4, 16 asrs r4, 16 movs r2, 0x2 ldrsh r0, [r1, r2] bl sub_80A8BBC adds r1, r0, 0 lsls r1, 16 asrs r1, 16 adds r0, r4, 0 bl sub_809ABB4 _080A2550: pop {r4} pop {r0} bx r0 thumb_func_end sub_80A252C thumb_func_start sub_80A2558 sub_80A2558: push {r4,lr} adds r4, r0, 0 movs r2, 0 ldrsh r0, [r1, r2] cmp r0, 0x1 bne _080A257C lsls r4, 16 asrs r4, 16 movs r2, 0x2 ldrsh r0, [r1, r2] bl sub_80A8BBC adds r1, r0, 0 lsls r1, 16 asrs r1, 16 adds r0, r4, 0 bl sub_809AC18 _080A257C: pop {r4} pop {r0} bx r0 thumb_func_end sub_80A2558 thumb_func_start sub_80A2584 sub_80A2584: push {lr} lsls r1, 16 asrs r1, 16 lsls r0, 16 asrs r0, 16 bl sub_809ABB4 pop {r0} bx r0 thumb_func_end sub_80A2584 thumb_func_start sub_80A2598 sub_80A2598: push {lr} lsls r1, 16 asrs r1, 16 lsls r0, 16 asrs r0, 16 bl sub_809AC18 pop {r0} bx r0 thumb_func_end sub_80A2598 thumb_func_start sub_80A25AC sub_80A25AC: push {r4,r5,lr} lsls r0, 16 lsrs r4, r0, 16 adds r5, r4, 0 bl sub_8098F88 lsls r0, 24 cmp r0, 0 beq _080A25C2 adds r0, r4, 0 b _080A2602 _080A25C2: cmp r4, 0x32 bne _080A25CA movs r0, 0x32 b _080A2602 _080A25CA: movs r0, 0xC bl sub_80023E4 lsls r0, 24 cmp r0, 0 bne _080A25E0 ldr r0, _080A25DC b _080A2602 .align 2, 0 _080A25DC: .4byte 0x000003e7 _080A25E0: movs r0, 0xD bl sub_80023E4 lsls r0, 24 cmp r0, 0 beq _080A25F0 movs r0, 0x13 b _080A2602 _080A25F0: cmp r4, 0x1 bne _080A2600 movs r0, 0 movs r1, 0x28 bl sub_8001658 movs r0, 0x1 b _080A2602 _080A2600: adds r0, r5, 0 _080A2602: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80A25AC .align 2,0