.include "constants/gba_constants.inc" .include "asm/macros.inc" .syntax unified .text thumb_func_start xxx_script_related_8098468 xxx_script_related_8098468: push {r4-r7,lr} sub sp, 0x8 ldr r1, _08098494 str r0, [r1] ldr r4, _08098498 movs r2, 0 strb r2, [r4] ldr r3, _0809849C movs r1, 0x1 strb r1, [r3] ldr r1, _080984A0 strb r2, [r1] subs r0, 0xD adds r2, r1, 0 cmp r0, 0x4 bhi _08098504 lsls r0, 2 ldr r1, _080984A4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08098494: .4byte gUnknown_20398B4 _08098498: .4byte gUnknown_20398B9 _0809849C: .4byte gUnknown_20398B8 _080984A0: .4byte gUnknown_20398BA _080984A4: .4byte _080984A8 .align 2, 0 _080984A8: .4byte _080984BC .4byte _080984C8 .4byte _080984CE .4byte _080984D4 .4byte _080984FC _080984BC: movs r1, 0x1 strb r1, [r2] movs r0, 0 strb r0, [r3] strb r1, [r4] b _08098504 _080984C8: movs r0, 0x1 strb r0, [r3] b _08098502 _080984CE: movs r0, 0x1 strb r0, [r3] b _08098502 _080984D4: add r2, sp, 0x4 movs r0, 0x3 mov r1, sp bl sub_8001B88 ldr r2, _080984F4 movs r1, 0 ldr r0, [sp] cmp r0, 0 bne _080984EA movs r1, 0x1 _080984EA: strb r1, [r2] ldr r1, _080984F8 movs r0, 0x1 strb r0, [r1] b _08098504 .align 2, 0 _080984F4: .4byte gUnknown_20398B8 _080984F8: .4byte gUnknown_20398B9 _080984FC: movs r0, 0 strb r0, [r3] movs r0, 0x1 _08098502: strb r0, [r4] _08098504: bl sub_801180C ldr r0, _080985B0 ldrb r0, [r0] cmp r0, 0 bne _08098522 movs r0, 0xD bl sub_80023E4 lsls r0, 24 cmp r0, 0 bne _08098522 movs r0, 0x10 bl sub_80118C4 _08098522: ldr r1, _080985B4 ldr r2, _080985B8 adds r0, r2, 0 strh r0, [r1] movs r0, 0 bl xxx_update_some_bg_tiles bl sub_8099648 bl sub_809975C bl sub_809D0AC bl sub_80A7744 bl sub_809D490 bl sub_80A62F0 bl sub_809C5C4 bl sub_809A560 bl sub_809CB50 bl sub_80A4A7C bl nullsub_117 bl sub_80AD990 bl sub_80A77F8 bl sub_80ABB54 bl sub_80ACB90 bl sub_809A62C ldr r0, _080985BC movs r1, 0 strb r1, [r0] ldr r0, _080985C0 strb r1, [r0] ldr r6, _080985C4 movs r0, 0x1 str r0, [r6] ldr r1, _080985C8 movs r0, 0 str r0, [r1] ldr r0, _080985CC movs r4, 0x1 negs r4, r4 str r4, [r0] ldr r5, _080985D0 movs r0, 0 movs r1, 0xD bl sub_8001658 strh r0, [r5] movs r0, 0 movs r1, 0xE bl sub_8001658 ldr r1, _080985D4 str r0, [r1] ldr r0, _080985D8 strh r4, [r0] adds r7, r4, 0 ldr r0, [r6] b _08098988 .align 2, 0 _080985B0: .4byte gUnknown_20398B9 _080985B4: .4byte gUnknown_2026E4E _080985B8: .4byte 0x00000808 _080985BC: .4byte gUnknown_203B49C _080985C0: .4byte gUnknown_203B49D _080985C4: .4byte gUnknown_20398A8 _080985C8: .4byte gUnknown_20398AC _080985CC: .4byte gUnknown_20398B0 _080985D0: .4byte gUnknown_20398BE _080985D4: .4byte gUnknown_20398C0 _080985D8: .4byte gUnknown_20398C4 _080985DC: movs r0, 0x1 negs r0, r0 bl sub_809A71C bl sub_809A76C bl sub_809977C ldr r0, _08098600 ldr r0, [r0] cmp r0, 0x11 bls _080985F6 b _08098756 _080985F6: lsls r0, 2 ldr r1, _08098604 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08098600: .4byte gUnknown_20398B4 _08098604: .4byte _08098608 .align 2, 0 _08098608: .4byte _08098650 .4byte _08098756 .4byte _08098660 .4byte _08098660 .4byte _08098756 .4byte _08098666 .4byte _08098756 .4byte _08098756 .4byte _08098756 .4byte _0809866A .4byte _0809866A .4byte _0809866A .4byte _0809866A .4byte _0809870C .4byte _08098748 .4byte _0809874C .4byte _08098750 .4byte _08098754 _08098650: bl sub_8098C58 ldr r1, _0809865C movs r0, 0x1 str r0, [r1] b _08098756 .align 2, 0 _0809865C: .4byte gUnknown_20398B4 _08098660: bl sub_8001D88 b _08098756 _08098666: movs r7, 0x70 b _08098756 _0809866A: ldr r0, _080986BC ldr r2, [r0] movs r0, 0 movs r1, 0x16 bl sub_80018D8 movs r0, 0 movs r1, 0x25 movs r2, 0 bl sub_80018D8 bl sub_8098C58 movs r0, 0 movs r1, 0x15 movs r2, 0x1 movs r3, 0x2 bl sub_800226C movs r0, 0 movs r1, 0x13 bl sub_8001658 lsls r0, 16 asrs r4, r0, 16 movs r0, 0x1 negs r0, r0 cmp r4, r0 beq _08098756 cmp r4, 0x51 bne _080986C0 movs r0, 0 movs r1, 0x14 bl sub_8001658 lsls r0, 16 asrs r0, 16 bl sub_80A2608 b _080986C6 .align 2, 0 _080986BC: .4byte gUnknown_20398B4 _080986C0: adds r0, r4, 0 bl sub_80A2608 _080986C6: movs r1, 0xA ldrsh r7, [r0, r1] ldr r5, _08098700 ldr r0, [r5] cmp r0, 0x9 bne _080986E0 lsls r2, r4, 16 lsrs r2, 16 movs r0, 0 movs r1, 0x31 movs r3, 0x1 bl sub_800199C _080986E0: ldr r0, [r5] bl sub_8098FCC lsls r0, 16 asrs r1, r0, 16 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _08098756 ldr r0, _08098704 strh r1, [r0] ldr r1, _08098708 movs r0, 0 str r0, [r1] b _08098756 .align 2, 0 _08098700: .4byte gUnknown_20398B4 _08098704: .4byte gUnknown_20398BE _08098708: .4byte gUnknown_20398C0 _0809870C: bl sub_8098C58 ldr r1, _08098744 movs r0, 0x1 str r0, [r1] movs r0, 0 movs r1, 0x18 movs r2, 0x1 bl sub_80018D8 movs r0, 0 movs r1, 0xF movs r2, 0 bl sub_80018D8 movs r0, 0 movs r1, 0xD movs r2, 0 bl sub_80018D8 movs r0, 0 movs r1, 0xE movs r2, 0 bl sub_80018D8 movs r7, 0x71 b _08098756 .align 2, 0 _08098744: .4byte gUnknown_20398B4 _08098748: movs r7, 0x73 b _08098756 _0809874C: movs r7, 0x74 b _08098756 _08098750: movs r7, 0x75 b _08098756 _08098754: movs r7, 0x76 _08098756: ldr r0, _08098790 ldrb r0, [r0] cmp r0, 0 bne _080987C0 movs r0, 0 movs r1, 0xD bl sub_8001658 adds r5, r0, 0 ldr r4, _08098794 ldr r2, [r4] movs r0, 0 movs r1, 0x18 bl sub_80018D8 ldr r4, [r4] cmp r4, 0x1 beq _080987A6 cmp r4, 0x3 bne _0809879C ldr r0, _08098798 movs r1, 0 ldrsh r2, [r0, r1] movs r0, 0 movs r1, 0xF bl sub_80018D8 b _080987A6 .align 2, 0 _08098790: .4byte gUnknown_20398B9 _08098794: .4byte gUnknown_20398B4 _08098798: .4byte gUnknown_20398BE _0809879C: movs r0, 0 movs r1, 0xF adds r2, r5, 0 bl sub_80018D8 _080987A6: ldr r0, _0809882C movs r1, 0 ldrsh r2, [r0, r1] movs r0, 0 movs r1, 0xD bl sub_80018D8 ldr r0, _08098830 ldr r2, [r0] movs r0, 0 movs r1, 0xE bl sub_80018D8 _080987C0: ldr r1, _08098834 movs r0, 0x2 str r0, [r1] ldr r0, _08098838 movs r1, 0 str r1, [r0] ldr r0, _0809883C str r1, [r0] ldr r0, _08098840 movs r4, 0x1 negs r4, r4 str r4, [r0] ldr r2, _08098844 ldr r1, _0809882C ldrh r0, [r1] strh r0, [r2] strh r4, [r1] bl sub_809977C bl sub_809D4B0 adds r0, r4, 0 bl GroundSprite_Reset bl sub_809C63C bl sub_809A62C bl sub_80A4AEC bl sub_809D0BC bl sub_80AD9D0 bl sub_80A786C bl sub_80ABB98 bl sub_80ACBD4 bl sub_809C658 bl nullsub_16 bl sub_8097944 cmp r7, r4 beq _08098848 adds r0, r7, 0 movs r1, 0 bl GroundMap_ExecuteEvent b _08098850 .align 2, 0 _0809882C: .4byte gUnknown_20398BE _08098830: .4byte gUnknown_20398C0 _08098834: .4byte gUnknown_20398B4 _08098838: .4byte gUnknown_20398A8 _0809883C: .4byte gUnknown_20398AC _08098840: .4byte gUnknown_20398B0 _08098844: .4byte gUnknown_20398BC _08098848: movs r0, 0x66 movs r1, 0 bl GroundMap_ExecuteEvent _08098850: bl GroundMap_Action movs r0, 0 movs r1, 0 bl sub_8005838 bl sub_80060EC bl xxx_call_update_bg_sound_input _08098864: bl xxx_call_update_bg_sound_input bl sub_80A6E68 ldr r0, _08098890 ldr r0, [r0] cmp r0, 0 beq _080988B2 ldr r1, _08098894 ldr r0, [r1] cmp r0, 0 ble _0809889C subs r0, 0x1 str r0, [r1] cmp r0, 0 bgt _080988F8 ldr r0, _08098898 ldr r0, [r0] bl sub_80999D4 b _080988F8 .align 2, 0 _08098890: .4byte gUnknown_20398A8 _08098894: .4byte gUnknown_20398AC _08098898: .4byte gUnknown_20398B0 _0809889C: bl sub_8099B94 lsls r0, 24 cmp r0, 0 bne _080988F8 bl sub_809C740 lsls r0, 24 cmp r0, 0 bne _0809897C b _080988F8 _080988B2: ldr r0, _08098968 ldrb r0, [r0] cmp r0, 0 beq _080988F8 ldr r0, _0809896C ldrb r0, [r0] cmp r0, 0 bne _080988F8 bl sub_809AFAC lsls r0, 24 cmp r0, 0 bne _080988F8 ldr r0, _08098970 ldrh r0, [r0, 0x2] ldr r2, _08098974 adds r1, r2, 0 ands r0, r1 cmp r0, 0 bne _080988E4 bl sub_80048BC lsls r0, 24 cmp r0, 0 beq _080988F8 _080988E4: movs r0, 0x72 movs r1, 0 bl GroundMap_ExecuteEvent movs r0, 0x1E bl sub_8098F44 movs r0, 0x1E bl sub_80118C4 _080988F8: bl GroundMap_Action bl nullsub_124 bl GroundLives_Action bl GroundObject_Action bl GroundEffect_Action bl nullsub_105 bl sub_809B474 bl GroundScript_Unlock bl sub_809D25C bl sub_80A59DC bl sub_809B614 bl sub_809CA20 bl sub_80A6E80 bl sub_8099BE4 bl sub_8099744 bl sub_8011860 ldr r0, _08098978 ldr r0, [r0] bl sub_8094FB4 bl sub_800CB20 bl sub_800485C bl nullsub_120 bl sub_80A5E70 bl sub_809B638 bl nullsub_106 bl sub_80A73EC bl sub_8099750 bl sub_8009908 b _08098864 .align 2, 0 _08098968: .4byte gUnknown_20398B9 _0809896C: .4byte gUnknown_20398B8 _08098970: .4byte gUnknown_20255F0 _08098974: .4byte 0x0000030f _08098978: .4byte gUnknown_203B47C _0809897C: bl sub_80A4AEC movs r7, 0x1 negs r7, r7 ldr r0, _080989E8 ldr r0, [r0] _08098988: subs r0, 0x1 cmp r0, 0x1 bhi _08098990 b _080985DC _08098990: bl sub_80A4AC4 bl nullsub_118 bl sub_80A78F0 bl sub_80ABBD4 bl sub_80ACC10 bl sub_80ADA08 bl sub_809CB74 bl sub_809A610 bl sub_809C618 bl sub_80A658C bl sub_809D508 bl sub_80A7754 bl nullsub_119 bl sub_8099768 bl nullsub_103 bl nullsub_16 ldr r0, _080989EC ldrb r0, [r0] cmp r0, 0 beq _080989FA ldr r0, _080989E8 ldr r0, [r0] cmp r0, 0x9 beq _080989F0 cmp r0, 0xA bne _080989F0 movs r0, 0x10 b _08098BD2 .align 2, 0 _080989E8: .4byte gUnknown_20398A8 _080989EC: .4byte gUnknown_20398B9 _080989F0: movs r0, 0x1E bl sub_80118C4 movs r0, 0xF b _08098BD2 _080989FA: ldr r0, _08098A10 ldr r0, [r0] subs r0, 0x3 cmp r0, 0x5 bls _08098A06 b _08098BC0 _08098A06: lsls r0, 2 ldr r1, _08098A14 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08098A10: .4byte gUnknown_20398A8 _08098A14: .4byte _08098A18 .align 2, 0 _08098A18: .4byte _08098A30 .4byte _08098A72 .4byte _08098AA0 .4byte _08098B08 .4byte _08098B58 .4byte _08098B8C _08098A30: movs r4, 0x1 negs r4, r4 movs r0, 0 movs r1, 0x13 adds r2, r4, 0 bl sub_80018D8 movs r0, 0 movs r1, 0x14 adds r2, r4, 0 bl sub_80018D8 movs r0, 0 movs r1, 0x18 movs r2, 0x4 bl sub_80018D8 movs r0, 0 movs r1, 0x16 movs r2, 0x4 bl sub_80018D8 movs r0, 0 movs r1, 0xD bl sub_8001658 adds r2, r0, 0 movs r0, 0 movs r1, 0xF bl sub_80018D8 movs r0, 0x5 b _08098BD2 _08098A72: movs r0, 0 movs r1, 0x13 movs r2, 0 bl sub_80018D8 movs r0, 0 movs r1, 0x18 movs r2, 0x5 bl sub_80018D8 movs r0, 0 movs r1, 0x16 movs r2, 0x5 bl sub_80018D8 movs r2, 0x1 negs r2, r2 movs r0, 0 movs r1, 0x13 bl sub_80018D8 movs r0, 0x6 b _08098BD2 _08098AA0: ldr r5, _08098B04 movs r1, 0 ldrsh r0, [r5, r1] bl sub_80A2654 adds r4, r0, 0 lsls r4, 16 asrs r4, 16 movs r0, 0 ldrsh r2, [r5, r0] movs r0, 0 movs r1, 0x13 bl sub_80018D8 movs r0, 0 movs r1, 0x14 adds r2, r4, 0 bl sub_80018D8 ldrh r2, [r5] movs r0, 0 movs r1, 0x30 movs r3, 0x1 bl sub_800199C movs r0, 0 movs r1, 0x18 movs r2, 0x7 bl sub_80018D8 movs r0, 0 movs r1, 0x16 movs r2, 0x7 bl sub_80018D8 movs r0, 0 movs r1, 0x11 bl sub_8001658 lsls r0, 16 asrs r0, 16 cmp r0, 0xA bne _08098B00 movs r0, 0 movs r1, 0x11 movs r2, 0 bl sub_80018D8 _08098B00: movs r0, 0x7 b _08098BD2 .align 2, 0 _08098B04: .4byte gUnknown_20398C4 _08098B08: movs r0, 0 movs r1, 0x13 movs r2, 0x51 bl sub_80018D8 ldr r0, _08098B54 movs r1, 0 ldrsh r2, [r0, r1] movs r0, 0 movs r1, 0x14 bl sub_80018D8 movs r0, 0 movs r1, 0x18 movs r2, 0x7 bl sub_80018D8 movs r0, 0 movs r1, 0x16 movs r2, 0x7 bl sub_80018D8 movs r0, 0 movs r1, 0x11 bl sub_8001658 lsls r0, 16 asrs r0, 16 cmp r0, 0xA bne _08098B4E movs r0, 0 movs r1, 0x11 movs r2, 0 bl sub_80018D8 _08098B4E: movs r0, 0x8 b _08098BD2 .align 2, 0 _08098B54: .4byte gUnknown_20398C4 _08098B58: movs r0, 0 movs r1, 0x13 movs r2, 0x50 bl sub_80018D8 ldr r0, _08098B88 ldrb r2, [r0] movs r0, 0 movs r1, 0x14 bl sub_80018D8 movs r0, 0 movs r1, 0x18 movs r2, 0x7 bl sub_80018D8 movs r0, 0 movs r1, 0x16 movs r2, 0x7 bl sub_80018D8 movs r0, 0x9 b _08098BD2 .align 2, 0 _08098B88: .4byte gUnknown_2039950 _08098B8C: movs r0, 0 movs r1, 0x13 movs r2, 0x52 bl sub_80018D8 ldr r0, _08098BBC movs r1, 0 ldrsh r2, [r0, r1] movs r0, 0 movs r1, 0x14 bl sub_80018D8 movs r0, 0 movs r1, 0x18 movs r2, 0x7 bl sub_80018D8 movs r0, 0 movs r1, 0x16 movs r2, 0x7 bl sub_80018D8 movs r0, 0xA b _08098BD2 .align 2, 0 _08098BBC: .4byte gUnknown_20398C4 _08098BC0: movs r0, 0 movs r1, 0x18 movs r2, 0x1 bl sub_80018D8 movs r0, 0x10 bl sub_80118C4 movs r0, 0xE _08098BD2: add sp, 0x8 pop {r4-r7} pop {r1} bx r1 thumb_func_end xxx_script_related_8098468 thumb_func_start sub_8098BDC sub_8098BDC: push {lr} bl sub_809B57C bl GroundScript_Unlock bl sub_809D25C bl sub_80A59DC bl sub_809B614 bl sub_809CA20 bl sub_80A6E80 bl sub_8099BE4 bl sub_8099744 bl sub_8011860 ldr r0, _08098C54 ldr r0, [r0] bl sub_8094FB4 bl sub_800CB20 bl sub_800485C bl nullsub_120 bl sub_80A5E70 bl sub_809B638 bl nullsub_106 bl sub_80A73EC bl sub_8099750 bl sub_8009908 bl xxx_call_update_bg_sound_input bl sub_80A6E68 bl GroundMap_Action bl nullsub_124 bl GroundLives_Action bl GroundObject_Action bl GroundEffect_Action pop {r0} bx r0 .align 2, 0 _08098C54: .4byte gUnknown_203B47C thumb_func_end sub_8098BDC thumb_func_start sub_8098C58 sub_8098C58: push {lr} movs r0, 0 movs r1, 0x36 bl sub_80015C0 movs r0, 0 movs r1, 0x39 bl sub_80015C0 bl sub_809CB8C bl sub_8001D88 movs r0, 0 movs r1, 0x2A bl sub_8001658 cmp r0, 0 beq _08098CA2 movs r0, 0 movs r1, 0x29 bl sub_8001658 adds r2, r0, 0 adds r2, 0x1 cmp r2, 0xF ble _08098C90 movs r2, 0 _08098C90: movs r0, 0 movs r1, 0x29 bl sub_80018D8 movs r0, 0 movs r1, 0x2A movs r2, 0 bl sub_80018D8 _08098CA2: movs r0, 0 movs r1, 0x42 movs r2, 0 bl sub_8001784 adds r3, r0, 0 cmp r3, 0 bgt _08098CB4 movs r3, 0x1 _08098CB4: subs r3, 0x1 movs r0, 0 movs r1, 0x42 movs r2, 0 bl sub_800199C bl sub_8098CC8 pop {r0} bx r0 thumb_func_end sub_8098C58 thumb_func_start sub_8098CC8 sub_8098CC8: push {lr} movs r0, 0x3 movs r1, 0xB movs r2, 0 bl sub_8001CC4 lsls r0, 24 cmp r0, 0 beq _08098CDE movs r1, 0 b _08098D06 _08098CDE: movs r0, 0x3 movs r1, 0xF movs r2, 0 bl sub_8001CC4 lsls r0, 24 cmp r0, 0 beq _08098CF2 movs r1, 0x1 b _08098D06 _08098CF2: movs r0, 0x3 movs r1, 0x12 movs r2, 0 bl sub_8001CC4 lsls r0, 24 movs r1, 0x3 cmp r0, 0 beq _08098D06 movs r1, 0x2 _08098D06: adds r0, r1, 0 bl sub_8091980 bl sub_809674C bl sub_80961B4 bl sub_8091FB4 pop {r0} bx r0 thumb_func_end sub_8098CC8 thumb_func_start sub_8098D1C sub_8098D1C: push {r4-r7,lr} adds r7, r1, 0 adds r4, r2, 0 lsls r0, 16 asrs r5, r0, 16 ldr r6, _08098D34 ldr r0, [r6] cmp r0, 0 beq _08098D38 movs r0, 0 b _08098D60 .align 2, 0 _08098D34: .4byte gUnknown_20398A8 _08098D38: ldr r1, _08098D68 movs r0, 0 adds r2, r5, 0 adds r3, r4, 0 bl Log movs r1, 0x1 str r1, [r6] ldr r0, _08098D6C str r1, [r0] ldr r0, _08098D70 str r4, [r0] ldr r1, _08098D74 movs r0, 0x2 str r0, [r1] ldr r0, _08098D78 strh r5, [r0] ldr r0, _08098D7C str r7, [r0] movs r0, 0x1 _08098D60: pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08098D68: .4byte gUnknown_8115F5C _08098D6C: .4byte gUnknown_20398AC _08098D70: .4byte gUnknown_20398B0 _08098D74: .4byte gUnknown_20398B4 _08098D78: .4byte gUnknown_20398BE _08098D7C: .4byte gUnknown_20398C0 thumb_func_end sub_8098D1C thumb_func_start sub_8098D80 sub_8098D80: push {r4,lr} adds r4, r0, 0 ldr r1, _08098DB8 ldr r0, [r1] cmp r0, 0 bne _08098DC4 movs r0, 0x3 str r0, [r1] ldr r1, _08098DBC movs r0, 0x1 str r0, [r1] ldr r0, _08098DC0 str r4, [r0] bl sub_809C730 movs r0, 0xD bl sub_80023E4 lsls r0, 24 cmp r0, 0 bne _08098DB2 lsls r0, r4, 16 lsrs r0, 16 bl sub_80118C4 _08098DB2: movs r0, 0x1 b _08098DC6 .align 2, 0 _08098DB8: .4byte gUnknown_20398A8 _08098DBC: .4byte gUnknown_20398AC _08098DC0: .4byte gUnknown_20398B0 _08098DC4: movs r0, 0 _08098DC6: pop {r4} pop {r1} bx r1 thumb_func_end sub_8098D80 thumb_func_start sub_8098DCC sub_8098DCC: push {r4,lr} adds r4, r0, 0 ldr r1, _08098E04 ldr r0, [r1] cmp r0, 0 bne _08098E10 movs r0, 0x4 str r0, [r1] ldr r1, _08098E08 movs r0, 0x1 str r0, [r1] ldr r0, _08098E0C str r4, [r0] bl sub_809C730 movs r0, 0xD bl sub_80023E4 lsls r0, 24 cmp r0, 0 bne _08098DFE lsls r0, r4, 16 lsrs r0, 16 bl sub_80118C4 _08098DFE: movs r0, 0x1 b _08098E12 .align 2, 0 _08098E04: .4byte gUnknown_20398A8 _08098E08: .4byte gUnknown_20398AC _08098E0C: .4byte gUnknown_20398B0 _08098E10: movs r0, 0 _08098E12: pop {r4} pop {r1} bx r1 thumb_func_end sub_8098DCC thumb_func_start sub_8098E18 sub_8098E18: push {r4-r6,lr} adds r6, r1, 0 lsls r0, 16 asrs r2, r0, 16 adds r5, r2, 0 ldr r4, _08098E40 ldr r0, [r4] cmp r0, 0 bne _08098EA8 ldr r1, _08098E44 movs r0, 0 adds r3, r6, 0 bl Log ldr r0, _08098E48 ldrb r0, [r0] cmp r0, 0 beq _08098E4C movs r0, 0x7 b _08098E8A .align 2, 0 _08098E40: .4byte gUnknown_20398A8 _08098E44: .4byte gUnknown_8115F80 _08098E48: .4byte gUnknown_203B49D _08098E4C: ldr r0, _08098E74 ldrb r0, [r0] ldr r1, _08098E78 cmp r0, 0 bne _08098E58 strh r5, [r1] _08098E58: movs r2, 0 ldrsh r0, [r1, r2] bl sub_80A2750 lsls r0, 16 asrs r0, 16 cmp r0, 0x2 beq _08098E88 cmp r0, 0x2 bgt _08098E7C cmp r0, 0x1 beq _08098E84 b _08098E8C .align 2, 0 _08098E74: .4byte gUnknown_203B49C _08098E78: .4byte gUnknown_20398C4 _08098E7C: cmp r0, 0x4 bne _08098E8C movs r0, 0x8 b _08098E8A _08098E84: movs r0, 0x5 b _08098E8A _08098E88: movs r0, 0x6 _08098E8A: str r0, [r4] _08098E8C: ldr r0, _08098EA0 movs r1, 0x1 str r1, [r0] ldr r0, _08098EA4 str r6, [r0] bl sub_809C730 movs r0, 0x1 b _08098EAA .align 2, 0 _08098EA0: .4byte gUnknown_20398AC _08098EA4: .4byte gUnknown_20398B0 _08098EA8: movs r0, 0 _08098EAA: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8098E18 thumb_func_start sub_8098EB0 sub_8098EB0: push {r4,r5,lr} adds r4, r0, 0 ldr r5, _08098EE4 ldr r0, [r5] cmp r0, 0 bne _08098EF8 ldr r0, _08098EE8 ldrb r0, [r0] cmp r0, 0 beq _08098EF8 ldr r1, _08098EEC movs r0, 0 adds r2, r4, 0 bl Log movs r0, 0x7 str r0, [r5] ldr r1, _08098EF0 movs r0, 0x1 str r0, [r1] ldr r0, _08098EF4 str r4, [r0] bl sub_809C730 movs r0, 0x1 b _08098EFA .align 2, 0 _08098EE4: .4byte gUnknown_20398A8 _08098EE8: .4byte gUnknown_203B49D _08098EEC: .4byte gUnknown_8115FA4 _08098EF0: .4byte gUnknown_20398AC _08098EF4: .4byte gUnknown_20398B0 _08098EF8: movs r0, 0 _08098EFA: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8098EB0 thumb_func_start sub_8098F00 sub_8098F00: push {r4,r5,lr} adds r4, r0, 0 ldr r5, _08098F10 ldr r0, [r5] cmp r0, 0 beq _08098F14 movs r0, 0 b _08098F32 .align 2, 0 _08098F10: .4byte gUnknown_20398A8 _08098F14: ldr r1, _08098F38 movs r0, 0 adds r2, r4, 0 bl Log movs r0, 0x9 str r0, [r5] ldr r1, _08098F3C movs r0, 0x1 str r0, [r1] ldr r0, _08098F40 str r4, [r0] bl sub_809C730 movs r0, 0x1 _08098F32: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08098F38: .4byte gUnknown_8115FC8 _08098F3C: .4byte gUnknown_20398AC _08098F40: .4byte gUnknown_20398B0 thumb_func_end sub_8098F00 thumb_func_start sub_8098F44 sub_8098F44: push {r4,r5,lr} adds r4, r0, 0 ldr r5, _08098F54 ldr r0, [r5] cmp r0, 0 beq _08098F58 movs r0, 0 b _08098F76 .align 2, 0 _08098F54: .4byte gUnknown_20398A8 _08098F58: ldr r1, _08098F7C movs r0, 0 adds r2, r4, 0 bl Log movs r0, 0xA str r0, [r5] ldr r1, _08098F80 movs r0, 0x1 str r0, [r1] ldr r0, _08098F84 str r4, [r0] bl sub_809C730 movs r0, 0x1 _08098F76: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08098F7C: .4byte gUnknown_8115FE8 _08098F80: .4byte gUnknown_20398AC _08098F84: .4byte gUnknown_20398B0 thumb_func_end sub_8098F44 thumb_func_start sub_8098F88 sub_8098F88: ldr r0, _08098F90 ldrb r0, [r0] bx lr .align 2, 0 _08098F90: .4byte gUnknown_20398B9 thumb_func_end sub_8098F88 thumb_func_start sub_8098F94 sub_8098F94: ldr r0, _08098F9C ldrb r0, [r0] bx lr .align 2, 0 _08098F9C: .4byte gUnknown_20398BA thumb_func_end sub_8098F94 thumb_func_start sub_8098FA0 sub_8098FA0: push {lr} movs r0, 0 movs r1, 0x11 bl sub_8001658 lsls r0, 16 asrs r0, 16 pop {r1} bx r1 thumb_func_end sub_8098FA0 thumb_func_start sub_8098FB4 sub_8098FB4: push {lr} movs r0, 0 movs r1, 0x11 bl sub_8001658 lsls r0, 16 asrs r0, 16 bl sub_80A2B18 pop {r1} bx r1 thumb_func_end sub_8098FB4 thumb_func_start sub_8098FCC sub_8098FCC: push {r4,lr} movs r0, 0 movs r1, 0x13 bl sub_8001658 lsls r0, 16 asrs r1, r0, 16 adds r2, r1, 0 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _0809909E cmp r1, 0x51 bne _08098FF6 movs r0, 0 movs r1, 0x14 bl sub_8001658 lsls r0, 16 asrs r0, 16 b _08098FF8 _08098FF6: adds r0, r2, 0 _08098FF8: bl sub_80A2608 adds r4, r0, 0 ldr r0, _0809900C ldr r0, [r0] cmp r0, 0x9 bne _08099010 movs r1, 0x2 ldrsh r0, [r4, r1] b _080990B2 .align 2, 0 _0809900C: .4byte gUnknown_20398B4 _08099010: ldrh r0, [r4, 0x4] subs r0, 0xB2 lsls r0, 16 asrs r0, 16 cmp r0, 0x17 bhi _080990AE lsls r0, 2 ldr r1, _08099028 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08099028: .4byte _0809902C .align 2, 0 _0809902C: .4byte _0809908C .4byte _080990AE .4byte _080990AE .4byte _080990AE .4byte _080990AE .4byte _080990AE .4byte _080990AE .4byte _080990AE .4byte _080990AE .4byte _080990AE .4byte _080990AE .4byte _080990AE .4byte _080990AE .4byte _080990AE .4byte _080990AE .4byte _080990A2 .4byte _080990AE .4byte _080990A2 .4byte _080990AE .4byte _080990AE .4byte _080990A2 .4byte _080990AE .4byte _080990AE .4byte _080990A2 _0809908C: movs r2, 0x1 negs r2, r2 movs r0, 0x3 movs r1, 0x2 bl sub_8001D44 lsls r0, 24 cmp r0, 0 beq _080990AE _0809909E: movs r0, 0xC b _080990B2 _080990A2: movs r0, 0x5 bl sub_80023E4 lsls r0, 24 cmp r0, 0 beq _0809909E _080990AE: movs r1, 0x4 ldrsh r0, [r4, r1] _080990B2: pop {r4} pop {r1} bx r1 thumb_func_end sub_8098FCC thumb_func_start sub_80990B8 sub_80990B8: push {lr} movs r0, 0xB bl sub_8098FCC lsls r0, 16 asrs r2, r0, 16 movs r0, 0x1 negs r0, r0 cmp r2, r0 bne _080990D2 bl sub_8098FB4 b _080990E4 _080990D2: ldr r1, _080990E8 lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r0, r1 movs r1, 0x2 ldrsh r0, [r0, r1] bl sub_80A2B18 _080990E4: pop {r1} bx r1 .align 2, 0 _080990E8: .4byte gUnknown_811BAF4 thumb_func_end sub_80990B8 thumb_func_start sub_80990EC sub_80990EC: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x80 adds r7, r0, 0 lsls r1, 16 asrs r4, r1, 16 adds r0, r4, 0 bl sub_80A2608 mov r8, r0 ldrb r0, [r0, 0xC] movs r5, 0 strb r0, [r7] movs r0, 0x1 strb r0, [r7, 0x1] strb r5, [r7, 0xC] adds r0, r4, 0 bl sub_80A2750 lsls r0, 16 asrs r6, r0, 16 cmp r6, 0x2 beq _080991C8 cmp r6, 0x2 bgt _08099126 cmp r6, 0x1 beq _0809912C b _080991CA _08099126: cmp r6, 0x4 beq _080991C4 b _080991CA _0809912C: movs r1, 0 strb r5, [r7, 0xB] adds r0, r4, 0 subs r0, 0x25 lsls r0, 16 lsrs r0, 16 cmp r0, 0x2 bhi _0809913E movs r1, 0x1 _0809913E: cmp r1, 0 beq _080991CA strb r6, [r7, 0xC] mov r0, sp movs r1, 0x5B bl sub_80A8EC0 add r4, sp, 0x18 adds r0, r4, 0 mov r1, sp movs r2, 0xA bl sub_8092310 add r5, sp, 0x30 str r4, [sp, 0x58] add r1, sp, 0x5C movs r2, 0 movs r0, 0x5E strh r0, [r1] mov r0, sp adds r0, 0x5E strb r2, [r0] add r0, sp, 0x60 movs r1, 0x47 strb r1, [r0] strb r2, [r0, 0x1] add r1, sp, 0x64 movs r0, 0x82 lsls r0, 1 strh r0, [r1] movs r0, 0xE0 strh r0, [r1, 0x2] movs r0, 0xAC strh r0, [r1, 0x4] movs r0, 0xBE strh r0, [r1, 0x6] add r1, sp, 0x6C movs r0, 0x50 strh r0, [r1] mov r0, sp adds r0, 0x6E movs r2, 0xF strh r2, [r0] add r0, sp, 0x70 strh r6, [r0] adds r0, 0x2 movs r1, 0x19 strh r1, [r0] strh r1, [r0, 0x2] adds r0, 0x4 strh r2, [r0] strh r2, [r0, 0x2] ldr r0, _080991C0 str r0, [sp, 0x7C] add r1, sp, 0x58 adds r0, r5, 0 movs r2, 0x28 bl memcpy adds r0, r7, 0 adds r0, 0x18 adds r1, r5, 0 bl sub_808D144 b _080991CA .align 2, 0 _080991C0: .4byte 0x000061a8 _080991C4: strb r5, [r7, 0xB] b _080991CA _080991C8: strb r6, [r7, 0xB] _080991CA: movs r0, 0 strb r0, [r7, 0x4] strb r0, [r7, 0xD] mov r1, r8 ldrb r0, [r1, 0x11] add sp, 0x80 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80990EC thumb_func_start sub_80991E0 sub_80991E0: push {lr} adds r2, r0, 0 ldr r3, _08099204 ldrh r0, [r3] strh r0, [r1] ldr r0, _08099208 ldrb r0, [r0] cmp r0, 0 bne _0809920C movs r0, 0 ldrsh r1, [r3, r0] adds r0, r2, 0 bl sub_80990EC lsls r0, 24 lsrs r0, 24 b _08099218 .align 2, 0 _08099204: .4byte gUnknown_20398C4 _08099208: .4byte gUnknown_203B49C _0809920C: ldr r1, _0809921C adds r0, r2, 0 movs r2, 0x88 bl memcpy movs r0, 0x1 _08099218: pop {r1} bx r1 .align 2, 0 _0809921C: .4byte gUnknown_20398C8 thumb_func_end sub_80991E0 thumb_func_start sub_8099220 sub_8099220: push {lr} adds r2, r0, 0 lsls r1, 16 asrs r3, r1, 16 cmp r2, 0 beq _08099258 ldr r1, _08099248 movs r0, 0x1 strb r0, [r1] ldr r1, _0809924C movs r0, 0 strb r0, [r1] ldr r0, _08099250 strh r3, [r0] ldr r0, _08099254 adds r1, r2, 0 movs r2, 0x88 bl memcpy b _0809926A .align 2, 0 _08099248: .4byte gUnknown_203B49C _0809924C: .4byte gUnknown_203B49D _08099250: .4byte gUnknown_20398C4 _08099254: .4byte gUnknown_20398C8 _08099258: ldr r0, _08099270 strb r2, [r0] ldr r0, _08099274 strb r2, [r0] ldr r1, _08099278 movs r2, 0x1 negs r2, r2 adds r0, r2, 0 strh r0, [r1] _0809926A: pop {r0} bx r0 .align 2, 0 _08099270: .4byte gUnknown_203B49C _08099274: .4byte gUnknown_203B49D _08099278: .4byte gUnknown_20398C4 thumb_func_end sub_8099220 thumb_func_start sub_809927C sub_809927C: push {r4,r5,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r0, _080992CC movs r1, 0x1 strb r1, [r0] ldr r0, _080992D0 strb r1, [r0] ldr r1, _080992D4 movs r0, 0x50 strh r0, [r1] ldr r4, _080992D8 strb r5, [r4] movs r0, 0 movs r1, 0x13 movs r2, 0x50 bl sub_80018D8 ldrb r2, [r4] movs r0, 0 movs r1, 0x14 bl sub_80018D8 ldr r4, _080992DC adds r0, r4, 0 adds r1, r5, 0 bl sub_8095494 subs r4, 0x10 movs r1, 0 movs r0, 0x1 strb r0, [r4, 0xB] strb r1, [r4, 0xC] strb r1, [r4, 0x4] strb r1, [r4, 0xD] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080992CC: .4byte gUnknown_203B49C _080992D0: .4byte gUnknown_203B49D _080992D4: .4byte gUnknown_20398C4 _080992D8: .4byte gUnknown_2039950 _080992DC: .4byte gUnknown_20398D8 thumb_func_end sub_809927C thumb_func_start sub_80992E0 sub_80992E0: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r0, 0 movs r1, 0x13 bl sub_8001658 lsls r0, 16 asrs r1, r0, 16 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _08099316 cmp r1, 0x50 beq _08099316 cmp r1, 0x51 beq _08099316 cmp r1, 0x52 beq _08099316 strh r1, [r4] movs r0, 0 movs r1, 0x14 bl sub_8001658 strh r0, [r5] movs r0, 0x1 b _08099322 _08099316: movs r1, 0x1 negs r1, r1 adds r0, r1, 0 strh r0, [r4] strh r0, [r5] movs r0, 0 _08099322: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80992E0 thumb_func_start sub_8099328 sub_8099328: push {r4,lr} adds r4, r0, 0 movs r0, 0 movs r1, 0x13 bl sub_8001658 lsls r0, 16 asrs r0, 16 cmp r0, 0x51 bne _08099358 movs r0, 0 movs r1, 0x14 bl sub_8001658 lsls r0, 16 asrs r0, 16 bl sub_80A2608 ldrb r0, [r0, 0xC] cmp r0, 0x3E bhi _08099358 strb r0, [r4] movs r0, 0x1 b _0809935A _08099358: movs r0, 0 _0809935A: pop {r4} pop {r1} bx r1 thumb_func_end sub_8099328 thumb_func_start sub_8099360 sub_8099360: push {r4,lr} adds r4, r0, 0 movs r0, 0 movs r1, 0x13 bl sub_8001658 lsls r0, 16 asrs r0, 16 cmp r0, 0x52 beq _08099378 movs r0, 0 b _0809938E _08099378: movs r0, 0 movs r1, 0x14 bl sub_8001658 lsls r0, 16 asrs r0, 16 bl sub_80A2608 ldrb r0, [r0, 0xC] strb r0, [r4] movs r0, 0x1 _0809938E: pop {r4} pop {r1} bx r1 thumb_func_end sub_8099360 thumb_func_start sub_8099394 sub_8099394: push {r4,lr} adds r4, r0, 0 movs r0, 0 movs r1, 0x13 bl sub_8001658 lsls r0, 16 asrs r0, 16 cmp r0, 0x50 beq _080993AC movs r0, 0 b _080993B8 _080993AC: movs r0, 0 movs r1, 0x14 bl sub_8001658 strb r0, [r4] movs r0, 0x1 _080993B8: pop {r4} pop {r1} bx r1 thumb_func_end sub_8099394 thumb_func_start sub_80993C0 sub_80993C0: push {lr} lsls r0, 24 ldr r2, _080993D4 movs r1, 0 cmp r0, 0 bne _080993CE movs r1, 0x1 _080993CE: strb r1, [r2] pop {r0} bx r0 .align 2, 0 _080993D4: .4byte gUnknown_20398B8 thumb_func_end sub_80993C0 thumb_func_start sub_80993D8 sub_80993D8: push {lr} bl sub_80A4B38 pop {r0} bx r0 thumb_func_end sub_80993D8 thumb_func_start sub_80993E4 sub_80993E4: push {lr} bl sub_80A4B54 pop {r0} bx r0 thumb_func_end sub_80993E4 thumb_func_start sub_80993F0 sub_80993F0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x28 movs r0, 0 mov r10, r0 bl sub_801180C movs r0, 0x10 bl sub_80118C4 ldr r1, _0809948C ldr r2, _08099490 adds r0, r2, 0 strh r0, [r1] movs r0, 0 bl xxx_update_some_bg_tiles movs r0, 0 movs r1, 0x14 bl sub_80095CC movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0 movs r1, 0x14 bl sub_8009408 bl sub_8099648 bl sub_809975C bl sub_809D0AC bl sub_8014144 movs r0, 0 movs r1, 0 bl sub_8005838 bl sub_80A4A7C mov r7, sp add r0, sp, 0x8 mov r8, r0 _08099454: bl sub_801D9E4 lsls r0, 24 cmp r0, 0 beq _0809949C mov r0, r10 bl sub_801DA58 _08099464: movs r0, 0 movs r1, 0 bl sub_8005838 movs r0, 0 bl sub_8012A18 bl sub_801DA78 cmp r0, 0x2 beq _08099494 cmp r0, 0x3 bne _08099464 bl sub_801DAC0 lsls r0, 16 asrs r0, 16 mov r10, r0 b _080994A2 .align 2, 0 _0809948C: .4byte gUnknown_2026E4E _08099490: .4byte 0x00000808 _08099494: movs r1, 0x1 negs r1, r1 mov r10, r1 b _080994A2 _0809949C: movs r2, 0x1 negs r2, r2 mov r10, r2 _080994A2: bl sub_801DB0C movs r0, 0x1 negs r0, r0 cmp r10, r0 bne _080994B0 b _08099624 _080994B0: movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C bl sub_80A4AEC bl sub_809D0BC mov r0, r10 bl GroundMap_Select mov r0, sp mov r1, r8 bl sub_80A579C ldr r0, [r7, 0x4] movs r1, 0xC0 lsls r1, 4 adds r0, r1 str r0, [r7, 0x4] mov r2, r8 ldr r0, [r2, 0x4] adds r0, r1 str r0, [r2, 0x4] ldr r0, [sp] ldr r1, _08099520 adds r0, r1 str r0, [sp] ldr r0, [r7, 0x4] adds r0, r1 str r0, [r7, 0x4] ldr r0, [sp, 0x8] movs r2, 0x80 lsls r2, 3 adds r0, r2 str r0, [sp, 0x8] mov r0, r8 ldr r1, [r0, 0x4] adds r1, r2 str r1, [r0, 0x4] ldr r2, [sp, 0x8] ldr r0, [sp] subs r0, r2, r0 str r0, [sp, 0x20] ldr r0, [r7, 0x4] subs r0, r1, r0 str r0, [sp, 0x24] movs r4, 0 movs r5, 0 movs r0, 0x4 bl sub_80999E8 mov r9, r5 b _08099604 .align 2, 0 _08099520: .4byte 0xfffffc00 _08099524: ldr r0, _0809953C ldrh r1, [r0, 0x2] ldrh r6, [r0] movs r0, 0x4 ands r1, r0 cmp r1, 0 beq _08099540 bl sub_80999FC movs r1, 0x1 mov r9, r1 b _080995AE .align 2, 0 _0809953C: .4byte gUnknown_20255F0 _08099540: adds r0, r6, 0 bl sub_809CFE8 lsls r0, 24 asrs r1, r0, 24 movs r2, 0x1 negs r2, r2 cmp r1, r2 beq _0809959A add r0, sp, 0x10 movs r2, 0x80 lsls r2, 1 bl sub_8002BB8 ldr r2, [sp, 0x10] ldr r3, [sp, 0x14] movs r0, 0x2 ands r6, r0 cmp r6, 0 beq _0809956A movs r0, 0x4 _0809956A: adds r1, r0, 0 muls r1, r2 adds r1, r4 adds r4, r1, 0 muls r0, r3 adds r5, r0 cmp r1, 0 bge _0809957E movs r4, 0 b _08099588 _0809957E: ldr r0, [sp, 0x20] cmp r4, r0 blt _08099588 adds r4, r0, 0 subs r4, 0x1 _08099588: cmp r5, 0 bge _08099590 movs r5, 0 b _0809959A _08099590: ldr r1, [sp, 0x24] cmp r5, r1 blt _0809959A adds r5, r1, 0 subs r5, 0x1 _0809959A: ldr r0, [sp] adds r0, r4 str r0, [sp, 0x18] ldr r0, [r7, 0x4] adds r0, r5 add r1, sp, 0x18 str r0, [r1, 0x4] movs r0, 0 bl sub_809D158 _080995AE: bl sub_809D25C bl sub_80A59DC bl xxx_draw_string_80144C4 movs r0, 0 movs r1, 0 bl sub_8005838 bl sub_80060EC ldr r0, _08099620 ldr r0, [r0] ldrb r0, [r0, 0xA] bl nullsub_8 bl sub_8005180 bl sub_8099BE4 bl sub_8099744 bl sub_8011860 bl sub_800CB20 bl sub_800485C bl nullsub_120 bl sub_80A5E70 bl xxx_call_update_bg_vram bl CopySpritesToOam bl sub_8005304 bl sub_8099750 bl sub_8009908 _08099604: bl xxx_call_update_bg_sound_input movs r0, 0 bl ResetSprites mov r2, r9 cmp r2, 0 beq _08099524 bl sub_8099B94 lsls r0, 24 cmp r0, 0 bne _080995AE b _08099454 .align 2, 0 _08099620: .4byte gUnknown_203B46C _08099624: movs r0, 0x10 bl sub_80118C4 bl sub_80A4AC4 bl sub_8099768 bl nullsub_103 add sp, 0x28 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80993F0 thumb_func_start sub_8099648 sub_8099648: push {lr} bl sub_8003600 bl sub_809965C pop {r0} bx r0 thumb_func_end sub_8099648 thumb_func_start nullsub_103 nullsub_103: bx lr thumb_func_end nullsub_103 thumb_func_start sub_809965C sub_809965C: push {r4,lr} movs r0, 0 bl sub_8099690 ldr r0, _08099688 ldr r1, _0809968C bl OpenFileAndGetFileDataPtr adds r4, r0, 0 movs r0, 0xF8 lsls r0, 1 ldr r1, [r4, 0x4] movs r2, 0x10 bl sub_800388C adds r0, r4, 0 bl CloseFile pop {r4} pop {r0} bx r0 .align 2, 0 _08099688: .4byte gUnknown_811601C _0809968C: .4byte gUnknown_8300500 thumb_func_end sub_809965C thumb_func_start sub_8099690 sub_8099690: push {r4-r6,lr} adds r4, r0, 0 ldr r0, _080996BC ldr r1, _080996C0 bl OpenFileAndGetFileDataPtr adds r6, r0, 0 cmp r4, 0x1 beq _080996CC cmp r4, 0x2 beq _080996D4 ldr r0, _080996C4 ldr r0, [r0] ldrb r0, [r0, 0xB] ldr r4, _080996C8 cmp r0, 0 beq _080996D6 movs r0, 0x80 lsls r0, 1 adds r4, r0 b _080996D6 .align 2, 0 _080996BC: .4byte gUnknown_8116028 _080996C0: .4byte gUnknown_8300500 _080996C4: .4byte gUnknown_203B46C _080996C8: .4byte gUnknown_202D078 _080996CC: ldr r4, _080996D0 b _080996D6 .align 2, 0 _080996D0: .4byte gUnknown_202D1B8 _080996D4: ldr r4, _08099704 _080996D6: movs r0, 0xF0 adds r1, r4, 0 movs r2, 0x10 bl sub_800388C adds r5, r4, 0 movs r4, 0 _080996E4: adds r0, r4, 0 adds r0, 0xF0 adds r1, r5, 0 adds r5, 0x4 bl nullsub_5 adds r4, 0x1 cmp r4, 0xF ble _080996E4 adds r0, r6, 0 bl CloseFile pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08099704: .4byte gUnknown_202D1F8 thumb_func_end sub_8099690 thumb_func_start sub_8099708 sub_8099708: push {lr} sub sp, 0x4 str r1, [sp] lsls r0, 16 lsrs r0, 16 bl sub_8003810 add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8099708 thumb_func_start sub_809971C sub_809971C: push {r4-r6,lr} adds r6, r1, 0 lsls r0, 16 lsrs r5, r0, 16 cmp r2, 0 ble _0809973E adds r4, r2, 0 _0809972A: adds r0, r5, 0 adds r1, r0, 0x1 lsls r1, 16 lsrs r5, r1, 16 ldm r6!, {r1} bl sub_8003810 subs r4, 0x1 cmp r4, 0 bne _0809972A _0809973E: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_809971C thumb_func_start sub_8099744 sub_8099744: push {lr} bl sub_80039B8 pop {r0} bx r0 thumb_func_end sub_8099744 thumb_func_start sub_8099750 sub_8099750: push {lr} bl TransferBGPaletteBuffer pop {r0} bx r0 thumb_func_end sub_8099750 thumb_func_start sub_809975C sub_809975C: push {lr} bl sub_809977C pop {r0} bx r0 thumb_func_end sub_809975C thumb_func_start sub_8099768 sub_8099768: push {lr} bl sub_809977C bl sub_8099744 bl sub_8099750 pop {r0} bx r0 thumb_func_end sub_8099768 thumb_func_start sub_809977C sub_809977C: push {r4-r6,lr} mov r6, r8 push {r6} ldr r1, _080997DC movs r0, 0 strb r0, [r1] ldr r1, _080997E0 movs r0, 0 strh r0, [r1] ldr r6, _080997E4 adds r0, r6, 0 bl sub_8099838 ldr r0, _080997E8 mov r8, r0 bl sub_8099838 ldr r4, _080997EC adds r0, r4, 0 bl sub_8099838 subs r4, 0x8 movs r0, 0 str r0, [r4] movs r5, 0x80 lsls r5, 1 strh r5, [r4, 0x14] strh r0, [r6, 0xC] bl sub_8099DD0 mov r0, r8 strh r5, [r0, 0xC] adds r0, r5, 0 bl sub_8099E58 ldr r1, _080997F0 movs r2, 0 adds r0, r1, 0 adds r0, 0x40 _080997CA: strh r2, [r0] subs r0, 0x2 cmp r0, r1 bge _080997CA pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080997DC: .4byte gUnknown_2039990 _080997E0: .4byte gUnknown_2039992 _080997E4: .4byte gUnknown_2039958 _080997E8: .4byte gUnknown_2039968 _080997EC: .4byte gUnknown_2039980 _080997F0: .4byte gUnknown_2039998 thumb_func_end sub_809977C thumb_func_start sub_80997F4 sub_80997F4: push {lr} lsls r0, 16 ldr r2, _08099818 lsrs r0, 15 adds r0, r2 strh r1, [r0] ldr r0, _0809981C bl sub_8099848 ldr r0, _08099820 bl sub_8099848 ldr r0, _08099824 bl sub_8099848 pop {r0} bx r0 .align 2, 0 _08099818: .4byte gUnknown_2039998 _0809981C: .4byte gUnknown_2039958 _08099820: .4byte gUnknown_2039968 _08099824: .4byte gUnknown_2039980 thumb_func_end sub_80997F4 thumb_func_start sub_8099828 sub_8099828: lsls r0, 16 ldr r1, _08099834 lsrs r0, 15 adds r0, r1 ldrh r0, [r0] bx lr .align 2, 0 _08099834: .4byte gUnknown_2039998 thumb_func_end sub_8099828 thumb_func_start sub_8099838 sub_8099838: movs r1, 0x1 str r1, [r0] movs r1, 0 strh r1, [r0, 0xC] strh r1, [r0, 0x4] strh r1, [r0, 0x6] bx lr thumb_func_end sub_8099838 thumb_func_start sub_8099848 sub_8099848: push {lr} adds r1, r0, 0 ldr r0, [r1] cmp r0, 0 bne _08099856 movs r0, 0x1 str r0, [r1] _08099856: pop {r0} bx r0 thumb_func_end sub_8099848 thumb_func_start sub_809985C sub_809985C: push {lr} adds r2, r0, 0 cmp r1, 0 blt _08099872 cmp r1, 0 bne _08099874 movs r0, 0x80 lsls r0, 1 strh r0, [r2, 0xC] movs r0, 0x1 b _08099876 _08099872: movs r1, 0x1E _08099874: movs r0, 0x2 _08099876: str r0, [r2] strh r1, [r2, 0x4] strh r1, [r2, 0x6] pop {r0} bx r0 thumb_func_end sub_809985C thumb_func_start sub_8099880 sub_8099880: push {lr} adds r2, r0, 0 cmp r1, 0 blt _08099892 cmp r1, 0 bne _08099894 strh r1, [r2, 0xC] movs r0, 0x1 b _08099896 _08099892: movs r1, 0x1E _08099894: movs r0, 0x3 _08099896: str r0, [r2] strh r1, [r2, 0x4] strh r1, [r2, 0x6] pop {r0} bx r0 thumb_func_end sub_8099880 thumb_func_start sub_80998A0 sub_80998A0: push {r4,lr} adds r4, r0, 0 lsls r2, 16 lsrs r2, 16 lsls r3, 16 lsrs r3, 16 cmp r1, 0 bge _080998B2 movs r1, 0x1E _080998B2: cmp r2, r3 bls _080998BE movs r0, 0x5 str r0, [r4] subs r0, r2, r3 b _080998D0 _080998BE: cmp r2, r3 bcs _080998CA movs r0, 0x4 str r0, [r4] subs r0, r3, r2 b _080998D0 _080998CA: movs r0, 0x1 str r0, [r4] movs r0, 0 _080998D0: strh r0, [r4, 0xA] strh r1, [r4, 0x4] strh r1, [r4, 0x6] strh r2, [r4, 0xC] strh r3, [r4, 0x8] pop {r4} pop {r0} bx r0 thumb_func_end sub_80998A0 thumb_func_start sub_80998E0 sub_80998E0: push {r4,lr} adds r4, r0, 0 ldr r0, [r4] cmp r0, 0x5 bhi _080999CA lsls r0, 2 ldr r1, _080998F4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080998F4: .4byte _080998F8 .align 2, 0 _080998F8: .4byte _080999CA .4byte _080999C2 .4byte _08099910 .4byte _08099946 .4byte _08099976 .4byte _0809999A _08099910: ldrh r0, [r4, 0x4] subs r0, 0x1 strh r0, [r4, 0x4] lsls r0, 16 cmp r0, 0 ble _08099940 movs r1, 0x4 ldrsh r0, [r4, r1] lsls r0, 8 movs r2, 0x6 ldrsh r1, [r4, r2] bl __divsi3 movs r2, 0x80 lsls r2, 1 adds r1, r2, 0 subs r1, r0 lsls r1, 16 lsrs r1, 16 ldrh r0, [r4, 0xC] cmp r0, r1 bcs _080999C6 strh r1, [r4, 0xC] b _080999C6 _08099940: movs r0, 0x80 lsls r0, 1 b _080999C0 _08099946: ldrh r0, [r4, 0x4] subs r0, 0x1 movs r1, 0 strh r0, [r4, 0x4] lsls r0, 16 cmp r0, 0 ble _08099970 movs r1, 0x4 ldrsh r0, [r4, r1] lsls r0, 8 movs r2, 0x6 ldrsh r1, [r4, r2] bl __divsi3 lsls r0, 16 lsrs r1, r0, 16 ldrh r0, [r4, 0xC] cmp r0, r1 bls _080999C6 strh r1, [r4, 0xC] b _080999C6 _08099970: strh r1, [r4, 0xC] str r1, [r4] b _080999C6 _08099976: ldrh r0, [r4, 0x4] subs r0, 0x1 strh r0, [r4, 0x4] lsls r0, 16 cmp r0, 0 ble _080999BE movs r0, 0x4 ldrsh r1, [r4, r0] ldrh r0, [r4, 0xA] muls r0, r1 movs r2, 0x6 ldrsh r1, [r4, r2] bl __divsi3 ldrh r1, [r4, 0x8] subs r1, r0 strh r1, [r4, 0xC] b _080999C6 _0809999A: ldrh r0, [r4, 0x4] subs r0, 0x1 strh r0, [r4, 0x4] lsls r0, 16 cmp r0, 0 ble _080999BE movs r0, 0x4 ldrsh r1, [r4, r0] ldrh r0, [r4, 0xA] muls r0, r1 movs r2, 0x6 ldrsh r1, [r4, r2] bl __divsi3 ldrh r1, [r4, 0x8] adds r1, r0 strh r1, [r4, 0xC] b _080999C6 _080999BE: ldrh r0, [r4, 0x8] _080999C0: strh r0, [r4, 0xC] _080999C2: movs r0, 0 str r0, [r4] _080999C6: movs r0, 0x1 b _080999CC _080999CA: movs r0, 0 _080999CC: pop {r4} pop {r1} bx r1 thumb_func_end sub_80998E0 thumb_func_start sub_80999D4 sub_80999D4: ldr r2, _080999E0 movs r1, 0x1 strb r1, [r2] ldr r1, _080999E4 strh r0, [r1] bx lr .align 2, 0 _080999E0: .4byte gUnknown_2039990 _080999E4: .4byte gUnknown_2039992 thumb_func_end sub_80999D4 thumb_func_start sub_80999E8 sub_80999E8: push {lr} adds r1, r0, 0 ldr r0, _080999F8 bl sub_809985C pop {r0} bx r0 .align 2, 0 _080999F8: .4byte gUnknown_2039958 thumb_func_end sub_80999E8 thumb_func_start sub_80999FC sub_80999FC: push {lr} adds r1, r0, 0 ldr r0, _08099A0C bl sub_8099880 pop {r0} bx r0 .align 2, 0 _08099A0C: .4byte gUnknown_2039958 thumb_func_end sub_80999FC thumb_func_start sub_8099A10 sub_8099A10: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 adds r3, r2, 0 lsls r4, 16 lsrs r4, 16 lsls r3, 16 lsrs r3, 16 ldr r0, _08099A30 adds r1, r5, 0 adds r2, r4, 0 bl sub_80998A0 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08099A30: .4byte gUnknown_2039958 thumb_func_end sub_8099A10 thumb_func_start sub_8099A34 sub_8099A34: push {lr} adds r1, r0, 0 ldr r0, _08099A44 bl sub_809985C pop {r0} bx r0 .align 2, 0 _08099A44: .4byte gUnknown_2039968 thumb_func_end sub_8099A34 thumb_func_start sub_8099A48 sub_8099A48: push {lr} adds r1, r0, 0 ldr r0, _08099A58 bl sub_8099880 pop {r0} bx r0 .align 2, 0 _08099A58: .4byte gUnknown_2039968 thumb_func_end sub_8099A48 thumb_func_start sub_8099A5C sub_8099A5C: push {r4,lr} sub sp, 0x4 adds r4, r0, 0 str r2, [sp] ldr r0, _08099A88 str r4, [r0] ldr r2, [sp] str r2, [r0, 0x4] movs r2, 0 strh r2, [r0, 0x14] adds r0, 0x8 bl sub_809985C subs r0, r4, 0x1 cmp r0, 0xD bhi _08099AF0 lsls r0, 2 ldr r1, _08099A8C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08099A88: .4byte gUnknown_2039978 _08099A8C: .4byte _08099A90 .align 2, 0 _08099A90: .4byte _08099AC8 .4byte _08099AF0 .4byte _08099AC8 .4byte _08099AF0 .4byte _08099AE8 .4byte _08099AF0 .4byte _08099AE8 .4byte _08099AF0 .4byte _08099AE0 .4byte _08099AF0 .4byte _08099AE0 .4byte _08099AF0 .4byte _08099AE8 .4byte _08099AE8 _08099AC8: ldr r0, _08099AD8 movs r1, 0x80 lsls r1, 1 strh r1, [r0, 0xC] ldr r0, _08099ADC strh r1, [r0, 0xC] b _08099AF0 .align 2, 0 _08099AD8: .4byte gUnknown_2039968 _08099ADC: .4byte gUnknown_2039958 _08099AE0: ldr r1, _08099AE4 b _08099AEA .align 2, 0 _08099AE4: .4byte gUnknown_2039968 _08099AE8: ldr r1, _08099AF8 _08099AEA: movs r0, 0x80 lsls r0, 1 strh r0, [r1, 0xC] _08099AF0: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08099AF8: .4byte gUnknown_2039958 thumb_func_end sub_8099A5C thumb_func_start sub_8099AFC sub_8099AFC: push {r4,lr} sub sp, 0x4 adds r4, r0, 0 str r2, [sp] ldr r0, _08099B28 str r4, [r0] ldr r2, [sp] str r2, [r0, 0x4] movs r2, 0x80 lsls r2, 1 strh r2, [r0, 0x14] adds r0, 0x8 bl sub_8099880 subs r0, r4, 0x2 cmp r0, 0xC bhi _08099B86 lsls r0, 2 ldr r1, _08099B2C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08099B28: .4byte gUnknown_2039978 _08099B2C: .4byte _08099B30 .align 2, 0 _08099B30: .4byte _08099B64 .4byte _08099B86 .4byte _08099B64 .4byte _08099B86 .4byte _08099B80 .4byte _08099B86 .4byte _08099B80 .4byte _08099B86 .4byte _08099B78 .4byte _08099B86 .4byte _08099B78 .4byte _08099B80 .4byte _08099B80 _08099B64: ldr r0, _08099B70 movs r1, 0 strh r1, [r0, 0xC] ldr r0, _08099B74 strh r1, [r0, 0xC] b _08099B86 .align 2, 0 _08099B70: .4byte gUnknown_2039968 _08099B74: .4byte gUnknown_2039958 _08099B78: ldr r1, _08099B7C b _08099B82 .align 2, 0 _08099B7C: .4byte gUnknown_2039968 _08099B80: ldr r1, _08099B90 _08099B82: movs r0, 0 strh r0, [r1, 0xC] _08099B86: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08099B90: .4byte gUnknown_2039958 thumb_func_end sub_8099AFC thumb_func_start sub_8099B94 sub_8099B94: push {lr} ldr r0, _08099BA4 ldrb r0, [r0] cmp r0, 0 beq _08099BA8 movs r0, 0x1 b _08099BD6 .align 2, 0 _08099BA4: .4byte gUnknown_2039990 _08099BA8: ldr r1, _08099BBC ldr r0, [r1] cmp r0, 0 beq _08099BC0 ldr r0, [r1, 0x8] cmp r0, 0 beq _08099BD6 movs r0, 0x1 b _08099BD6 .align 2, 0 _08099BBC: .4byte gUnknown_2039978 _08099BC0: movs r1, 0 ldr r0, _08099BDC ldr r0, [r0] cmp r0, 0 bne _08099BD2 ldr r0, _08099BE0 ldr r0, [r0] cmp r0, 0 beq _08099BD4 _08099BD2: movs r1, 0x1 _08099BD4: adds r0, r1, 0 _08099BD6: pop {r1} bx r1 .align 2, 0 _08099BDC: .4byte gUnknown_2039958 _08099BE0: .4byte gUnknown_2039968 thumb_func_end sub_8099B94 thumb_func_start sub_8099BE4 sub_8099BE4: push {r4,r5,lr} ldr r4, _08099C10 ldr r0, [r4] cmp r0, 0 bne _08099BF6 ldr r0, [r4, 0x8] cmp r0, 0 bne _08099BF6 b _08099D08 _08099BF6: adds r0, r4, 0 adds r0, 0x8 bl sub_80998E0 lsls r0, 24 cmp r0, 0 beq _08099C14 ldrh r0, [r4, 0x14] ldr r1, [r4, 0x4] bl sub_8099E80 b _08099DC0 .align 2, 0 _08099C10: .4byte gUnknown_2039978 _08099C14: ldr r0, [r4, 0x8] cmp r0, 0 beq _08099C1C b _08099DC0 _08099C1C: ldr r0, [r4] cmp r0, 0xE bls _08099C24 b _08099DC0 _08099C24: lsls r0, 2 ldr r1, _08099C30 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08099C30: .4byte _08099C34 .align 2, 0 _08099C34: .4byte _08099DC0 .4byte _08099C70 .4byte _08099CD8 .4byte _08099C70 .4byte _08099CD8 .4byte _08099C70 .4byte _08099CD8 .4byte _08099C70 .4byte _08099CD8 .4byte _08099C70 .4byte _08099CD8 .4byte _08099C70 .4byte _08099CD8 .4byte _08099CD8 .4byte _08099CD8 _08099C70: ldr r0, _08099C80 ldrh r1, [r0, 0x14] adds r3, r0, 0 cmp r1, 0xFF bls _08099C84 movs r0, 0 str r0, [r3] b _08099DC0 .align 2, 0 _08099C80: .4byte gUnknown_2039978 _08099C84: ldr r0, _08099CA0 ldrb r0, [r0] cmp r0, 0 bne _08099C8E b _08099DC0 _08099C8E: movs r2, 0 ldr r0, [r3] cmp r0, 0x3 beq _08099CB2 cmp r0, 0x3 bhi _08099CA4 cmp r0, 0x1 beq _08099CAE b _08099CBC .align 2, 0 _08099CA0: .4byte gUnknown_2039990 _08099CA4: cmp r0, 0x5 beq _08099CB6 cmp r0, 0x7 beq _08099CBA b _08099CBC _08099CAE: movs r2, 0x2 b _08099CC0 _08099CB2: movs r2, 0x4 b _08099CC0 _08099CB6: movs r2, 0x6 b _08099CC0 _08099CBA: movs r2, 0x8 _08099CBC: cmp r2, 0 beq _08099CD4 _08099CC0: ldr r0, _08099CD0 movs r4, 0 ldrsh r1, [r0, r4] adds r0, r2, 0 ldr r2, [r3, 0x4] bl sub_8099AFC b _08099DC0 .align 2, 0 _08099CD0: .4byte gUnknown_2039992 _08099CD4: str r2, [r3] b _08099DC0 _08099CD8: ldr r2, _08099CE4 ldrh r0, [r2, 0x14] cmp r0, 0 bne _08099CE8 str r0, [r2] b _08099DC0 .align 2, 0 _08099CE4: .4byte gUnknown_2039978 _08099CE8: ldr r0, _08099D00 ldrb r0, [r0] cmp r0, 0 beq _08099DC0 ldr r0, [r2] ldr r1, _08099D04 movs r3, 0 ldrsh r1, [r1, r3] ldr r2, [r2, 0x4] bl sub_8099AFC b _08099DC0 .align 2, 0 _08099D00: .4byte gUnknown_2039990 _08099D04: .4byte gUnknown_2039992 _08099D08: ldr r0, _08099D88 ldrb r0, [r0] cmp r0, 0 beq _08099D98 movs r5, 0x1 ldr r4, _08099D8C ldrh r0, [r4, 0xC] cmp r0, 0 bne _08099D20 ldr r0, [r4] cmp r0, 0 beq _08099D46 _08099D20: movs r5, 0 ldr r0, [r4] cmp r0, 0x3 beq _08099D34 ldr r0, _08099D90 movs r2, 0 ldrsh r1, [r0, r2] adds r0, r4, 0 bl sub_8099880 _08099D34: adds r0, r4, 0 bl sub_80998E0 lsls r0, 24 cmp r0, 0 beq _08099D46 ldrh r0, [r4, 0xC] bl sub_8099DD0 _08099D46: ldr r4, _08099D94 ldrh r0, [r4, 0xC] cmp r0, 0 bne _08099D54 ldr r0, [r4] cmp r0, 0 beq _08099D7A _08099D54: movs r5, 0 ldr r0, [r4] cmp r0, 0x3 beq _08099D68 ldr r0, _08099D90 movs r3, 0 ldrsh r1, [r0, r3] adds r0, r4, 0 bl sub_8099880 _08099D68: adds r0, r4, 0 bl sub_80998E0 lsls r0, 24 cmp r0, 0 beq _08099D7A ldrh r0, [r4, 0xC] bl sub_8099E58 _08099D7A: cmp r5, 0 beq _08099DC0 ldr r1, _08099D88 movs r0, 0 strb r0, [r1] b _08099DC0 .align 2, 0 _08099D88: .4byte gUnknown_2039990 _08099D8C: .4byte gUnknown_2039958 _08099D90: .4byte gUnknown_2039992 _08099D94: .4byte gUnknown_2039968 _08099D98: ldr r4, _08099DC8 adds r0, r4, 0 bl sub_80998E0 lsls r0, 24 cmp r0, 0 beq _08099DAC ldrh r0, [r4, 0xC] bl sub_8099DD0 _08099DAC: ldr r4, _08099DCC adds r0, r4, 0 bl sub_80998E0 lsls r0, 24 cmp r0, 0 beq _08099DC0 ldrh r0, [r4, 0xC] bl sub_8099E58 _08099DC0: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08099DC8: .4byte gUnknown_2039958 _08099DCC: .4byte gUnknown_2039968 thumb_func_end sub_8099BE4 thumb_func_start sub_8099DD0 sub_8099DD0: push {r4-r7,lr} lsls r0, 16 lsrs r7, r0, 16 movs r4, 0 ldr r6, _08099DF4 movs r5, 0xD _08099DDC: ldrh r1, [r6] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08099DF8 lsrs r0, r4, 16 movs r1, 0x80 lsls r1, 1 bl sub_8003664 b _08099E00 .align 2, 0 _08099DF4: .4byte gUnknown_2039998 _08099DF8: lsrs r0, r4, 16 adds r1, r7, 0 bl sub_8003664 _08099E00: movs r0, 0x80 lsls r0, 9 adds r4, r0 adds r6, 0x2 subs r5, 0x1 cmp r5, 0 bge _08099DDC ldr r0, _08099E30 movs r4, 0x80 lsls r4, 13 adds r6, r0, 0 adds r6, 0x20 movs r5, 0xE _08099E1A: ldrh r1, [r6] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08099E34 lsrs r0, r4, 16 movs r1, 0x80 lsls r1, 1 bl sub_8003664 b _08099E3C .align 2, 0 _08099E30: .4byte gUnknown_2039998 _08099E34: lsrs r0, r4, 16 adds r1, r7, 0 bl sub_8003664 _08099E3C: movs r0, 0x80 lsls r0, 9 adds r4, r0 adds r6, 0x2 subs r5, 0x1 cmp r5, 0 bge _08099E1A movs r0, 0x20 adds r1, r7, 0 bl sub_8003664 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8099DD0 thumb_func_start sub_8099E58 sub_8099E58: push {r4,lr} adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 movs r0, 0xF adds r1, r4, 0 bl sub_8003664 movs r0, 0xE adds r1, r4, 0 bl sub_8003664 movs r0, 0x1F adds r1, r4, 0 bl sub_8003664 pop {r4} pop {r0} bx r0 thumb_func_end sub_8099E58 thumb_func_start sub_8099E80 sub_8099E80: push {r4-r7,lr} sub sp, 0x4 str r1, [sp] lsls r0, 16 lsrs r6, r0, 16 ldr r0, _08099EA0 ldr r1, [r0] adds r2, r0, 0 cmp r1, 0xE bls _08099E96 b _0809A558 _08099E96: lsls r0, r1, 2 ldr r1, _08099EA4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08099EA0: .4byte gUnknown_2039978 _08099EA4: .4byte _08099EA8 .align 2, 0 _08099EA8: .4byte _0809A558 .4byte _08099EE4 .4byte _0809A05A .4byte _0809A1D2 .4byte _0809A34A .4byte _08099FDE .4byte _0809A156 .4byte _0809A2CE .4byte _0809A4BC .4byte _08099F5E .4byte _0809A0D6 .4byte _0809A24E .4byte _0809A3EA .4byte _0809A48A .4byte _0809A48A _08099EE4: movs r4, 0 movs r5, 0 ldr r7, _08099F00 _08099EEA: ldrh r1, [r7] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08099F04 lsrs r0, r5, 16 movs r1, 0x80 lsls r1, 1 bl sub_8003664 b _08099F0E .align 2, 0 _08099F00: .4byte gUnknown_2039998 _08099F04: lsrs r0, r5, 16 adds r1, r6, 0 ldr r2, [sp] bl sub_80036AC _08099F0E: movs r0, 0x80 lsls r0, 9 adds r5, r0 adds r7, 0x2 adds r4, 0x1 cmp r4, 0xF ble _08099EEA movs r4, 0x10 movs r5, 0x80 lsls r5, 13 ldr r0, _08099F40 adds r7, r0, 0 adds r7, 0x20 _08099F28: ldrh r1, [r7] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08099F44 lsrs r0, r5, 16 movs r1, 0x80 lsls r1, 1 bl sub_8003664 b _08099F4E .align 2, 0 _08099F40: .4byte gUnknown_2039998 _08099F44: lsrs r0, r5, 16 adds r1, r6, 0 ldr r2, [sp] bl sub_80036AC _08099F4E: movs r0, 0x80 lsls r0, 9 adds r5, r0 adds r7, 0x2 adds r4, 0x1 cmp r4, 0x1F ble _08099F28 b _0809A558 _08099F5E: movs r4, 0xE movs r5, 0xE0 lsls r5, 12 ldr r0, _08099F80 adds r7, r0, 0 adds r7, 0x1C _08099F6A: ldrh r1, [r7] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08099F84 lsrs r0, r5, 16 movs r1, 0x80 lsls r1, 1 bl sub_8003664 b _08099F8E .align 2, 0 _08099F80: .4byte gUnknown_2039998 _08099F84: lsrs r0, r5, 16 adds r1, r6, 0 ldr r2, [sp] bl sub_80036AC _08099F8E: movs r0, 0x80 lsls r0, 9 adds r5, r0 adds r7, 0x2 adds r4, 0x1 cmp r4, 0xF ble _08099F6A movs r4, 0x1F movs r5, 0xF8 lsls r5, 13 ldr r0, _08099FC0 adds r7, r0, 0 adds r7, 0x3E _08099FA8: ldrh r1, [r7] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08099FC4 lsrs r0, r5, 16 movs r1, 0x80 lsls r1, 1 bl sub_8003664 b _08099FCE .align 2, 0 _08099FC0: .4byte gUnknown_2039998 _08099FC4: lsrs r0, r5, 16 adds r1, r6, 0 ldr r2, [sp] bl sub_80036AC _08099FCE: movs r0, 0x80 lsls r0, 9 adds r5, r0 adds r7, 0x2 adds r4, 0x1 cmp r4, 0x1F ble _08099FA8 b _0809A558 _08099FDE: movs r4, 0 movs r5, 0 ldr r7, _08099FFC _08099FE4: ldrh r1, [r7] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0809A000 lsrs r0, r5, 16 movs r1, 0x80 lsls r1, 1 bl sub_8003664 b _0809A00A .align 2, 0 _08099FFC: .4byte gUnknown_2039998 _0809A000: lsrs r0, r5, 16 adds r1, r6, 0 ldr r2, [sp] bl sub_80036AC _0809A00A: movs r0, 0x80 lsls r0, 9 adds r5, r0 adds r7, 0x2 adds r4, 0x1 cmp r4, 0xD ble _08099FE4 movs r4, 0x10 movs r5, 0x80 lsls r5, 13 ldr r0, _0809A03C adds r7, r0, 0 adds r7, 0x20 _0809A024: ldrh r1, [r7] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0809A040 lsrs r0, r5, 16 movs r1, 0x80 lsls r1, 1 bl sub_8003664 b _0809A04A .align 2, 0 _0809A03C: .4byte gUnknown_2039998 _0809A040: lsrs r0, r5, 16 adds r1, r6, 0 ldr r2, [sp] bl sub_80036AC _0809A04A: movs r0, 0x80 lsls r0, 9 adds r5, r0 adds r7, 0x2 adds r4, 0x1 cmp r4, 0x1E ble _0809A024 b _0809A558 _0809A05A: movs r4, 0 movs r5, 0 ldr r7, _0809A078 _0809A060: ldrh r1, [r7] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0809A07C lsrs r0, r5, 16 movs r1, 0x80 lsls r1, 1 bl sub_8003664 b _0809A086 .align 2, 0 _0809A078: .4byte gUnknown_2039998 _0809A07C: lsrs r0, r5, 16 adds r1, r6, 0 ldr r2, [sp] bl sub_80036F4 _0809A086: movs r0, 0x80 lsls r0, 9 adds r5, r0 adds r7, 0x2 adds r4, 0x1 cmp r4, 0xF ble _0809A060 movs r4, 0x10 movs r5, 0x80 lsls r5, 13 ldr r0, _0809A0B8 adds r7, r0, 0 adds r7, 0x20 _0809A0A0: ldrh r1, [r7] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0809A0BC lsrs r0, r5, 16 movs r1, 0x80 lsls r1, 1 bl sub_8003664 b _0809A0C6 .align 2, 0 _0809A0B8: .4byte gUnknown_2039998 _0809A0BC: lsrs r0, r5, 16 adds r1, r6, 0 ldr r2, [sp] bl sub_80036F4 _0809A0C6: movs r0, 0x80 lsls r0, 9 adds r5, r0 adds r7, 0x2 adds r4, 0x1 cmp r4, 0x1F ble _0809A0A0 b _0809A558 _0809A0D6: movs r4, 0xE movs r5, 0xE0 lsls r5, 12 ldr r0, _0809A0F8 adds r7, r0, 0 adds r7, 0x1C _0809A0E2: ldrh r1, [r7] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0809A0FC lsrs r0, r5, 16 movs r1, 0x80 lsls r1, 1 bl sub_8003664 b _0809A106 .align 2, 0 _0809A0F8: .4byte gUnknown_2039998 _0809A0FC: lsrs r0, r5, 16 adds r1, r6, 0 ldr r2, [sp] bl sub_80036F4 _0809A106: movs r0, 0x80 lsls r0, 9 adds r5, r0 adds r7, 0x2 adds r4, 0x1 cmp r4, 0xF ble _0809A0E2 movs r4, 0x1F movs r5, 0xF8 lsls r5, 13 ldr r0, _0809A138 adds r7, r0, 0 adds r7, 0x3E _0809A120: ldrh r1, [r7] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0809A13C lsrs r0, r5, 16 movs r1, 0x80 lsls r1, 1 bl sub_8003664 b _0809A146 .align 2, 0 _0809A138: .4byte gUnknown_2039998 _0809A13C: lsrs r0, r5, 16 adds r1, r6, 0 ldr r2, [sp] bl sub_80036F4 _0809A146: movs r0, 0x80 lsls r0, 9 adds r5, r0 adds r7, 0x2 adds r4, 0x1 cmp r4, 0x1F ble _0809A120 b _0809A558 _0809A156: movs r4, 0 movs r5, 0 ldr r7, _0809A174 _0809A15C: ldrh r1, [r7] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0809A178 lsrs r0, r5, 16 movs r1, 0x80 lsls r1, 1 bl sub_8003664 b _0809A182 .align 2, 0 _0809A174: .4byte gUnknown_2039998 _0809A178: lsrs r0, r5, 16 adds r1, r6, 0 ldr r2, [sp] bl sub_80036F4 _0809A182: movs r0, 0x80 lsls r0, 9 adds r5, r0 adds r7, 0x2 adds r4, 0x1 cmp r4, 0xD ble _0809A15C movs r4, 0x10 movs r5, 0x80 lsls r5, 13 ldr r0, _0809A1B4 adds r7, r0, 0 adds r7, 0x20 _0809A19C: ldrh r1, [r7] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0809A1B8 lsrs r0, r5, 16 movs r1, 0x80 lsls r1, 1 bl sub_8003664 b _0809A1C2 .align 2, 0 _0809A1B4: .4byte gUnknown_2039998 _0809A1B8: lsrs r0, r5, 16 adds r1, r6, 0 ldr r2, [sp] bl sub_80036F4 _0809A1C2: movs r0, 0x80 lsls r0, 9 adds r5, r0 adds r7, 0x2 adds r4, 0x1 cmp r4, 0x1E ble _0809A19C b _0809A558 _0809A1D2: movs r4, 0 movs r5, 0 ldr r7, _0809A1F0 _0809A1D8: ldrh r1, [r7] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0809A1F4 lsrs r0, r5, 16 movs r1, 0x80 lsls r1, 1 bl sub_8003664 b _0809A1FE .align 2, 0 _0809A1F0: .4byte gUnknown_2039998 _0809A1F4: lsrs r0, r5, 16 adds r1, r6, 0 ldr r2, [sp] bl sub_8003780 _0809A1FE: movs r0, 0x80 lsls r0, 9 adds r5, r0 adds r7, 0x2 adds r4, 0x1 cmp r4, 0xF ble _0809A1D8 movs r4, 0x10 movs r5, 0x80 lsls r5, 13 ldr r0, _0809A230 adds r7, r0, 0 adds r7, 0x20 _0809A218: ldrh r1, [r7] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0809A234 lsrs r0, r5, 16 movs r1, 0x80 lsls r1, 1 bl sub_8003664 b _0809A23E .align 2, 0 _0809A230: .4byte gUnknown_2039998 _0809A234: lsrs r0, r5, 16 adds r1, r6, 0 ldr r2, [sp] bl sub_8003780 _0809A23E: movs r0, 0x80 lsls r0, 9 adds r5, r0 adds r7, 0x2 adds r4, 0x1 cmp r4, 0x1F ble _0809A218 b _0809A558 _0809A24E: movs r4, 0xE movs r5, 0xE0 lsls r5, 12 ldr r0, _0809A270 adds r7, r0, 0 adds r7, 0x1C _0809A25A: ldrh r1, [r7] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0809A274 lsrs r0, r5, 16 movs r1, 0x80 lsls r1, 1 bl sub_8003664 b _0809A27E .align 2, 0 _0809A270: .4byte gUnknown_2039998 _0809A274: lsrs r0, r5, 16 adds r1, r6, 0 ldr r2, [sp] bl sub_8003780 _0809A27E: movs r0, 0x80 lsls r0, 9 adds r5, r0 adds r7, 0x2 adds r4, 0x1 cmp r4, 0xF ble _0809A25A movs r4, 0x1F movs r5, 0xF8 lsls r5, 13 ldr r0, _0809A2B0 adds r7, r0, 0 adds r7, 0x3E _0809A298: ldrh r1, [r7] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0809A2B4 lsrs r0, r5, 16 movs r1, 0x80 lsls r1, 1 bl sub_8003664 b _0809A2BE .align 2, 0 _0809A2B0: .4byte gUnknown_2039998 _0809A2B4: lsrs r0, r5, 16 adds r1, r6, 0 ldr r2, [sp] bl sub_8003780 _0809A2BE: movs r0, 0x80 lsls r0, 9 adds r5, r0 adds r7, 0x2 adds r4, 0x1 cmp r4, 0x1F ble _0809A298 b _0809A558 _0809A2CE: movs r4, 0 movs r5, 0 ldr r7, _0809A2EC _0809A2D4: ldrh r1, [r7] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0809A2F0 lsrs r0, r5, 16 movs r1, 0x80 lsls r1, 1 bl sub_8003664 b _0809A2FA .align 2, 0 _0809A2EC: .4byte gUnknown_2039998 _0809A2F0: lsrs r0, r5, 16 adds r1, r6, 0 ldr r2, [sp] bl sub_8003780 _0809A2FA: movs r0, 0x80 lsls r0, 9 adds r5, r0 adds r7, 0x2 adds r4, 0x1 cmp r4, 0xD ble _0809A2D4 movs r4, 0x10 movs r5, 0x80 lsls r5, 13 ldr r0, _0809A32C adds r7, r0, 0 adds r7, 0x20 _0809A314: ldrh r1, [r7] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0809A330 lsrs r0, r5, 16 movs r1, 0x80 lsls r1, 1 bl sub_8003664 b _0809A33A .align 2, 0 _0809A32C: .4byte gUnknown_2039998 _0809A330: lsrs r0, r5, 16 adds r1, r6, 0 ldr r2, [sp] bl sub_8003780 _0809A33A: movs r0, 0x80 lsls r0, 9 adds r5, r0 adds r7, 0x2 adds r4, 0x1 cmp r4, 0x1E ble _0809A314 b _0809A558 _0809A34A: movs r4, 0 movs r5, 0 _0809A34E: ldr r0, _0809A36C lsls r1, r4, 1 adds r1, r0 ldrh r1, [r1] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0809A370 lsrs r0, r5, 16 movs r1, 0x80 lsls r1, 1 bl sub_8003664 b _0809A38C .align 2, 0 _0809A36C: .4byte gUnknown_2039998 _0809A370: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0809A382 lsrs r0, r5, 16 adds r1, r6, 0 bl sub_8003664 b _0809A38C _0809A382: lsrs r0, r5, 16 adds r1, r6, 0 ldr r2, [sp] bl sub_80037C8 _0809A38C: movs r0, 0x80 lsls r0, 9 adds r5, r0 adds r4, 0x1 cmp r4, 0xF ble _0809A34E movs r4, 0x10 movs r5, 0x80 lsls r5, 13 _0809A39E: ldr r0, _0809A3BC lsls r1, r4, 1 adds r1, r0 ldrh r1, [r1] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0809A3C0 lsrs r0, r5, 16 movs r1, 0x80 lsls r1, 1 bl sub_8003664 b _0809A3DC .align 2, 0 _0809A3BC: .4byte gUnknown_2039998 _0809A3C0: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0809A3D2 lsrs r0, r5, 16 adds r1, r6, 0 bl sub_8003664 b _0809A3DC _0809A3D2: lsrs r0, r5, 16 adds r1, r6, 0 ldr r2, [sp] bl sub_80037C8 _0809A3DC: movs r0, 0x80 lsls r0, 9 adds r5, r0 adds r4, 0x1 cmp r4, 0x1F ble _0809A39E b _0809A558 _0809A3EA: movs r4, 0xE movs r5, 0xE0 lsls r5, 12 _0809A3F0: ldr r0, _0809A40C lsls r1, r4, 1 adds r1, r0 ldrh r1, [r1] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0809A410 lsrs r0, r5, 16 movs r1, 0x80 lsls r1, 1 bl sub_8003664 b _0809A42C .align 2, 0 _0809A40C: .4byte gUnknown_2039998 _0809A410: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0809A422 lsrs r0, r5, 16 adds r1, r6, 0 bl sub_8003664 b _0809A42C _0809A422: lsrs r0, r5, 16 adds r1, r6, 0 ldr r2, [sp] bl sub_80037C8 _0809A42C: movs r0, 0x80 lsls r0, 9 adds r5, r0 adds r4, 0x1 cmp r4, 0xF ble _0809A3F0 movs r4, 0x1F movs r5, 0xF8 lsls r5, 13 _0809A43E: ldr r0, _0809A45C lsls r1, r4, 1 adds r1, r0 ldrh r1, [r1] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0809A460 lsrs r0, r5, 16 movs r1, 0x80 lsls r1, 1 bl sub_8003664 b _0809A47C .align 2, 0 _0809A45C: .4byte gUnknown_2039998 _0809A460: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0809A472 lsrs r0, r5, 16 adds r1, r6, 0 bl sub_8003664 b _0809A47C _0809A472: lsrs r0, r5, 16 adds r1, r6, 0 ldr r2, [sp] bl sub_80037C8 _0809A47C: movs r0, 0x80 lsls r0, 9 adds r5, r0 adds r4, 0x1 cmp r4, 0x1F ble _0809A43E b _0809A558 _0809A48A: ldr r0, [r2] cmp r0, 0xD beq _0809A496 cmp r0, 0xE beq _0809A4AA b _0809A4BC _0809A496: mov r0, sp movs r1, 0x90 strb r1, [r0] strb r1, [r0, 0x1] mov r1, sp movs r0, 0xFF strb r0, [r1, 0x2] movs r0, 0x1 negs r0, r0 b _0809A4BA _0809A4AA: mov r1, sp movs r0, 0xFF strb r0, [r1] movs r0, 0xC0 strb r0, [r1, 0x1] movs r0, 0x80 strb r0, [r1, 0x2] subs r0, 0x81 _0809A4BA: strb r0, [r1, 0x3] _0809A4BC: movs r4, 0 movs r5, 0 _0809A4C0: ldr r0, _0809A4DC lsls r1, r4, 1 adds r1, r0 ldrh r1, [r1] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0809A4E0 lsrs r0, r5, 16 movs r1, 0x80 lsls r1, 1 bl sub_8003664 b _0809A4FC .align 2, 0 _0809A4DC: .4byte gUnknown_2039998 _0809A4E0: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0809A4F2 lsrs r0, r5, 16 adds r1, r6, 0 bl sub_8003664 b _0809A4FC _0809A4F2: lsrs r0, r5, 16 adds r1, r6, 0 ldr r2, [sp] bl sub_80037C8 _0809A4FC: movs r0, 0x80 lsls r0, 9 adds r5, r0 adds r4, 0x1 cmp r4, 0xD ble _0809A4C0 movs r4, 0x10 movs r5, 0x80 lsls r5, 13 _0809A50E: ldr r0, _0809A52C lsls r1, r4, 1 adds r1, r0 ldrh r1, [r1] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0809A530 lsrs r0, r5, 16 movs r1, 0x80 lsls r1, 1 bl sub_8003664 b _0809A54C .align 2, 0 _0809A52C: .4byte gUnknown_2039998 _0809A530: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0809A542 lsrs r0, r5, 16 adds r1, r6, 0 bl sub_8003664 b _0809A54C _0809A542: lsrs r0, r5, 16 adds r1, r6, 0 ldr r2, [sp] bl sub_80037C8 _0809A54C: movs r0, 0x80 lsls r0, 9 adds r5, r0 adds r4, 0x1 cmp r4, 0x1E ble _0809A50E _0809A558: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8099E80 thumb_func_start sub_809A560 sub_809A560: push {r4-r6,lr} bl sub_8014144 ldr r6, _0809A5F4 movs r0, 0xB5 lsls r0, 3 movs r1, 0x6 bl MemoryAlloc str r0, [r6] movs r4, 0 str r4, [r0] movs r5, 0x1 negs r5, r5 str r5, [r0, 0x4] str r5, [r0, 0x8] ldr r0, _0809A5F8 strh r4, [r0] ldr r0, _0809A5FC strh r4, [r0] movs r0, 0 movs r1, 0x14 bl sub_80095CC movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0 movs r1, 0x14 bl sub_8009408 bl sub_809B294 ldr r0, [r6] ldr r2, _0809A600 adds r1, r0, r2 str r4, [r1] adds r2, 0x4 adds r1, r0, r2 str r4, [r1] adds r2, 0x4 adds r1, r0, r2 str r4, [r1] adds r2, 0x4 adds r1, r0, r2 str r4, [r1] adds r2, 0x4 adds r1, r0, r2 str r4, [r1] adds r2, 0x4 adds r1, r0, r2 str r4, [r1] adds r2, 0x4 adds r1, r0, r2 str r4, [r1] adds r2, 0x4 adds r1, r0, r2 str r5, [r1] ldr r1, _0809A604 adds r0, r1 str r5, [r0] bl sub_809A7EC ldr r0, [r6] ldr r2, _0809A608 adds r0, r2 ldr r1, _0809A60C strh r1, [r0] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0809A5F4: .4byte gUnknown_3001B64 _0809A5F8: .4byte gUnknown_20399DC _0809A5FC: .4byte gUnknown_20399DE _0809A600: .4byte 0x00000414 _0809A604: .4byte 0x00000434 _0809A608: .4byte 0x000005a4 _0809A60C: .4byte 0x0000ffff thumb_func_end sub_809A560 thumb_func_start sub_809A610 sub_809A610: push {r4,lr} bl sub_809A62C ldr r4, _0809A628 ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _0809A628: .4byte gUnknown_3001B64 thumb_func_end sub_809A610 thumb_func_start sub_809A62C sub_809A62C: push {r4,lr} ldr r0, _0809A670 ldr r0, [r0] movs r2, 0 str r2, [r0] movs r1, 0x1 negs r1, r1 str r1, [r0, 0x4] str r1, [r0, 0x8] ldr r0, _0809A674 strh r2, [r0] ldr r0, _0809A678 strh r2, [r0] movs r4, 0 _0809A648: lsls r0, r4, 16 asrs r0, 16 bl sub_809A83C adds r4, 0x1 cmp r4, 0x9 ble _0809A648 ldr r0, _0809A670 ldr r0, [r0] ldr r1, _0809A67C adds r0, r1 movs r1, 0 str r1, [r0] movs r0, 0 movs r1, 0x1 bl sub_809A680 pop {r4} pop {r0} bx r0 .align 2, 0 _0809A670: .4byte gUnknown_3001B64 _0809A674: .4byte gUnknown_20399DC _0809A678: .4byte gUnknown_20399DE _0809A67C: .4byte 0x00000414 thumb_func_end sub_809A62C thumb_func_start sub_809A680 sub_809A680: push {r4,lr} adds r4, r0, 0 cmp r4, 0x4 bhi _0809A6C2 lsls r0, r4, 2 ldr r1, _0809A694 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0809A694: .4byte _0809A698 .align 2, 0 _0809A698: .4byte _0809A6AC .4byte _0809A6BC .4byte _0809A6BC .4byte _0809A6BC .4byte _0809A6BC _0809A6AC: bl sub_809B294 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C b _0809A6D0 _0809A6BC: bl sub_809B294 b _0809A6D0 _0809A6C2: bl sub_809B294 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C _0809A6D0: ldr r0, _0809A6E0 ldr r0, [r0] str r4, [r0] movs r0, 0x1 pop {r4} pop {r1} bx r1 .align 2, 0 _0809A6E0: .4byte gUnknown_3001B64 thumb_func_end sub_809A680 thumb_func_start sub_809A6E4 sub_809A6E4: lsls r0, 16 lsrs r0, 16 ldr r2, _0809A6F4 ldrh r1, [r2] orrs r0, r1 strh r0, [r2] bx lr .align 2, 0 _0809A6F4: .4byte gUnknown_20399DC thumb_func_end sub_809A6E4 thumb_func_start sub_809A6F8 sub_809A6F8: lsls r0, 16 lsrs r0, 16 ldr r2, _0809A708 ldrh r1, [r2] bics r1, r0 strh r1, [r2] bx lr .align 2, 0 _0809A708: .4byte gUnknown_20399DC thumb_func_end sub_809A6F8 thumb_func_start sub_809A70C sub_809A70C: ldr r0, _0809A714 ldrh r0, [r0] bx lr .align 2, 0 _0809A714: .4byte gUnknown_20399DC thumb_func_end sub_809A70C thumb_func_start nullsub_209 nullsub_209: bx lr thumb_func_end nullsub_209 thumb_func_start sub_809A71C sub_809A71C: push {lr} adds r1, r0, 0 ldr r0, _0809A734 ldr r0, [r0] str r1, [r0, 0x4] str r1, [r0, 0x8] adds r0, r1, 0 bl sub_801416C pop {r0} bx r0 .align 2, 0 _0809A734: .4byte gUnknown_3001B64 thumb_func_end sub_809A71C thumb_func_start sub_809A738 sub_809A738: push {lr} ldr r2, _0809A74C ldr r2, [r2] str r0, [r2, 0x4] str r1, [r2, 0x8] bl sub_801416C pop {r0} bx r0 .align 2, 0 _0809A74C: .4byte gUnknown_3001B64 thumb_func_end sub_809A738 thumb_func_start sub_809A750 sub_809A750: push {lr} ldr r0, _0809A764 ldr r0, [r0] adds r0, 0xC bl sub_809B40C lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _0809A764: .4byte gUnknown_3001B64 thumb_func_end sub_809A750 thumb_func_start sub_809A768 sub_809A768: movs r0, 0 bx lr thumb_func_end sub_809A768 thumb_func_start sub_809A76C sub_809A76C: push {lr} ldr r0, _0809A78C ldr r0, [r0] ldr r1, [r0] cmp r1, 0x1 bcc _0809A7A4 cmp r1, 0x2 bls _0809A790 cmp r1, 0x3 bne _0809A7A4 adds r0, 0xC movs r2, 0x1 negs r2, r2 movs r1, 0x4 b _0809A798 .align 2, 0 _0809A78C: .4byte gUnknown_3001B64 _0809A790: adds r0, 0xC movs r2, 0x1 negs r2, r2 movs r1, 0x84 _0809A798: movs r3, 0 bl sub_809B2B8 lsls r0, 24 lsrs r0, 24 b _0809A7AE _0809A7A4: movs r0, 0 movs r1, 0x1 bl sub_809A680 movs r0, 0 _0809A7AE: pop {r1} bx r1 thumb_func_end sub_809A76C thumb_func_start sub_809A7B4 sub_809A7B4: push {lr} ldr r0, _0809A7D8 ldr r0, [r0] ldr r1, [r0] cmp r1, 0x3 bhi _0809A7DC cmp r1, 0x1 bcc _0809A7DC adds r0, 0xC movs r2, 0x1 negs r2, r2 movs r1, 0x4 movs r3, 0 bl sub_809B2B8 lsls r0, 24 lsrs r0, 24 b _0809A7E6 .align 2, 0 _0809A7D8: .4byte gUnknown_3001B64 _0809A7DC: movs r0, 0 movs r1, 0x1 bl sub_809A680 movs r0, 0 _0809A7E6: pop {r1} bx r1 thumb_func_end sub_809A7B4 thumb_func_start sub_809A7EC sub_809A7EC: push {r4-r6,lr} ldr r0, _0809A830 ldr r0, [r0] ldr r2, _0809A834 adds r1, r0, r2 ldr r0, _0809A838 adds r6, r0, 0 movs r3, 0 movs r2, 0 movs r4, 0x9 movs r5, 0xFF _0809A802: ldrh r0, [r1] orrs r0, r6 strh r0, [r1] strh r2, [r1, 0x2] strb r3, [r1, 0x4] strb r3, [r1, 0x5] ldrb r0, [r1, 0x6] orrs r0, r5 strb r0, [r1, 0x6] strb r3, [r1, 0x7] str r2, [r1, 0x8] str r2, [r1, 0xC] str r2, [r1, 0x10] str r2, [r1, 0x14] strb r3, [r1, 0x1C] str r2, [r1, 0x20] subs r4, 0x1 adds r1, 0x24 cmp r4, 0 bge _0809A802 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0809A830: .4byte gUnknown_3001B64 _0809A834: .4byte 0x0000043c _0809A838: .4byte 0x0000ffff thumb_func_end sub_809A7EC thumb_func_start sub_809A83C sub_809A83C: push {r4-r7,lr} lsls r0, 16 asrs r0, 16 ldr r2, _0809A8A0 lsls r1, r0, 3 adds r1, r0 lsls r1, 2 ldr r3, _0809A8A4 adds r1, r3 ldr r2, [r2] adds r6, r2, r1 ldr r1, _0809A8A8 strh r1, [r6] movs r2, 0 movs r7, 0 strh r7, [r6, 0x2] strb r2, [r6, 0x4] strb r2, [r6, 0x5] movs r1, 0xFF strb r1, [r6, 0x6] strb r2, [r6, 0x7] str r7, [r6, 0x8] str r7, [r6, 0xC] str r7, [r6, 0x10] str r7, [r6, 0x14] strb r2, [r6, 0x1C] lsls r4, r0, 2 adds r4, r0 lsls r4, 4 ldr r0, _0809A8AC adds r0, r4, r0 ldr r5, _0809A8B0 adds r1, r5, 0 bl strcpy ldr r0, _0809A8B4 adds r4, r0 adds r0, r4, 0 adds r1, r5, 0 bl strcpy ldr r0, [r6, 0x20] cmp r0, 0 beq _0809A89A bl CloseFile str r7, [r6, 0x20] _0809A89A: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0809A8A0: .4byte gUnknown_3001B64 _0809A8A4: .4byte 0x0000043c _0809A8A8: .4byte 0x0000ffff _0809A8AC: .4byte gUnknown_202DF98 _0809A8B0: .4byte gUnknown_811615C _0809A8B4: .4byte gPlayerName thumb_func_end sub_809A83C thumb_func_start sub_809A8B8 sub_809A8B8: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 lsls r0, 16 asrs r0, 16 mov r9, r0 mov r0, sp strh r1, [r0] ldr r1, _0809A928 mov r2, r9 lsls r0, r2, 3 add r0, r9 lsls r0, 2 ldr r2, _0809A92C adds r0, r2 ldr r1, [r1] adds r7, r1, r0 movs r0, 0x1 mov r10, r0 movs r1, 0 str r1, [sp, 0x4] ldr r0, [r7, 0x20] cmp r0, 0 beq _0809A8F6 bl CloseFile ldr r2, [sp, 0x4] str r2, [r7, 0x20] _0809A8F6: mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl sub_80A7DDC mov r0, sp ldrh r0, [r0] subs r0, 0xA lsls r0, 16 lsrs r0, 16 cmp r0, 0x13 bhi _0809A9D6 mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] bl sub_80A8D54 adds r5, r0, 0 cmp r5, 0 bne _0809A930 movs r2, 0 mov r10, r2 b _0809A9D6 .align 2, 0 _0809A928: .4byte gUnknown_3001B64 _0809A92C: .4byte 0x0000043c _0809A930: bl sub_808D3BC cmp r5, r0 bne _0809A940 mov r1, sp movs r0, 0x21 strh r0, [r1] b _0809A9D6 _0809A940: bl sub_808D3F8 cmp r5, r0 bne _0809A950 mov r1, sp movs r0, 0x22 strh r0, [r1] b _0809A9D6 _0809A950: ldrb r0, [r5, 0x4] subs r0, 0x43 lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bhi _0809A990 movs r0, 0 ldrsh r1, [r4, r0] ldr r0, _0809A978 cmp r1, r0 beq _0809A9D6 cmp r1, r0 ble _0809A97C adds r0, 0x16 cmp r1, r0 bgt _0809A98A subs r0, 0x1 cmp r1, r0 blt _0809A98A b _0809A9D6 .align 2, 0 _0809A978: .4byte 0x00000183 _0809A97C: movs r0, 0x82 lsls r0, 1 cmp r1, r0 beq _0809A9D6 adds r0, 0x2F cmp r1, r0 beq _0809A9D6 _0809A98A: movs r1, 0 mov r10, r1 b _0809A9D6 _0809A990: movs r2, 0 ldrsh r1, [r4, r2] movs r0, 0x87 lsls r0, 1 cmp r1, r0 bgt _0809A9B0 subs r0, 0x2 cmp r1, r0 bge _0809A9D6 cmp r1, 0x90 blt _0809A9D2 cmp r1, 0x92 ble _0809A9D6 cmp r1, 0x96 beq _0809A9D6 b _0809A9D2 _0809A9B0: movs r0, 0xCF lsls r0, 1 cmp r1, r0 bgt _0809A9CC subs r0, 0x4 cmp r1, r0 bge _0809A9D6 subs r0, 0x87 cmp r1, r0 bgt _0809A9D2 subs r0, 0x1 cmp r1, r0 blt _0809A9D2 b _0809A9D6 _0809A9CC: ldr r0, _0809A9F0 cmp r1, r0 beq _0809A9D6 _0809A9D2: movs r0, 0 mov r10, r0 _0809A9D6: mov r0, sp ldrh r0, [r0] subs r0, 0x1 lsls r0, 16 asrs r0, 16 cmp r0, 0x21 bhi _0809AA98 lsls r0, 2 ldr r1, _0809A9F4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0809A9F0: .4byte 0x000001a7 _0809A9F4: .4byte _0809A9F8 .align 2, 0 _0809A9F8: .4byte _0809AA80 .4byte _0809AA80 .4byte _0809AA98 .4byte _0809AA98 .4byte _0809AA98 .4byte _0809AA80 .4byte _0809AA80 .4byte _0809AA98 .4byte _0809AA98 .4byte _0809AA98 .4byte _0809AA98 .4byte _0809AA98 .4byte _0809AA98 .4byte _0809AA98 .4byte _0809AA98 .4byte _0809AA98 .4byte _0809AA98 .4byte _0809AA98 .4byte _0809AA98 .4byte _0809AA98 .4byte _0809AA98 .4byte _0809AA98 .4byte _0809AA98 .4byte _0809AA98 .4byte _0809AA98 .4byte _0809AA98 .4byte _0809AA98 .4byte _0809AA98 .4byte _0809AA98 .4byte _0809AA98 .4byte _0809AA98 .4byte _0809AA98 .4byte _0809AA80 .4byte _0809AA80 _0809AA80: movs r1, 0 ldrsh r0, [r4, r1] bl sub_80A8CF0 lsls r0, 24 cmp r0, 0 beq _0809AA94 movs r2, 0x1 str r2, [sp, 0x4] b _0809AA98 _0809AA94: movs r0, 0 mov r10, r0 _0809AA98: mov r0, sp movs r2, 0 ldrsh r1, [r0, r2] movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _0809AB34 mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] bl sub_80A7AE8 lsls r0, 16 asrs r1, r0, 16 cmp r1, 0 blt _0809AACE mov r0, sp ldrh r0, [r0] movs r2, 0 mov r8, r2 movs r6, 0 strh r0, [r7] adds r0, r1, 0 bl sub_80A8BFC strh r0, [r7, 0x2] b _0809AAE6 _0809AACE: ldrh r1, [r4] movs r2, 0 ldrsh r0, [r4, r2] cmp r0, 0 beq _0809AB34 mov r0, sp ldrh r0, [r0] movs r2, 0 mov r8, r2 movs r6, 0 strh r0, [r7] strh r1, [r7, 0x2] _0809AAE6: mov r0, r9 lsls r4, r0, 2 add r4, r9 lsls r4, 4 ldr r0, _0809AB28 adds r0, r4, r0 ldr r5, _0809AB2C adds r1, r5, 0 bl strcpy ldr r0, _0809AB30 adds r4, r0 adds r0, r4, 0 adds r1, r5, 0 bl strcpy mov r1, r10 strb r1, [r7, 0x4] mov r2, sp ldrb r2, [r2, 0x4] strb r2, [r7, 0x5] movs r0, 0xFF strb r0, [r7, 0x6] mov r0, r8 strb r0, [r7, 0x7] str r6, [r7, 0x8] str r6, [r7, 0xC] str r6, [r7, 0x10] str r6, [r7, 0x14] strb r0, [r7, 0x1C] movs r0, 0x1 b _0809AB3C .align 2, 0 _0809AB28: .4byte gUnknown_202DF98 _0809AB2C: .4byte gUnknown_811616C _0809AB30: .4byte gPlayerName _0809AB34: mov r0, r9 bl sub_809A83C movs r0, 0 _0809AB3C: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_809A8B8 thumb_func_start sub_809AB4C sub_809AB4C: push {r4-r6,lr} lsls r0, 16 asrs r5, r0, 16 lsls r1, 16 asrs r1, 16 ldr r2, _0809AB78 lsls r0, r5, 3 adds r0, r5 lsls r0, 2 ldr r3, _0809AB7C adds r0, r3 ldr r2, [r2] adds r6, r2, r0 adds r0, r5, 0 bl sub_809A8B8 lsls r0, 24 cmp r0, 0 bne _0809AB80 movs r0, 0 b _0809ABA0 .align 2, 0 _0809AB78: .4byte gUnknown_3001B64 _0809AB7C: .4byte 0x0000043c _0809AB80: lsls r4, r5, 2 adds r4, r5 lsls r4, 4 ldr r0, _0809ABA8 adds r0, r4, r0 movs r2, 0x2 ldrsh r1, [r6, r2] bl sub_808D908 ldr r0, _0809ABAC adds r4, r0 ldr r1, _0809ABB0 adds r0, r4, 0 bl strcpy movs r0, 0x1 _0809ABA0: pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0809ABA8: .4byte gUnknown_202DF98 _0809ABAC: .4byte gPlayerName _0809ABB0: .4byte gUnknown_811617C thumb_func_end sub_809AB4C thumb_func_start sub_809ABB4 sub_809ABB4: push {r4-r6,lr} lsls r0, 16 asrs r5, r0, 16 lsls r1, 16 asrs r1, 16 ldr r2, _0809ABE0 lsls r0, r5, 3 adds r0, r5 lsls r0, 2 ldr r3, _0809ABE4 adds r0, r3 ldr r2, [r2] adds r6, r2, r0 adds r0, r5, 0 bl sub_809A8B8 lsls r0, 24 cmp r0, 0 bne _0809ABE8 movs r0, 0 b _0809AC0A .align 2, 0 _0809ABE0: .4byte gUnknown_3001B64 _0809ABE4: .4byte 0x0000043c _0809ABE8: lsls r4, r5, 2 adds r4, r5 lsls r4, 4 ldr r5, _0809AC10 adds r5, r4, r5 movs r0, 0x2 ldrsh r1, [r6, r0] adds r0, r5, 0 bl sub_808D908 ldr r0, _0809AC14 adds r4, r0 adds r0, r4, 0 adds r1, r5, 0 bl strcpy movs r0, 0x1 _0809AC0A: pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0809AC10: .4byte gUnknown_202DF98 _0809AC14: .4byte gPlayerName thumb_func_end sub_809ABB4 thumb_func_start sub_809AC18 sub_809AC18: push {r4-r6,lr} lsls r0, 16 asrs r5, r0, 16 lsls r1, 16 asrs r1, 16 ldr r2, _0809AC44 lsls r0, r5, 3 adds r0, r5 lsls r0, 2 ldr r3, _0809AC48 adds r0, r3 ldr r2, [r2] adds r6, r2, r0 adds r0, r5, 0 bl sub_809A8B8 lsls r0, 24 cmp r0, 0 bne _0809AC4C movs r0, 0 b _0809AC6E .align 2, 0 _0809AC44: .4byte gUnknown_3001B64 _0809AC48: .4byte 0x0000043c _0809AC4C: lsls r4, r5, 2 adds r4, r5 lsls r4, 4 ldr r0, _0809AC74 adds r0, r4, r0 movs r2, 0x2 ldrsh r1, [r6, r2] bl sub_808D908 ldr r0, _0809AC78 adds r4, r0 movs r3, 0 ldrsh r1, [r6, r3] adds r0, r4, 0 bl sub_80A8EC0 movs r0, 0x1 _0809AC6E: pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0809AC74: .4byte gUnknown_202DF98 _0809AC78: .4byte gPlayerName thumb_func_end sub_809AC18 thumb_func_start sub_809AC7C sub_809AC7C: push {r4-r6,lr} lsls r0, 16 asrs r0, 16 lsls r1, 24 asrs r5, r1, 24 lsls r2, 24 lsrs r6, r2, 24 ldr r2, _0809AD10 lsls r1, r0, 3 adds r1, r0 lsls r1, 2 ldr r0, _0809AD14 adds r1, r0 ldr r0, [r2] adds r4, r0, r1 ldr r0, [r4, 0x20] cmp r0, 0 beq _0809ACA8 bl CloseFile movs r0, 0 str r0, [r4, 0x20] _0809ACA8: movs r0, 0x2 ldrsh r1, [r4, r0] cmp r1, 0 bge _0809ACB2 b _0809ADC0 _0809ACB2: movs r0, 0x1 negs r0, r0 cmp r5, r0 bne _0809ACBC b _0809ADC0 _0809ACBC: cmp r1, 0 bne _0809ACC2 b _0809ADC0 _0809ACC2: cmp r6, 0x15 beq _0809ACCE movs r0, 0 strb r6, [r4, 0x7] str r0, [r4, 0x8] str r0, [r4, 0xC] _0809ACCE: ldr r2, _0809AD18 ldrb r0, [r4, 0x7] lsls r0, 3 adds r0, r2 ldr r1, [r4, 0x8] ldrh r0, [r0] adds r0, r1 movs r6, 0 movs r3, 0 strh r0, [r4, 0x18] ldrb r0, [r4, 0x7] lsls r0, 3 adds r0, r2 ldr r1, [r4, 0xC] ldrh r0, [r0, 0x2] adds r0, r1 strh r0, [r4, 0x1A] ldrb r0, [r4, 0x7] lsls r0, 3 adds r0, r2 ldrb r0, [r0, 0x4] strb r0, [r4, 0x1D] strb r6, [r4, 0x1E] movs r0, 0x2 negs r0, r0 cmp r5, r0 bne _0809AD1C strb r5, [r4, 0x6] str r3, [r4, 0x10] str r3, [r4, 0x14] strb r6, [r4, 0x1C] movs r0, 0 b _0809ADD2 .align 2, 0 _0809AD10: .4byte gUnknown_3001B64 _0809AD14: .4byte 0x0000043c _0809AD18: .4byte gUnknown_8116040 _0809AD1C: ldrb r0, [r4, 0x4] cmp r0, 0 beq _0809ADC0 movs r1, 0x2 ldrsh r0, [r4, r1] bl sub_808DD90 str r0, [r4, 0x20] cmp r0, 0 beq _0809ADB6 strb r5, [r4, 0x6] str r0, [r4, 0x10] movs r1, 0 bl GetFileDataPtr movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0x4D beq _0809AD62 cmp r0, 0x4D bgt _0809AD4C cmp r0, 0x47 beq _0809AD56 b _0809ADA8 _0809AD4C: cmp r0, 0x53 beq _0809AD76 cmp r0, 0x73 beq _0809AD8A b _0809ADA8 _0809AD56: movs r0, 0xF ands r0, r5 cmp r0, 0x5 bgt _0809ADA8 adds r0, r5, 0x6 b _0809AD9C _0809AD62: ldrb r0, [r4, 0x1D] cmp r0, 0 beq _0809ADA8 movs r0, 0xF ands r0, r5 cmp r0, 0x3 bgt _0809ADA8 strb r6, [r4, 0x1D] adds r0, r5, 0x4 b _0809AD9C _0809AD76: ldrb r0, [r4, 0x1D] cmp r0, 0 beq _0809ADA8 movs r0, 0xF ands r0, r5 cmp r0, 0 bgt _0809ADA8 strb r6, [r4, 0x1D] adds r0, r5, 0x1 b _0809AD9C _0809AD8A: ldrb r0, [r4, 0x1D] cmp r0, 0 beq _0809ADA8 movs r0, 0xF ands r0, r5 cmp r0, 0x1 bgt _0809ADA8 strb r6, [r4, 0x1D] adds r0, r5, 0x2 _0809AD9C: lsls r0, 24 asrs r5, r0, 24 movs r0, 0x40 orrs r5, r0 lsls r0, r5, 24 asrs r5, r0, 24 _0809ADA8: ldr r0, [r4, 0x20] ldr r0, [r0, 0x4] str r0, [r4, 0x14] movs r0, 0xF ands r5, r0 strb r5, [r4, 0x1C] b _0809ADBC _0809ADB6: str r0, [r4, 0x10] str r0, [r4, 0x14] strb r6, [r4, 0x1C] _0809ADBC: movs r0, 0x1 b _0809ADD2 _0809ADC0: movs r0, 0xFF strb r0, [r4, 0x6] movs r0, 0 strb r0, [r4, 0x7] str r0, [r4, 0x8] str r0, [r4, 0xC] str r0, [r4, 0x10] str r0, [r4, 0x14] strb r0, [r4, 0x1C] _0809ADD2: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_809AC7C thumb_func_start sub_809ADD8 sub_809ADD8: push {r4,lr} adds r4, r1, 0 lsls r0, 16 asrs r0, 16 ldr r2, _0809AE28 lsls r1, r0, 3 adds r1, r0 lsls r1, 2 ldr r0, _0809AE2C adds r1, r0 ldr r0, [r2] adds r3, r0, r1 movs r1, 0x2 ldrsh r0, [r3, r1] cmp r0, 0 blt _0809AE34 cmp r0, 0 beq _0809AE34 ldr r0, [r4] ldr r1, [r4, 0x4] str r0, [r3, 0x8] str r1, [r3, 0xC] ldr r2, _0809AE30 ldrb r0, [r3, 0x7] lsls r0, 3 adds r0, r2 ldr r1, [r3, 0x8] ldrh r0, [r0] adds r0, r1 strh r0, [r3, 0x18] ldrb r0, [r3, 0x7] lsls r0, 3 adds r0, r2 ldr r1, [r3, 0xC] ldrh r0, [r0, 0x2] adds r0, r1 strh r0, [r3, 0x1A] movs r0, 0x1 b _0809AE36 .align 2, 0 _0809AE28: .4byte gUnknown_3001B64 _0809AE2C: .4byte 0x0000043c _0809AE30: .4byte gUnknown_8116040 _0809AE34: movs r0, 0 _0809AE36: pop {r4} pop {r1} bx r1 thumb_func_end sub_809ADD8 thumb_func_start sub_809AE3C sub_809AE3C: push {r4,lr} lsls r0, 16 asrs r2, r0, 16 cmp r2, 0 blt _0809AE88 ldr r1, _0809AE80 lsls r0, r2, 3 adds r0, r2 lsls r0, 2 ldr r3, _0809AE84 adds r0, r3 ldr r1, [r1] adds r4, r1, r0 movs r1, 0x2 ldrsh r0, [r4, r1] cmp r0, 0 beq _0809AE74 movs r1, 0x6 ldrsb r1, [r4, r1] movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _0809AE74 adds r0, r2, 0 movs r1, 0 movs r2, 0 bl sub_809AC7C _0809AE74: ldr r0, [r4, 0x10] cmp r0, 0 beq _0809AE88 adds r0, r4, 0 adds r0, 0x10 b _0809AE8A .align 2, 0 _0809AE80: .4byte gUnknown_3001B64 _0809AE84: .4byte 0x0000043c _0809AE88: movs r0, 0 _0809AE8A: pop {r4} pop {r1} bx r1 thumb_func_end sub_809AE3C thumb_func_start sub_809AE90 sub_809AE90: push {r4-r6,lr} adds r5, r0, 0 adds r4, r2, 0 lsls r1, 16 asrs r6, r1, 16 cmp r4, 0 bne _0809AEA4 bl sub_809A76C b _0809AEE0 _0809AEA4: ldrb r0, [r4] cmp r0, 0 beq _0809AEDC ldr r1, _0809AED0 lsls r0, r5, 2 adds r0, r1 ldr r0, [r0] movs r1, 0 bl sub_809A680 ldr r0, _0809AED4 ldr r0, [r0] adds r0, 0xC ldr r2, _0809AED8 lsls r1, r5, 1 adds r1, r2 ldrh r1, [r1] adds r2, r6, 0 adds r3, r4, 0 bl sub_809B2B8 b _0809AEE0 .align 2, 0 _0809AED0: .4byte gUnknown_8116134 _0809AED4: .4byte gUnknown_3001B64 _0809AED8: .4byte gUnknown_8116148 _0809AEDC: bl sub_809A7B4 _0809AEE0: lsls r0, 24 lsrs r0, 24 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_809AE90 thumb_func_start sub_809AEEC sub_809AEEC: push {r4,lr} adds r4, r0, 0 cmp r4, 0 beq _0809AF1C ldrb r0, [r4] cmp r0, 0 beq _0809AF1C movs r0, 0x2 movs r1, 0x1 bl sub_809A680 ldr r0, _0809AF18 ldr r0, [r0] adds r0, 0xC movs r2, 0x1 negs r2, r2 movs r1, 0xC2 adds r3, r4, 0 bl sub_809B2B8 b _0809AF20 .align 2, 0 _0809AF18: .4byte gUnknown_3001B64 _0809AF1C: bl sub_809A76C _0809AF20: lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 thumb_func_end sub_809AEEC thumb_func_start sub_809AF2C sub_809AF2C: push {r4,lr} adds r4, r0, 0 cmp r4, 0 beq _0809AF5C ldrb r0, [r4] cmp r0, 0 beq _0809AF5C movs r0, 0x2 movs r1, 0x1 bl sub_809A680 ldr r0, _0809AF58 ldr r0, [r0] adds r0, 0xC movs r2, 0x1 negs r2, r2 movs r1, 0xC2 adds r3, r4, 0 bl sub_809B2B8 b _0809AF60 .align 2, 0 _0809AF58: .4byte gUnknown_3001B64 _0809AF5C: bl sub_809A76C _0809AF60: lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 thumb_func_end sub_809AF2C thumb_func_start sub_809AF6C sub_809AF6C: push {r4,lr} adds r4, r1, 0 cmp r4, 0 beq _0809AF9C ldrb r0, [r4] cmp r0, 0 beq _0809AF9C movs r0, 0x3 movs r1, 0x1 bl sub_809A680 ldr r0, _0809AF98 ldr r0, [r0] adds r0, 0xC movs r2, 0x1 negs r2, r2 movs r1, 0x65 adds r3, r4, 0 bl sub_809B2B8 b _0809AFA0 .align 2, 0 _0809AF98: .4byte gUnknown_3001B64 _0809AF9C: bl sub_809A76C _0809AFA0: lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 thumb_func_end sub_809AF6C thumb_func_start sub_809AFAC sub_809AFAC: push {lr} movs r1, 0 ldr r0, _0809AFC4 ldr r0, [r0] ldr r0, [r0] cmp r0, 0x4 bne _0809AFBC movs r1, 0x1 _0809AFBC: adds r0, r1, 0 pop {r1} bx r1 .align 2, 0 _0809AFC4: .4byte gUnknown_3001B64 thumb_func_end sub_809AFAC thumb_func_start sub_809AFC8 sub_809AFC8: push {r4,r5,lr} sub sp, 0x8 adds r5, r1, 0 adds r1, r2, 0 lsls r0, 24 lsrs r0, 24 lsls r1, 16 asrs r1, 16 ldr r4, _0809AFF8 negs r2, r0 orrs r2, r0 lsrs r2, 31 str r1, [sp] str r3, [sp, 0x4] adds r0, r4, 0 movs r1, 0 adds r3, r5, 0 bl sub_809B028 add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0809AFF8: .4byte gUnknown_81160E8 thumb_func_end sub_809AFC8 thumb_func_start sub_809AFFC sub_809AFFC: push {r4,lr} sub sp, 0x4 adds r4, r0, 0 mov r0, sp bl sub_809B18C lsls r0, 24 lsrs r2, r0, 24 cmp r4, 0 beq _0809B01C movs r1, 0 ldr r0, [sp] cmp r0, 0x1 bne _0809B01A movs r1, 0x1 _0809B01A: strb r1, [r4] _0809B01C: adds r0, r2, 0 add sp, 0x4 pop {r4} pop {r1} bx r1 thumb_func_end sub_809AFFC thumb_func_start sub_809B028 sub_809B028: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x14 mov r8, r0 adds r7, r2, 0 adds r6, r3, 0 ldr r0, [sp, 0x2C] lsls r1, 24 lsrs r5, r1, 24 lsls r0, 16 asrs r4, r0, 16 ldr r1, _0809B084 lsls r0, r6, 2 adds r0, r1 ldr r0, [r0] movs r1, 0 bl sub_809A680 ldr r0, _0809B088 ldr r1, [r0] ldr r0, _0809B08C adds r2, r1, r0 movs r0, 0x1 str r0, [r2] movs r0, 0x83 lsls r0, 3 adds r2, r1, r0 movs r0, 0 str r0, [r2] ldr r2, _0809B090 adds r0, r1, r2 mov r2, r8 str r2, [r0] movs r2, 0x84 lsls r2, 3 adds r0, r1, r2 movs r2, 0x2 str r2, [r0] ldr r0, _0809B094 adds r1, r0 cmp r5, 0 beq _0809B098 str r2, [r1] b _0809B09A .align 2, 0 _0809B084: .4byte gUnknown_8116134 _0809B088: .4byte gUnknown_3001B64 _0809B08C: .4byte 0x00000414 _0809B090: .4byte 0x0000041c _0809B094: .4byte 0x00000424 _0809B098: str r5, [r1] _0809B09A: ldr r0, _0809B0D4 ldr r0, [r0] movs r1, 0x85 lsls r1, 3 adds r2, r0, r1 movs r1, 0 str r1, [r2] movs r2, 0x86 lsls r2, 3 adds r0, r2 str r7, [r0] ldr r0, _0809B0D8 lsls r2, r6, 1 adds r0, r2, r0 ldrh r1, [r0] movs r0, 0x80 lsls r0, 1 ands r0, r1 adds r5, r2, 0 cmp r0, 0 beq _0809B0F6 cmp r4, 0 bge _0809B0E4 ldr r0, _0809B0DC ldr r1, _0809B0E0 bl strcpy b _0809B0F6 .align 2, 0 _0809B0D4: .4byte gUnknown_3001B64 _0809B0D8: .4byte gUnknown_8116148 _0809B0DC: .4byte gUnknown_202E5D8 _0809B0E0: .4byte gUnknown_8116180 _0809B0E4: ldr r0, _0809B134 ldr r1, _0809B138 lsls r2, r4, 2 adds r2, r4 lsls r2, 4 ldr r3, _0809B13C adds r2, r3 bl sub_800D158 _0809B0F6: adds r0, r4, 0 bl sub_809AE3C ldr r4, _0809B140 movs r1, 0 str r1, [sp] movs r3, 0x4 str r3, [sp, 0x4] str r1, [sp, 0x8] str r0, [sp, 0xC] ldr r0, _0809B144 adds r0, r5, r0 ldrh r2, [r0] movs r0, 0x80 lsls r0, 1 ands r0, r2 cmp r0, 0 beq _0809B11C movs r1, 0xC _0809B11C: movs r0, 0x80 lsls r0, 2 ands r0, r2 cmp r0, 0 beq _0809B128 orrs r1, r3 _0809B128: movs r0, 0x20 ands r0, r2 cmp r0, 0 beq _0809B148 movs r0, 0x21 b _0809B14A .align 2, 0 _0809B134: .4byte gUnknown_202E5D8 _0809B138: .4byte gUnknown_8116188 _0809B13C: .4byte gPlayerName _0809B140: .4byte sub_809B428 _0809B144: .4byte gUnknown_8116148 _0809B148: movs r0, 0x1 _0809B14A: orrs r0, r1 lsls r0, 16 lsrs r0, 16 str r0, [sp, 0x10] ldr r0, [sp, 0x30] adds r1, r4, 0 adds r2, r7, 0 mov r3, r8 bl sub_8014248 ldr r0, _0809B184 ldr r0, [r0] ldr r1, _0809B188 adds r0, r1 ldr r0, [r0] movs r1, 0x2 ands r0, r1 cmp r0, 0 beq _0809B176 movs r0, 0x1 bl sub_809A6E4 _0809B176: add sp, 0x14 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0809B184: .4byte gUnknown_3001B64 _0809B188: .4byte 0x00000424 thumb_func_end sub_809B028 thumb_func_start sub_809B18C sub_809B18C: push {lr} adds r1, r0, 0 ldr r2, _0809B1BC cmp r1, 0 beq _0809B1A2 ldr r0, [r2] movs r3, 0x86 lsls r3, 3 adds r0, r3 ldr r0, [r0] str r0, [r1] _0809B1A2: movs r1, 0 ldr r0, [r2] movs r2, 0x84 lsls r2, 3 adds r0, r2 ldr r0, [r0] cmp r0, 0x3 bne _0809B1B4 movs r1, 0x1 _0809B1B4: adds r0, r1, 0 pop {r1} bx r1 .align 2, 0 _0809B1BC: .4byte gUnknown_3001B64 thumb_func_end sub_809B18C thumb_func_start sub_809B1C0 sub_809B1C0: push {lr} adds r3, r2, 0 movs r2, 0 bl sub_809B1D4 lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end sub_809B1C0 thumb_func_start sub_809B1D4 sub_809B1D4: push {r4-r7,lr} adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 adds r7, r3, 0 cmp r4, 0xB beq _0809B1E8 cmp r4, 0xC beq _0809B1F0 b _0809B202 _0809B1E8: adds r0, r5, 0 bl sub_8021700 b _0809B1F8 _0809B1F0: bl sub_8001D88 bl sub_802FCF0 _0809B1F8: lsls r0, 24 cmp r0, 0 beq _0809B202 movs r0, 0 b _0809B24C _0809B202: movs r0, 0x4 movs r1, 0 bl sub_809A680 ldr r0, _0809B254 ldr r1, [r0] ldr r2, _0809B258 adds r0, r1, r2 str r4, [r0] movs r3, 0x83 lsls r3, 3 adds r0, r1, r3 movs r2, 0 str r2, [r0] adds r3, 0x4 adds r0, r1, r3 str r2, [r0] movs r0, 0x84 lsls r0, 3 adds r2, r1, r0 movs r0, 0x1 str r0, [r2] ldr r2, _0809B25C adds r0, r1, r2 str r5, [r0] adds r3, 0xC adds r0, r1, r3 str r6, [r0] adds r2, 0x8 adds r0, r1, r2 str r7, [r0] adds r3, 0x8 adds r1, r3 movs r0, 0x1 negs r0, r0 str r0, [r1] movs r0, 0x1 _0809B24C: pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0809B254: .4byte gUnknown_3001B64 _0809B258: .4byte 0x00000414 _0809B25C: .4byte 0x00000424 thumb_func_end sub_809B1D4 thumb_func_start sub_809B260 sub_809B260: push {lr} adds r1, r0, 0 ldr r2, _0809B290 cmp r1, 0 beq _0809B276 ldr r0, [r2] movs r3, 0x86 lsls r3, 3 adds r0, r3 ldr r0, [r0] str r0, [r1] _0809B276: movs r1, 0 ldr r0, [r2] movs r2, 0x84 lsls r2, 3 adds r0, r2 ldr r0, [r0] cmp r0, 0x3 bne _0809B288 movs r1, 0x1 _0809B288: adds r0, r1, 0 pop {r1} bx r1 .align 2, 0 _0809B290: .4byte gUnknown_3001B64 thumb_func_end sub_809B260 thumb_func_start sub_809B294 sub_809B294: push {lr} movs r0, 0x3 bl sub_80063D8 ldr r0, _0809B2B4 ldr r0, [r0] adds r0, 0xC movs r2, 0x1 negs r2, r2 movs r1, 0 movs r3, 0 bl sub_809B2B8 pop {r0} bx r0 .align 2, 0 _0809B2B4: .4byte gUnknown_3001B64 thumb_func_end sub_809B294 thumb_func_start sub_809B2B8 sub_809B2B8: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x14 adds r4, r0, 0 adds r7, r3, 0 lsls r1, 16 lsrs r5, r1, 16 lsls r2, 16 asrs r6, r2, 16 strh r5, [r4] cmp r7, 0 bne _0809B2F6 cmp r5, 0 bne _0809B2DE str r7, [r4, 0x4] movs r0, 0 b _0809B3FC _0809B2DE: movs r0, 0x4 ands r0, r5 cmp r0, 0 bne _0809B2E8 b _0809B3FA _0809B2E8: bl sub_8014490 movs r0, 0 movs r1, 0x1 bl sub_809A680 b _0809B3FA _0809B2F6: movs r0, 0x1 str r0, [r4, 0x4] adds r0, 0xFF ands r0, r5 cmp r0, 0 beq _0809B32A cmp r6, 0 bge _0809B318 ldr r0, _0809B310 ldr r1, _0809B314 bl strcpy b _0809B32A .align 2, 0 _0809B310: .4byte gUnknown_202E5D8 _0809B314: .4byte gUnknown_8116180 _0809B318: ldr r0, _0809B3D0 ldr r1, _0809B3D4 lsls r2, r6, 2 adds r2, r6 lsls r2, 4 ldr r3, _0809B3D8 adds r2, r3 bl sub_800D158 _0809B32A: ldr r0, _0809B3DC mov r8, r0 ldr r0, [r0] ldr r0, [r0] cmp r0, 0x3 bne _0809B344 adds r4, 0x8 ldr r1, _0809B3E0 adds r0, r4, 0 adds r2, r7, 0 bl sub_800D158 adds r7, r4, 0 _0809B344: adds r0, r6, 0 bl sub_809AE3C ldr r1, _0809B3E4 mov r9, r1 movs r1, 0x1 negs r1, r1 mov r12, r1 movs r2, 0 str r2, [sp] movs r1, 0x3 str r1, [sp, 0x4] str r2, [sp, 0x8] str r0, [sp, 0xC] movs r6, 0x80 lsls r6, 1 adds r0, r5, 0 ands r0, r6 movs r1, 0 cmp r0, 0 beq _0809B370 movs r1, 0xC _0809B370: movs r4, 0x80 lsls r4, 2 adds r0, r5, 0 ands r0, r4 cmp r0, 0 beq _0809B380 movs r0, 0x4 orrs r1, r0 _0809B380: mov r0, r8 ldr r3, [r0] ldr r2, [r3] cmp r2, 0x3 bne _0809B38E movs r0, 0x10 orrs r1, r0 _0809B38E: cmp r2, 0x2 bne _0809B396 movs r0, 0x10 orrs r1, r0 _0809B396: adds r2, r1, 0 movs r1, 0x20 adds r0, r5, 0 ands r0, r1 cmp r0, 0 beq _0809B3A4 orrs r2, r1 _0809B3A4: lsrs r1, r5, 6 movs r0, 0x1 ands r1, r0 orrs r1, r2 movs r0, 0x80 ands r0, r5 cmp r0, 0 beq _0809B3B6 orrs r1, r6 _0809B3B6: movs r0, 0x4 ands r0, r5 cmp r0, 0 beq _0809B3C0 orrs r1, r4 _0809B3C0: ldr r0, [r3, 0x4] cmp r0, r12 beq _0809B3E8 movs r0, 0x2 orrs r0, r1 lsls r0, 16 b _0809B3EA .align 2, 0 _0809B3D0: .4byte gUnknown_202E5D8 _0809B3D4: .4byte gUnknown_8116188 _0809B3D8: .4byte gPlayerName _0809B3DC: .4byte gUnknown_3001B64 _0809B3E0: .4byte gUnknown_8116190 _0809B3E4: .4byte sub_809B428 _0809B3E8: lsls r0, r1, 16 _0809B3EA: lsrs r0, 16 str r0, [sp, 0x10] adds r0, r7, 0 mov r1, r9 mov r2, r12 movs r3, 0 bl sub_8014248 _0809B3FA: movs r0, 0x1 _0809B3FC: add sp, 0x14 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_809B2B8 thumb_func_start sub_809B40C sub_809B40C: push {lr} ldr r0, [r0, 0x4] cmp r0, 0 beq _0809B41C cmp r0, 0x3 bhi _0809B420 cmp r0, 0x2 bcc _0809B420 _0809B41C: movs r0, 0 b _0809B422 _0809B420: movs r0, 0x1 _0809B422: pop {r1} bx r1 thumb_func_end sub_809B40C thumb_func_start sub_809B428 sub_809B428: push {r4,r5,lr} adds r5, r0, 0 adds r4, r2, 0 ldrb r0, [r5, 0x2] cmp r0, 0x4F beq _0809B44C cmp r0, 0x4F bgt _0809B43E cmp r0, 0x49 beq _0809B444 b _0809B46A _0809B43E: cmp r0, 0x57 beq _0809B454 b _0809B46A _0809B444: movs r0, 0x1E bl sub_8099A34 b _0809B462 _0809B44C: movs r0, 0x1E bl sub_8099A48 b _0809B462 _0809B454: bl sub_8099B94 lsls r0, 24 cmp r0, 0 beq _0809B462 adds r0, r5, 0 b _0809B46C _0809B462: adds r1, r4, 0 adds r1, 0x21 movs r0, 0x1 strb r0, [r1] _0809B46A: movs r0, 0 _0809B46C: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_809B428 thumb_func_start sub_809B474 sub_809B474: push {r4-r6,lr} ldr r0, _0809B498 ldr r1, [r0] ldr r2, [r1] adds r6, r0, 0 cmp r2, 0x3 bls _0809B56E cmp r2, 0x4 bne _0809B56E movs r5, 0x84 lsls r5, 3 adds r0, r1, r5 ldr r0, [r0] cmp r0, 0x1 beq _0809B49C cmp r0, 0x2 beq _0809B508 b _0809B56E .align 2, 0 _0809B498: .4byte gUnknown_3001B64 _0809B49C: bl sub_809B648 lsls r0, 24 cmp r0, 0 bne _0809B4B0 ldr r0, [r6] adds r0, r5 movs r1, 0x3 str r1, [r0] b _0809B4E8 _0809B4B0: ldr r0, [r6] movs r1, 0x83 lsls r1, 3 adds r0, r1 ldr r4, [r0] cmp r4, 0 beq _0809B4F8 ldr r0, [r4, 0x4] cmp r0, 0 beq _0809B4F2 bl sub_809B294 ldr r0, [r4, 0x4] bl _call_via_r0 lsls r0, 24 cmp r0, 0 bne _0809B4F2 ldr r1, [r6] movs r3, 0x86 lsls r3, 3 adds r2, r1, r3 movs r0, 0x1 negs r0, r0 str r0, [r2] adds r1, r5 movs r0, 0x3 str r0, [r1] _0809B4E8: movs r0, 0 movs r1, 0x1 bl sub_809A680 b _0809B56E _0809B4F2: ldrh r0, [r4] bl sub_809A6E4 _0809B4F8: ldr r0, _0809B534 ldr r1, [r0] movs r2, 0x84 lsls r2, 3 adds r1, r2 movs r2, 0x2 str r2, [r1] adds r6, r0, 0 _0809B508: ldr r0, [r6] movs r3, 0x83 lsls r3, 3 adds r0, r3 ldr r4, [r0] cmp r4, 0 beq _0809B54E ldr r0, [r4, 0xC] bl _call_via_r0 adds r2, r0, 0 cmp r2, 0x1 bls _0809B56E ldr r0, [r6] movs r3, 0x86 lsls r3, 3 adds r1, r0, r3 cmp r2, 0x2 bne _0809B538 movs r0, 0x1 negs r0, r0 b _0809B53A .align 2, 0 _0809B534: .4byte gUnknown_3001B64 _0809B538: movs r0, 0 _0809B53A: str r0, [r1] ldr r0, [r4, 0x8] cmp r0, 0 beq _0809B546 bl _call_via_r0 _0809B546: ldrh r0, [r4] bl sub_809A6F8 b _0809B558 _0809B54E: bl sub_809B648 lsls r0, 24 cmp r0, 0 bne _0809B56E _0809B558: ldr r0, _0809B578 ldr r0, [r0] movs r1, 0x84 lsls r1, 3 adds r0, r1 movs r1, 0x3 str r1, [r0] movs r0, 0 movs r1, 0x1 bl sub_809A680 _0809B56E: bl sub_809B57C pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0809B578: .4byte gUnknown_3001B64 thumb_func_end sub_809B474 thumb_func_start sub_809B57C sub_809B57C: push {r4,r5,lr} sub sp, 0x8 bl xxx_draw_string_80144C4 ldr r5, _0809B5C8 ldr r0, [r5] ldr r1, [r0] cmp r1, 0x3 bhi _0809B5E4 cmp r1, 0x1 bcc _0809B5E4 movs r4, 0x84 lsls r4, 3 adds r0, r4 ldr r0, [r0] cmp r0, 0 beq _0809B5CC cmp r0, 0x3 beq _0809B5CC mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0809B5E4 ldr r1, [sp] movs r0, 0x1 bl sub_809D9E0 ldr r1, [r5] adds r2, r1, r4 movs r0, 0x3 str r0, [r2] movs r0, 0x86 lsls r0, 3 adds r1, r0 ldr r0, [sp] str r0, [r1] b _0809B5E4 .align 2, 0 _0809B5C8: .4byte gUnknown_3001B64 _0809B5CC: add r0, sp, 0x4 bl sub_80144A4 adds r4, r0, 0 cmp r4, 0 bne _0809B5E4 movs r0, 0 bl sub_809D9B8 ldr r0, _0809B5FC ldr r0, [r0] str r4, [r0] _0809B5E4: ldr r0, _0809B5FC ldr r0, [r0] ldr r1, _0809B600 adds r0, r1 ldr r0, [r0] cmp r0, 0 bge _0809B604 movs r0, 0 movs r1, 0 bl sub_8005838 b _0809B60C .align 2, 0 _0809B5FC: .4byte gUnknown_3001B64 _0809B600: .4byte 0x00000434 _0809B604: movs r0, 0 movs r1, 0x5 bl sub_8005838 _0809B60C: add sp, 0x8 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_809B57C thumb_func_start sub_809B614 sub_809B614: push {lr} bl sub_80060EC ldr r0, _0809B62C ldr r2, _0809B630 ldrh r1, [r2] strh r1, [r0] ldr r0, _0809B634 ands r0, r1 strh r0, [r2] pop {r0} bx r0 .align 2, 0 _0809B62C: .4byte gUnknown_20399DE _0809B630: .4byte gUnknown_20399DC _0809B634: .4byte 0x0000fffd thumb_func_end sub_809B614 thumb_func_start sub_809B638 sub_809B638: push {lr} bl xxx_call_update_bg_vram pop {r0} bx r0 thumb_func_end sub_809B638 thumb_func_start nullsub_210 nullsub_210: bx lr thumb_func_end nullsub_210 thumb_func_start sub_809B648 sub_809B648: push {r4-r6,lr} sub sp, 0x24 ldr r0, _0809B66C ldr r1, [r0] ldr r2, _0809B670 adds r1, r2 ldr r1, [r1] subs r1, 0x2 adds r6, r0, 0 cmp r1, 0x2C bls _0809B662 bl _0809C392 _0809B662: lsls r0, r1, 2 ldr r1, _0809B674 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0809B66C: .4byte gUnknown_3001B64 _0809B670: .4byte 0x00000414 _0809B674: .4byte _0809B678 .align 2, 0 _0809B678: .4byte _0809B72C .4byte _0809B772 .4byte _0809B7AC .4byte _0809B834 .4byte _0809B89C .4byte _0809B8FC .4byte _0809B91C .4byte _0809B944 .4byte _0809B9D2 .4byte _0809BA2A .4byte _0809BAA8 .4byte _0809BB66 .4byte _0809BBDA .4byte _0809BBDA .4byte _0809BC26 .4byte _0809BC68 .4byte _0809C1B4 .4byte _0809BC78 .4byte _0809C1C2 .4byte _0809C1C2 .4byte _0809C1C8 .4byte _0809BCBC .4byte _0809BCBC .4byte _0809BD1C .4byte _0809BD64 .4byte _0809BDE8 .4byte _0809BE30 .4byte _0809BE40 .4byte _0809BE50 .4byte _0809BE60 .4byte _0809BE9C .4byte _0809BEB8 .4byte _0809BED4 .4byte _0809BF70 .4byte _0809BFFC .4byte _0809C072 .4byte _0809C0B8 .4byte _0809C0FC .4byte _0809C148 .4byte _0809C158 .4byte _0809C168 .4byte _0809C204 .4byte _0809C238 .4byte _0809C280 .4byte _0809C32A _0809B72C: ldr r2, [r6] movs r3, 0x84 lsls r3, 3 adds r0, r2, r3 ldr r0, [r0] cmp r0, 0x1 beq _0809B780 ldr r0, _0809B754 ldrh r0, [r0, 0x2] movs r1, 0x3 ands r0, r1 cmp r0, 0 beq _0809B758 movs r0, 0x86 lsls r0, 3 adds r1, r2, r0 movs r0, 0x1 str r0, [r1] bl _0809C392 .align 2, 0 _0809B754: .4byte gUnknown_20255F0 _0809B758: bl sub_8094D14 lsls r0, 24 cmp r0, 0 beq _0809B784 ldr r0, [r6] movs r1, 0x86 lsls r1, 3 adds r0, r1 movs r1, 0x2 str r1, [r0] bl _0809C392 _0809B772: ldr r0, [r6] movs r2, 0x84 lsls r2, 3 adds r0, r2 ldr r0, [r0] cmp r0, 0x1 bne _0809B78A _0809B780: bl sub_809B294 _0809B784: movs r0, 0x1 bl _0809C394 _0809B78A: ldr r0, _0809B7A8 ldrh r1, [r0] ldrh r0, [r0, 0x2] movs r2, 0x2 ands r0, r2 cmp r0, 0 beq _0809B79C bl _0809C392 _0809B79C: ands r1, r2 cmp r1, 0 bne _0809B784 bl _0809C392 .align 2, 0 _0809B7A8: .4byte gUnknown_20255F0 _0809B7AC: ldr r0, [r6] movs r3, 0x84 lsls r3, 3 adds r0, r3 ldr r0, [r0] cmp r0, 0x1 bne _0809B7F4 bl sub_809B294 ldr r1, [r6] ldr r2, _0809B7D8 adds r0, r1, r2 ldr r0, [r0] cmp r0, 0 bne _0809B7E0 ldr r3, _0809B7DC adds r0, r1, r3 ldr r1, [r0] movs r0, 0 bl sub_801602C b _0809B784 .align 2, 0 _0809B7D8: .4byte 0x00000424 _0809B7DC: .4byte 0x0000042c _0809B7E0: ldr r2, _0809B7F0 adds r0, r1, r2 ldr r1, [r0] movs r0, 0x2 bl sub_801602C b _0809B784 .align 2, 0 _0809B7F0: .4byte 0x0000042c _0809B7F4: bl sub_8016080 cmp r0, 0x3 bne _0809B80C bl sub_80160D8 ldr r0, [r6] movs r3, 0x86 lsls r3, 3 adds r0, r3 bl _0809C1BC _0809B80C: cmp r0, 0x2 bne _0809B784 ldr r0, [r6] ldr r1, _0809B830 adds r0, r1 ldr r0, [r0] cmp r0, 0 beq _0809B784 bl sub_80160D8 ldr r0, [r6] movs r2, 0x86 lsls r2, 3 adds r0, r2 _0809B828: movs r1, 0 str r1, [r0] bl _0809C392 .align 2, 0 _0809B830: .4byte 0x00000424 _0809B834: ldr r0, [r6] movs r3, 0x84 lsls r3, 3 adds r0, r3 ldr r0, [r0] cmp r0, 0x1 bne _0809B85C bl sub_809B294 ldr r0, [r6] ldr r1, _0809B858 adds r0, r1 ldr r1, [r0] movs r0, 0x1 bl sub_801602C b _0809B784 .align 2, 0 _0809B858: .4byte 0x0000042c _0809B85C: bl sub_8016080 cmp r0, 0x3 bne _0809B874 bl sub_80160D8 ldr r0, [r6] movs r2, 0x86 lsls r2, 3 adds r0, r2 bl _0809C1BC _0809B874: cmp r0, 0x2 beq _0809B87A b _0809B784 _0809B87A: ldr r0, [r6] ldr r3, _0809B898 adds r0, r3 ldr r0, [r0] cmp r0, 0 bne _0809B888 b _0809B784 _0809B888: bl sub_80160D8 ldr r0, [r6] movs r1, 0x86 lsls r1, 3 adds r0, r1 b _0809B828 .align 2, 0 _0809B898: .4byte 0x00000424 _0809B89C: ldr r0, [r6] movs r2, 0x84 lsls r2, 3 adds r0, r2 ldr r0, [r0] cmp r0, 0x1 bne _0809B8C4 bl sub_809B294 ldr r0, [r6] ldr r3, _0809B8C0 adds r0, r3 ldr r1, [r0] movs r0, 0x4 bl sub_80151C0 b _0809B784 .align 2, 0 _0809B8C0: .4byte 0x0000042c _0809B8C4: bl sub_80154F0 cmp r0, 0x3 bne _0809B8D4 bl sub_80155F0 bl _0809C1B4 _0809B8D4: cmp r0, 0x2 beq _0809B8DA b _0809B784 _0809B8DA: ldr r0, [r6] ldr r2, _0809B8F8 adds r0, r2 ldr r0, [r0] cmp r0, 0 bne _0809B8E8 b _0809B784 _0809B8E8: bl sub_80155F0 ldr r0, [r6] movs r3, 0x86 lsls r3, 3 adds r0, r3 b _0809B828 .align 2, 0 _0809B8F8: .4byte 0x00000424 _0809B8FC: ldr r0, [r6] ldr r1, _0809B914 adds r0, r1 ldr r0, [r0] bl sub_801D014 ldr r0, [r6] movs r2, 0x83 lsls r2, 3 adds r0, r2 ldr r1, _0809B918 b _0809B932 .align 2, 0 _0809B914: .4byte 0x0000042c _0809B918: .4byte gUnknown_81161A8 _0809B91C: ldr r0, [r6] ldr r3, _0809B93C adds r0, r3 ldr r0, [r0] bl sub_801D014 ldr r0, [r6] movs r1, 0x83 lsls r1, 3 adds r0, r1 ldr r1, _0809B940 _0809B932: str r1, [r0] movs r0, 0x4 bl sub_80119D4 b _0809B784 .align 2, 0 _0809B93C: .4byte 0x0000042c _0809B940: .4byte gUnknown_81161B8 _0809B944: bl sub_809B294 ldr r4, _0809B984 ldr r0, [r4] movs r2, 0x84 lsls r2, 3 adds r0, r2 ldr r0, [r0] cmp r0, 0x1 bne _0809B998 bl sub_809B294 ldr r0, [r4] ldr r3, _0809B988 adds r0, r3 ldr r0, [r0] ldr r1, _0809B98C bl sub_8015080 lsls r0, 24 cmp r0, 0 bne _0809B990 ldr r0, [r4] _0809B972: movs r1, 0x86 lsls r1, 3 adds r0, r1 _0809B978: movs r1, 0x1 negs r1, r1 str r1, [r0] bl _0809C392 .align 2, 0 _0809B984: .4byte gUnknown_3001B64 _0809B988: .4byte 0x0000042c _0809B98C: .4byte gUnknown_811610C _0809B990: movs r0, 0x4 bl sub_80119D4 b _0809B784 _0809B998: bl sub_801516C cmp r0, 0x2 beq _0809B9BC cmp r0, 0x3 beq _0809B9A6 b _0809B784 _0809B9A6: bl sub_8015198 ldr r1, [r4] movs r2, 0x86 lsls r2, 3 adds r1, r2 str r0, [r1] bl sub_80151A4 bl _0809C392 _0809B9BC: ldr r0, [r4] movs r3, 0x86 lsls r3, 3 adds r0, r3 movs r1, 0x1 negs r1, r1 str r1, [r0] bl sub_80151A4 bl _0809C392 _0809B9D2: bl sub_809B294 ldr r4, _0809BA08 ldr r0, [r4] movs r1, 0x84 lsls r1, 3 adds r0, r1 ldr r0, [r0] cmp r0, 0x1 bne _0809BA1C bl sub_809B294 ldr r0, [r4] ldr r2, _0809BA0C adds r0, r2 ldr r0, [r0] ldr r1, _0809BA10 bl sub_8015080 lsls r0, 24 cmp r0, 0 bne _0809BA14 ldr r0, [r4] movs r3, 0x86 lsls r3, 3 adds r0, r3 b _0809B978 .align 2, 0 _0809BA08: .4byte gUnknown_3001B64 _0809BA0C: .4byte 0x0000042c _0809BA10: .4byte gUnknown_811612C _0809BA14: movs r0, 0x4 bl sub_80119D4 b _0809B784 _0809BA1C: bl sub_801516C cmp r0, 0x2 beq _0809B9BC cmp r0, 0x3 beq _0809B9A6 b _0809B784 _0809BA2A: ldr r0, [r6] movs r1, 0x84 lsls r1, 3 adds r0, r1 ldr r0, [r0] cmp r0, 0x1 bne _0809BA68 bl sub_809B294 ldr r0, [r6] ldr r2, _0809BA5C adds r0, r2 ldr r0, [r0] movs r1, 0x3 bl sub_80211AC lsls r0, 24 cmp r0, 0 bne _0809BA60 ldr r0, [r6] movs r3, 0x86 lsls r3, 3 adds r0, r3 b _0809B978 .align 2, 0 _0809BA5C: .4byte 0x00000424 _0809BA60: movs r0, 0x4 bl sub_80119D4 b _0809B784 _0809BA68: movs r0, 0x1 bl sub_8021274 cmp r0, 0x2 beq _0809BA92 cmp r0, 0x3 beq _0809BA78 b _0809B784 _0809BA78: bl sub_802132C ldr r1, [r6] movs r2, 0x86 lsls r2, 3 adds r1, r2 lsls r0, 24 lsrs r0, 24 str r0, [r1] bl sub_80213A0 bl _0809C392 _0809BA92: ldr r0, [r6] movs r3, 0x86 lsls r3, 3 adds r0, r3 movs r1, 0x1 negs r1, r1 str r1, [r0] bl sub_80213A0 bl _0809C392 _0809BAA8: ldr r0, [r6] movs r1, 0x84 lsls r1, 3 adds r0, r1 ldr r0, [r0] cmp r0, 0x1 bne _0809BB10 movs r0, 0 movs r1, 0x12 bl sub_8001658 lsls r0, 16 asrs r0, 16 bl sub_80A2654 lsls r0, 16 asrs r4, r0, 16 bl sub_809B294 movs r0, 0x3 movs r1, 0 movs r2, 0xA movs r3, 0x1 bl sub_802F73C lsls r0, 24 cmp r0, 0 bne _0809BAEA ldr r0, [r6] movs r2, 0x86 lsls r2, 3 adds r0, r2 b _0809B978 _0809BAEA: movs r5, 0x1 negs r5, r5 cmp r4, r5 beq _0809BB08 adds r0, r4, 0 bl sub_802F848 lsls r0, 24 cmp r0, 0 bne _0809BB08 movs r0, 0 movs r1, 0x12 adds r2, r5, 0 bl sub_80018D8 _0809BB08: movs r0, 0x4 bl sub_80119D4 b _0809B784 _0809BB10: movs r0, 0x1 bl sub_802F8A0 cmp r0, 0x2 beq _0809BB50 cmp r0, 0x3 beq _0809BB20 b _0809B784 _0809BB20: bl sub_802F90C adds r4, r0, 0 lsls r4, 16 asrs r4, 16 adds r0, r4, 0 bl sub_80A26B8 adds r2, r0, 0 lsls r2, 16 asrs r2, 16 movs r0, 0 movs r1, 0x12 bl sub_80018D8 ldr r0, [r6] movs r3, 0x86 lsls r3, 3 adds r0, r3 str r4, [r0] bl sub_802F974 bl _0809C392 _0809BB50: ldr r0, [r6] movs r1, 0x86 lsls r1, 3 adds r0, r1 movs r1, 0x1 negs r1, r1 str r1, [r0] bl sub_802F974 bl _0809C392 _0809BB66: ldr r0, [r6] movs r2, 0x84 lsls r2, 3 adds r0, r2 ldr r0, [r0] cmp r0, 0x1 bne _0809BB9A bl sub_809B294 movs r0, 0x3 movs r1, 0 movs r2, 0xA bl sub_80302E8 lsls r0, 24 cmp r0, 0 bne _0809BB92 ldr r0, [r6] movs r3, 0x86 lsls r3, 3 adds r0, r3 b _0809B978 _0809BB92: movs r0, 0x4 bl sub_80119D4 b _0809B784 _0809BB9A: movs r0, 0x1 bl sub_80303AC cmp r0, 0x2 beq _0809BBC4 cmp r0, 0x3 beq _0809BBAA b _0809B784 _0809BBAA: bl sub_8030418 ldr r1, [r6] movs r2, 0x86 lsls r2, 3 adds r1, r2 lsls r0, 16 asrs r0, 16 str r0, [r1] bl sub_8030480 bl _0809C392 _0809BBC4: ldr r0, [r6] movs r3, 0x86 lsls r3, 3 adds r0, r3 movs r1, 0x1 negs r1, r1 str r1, [r0] bl sub_8030480 bl _0809C392 _0809BBDA: ldr r0, [r6] movs r1, 0x84 lsls r1, 3 adds r0, r1 ldr r0, [r0] cmp r0, 0x1 bne _0809BC14 bl sub_809B294 ldr r0, [r6] ldr r2, _0809BC10 adds r0, r2 ldr r0, [r0] cmp r0, 0xE bne _0809BC02 movs r0, 0 movs r1, 0x18 movs r2, 0x1 bl sub_80018D8 _0809BC02: movs r0, 0x1 bl sub_8011C28 movs r0, 0 bl sub_8012574 b _0809B784 .align 2, 0 _0809BC10: .4byte 0x00000414 _0809BC14: bl sub_8012600 lsls r0, 24 cmp r0, 0 beq _0809BC20 b _0809B784 _0809BC20: bl sub_8012750 b _0809C392 _0809BC26: movs r0, 0x4 bl sub_80023E4 lsls r0, 24 lsrs r0, 24 negs r4, r0 orrs r4, r0 lsrs r4, 31 bl sub_809B294 adds r0, r4, 0 bl sub_8016C94 lsls r0, 24 cmp r0, 0 beq _0809BC5C ldr r0, _0809BC54 ldr r0, [r0] movs r3, 0x83 lsls r3, 3 adds r0, r3 ldr r1, _0809BC58 b _0809C266 .align 2, 0 _0809BC54: .4byte gUnknown_3001B64 _0809BC58: .4byte gUnknown_81161C8 _0809BC5C: ldr r0, _0809BC64 ldr r0, [r0] b _0809B972 .align 2, 0 _0809BC64: .4byte gUnknown_3001B64 _0809BC68: ldr r0, [r6] movs r2, 0x83 lsls r2, 3 adds r0, r2 ldr r1, _0809BC74 b _0809C266 .align 2, 0 _0809BC74: .4byte gUnknown_81161D8 _0809BC78: movs r0, 0x4 bl sub_80023E4 lsls r0, 24 lsrs r0, 24 negs r4, r0 orrs r4, r0 lsrs r4, 31 bl sub_809B294 adds r0, r4, 0 bl sub_80162E4 lsls r0, 24 cmp r0, 0 beq _0809BCB0 ldr r0, _0809BCA8 ldr r0, [r0] movs r3, 0x83 lsls r3, 3 adds r0, r3 ldr r1, _0809BCAC b _0809C266 .align 2, 0 _0809BCA8: .4byte gUnknown_3001B64 _0809BCAC: .4byte gUnknown_81161E8 _0809BCB0: ldr r0, _0809BCB8 ldr r0, [r0] b _0809B972 .align 2, 0 _0809BCB8: .4byte gUnknown_3001B64 _0809BCBC: movs r0, 0x4 bl sub_80023E4 lsls r0, 24 lsrs r4, r0, 24 bl sub_809B294 ldr r0, _0809BCE0 ldr r0, [r0] ldr r2, _0809BCE4 adds r0, r2 ldr r0, [r0] cmp r0, 0x17 bne _0809BCE8 negs r0, r4 orrs r0, r4 lsrs r0, 31 b _0809BCF0 .align 2, 0 _0809BCE0: .4byte gUnknown_3001B64 _0809BCE4: .4byte 0x00000414 _0809BCE8: movs r0, 0x2 cmp r4, 0 beq _0809BCF0 movs r0, 0x3 _0809BCF0: bl sub_8018B00 lsls r0, 24 cmp r0, 0 beq _0809BD10 ldr r0, _0809BD08 ldr r0, [r0] movs r3, 0x83 lsls r3, 3 adds r0, r3 ldr r1, _0809BD0C b _0809C266 .align 2, 0 _0809BD08: .4byte gUnknown_3001B64 _0809BD0C: .4byte gUnknown_81161F8 _0809BD10: ldr r0, _0809BD18 ldr r0, [r0] b _0809B972 .align 2, 0 _0809BD18: .4byte gUnknown_3001B64 _0809BD1C: movs r0, 0x4 bl sub_80023E4 lsls r0, 24 lsrs r0, 24 negs r4, r0 orrs r4, r0 lsrs r4, 31 bl sub_809B294 adds r0, r4, 0 bl sub_801FB50 lsls r0, 24 cmp r0, 0 beq _0809BD54 ldr r0, _0809BD4C ldr r0, [r0] movs r2, 0x83 lsls r2, 3 adds r0, r2 ldr r1, _0809BD50 b _0809C266 .align 2, 0 _0809BD4C: .4byte gUnknown_3001B64 _0809BD50: .4byte gUnknown_8116208 _0809BD54: ldr r0, _0809BD60 ldr r0, [r0] movs r3, 0x86 lsls r3, 3 adds r0, r3 b _0809B978 .align 2, 0 _0809BD60: .4byte gUnknown_3001B64 _0809BD64: ldr r0, [r6] movs r1, 0x84 lsls r1, 3 adds r0, r1 ldr r0, [r0] cmp r0, 0x1 bne _0809BD84 bl sub_809B294 movs r0, 0 movs r1, 0x39 bl sub_80015C0 bl sub_802465C b _0809B784 _0809BD84: bl sub_80246F0 adds r4, r0, 0 movs r0, 0 movs r1, 0x39 bl sub_8001658 cmp r0, 0 bne _0809BDB2 bl sub_80247B4 lsls r0, 24 cmp r0, 0 beq _0809BDB2 movs r0, 0 movs r1, 0x39 movs r2, 0x1 bl sub_80018D8 movs r0, 0x46 movs r1, 0 bl GroundMap_ExecuteEvent _0809BDB2: cmp r4, 0x3 bne _0809BDCC bl sub_80247C0 ldr r0, _0809BDC8 ldr r0, [r0] movs r2, 0x86 lsls r2, 3 adds r0, r2 b _0809C1BC .align 2, 0 _0809BDC8: .4byte gUnknown_3001B64 _0809BDCC: cmp r4, 0x2 beq _0809BDD2 b _0809B784 _0809BDD2: bl sub_80247C0 ldr r0, _0809BDE4 ldr r0, [r0] movs r3, 0x86 lsls r3, 3 adds r0, r3 b _0809B828 .align 2, 0 _0809BDE4: .4byte gUnknown_3001B64 _0809BDE8: movs r0, 0x4 bl sub_80023E4 lsls r0, 24 lsrs r0, 24 negs r4, r0 orrs r4, r0 lsrs r4, 31 bl sub_809B294 adds r0, r4, 0 bl sub_8021B9C lsls r0, 24 cmp r0, 0 beq _0809BE20 ldr r0, _0809BE18 ldr r0, [r0] movs r1, 0x83 lsls r1, 3 adds r0, r1 ldr r1, _0809BE1C b _0809C266 .align 2, 0 _0809BE18: .4byte gUnknown_3001B64 _0809BE1C: .4byte gUnknown_8116218 _0809BE20: ldr r0, _0809BE2C ldr r0, [r0] movs r2, 0x86 lsls r2, 3 adds r0, r2 b _0809B978 .align 2, 0 _0809BE2C: .4byte gUnknown_3001B64 _0809BE30: ldr r0, [r6] movs r3, 0x83 lsls r3, 3 adds r0, r3 ldr r1, _0809BE3C b _0809C266 .align 2, 0 _0809BE3C: .4byte gUnknown_8116228 _0809BE40: ldr r0, [r6] movs r1, 0x83 lsls r1, 3 adds r0, r1 ldr r1, _0809BE4C b _0809C266 .align 2, 0 _0809BE4C: .4byte gUnknown_8116238 _0809BE50: ldr r0, [r6] movs r2, 0x83 lsls r2, 3 adds r0, r2 ldr r1, _0809BE5C b _0809C266 .align 2, 0 _0809BE5C: .4byte gUnknown_8116248 _0809BE60: bl sub_809B294 movs r0, 0x98 lsls r0, 1 bl sub_80314B4 lsls r0, 24 cmp r0, 0 bne _0809BE84 ldr r0, _0809BE80 ldr r0, [r0] movs r3, 0x86 lsls r3, 3 adds r0, r3 b _0809B978 .align 2, 0 _0809BE80: .4byte gUnknown_3001B64 _0809BE84: ldr r0, _0809BE94 ldr r0, [r0] movs r1, 0x83 lsls r1, 3 adds r0, r1 ldr r1, _0809BE98 b _0809C266 .align 2, 0 _0809BE94: .4byte gUnknown_3001B64 _0809BE98: .4byte gUnknown_8116258 _0809BE9C: movs r0, 0x4 bl sub_80119D4 ldr r0, _0809BEB0 ldr r0, [r0] movs r2, 0x83 lsls r2, 3 adds r0, r2 ldr r1, _0809BEB4 b _0809C266 .align 2, 0 _0809BEB0: .4byte gUnknown_3001B64 _0809BEB4: .4byte gUnknown_8116268 _0809BEB8: movs r0, 0x4 bl sub_80119D4 ldr r0, _0809BECC ldr r0, [r0] movs r3, 0x83 lsls r3, 3 adds r0, r3 ldr r1, _0809BED0 b _0809C266 .align 2, 0 _0809BECC: .4byte gUnknown_3001B64 _0809BED0: .4byte gUnknown_8116278 _0809BED4: mov r0, sp bl sub_8099328 lsls r0, 24 cmp r0, 0 beq _0809BF4E add r1, sp, 0x4 add r2, sp, 0x8 movs r0, 0x2 bl sub_8001B88 ldr r0, [sp, 0x8] cmp r0, 0x7 bgt _0809BF4E add r4, sp, 0xC _0809BEF2: lsls r1, r0, 24 lsrs r1, 24 mov r0, sp ldrb r2, [r0] adds r0, r4, 0 bl sub_8096AF8 ldrb r0, [r4] cmp r0, 0 beq _0809BF44 ldr r1, [sp, 0x4] ldr r2, [sp, 0x8] movs r0, 0x2 bl sub_8001BB4 ldr r0, _0809BF40 ldr r0, [r0] movs r1, 0x86 lsls r1, 3 adds r2, r0, r1 ldrh r1, [r4, 0x2] lsls r1, 16 asrs r1, 16 negs r0, r1 orrs r0, r1 lsrs r1, r0, 31 movs r3, 0x4 ldrsh r0, [r4, r3] cmp r0, 0 beq _0809BF30 adds r1, 0x2 _0809BF30: str r1, [r2] cmp r1, 0 beq _0809BF38 b _0809C392 _0809BF38: movs r0, 0x3 str r0, [r2] b _0809C392 .align 2, 0 _0809BF40: .4byte gUnknown_3001B64 _0809BF44: ldr r0, [sp, 0x8] adds r0, 0x1 str r0, [sp, 0x8] cmp r0, 0x7 ble _0809BEF2 _0809BF4E: ldr r0, _0809BF6C ldr r0, [r0] movs r1, 0x86 lsls r1, 3 adds r0, r1 movs r1, 0 str r1, [r0] bl sub_8096BD0 movs r0, 0x2 movs r1, 0 movs r2, 0 bl sub_8001BB4 b _0809C392 .align 2, 0 _0809BF6C: .4byte gUnknown_3001B64 _0809BF70: mov r5, sp adds r5, 0x1 adds r0, r5, 0 bl sub_8099328 lsls r0, 24 cmp r0, 0 bne _0809BF82 b _0809C392 _0809BF82: add r1, sp, 0x14 add r2, sp, 0x18 movs r0, 0x2 bl sub_8001B88 add r4, sp, 0x1C ldr r1, [sp, 0x18] lsls r1, 24 lsrs r1, 24 ldrb r2, [r5] adds r0, r4, 0 bl sub_8096AF8 ldrb r0, [r4] cmp r0, 0 bne _0809BFA4 b _0809C392 _0809BFA4: ldr r0, [sp, 0x18] lsls r0, 24 lsrs r0, 24 ldrb r1, [r5] bl sub_802DB28 lsls r0, 24 cmp r0, 0 bne _0809BFB8 b _0809C392 _0809BFB8: movs r0, 0 movs r1, 0x19 bl sub_8001658 cmp r0, 0x63 bgt _0809BFCE adds r2, r0, 0x1 movs r0, 0 movs r1, 0x19 bl sub_80018D8 _0809BFCE: movs r0, 0 movs r1, 0x39 movs r2, 0x1 bl sub_80018D8 ldr r1, [sp, 0x14] ldr r2, [sp, 0x18] adds r2, 0x1 movs r0, 0x2 bl sub_8001BB4 ldr r0, _0809BFF4 ldr r0, [r0] movs r2, 0x83 lsls r2, 3 adds r0, r2 ldr r1, _0809BFF8 b _0809C266 .align 2, 0 _0809BFF4: .4byte gUnknown_3001B64 _0809BFF8: .4byte gUnknown_8116288 _0809BFFC: ldr r0, [r6] movs r3, 0x84 lsls r3, 3 adds r0, r3 ldr r0, [r0] cmp r0, 0x1 bne _0809C036 movs r0, 0x4 bl sub_80023E4 lsls r0, 24 lsrs r0, 24 negs r4, r0 orrs r4, r0 asrs r4, 31 movs r0, 0x4 ands r4, r0 bl sub_809B294 adds r0, r4, 0 bl sub_802FD14 lsls r0, 24 cmp r0, 0 beq _0809C032 bl _0809B784 _0809C032: ldr r0, [r6] b _0809B972 _0809C036: bl sub_802FE58 cmp r0, 0x2 beq _0809C05E cmp r0, 0x3 beq _0809C046 bl _0809B784 _0809C046: bl sub_802FED0 ldr r1, [r6] movs r2, 0x86 lsls r2, 3 adds r1, r2 lsls r0, 16 asrs r0, 16 str r0, [r1] bl sub_802FEE0 b _0809C392 _0809C05E: ldr r0, [r6] movs r3, 0x86 lsls r3, 3 adds r0, r3 movs r1, 0x1 negs r1, r1 str r1, [r0] bl sub_802FEE0 b _0809C392 _0809C072: movs r4, 0x1 movs r0, 0x4 bl sub_80023E4 lsls r0, 24 cmp r0, 0 beq _0809C082 movs r4, 0x5 _0809C082: bl sub_809B294 adds r0, r4, 0 bl sub_802FD14 lsls r0, 24 cmp r0, 0 beq _0809C0A8 ldr r0, _0809C0A0 ldr r0, [r0] movs r1, 0x83 lsls r1, 3 adds r0, r1 ldr r1, _0809C0A4 b _0809C266 .align 2, 0 _0809C0A0: .4byte gUnknown_3001B64 _0809C0A4: .4byte gUnknown_8116298 _0809C0A8: ldr r0, _0809C0B4 ldr r0, [r0] movs r2, 0x86 lsls r2, 3 adds r0, r2 b _0809B978 .align 2, 0 _0809C0B4: .4byte gUnknown_3001B64 _0809C0B8: movs r4, 0x2 movs r0, 0x4 bl sub_80023E4 lsls r0, 24 cmp r0, 0 beq _0809C0C8 movs r4, 0x6 _0809C0C8: bl sub_809B294 adds r0, r4, 0 bl sub_802FD14 lsls r0, 24 cmp r0, 0 beq _0809C0F0 ldr r0, _0809C0E8 ldr r0, [r0] movs r3, 0x83 lsls r3, 3 adds r0, r3 ldr r1, _0809C0EC b _0809C266 .align 2, 0 _0809C0E8: .4byte gUnknown_3001B64 _0809C0EC: .4byte gUnknown_81162A8 _0809C0F0: ldr r0, _0809C0F8 ldr r0, [r0] b _0809B972 .align 2, 0 _0809C0F8: .4byte gUnknown_3001B64 _0809C0FC: movs r4, 0x3 movs r0, 0x4 bl sub_80023E4 lsls r0, 24 cmp r0, 0 beq _0809C10C movs r4, 0x7 _0809C10C: bl sub_809B294 adds r0, r4, 0 bl sub_802FD14 lsls r0, 24 cmp r0, 0 beq _0809C134 ldr r0, _0809C12C ldr r0, [r0] movs r2, 0x83 lsls r2, 3 adds r0, r2 ldr r1, _0809C130 b _0809C266 .align 2, 0 _0809C12C: .4byte gUnknown_3001B64 _0809C130: .4byte gUnknown_81162B8 _0809C134: ldr r0, _0809C144 ldr r0, [r0] movs r3, 0x86 lsls r3, 3 adds r0, r3 bl _0809B978 .align 2, 0 _0809C144: .4byte gUnknown_3001B64 _0809C148: ldr r0, [r6] movs r1, 0x83 lsls r1, 3 adds r0, r1 ldr r1, _0809C154 b _0809C266 .align 2, 0 _0809C154: .4byte gUnknown_81162C8 _0809C158: ldr r0, [r6] movs r2, 0x83 lsls r2, 3 adds r0, r2 ldr r1, _0809C164 b _0809C266 .align 2, 0 _0809C164: .4byte gUnknown_81162D8 _0809C168: bl sub_809B294 bl sub_803B050 lsls r0, 24 cmp r0, 0 beq _0809C1A0 ldr r4, _0809C194 ldr r0, [r4] ldr r3, _0809C198 adds r0, r3 movs r1, 0 ldrsh r0, [r0, r1] bl sub_803B100 ldr r0, [r4] movs r2, 0x83 lsls r2, 3 adds r0, r2 ldr r1, _0809C19C b _0809C266 .align 2, 0 _0809C194: .4byte gUnknown_3001B64 _0809C198: .4byte 0x000005a4 _0809C19C: .4byte gUnknown_81162E8 _0809C1A0: ldr r0, _0809C1B0 ldr r0, [r0] movs r3, 0x86 lsls r3, 3 adds r0, r3 bl _0809B978 .align 2, 0 _0809C1B0: .4byte gUnknown_3001B64 _0809C1B4: ldr r0, [r6] movs r1, 0x86 lsls r1, 3 adds r0, r1 _0809C1BC: movs r1, 0x1 str r1, [r0] b _0809C392 _0809C1C2: bl sub_809B294 b _0809C392 _0809C1C8: movs r0, 0x2 bl sub_80252F0 lsls r0, 24 cmp r0, 0 beq _0809C1EC ldr r0, _0809C1E4 ldr r0, [r0] movs r2, 0x83 lsls r2, 3 adds r0, r2 ldr r1, _0809C1E8 b _0809C266 .align 2, 0 _0809C1E4: .4byte gUnknown_3001B64 _0809C1E8: .4byte gUnknown_81162F8 _0809C1EC: ldr r0, _0809C200 ldr r0, [r0] movs r3, 0x86 lsls r3, 3 adds r0, r3 movs r1, 0x2 negs r1, r1 str r1, [r0] b _0809C392 .align 2, 0 _0809C200: .4byte gUnknown_3001B64 _0809C204: ldr r1, [r6] ldr r2, _0809C230 adds r0, r1, r2 ldr r0, [r0] movs r3, 0x85 lsls r3, 3 adds r1, r3 ldr r1, [r1] bl sub_809CCDC ldr r1, [r6] movs r3, 0x86 lsls r3, 3 adds r2, r1, r3 str r0, [r2] movs r0, 0x83 lsls r0, 3 adds r1, r0 ldr r0, _0809C234 str r0, [r1] bl _0809B784 .align 2, 0 _0809C230: .4byte 0x00000424 _0809C234: .4byte gUnknown_8116308 _0809C238: ldr r0, [r6] movs r2, 0x85 lsls r2, 3 adds r1, r0, r2 ldr r5, [r1] ldr r3, _0809C26C adds r0, r3 ldrb r4, [r0] bl sub_809B294 adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x1 bl sub_801B60C lsls r0, 24 cmp r0, 0 beq _0809C274 ldr r0, [r6] movs r1, 0x83 lsls r1, 3 adds r0, r1 ldr r1, _0809C270 _0809C266: str r1, [r0] bl _0809B784 .align 2, 0 _0809C26C: .4byte 0x00000424 _0809C270: .4byte gUnknown_8116318 _0809C274: ldr r0, [r6] movs r2, 0x86 lsls r2, 3 adds r0, r2 bl _0809B978 _0809C280: ldr r0, [r6] movs r3, 0x84 lsls r3, 3 adds r0, r3 ldr r0, [r0] cmp r0, 0x1 bne _0809C2B8 bl sub_809B294 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0 movs r1, 0 movs r2, 0 movs r3, 0xA bl sub_801A5D8 lsls r0, 24 cmp r0, 0 beq _0809C2B2 bl _0809B784 _0809C2B2: ldr r0, [r6] bl _0809B972 _0809C2B8: movs r0, 0x1 bl sub_801A6E8 cmp r0, 0x2 beq _0809C320 cmp r0, 0x3 beq _0809C2CA bl _0809B784 _0809C2CA: bl sub_801A8AC adds r5, r0, 0 ldr r0, _0809C304 ldr r0, [r0] lsls r1, r5, 2 adds r0, r1 ldrb r4, [r0, 0x2] adds r0, r4, 0 bl sub_8091570 lsls r0, 24 cmp r0, 0 beq _0809C30C ldr r0, _0809C308 adds r1, r4, 0 movs r2, 0 bl sub_8090DC4 adds r0, r5, 0 bl sub_80911F8 ldr r0, [r6] movs r2, 0x86 lsls r2, 3 adds r0, r2 movs r1, 0x1 b _0809C318 .align 2, 0 _0809C304: .4byte gUnknown_203B460 _0809C308: .4byte gUnknown_202DE58 _0809C30C: ldr r0, [r6] movs r3, 0x86 lsls r3, 3 adds r0, r3 _0809C314: movs r1, 0x1 negs r1, r1 _0809C318: str r1, [r0] bl sub_801A928 b _0809C392 _0809C320: ldr r0, [r6] movs r1, 0x86 lsls r1, 3 adds r0, r1 b _0809C314 _0809C32A: adds r4, r6, 0 ldr r0, [r4] movs r2, 0x84 lsls r2, 3 adds r0, r2 ldr r0, [r0] cmp r0, 0x1 bne _0809C36C bl sub_809B294 ldr r1, [r4] ldr r3, _0809C368 adds r0, r1, r3 ldr r0, [r0] movs r2, 0x85 lsls r2, 3 adds r1, r2 ldr r1, [r1] bl sub_8035444 lsls r0, 24 cmp r0, 0 beq _0809C35C bl _0809B784 _0809C35C: ldr r0, [r4] movs r3, 0x86 lsls r3, 3 adds r0, r3 bl _0809B978 .align 2, 0 _0809C368: .4byte 0x00000424 _0809C36C: bl sub_8035574 cmp r0, 0x3 bls _0809C378 bl _0809B784 _0809C378: cmp r0, 0x2 bcs _0809C380 bl _0809B784 _0809C380: ldr r0, [r6] movs r1, 0x86 lsls r1, 3 adds r0, r1 movs r1, 0x1 negs r1, r1 str r1, [r0] bl sub_803565C _0809C392: movs r0, 0 _0809C394: add sp, 0x24 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_809B648 thumb_func_start sub_809C39C sub_809C39C: push {lr} bl sub_801D178 ldr r1, _0809C3D4 ldr r1, [r1] movs r2, 0x86 lsls r2, 3 adds r1, r2 str r0, [r1] cmp r0, 0x3 bne _0809C3CC bl sub_801D1D4 lsls r0, 24 lsrs r0, 24 bl sub_8002694 lsls r0, 16 asrs r0, 16 movs r2, 0x1 negs r2, r2 movs r1, 0 bl sub_8098D1C _0809C3CC: bl sub_801D1E0 pop {r0} bx r0 .align 2, 0 _0809C3D4: .4byte gUnknown_3001B64 thumb_func_end sub_809C39C thumb_func_start sub_809C3D8 sub_809C3D8: push {lr} bl sub_801D178 ldr r1, _0809C410 ldr r1, [r1] movs r2, 0x86 lsls r2, 3 adds r1, r2 str r0, [r1] cmp r0, 0x3 bne _0809C408 bl sub_801D1D4 lsls r0, 24 lsrs r0, 24 bl sub_8002694 lsls r0, 16 asrs r0, 16 movs r2, 0x1 negs r2, r2 movs r1, 0 bl sub_8098D1C _0809C408: bl sub_801D1E0 pop {r0} bx r0 .align 2, 0 _0809C410: .4byte gUnknown_3001B64 thumb_func_end sub_809C3D8 thumb_func_start sub_809C414 sub_809C414: push {lr} bl sub_802540C lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 beq _0809C448 ldr r0, _0809C444 ldr r0, [r0] movs r2, 0x86 lsls r2, 3 adds r0, r2 str r1, [r0] adds r0, r1, 0 bl sub_8002694 lsls r0, 16 asrs r0, 16 movs r2, 0x1 negs r2, r2 movs r1, 0 bl sub_8098D1C b _0809C458 .align 2, 0 _0809C444: .4byte gUnknown_3001B64 _0809C448: ldr r0, _0809C460 ldr r0, [r0] movs r1, 0x86 lsls r1, 3 adds r0, r1 movs r1, 0x1 negs r1, r1 str r1, [r0] _0809C458: bl sub_8025418 pop {r0} bx r0 .align 2, 0 _0809C460: .4byte gUnknown_3001B64 thumb_func_end sub_809C414 thumb_func_start sub_809C464 sub_809C464: push {lr} bl sub_803C850 bl sub_8001064 bl sub_809965C pop {r0} bx r0 thumb_func_end sub_809C464 thumb_func_start sub_809C478 sub_809C478: push {lr} sub sp, 0x8 bl sub_80356A0 cmp r0, 0x3 bne _0809C492 ldr r0, _0809C4AC bl sub_8011988 bl InitFlash bl ClearFlashData _0809C492: bl sub_8035758 add r2, sp, 0x4 movs r0, 0x3 mov r1, sp bl sub_8001B88 movs r0, 0 bl sub_80993C0 add sp, 0x8 pop {r0} bx r0 .align 2, 0 _0809C4AC: .4byte 0x00000313 thumb_func_end sub_809C478 thumb_func_start sub_809C4B0 sub_809C4B0: push {r4,r5,lr} movs r4, 0x1 negs r4, r4 ldr r5, _0809C4FC ldr r0, [r5] movs r2, 0x86 lsls r2, 3 adds r1, r0, r2 ldr r0, [r1] cmp r0, 0 bne _0809C4DE bl sub_803B168 lsls r0, 16 ldr r1, [r5] ldr r3, _0809C500 adds r2, r1, r3 asrs r4, r0, 16 lsrs r0, 16 strh r0, [r2] movs r0, 0x86 lsls r0, 3 adds r1, r0 _0809C4DE: str r4, [r1] bl sub_803B1BC movs r0, 0x1 negs r0, r0 cmp r4, r0 beq _0809C4F4 adds r0, r4, 0 movs r1, 0 bl GroundMap_ExecuteEvent _0809C4F4: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0809C4FC: .4byte gUnknown_3001B64 _0809C500: .4byte 0x000005a4 thumb_func_end sub_809C4B0 thumb_func_start sub_809C504 sub_809C504: push {r4,lr} sub sp, 0x4 mov r0, sp bl sub_80282DC adds r4, r0, 0 cmp r4, 0x1 bne _0809C530 mov r0, sp ldrb r0, [r0] bl sub_809927C ldr r0, _0809C52C ldr r0, [r0] movs r1, 0x86 lsls r1, 3 adds r0, r1 str r4, [r0] b _0809C540 .align 2, 0 _0809C52C: .4byte gUnknown_3001B64 _0809C530: ldr r0, _0809C54C ldr r0, [r0] movs r1, 0x86 lsls r1, 3 adds r0, r1 movs r1, 0x1 negs r1, r1 str r1, [r0] _0809C540: bl sub_80282FC add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0809C54C: .4byte gUnknown_3001B64 thumb_func_end sub_809C504 thumb_func_start sub_809C550 sub_809C550: push {r4,r5,lr} bl sub_802E90C adds r4, r0, 0 movs r5, 0 bl sub_802E918 cmp r4, 0x2 beq _0809C586 cmp r4, 0x2 bhi _0809C56C cmp r4, 0x1 beq _0809C572 b _0809C5AC _0809C56C: cmp r4, 0x3 beq _0809C59A b _0809C5AC _0809C572: movs r0, 0x4 movs r1, 0x1D movs r2, 0x3 bl sub_8001CC4 lsls r0, 24 cmp r0, 0 beq _0809C5AC movs r5, 0x1 b _0809C5AC _0809C586: movs r0, 0x4 movs r1, 0x1F movs r2, 0x2 bl sub_8001CC4 lsls r0, 24 cmp r0, 0 beq _0809C5AC movs r5, 0x2 b _0809C5AC _0809C59A: movs r0, 0xB movs r1, 0x33 movs r2, 0x8 bl sub_8001CC4 lsls r0, 24 cmp r0, 0 beq _0809C5AC movs r5, 0x3 _0809C5AC: ldr r0, _0809C5C0 ldr r0, [r0] movs r1, 0x86 lsls r1, 3 adds r0, r1 str r5, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0809C5C0: .4byte gUnknown_3001B64 thumb_func_end sub_809C550 thumb_func_start sub_809C5C4 sub_809C5C4: push {r4,lr} ldr r4, _0809C610 movs r0, 0x24 movs r1, 0x6 bl MemoryAlloc str r0, [r4] movs r2, 0 str r2, [r0] str r2, [r0, 0x4] movs r3, 0 strh r2, [r0, 0x8] strh r2, [r0, 0xA] strb r3, [r0, 0xD] ldr r0, [r4] strb r3, [r0, 0xE] ldr r1, [r4] str r2, [r1, 0x10] ldr r0, _0809C614 strh r0, [r1, 0x14] movs r0, 0x23 strh r0, [r1, 0x16] strb r3, [r1, 0x18] ldr r1, [r4] movs r0, 0x3F strb r0, [r1, 0x19] ldr r0, [r4] str r2, [r0, 0x1C] adds r0, 0x20 strb r3, [r0] bl nullsub_107 bl sub_809C63C pop {r4} pop {r0} bx r0 .align 2, 0 _0809C610: .4byte gUnknown_3001B68 _0809C614: .4byte 0x0000ffff thumb_func_end sub_809C5C4 thumb_func_start sub_809C618 sub_809C618: push {r4,lr} bl sub_809C63C bl nullsub_107 bl nullsub_108 ldr r4, _0809C638 ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _0809C638: .4byte gUnknown_3001B68 thumb_func_end sub_809C618 thumb_func_start sub_809C63C sub_809C63C: push {lr} bl nullsub_108 ldr r0, _0809C654 ldr r0, [r0] movs r1, 0 str r1, [r0, 0x1C] adds r0, 0x20 strb r1, [r0] pop {r0} bx r0 .align 2, 0 _0809C654: .4byte gUnknown_3001B68 thumb_func_end sub_809C63C thumb_func_start sub_809C658 sub_809C658: push {lr} ldr r0, _0809C670 ldr r0, [r0] ldrh r0, [r0, 0xA] cmp r0, 0x5 bhi _0809C6C8 lsls r0, 2 ldr r1, _0809C674 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0809C670: .4byte gUnknown_3001B68 _0809C674: .4byte _0809C678 .align 2, 0 _0809C678: .4byte _0809C6C0 .4byte _0809C6C0 .4byte _0809C6AC .4byte _0809C690 .4byte _0809C69E .4byte _0809C6B6 _0809C690: bl nullsub_111 bl nullsub_112 bl nullsub_113 b _0809C6C8 _0809C69E: bl nullsub_114 bl nullsub_115 bl nullsub_116 b _0809C6C8 _0809C6AC: bl nullsub_109 bl nullsub_110 b _0809C6C8 _0809C6B6: bl nullsub_107 bl nullsub_108 b _0809C6C8 _0809C6C0: bl nullsub_107 bl nullsub_108 _0809C6C8: pop {r0} bx r0 thumb_func_end sub_809C658 thumb_func_start sub_809C6CC sub_809C6CC: push {lr} lsls r0, 16 lsrs r2, r0, 16 ldr r0, _0809C6E8 ldr r1, [r0] ldrh r0, [r1, 0x8] cmp r0, r2 beq _0809C6E2 movs r0, 0 strh r2, [r1, 0x8] strb r0, [r1, 0xE] _0809C6E2: pop {r0} bx r0 .align 2, 0 _0809C6E8: .4byte gUnknown_3001B68 thumb_func_end sub_809C6CC thumb_func_start sub_809C6EC sub_809C6EC: push {lr} bl sub_8098F88 lsls r0, 24 cmp r0, 0 bne _0809C718 ldr r0, _0809C70C ldr r0, [r0] ldrb r0, [r0, 0xC] cmp r0, 0 bne _0809C710 movs r0, 0x4 bl sub_809C6CC b _0809C71E .align 2, 0 _0809C70C: .4byte gUnknown_203B46C _0809C710: movs r0, 0x3 bl sub_809C6CC b _0809C71E _0809C718: movs r0, 0x5 bl sub_809C6CC _0809C71E: pop {r0} bx r0 thumb_func_end sub_809C6EC thumb_func_start sub_809C724 sub_809C724: ldr r0, _0809C72C ldr r0, [r0] ldrh r0, [r0, 0x8] bx lr .align 2, 0 _0809C72C: .4byte gUnknown_3001B68 thumb_func_end sub_809C724 thumb_func_start sub_809C730 sub_809C730: push {lr} bl sub_809C740 lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end sub_809C730 thumb_func_start sub_809C740 sub_809C740: push {lr} ldr r0, _0809C750 ldr r0, [r0] ldr r0, [r0] cmp r0, 0 beq _0809C754 movs r0, 0 b _0809C756 .align 2, 0 _0809C750: .4byte gUnknown_3001B68 _0809C754: movs r0, 0x1 _0809C756: pop {r1} bx r1 thumb_func_end sub_809C740 thumb_func_start nullsub_104 nullsub_104: bx lr thumb_func_end nullsub_104 thumb_func_start sub_809C760 sub_809C760: ldr r0, _0809C76C ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0xE] bx lr .align 2, 0 _0809C76C: .4byte gUnknown_3001B68 thumb_func_end sub_809C760 thumb_func_start sub_809C770 sub_809C770: push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 16 asrs r0, 16 mov r8, r0 lsls r1, 16 asrs r6, r1, 16 ldr r4, _0809C790 ldr r1, [r4] ldrb r0, [r1, 0xE] cmp r0, 0 beq _0809C794 movs r0, 0 strb r0, [r1, 0xE] b _0809CA10 .align 2, 0 _0809C790: .4byte gUnknown_3001B68 _0809C794: ldrh r0, [r1, 0x8] cmp r0, 0 bne _0809C79E bl sub_809C6EC _0809C79E: ldr r0, [r4] ldrb r5, [r0, 0x18] ldrb r7, [r0, 0x19] cmp r6, 0x26 bls _0809C7AA b _0809C8C8 _0809C7AA: lsls r0, r6, 2 ldr r1, _0809C7B4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0809C7B4: .4byte _0809C7B8 .align 2, 0 _0809C7B8: .4byte _0809C868 .4byte _0809C868 .4byte _0809C868 .4byte _0809C868 .4byte _0809C868 .4byte _0809C868 .4byte _0809C868 .4byte _0809C868 .4byte _0809C868 .4byte _0809C854 .4byte _0809C868 .4byte _0809C868 .4byte _0809C8C8 .4byte _0809C8C8 .4byte _0809C8C8 .4byte _0809C8C8 .4byte _0809C8C8 .4byte _0809C8C8 .4byte _0809C8C8 .4byte _0809C8C8 .4byte _0809C8C8 .4byte _0809C8C8 .4byte _0809C8C8 .4byte _0809C8C8 .4byte _0809C8C8 .4byte _0809C8C8 .4byte _0809C8C8 .4byte _0809C8C8 .4byte _0809C8C8 .4byte _0809C8C8 .4byte _0809C8C8 .4byte _0809C8C8 .4byte _0809C8C8 .4byte _0809C8C8 .4byte _0809C8C8 .4byte _0809C86E .4byte _0809C8C4 .4byte _0809C8C4 .4byte _0809C8C4 _0809C854: mov r0, r8 bl sub_8002658 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _0809C864 b _0809CA10 _0809C864: movs r4, 0x1 b _0809C988 _0809C868: movs r4, 0x1 movs r5, 0 b _0809C988 _0809C86E: mov r0, r8 subs r0, 0xA4 lsls r0, 16 asrs r0, 16 cmp r0, 0xD bls _0809C87C b _0809CA10 _0809C87C: lsls r0, 2 ldr r1, _0809C888 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0809C888: .4byte _0809C88C .align 2, 0 _0809C88C: .4byte _0809C8C4 .4byte _0809C8C4 .4byte _0809CA10 .4byte _0809CA10 .4byte _0809C8C4 .4byte _0809C8C4 .4byte _0809C8C4 .4byte _0809CA10 .4byte _0809CA10 .4byte _0809CA10 .4byte _0809C8C4 .4byte _0809C8C4 .4byte _0809C8C4 .4byte _0809C8C4 _0809C8C4: movs r4, 0 b _0809C988 _0809C8C8: adds r0, r6, 0 subs r0, 0xC lsls r0, 16 asrs r0, 16 cmp r0, 0x16 bhi _0809C968 lsls r0, 2 ldr r1, _0809C8E0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0809C8E0: .4byte _0809C8E4 .align 2, 0 _0809C8E4: .4byte _0809C968 .4byte _0809C940 .4byte _0809C968 .4byte _0809C968 .4byte _0809C968 .4byte _0809C968 .4byte _0809C944 .4byte _0809C944 .4byte _0809C948 .4byte _0809C948 .4byte _0809C94C .4byte _0809C968 .4byte _0809C950 .4byte _0809C950 .4byte _0809C954 .4byte _0809C954 .4byte _0809C958 .4byte _0809C958 .4byte _0809C95C .4byte _0809C95C .4byte _0809C960 .4byte _0809C960 .4byte _0809C964 _0809C940: movs r1, 0 b _0809C974 _0809C944: movs r1, 0x7 b _0809C974 _0809C948: movs r1, 0x9 b _0809C974 _0809C94C: movs r1, 0xA b _0809C974 _0809C950: movs r1, 0xB b _0809C974 _0809C954: movs r1, 0xD b _0809C974 _0809C958: movs r1, 0xF b _0809C974 _0809C95C: movs r1, 0x11 b _0809C974 _0809C960: movs r1, 0x13 b _0809C974 _0809C964: movs r1, 0x20 b _0809C974 _0809C968: movs r0, 0 movs r1, 0x13 bl sub_8001658 lsls r0, 16 asrs r1, r0, 16 _0809C974: movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _0809CA10 adds r0, r1, 0 bl sub_80A2740 lsls r0, 24 lsrs r7, r0, 24 movs r4, 0x2 _0809C988: ldr r0, _0809C99C ldr r2, [r0] ldr r1, [r2, 0x10] adds r3, r0, 0 cmp r1, r4 beq _0809C9A0 movs r0, 0x2 str r0, [r2] b _0809C9DE .align 2, 0 _0809C99C: .4byte gUnknown_3001B68 _0809C9A0: cmp r4, 0x1 bne _0809C9CC ldrb r0, [r2, 0x18] cmp r5, r0 bne _0809C9B2 movs r1, 0x14 ldrsh r0, [r2, r1] cmp r0, r8 beq _0809C9BC _0809C9B2: strb r4, [r2, 0xC] ldr r0, [r3] adds r0, 0x20 strb r4, [r0] b _0809C9E8 _0809C9BC: cmp r5, 0 bne _0809C9E8 movs r1, 0x16 ldrsh r0, [r2, r1] cmp r0, r6 beq _0809C9E8 strb r4, [r2, 0xC] b _0809C9E8 _0809C9CC: cmp r4, 0x2 bne _0809C9E8 ldrb r0, [r2, 0x19] cmp r7, r0 bne _0809C9DE movs r1, 0x16 ldrsh r0, [r2, r1] cmp r0, r6 beq _0809C9E8 _0809C9DE: movs r1, 0x1 strb r1, [r2, 0xC] ldr r0, [r3] adds r0, 0x20 strb r1, [r0] _0809C9E8: ldr r1, [r3] ldrb r0, [r1, 0xC] cmp r0, 0 beq _0809CA10 str r4, [r1, 0x10] movs r2, 0 mov r0, r8 strh r0, [r1, 0x14] strh r6, [r1, 0x16] strb r5, [r1, 0x18] ldr r0, [r3] strb r7, [r0, 0x19] ldr r1, [r3] ldrh r0, [r1, 0x8] cmp r0, 0x4 beq _0809CA10 strb r2, [r1, 0xC] ldr r0, [r3] adds r0, 0x20 strb r2, [r0] _0809CA10: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_809C770 thumb_func_start nullsub_105 nullsub_105: bx lr thumb_func_end nullsub_105 thumb_func_start sub_809CA20 sub_809CA20: push {lr} ldr r1, _0809CA74 ldr r2, [r1] ldr r0, [r2] cmp r0, 0 beq _0809CA38 movs r0, 0 str r0, [r2] movs r0, 0x1F str r0, [r2, 0x4] movs r0, 0x1 strb r0, [r2, 0xC] _0809CA38: ldr r1, [r1] ldrb r0, [r1, 0xC] cmp r0, 0 beq _0809CAE8 ldrh r0, [r1, 0x8] strh r0, [r1, 0xA] lsls r0, 16 lsrs r0, 16 cmp r0, 0x4 bne _0809CA5E ldr r2, [r1, 0x10] cmp r2, 0 bne _0809CA5E movs r0, 0x2 strh r0, [r1, 0xA] str r2, [r1, 0x1C] adds r1, 0x20 movs r0, 0 strb r0, [r1] _0809CA5E: ldr r0, _0809CA74 ldr r0, [r0] ldrh r0, [r0, 0xA] cmp r0, 0x5 bhi _0809CADA lsls r0, 2 ldr r1, _0809CA78 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0809CA74: .4byte gUnknown_3001B68 _0809CA78: .4byte _0809CA7C .align 2, 0 _0809CA7C: .4byte _0809CAD2 .4byte _0809CAD2 .4byte _0809CABE .4byte _0809CA94 .4byte _0809CAB0 .4byte _0809CAC8 _0809CA94: bl nullsub_111 bl nullsub_113 bl nullsub_112 ldr r0, _0809CAAC ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0xD] b _0809CADA .align 2, 0 _0809CAAC: .4byte gUnknown_3001B68 _0809CAB0: bl nullsub_114 bl nullsub_115 bl nullsub_116 b _0809CADA _0809CABE: bl nullsub_109 bl nullsub_110 b _0809CADA _0809CAC8: bl nullsub_107 bl nullsub_108 b _0809CADA _0809CAD2: bl nullsub_107 bl nullsub_108 _0809CADA: ldr r0, _0809CAE4 ldr r1, [r0] movs r0, 0 strb r0, [r1, 0xC] b _0809CB1E .align 2, 0 _0809CAE4: .4byte gUnknown_3001B68 _0809CAE8: ldrh r0, [r1, 0xA] cmp r0, 0x5 bhi _0809CB1E lsls r0, 2 ldr r1, _0809CAF8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0809CAF8: .4byte _0809CAFC .align 2, 0 _0809CAFC: .4byte _0809CB1E .4byte _0809CB1E .4byte _0809CB1E .4byte _0809CB14 .4byte _0809CB1A .4byte _0809CB1E _0809CB14: bl nullsub_113 b _0809CB1E _0809CB1A: bl nullsub_116 _0809CB1E: pop {r0} bx r0 thumb_func_end sub_809CA20 thumb_func_start nullsub_106 nullsub_106: bx lr thumb_func_end nullsub_106 thumb_func_start nullsub_107 nullsub_107: bx lr thumb_func_end nullsub_107 thumb_func_start nullsub_108 nullsub_108: bx lr thumb_func_end nullsub_108 thumb_func_start nullsub_109 nullsub_109: bx lr thumb_func_end nullsub_109 thumb_func_start nullsub_110 nullsub_110: bx lr thumb_func_end nullsub_110 thumb_func_start nullsub_111 nullsub_111: bx lr thumb_func_end nullsub_111 thumb_func_start nullsub_112 nullsub_112: bx lr thumb_func_end nullsub_112 thumb_func_start nullsub_113 nullsub_113: bx lr thumb_func_end nullsub_113 thumb_func_start nullsub_114 nullsub_114: bx lr thumb_func_end nullsub_114 thumb_func_start nullsub_115 nullsub_115: bx lr thumb_func_end nullsub_115 thumb_func_start nullsub_116 nullsub_116: bx lr thumb_func_end nullsub_116 thumb_func_start sub_809CB50 sub_809CB50: push {r4,lr} ldr r4, _0809CB70 movs r0, 0xC movs r1, 0x6 bl MemoryAlloc str r0, [r4] movs r1, 0x1 negs r1, r1 str r1, [r0, 0x4] movs r1, 0 str r1, [r0, 0x8] pop {r4} pop {r0} bx r0 .align 2, 0 _0809CB70: .4byte gUnknown_20399E0 thumb_func_end sub_809CB50 thumb_func_start sub_809CB74 sub_809CB74: push {r4,lr} ldr r4, _0809CB88 ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _0809CB88: .4byte gUnknown_20399E0 thumb_func_end sub_809CB74 thumb_func_start sub_809CB8C sub_809CB8C: push {lr} movs r0, 0 movs r1, 0x3B bl sub_80015C0 movs r0, 0 movs r1, 0x3D bl sub_80015C0 pop {r0} bx r0 thumb_func_end sub_809CB8C thumb_func_start sub_809CBA4 sub_809CBA4: push {lr} lsls r0, 24 lsrs r0, 24 bl sub_8091130 cmp r0, 0 bge _0809CBB6 movs r0, 0 b _0809CBB8 _0809CBB6: movs r0, 0x1 _0809CBB8: pop {r1} bx r1 thumb_func_end sub_809CBA4 thumb_func_start sub_809CBBC sub_809CBBC: push {r4-r7,lr} sub sp, 0x54 adds r4, r0, 0 adds r6, r1, 0 adds r5, r2, 0 adds r7, r3, 0 ldrb r1, [r4] cmp r1, 0x69 bne _0809CC20 ldr r1, _0809CC0C movs r0, 0x2 ldrsh r2, [r4, r0] ldr r0, _0809CC10 ldr r0, [r0] movs r3, 0xD2 lsls r3, 4 adds r0, r3 ldr r3, [r0] mov r0, sp bl sub_800D158 ldr r0, _0809CC14 ldr r0, [r0] movs r1, 0x98 lsls r1, 2 adds r2, r0, r1 movs r3, 0x2 ldrsh r1, [r4, r3] ldr r0, [r2] adds r1, r0, r1 ldr r0, _0809CC18 cmp r1, r0 ble _0809CC1C cmp r6, 0 beq _0809CC4E movs r1, 0x1 negs r1, r1 movs r0, 0 adds r2, r6, 0 b _0809CC4A .align 2, 0 _0809CC0C: .4byte gUnknown_81163E4 _0809CC10: .4byte gItemParametersFile + 4 _0809CC14: .4byte gUnknown_203B460 _0809CC18: .4byte 0x0001869f _0809CC1C: str r1, [r2] b _0809CC5E _0809CC20: ldrb r0, [r4, 0x2] lsls r1, 16 lsls r0, 8 orrs r0, r1 str r0, [sp, 0x50] add r4, sp, 0x50 mov r0, sp adds r1, r4, 0 movs r2, 0 bl sub_8090E14 bl sub_8090A34 cmp r0, 0x13 ble _0809CC52 cmp r5, 0 beq _0809CC4E movs r1, 0x1 negs r1, r1 movs r0, 0 adds r2, r5, 0 _0809CC4A: bl sub_809AE90 _0809CC4E: movs r0, 0 b _0809CC82 _0809CC52: ldrb r0, [r4, 0x2] movs r1, 0 bl sub_809124C bl sub_80910B4 _0809CC5E: cmp r7, 0 beq _0809CC80 ldr r0, _0809CC8C mov r1, sp bl strcpy movs r1, 0x1 negs r1, r1 movs r0, 0 adds r2, r7, 0 bl sub_809AE90 movs r1, 0x80 lsls r1, 1 movs r0, 0xCB bl sub_8011974 _0809CC80: movs r0, 0x1 _0809CC82: add sp, 0x54 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0809CC8C: .4byte gUnknown_202DE58 thumb_func_end sub_809CBBC thumb_func_start sub_809CC90 sub_809CC90: push {lr} lsls r0, 2 ldr r1, _0809CCBC adds r1, r0, r1 ldrb r0, [r1] cmp r0, 0x69 bne _0809CCC8 ldr r0, _0809CCC0 ldr r0, [r0] movs r2, 0x98 lsls r2, 2 adds r0, r2 movs r2, 0x2 ldrsh r1, [r1, r2] ldr r0, [r0] adds r0, r1 ldr r1, _0809CCC4 cmp r0, r1 ble _0809CCD4 movs r0, 0x2 b _0809CCD6 .align 2, 0 _0809CCBC: .4byte gUnknown_81163BC _0809CCC0: .4byte gUnknown_203B460 _0809CCC4: .4byte 0x0001869f _0809CCC8: bl sub_8090A34 cmp r0, 0x13 ble _0809CCD4 movs r0, 0x2 b _0809CCD6 _0809CCD4: movs r0, 0x1 _0809CCD6: pop {r1} bx r1 thumb_func_end sub_809CC90 thumb_func_start sub_809CCDC sub_809CCDC: push {r4-r6,lr} adds r6, r0, 0 adds r4, r1, 0 lsls r1, r6, 2 ldr r0, _0809CD20 adds r5, r1, r0 ldr r0, _0809CD24 ldr r1, [r0] movs r0, 0x1 negs r0, r0 str r0, [r1, 0x4] movs r0, 0 str r0, [r1, 0x8] movs r0, 0x2 cmp r4, 0x63 bgt _0809CD04 movs r0, 0 cmp r4, 0x1 ble _0809CD04 movs r0, 0x1 _0809CD04: ldr r1, _0809CD28 ldr r2, _0809CD2C ldr r3, _0809CD30 lsls r0, 2 adds r0, r3 ldr r3, [r0] adds r0, r5, 0 bl sub_809CBBC lsls r0, 24 cmp r0, 0 bne _0809CD34 movs r0, 0x2 b _0809CD3E .align 2, 0 _0809CD20: .4byte gUnknown_81163BC _0809CD24: .4byte gUnknown_20399E0 _0809CD28: .4byte gUnknown_81163F0 _0809CD2C: .4byte gUnknown_811642C _0809CD30: .4byte gUnknown_203B4A0 _0809CD34: ldr r0, _0809CD44 ldr r0, [r0] str r6, [r0, 0x4] str r4, [r0, 0x8] movs r0, 0x1 _0809CD3E: pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0809CD44: .4byte gUnknown_20399E0 thumb_func_end sub_809CCDC thumb_func_start sub_809CD48 sub_809CD48: push {lr} bl sub_809A750 lsls r0, 24 cmp r0, 0 bne _0809CD58 movs r0, 0x3 b _0809CD5A _0809CD58: movs r0, 0 _0809CD5A: pop {r1} bx r1 thumb_func_end sub_809CD48 thumb_func_start nullsub_117 nullsub_117: bx lr thumb_func_end nullsub_117 thumb_func_start nullsub_118 nullsub_118: bx lr thumb_func_end nullsub_118 thumb_func_start sub_809CD68 sub_809CD68: movs r2, 0 str r2, [r0] str r2, [r0, 0x4] movs r1, 0x1 negs r1, r1 str r1, [r0, 0x10] str r2, [r0, 0x14] str r2, [r0, 0x8] strb r2, [r0, 0x18] bx lr thumb_func_end sub_809CD68 thumb_func_start sub_809CD7C sub_809CD7C: movs r2, 0 str r2, [r0] movs r1, 0x1 negs r1, r1 str r1, [r0, 0x10] str r2, [r0, 0x14] str r2, [r0, 0x8] bx lr thumb_func_end sub_809CD7C thumb_func_start sub_809CD8C sub_809CD8C: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 cmp r4, 0x5 bne _0809CD9E bl sub_809CD68 str r4, [r5] b _0809CDB0 _0809CD9E: ldr r0, [r5, 0x4] cmp r0, r4 beq _0809CDB0 str r4, [r5, 0x4] movs r0, 0x1 negs r0, r0 str r0, [r5, 0x10] movs r0, 0 str r0, [r5, 0x14] _0809CDB0: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_809CD8C thumb_func_start sub_809CDB8 sub_809CDB8: push {lr} adds r1, r0, 0 ldr r0, [r1, 0x4] cmp r0, 0 bne _0809CDC4 ldr r0, [r1] _0809CDC4: pop {r1} bx r1 thumb_func_end sub_809CDB8 thumb_func_start sub_809CDC8 sub_809CDC8: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 adds r4, r0, 0 adds r6, r1, 0 adds r7, r2, 0 ldr r1, [sp, 0x24] movs r0, 0x1 negs r0, r0 str r0, [r3] ldr r0, [r4] cmp r0, 0x1 beq _0809CDEA cmp r0, 0x2 beq _0809CDFE b _0809CE12 _0809CDEA: movs r0, 0x80 lsls r0, 6 ands r1, r0 cmp r1, 0 beq _0809CE12 adds r0, r4, 0 bl sub_809CD68 movs r0, 0x2 b _0809CE10 _0809CDFE: movs r0, 0x80 lsls r0, 6 ands r1, r0 cmp r1, 0 bne _0809CE12 adds r0, r4, 0 bl sub_809CD68 movs r0, 0x1 _0809CE10: str r0, [r4] _0809CE12: ldr r0, [r4, 0x4] mov r8, r0 cmp r0, 0 bne _0809CE1E ldr r1, [r4] mov r8, r1 _0809CE1E: mov r0, r8 subs r0, 0x1 cmp r0, 0x6 bls _0809CE28 b _0809CFCC _0809CE28: lsls r0, 2 ldr r1, _0809CE34 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0809CE34: .4byte _0809CE38 .align 2, 0 _0809CE38: .4byte _0809CE54 .4byte _0809CF74 .4byte _0809CFCC .4byte _0809CFCC .4byte _0809CECC .4byte _0809CF5C .4byte _0809CF5C _0809CE54: ldr r0, _0809CE70 ldrh r2, [r0] ldrh r1, [r0, 0x2] movs r0, 0xF0 ands r0, r2 cmp r0, 0 beq _0809CE74 movs r0, 0x2 ands r0, r2 cmp r0, 0 beq _0809CEA4 movs r0, 0 b _0809CEA8 .align 2, 0 _0809CE70: .4byte gUnknown_20255F0 _0809CE74: movs r3, 0x2 adds r0, r1, 0 ands r0, r3 cmp r0, 0 beq _0809CE82 movs r0, 0x14 b _0809CEA8 _0809CE82: ldr r0, [r4, 0x10] cmp r0, 0x1 ble _0809CEA4 subs r0, 0x1 str r0, [r4, 0x10] adds r0, r2, 0 ands r0, r3 cmp r0, 0 bne _0809CEAA movs r0, 0x13 str r0, [r6] movs r1, 0x1 negs r1, r1 adds r0, r1, 0 strb r0, [r7] movs r0, 0x5 b _0809CFDA _0809CEA4: movs r0, 0x1 negs r0, r0 _0809CEA8: str r0, [r4, 0x10] _0809CEAA: movs r0, 0x1 ands r1, r0 cmp r1, 0 beq _0809CEB6 movs r0, 0xA b _0809CEC2 _0809CEB6: ldr r0, [r4, 0x10] cmp r0, 0 bne _0809CEC0 movs r0, 0x8 b _0809CEC2 _0809CEC0: movs r0, 0x7 _0809CEC2: str r0, [r6] adds r0, r2, 0 bl sub_809CFE8 b _0809CF4E _0809CECC: mov r0, sp bl sub_809B260 lsls r0, 24 cmp r0, 0 beq _0809CFCC ldr r0, _0809CEEC ldr r0, [r0] ldrb r0, [r0, 0xC] cmp r0, 0 bne _0809CEF0 movs r0, 0x4 bl sub_809C6CC b _0809CEF6 .align 2, 0 _0809CEEC: .4byte gUnknown_203B46C _0809CEF0: movs r0, 0x3 bl sub_809C6CC _0809CEF6: bl nullsub_104 adds r0, r4, 0 bl sub_809CD7C movs r5, 0x1 str r5, [r4] ldr r0, [sp] cmp r0, 0x2 beq _0809CF1E cmp r0, 0x2 bgt _0809CF14 cmp r0, 0x1 beq _0809CF2A b _0809CF54 _0809CF14: cmp r0, 0x3 beq _0809CF2A cmp r0, 0x4 beq _0809CF3C b _0809CF54 _0809CF1E: movs r0, 0x4 str r0, [r4] movs r0, 0x1E bl sub_8098D80 b _0809CF46 _0809CF2A: movs r0, 0x4 str r0, [r4] str r5, [r6] movs r1, 0x1 negs r1, r1 adds r0, r1, 0 strb r0, [r7] movs r0, 0x4 b _0809CFDA _0809CF3C: str r0, [r4] movs r0, 0x45 movs r1, 0 bl GroundMap_ExecuteEvent _0809CF46: str r5, [r6] movs r1, 0x1 negs r1, r1 adds r0, r1, 0 _0809CF4E: strb r0, [r7] ldr r0, [r4] b _0809CFDA _0809CF54: movs r0, 0x2 bl sub_809D9B8 b _0809CFCC _0809CF5C: add r0, sp, 0x4 bl sub_809B260 lsls r0, 24 cmp r0, 0 beq _0809CFCC adds r0, r4, 0 bl sub_809CD7C movs r0, 0x1 str r0, [r4] b _0809CFDA _0809CF74: ldr r0, [r4, 0x8] cmp r0, 0 ble _0809CF86 subs r0, 0x1 str r0, [r4, 0x8] movs r0, 0x9 str r0, [r6] ldrb r0, [r4, 0xC] b _0809CFD6 _0809CF86: ldr r0, _0809CFA0 ldrh r1, [r0] movs r0, 0x9 str r0, [r6] movs r0, 0x40 ands r0, r1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0 beq _0809CFA4 movs r0, 0x4 b _0809CFB6 .align 2, 0 _0809CFA0: .4byte gUnknown_20255F0 _0809CFA4: movs r0, 0x80 ands r1, r0 cmp r1, 0 beq _0809CFB0 strb r2, [r7] b _0809CFB8 _0809CFB0: movs r1, 0x1 negs r1, r1 adds r0, r1, 0 _0809CFB6: strb r0, [r7] _0809CFB8: ldrb r0, [r7] strb r0, [r4, 0xC] lsls r0, 24 movs r1, 0xFF lsls r1, 24 cmp r0, r1 beq _0809CFD8 movs r0, 0x20 str r0, [r4, 0x8] b _0809CFD8 _0809CFCC: movs r0, 0 str r0, [r6] movs r1, 0x1 negs r1, r1 adds r0, r1, 0 _0809CFD6: strb r0, [r7] _0809CFD8: mov r0, r8 _0809CFDA: add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_809CDC8 thumb_func_start sub_809CFE8 sub_809CFE8: push {lr} lsls r0, 16 lsrs r1, r0, 16 adds r2, r1, 0 movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0809D014 movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _0809D004 movs r0, 0x3 b _0809D052 _0809D004: movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _0809D010 movs r0, 0x5 b _0809D052 _0809D010: movs r0, 0x4 b _0809D052 _0809D014: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0809D038 movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _0809D028 movs r0, 0x1 b _0809D052 _0809D028: movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _0809D034 movs r0, 0x7 b _0809D052 _0809D034: movs r0, 0 b _0809D052 _0809D038: movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _0809D044 movs r0, 0x2 b _0809D052 _0809D044: movs r0, 0x20 ands r2, r0 cmp r2, 0 bne _0809D050 subs r0, 0x21 b _0809D052 _0809D050: movs r0, 0x6 _0809D052: pop {r1} bx r1 thumb_func_end sub_809CFE8 thumb_func_start sub_809D058 sub_809D058: push {lr} ldr r1, [r0, 0x4] cmp r1, 0x3F bgt _0809D076 ldr r0, [r0] cmp r0, 0x67 bgt _0809D06A movs r0, 0x5 b _0809D0A6 _0809D06A: cmp r0, 0x88 ble _0809D072 movs r0, 0x3 b _0809D0A6 _0809D072: movs r0, 0x4 b _0809D0A6 _0809D076: cmp r1, 0x60 ble _0809D090 ldr r0, [r0] cmp r0, 0x67 bgt _0809D084 movs r0, 0x7 b _0809D0A6 _0809D084: cmp r0, 0x88 ble _0809D08C movs r0, 0x1 b _0809D0A6 _0809D08C: movs r0, 0 b _0809D0A6 _0809D090: ldr r0, [r0] cmp r0, 0x67 bgt _0809D09A movs r0, 0x6 b _0809D0A6 _0809D09A: cmp r0, 0x88 bgt _0809D0A4 movs r0, 0x1 negs r0, r0 b _0809D0A6 _0809D0A4: movs r0, 0x2 _0809D0A6: pop {r1} bx r1 thumb_func_end sub_809D058 thumb_func_start sub_809D0AC sub_809D0AC: push {lr} bl sub_809D0BC pop {r0} bx r0 thumb_func_end sub_809D0AC thumb_func_start nullsub_119 nullsub_119: bx lr thumb_func_end nullsub_119 thumb_func_start sub_809D0BC sub_809D0BC: push {r4,r5,lr} ldr r5, _0809D0F8 ldr r1, _0809D0FC ldr r2, [r1] ldr r3, [r1, 0x4] str r2, [r5, 0x3C] str r3, [r5, 0x40] adds r0, r5, 0 adds r0, 0x44 movs r4, 0 strb r4, [r0] movs r0, 0 bl sub_809D158 str r4, [r5, 0x8] str r4, [r5, 0xC] str r4, [r5, 0x10] movs r0, 0x1 negs r0, r0 str r0, [r5, 0x4] str r4, [r5, 0x24] str r4, [r5, 0x28] str r4, [r5, 0x2C] str r4, [r5, 0x30] str r4, [r5, 0x34] str r4, [r5, 0x38] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0809D0F8: .4byte gUnknown_20399E8 _0809D0FC: .4byte gUnknown_8116478 thumb_func_end sub_809D0BC thumb_func_start sub_809D100 sub_809D100: push {lr} adds r2, r0, 0 ldr r1, _0809D120 ldr r0, [r1, 0x24] cmp r0, r2 beq _0809D11A str r2, [r1, 0x24] movs r0, 0 str r0, [r1, 0x28] str r0, [r1, 0x2C] str r0, [r1, 0x30] str r0, [r1, 0x34] str r0, [r1, 0x38] _0809D11A: pop {r0} bx r0 .align 2, 0 _0809D120: .4byte gUnknown_20399E8 thumb_func_end sub_809D100 thumb_func_start sub_809D124 sub_809D124: push {r4,lr} adds r4, r0, 0 ldr r3, _0809D144 ldr r0, [r3, 0x24] cmp r0, r4 beq _0809D13A str r4, [r3, 0x24] movs r0, 0 str r0, [r3, 0x30] str r0, [r3, 0x34] str r0, [r3, 0x38] _0809D13A: str r1, [r3, 0x28] str r2, [r3, 0x2C] pop {r4} pop {r0} bx r0 .align 2, 0 _0809D144: .4byte gUnknown_20399E8 thumb_func_end sub_809D124 thumb_func_start sub_809D148 sub_809D148: ldr r1, _0809D154 str r0, [r1] movs r0, 0 str r0, [r1, 0x8] bx lr .align 2, 0 _0809D154: .4byte gUnknown_20399E8 thumb_func_end sub_809D148 thumb_func_start sub_809D158 sub_809D158: ldr r2, _0809D16C str r0, [r2] movs r0, 0 str r0, [r2, 0x8] ldr r0, [r1] ldr r1, [r1, 0x4] str r0, [r2, 0x1C] str r1, [r2, 0x20] bx lr .align 2, 0 _0809D16C: .4byte gUnknown_20399E8 thumb_func_end sub_809D158 thumb_func_start sub_809D170 sub_809D170: ldr r2, _0809D17C str r0, [r2] movs r0, 0 str r0, [r2, 0x8] str r1, [r2, 0x4] bx lr .align 2, 0 _0809D17C: .4byte gUnknown_20399E8 thumb_func_end sub_809D170 thumb_func_start sub_809D180 sub_809D180: ldr r2, _0809D18C str r0, [r2] movs r0, 0x1 str r0, [r2, 0x8] str r1, [r2, 0xC] bx lr .align 2, 0 _0809D18C: .4byte gUnknown_20399E8 thumb_func_end sub_809D180 thumb_func_start sub_809D190 sub_809D190: ldr r3, _0809D1A4 str r0, [r3] movs r0, 0x1 str r0, [r3, 0x8] str r2, [r3, 0xC] ldr r0, [r1] ldr r1, [r1, 0x4] str r0, [r3, 0x14] str r1, [r3, 0x18] bx lr .align 2, 0 _0809D1A4: .4byte gUnknown_20399E8 thumb_func_end sub_809D190 thumb_func_start sub_809D1A8 sub_809D1A8: ldr r3, _0809D1B8 str r0, [r3] movs r0, 0x1 str r0, [r3, 0x8] str r2, [r3, 0xC] str r1, [r3, 0x4] bx lr .align 2, 0 _0809D1B8: .4byte gUnknown_20399E8 thumb_func_end sub_809D1A8 thumb_func_start sub_809D1BC sub_809D1BC: ldr r2, _0809D1C8 str r0, [r2] movs r0, 0x2 str r0, [r2, 0x8] str r1, [r2, 0x10] bx lr .align 2, 0 _0809D1C8: .4byte gUnknown_20399E8 thumb_func_end sub_809D1BC thumb_func_start sub_809D1CC sub_809D1CC: ldr r3, _0809D1E0 str r0, [r3] movs r0, 0x2 str r0, [r3, 0x8] str r2, [r3, 0x10] ldr r0, [r1] ldr r1, [r1, 0x4] str r0, [r3, 0x14] str r1, [r3, 0x18] bx lr .align 2, 0 _0809D1E0: .4byte gUnknown_20399E8 thumb_func_end sub_809D1CC thumb_func_start sub_809D1E4 sub_809D1E4: ldr r3, _0809D1F4 str r0, [r3] movs r0, 0x2 str r0, [r3, 0x8] str r2, [r3, 0x10] str r1, [r3, 0x4] bx lr .align 2, 0 _0809D1F4: .4byte gUnknown_20399E8 thumb_func_end sub_809D1E4 thumb_func_start sub_809D1F8 sub_809D1F8: ldr r2, _0809D204 str r0, [r2] movs r0, 0x3 str r0, [r2, 0x8] str r1, [r2, 0xC] bx lr .align 2, 0 _0809D204: .4byte gUnknown_20399E8 thumb_func_end sub_809D1F8 thumb_func_start sub_809D208 sub_809D208: ldr r3, _0809D21C str r0, [r3] movs r0, 0x3 str r0, [r3, 0x8] str r2, [r3, 0xC] ldr r0, [r1] ldr r1, [r1, 0x4] str r0, [r3, 0x14] str r1, [r3, 0x18] bx lr .align 2, 0 _0809D21C: .4byte gUnknown_20399E8 thumb_func_end sub_809D208 thumb_func_start sub_809D220 sub_809D220: ldr r3, _0809D230 str r0, [r3] movs r0, 0x3 str r0, [r3, 0x8] str r2, [r3, 0xC] str r1, [r3, 0x4] bx lr .align 2, 0 _0809D230: .4byte gUnknown_20399E8 thumb_func_end sub_809D220 thumb_func_start sub_809D234 sub_809D234: push {lr} ldr r0, _0809D244 ldr r0, [r0, 0x8] cmp r0, 0 beq _0809D240 movs r0, 0x1 _0809D240: pop {r1} bx r1 .align 2, 0 _0809D244: .4byte gUnknown_20399E8 thumb_func_end sub_809D234 thumb_func_start sub_809D248 sub_809D248: ldr r3, _0809D258 ldr r1, [r3, 0x3C] ldr r2, [r3, 0x40] str r1, [r0] str r2, [r0, 0x4] adds r3, 0x44 ldrb r0, [r3] bx lr .align 2, 0 _0809D258: .4byte gUnknown_20399E8 thumb_func_end sub_809D248 thumb_func_start sub_809D25C sub_809D25C: push {r4-r6,lr} sub sp, 0x24 ldr r4, _0809D274 ldr r0, [r4] cmp r0, 0x2 beq _0809D28C cmp r0, 0x2 bhi _0809D278 cmp r0, 0x1 beq _0809D27E b _0809D2B2 .align 2, 0 _0809D274: .4byte gUnknown_20399E8 _0809D278: cmp r0, 0x3 beq _0809D29A b _0809D2B2 _0809D27E: movs r1, 0x4 ldrsh r0, [r4, r1] adds r1, r4, 0 adds r1, 0x1C bl sub_80A8FD8 b _0809D2A6 _0809D28C: movs r1, 0x4 ldrsh r0, [r4, r1] adds r1, r4, 0 adds r1, 0x1C bl sub_80AC448 b _0809D2A6 _0809D29A: movs r1, 0x4 ldrsh r0, [r4, r1] adds r1, r4, 0 adds r1, 0x1C bl sub_80AD360 _0809D2A6: lsls r0, 16 ldr r1, _0809D2C4 cmp r0, r1 bne _0809D2B2 movs r0, 0 str r0, [r4] _0809D2B2: ldr r4, _0809D2C8 ldr r0, [r4, 0x8] cmp r0, 0x2 beq _0809D356 cmp r0, 0x2 bhi _0809D2CC cmp r0, 0x1 beq _0809D2D2 b _0809D388 .align 2, 0 _0809D2C4: .4byte 0xffff0000 _0809D2C8: .4byte gUnknown_20399E8 _0809D2CC: cmp r0, 0x3 beq _0809D314 b _0809D388 _0809D2D2: ldr r0, [r4, 0x1C] ldr r1, [r4, 0x14] subs r0, r1 str r0, [sp, 0x4] ldr r0, [r4, 0x20] ldr r1, [r4, 0x18] subs r0, r1 str r0, [sp, 0x8] ldr r1, [r4, 0xC] add r0, sp, 0x4 bl sub_800290C ldr r0, [sp, 0x4] cmp r0, 0 bne _0809D2FA ldr r0, [sp, 0x8] cmp r0, 0 bne _0809D2FA str r0, [r4, 0x8] b _0809D392 _0809D2FA: ldr r2, _0809D310 ldr r0, [r2, 0x14] ldr r1, [sp, 0x4] adds r0, r1 str r0, [r2, 0x14] ldr r0, [r2, 0x18] ldr r1, [sp, 0x8] adds r0, r1 str r0, [r2, 0x18] b _0809D392 .align 2, 0 _0809D310: .4byte gUnknown_20399E8 _0809D314: ldr r1, [r4, 0x1C] ldr r0, [r4, 0x14] subs r0, r1, r0 cmp r0, 0 bge _0809D320 adds r0, 0xFF _0809D320: asrs r2, r0, 8 ldr r1, [r4, 0x20] ldr r0, [r4, 0x18] subs r1, r0 cmp r1, 0 bge _0809D32E adds r1, 0xFF _0809D32E: asrs r1, 8 lsls r0, r2, 8 lsls r1, 8 bl sub_8009FB8 cmp r0, 0 bge _0809D33E adds r0, 0xFF _0809D33E: asrs r0, 8 lsls r0, 8 ldr r1, [r4, 0xC] bl __divsi3 str r0, [r4, 0x10] cmp r0, 0 bgt _0809D352 movs r0, 0x1 str r0, [r4, 0x10] _0809D352: movs r0, 0x2 str r0, [r4, 0x8] _0809D356: add r0, sp, 0xC ldr r1, _0809D384 adds r2, r1, 0 adds r2, 0x8 adds r5, r1, 0 subs r5, 0x14 ldr r3, [r5, 0x10] movs r4, 0x1 str r4, [sp] bl sub_8002934 ldr r0, [sp, 0xC] ldr r1, [sp, 0x10] str r0, [r5, 0x14] str r1, [r5, 0x18] ldr r0, [r5, 0x10] subs r0, 0x1 str r0, [r5, 0x10] cmp r0, 0 bgt _0809D392 movs r0, 0 str r0, [r5, 0x8] b _0809D392 .align 2, 0 _0809D384: .4byte gUnknown_20399FC _0809D388: ldr r2, _0809D3A4 ldr r0, [r2, 0x1C] ldr r1, [r2, 0x20] str r0, [r2, 0x14] str r1, [r2, 0x18] _0809D392: ldr r5, _0809D3A4 ldr r0, [r5, 0x24] cmp r0, 0x1 beq _0809D3A8 cmp r0, 0x2 beq _0809D3D2 movs r0, 0 str r0, [r5, 0x34] b _0809D402 .align 2, 0 _0809D3A4: .4byte gUnknown_20399E8 _0809D3A8: ldr r0, [r5, 0x30] subs r0, 0x1 str r0, [r5, 0x30] cmp r0, 0 bgt _0809D404 movs r0, 0x4 str r0, [r5, 0x30] movs r4, 0x2 negs r4, r4 adds r0, r4, 0 movs r1, 0x2 bl OtherRandomRange lsls r0, 10 str r0, [r5, 0x34] adds r0, r4, 0 movs r1, 0x2 bl OtherRandomRange lsls r0, 10 b _0809D402 _0809D3D2: ldr r0, [r5, 0x30] subs r0, 0x1 str r0, [r5, 0x30] cmp r0, 0 bgt _0809D404 ldr r0, [r5, 0x2C] str r0, [r5, 0x30] movs r4, 0x2 negs r4, r4 adds r0, r4, 0 movs r1, 0x2 bl OtherRandomRange ldr r1, [r5, 0x28] muls r0, r1 lsls r0, 8 str r0, [r5, 0x34] adds r0, r4, 0 movs r1, 0x2 bl OtherRandomRange ldr r1, [r5, 0x28] muls r0, r1 lsls r0, 8 _0809D402: str r0, [r5, 0x38] _0809D404: add r5, sp, 0x14 add r6, sp, 0x1C adds r0, r5, 0 adds r1, r6, 0 bl sub_80A579C lsls r0, 24 cmp r0, 0 beq _0809D474 ldr r4, _0809D47C ldr r0, [r4, 0x14] ldr r1, [r4, 0x34] adds r0, r1 adds r2, r0, 0 subs r2, 0x80 ldr r0, [r4, 0x18] ldr r1, [r4, 0x38] adds r0, r1 ldr r1, _0809D480 adds r3, r0, r1 ldr r0, [sp, 0x14] cmp r2, r0 bge _0809D434 adds r2, r0, 0 _0809D434: ldr r0, [sp, 0x1C] cmp r2, r0 blt _0809D43C subs r2, r0, 0x1 _0809D43C: ldr r0, [r5, 0x4] cmp r3, r0 bge _0809D444 adds r3, r0, 0 _0809D444: ldr r1, [r6, 0x4] cmp r3, r1 blt _0809D44C subs r3, r1, 0x1 _0809D44C: ldr r1, _0809D484 adds r0, r2, r1 cmp r0, 0 bge _0809D458 adds r1, 0xFF adds r0, r2, r1 _0809D458: asrs r0, 8 str r0, [r4, 0x3C] ldr r1, _0809D488 adds r0, r3, r1 cmp r0, 0 bge _0809D468 adds r1, 0xFF adds r0, r3, r1 _0809D468: asrs r0, 8 str r0, [r4, 0x40] adds r1, r4, 0 adds r1, 0x44 movs r0, 0x1 strb r0, [r1] _0809D474: add sp, 0x24 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0809D47C: .4byte gUnknown_20399E8 _0809D480: .4byte 0xfffff480 _0809D484: .4byte 0xffff8700 _0809D488: .4byte 0xffffb000 thumb_func_end sub_809D25C thumb_func_start nullsub_120 nullsub_120: bx lr thumb_func_end nullsub_120 thumb_func_start sub_809D490 sub_809D490: push {r4,lr} ldr r4, _0809D4AC movs r0, 0x80 lsls r0, 3 movs r1, 0x6 bl MemoryAlloc str r0, [r4] bl sub_809D4B0 pop {r4} pop {r0} bx r0 .align 2, 0 _0809D4AC: .4byte gUnknown_203B4B0 thumb_func_end sub_809D490 thumb_func_start sub_809D4B0 sub_809D4B0: push {r4,r5,lr} ldr r0, _0809D4EC movs r2, 0x1 negs r2, r2 adds r1, r2, 0 strh r1, [r0] ldr r0, _0809D4F0 strh r1, [r0] ldr r0, _0809D4F4 strh r1, [r0] ldr r1, _0809D4F8 movs r0, 0 strb r0, [r1] movs r1, 0 ldr r5, _0809D4FC movs r2, 0 ldr r3, _0809D500 ldr r4, _0809D504 _0809D4D4: adds r0, r1, r5 strb r2, [r0] adds r0, r1, r3 strb r2, [r0] stm r4!, {r2} adds r1, 0x1 cmp r1, 0x80 ble _0809D4D4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0809D4EC: .4byte gUnknown_2039A30 _0809D4F0: .4byte gUnknown_2039A32 _0809D4F4: .4byte gUnknown_2039A34 _0809D4F8: .4byte gUnknown_2039A36 _0809D4FC: .4byte gUnknown_2039A38 _0809D500: .4byte gUnknown_2039AC0 _0809D504: .4byte gUnknown_2039B48 thumb_func_end sub_809D4B0 thumb_func_start sub_809D508 sub_809D508: push {r4,lr} ldr r4, _0809D51C ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _0809D51C: .4byte gUnknown_203B4B0 thumb_func_end sub_809D508 thumb_func_start sub_809D520 sub_809D520: ldr r1, _0809D528 strh r1, [r0] bx lr .align 2, 0 _0809D528: .4byte 0x0000ffff thumb_func_end sub_809D520 thumb_func_start sub_809D52C sub_809D52C: push {lr} movs r2, 0 ldrsh r1, [r0, r2] cmp r1, 0x1 beq _0809D544 cmp r1, 0x1 ble _0809D562 cmp r1, 0x2 beq _0809D54E cmp r1, 0x3 beq _0809D558 b _0809D562 _0809D544: movs r1, 0x2 ldrsh r0, [r0, r1] bl sub_80A882C b _0809D564 _0809D54E: movs r2, 0x2 ldrsh r0, [r0, r2] bl sub_80AC240 b _0809D564 _0809D558: movs r1, 0x2 ldrsh r0, [r0, r1] bl sub_80AD158 b _0809D564 _0809D562: movs r0, 0 _0809D564: pop {r1} bx r1 thumb_func_end sub_809D52C thumb_func_start sub_809D568 sub_809D568: push {lr} adds r3, r0, 0 ldr r0, _0809D5B4 strh r0, [r3] movs r2, 0 movs r0, 0 strh r0, [r3, 0x2] str r0, [r3, 0x8] str r0, [r3, 0x4] str r0, [r3, 0x14] str r0, [r3, 0x10] adds r1, r3, 0 adds r1, 0x20 strb r2, [r1] str r0, [r3, 0x1C] movs r1, 0x1 negs r1, r1 strh r1, [r3, 0x22] strh r0, [r3, 0x24] adds r2, r3, 0 adds r2, 0x26 movs r1, 0xFF strb r1, [r2] strh r0, [r3, 0x28] strh r0, [r3, 0x2A] strh r0, [r3, 0x2C] str r0, [r3, 0x30] movs r2, 0 movs r1, 0x3 adds r0, r3, 0 adds r0, 0x5C _0809D5A6: str r2, [r0] subs r0, 0x4 subs r1, 0x1 cmp r1, 0 bge _0809D5A6 pop {r0} bx r0 .align 2, 0 _0809D5B4: .4byte 0x0000ffff thumb_func_end sub_809D568 thumb_func_start sub_809D5B8 sub_809D5B8: push {r4,lr} adds r4, r0, 0 movs r0, 0 str r0, [r4] str r0, [r4, 0x4] ldr r0, _0809D5FC strh r0, [r4, 0x10] movs r0, 0xFF strb r0, [r4, 0x12] adds r0, r4, 0 adds r0, 0xC bl sub_809D520 movs r2, 0 movs r1, 0x3 adds r0, r4, 0 adds r0, 0x20 _0809D5DA: str r2, [r0] subs r0, 0x4 subs r1, 0x1 cmp r1, 0 bge _0809D5DA adds r0, r4, 0 adds r0, 0x24 bl sub_809D568 adds r0, r4, 0 adds r0, 0x84 bl sub_809D568 pop {r4} pop {r0} bx r0 .align 2, 0 _0809D5FC: .4byte 0x0000ffff thumb_func_end sub_809D5B8 thumb_func_start sub_809D600 sub_809D600: push {r4-r7,lr} mov r7, r8 push {r7} adds r7, r0, 0 adds r6, r1, 0 mov r8, r2 adds r4, r3, 0 ldr r5, [sp, 0x18] lsls r4, 16 asrs r4, 16 lsls r5, 24 asrs r5, 24 bl sub_809D5B8 str r6, [r7] mov r0, r8 str r0, [r7, 0x4] strh r4, [r7, 0x10] strb r5, [r7, 0x12] ldrh r0, [r6] strh r0, [r7, 0x8] ldr r1, [r6, 0x4] cmp r1, 0 beq _0809D63A mov r0, r8 bl _call_via_r1 strh r0, [r7, 0xA] b _0809D63C _0809D63A: strh r1, [r7, 0xA] _0809D63C: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_809D600 thumb_func_start sub_809D648 sub_809D648: push {lr} bl sub_809D5B8 pop {r0} bx r0 thumb_func_end sub_809D648 thumb_func_start sub_809D654 sub_809D654: movs r1, 0x26 ldrsh r0, [r0, r1] bx lr thumb_func_end sub_809D654 thumb_func_start sub_809D65C sub_809D65C: push {lr} adds r1, r0, 0 movs r2, 0x26 ldrsh r0, [r1, r2] cmp r0, 0 bne _0809D66E movs r0, 0x1 negs r0, r0 b _0809D672 _0809D66E: movs r2, 0x24 ldrsh r0, [r1, r2] _0809D672: pop {r1} bx r1 thumb_func_end sub_809D65C thumb_func_start sub_809D678 sub_809D678: movs r2, 0x26 ldrsh r1, [r0, r2] negs r0, r1 orrs r0, r1 lsrs r0, 31 bx lr thumb_func_end sub_809D678 thumb_func_start sub_809D684 sub_809D684: push {lr} adds r2, r0, 0 adds r3, r1, 0 movs r1, 0x26 ldrsh r0, [r2, r1] cmp r0, 0 beq _0809D6A4 ldr r0, [r2, 0x34] cmp r0, 0 beq _0809D69C ldr r1, [r2, 0x38] b _0809D69E _0809D69C: ldr r1, [r2, 0x2C] _0809D69E: ldr r0, [r3] cmp r1, r0 beq _0809D6CC _0809D6A4: adds r0, r2, 0 adds r0, 0x86 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 beq _0809D6D0 adds r0, r2, 0 adds r0, 0x94 ldr r0, [r0] cmp r0, 0 beq _0809D6C0 adds r0, r2, 0 adds r0, 0x98 b _0809D6C4 _0809D6C0: adds r0, r2, 0 adds r0, 0x8C _0809D6C4: ldr r1, [r0] ldr r0, [r3] cmp r1, r0 bne _0809D6D0 _0809D6CC: movs r0, 0x1 b _0809D6D2 _0809D6D0: movs r0, 0 _0809D6D2: pop {r1} bx r1 thumb_func_end sub_809D684 thumb_func_start sub_809D6D8 sub_809D6D8: lsls r1, 16 asrs r1, 14 adds r0, 0x14 adds r0, r1 str r2, [r0] bx lr thumb_func_end sub_809D6D8 thumb_func_start sub_809D6E4 sub_809D6E4: push {r4,lr} lsls r2, 16 asrs r2, 16 lsls r4, r2, 2 adds r3, r0, 0 adds r3, 0x14 adds r3, r4 ldr r3, [r3] str r3, [r1] strh r2, [r1, 0x4] ldrh r2, [r0, 0x10] strh r2, [r1, 0x6] ldrb r0, [r0, 0x12] strb r0, [r1, 0x8] adds r0, r3, 0 cmp r0, 0 beq _0809D708 movs r0, 0x1 _0809D708: pop {r4} pop {r1} bx r1 thumb_func_end sub_809D6E4 thumb_func_start sub_809D710 sub_809D710: push {r4,lr} adds r4, r0, 0 adds r3, r1, 0 lsls r2, 16 asrs r2, 16 ldr r1, _0809D73C lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r1, 0x8 adds r0, r1 ldr r0, [r0] str r0, [r3] movs r0, 0x2 strh r0, [r3, 0x4] cmp r4, 0 beq _0809D740 ldrh r0, [r4, 0x10] strh r0, [r3, 0x6] ldrb r0, [r4, 0x12] b _0809D746 .align 2, 0 _0809D73C: .4byte gUnknown_812F1F8 _0809D740: ldr r0, _0809D750 strh r0, [r3, 0x6] movs r0, 0xFF _0809D746: strb r0, [r3, 0x8] pop {r4} pop {r0} bx r0 .align 2, 0 _0809D750: .4byte 0x0000ffff thumb_func_end sub_809D710 thumb_func_start sub_809D754 sub_809D754: push {r4,lr} adds r4, r0, 0 adds r0, 0x24 bl sub_809D568 adds r4, 0x84 adds r0, r4, 0 bl sub_809D568 movs r0, 0x1 pop {r4} pop {r1} bx r1 thumb_func_end sub_809D754 thumb_func_start sub_809D770 sub_809D770: push {r4,lr} adds r4, r0, 0 adds r0, 0x24 bl sub_809D568 adds r0, r4, 0 adds r0, 0x84 bl sub_809D568 movs r0, 0x4 strh r0, [r4, 0x26] movs r0, 0x1 pop {r4} pop {r1} bx r1 thumb_func_end sub_809D770 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 sub_8011940 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 sub_80920EC _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 sub_80922F4 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 gUnknown_812F1F8 _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 gUnknown_812F1F8 _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 sub_80118F0 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 sub_8011900 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 sub_8011930 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 sub_8001BB4 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 sub_8001BB4 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 sub_8091130 cmp r0, 0 bge _080A0E4E bl _0809EAE0 _080A0E4E: bl sub_80911F8 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 gUnknown_812F1F8 _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 gUnknown_812F1F8 _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 .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 gUnknown_813237C _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 gUnknown_20255F0 _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 sub_808DB48 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: movs r0, 0xC bl sub_80925EC movs r0, 0x12 bl sub_80925EC 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 sub_808DBA8 lsls r0, 24 lsrs r0, 24 bl sub_80925EC 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 sub_808DBA8 lsls r0, 24 lsrs r0, 24 bl sub_80925EC 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 sub_808E734 lsls r0, 24 cmp r0, 0 bne _080A1B08 bl _080A236A _080A1B08: movs r0, 0x91 bl sub_808E734 lsls r0, 24 cmp r0, 0 bne _080A1B18 bl _080A236A _080A1B18: movs r0, 0x92 bl sub_808E734 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 sub_808DBA8 lsls r0, 24 lsrs r0, 24 bl sub_8092600 lsls r0, 24 cmp r0, 0 bne _080A1B88 adds r0, r4, 0 bl sub_808DBA8 lsls r0, 24 lsrs r0, 24 bl sub_80925EC _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 sub_8090A34 cmp r0, 0x13 ble _080A1C70 ldr r0, _080A1C64 ldrb r4, [r0, 0x2] adds r0, r4, 0 bl sub_8091524 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 gUnknown_203B460 _080A1C6C: .4byte 0x000003e6 _080A1C70: ldr r0, _080A1C80 ldrb r0, [r0, 0x2] movs r1, 0 bl sub_809124C bl sub_80910B4 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 sub_80981DC lsls r0, 24 cmp r0, 0 beq _080A1CA4 adds r0, r5, 0 bl sub_808DBA8 lsls r0, 24 lsrs r0, 24 bl sub_8092600 lsls r0, 24 cmp r0, 0 beq _080A1D9E adds r0, r5, 0 bl sub_808E734 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 sub_808DBA8 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 sub_808DBA8 lsls r0, 24 lsrs r0, 24 bl sub_8092600 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 sub_808DBA8 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 sub_808DBA8 lsls r0, 24 lsrs r0, 24 bl sub_8092600 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 sub_808DBA8 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 sub_808DBA8 lsls r0, 24 lsrs r0, 24 bl sub_8092600 lsls r0, 24 cmp r0, 0 bne _080A1E8E adds r0, r5, 0 bl sub_808DBA8 lsls r0, 24 lsrs r0, 24 bl sub_80925EC _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 sub_809211C b _080A177C _080A1ED6: bl sub_8092178 lsls r0, 24 lsrs r4, r0, 24 bl sub_809211C cmp r0, 0 bgt _080A1EE8 b _080A236A _080A1EE8: bl sub_8092158 bl sub_8092178 adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 adds r0, r4, 0 bl sub_80921A8 adds r1, r0, 0 ldr r4, _080A1F30 adds r0, r4, 0 bl strcpy adds r0, r5, 0 bl sub_80921A8 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 sub_80913A0 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 sub_8090A34 cmp r0, 0x13 ble _080A2018 ldrb r4, [r6, 0x2] adds r0, r4, 0 bl sub_8091524 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 gUnknown_203B460 _080A2018: ldrb r0, [r6, 0x2] movs r1, 0 bl sub_809124C bl sub_80910B4 _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 gUnknown_812F1F8 _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 gUnknown_20255F0 _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 sub_800C068 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 sub_80118F0 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 sub_8011900 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 thumb_func_start sub_80A2608 sub_80A2608: adds r1, r0, 0 lsls r1, 16 asrs r1, 16 lsls r0, r1, 2 adds r0, r1 lsls r0, 2 ldr r1, _080A261C adds r0, r1 bx lr .align 2, 0 _080A261C: .4byte gUnknown_81168A8 thumb_func_end sub_80A2608 thumb_func_start sub_80A2620 sub_80A2620: push {lr} lsls r0, 16 asrs r0, 16 bl sub_80A26B8 adds r1, r0, 0 lsls r1, 16 asrs r1, 16 lsls r0, r1, 2 adds r0, r1 lsls r0, 2 ldr r1, _080A2640 adds r0, r1 pop {r1} bx r1 .align 2, 0 _080A2640: .4byte gUnknown_81168A8 thumb_func_end sub_80A2620 thumb_func_start sub_80A2644 sub_80A2644: ldr r1, _080A2650 lsls r0, 1 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] bx lr .align 2, 0 _080A2650: .4byte gUnknown_8116F24 thumb_func_end sub_80A2644 thumb_func_start sub_80A2654 sub_80A2654: push {lr} lsls r0, 16 asrs r0, 16 bl sub_80A2608 movs r1, 0xE ldrsh r0, [r0, r1] pop {r1} bx r1 thumb_func_end sub_80A2654 thumb_func_start sub_80A2668 sub_80A2668: push {lr} lsls r0, 16 ldr r2, _080A267C adds r1, r0, r2 lsrs r0, r1, 16 cmp r0, 0x18 bls _080A2680 movs r0, 0x1 negs r0, r0 b _080A2682 .align 2, 0 _080A267C: .4byte 0xffc90000 _080A2680: asrs r0, r1, 16 _080A2682: pop {r1} bx r1 thumb_func_end sub_80A2668 thumb_func_start sub_80A2688 sub_80A2688: push {lr} lsls r0, 24 lsrs r1, r0, 24 adds r3, r1, 0 adds r2, r1, 0 subs r2, 0x4B lsls r0, r2, 24 lsrs r0, 24 cmp r0, 0x16 bhi _080A26A0 adds r0, r2, 0 b _080A26B4 _080A26A0: cmp r1, 0x2F bne _080A26A8 movs r0, 0x17 b _080A26B4 _080A26A8: cmp r3, 0x30 beq _080A26B2 movs r0, 0x1 negs r0, r0 b _080A26B4 _080A26B2: movs r0, 0x18 _080A26B4: pop {r1} bx r1 thumb_func_end sub_80A2688 thumb_func_start sub_80A26B8 sub_80A26B8: lsls r0, 16 ldr r1, _080A26C8 asrs r0, 15 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] bx lr .align 2, 0 _080A26C8: .4byte gUnknown_8116F9A thumb_func_end sub_80A26B8 .align 2,0 @ Don't pad with nop