.include "constants/gba_constants.inc" .include "asm/macros.inc" .syntax unified .text thumb_func_start sub_800B540 sub_800B540: push {r4,lr} ldr r1, _0800B5C8 movs r2, 0 adds r0, r1, 0 adds r0, 0x14 _0800B54A: str r2, [r0] subs r0, 0x4 cmp r0, r1 bge _0800B54A bl nullsub_17 bl sub_800BD08 ldr r1, _0800B5CC _0800B55C: ldrh r0, [r1] cmp r0, 0x9F bls _0800B55C ldr r4, _0800B5D0 ldrh r0, [r4] movs r1, 0x45 eors r0, r1 strh r0, [r4] movs r2, 0x80 lsls r2, 19 ldrb r0, [r2] movs r1, 0x80 orrs r0, r1 strb r0, [r2] ldr r0, _0800B5D4 bl sub_800B6B0 ldr r1, _0800B5D8 movs r0, 0xC1 lsls r0, 16 str r0, [r1] ldrh r0, [r4] ldr r2, _0800B5DC adds r1, r2, 0 orrs r0, r1 strh r0, [r4] ldr r1, _0800B5E0 movs r0, 0x28 strh r0, [r1] ldr r1, _0800B5E4 movs r2, 0x1 negs r2, r2 adds r0, r2, 0 strh r0, [r1] ldr r1, _0800B5E8 movs r0, 0 strh r0, [r1] bl sub_800D6AC bl sub_800D7D0 ldr r1, _0800B5EC movs r0, 0x1 strb r0, [r1] bl sub_800B5F0 ldr r1, _0800B5CC _0800B5BA: ldrh r0, [r1] cmp r0, 0x9F bls _0800B5BA pop {r4} pop {r0} bx r0 .align 2, 0 _0800B5C8: .4byte gUnknown_202D5F0 _0800B5CC: .4byte 0x04000006 _0800B5D0: .4byte 0x04000200 _0800B5D4: .4byte gUnknown_80B9C00 _0800B5D8: .4byte 0x0400010c _0800B5DC: .4byte 0x00002045 _0800B5E0: .4byte 0x04000004 _0800B5E4: .4byte gUnknown_203B0AE _0800B5E8: .4byte gUnknown_203B0AC _0800B5EC: .4byte gUnknown_203B098 thumb_func_end sub_800B540 thumb_func_start sub_800B5F0 sub_800B5F0: push {lr} ldr r0, _0800B610 ldrb r0, [r0] cmp r0, 0 beq _0800B618 ldr r3, _0800B614 ldrh r1, [r3] movs r2, 0x1 adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _0800B618 strh r2, [r3] movs r0, 0x1 b _0800B61A .align 2, 0 _0800B610: .4byte gUnknown_203B098 _0800B614: .4byte 0x04000208 _0800B618: movs r0, 0 _0800B61A: pop {r1} bx r1 thumb_func_end sub_800B5F0 thumb_func_start sub_800B620 sub_800B620: push {lr} ldr r0, _0800B640 ldrb r0, [r0] cmp r0, 0 beq _0800B648 ldr r2, _0800B644 ldrh r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0800B648 movs r0, 0 strh r0, [r2] movs r0, 0x1 b _0800B64A .align 2, 0 _0800B640: .4byte gUnknown_203B098 _0800B644: .4byte 0x04000208 _0800B648: movs r0, 0 _0800B64A: pop {r1} bx r1 thumb_func_end sub_800B620 thumb_func_start sub_800B650 sub_800B650: push {lr} ldr r0, _0800B66C ldrb r0, [r0] cmp r0, 0 beq _0800B674 ldr r0, _0800B670 ldrh r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0800B674 movs r0, 0x1 b _0800B676 .align 2, 0 _0800B66C: .4byte gUnknown_203B098 _0800B670: .4byte 0x04000208 _0800B674: movs r0, 0 _0800B676: pop {r1} bx r1 thumb_func_end sub_800B650 thumb_func_start sub_800B67C sub_800B67C: push {r4,lr} lsls r0, 16 lsrs r4, r0, 16 ldr r0, _0800B6A4 ldrb r0, [r0] cmp r0, 0 beq _0800B69E ldr r3, _0800B6A8 movs r0, 0 strh r0, [r3] ldr r2, _0800B6AC ldrh r1, [r2] adds r0, r4, 0 orrs r0, r1 strh r0, [r2] movs r0, 0x1 strh r0, [r3] _0800B69E: pop {r4} pop {r0} bx r0 .align 2, 0 _0800B6A4: .4byte gUnknown_203B098 _0800B6A8: .4byte 0x04000208 _0800B6AC: .4byte INTR_CHECK thumb_func_end sub_800B67C thumb_func_start sub_800B6B0 sub_800B6B0: push {r4,lr} ldr r1, _0800B6D0 ldr r2, _0800B6D4 bl CpuSet ldr r0, _0800B6D8 ldr r4, _0800B6DC ldr r2, _0800B6E0 adds r1, r4, 0 bl CpuSet ldr r0, _0800B6E4 str r4, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _0800B6D0: .4byte gIntrTable _0800B6D4: .4byte 0x04000006 _0800B6D8: .4byte IntrMain _0800B6DC: .4byte gUnknown_202D4B8 _0800B6E0: .4byte 0x04000048 _0800B6E4: .4byte INTR_VECTOR thumb_func_end sub_800B6B0 thumb_func_start sub_800B6E8 sub_800B6E8: lsls r0, 2 ldr r1, _0800B6F0 adds r0, r1 bx lr .align 2, 0 _0800B6F0: .4byte gIntrTable thumb_func_end sub_800B6E8 thumb_func_start sub_800B6F4 sub_800B6F4: push {r4-r6,lr} adds r4, r0, 0 adds r5, r1, 0 bl sub_800B620 lsls r0, 24 ldr r1, _0800B71C lsls r4, 2 adds r4, r1 ldr r6, [r4] str r5, [r4] cmp r0, 0 beq _0800B712 bl sub_800B5F0 _0800B712: adds r0, r6, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0800B71C: .4byte gUnknown_202D5F0 thumb_func_end sub_800B6F4 thumb_func_start sub_800B720 sub_800B720: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 str r1, [sp] lsls r0, 16 asrs r0, 16 str r0, [sp, 0xC] bl sub_800B620 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x4] ldr r0, _0800B780 mov r8, r0 ldr r1, _0800B784 mov r10, r1 ldr r2, _0800B788 mov r9, r2 ldr r5, _0800B78C mov r12, r5 _0800B74E: movs r7, 0 str r7, [sp, 0x10] movs r4, 0 ldr r3, _0800B784 mov r1, r8 movs r2, 0 ldrsh r0, [r1, r2] ldr r6, _0800B78C ldr r5, [sp, 0xC] lsls r5, 16 str r5, [sp, 0x8] cmp r4, r0 bge _0800B7BA movs r7, 0 ldrsh r1, [r3, r7] ldrh r2, [r6] movs r5, 0 ldrsh r0, [r6, r5] cmp r1, r0 bne _0800B790 adds r0, r2, 0x1 mov r7, r9 ands r0, r7 strh r0, [r6] b _0800B74E .align 2, 0 _0800B780: .4byte gUnknown_203B0AA _0800B784: .4byte gUnknown_202D608 _0800B788: .4byte 0x00007fff _0800B78C: .4byte gUnknown_203B0A8 _0800B790: adds r4, 0x1 adds r3, 0x8 mov r1, r8 movs r2, 0 ldrsh r0, [r1, r2] cmp r4, r0 bge _0800B7BA movs r5, 0 ldrsh r1, [r3, r5] mov r7, r12 ldrh r2, [r7] movs r5, 0 ldrsh r0, [r7, r5] cmp r1, r0 bne _0800B790 adds r0, r2, 0x1 mov r7, r9 ands r0, r7 strh r0, [r6] movs r0, 0x1 str r0, [sp, 0x10] _0800B7BA: ldr r1, [sp, 0x10] cmp r1, 0 bne _0800B74E movs r4, 0 mov r3, r10 ldr r2, _0800B84C movs r5, 0 ldrsh r1, [r2, r5] cmp r4, r1 bge _0800B7EA movs r7, 0x2 ldrsh r0, [r3, r7] ldr r2, [sp, 0xC] cmp r0, r2 bgt _0800B7EA _0800B7D8: adds r4, 0x1 adds r3, 0x8 cmp r4, r1 bge _0800B7EA movs r5, 0x2 ldrsh r0, [r3, r5] ldr r7, [sp, 0xC] cmp r0, r7 ble _0800B7D8 _0800B7EA: ldr r1, _0800B84C movs r2, 0 ldrsh r0, [r1, r2] subs r2, r0, 0x1 lsls r0, r2, 3 mov r5, r10 adds r3, r0, r5 lsls r5, r4, 3 cmp r2, r4 blt _0800B80E _0800B7FE: ldr r0, [r3] ldr r1, [r3, 0x4] str r0, [r3, 0x8] str r1, [r3, 0xC] subs r2, 0x1 subs r3, 0x8 cmp r2, r4 bge _0800B7FE _0800B80E: ldr r7, _0800B84C ldrh r0, [r7] adds r0, 0x1 strh r0, [r7] mov r0, r10 adds r1, r5, r0 ldrh r0, [r6] strh r0, [r1] ldr r2, [sp, 0x8] lsrs r0, r2, 16 strh r0, [r1, 0x2] mov r0, r10 adds r0, 0x4 adds r0, r5, r0 ldr r5, [sp] str r5, [r0] ldr r7, [sp, 0x4] cmp r7, 0 beq _0800B838 bl sub_800B5F0 _0800B838: movs r1, 0 ldrsh r0, [r6, r1] add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0800B84C: .4byte gUnknown_203B0AA thumb_func_end sub_800B720 thumb_func_start sub_800B850 sub_800B850: push {r4-r7,lr} lsls r0, 16 asrs r6, r0, 16 bl sub_800B620 lsls r0, 24 lsrs r5, r0, 24 movs r2, 0 ldr r4, _0800B8A0 ldr r3, _0800B8A4 movs r1, 0 ldrsh r0, [r3, r1] cmp r2, r0 bge _0800B8B4 adds r1, r3, 0 _0800B86E: movs r7, 0 ldrsh r0, [r4, r7] cmp r0, r6 bne _0800B8A8 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] movs r3, 0 ldrsh r0, [r1, r3] cmp r2, r0 bge _0800B896 ldr r3, _0800B8A4 _0800B886: ldr r0, [r4, 0x8] ldr r1, [r4, 0xC] stm r4!, {r0,r1} adds r2, 0x1 movs r7, 0 ldrsh r0, [r3, r7] cmp r2, r0 blt _0800B886 _0800B896: cmp r5, 0 beq _0800B8BC bl sub_800B5F0 b _0800B8BC .align 2, 0 _0800B8A0: .4byte gUnknown_202D608 _0800B8A4: .4byte gUnknown_203B0AA _0800B8A8: adds r2, 0x1 adds r4, 0x8 movs r7, 0 ldrsh r0, [r3, r7] cmp r2, r0 blt _0800B86E _0800B8B4: cmp r5, 0 beq _0800B8BC bl sub_800B5F0 _0800B8BC: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_800B850 thumb_func_start nullsub_177 nullsub_177: bx lr thumb_func_end nullsub_177 thumb_func_start VBlankIntr VBlankIntr: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r0, _0800B95C ldr r1, [r0] adds r1, 0x1 str r1, [r0] bl SoundVSync bl BlinkSavingIcon ldr r0, _0800B960 ldr r0, [r0, 0x4] cmp r0, 0 beq _0800B8EE bl _call_via_r0 _0800B8EE: movs r2, 0 ldr r3, _0800B964 movs r1, 0 ldrsh r0, [r3, r1] adds r6, r3, 0 ldr r7, _0800B968 ldr r1, _0800B96C mov r12, r1 ldr r1, _0800B970 mov r8, r1 ldr r1, _0800B974 mov r9, r1 ldr r1, _0800B978 mov r10, r1 cmp r2, r0 bge _0800B920 ldr r5, _0800B97C ldr r4, _0800B980 _0800B912: ldm r5!, {r0,r1} stm r4!, {r0,r1} adds r2, 0x1 movs r1, 0 ldrsh r0, [r3, r1] cmp r2, r0 blt _0800B912 _0800B920: ldrh r0, [r6] strh r0, [r7] movs r1, 0x1 negs r1, r1 adds r0, r1, 0 mov r1, r12 strh r0, [r1] mov r1, r8 strh r0, [r1] mov r1, r9 strh r0, [r1] ldr r1, _0800B984 movs r0, 0x28 strh r0, [r1] mov r1, r10 ldrb r0, [r1] cmp r0, 0 bne _0800B948 bl UpdateSound _0800B948: movs r0, 0x1 bl sub_800B67C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0800B95C: .4byte gUnknown_203B0A0 _0800B960: .4byte gUnknown_202D5F0 _0800B964: .4byte gUnknown_203B0AA _0800B968: .4byte gUnknown_203B0AC _0800B96C: .4byte gUnknown_203B0AE _0800B970: .4byte gUnknown_203B0B0 _0800B974: .4byte gUnknown_203B0B2 _0800B978: .4byte gUnknown_203B099 _0800B97C: .4byte gUnknown_202D608 _0800B980: .4byte gUnknown_202D648 _0800B984: .4byte 0x04000004 thumb_func_end VBlankIntr thumb_func_start VCountIntr VCountIntr: push {r4-r7,lr} mov r7, r8 push {r7} ldr r0, _0800BA44 ldrh r0, [r0] lsls r0, 16 asrs r6, r0, 16 ldr r0, _0800BA48 movs r2, 0 ldrsh r1, [r0, r2] adds r7, r0, 0 cmp r1, 0 bge _0800B9B2 ldr r0, _0800BA4C ldr r0, [r0, 0x8] cmp r0, 0 beq _0800B9AE bl _call_via_r0 _0800B9AE: movs r0, 0 strh r0, [r7] _0800B9B2: ldr r0, _0800BA50 movs r3, 0 ldrsh r2, [r7, r3] movs r3, 0 ldrsh r1, [r0, r3] mov r8, r0 cmp r2, r1 bge _0800BA34 ldr r1, _0800BA54 adds r0, r2, 0 lsls r0, 3 adds r0, r1 movs r3, 0x2 ldrsh r0, [r0, r3] cmp r0, r6 bgt _0800BA10 adds r5, r1, 0 adds r4, r7, 0 _0800B9D6: movs r1, 0 ldrsh r0, [r4, r1] lsls r0, 3 adds r1, r5, 0x4 adds r0, r1 ldr r0, [r0] cmp r0, 0 beq _0800B9EA bl _call_via_r0 _0800B9EA: ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] ldr r1, _0800BA50 lsls r0, 16 asrs r0, 16 movs r2, 0 ldrsh r1, [r1, r2] cmp r0, r1 bge _0800BA34 movs r3, 0 ldrsh r0, [r4, r3] lsls r0, 3 adds r0, r5 movs r1, 0x2 ldrsh r0, [r0, r1] ldr r7, _0800BA48 cmp r0, r6 ble _0800B9D6 _0800BA10: movs r2, 0 ldrsh r1, [r7, r2] mov r3, r8 movs r2, 0 ldrsh r0, [r3, r2] cmp r1, r0 bge _0800BA34 ldr r2, _0800BA58 ldr r1, _0800BA54 movs r3, 0 ldrsh r0, [r7, r3] lsls r0, 3 adds r0, r1 ldrh r0, [r0, 0x2] lsls r0, 8 movs r1, 0x28 orrs r0, r1 strh r0, [r2] _0800BA34: movs r0, 0x4 bl sub_800B67C pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0800BA44: .4byte 0x04000006 _0800BA48: .4byte gUnknown_203B0AE _0800BA4C: .4byte gUnknown_202D5F0 _0800BA50: .4byte gUnknown_203B0AC _0800BA54: .4byte gUnknown_202D648 _0800BA58: .4byte 0x04000004 thumb_func_end VCountIntr thumb_func_start sub_800BA5C sub_800BA5C: push {r4,lr} ldr r4, _0800BAA4 ldrb r0, [r4] cmp r0, 0 beq _0800BA72 ldr r1, _0800BAA8 ldr r0, [r1] adds r0, 0x1 str r0, [r1] bl xxx_update_bg_sound_input _0800BA72: movs r0, 0x1 strb r0, [r4] ldr r1, _0800BAAC movs r0, 0 strb r0, [r1] ldr r1, _0800BAA8 movs r0, 0 str r0, [r1] bl nullsub_25 ldr r1, _0800BAB0 _0800BA88: ldrh r0, [r1] cmp r0, 0x9F bhi _0800BA88 ldr r1, _0800BAB4 movs r0, 0x1 strb r0, [r1] bl VBlankIntrWait bl nullsub_18 pop {r4} pop {r0} bx r0 .align 2, 0 _0800BAA4: .4byte gUnknown_203B09A _0800BAA8: .4byte gUnknown_203B09C _0800BAAC: .4byte gUnknown_203B09B _0800BAB0: .4byte 0x04000006 _0800BAB4: .4byte gUnknown_203B099 thumb_func_end sub_800BA5C thumb_func_start xxx_update_bg_sound_input xxx_update_bg_sound_input: push {r4,r5,lr} ldr r1, _0800BACC ldrb r4, [r1] cmp r4, 0 beq _0800BAD4 ldr r1, _0800BAD0 ldr r0, [r1] adds r0, 0x1 str r0, [r1] b _0800BAFE .align 2, 0 _0800BACC: .4byte gUnknown_203B09B _0800BAD0: .4byte gUnknown_203B09C _0800BAD4: movs r0, 0x1 strb r0, [r1] ldr r0, _0800BB04 strb r4, [r0] ldr r0, _0800BB08 str r4, [r0] bl UpdateBGControlRegisters ldr r5, _0800BB0C ldrb r0, [r5] cmp r0, 0 beq _0800BAF0 bl UpdateSound _0800BAF0: bl UpdateInput strb r4, [r5] ldr r0, _0800BB10 ldr r1, _0800BB14 ldr r1, [r1] str r1, [r0] _0800BAFE: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0800BB04: .4byte gUnknown_203B09A _0800BB08: .4byte gUnknown_203B09C _0800BB0C: .4byte gUnknown_203B099 _0800BB10: .4byte gUnknown_203B0A4 _0800BB14: .4byte gUnknown_203B0A0 thumb_func_end xxx_update_bg_sound_input thumb_func_start Timer3Intr Timer3Intr: push {lr} ldr r0, _0800BB30 ldr r0, [r0, 0x10] cmp r0, 0 beq _0800BB26 bl _call_via_r0 _0800BB26: movs r0, 0x40 bl sub_800B67C pop {r0} bx r0 .align 2, 0 _0800BB30: .4byte gUnknown_202D5F0 thumb_func_end Timer3Intr thumb_func_start sub_800BB34 sub_800BB34: ldr r0, _0800BB3C ldr r0, [r0] bx lr .align 2, 0 _0800BB3C: .4byte gUnknown_203B0A0 thumb_func_end sub_800BB34 thumb_func_start nullsub_178 nullsub_178: bx lr thumb_func_end nullsub_178 thumb_func_start sub_800BB44 sub_800BB44: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 ldr r2, _0800BBF0 ldrh r0, [r2] ldr r1, _0800BBF4 cmp r0, r1 beq _0800BB60 _0800BB5A: ldrh r0, [r2] cmp r0, r1 bne _0800BB5A _0800BB60: bl sub_800B620 lsls r0, 24 lsrs r0, 24 str r0, [sp] ldr r1, _0800BBF8 _0800BB6C: ldrh r0, [r1] cmp r0, 0x9F bls _0800BB6C movs r0, 0x80 lsls r0, 19 mov r9, r0 ldrh r1, [r0] mov r8, r1 movs r0, 0x80 mov r2, r9 strh r0, [r2] movs r7, 0xA0 lsls r7, 19 ldr r1, _0800BBFC adds r0, r1, 0 strh r0, [r7] ldr r5, _0800BC00 ldrh r4, [r5] movs r2, 0xC0 lsls r2, 6 adds r0, r2, 0 strh r0, [r5] ldr r0, _0800BC04 mov r10, r0 ldr r1, _0800BC08 adds r0, r1, 0 mov r2, r10 strh r0, [r2] ldr r6, _0800BC0C movs r0, 0x1 strh r0, [r6] bl SoundBiasReset swi 0x3 bl SoundBiasSet movs r0, 0 strh r0, [r6] strh r4, [r5] mov r1, r10 strh r0, [r1] mov r1, r8 mov r2, r9 strh r1, [r2] strh r0, [r7] ldr r2, [sp] cmp r2, 0 beq _0800BBD0 bl sub_800B5F0 _0800BBD0: ldr r2, _0800BBF0 ldrh r0, [r2] ldr r1, _0800BBF4 cmp r0, r1 beq _0800BBE0 _0800BBDA: ldrh r0, [r2] cmp r0, r1 bne _0800BBDA _0800BBE0: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0800BBF0: .4byte 0x04000130 _0800BBF4: .4byte 0x000003ff _0800BBF8: .4byte 0x04000006 _0800BBFC: .4byte 0x00007fff _0800BC00: .4byte 0x04000200 _0800BC04: .4byte 0x04000132 _0800BC08: .4byte 0x00008304 _0800BC0C: .4byte 0x04000208 thumb_func_end sub_800BB44 thumb_func_start nullsub_17 nullsub_17: bx lr thumb_func_end nullsub_17 thumb_func_start UpdateBGControlRegisters UpdateBGControlRegisters: push {r4,lr} sub sp, 0x10 ldr r0, _0800BC2C ldrb r0, [r0] cmp r0, 0x1 bne _0800BC30 str r0, [sp] movs r0, 0x2 str r0, [sp, 0x4] movs r0, 0 b _0800BC3A .align 2, 0 _0800BC2C: .4byte gUnknown_202D7FE _0800BC30: movs r0, 0 str r0, [sp] movs r0, 0x1 str r0, [sp, 0x4] movs r0, 0x2 _0800BC3A: str r0, [sp, 0x8] movs r0, 0x3 str r0, [sp, 0xC] ldr r1, _0800BCA8 ldr r2, _0800BCAC ldrh r0, [r2, 0x4] strh r0, [r1] adds r1, 0x2 ldrh r0, [r2, 0x6] strh r0, [r1] adds r1, 0x2 ldr r2, _0800BCB0 ldrh r0, [r2, 0x4] strh r0, [r1] adds r1, 0x2 ldrh r0, [r2, 0x6] strh r0, [r1] adds r1, 0x2 ldr r3, _0800BCB4 ldrh r0, [r3, 0x4] strh r0, [r1] adds r1, 0x2 ldrh r0, [r3, 0x6] strh r0, [r1] adds r1, 0x2 ldr r2, _0800BCB8 ldrh r0, [r2, 0x4] strh r0, [r1] adds r1, 0x2 ldrh r0, [r2, 0x6] strh r0, [r1] ldr r2, _0800BCBC ldr r0, [sp] movs r4, 0xB0 lsls r4, 6 adds r1, r4, 0 orrs r0, r1 strh r0, [r2] adds r2, 0x2 ldr r0, [sp, 0x4] movs r4, 0xB4 lsls r4, 6 adds r1, r4, 0 orrs r0, r1 strh r0, [r2] ldrh r1, [r3, 0x2] movs r0, 0x80 lsls r0, 8 cmp r1, r0 bne _0800BCC8 ldr r0, _0800BCC0 ldr r1, [sp, 0x8] ldr r3, _0800BCC4 adds r2, r3, 0 b _0800BCD2 .align 2, 0 _0800BCA8: .4byte 0x04000010 _0800BCAC: .4byte gUnknown_202D698 _0800BCB0: .4byte gUnknown_202D6A0 _0800BCB4: .4byte gUnknown_202D6A8 _0800BCB8: .4byte gUnknown_202D6B0 _0800BCBC: .4byte 0x04000008 _0800BCC0: .4byte 0x0400000c _0800BCC4: .4byte 0x00002e08 _0800BCC8: ldr r0, _0800BCF4 ldr r1, [sp, 0x8] movs r4, 0xB8 lsls r4, 6 adds r2, r4, 0 _0800BCD2: orrs r1, r2 strh r1, [r0] ldr r2, _0800BCF8 ldr r0, [sp, 0xC] ldr r3, _0800BCFC adds r1, r3, 0 orrs r0, r1 strh r0, [r2] ldr r1, _0800BD00 ldr r0, _0800BD04 ldrh r0, [r0] strh r0, [r1] add sp, 0x10 pop {r4} pop {r0} bx r0 .align 2, 0 _0800BCF4: .4byte 0x0400000c _0800BCF8: .4byte 0x0400000e _0800BCFC: .4byte 0x00002f08 _0800BD00: .4byte 0x04000050 _0800BD04: .4byte gUnknown_202D7FC thumb_func_end UpdateBGControlRegisters thumb_func_start sub_800BD08 sub_800BD08: push {r4,lr} ldr r1, _0800BDA8 ldrh r2, [r1, 0xA] ldr r4, _0800BDAC adds r0, r4, 0 ands r0, r2 strh r0, [r1, 0xA] ldrh r2, [r1, 0xA] ldr r3, _0800BDB0 adds r0, r3, 0 ands r0, r2 strh r0, [r1, 0xA] ldrh r0, [r1, 0xA] adds r1, 0xC ldrh r2, [r1, 0xA] adds r0, r4, 0 ands r0, r2 strh r0, [r1, 0xA] ldrh r2, [r1, 0xA] adds r0, r3, 0 ands r0, r2 strh r0, [r1, 0xA] ldrh r0, [r1, 0xA] adds r1, 0xC ldrh r2, [r1, 0xA] adds r0, r4, 0 ands r0, r2 strh r0, [r1, 0xA] ldrh r2, [r1, 0xA] adds r0, r3, 0 ands r0, r2 strh r0, [r1, 0xA] ldrh r0, [r1, 0xA] ldr r0, _0800BDB4 ldrh r1, [r0, 0xA] ands r4, r1 strh r4, [r0, 0xA] ldrh r1, [r0, 0xA] ands r3, r1 strh r3, [r0, 0xA] ldrh r0, [r0, 0xA] bl sub_80AEF24 ldr r0, _0800BDB8 movs r2, 0 strh r2, [r0] ldr r0, _0800BDBC ldr r3, _0800BDC0 adds r1, r3, 0 strh r1, [r0] ldr r0, _0800BDC4 strh r1, [r0] ldr r1, _0800BDC8 subs r3, 0x2 adds r0, r3, 0 strh r0, [r1] ldr r0, _0800BDCC strh r2, [r0] ldr r0, _0800BDD0 strh r2, [r0] ldr r0, _0800BDD4 strb r2, [r0] ldr r0, _0800BDD8 movs r4, 0 movs r2, 0 movs r1, 0x7 _0800BD8C: strh r2, [r0] strh r3, [r0, 0x2] strh r2, [r0, 0x4] strb r4, [r0, 0x6] subs r1, 0x1 adds r0, 0x8 cmp r1, 0 bge _0800BD8C bl nullsub_19 pop {r4} pop {r0} bx r0 .align 2, 0 _0800BDA8: .4byte 0x040000b0 _0800BDAC: .4byte 0x0000c5ff _0800BDB0: .4byte 0x00007fff _0800BDB4: .4byte 0x040000d4 _0800BDB8: .4byte gUnknown_202D688 _0800BDBC: .4byte gUnknown_202D68A _0800BDC0: .4byte 0x000003e7 _0800BDC4: .4byte gUnknown_202D68C _0800BDC8: .4byte gUnknown_202D68E _0800BDCC: .4byte gUnknown_202D690 _0800BDD0: .4byte gUnknown_202D692 _0800BDD4: .4byte gUnknown_202D694 _0800BDD8: .4byte gUnknown_3000FD8 thumb_func_end sub_800BD08 thumb_func_start sub_800BDDC sub_800BDDC: push {lr} bl sub_800BF80 ldr r0, _0800BDF4 bl sub_800C298 ldr r0, _0800BDF8 bl sub_800C298 pop {r0} bx r0 .align 2, 0 _0800BDF4: .4byte 0x000003e6 _0800BDF8: .4byte 0x000003e5 thumb_func_end sub_800BDDC thumb_func_start sub_800BDFC sub_800BDFC: push {r4-r6,lr} lsls r0, 16 lsrs r4, r0, 16 adds r6, r4, 0 adds r0, r4, 0 bl sub_800CA9C lsls r0, 24 cmp r0, 0 beq _0800BE78 ldr r0, _0800BE40 cmp r4, r0 beq _0800BE78 ldr r5, _0800BE44 ldrh r0, [r5] cmp r4, r0 bne _0800BE2C ldr r0, _0800BE48 ldrh r0, [r0] subs r0, 0x1 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bls _0800BE78 _0800BE2C: adds r0, r4, 0 bl sub_800CAE0 lsls r0, 16 cmp r0, 0 beq _0800BE4C adds r0, r4, 0 bl nullsub_20 b _0800BE78 .align 2, 0 _0800BE40: .4byte 0x000003e7 _0800BE44: .4byte gUnknown_202D68A _0800BE48: .4byte gUnknown_202D688 _0800BE4C: bl sub_800B620 lsls r0, 24 lsrs r4, r0, 24 strh r6, [r5] ldr r1, _0800BE80 movs r0, 0x1 strb r0, [r1] ldr r0, _0800BE84 ldrh r0, [r0] cmp r0, 0 bne _0800BE70 ldr r1, _0800BE88 movs r0, 0x1 strh r0, [r1] adds r0, r6, 0 bl sub_80AEFA8 _0800BE70: cmp r4, 0 beq _0800BE78 bl sub_800B5F0 _0800BE78: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0800BE80: .4byte gUnknown_202D694 _0800BE84: .4byte gUnknown_202D690 _0800BE88: .4byte gUnknown_202D688 thumb_func_end sub_800BDFC thumb_func_start sub_800BE8C sub_800BE8C: push {r4-r7,lr} lsls r0, 16 lsrs r6, r0, 16 lsls r4, r1, 16 lsrs r5, r4, 16 adds r0, r6, 0 bl sub_800CA9C lsls r0, 24 cmp r0, 0 beq _0800BF2E ldr r0, _0800BECC cmp r6, r0 beq _0800BF2E ldr r0, _0800BED0 ldrh r0, [r0] cmp r6, r0 bne _0800BEBE ldr r0, _0800BED4 ldrh r0, [r0] subs r0, 0x1 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bls _0800BF2E _0800BEBE: movs r0, 0x80 lsls r0, 1 cmp r5, r0 bls _0800BED8 movs r5, 0x10 b _0800BEE0 .align 2, 0 _0800BECC: .4byte 0x000003e7 _0800BED0: .4byte gUnknown_202D68A _0800BED4: .4byte gUnknown_202D688 _0800BED8: lsrs r5, r4, 20 cmp r5, 0 bne _0800BEE0 movs r5, 0x1 _0800BEE0: bl sub_800B620 lsls r0, 24 lsrs r7, r0, 24 ldr r0, _0800BF34 strh r6, [r0] ldr r1, _0800BF38 movs r0, 0x1 strb r0, [r1] ldr r0, _0800BF3C ldrh r0, [r0] cmp r0, 0 bne _0800BF26 ldr r0, _0800BF40 movs r1, 0x1 strh r1, [r0] adds r0, r6, 0 bl sub_80AEFA8 ldr r4, _0800BF44 adds r0, r4, 0 bl sub_80AF198 adds r0, r4, 0 movs r1, 0xFF movs r2, 0 bl sub_80AFF50 adds r0, r6, 0 bl sub_80AF074 adds r0, r4, 0 adds r1, r5, 0 bl sub_80AF170 _0800BF26: cmp r7, 0 beq _0800BF2E bl sub_800B5F0 _0800BF2E: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0800BF34: .4byte gUnknown_202D68A _0800BF38: .4byte gUnknown_202D694 _0800BF3C: .4byte gUnknown_202D690 _0800BF40: .4byte gUnknown_202D688 _0800BF44: .4byte gUnknown_20008F0 thumb_func_end sub_800BE8C thumb_func_start sub_800BF48 sub_800BF48: push {r4,lr} lsls r0, 16 lsrs r1, r0, 16 ldr r0, _0800BF64 ldrh r4, [r0] ldr r0, _0800BF68 cmp r4, r0 bne _0800BF70 adds r0, r1, 0 bl sub_800BDFC ldr r0, _0800BF6C strh r4, [r0] b _0800BF74 .align 2, 0 _0800BF64: .4byte gUnknown_202D68A _0800BF68: .4byte 0x000003e7 _0800BF6C: .4byte gUnknown_202D68C _0800BF70: ldr r0, _0800BF7C strh r1, [r0] _0800BF74: pop {r4} pop {r0} bx r0 .align 2, 0 _0800BF7C: .4byte gUnknown_202D68C thumb_func_end sub_800BF48 thumb_func_start sub_800BF80 sub_800BF80: push {r4,lr} bl sub_800B620 lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0800BFBC ldrh r0, [r0] cmp r0, 0 bne _0800BFA2 ldr r0, _0800BFC0 ldrh r1, [r0] ldr r0, _0800BFC4 cmp r1, r0 beq _0800BFA2 ldr r0, _0800BFC8 bl sub_80AF7C0 _0800BFA2: ldr r0, _0800BFC0 ldr r2, _0800BFC4 adds r1, r2, 0 strh r1, [r0] ldr r0, _0800BFCC strh r1, [r0] cmp r4, 0 beq _0800BFB6 bl sub_800B5F0 _0800BFB6: pop {r4} pop {r0} bx r0 .align 2, 0 _0800BFBC: .4byte gUnknown_202D690 _0800BFC0: .4byte gUnknown_202D68A _0800BFC4: .4byte 0x000003e7 _0800BFC8: .4byte gUnknown_20008F0 _0800BFCC: .4byte gUnknown_202D68C thumb_func_end sub_800BF80 thumb_func_start sub_800BFD0 sub_800BFD0: push {r4,r5,lr} lsls r1, r0, 16 movs r0, 0x80 lsls r0, 17 cmp r1, r0 bls _0800BFE0 movs r4, 0x10 b _0800BFE8 _0800BFE0: lsrs r4, r1, 20 cmp r4, 0 bne _0800BFE8 movs r4, 0x1 _0800BFE8: bl sub_800B620 lsls r0, 24 lsrs r5, r0, 24 ldr r0, _0800C018 ldrh r0, [r0] cmp r0, 0 bne _0800C03C ldr r3, _0800C01C ldrh r0, [r3] ldr r2, _0800C020 cmp r0, r2 beq _0800C044 ldr r1, _0800C024 ldrh r0, [r1] cmp r0, 0x2 bne _0800C02C movs r0, 0x3 strh r0, [r1] ldr r0, _0800C028 adds r1, r4, 0 bl sub_80AF140 b _0800C044 .align 2, 0 _0800C018: .4byte gUnknown_202D690 _0800C01C: .4byte gUnknown_202D68A _0800C020: .4byte 0x000003e7 _0800C024: .4byte gUnknown_202D688 _0800C028: .4byte gUnknown_20008F0 _0800C02C: strh r2, [r3] ldr r0, _0800C038 bl sub_80AF7C0 b _0800C044 .align 2, 0 _0800C038: .4byte gUnknown_20008F0 _0800C03C: ldr r1, _0800C05C ldr r2, _0800C060 adds r0, r2, 0 strh r0, [r1] _0800C044: ldr r1, _0800C064 ldr r2, _0800C060 adds r0, r2, 0 strh r0, [r1] cmp r5, 0 beq _0800C054 bl sub_800B5F0 _0800C054: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0800C05C: .4byte gUnknown_202D68A _0800C060: .4byte 0x000003e7 _0800C064: .4byte gUnknown_202D68C thumb_func_end sub_800BFD0 thumb_func_start sub_800C068 sub_800C068: ldr r0, _0800C070 ldrh r0, [r0] bx lr .align 2, 0 _0800C070: .4byte gUnknown_202D68A thumb_func_end sub_800C068 thumb_func_start sub_800C074 sub_800C074: push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 16 lsrs r5, r0, 16 mov r8, r5 lsls r1, 16 lsrs r6, r1, 16 ldr r0, _0800C0FC cmp r5, r0 bne _0800C08C b _0800C208 _0800C08C: movs r7, 0x80 lsls r7, 1 cmp r6, r7 bls _0800C096 adds r6, r7, 0 _0800C096: adds r0, r5, 0 bl sub_800CACC lsls r0, 24 cmp r0, 0 bne _0800C0A4 b _0800C1B0 _0800C0A4: adds r0, r5, 0 bl sub_800CAE0 lsls r0, 16 lsrs r7, r0, 16 cmp r7, 0x1 beq _0800C0B4 b _0800C1D0 _0800C0B4: bl sub_800B620 lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r6, _0800C100 strh r5, [r6] ldr r4, _0800C104 ldrh r0, [r4] adds r2, r0, 0 cmp r2, 0 bne _0800C144 ldr r0, _0800C108 ldrh r1, [r0] ldr r0, _0800C10C cmp r1, r0 beq _0800C12C ldr r0, _0800C110 ldrh r1, [r0] subs r0, r1, 0x1 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bhi _0800C120 strh r7, [r4] ldr r1, _0800C114 movs r0, 0x10 strh r0, [r1] ldr r0, _0800C118 strb r2, [r0] ldr r0, _0800C11C movs r1, 0x1 bl sub_80AF150 b _0800C15E .align 2, 0 _0800C0FC: .4byte 0x000003e5 _0800C100: .4byte gUnknown_202D68E _0800C104: .4byte gUnknown_202D690 _0800C108: .4byte gUnknown_202D68A _0800C10C: .4byte 0x000003e7 _0800C110: .4byte gUnknown_202D688 _0800C114: .4byte gUnknown_202D692 _0800C118: .4byte gUnknown_202D694 _0800C11C: .4byte gUnknown_20008F0 _0800C120: lsls r0, r1, 16 lsrs r0, 16 cmp r0, 0x3 bne _0800C12C movs r0, 0x2 b _0800C15C _0800C12C: movs r0, 0x3 strh r0, [r4] ldr r0, _0800C140 bl sub_80AF7C0 ldrh r0, [r6] bl sub_80AEFA8 b _0800C15E .align 2, 0 _0800C140: .4byte gUnknown_20008F0 _0800C144: subs r0, 0x1 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bls _0800C15E ldr r0, _0800C17C bl sub_80AF7C0 ldrh r0, [r6] bl sub_80AEFA8 movs r0, 0x3 _0800C15C: strh r0, [r4] _0800C15E: ldr r0, _0800C180 ldrh r0, [r0] cmp r0, 0x26 bgt _0800C184 cmp r0, 0x25 bge _0800C19A cmp r0, 0x1A blt _0800C1A0 cmp r0, 0x1F ble _0800C19A cmp r0, 0x23 bgt _0800C1A0 cmp r0, 0x22 blt _0800C1A0 b _0800C19A .align 2, 0 _0800C17C: .4byte gUnknown_20008F0 _0800C180: .4byte gUnknown_202D68A _0800C184: cmp r0, 0x7A beq _0800C19A cmp r0, 0x7A bgt _0800C196 cmp r0, 0x77 bgt _0800C1A0 cmp r0, 0x75 blt _0800C1A0 b _0800C19A _0800C196: cmp r0, 0x7F bne _0800C1A0 _0800C19A: ldr r1, _0800C1AC movs r0, 0x1 strb r0, [r1] _0800C1A0: mov r0, r8 cmp r0, 0 beq _0800C208 bl sub_800B5F0 b _0800C208 .align 2, 0 _0800C1AC: .4byte gUnknown_202D694 _0800C1B0: adds r0, r5, 0 bl sub_800CAAC lsls r0, 24 cmp r0, 0 beq _0800C208 adds r0, r5, 0 bl sub_800CAE0 lsls r0, 16 lsrs r0, 16 lsls r2, r0, 3 ldr r1, _0800C1D8 adds r4, r2, r1 cmp r0, 0x1 bhi _0800C1DC _0800C1D0: adds r0, r5, 0 bl nullsub_20 b _0800C208 .align 2, 0 _0800C1D8: .4byte gUnknown_3000FD8 _0800C1DC: bl sub_800B620 lsls r0, 24 lsrs r5, r0, 24 mov r0, r8 bl sub_80AEFA8 movs r0, 0x1 strh r0, [r4] mov r0, r8 strh r0, [r4, 0x2] cmp r6, r7 bne _0800C1FA movs r0, 0 b _0800C1FC _0800C1FA: movs r0, 0x1 _0800C1FC: strb r0, [r4, 0x6] strh r6, [r4, 0x4] cmp r5, 0 beq _0800C208 bl sub_800B5F0 _0800C208: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_800C074 thumb_func_start sub_800C214 sub_800C214: push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 16 lsrs r5, r0, 16 lsls r1, 16 lsrs r7, r1, 16 movs r0, 0x80 lsls r0, 1 cmp r7, r0 bls _0800C22C adds r7, r0, 0 _0800C22C: adds r0, r5, 0 bl sub_800CACC lsls r0, 24 cmp r0, 0 bne _0800C286 adds r0, r5, 0 bl sub_800CAAC lsls r0, 24 cmp r0, 0 beq _0800C286 adds r0, r5, 0 bl sub_800CAE0 lsls r0, 16 lsrs r0, 16 ldr r2, _0800C290 lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r2 ldr r1, [r1] mov r8, r1 lsls r2, r0, 3 ldr r1, _0800C294 adds r4, r2, r1 cmp r0, 0x1 bls _0800C286 bl sub_800B620 lsls r0, 24 lsrs r6, r0, 24 ldrh r0, [r4, 0x2] cmp r0, r5 bne _0800C27E mov r0, r8 movs r1, 0xF adds r2, r7, 0 bl sub_80AFF50 _0800C27E: cmp r6, 0 beq _0800C286 bl sub_800B5F0 _0800C286: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0800C290: .4byte gUnknown_9E8665C _0800C294: .4byte gUnknown_3000FD8 thumb_func_end sub_800C214 thumb_func_start sub_800C298 sub_800C298: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 16 lsrs r5, r0, 16 ldr r0, _0800C2F0 mov r8, r0 cmp r5, r8 bne _0800C2FC bl sub_800B620 lsls r0, 24 lsrs r0, 24 mov r9, r0 ldr r4, _0800C2F4 ldr r0, _0800C2F8 movs r1, 0 mov r10, r1 movs r7, 0 adds r6, r0, 0 adds r6, 0x18 movs r5, 0x4 _0800C2C8: ldr r0, [r6] bl sub_80AF7C0 strh r7, [r4] mov r2, r8 strh r2, [r4, 0x2] strh r7, [r4, 0x4] mov r0, r10 strb r0, [r4, 0x6] adds r6, 0xC subs r5, 0x1 adds r4, 0x8 cmp r5, 0 bge _0800C2C8 mov r1, r9 cmp r1, 0 beq _0800C3DE bl sub_800B5F0 b _0800C3DE .align 2, 0 _0800C2F0: .4byte 0x000003e5 _0800C2F4: .4byte gUnknown_3000FE8 _0800C2F8: .4byte gUnknown_9E8665C _0800C2FC: adds r0, r5, 0 bl sub_800CAAC lsls r0, 24 cmp r0, 0 beq _0800C364 adds r0, r5, 0 bl sub_800CAE0 lsls r0, 16 lsrs r0, 16 ldr r2, _0800C330 lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r2 ldr r7, [r1] lsls r2, r0, 3 ldr r1, _0800C334 adds r4, r2, r1 cmp r0, 0x1 bhi _0800C338 adds r0, r5, 0 bl nullsub_21 b _0800C3DE .align 2, 0 _0800C330: .4byte gUnknown_9E8665C _0800C334: .4byte gUnknown_3000FD8 _0800C338: bl sub_800B620 lsls r0, 24 lsrs r6, r0, 24 ldrh r0, [r4, 0x2] cmp r0, r5 bne _0800C35A adds r0, r7, 0 bl sub_80AF7C0 movs r1, 0 movs r0, 0 strh r0, [r4] mov r2, r8 strh r2, [r4, 0x2] strh r0, [r4, 0x4] strb r1, [r4, 0x6] _0800C35A: cmp r6, 0 beq _0800C3DE bl sub_800B5F0 b _0800C3DE _0800C364: ldr r0, _0800C398 cmp r5, r0 bne _0800C3A8 bl sub_800B620 lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0800C39C ldrh r0, [r0] cmp r0, 0 beq _0800C38C ldr r1, _0800C3A0 ldrh r0, [r1] cmp r0, r8 beq _0800C38C mov r0, r8 strh r0, [r1] ldr r0, _0800C3A4 bl sub_80AF7C0 _0800C38C: cmp r4, 0 beq _0800C3DE bl sub_800B5F0 b _0800C3DE .align 2, 0 _0800C398: .4byte 0x000003e6 _0800C39C: .4byte gUnknown_202D690 _0800C3A0: .4byte gUnknown_202D68E _0800C3A4: .4byte gUnknown_2000970 _0800C3A8: adds r0, r5, 0 bl sub_800CACC lsls r0, 24 cmp r0, 0 beq _0800C3DE bl sub_800B620 lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0800C3EC ldrh r0, [r0] cmp r0, 0 beq _0800C3D6 ldr r1, _0800C3F0 ldrh r0, [r1] cmp r0, r5 bne _0800C3D6 mov r2, r8 strh r2, [r1] ldr r0, _0800C3F4 bl sub_80AF7C0 _0800C3D6: cmp r4, 0 beq _0800C3DE bl sub_800B5F0 _0800C3DE: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0800C3EC: .4byte gUnknown_202D690 _0800C3F0: .4byte gUnknown_202D68E _0800C3F4: .4byte gUnknown_2000970 thumb_func_end sub_800C298 thumb_func_start sub_800C3F8 sub_800C3F8: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 16 lsrs r4, r0, 16 lsls r1, 16 movs r0, 0x80 lsls r0, 17 cmp r1, r0 bls _0800C416 movs r0, 0x10 mov r9, r0 b _0800C422 _0800C416: lsrs r1, 20 mov r9, r1 cmp r1, 0 bne _0800C422 movs r1, 0x1 mov r9, r1 _0800C422: ldr r0, _0800C460 mov r8, r0 cmp r4, r8 bne _0800C496 bl sub_800B620 lsls r0, 24 lsrs r0, 24 mov r10, r0 movs r7, 0x2 ldr r5, _0800C464 ldr r0, _0800C468 adds r6, r0, 0 adds r6, 0x18 _0800C43E: ldrh r0, [r5, 0x2] cmp r0, r8 beq _0800C47E lsls r0, r7, 16 lsrs r0, 16 bl sub_800CAF0 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _0800C46C ldr r0, [r6] mov r1, r9 bl sub_80AF140 b _0800C47E .align 2, 0 _0800C460: .4byte 0x000003e5 _0800C464: .4byte gUnknown_3000FE8 _0800C468: .4byte gUnknown_9E8665C _0800C46C: ldr r0, [r6] bl sub_80AF7C0 strh r4, [r5] mov r1, r8 strh r1, [r5, 0x2] strh r4, [r5, 0x4] movs r0, 0 strb r0, [r5, 0x6] _0800C47E: adds r6, 0xC adds r7, 0x1 adds r5, 0x8 cmp r7, 0x6 ble _0800C43E mov r1, r10 cmp r1, 0 bne _0800C490 b _0800C5BE _0800C490: bl sub_800B5F0 b _0800C5BE _0800C496: adds r0, r4, 0 bl sub_800CAAC lsls r0, 24 cmp r0, 0 beq _0800C508 adds r0, r4, 0 bl sub_800CAE0 lsls r0, 16 lsrs r4, r0, 16 lsls r1, r4, 3 ldr r0, _0800C4E4 adds r5, r1, r0 ldr r1, _0800C4E8 lsls r0, r4, 1 adds r0, r4 lsls r0, 2 adds r0, r1 ldr r6, [r0] bl sub_800B620 lsls r0, 24 lsrs r7, r0, 24 ldrh r0, [r5, 0x2] cmp r0, r8 beq _0800C4FE adds r0, r4, 0 bl sub_800CAF0 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _0800C4EC adds r0, r6, 0 mov r1, r9 bl sub_80AF140 b _0800C4FE .align 2, 0 _0800C4E4: .4byte gUnknown_3000FD8 _0800C4E8: .4byte gUnknown_9E8665C _0800C4EC: adds r0, r6, 0 bl sub_80AF7C0 movs r0, 0 strh r4, [r5] mov r1, r8 strh r1, [r5, 0x2] strh r4, [r5, 0x4] strb r0, [r5, 0x6] _0800C4FE: cmp r7, 0 beq _0800C5BE bl sub_800B5F0 b _0800C5BE _0800C508: ldr r0, _0800C53C cmp r4, r0 bne _0800C564 bl sub_800B620 lsls r0, 24 lsrs r5, r0, 24 ldr r0, _0800C540 ldrh r0, [r0] cmp r0, 0 beq _0800C556 ldr r4, _0800C544 ldrh r0, [r4] cmp r0, r8 beq _0800C556 movs r0, 0x1 bl sub_800CAF0 lsls r0, 24 cmp r0, 0 beq _0800C54C ldr r0, _0800C548 mov r1, r9 bl sub_80AF140 b _0800C556 .align 2, 0 _0800C53C: .4byte 0x000003e6 _0800C540: .4byte gUnknown_202D690 _0800C544: .4byte gUnknown_202D68E _0800C548: .4byte gUnknown_2000970 _0800C54C: ldr r0, _0800C560 bl sub_80AF7C0 mov r0, r8 strh r0, [r4] _0800C556: cmp r5, 0 beq _0800C5BE bl sub_800B5F0 b _0800C5BE .align 2, 0 _0800C560: .4byte gUnknown_2000970 _0800C564: adds r0, r4, 0 bl sub_800CACC lsls r0, 24 cmp r0, 0 beq _0800C5BE bl sub_800B620 lsls r0, 24 lsrs r6, r0, 24 ldr r0, _0800C5A0 ldrh r0, [r0] cmp r0, 0 beq _0800C5B6 ldr r5, _0800C5A4 ldrh r0, [r5] cmp r0, r4 bne _0800C5B6 movs r0, 0x1 bl sub_800CAF0 lsls r0, 24 cmp r0, 0 beq _0800C5AC ldr r0, _0800C5A8 mov r1, r9 bl sub_80AF140 b _0800C5B6 .align 2, 0 _0800C5A0: .4byte gUnknown_202D690 _0800C5A4: .4byte gUnknown_202D68E _0800C5A8: .4byte gUnknown_2000970 _0800C5AC: ldr r0, _0800C5CC bl sub_80AF7C0 mov r1, r8 strh r1, [r5] _0800C5B6: cmp r6, 0 beq _0800C5BE bl sub_800B5F0 _0800C5BE: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0800C5CC: .4byte gUnknown_2000970 thumb_func_end sub_800C3F8 thumb_func_start sub_800C5D0 sub_800C5D0: push {r4,r5,lr} lsls r0, 16 lsrs r4, r0, 16 adds r5, r4, 0 adds r0, r4, 0 bl sub_800CACC lsls r0, 24 cmp r0, 0 beq _0800C600 ldr r0, _0800C5F8 ldrh r0, [r0] cmp r0, 0 beq _0800C630 ldr r0, _0800C5FC ldrh r0, [r0] cmp r0, r4 bne _0800C630 movs r0, 0x1 b _0800C632 .align 2, 0 _0800C5F8: .4byte gUnknown_202D690 _0800C5FC: .4byte gUnknown_202D68E _0800C600: adds r0, r4, 0 bl sub_800CAAC lsls r0, 24 cmp r0, 0 beq _0800C630 adds r0, r4, 0 bl sub_800CAE0 lsls r0, 16 lsrs r0, 16 lsls r2, r0, 3 ldr r1, _0800C62C adds r2, r1 cmp r0, 0x1 bls _0800C630 ldrh r0, [r2, 0x2] cmp r0, r5 bne _0800C630 movs r0, 0x1 b _0800C632 .align 2, 0 _0800C62C: .4byte gUnknown_3000FD8 _0800C630: movs r0, 0 _0800C632: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_800C5D0 thumb_func_start SoundVSync SoundVSync: push {r4,lr} bl sub_800B620 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl m4aSoundVSync cmp r4, 0 beq _0800C650 bl sub_800B5F0 _0800C650: pop {r4} pop {r0} bx r0 thumb_func_end SoundVSync thumb_func_start nullsub_18 nullsub_18: bx lr thumb_func_end nullsub_18 thumb_func_start UpdateSound UpdateSound: push {r4-r7,lr} mov r7, r8 push {r7} bl m4aSoundMain ldr r4, _0800C680 ldrh r0, [r4] cmp r0, 0 bne _0800C670 b _0800C7E0 _0800C670: cmp r0, 0x2 beq _0800C6C0 cmp r0, 0x2 bgt _0800C684 cmp r0, 0x1 beq _0800C68E b _0800C8A2 .align 2, 0 _0800C680: .4byte gUnknown_202D690 _0800C684: cmp r0, 0x3 beq _0800C700 cmp r0, 0x4 beq _0800C730 b _0800C8A2 _0800C68E: ldr r2, _0800C69C ldrh r0, [r2] cmp r0, 0 beq _0800C6A0 subs r0, 0x1 strh r0, [r2] b _0800C8A2 .align 2, 0 _0800C69C: .4byte gUnknown_202D692 _0800C6A0: ldr r3, _0800C6B4 ldrh r1, [r3] ldr r0, _0800C6B8 cmp r1, r0 bne _0800C6BC movs r0, 0x4 strh r0, [r4] movs r0, 0x20 strh r0, [r2] b _0800C8A2 .align 2, 0 _0800C6B4: .4byte gUnknown_202D68E _0800C6B8: .4byte 0x000003e5 _0800C6BC: ldrh r0, [r3] b _0800C6E4 _0800C6C0: ldr r0, _0800C6F0 ldrh r1, [r0] ldr r0, _0800C6F4 cmp r1, r0 beq _0800C6D8 movs r0, 0 bl sub_800CAF0 lsls r0, 24 cmp r0, 0 beq _0800C6D8 b _0800C8A2 _0800C6D8: ldr r2, _0800C6F8 ldrh r1, [r2] ldr r0, _0800C6FC cmp r1, r0 beq _0800C718 ldrh r0, [r2] _0800C6E4: bl sub_80AEFA8 movs r0, 0x3 strh r0, [r4] b _0800C8A2 .align 2, 0 _0800C6F0: .4byte gUnknown_202D68A _0800C6F4: .4byte 0x000003e7 _0800C6F8: .4byte gUnknown_202D68E _0800C6FC: .4byte 0x000003e5 _0800C700: ldr r0, _0800C724 ldrh r1, [r0] ldr r0, _0800C728 cmp r1, r0 beq _0800C718 movs r0, 0x1 bl sub_800CAF0 lsls r0, 24 cmp r0, 0 bne _0800C718 b _0800C8A2 _0800C718: movs r0, 0x4 strh r0, [r4] ldr r1, _0800C72C movs r0, 0x20 strh r0, [r1] b _0800C8A2 .align 2, 0 _0800C724: .4byte gUnknown_202D68E _0800C728: .4byte 0x000003e5 _0800C72C: .4byte gUnknown_202D692 _0800C730: ldr r0, _0800C74C ldrh r1, [r0] ldr r0, _0800C750 cmp r1, r0 beq _0800C754 movs r0, 0x1 bl sub_800CAF0 lsls r0, 24 cmp r0, 0 beq _0800C748 b _0800C8A2 _0800C748: b _0800C75A .align 2, 0 _0800C74C: .4byte gUnknown_202D68E _0800C750: .4byte 0x000003e5 _0800C754: ldr r0, _0800C76C bl sub_80AF7C0 _0800C75A: ldr r1, _0800C770 ldrh r0, [r1] adds r2, r0, 0 cmp r2, 0 beq _0800C774 subs r0, 0x1 strh r0, [r1] b _0800C8A2 .align 2, 0 _0800C76C: .4byte gUnknown_2000970 _0800C770: .4byte gUnknown_202D692 _0800C774: ldr r3, _0800C794 ldrh r1, [r3] ldr r0, _0800C798 cmp r1, r0 beq _0800C7B4 ldr r1, _0800C79C movs r0, 0x1 strh r0, [r1] ldr r0, _0800C7A0 ldrb r0, [r0] cmp r0, 0 beq _0800C7A4 ldrh r0, [r3] bl sub_80AEFA8 b _0800C7BE .align 2, 0 _0800C794: .4byte gUnknown_202D68A _0800C798: .4byte 0x000003e7 _0800C79C: .4byte gUnknown_202D688 _0800C7A0: .4byte gUnknown_202D694 _0800C7A4: ldr r0, _0800C7B0 movs r1, 0x4 bl sub_80AF170 b _0800C7BE .align 2, 0 _0800C7B0: .4byte gUnknown_20008F0 _0800C7B4: ldr r0, _0800C7CC strh r2, [r0] ldr r0, _0800C7D0 bl sub_80AF7C0 _0800C7BE: ldr r1, _0800C7D4 movs r0, 0 strh r0, [r1] ldr r1, _0800C7D8 ldr r2, _0800C7DC b _0800C84C .align 2, 0 _0800C7CC: .4byte gUnknown_202D688 _0800C7D0: .4byte gUnknown_20008F0 _0800C7D4: .4byte gUnknown_202D690 _0800C7D8: .4byte gUnknown_202D68E _0800C7DC: .4byte 0x000003e5 _0800C7E0: ldr r5, _0800C810 ldrh r0, [r5] cmp r0, 0 beq _0800C864 cmp r0, 0x3 bgt _0800C8A2 cmp r0, 0x2 bge _0800C81C cmp r0, 0x1 bne _0800C8A2 ldr r0, _0800C814 ldrh r1, [r0] ldr r0, _0800C818 cmp r1, r0 beq _0800C80A movs r0, 0 bl sub_800CAF0 lsls r0, 24 cmp r0, 0 beq _0800C8A2 _0800C80A: movs r0, 0x2 strh r0, [r5] b _0800C8A2 .align 2, 0 _0800C810: .4byte gUnknown_202D688 _0800C814: .4byte gUnknown_202D68A _0800C818: .4byte 0x000003e7 _0800C81C: ldr r0, _0800C834 ldrh r1, [r0] ldr r0, _0800C838 cmp r1, r0 beq _0800C83C movs r0, 0 bl sub_800CAF0 lsls r0, 24 cmp r0, 0 bne _0800C8A2 b _0800C842 .align 2, 0 _0800C834: .4byte gUnknown_202D68A _0800C838: .4byte 0x000003e7 _0800C83C: ldr r0, _0800C854 bl sub_80AF7C0 _0800C842: ldr r1, _0800C858 movs r0, 0 strh r0, [r1] ldr r1, _0800C85C ldr r2, _0800C860 _0800C84C: adds r0, r2, 0 strh r0, [r1] b _0800C8A2 .align 2, 0 _0800C854: .4byte gUnknown_20008F0 _0800C858: .4byte gUnknown_202D688 _0800C85C: .4byte gUnknown_202D68A _0800C860: .4byte 0x000003e7 _0800C864: movs r0, 0 bl sub_800CAF0 lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _0800C8A2 ldr r6, _0800C890 ldrh r2, [r6] adds r1, r2, 0 ldr r4, _0800C894 cmp r1, r4 beq _0800C89C movs r0, 0x1 strh r0, [r5] ldr r0, _0800C898 strh r2, [r0] adds r0, r1, 0 bl sub_80AEFA8 strh r4, [r6] b _0800C8A2 .align 2, 0 _0800C890: .4byte gUnknown_202D68C _0800C894: .4byte 0x000003e7 _0800C898: .4byte gUnknown_202D68A _0800C89C: strh r0, [r5] ldr r0, _0800C8C4 strh r1, [r0] _0800C8A2: movs r5, 0x2 ldr r4, _0800C8C8 ldr r0, _0800C8CC mov r8, r0 movs r6, 0x18 movs r7, 0 _0800C8AE: ldrh r1, [r4, 0x2] cmp r1, r8 beq _0800C926 ldrh r0, [r4] cmp r0, 0x1 beq _0800C8D0 cmp r0, 0x1 ble _0800C926 cmp r0, 0x2 beq _0800C8F0 b _0800C926 .align 2, 0 _0800C8C4: .4byte gUnknown_202D68A _0800C8C8: .4byte gUnknown_3000FE8 _0800C8CC: .4byte 0x000003e5 _0800C8D0: ldr r0, _0800C8EC cmp r1, r0 beq _0800C8E4 lsls r0, r5, 16 lsrs r0, 16 bl sub_800CAF0 lsls r0, 24 cmp r0, 0 beq _0800C926 _0800C8E4: movs r0, 0x2 strh r0, [r4] b _0800C926 .align 2, 0 _0800C8EC: .4byte 0x000003e7 _0800C8F0: lsls r0, r5, 16 lsrs r0, 16 bl sub_800CAF0 lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _0800C91C ldrb r0, [r4, 0x6] cmp r0, 0 beq _0800C926 strb r7, [r4, 0x6] ldr r0, _0800C918 adds r0, r6, r0 ldr r0, [r0] ldrh r2, [r4, 0x4] movs r1, 0xFF bl sub_80AFF50 b _0800C926 .align 2, 0 _0800C918: .4byte gUnknown_9E8665C _0800C91C: strh r0, [r4] mov r1, r8 strh r1, [r4, 0x2] strh r0, [r4, 0x4] strb r7, [r4, 0x6] _0800C926: adds r6, 0xC adds r5, 0x1 adds r4, 0x8 cmp r5, 0x6 ble _0800C8AE pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end UpdateSound thumb_func_start sub_800C93C sub_800C93C: push {r4,r5,lr} ldr r0, _0800C984 movs r1, 0x10 bl sub_800C3F8 ldr r0, _0800C988 movs r1, 0x10 bl sub_800C3F8 bl sub_800B620 lsls r0, 24 lsrs r5, r0, 24 ldr r0, _0800C98C ldrh r3, [r0] cmp r3, 0 bne _0800C9AC ldr r0, _0800C990 ldrh r1, [r0] ldr r0, _0800C994 cmp r1, r0 beq _0800C9AC ldr r1, _0800C998 ldrh r2, [r1] subs r0, r2, 0x1 lsls r0, 16 lsrs r0, 16 adds r4, r1, 0 cmp r0, 0x1 bhi _0800C9AC adds r1, r2, 0 cmp r1, 0x2 bne _0800C9A0 ldr r0, _0800C99C strb r3, [r0] b _0800C9A8 .align 2, 0 _0800C984: .4byte 0x000003e5 _0800C988: .4byte 0x000003e6 _0800C98C: .4byte gUnknown_202D690 _0800C990: .4byte gUnknown_202D68A _0800C994: .4byte 0x000003e7 _0800C998: .4byte gUnknown_202D688 _0800C99C: .4byte gUnknown_202D694 _0800C9A0: cmp r1, 0x1 bne _0800C9A8 ldr r0, _0800C9C4 strb r1, [r0] _0800C9A8: movs r0, 0x4 strh r0, [r4] _0800C9AC: ldr r0, _0800C9C8 bl sub_80AF7C0 bl sub_80AF5AC cmp r5, 0 beq _0800C9BE bl sub_800B5F0 _0800C9BE: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0800C9C4: .4byte gUnknown_202D694 _0800C9C8: .4byte gUnknown_20008F0 thumb_func_end sub_800C93C thumb_func_start sub_800C9CC sub_800C9CC: push {r4,lr} bl sub_800B620 lsls r0, 24 lsrs r4, r0, 24 bl sub_80AF628 ldr r0, _0800CA08 ldrh r0, [r0] cmp r0, 0 bne _0800CA22 ldr r2, _0800CA0C ldrh r1, [r2] ldr r0, _0800CA10 cmp r1, r0 beq _0800CA22 ldr r1, _0800CA14 ldrh r0, [r1] cmp r0, 0x4 bne _0800CA22 movs r0, 0x1 strh r0, [r1] ldr r0, _0800CA18 ldrb r0, [r0] cmp r0, 0 beq _0800CA1C ldrh r0, [r2] bl sub_80AEFA8 b _0800CA22 .align 2, 0 _0800CA08: .4byte gUnknown_202D690 _0800CA0C: .4byte gUnknown_202D68A _0800CA10: .4byte 0x000003e7 _0800CA14: .4byte gUnknown_202D688 _0800CA18: .4byte gUnknown_202D694 _0800CA1C: ldr r0, _0800CA30 bl sub_80AF108 _0800CA22: cmp r4, 0 beq _0800CA2A bl sub_800B5F0 _0800CA2A: pop {r4} pop {r0} bx r0 .align 2, 0 _0800CA30: .4byte gUnknown_20008F0 thumb_func_end sub_800C9CC thumb_func_start nullsub_179 nullsub_179: bx lr thumb_func_end nullsub_179 thumb_func_start sub_800CA38 sub_800CA38: push {r4,lr} adds r4, r0, 0 bl sub_800CA9C lsls r0, 24 cmp r0, 0 beq _0800CA54 lsls r0, r4, 16 lsrs r0, 16 bl sub_800CAE0 lsls r0, 16 cmp r0, 0 beq _0800CA70 _0800CA54: adds r0, r4, 0 bl sub_800CACC lsls r0, 24 cmp r0, 0 beq _0800CA74 lsls r0, r4, 16 lsrs r0, 16 bl sub_800CAE0 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bne _0800CA90 _0800CA70: movs r0, 0x1 b _0800CA92 _0800CA74: adds r0, r4, 0 bl sub_800CAAC lsls r0, 24 cmp r0, 0 beq _0800CA90 lsls r0, r4, 16 lsrs r0, 16 bl sub_800CAE0 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bhi _0800CA70 _0800CA90: movs r0, 0 _0800CA92: pop {r4} pop {r1} bx r1 thumb_func_end sub_800CA38 thumb_func_start nullsub_19 nullsub_19: bx lr thumb_func_end nullsub_19 thumb_func_start sub_800CA9C sub_800CA9C: push {lr} cmp r0, 0x80 bls _0800CAA6 movs r0, 0 b _0800CAA8 _0800CAA6: movs r0, 0x1 _0800CAA8: pop {r1} bx r1 thumb_func_end sub_800CA9C thumb_func_start sub_800CAAC sub_800CAAC: push {lr} ldr r1, _0800CABC adds r0, r1 ldr r1, _0800CAC0 cmp r0, r1 bls _0800CAC4 movs r0, 0 b _0800CAC6 .align 2, 0 _0800CABC: .4byte 0xfffffed4 _0800CAC0: .4byte 0x0000027f _0800CAC4: movs r0, 0x1 _0800CAC6: pop {r1} bx r1 thumb_func_end sub_800CAAC thumb_func_start sub_800CACC sub_800CACC: push {lr} subs r0, 0xC8 cmp r0, 0x13 bls _0800CAD8 movs r0, 0 b _0800CADA _0800CAD8: movs r0, 0x1 _0800CADA: pop {r1} bx r1 thumb_func_end sub_800CACC thumb_func_start sub_800CAE0 sub_800CAE0: lsls r0, 16 ldr r1, _0800CAEC lsrs r0, 13 adds r0, r1 ldrh r0, [r0, 0x4] bx lr .align 2, 0 _0800CAEC: .4byte gUnknown_9E866BC thumb_func_end sub_800CAE0 thumb_func_start sub_800CAF0 sub_800CAF0: push {lr} lsls r0, 16 lsrs r0, 16 ldr r2, _0800CB0C lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r2 ldr r0, [r1] ldrh r0, [r0, 0x4] cmp r0, 0 beq _0800CB10 movs r0, 0x1 b _0800CB12 .align 2, 0 _0800CB0C: .4byte gUnknown_9E8665C _0800CB10: movs r0, 0 _0800CB12: pop {r1} bx r1 thumb_func_end sub_800CAF0 thumb_func_start nullsub_20 nullsub_20: bx lr thumb_func_end nullsub_20 thumb_func_start nullsub_21 nullsub_21: bx lr thumb_func_end nullsub_21 thumb_func_start sub_800CB20 sub_800CB20: push {lr} bl sub_800BA5C ldr r1, _0800CB48 ldr r0, [r1] adds r0, 0x1 str r0, [r1] ldr r0, _0800CB4C ldrh r1, [r0] movs r0, 0x5 ands r0, r1 cmp r0, 0 beq _0800CB3E bl Random _0800CB3E: bl Random pop {r0} bx r0 .align 2, 0 _0800CB48: .4byte gUnknown_203B0B8 _0800CB4C: .4byte gUnknown_203B0BC thumb_func_end sub_800CB20 thumb_func_start sub_800CB50 sub_800CB50: ldr r0, _0800CB58 ldr r0, [r0] bx lr .align 2, 0 _0800CB58: .4byte gUnknown_203B0B8 thumb_func_end sub_800CB50 thumb_func_start nullsub_180 nullsub_180: bx lr thumb_func_end nullsub_180 thumb_func_start xxx_call_update_bg_sound_input xxx_call_update_bg_sound_input: push {lr} bl xxx_update_bg_sound_input pop {r0} bx r0 thumb_func_end xxx_call_update_bg_sound_input thumb_func_start nullsub_181 nullsub_181: bx lr thumb_func_end nullsub_181 thumb_func_start sub_800CB70 sub_800CB70: movs r0, 0 bx lr thumb_func_end sub_800CB70 thumb_func_start ReadKeyInput ReadKeyInput: push {r4,lr} adds r2, r0, 0 ldr r0, _0800CC38 ldrh r1, [r0] ldr r3, _0800CC3C adds r0, r3, 0 adds r3, r0, 0 eors r3, r1 movs r0, 0 strh r0, [r2] movs r1, 0x40 adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _0800CB94 strh r1, [r2] _0800CB94: movs r0, 0x80 ands r0, r3 cmp r0, 0 beq _0800CBA4 ldrh r0, [r2] movs r1, 0x80 orrs r0, r1 strh r0, [r2] _0800CBA4: movs r0, 0x20 ands r0, r3 cmp r0, 0 beq _0800CBB4 ldrh r0, [r2] movs r1, 0x20 orrs r0, r1 strh r0, [r2] _0800CBB4: movs r0, 0x10 ands r0, r3 cmp r0, 0 beq _0800CBC4 ldrh r0, [r2] movs r1, 0x10 orrs r0, r1 strh r0, [r2] _0800CBC4: movs r0, 0x1 ands r0, r3 cmp r0, 0 beq _0800CBD4 ldrh r0, [r2] movs r1, 0x1 orrs r0, r1 strh r0, [r2] _0800CBD4: movs r0, 0x2 ands r0, r3 cmp r0, 0 beq _0800CBE4 ldrh r0, [r2] movs r1, 0x2 orrs r0, r1 strh r0, [r2] _0800CBE4: movs r0, 0x8 ands r0, r3 cmp r0, 0 beq _0800CBF4 ldrh r0, [r2] movs r1, 0x8 orrs r0, r1 strh r0, [r2] _0800CBF4: movs r0, 0x4 ands r0, r3 cmp r0, 0 beq _0800CC04 ldrh r0, [r2] movs r1, 0x4 orrs r0, r1 strh r0, [r2] _0800CC04: movs r4, 0x80 lsls r4, 1 adds r0, r3, 0 ands r0, r4 cmp r0, 0 beq _0800CC18 ldrh r1, [r2] adds r0, r4, 0 orrs r0, r1 strh r0, [r2] _0800CC18: movs r4, 0x80 lsls r4, 2 adds r0, r3, 0 ands r0, r4 cmp r0, 0 beq _0800CC2C ldrh r1, [r2] adds r0, r4, 0 orrs r0, r1 strh r0, [r2] _0800CC2C: ldr r0, _0800CC40 strh r3, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _0800CC38: .4byte 0x04000130 _0800CC3C: .4byte 0x000003ff _0800CC40: .4byte gUnknown_203B0BC thumb_func_end ReadKeyInput thumb_func_start sub_800CC44 sub_800CC44: push {lr} adds r2, r1, 0 cmp r0, 0 bge _0800CC50 movs r0, 0 b _0800CC56 _0800CC50: cmp r0, 0x10 ble _0800CC56 movs r0, 0x10 _0800CC56: cmp r2, 0 bge _0800CC5E movs r2, 0 b _0800CC64 _0800CC5E: cmp r2, 0x10 ble _0800CC64 movs r2, 0x10 _0800CC64: ldr r1, _0800CC7C strb r0, [r1] ldr r0, _0800CC80 strb r2, [r0] ldr r2, _0800CC84 ldrb r1, [r1] ldrb r0, [r0] lsls r0, 8 orrs r1, r0 strh r1, [r2] pop {r0} bx r0 .align 2, 0 _0800CC7C: .4byte gUnknown_202D6B8 _0800CC80: .4byte gUnknown_202D6B9 _0800CC84: .4byte gUnknown_202D7FA thumb_func_end sub_800CC44 thumb_func_start sub_800CC88 sub_800CC88: ldr r2, _0800CC90 strh r0, [r2, 0x4] strh r1, [r2, 0x6] bx lr .align 2, 0 _0800CC90: .4byte gUnknown_202D698 thumb_func_end sub_800CC88 thumb_func_start sub_800CC94 sub_800CC94: ldr r2, _0800CC9C strh r0, [r2, 0x4] strh r1, [r2, 0x6] bx lr .align 2, 0 _0800CC9C: .4byte gUnknown_202D6A0 thumb_func_end sub_800CC94 thumb_func_start sub_800CCA0 sub_800CCA0: ldr r2, _0800CCA8 strh r0, [r2, 0x4] strh r1, [r2, 0x6] bx lr .align 2, 0 _0800CCA8: .4byte gUnknown_202D6A8 thumb_func_end sub_800CCA0 thumb_func_start sub_800CCAC sub_800CCAC: ldr r2, _0800CCB4 strh r0, [r2, 0x4] strh r1, [r2, 0x6] bx lr .align 2, 0 _0800CCB4: .4byte gUnknown_202D6B0 thumb_func_end sub_800CCAC thumb_func_start sub_800CCB8 sub_800CCB8: push {lr} cmp r0, 0x1 beq _0800CCD4 cmp r0, 0x1 ble _0800CCCA cmp r0, 0x2 beq _0800CCDE cmp r0, 0x3 beq _0800CCE8 _0800CCCA: adds r0, r1, 0 adds r1, r2, 0 bl sub_800CC88 b _0800CCF0 _0800CCD4: adds r0, r1, 0 adds r1, r2, 0 bl sub_800CC94 b _0800CCF0 _0800CCDE: adds r0, r1, 0 adds r1, r2, 0 bl sub_800CCA0 b _0800CCF0 _0800CCE8: adds r0, r1, 0 adds r1, r2, 0 bl sub_800CCAC _0800CCF0: pop {r0} bx r0 thumb_func_end sub_800CCB8 thumb_func_start sub_800CCF4 sub_800CCF4: push {lr} cmp r0, 0x1 beq _0800CD10 cmp r0, 0x1 ble _0800CD06 cmp r0, 0x2 beq _0800CD18 cmp r0, 0x3 beq _0800CD20 _0800CD06: ldr r0, _0800CD0C b _0800CD22 .align 2, 0 _0800CD0C: .4byte gUnknown_202D698 _0800CD10: ldr r0, _0800CD14 b _0800CD22 .align 2, 0 _0800CD14: .4byte gUnknown_202D6A0 _0800CD18: ldr r0, _0800CD1C b _0800CD22 .align 2, 0 _0800CD1C: .4byte gUnknown_202D6A8 _0800CD20: ldr r0, _0800CD28 _0800CD22: strh r1, [r0, 0x4] pop {r0} bx r0 .align 2, 0 _0800CD28: .4byte gUnknown_202D6B0 thumb_func_end sub_800CCF4 thumb_func_start sub_800CD2C sub_800CD2C: push {lr} cmp r0, 0x1 beq _0800CD48 cmp r0, 0x1 ble _0800CD3E cmp r0, 0x2 beq _0800CD50 cmp r0, 0x3 beq _0800CD58 _0800CD3E: ldr r0, _0800CD44 b _0800CD5A .align 2, 0 _0800CD44: .4byte gUnknown_202D698 _0800CD48: ldr r0, _0800CD4C b _0800CD5A .align 2, 0 _0800CD4C: .4byte gUnknown_202D6A0 _0800CD50: ldr r0, _0800CD54 b _0800CD5A .align 2, 0 _0800CD54: .4byte gUnknown_202D6A8 _0800CD58: ldr r0, _0800CD60 _0800CD5A: strh r1, [r0, 0x6] pop {r0} bx r0 .align 2, 0 _0800CD60: .4byte gUnknown_202D6B0 thumb_func_end sub_800CD2C thumb_func_start sub_800CD64 sub_800CD64: ldr r2, _0800CD7C strb r1, [r2] ldr r2, _0800CD80 negs r1, r0 orrs r1, r0 asrs r1, 31 movs r3, 0x80 lsls r3, 8 adds r0, r3, 0 ands r1, r0 strh r1, [r2, 0x2] bx lr .align 2, 0 _0800CD7C: .4byte gUnknown_202D7FE _0800CD80: .4byte gUnknown_202D6A8 thumb_func_end sub_800CD64 thumb_func_start SetBGOBJEnableFlags SetBGOBJEnableFlags: push {r4,lr} movs r3, 0x80 lsls r3, 19 ldrh r1, [r3] ldr r2, _0800CDA4 ands r2, r1 lsls r0, 8 movs r4, 0xF8 lsls r4, 5 adds r1, r4, 0 bics r1, r0 orrs r2, r1 strh r2, [r3] pop {r4} pop {r0} bx r0 .align 2, 0 _0800CDA4: .4byte 0x0000e0ff thumb_func_end SetBGOBJEnableFlags thumb_func_start sub_800CDA8 sub_800CDA8: ldr r1, _0800CDBC str r0, [r1] ldr r2, _0800CDC0 ldr r1, _0800CDC4 lsls r0, 1 adds r0, r1 ldrh r0, [r0] strh r0, [r2] bx lr .align 2, 0 _0800CDBC: .4byte gUnknown_202D800 _0800CDC0: .4byte gUnknown_202D7FC _0800CDC4: .4byte gUnknown_203B0BE thumb_func_end sub_800CDA8 thumb_func_start sub_800CDC8 sub_800CDC8: ldr r0, _0800CDD0 ldr r0, [r0] bx lr .align 2, 0 _0800CDD0: .4byte gUnknown_202D800 thumb_func_end sub_800CDC8 thumb_func_start SetWindowTitle SetWindowTitle: bx lr thumb_func_end SetWindowTitle thumb_func_start nullsub_23 nullsub_23: bx lr thumb_func_end nullsub_23 thumb_func_start nullsub_182 nullsub_182: bx lr thumb_func_end nullsub_182 thumb_func_start sub_800CDE0 sub_800CDE0: movs r0, 0x1 bx lr thumb_func_end sub_800CDE0 thumb_func_start CpuCopy CpuCopy: push {lr} adds r3, r0, 0 cmp r2, 0 bge _0800CDEE adds r2, 0x3 _0800CDEE: lsls r2, 9 lsrs r2, 11 movs r0, 0x80 lsls r0, 19 orrs r2, r0 adds r0, r1, 0 adds r1, r3, 0 bl CpuSet pop {r0} bx r0 thumb_func_end CpuCopy thumb_func_start CpuClear CpuClear: push {lr} sub sp, 0x4 adds r3, r0, 0 movs r0, 0 str r0, [sp] cmp r1, 0 bge _0800CE14 adds r1, 0x3 _0800CE14: lsls r2, r1, 9 lsrs r2, 11 movs r0, 0xA0 lsls r0, 19 orrs r2, r0 mov r0, sp adds r1, r3, 0 bl CpuSet add sp, 0x4 pop {r0} bx r0 thumb_func_end CpuClear thumb_func_start CpuFill CpuFill: push {lr} sub sp, 0x4 adds r3, r0, 0 str r1, [sp] cmp r2, 0 bge _0800CE3A adds r2, 0x3 _0800CE3A: lsls r2, 9 lsrs r2, 11 movs r0, 0xA0 lsls r0, 19 orrs r2, r0 mov r0, sp adds r1, r3, 0 bl CpuSet add sp, 0x4 pop {r0} bx r0 thumb_func_end CpuFill thumb_func_start sub_800CE54 sub_800CE54: push {lr} ldr r2, _0800CEC0 ldrh r0, [r2] movs r3, 0x80 lsls r3, 8 adds r1, r3, 0 orrs r0, r1 ldr r1, _0800CEC4 ands r0, r1 strh r0, [r2] mov r8, r8 mov r8, r8 mov r8, r8 mov r8, r8 ldr r1, _0800CEC8 ands r0, r1 strh r0, [r2] ldr r1, _0800CECC ldr r2, _0800CED0 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 movs r0, 0x3D strh r0, [r1] adds r1, 0x6 ldr r0, _0800CED4 ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _0800CED8 ldrh r0, [r0] strh r0, [r1] ldr r0, _0800CEDC ldrb r1, [r0] cmp r1, 0 beq _0800CEF4 ldr r1, _0800CEE0 ldr r0, _0800CEE4 ldr r2, [r0] adds r0, r2, 0x4 str r0, [r1] ldr r3, _0800CEE8 str r3, [r1, 0x4] ldr r0, _0800CEEC str r0, [r1, 0x8] ldr r0, [r1, 0x8] ldrh r0, [r2] strh r0, [r3] subs r1, 0x6E ldrh r0, [r2, 0x2] strh r0, [r1] ldr r0, _0800CEF0 movs r1, 0xA0 b _0800CEFE .align 2, 0 _0800CEC0: .4byte 0x040000ba _0800CEC4: .4byte 0x0000cdff _0800CEC8: .4byte 0x00007fff _0800CECC: .4byte 0x04000048 _0800CED0: .4byte 0x00003f3f _0800CED4: .4byte gUnknown_202D7FC _0800CED8: .4byte gUnknown_202D7FA _0800CEDC: .4byte gUnknown_2026E38 _0800CEE0: .4byte 0x040000b0 _0800CEE4: .4byte gUnknown_2026E3C _0800CEE8: .4byte 0x04000040 _0800CEEC: .4byte 0xa2600002 _0800CEF0: .4byte 0x04000044 _0800CEF4: ldr r0, _0800CF08 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 _0800CEFE: strh r1, [r0] adds r0, 0x2 strh r1, [r0] pop {r0} bx r0 .align 2, 0 _0800CF08: .4byte 0x04000040 thumb_func_end sub_800CE54 thumb_func_start sub_800CF0C sub_800CF0C: push {lr} bl IdentifyFlash lsls r0, 16 cmp r0, 0 bne _0800CF32 movs r0, 0x3 bl sub_800B6E8 adds r1, r0, 0 movs r0, 0x2 bl SetFlashTimerIntr lsls r0, 16 cmp r0, 0 bne _0800CF32 ldr r1, _0800CF38 movs r0, 0x1 strb r0, [r1] _0800CF32: pop {r0} bx r0 .align 2, 0 _0800CF38: .4byte gUnknown_203B0B4 thumb_func_end sub_800CF0C thumb_func_start sub_800CF3C sub_800CF3C: push {lr} ldr r0, _0800CF54 ldrb r0, [r0] cmp r0, 0 beq _0800CF4E ldr r0, _0800CF58 ldr r0, [r0] bl _call_via_r0 _0800CF4E: pop {r0} bx r0 .align 2, 0 _0800CF54: .4byte gUnknown_203B0B4 _0800CF58: .4byte EraseFlashChip thumb_func_end sub_800CF3C thumb_func_start sub_800CF5C sub_800CF5C: push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 adds r5, r2, 0 ldr r0, _0800CFAC ldrb r0, [r0] cmp r0, 0 beq _0800CFB4 adds r4, r1, 0 ldr r0, _0800CFB0 cmp r5, r0 ble _0800CF94 movs r7, 0x80 lsls r7, 5 mov r8, r0 _0800CF7C: lsls r0, r6, 16 lsrs r0, 16 movs r1, 0 adds r2, r4, 0 adds r3, r7, 0 bl ReadFlash adds r6, 0x1 adds r4, r7 subs r5, r7 cmp r5, r8 bgt _0800CF7C _0800CF94: cmp r5, 0 ble _0800CFA6 lsls r0, r6, 16 lsrs r0, 16 movs r1, 0 adds r2, r4, 0 adds r3, r5, 0 bl ReadFlash _0800CFA6: movs r0, 0 b _0800CFB6 .align 2, 0 _0800CFAC: .4byte gUnknown_203B0B4 _0800CFB0: .4byte 0x00000fff _0800CFB4: movs r0, 0x3 _0800CFB6: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_800CF5C thumb_func_start sub_800CFC0 sub_800CFC0: push {r4-r6,lr} ldr r4, _0800CFD8 add sp, r4 adds r6, r0, 0 adds r5, r2, 0 ldr r0, _0800CFDC ldrb r0, [r0] cmp r0, 0 beq _0800D03C movs r2, 0x1 adds r4, r1, 0 b _0800CFEC .align 2, 0 _0800CFD8: .4byte 0xfffff000 _0800CFDC: .4byte gUnknown_203B0B4 _0800CFE0: adds r6, 0x1 movs r0, 0x80 lsls r0, 5 adds r4, r0 ldr r0, _0800D034 adds r5, r0 _0800CFEC: ldr r0, _0800D038 cmp r5, r0 ble _0800D002 adds r0, r6, 0 adds r1, r4, 0 bl sub_800D04C lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 bne _0800CFE0 _0800D002: cmp r2, 0 beq _0800D03C cmp r5, 0 ble _0800D02C movs r2, 0x80 lsls r2, 5 mov r0, sp movs r1, 0xFF bl MemoryFill8 mov r0, sp adds r1, r4, 0 adds r2, r5, 0 bl MemoryCopy8 adds r0, r6, 0 mov r1, sp bl sub_800D04C lsls r0, 24 lsrs r2, r0, 24 _0800D02C: cmp r2, 0 beq _0800D03C movs r0, 0 b _0800D03E .align 2, 0 _0800D034: .4byte 0xfffff000 _0800D038: .4byte 0x00000fff _0800D03C: movs r0, 0x3 _0800D03E: movs r3, 0x80 lsls r3, 5 add sp, r3 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_800CFC0 thumb_func_start sub_800D04C sub_800D04C: push {r4-r7,lr} adds r5, r1, 0 movs r6, 0x3 ldr r7, _0800D07C lsls r0, 16 lsrs r4, r0, 16 _0800D058: ldr r2, [r7] adds r0, r4, 0 adds r1, r5, 0 bl _call_via_r2 lsls r0, 16 cmp r0, 0 bne _0800D080 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x80 lsls r2, 5 bl VerifyFlashSectorNBytes cmp r0, 0 bne _0800D080 movs r0, 0x1 b _0800D08A .align 2, 0 _0800D07C: .4byte ProgramFlashSector _0800D080: adds r0, r6, 0 subs r6, 0x1 cmp r0, 0 bgt _0800D058 movs r0, 0 _0800D08A: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_800D04C thumb_func_start Hang Hang: push {lr} _0800D092: swi 0x2 b _0800D092 thumb_func_end Hang thumb_func_start sub_800D098 sub_800D098: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r1, _0800D138 _0800D0A4: ldrh r0, [r1] cmp r0, 0x9F bls _0800D0A4 movs r1, 0x80 lsls r1, 19 ldrh r0, [r1] adds r7, r0, 0 movs r0, 0 strh r0, [r1] movs r1, 0xA0 lsls r1, 19 ldr r2, _0800D13C adds r0, r2, 0 strh r0, [r1] ldr r2, _0800D140 ldrh r0, [r2] ldr r1, _0800D144 cmp r0, r1 beq _0800D0D0 _0800D0CA: ldrh r0, [r2] cmp r0, r1 bne _0800D0CA _0800D0D0: ldr r6, _0800D148 movs r0, 0 mov r8, r0 strh r0, [r6] ldr r5, _0800D14C ldrh r4, [r5] movs r1, 0xC0 lsls r1, 6 adds r0, r1, 0 strh r0, [r5] ldr r2, _0800D150 mov r10, r2 ldr r1, _0800D154 adds r0, r1, 0 strh r0, [r2] movs r2, 0x1 mov r9, r2 strh r2, [r6] bl SoundBiasReset swi 0x3 bl SoundBiasSet mov r0, r8 strh r0, [r6] strh r4, [r5] mov r1, r10 strh r0, [r1] mov r2, r9 strh r2, [r6] ldr r1, _0800D138 _0800D10E: ldrh r0, [r1] cmp r0, 0x9F bls _0800D10E movs r0, 0x80 lsls r0, 19 strh r7, [r0] ldr r2, _0800D140 ldrh r0, [r2] ldr r1, _0800D144 cmp r0, r1 beq _0800D12A _0800D124: ldrh r0, [r2] cmp r0, r1 bne _0800D124 _0800D12A: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0800D138: .4byte 0x04000006 _0800D13C: .4byte 0x0000efff _0800D140: .4byte 0x04000130 _0800D144: .4byte 0x000003ff _0800D148: .4byte 0x04000208 _0800D14C: .4byte 0x04000200 _0800D150: .4byte 0x04000132 _0800D154: .4byte 0x0000c304 thumb_func_end sub_800D098 thumb_func_start sub_800D158 sub_800D158: push {r1-r3} push {lr} ldr r1, [sp, 0x4] add r2, sp, 0x8 bl vsprintf pop {r3} add sp, 0xC bx r3 thumb_func_end sub_800D158 thumb_func_start sub_800D16C sub_800D16C: push {r0-r3} push {lr} mov r12, r4 ldr r4, _0800D198 add sp, r4 mov r4, r12 ldr r0, _0800D19C add r0, sp ldr r1, [r0] movs r2, 0x81 lsls r2, 3 add r2, sp mov r0, sp bl vsprintf movs r3, 0x80 lsls r3, 3 add sp, r3 pop {r3} add sp, 0x10 bx r3 .align 2, 0 _0800D198: .4byte 0xfffffc00 _0800D19C: .4byte 0x00000404 thumb_func_end sub_800D16C thumb_func_start sub_800D1A0 sub_800D1A0: push {r3} add sp, 0x4 bx lr thumb_func_end sub_800D1A0 thumb_func_start nullsub_183 nullsub_183: bx lr thumb_func_end nullsub_183 thumb_func_start nullsub_188 nullsub_188: bx lr thumb_func_end nullsub_188 thumb_func_start nullsub_184 nullsub_184: bx lr thumb_func_end nullsub_184 thumb_func_start sub_800D1B4 sub_800D1B4: movs r0, 0 bx lr thumb_func_end sub_800D1B4 thumb_func_start sub_800D1B8 sub_800D1B8: adds r0, r2, 0 bx lr thumb_func_end sub_800D1B8 thumb_func_start nullsub_187 nullsub_187: bx lr thumb_func_end nullsub_187 thumb_func_start sub_800D1C0 sub_800D1C0: push {lr} ldr r1, _0800D1D4 ldr r0, [r1] cmp r0, 0x2 bne _0800D1D8 ldr r0, [r1, 0x4] cmp r0, 0x2 bne _0800D1D8 movs r0, 0x1 b _0800D1DA .align 2, 0 _0800D1D4: .4byte gUnknown_202DB60 _0800D1D8: movs r0, 0 _0800D1DA: pop {r1} bx r1 thumb_func_end sub_800D1C0 thumb_func_start sub_800D1E0 sub_800D1E0: push {r4-r7,lr} movs r0, 0 ldr r1, _0800D218 mov r12, r1 ldr r6, _0800D21C ldr r7, _0800D220 movs r5, 0x1 _0800D1EE: movs r2, 0 lsls r1, r0, 4 adds r4, r0, 0x1 lsls r0, 2 adds r3, r0, r7 add r1, r12 _0800D1FA: ldrh r0, [r1] cmp r0, r6 bne _0800D202 str r5, [r3] _0800D202: adds r1, 0x2 adds r2, 0x1 cmp r2, 0x7 bls _0800D1FA adds r0, r4, 0 cmp r0, 0x1 ble _0800D1EE pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0800D218: .4byte gUnknown_202DB30 _0800D21C: .4byte 0x0000fdfd _0800D220: .4byte gUnknown_202DB60 thumb_func_end sub_800D1E0 thumb_func_start sub_800D224 sub_800D224: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 str r0, [sp] movs r6, 0 ldr r0, _0800D280 mov r12, r0 ldr r1, _0800D284 mov r10, r1 movs r2, 0x2 mov r9, r2 _0800D240: ldr r1, [sp] asrs r1, r6 movs r0, 0x1 ands r1, r0 adds r3, r6, 0x1 mov r8, r3 cmp r1, 0 beq _0800D2CE lsls r0, r6, 2 ldr r1, _0800D288 adds r2, r0, r1 ldr r1, [r2] adds r5, r0, 0 cmp r1, 0x1 bne _0800D2CE lsls r0, r6, 5 adds r0, r6 lsls r0, 3 ldr r1, _0800D28C adds r7, r0, r1 movs r4, 0 mov r3, r12 adds r0, r5, r3 ldr r1, [r0] mov r3, r10 ldr r0, [r3] lsrs r0, 1 cmp r1, r0 bcc _0800D290 mov r0, r9 str r0, [r2] b _0800D2C4 .align 2, 0 _0800D280: .4byte gUnknown_202DB58 _0800D284: .4byte gUnknown_202DB74 _0800D288: .4byte gUnknown_202DB60 _0800D28C: .4byte gUnknown_202D910 _0800D290: mov r1, r12 adds r0, r5, r1 ldr r3, [r0] adds r2, r3, r4 lsls r2, 1 adds r2, r7 lsls r0, r4, 1 lsls r1, r6, 4 adds r0, r1 ldr r1, _0800D2E4 adds r0, r1 ldrh r0, [r0] strh r0, [r2] adds r4, 0x1 cmp r4, 0x7 bhi _0800D2C4 adds r1, r3, r4 mov r2, r10 ldr r0, [r2] lsrs r0, 1 cmp r1, r0 bcc _0800D290 ldr r3, _0800D2E8 adds r0, r5, r3 mov r1, r9 str r1, [r0] _0800D2C4: mov r2, r12 adds r1, r5, r2 ldr r0, [r1] adds r0, 0x8 str r0, [r1] _0800D2CE: mov r6, r8 cmp r6, 0x1 ble _0800D240 add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0800D2E4: .4byte gUnknown_202DB30 _0800D2E8: .4byte gUnknown_202DB60 thumb_func_end sub_800D224 thumb_func_start sub_800D2EC sub_800D2EC: push {r4-r7,lr} ldr r0, _0800D318 mov r12, r0 ldr r3, _0800D31C adds r7, r3, 0 ldr r6, _0800D320 ldr r2, _0800D324 adds r5, r2, 0 adds r5, 0xE ldr r4, _0800D328 _0800D300: ldr r0, [r4] lsrs r0, 1 ldr r1, [r7] cmp r1, r0 bcs _0800D32C lsls r0, r1, 1 add r0, r12 ldrh r0, [r0] strh r0, [r2] adds r0, r1, 0x1 str r0, [r3] b _0800D32E .align 2, 0 _0800D318: .4byte gUnknown_202D808 _0800D31C: .4byte gUnknown_202DB50 _0800D320: .4byte 0x0000fcfc _0800D324: .4byte gUnknown_202DB20 _0800D328: .4byte gUnknown_202DB74 _0800D32C: strh r6, [r2] _0800D32E: adds r2, 0x2 cmp r2, r5 bls _0800D300 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_800D2EC thumb_func_start sub_800D33C sub_800D33C: push {r4,r5,lr} movs r5, 0 ldr r1, _0800D370 ldr r4, _0800D374 ldr r0, [r4] str r0, [r1] ldr r0, _0800D378 ldr r1, _0800D37C bl sub_800D820 adds r2, r0, 0 str r2, [r4] ldr r1, _0800D380 ldrb r0, [r1] cmp r0, 0 bne _0800D384 movs r0, 0x80 lsls r0, 1 ands r0, r2 cmp r0, 0 beq _0800D36A movs r0, 0x1 strb r0, [r1] _0800D36A: movs r0, 0 b _0800D40E .align 2, 0 _0800D370: .4byte gUnknown_202DB6C _0800D374: .4byte gUnknown_202DB68 _0800D378: .4byte gUnknown_202DB20 _0800D37C: .4byte gUnknown_202DB30 _0800D380: .4byte gUnknown_202DB70 _0800D384: movs r0, 0x80 lsls r0, 5 ands r0, r2 cmp r0, 0 beq _0800D392 movs r0, 0x3 b _0800D40E _0800D392: movs r0, 0x80 lsls r0, 6 ands r0, r2 cmp r0, 0 beq _0800D3A0 movs r0, 0x4 b _0800D40E _0800D3A0: movs r0, 0x80 lsls r0, 8 ands r0, r2 cmp r0, 0 beq _0800D3BA lsls r1, r2, 28 lsrs r1, 28 lsls r0, r2, 20 lsrs r0, 28 cmp r1, r0 beq _0800D3BA movs r0, 0x5 b _0800D40E _0800D3BA: ldr r4, _0800D3F8 ldr r0, _0800D3FC ldr r2, [r4] ldr r0, [r0] orrs r0, r2 movs r1, 0xE ands r0, r1 cmp r0, 0 beq _0800D40C ldr r0, _0800D400 ldr r1, [r0] lsls r1, 26 lsrs r1, 30 movs r0, 0x1 lsls r0, r1 ands r2, r0 cmp r2, 0 beq _0800D40C bl sub_800D1E0 ldr r0, [r4] bl sub_800D224 ldr r0, [r4] bl sub_800D1C0 lsls r0, 24 cmp r0, 0 beq _0800D404 movs r0, 0x2 b _0800D40E .align 2, 0 _0800D3F8: .4byte gUnknown_202DB68 _0800D3FC: .4byte gUnknown_202DB6C _0800D400: .4byte 0x04000128 _0800D404: ldr r0, [r4] bl sub_800D2EC movs r5, 0x1 _0800D40C: adds r0, r5, 0 _0800D40E: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_800D33C thumb_func_start sub_800D414 sub_800D414: push {r4,lr} ldr r0, _0800D468 movs r4, 0 str r4, [r0] ldr r0, _0800D46C str r4, [r0] ldr r0, _0800D470 strb r4, [r0] ldr r0, _0800D474 str r4, [r0] ldr r0, _0800D478 str r4, [r0] str r4, [r0, 0x4] ldr r0, _0800D47C movs r1, 0x10 bl MemoryClear16 ldr r0, _0800D480 movs r1, 0x20 bl MemoryClear16 ldr r0, _0800D484 str r4, [r0] ldr r0, _0800D488 str r4, [r0] str r4, [r0, 0x4] ldr r0, _0800D48C movs r1, 0x84 lsls r1, 1 bl MemoryClear16 ldr r0, _0800D490 movs r1, 0x84 lsls r1, 2 bl MemoryClear16 bl sub_800D6AC pop {r4} pop {r0} bx r0 .align 2, 0 _0800D468: .4byte gUnknown_202DB68 _0800D46C: .4byte gUnknown_202DB6C _0800D470: .4byte gUnknown_202DB70 _0800D474: .4byte gUnknown_202DB74 _0800D478: .4byte gUnknown_202DB60 _0800D47C: .4byte gUnknown_202DB20 _0800D480: .4byte gUnknown_202DB30 _0800D484: .4byte gUnknown_202DB50 _0800D488: .4byte gUnknown_202DB58 _0800D48C: .4byte gUnknown_202D808 _0800D490: .4byte gUnknown_202D910 thumb_func_end sub_800D414 thumb_func_start sub_800D494 sub_800D494: push {r4,lr} ldr r0, _0800D4E4 movs r4, 0 str r4, [r0] ldr r0, _0800D4E8 str r4, [r0] ldr r0, _0800D4EC strb r4, [r0] ldr r0, _0800D4F0 str r4, [r0] ldr r0, _0800D4F4 str r4, [r0] str r4, [r0, 0x4] ldr r0, _0800D4F8 movs r1, 0x10 bl MemoryClear16 ldr r0, _0800D4FC movs r1, 0x20 bl MemoryClear16 ldr r0, _0800D500 str r4, [r0] ldr r0, _0800D504 str r4, [r0] str r4, [r0, 0x4] ldr r0, _0800D508 movs r1, 0x84 lsls r1, 1 bl MemoryClear16 ldr r0, _0800D50C movs r1, 0x84 lsls r1, 2 bl MemoryClear16 pop {r4} pop {r0} bx r0 .align 2, 0 _0800D4E4: .4byte gUnknown_202DB68 _0800D4E8: .4byte gUnknown_202DB6C _0800D4EC: .4byte gUnknown_202DB70 _0800D4F0: .4byte gUnknown_202DB74 _0800D4F4: .4byte gUnknown_202DB60 _0800D4F8: .4byte gUnknown_202DB20 _0800D4FC: .4byte gUnknown_202DB30 _0800D500: .4byte gUnknown_202DB50 _0800D504: .4byte gUnknown_202DB58 _0800D508: .4byte gUnknown_202D808 _0800D50C: .4byte gUnknown_202D910 thumb_func_end sub_800D494 thumb_func_start sub_800D510 sub_800D510: ldr r1, _0800D51C movs r2, 0x80 lsls r2, 8 adds r0, r2, 0 strh r0, [r1] bx lr .align 2, 0 _0800D51C: .4byte 0x04000134 thumb_func_end sub_800D510 thumb_func_start sub_800D520 sub_800D520: push {r4,r5,lr} sub sp, 0x4 mov r1, sp movs r0, 0x1 strh r0, [r1] ldr r0, _0800D568 ldrb r1, [r0] movs r0, 0x30 ands r0, r1 cmp r0, 0 bne _0800D55C mov r1, sp mov r0, sp ldrh r0, [r0] subs r0, 0x1 strh r0, [r1] ldrh r0, [r1] ldr r1, _0800D56C cmp r0, r1 beq _0800D55C mov r4, sp adds r5, r1, 0 _0800D54C: bl VBlankIntrWait ldrh r0, [r4] subs r0, 0x1 strh r0, [r4] ldrh r0, [r4] cmp r0, r5 bne _0800D54C _0800D55C: bl sub_800D7D0 add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0800D568: .4byte 0x04000128 _0800D56C: .4byte 0x0000ffff thumb_func_end sub_800D520 thumb_func_start sub_800D570 sub_800D570: push {lr} bl sub_800D7B8 pop {r0} bx r0 thumb_func_end sub_800D570 thumb_func_start sub_800D57C sub_800D57C: ldr r0, _0800D584 ldrb r0, [r0] bx lr .align 2, 0 _0800D584: .4byte gUnknown_202DB70 thumb_func_end sub_800D57C thumb_func_start sub_800D588 sub_800D588: ldr r0, _0800D598 ldr r0, [r0] movs r1, 0x80 ands r0, r1 lsls r0, 24 lsrs r0, 24 bx lr .align 2, 0 _0800D598: .4byte gUnknown_202DB68 thumb_func_end sub_800D588 thumb_func_start sub_800D59C sub_800D59C: push {r4-r6,lr} adds r3, r0, 0 adds r2, r1, 0 movs r5, 0 ldr r6, _0800D5F4 ldr r4, _0800D5F8 adds r0, r2, 0x1 movs r1, 0x2 negs r1, r1 ands r0, r1 adds r0, 0x8 str r0, [r4] adds r0, r6, 0x4 adds r1, r3, 0 bl CpuCopy ldr r0, _0800D5FC strh r0, [r6] strh r5, [r6, 0x2] movs r2, 0 ldr r0, [r4] lsrs r0, 1 subs r0, 0x2 cmp r5, r0 bcs _0800D5DE adds r3, r0, 0 adds r1, r6, 0 _0800D5D2: ldrh r0, [r1] adds r5, r0 adds r1, 0x2 adds r2, 0x1 cmp r2, r3 bcc _0800D5D2 _0800D5DE: ldr r2, _0800D5F4 mvns r1, r5 ldr r0, _0800D5F8 ldr r0, [r0] lsrs r0, 1 subs r1, r0 strh r1, [r2, 0x2] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0800D5F4: .4byte gUnknown_202D808 _0800D5F8: .4byte gUnknown_202DB74 _0800D5FC: .4byte 0x0000fdfd thumb_func_end sub_800D59C thumb_func_start sub_800D600 sub_800D600: push {r4-r7,lr} mov r7, r8 push {r7} movs r6, 0 ldr r0, _0800D64C mov r8, r0 ldr r7, _0800D650 ldr r0, [r7] lsrs r0, 1 subs r0, 0x2 mov r12, r0 movs r5, 0 _0800D618: movs r4, 0 mov r2, r8 adds r1, r5, r2 movs r3, 0 cmp r4, r12 bcs _0800D636 ldr r0, [r7] lsrs r0, 1 subs r2, r0, 0x2 _0800D62A: ldrh r0, [r1] adds r4, r0 adds r1, 0x2 adds r3, 0x1 cmp r3, r2 bcc _0800D62A _0800D636: ldr r0, [r7] lsrs r0, 1 ldr r2, _0800D654 adds r1, r2, 0 subs r1, r0 lsls r0, r4, 16 lsls r1, 16 cmp r0, r1 beq _0800D658 movs r0, 0 b _0800D666 .align 2, 0 _0800D64C: .4byte gUnknown_202D910 _0800D650: .4byte gUnknown_202DB74 _0800D654: .4byte 0x0000ffff _0800D658: movs r0, 0x84 lsls r0, 1 adds r5, r0 adds r6, 0x1 cmp r6, 0x1 bls _0800D618 movs r0, 0x1 _0800D666: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_800D600 thumb_func_start sub_800D670 sub_800D670: push {lr} adds r3, r1, 0 lsls r1, r0, 5 adds r1, r0 lsls r1, 3 ldr r0, _0800D688 adds r1, r0 adds r0, r3, 0 bl CpuCopy pop {r0} bx r0 .align 2, 0 _0800D688: .4byte gUnknown_202D914 thumb_func_end sub_800D670 thumb_func_start sub_800D68C sub_800D68C: push {lr} adds r1, r0, 0 lsls r0, r1, 5 adds r0, r1 lsls r0, 3 ldr r1, _0800D6A8 adds r0, r1 movs r2, 0x84 lsls r2, 1 movs r1, 0 bl MemoryFill8 pop {r0} bx r0 .align 2, 0 _0800D6A8: .4byte gUnknown_202D910 thumb_func_end sub_800D68C thumb_func_start sub_800D6AC sub_800D6AC: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 ldr r3, _0800D784 movs r4, 0 strh r4, [r3] ldr r2, _0800D788 ldrh r1, [r2] ldr r0, _0800D78C ands r0, r1 strh r0, [r2] movs r0, 0x1 strh r0, [r3] ldr r0, _0800D790 strh r4, [r0] subs r2, 0xD8 movs r0, 0x80 lsls r0, 6 str r0, [r2] ldrh r0, [r2] ldr r3, _0800D794 adds r1, r3, 0 orrs r0, r1 strh r0, [r2] movs r0, 0 str r0, [sp] ldr r4, _0800D798 ldr r2, _0800D79C mov r0, sp adds r1, r4, 0 bl CpuSet ldr r0, _0800D7A0 ldr r1, _0800D7A4 ldr r2, _0800D7A8 bl CpuSet ldr r0, _0800D7AC ldr r1, _0800D7B0 ldr r2, _0800D7B4 bl CpuSet movs r0, 0x1 negs r0, r0 str r0, [r4, 0x14] adds r0, r4, 0 adds r0, 0x60 str r0, [r4, 0x28] adds r0, 0x18 str r0, [r4, 0x2C] movs r3, 0 adds r5, r4, 0 adds r5, 0xC0 movs r2, 0 movs r7, 0x30 adds r7, r4 mov r8, r7 movs r0, 0x90 adds r0, r4 mov r12, r0 adds r6, r4, 0 adds r6, 0xA8 movs r7, 0x40 adds r7, r4 mov r9, r7 _0800D732: lsls r1, r3, 2 mov r7, r12 adds r0, r2, r7 mov r7, r8 adds r7, 0x4 mov r8, r7 subs r7, 0x4 stm r7!, {r0} adds r0, r2, r6 mov r7, r9 adds r7, 0x4 mov r9, r7 subs r7, 0x4 stm r7!, {r0} adds r0, r4, 0 adds r0, 0x50 adds r1, r0 str r5, [r1] adds r5, 0x48 adds r2, 0x48 adds r3, 0x1 cmp r3, 0x1 ble _0800D732 movs r0, 0 ldr r3, _0800D784 strh r0, [r3] ldr r2, _0800D788 ldrh r0, [r2] movs r1, 0x80 orrs r0, r1 strh r0, [r2] movs r0, 0x1 strh r0, [r3] add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0800D784: .4byte 0x04000208 _0800D788: .4byte 0x04000200 _0800D78C: .4byte 0x0000ff3f _0800D790: .4byte 0x04000134 _0800D794: .4byte 0x00004003 _0800D798: .4byte gUnknown_202DCF8 _0800D79C: .4byte 0x05000048 _0800D7A0: .4byte sub_80001E8 _0800D7A4: .4byte gUnknown_202DB78 _0800D7A8: .4byte 0x04000010 _0800D7AC: .4byte sub_8000228 _0800D7B0: .4byte gUnknown_202DBB8 _0800D7B4: .4byte 0x04000050 thumb_func_end sub_800D6AC thumb_func_start sub_800D7B8 sub_800D7B8: push {lr} ldr r1, _0800D7CC ldrb r0, [r1] cmp r0, 0 beq _0800D7C6 movs r0, 0x1 strb r0, [r1, 0x8] _0800D7C6: pop {r0} bx r0 .align 2, 0 _0800D7CC: .4byte gUnknown_202DCF8 thumb_func_end sub_800D7B8 thumb_func_start sub_800D7D0 sub_800D7D0: push {r4,lr} ldr r3, _0800D804 movs r4, 0 strh r4, [r3] ldr r2, _0800D808 ldrh r1, [r2] ldr r0, _0800D80C ands r0, r1 strh r0, [r2] movs r0, 0x1 strh r0, [r3] ldr r1, _0800D810 ldr r2, _0800D814 adds r0, r2, 0 strh r0, [r1] subs r1, 0x1C ldr r0, _0800D818 str r0, [r1] adds r1, 0xF6 movs r0, 0xC0 strh r0, [r1] ldr r0, _0800D81C strb r4, [r0, 0x8] pop {r4} pop {r0} bx r0 .align 2, 0 _0800D804: .4byte 0x04000208 _0800D808: .4byte 0x04000200 _0800D80C: .4byte 0x0000ff3f _0800D810: .4byte 0x04000128 _0800D814: .4byte 0x00002003 _0800D818: .4byte 0x0000b1fc _0800D81C: .4byte gUnknown_202DCF8 thumb_func_end sub_800D7D0 thumb_func_start sub_800D820 sub_800D820: push {r4-r7,lr} mov r7, r8 push {r7} mov r8, r0 mov r12, r1 ldr r5, _0800D844 ldr r6, [r5] ldr r0, _0800D848 ldrb r2, [r0, 0x1] adds r7, r0, 0 cmp r2, 0x1 beq _0800D8AA cmp r2, 0x1 bgt _0800D84C cmp r2, 0 beq _0800D852 b _0800D8E8 .align 2, 0 _0800D844: .4byte 0x04000128 _0800D848: .4byte gUnknown_202DCF8 _0800D84C: cmp r2, 0x2 beq _0800D8DC b _0800D8E8 _0800D852: ldr r1, [r7, 0x14] movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _0800D8A6 movs r0, 0x88 adds r4, r6, 0 ands r4, r0 cmp r4, 0x8 bne _0800D8E8 movs r1, 0x4 adds r0, r6, 0 ands r0, r1 lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _0800D8A6 ldr r3, _0800D8C0 strh r0, [r3] ldr r2, _0800D8C4 ldrh r1, [r2] ldr r0, _0800D8C8 ands r0, r1 strh r0, [r2] ldrh r0, [r2] movs r1, 0x40 orrs r0, r1 strh r0, [r2] movs r0, 0x1 strh r0, [r3] ldrb r1, [r5, 0x1] movs r0, 0x41 negs r0, r0 ands r0, r1 strb r0, [r5, 0x1] ldr r1, _0800D8CC movs r0, 0xC0 strh r0, [r1] subs r1, 0xF6 ldr r0, _0800D8D0 str r0, [r1] strb r4, [r7] _0800D8A6: movs r0, 0x1 strb r0, [r7, 0x1] _0800D8AA: ldr r1, _0800D8D4 ldrb r0, [r1, 0x2] cmp r0, 0 beq _0800D8DC ldrb r0, [r1, 0xA] cmp r0, 0x7 bhi _0800D8D8 adds r0, 0x1 strb r0, [r1, 0xA] b _0800D8DC .align 2, 0 _0800D8C0: .4byte 0x04000208 _0800D8C4: .4byte 0x04000200 _0800D8C8: .4byte 0x0000ff7f _0800D8CC: .4byte 0x04000202 _0800D8D0: .4byte 0x0000b1fc _0800D8D4: .4byte gUnknown_202DCF8 _0800D8D8: movs r0, 0x2 strb r0, [r1, 0x1] _0800D8DC: mov r0, r12 bl sub_800D9B8 mov r0, r8 bl sub_800D944 _0800D8E8: ldr r1, _0800D908 ldrb r0, [r1, 0xB] adds r0, 0x1 strb r0, [r1, 0xB] ldrb r3, [r1, 0x3] ldrb r0, [r1, 0x2] lsls r2, r0, 8 ldrb r0, [r1] adds r7, r1, 0 cmp r0, 0x8 bne _0800D90C movs r0, 0x80 orrs r0, r2 orrs r0, r3 b _0800D910 .align 2, 0 _0800D908: .4byte gUnknown_202DCF8 _0800D90C: adds r0, r3, 0 orrs r0, r2 _0800D910: adds r2, r0, 0 ldrb r0, [r7, 0x9] cmp r0, 0 beq _0800D91E movs r0, 0x80 lsls r0, 5 orrs r2, r0 _0800D91E: ldrb r0, [r7, 0xA] lsrs r0, 3 lsls r1, r0, 15 lsls r0, r6, 26 lsrs r0, 30 cmp r0, 0x1 bls _0800D936 movs r0, 0x80 lsls r0, 6 orrs r0, r1 orrs r0, r2 b _0800D93A _0800D936: adds r0, r2, 0 orrs r0, r1 _0800D93A: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_800D820 thumb_func_start sub_800D944 sub_800D944: push {r4,r5,lr} movs r5, 0 ldr r4, _0800D9AC ldr r2, [r4, 0x28] ldrb r1, [r4, 0xB] strb r1, [r2] ldr r3, [r4, 0x28] ldrb r1, [r4, 0x2] ldrb r2, [r4, 0x3] eors r1, r2 strb r1, [r3, 0x1] ldr r1, [r4, 0x28] strh r5, [r1, 0x2] ldr r1, [r4, 0x28] adds r1, 0x4 ldr r2, _0800D9B0 bl CpuSet movs r2, 0 ldr r1, [r4, 0x28] _0800D96C: ldrh r0, [r1] adds r5, r0 adds r1, 0x2 adds r2, 0x1 cmp r2, 0x9 bls _0800D96C adds r2, r4, 0 ldr r1, [r2, 0x28] mvns r0, r5 subs r0, 0xC strh r0, [r1, 0x2] ldrb r0, [r2] cmp r0, 0 beq _0800D98E ldr r1, _0800D9B4 movs r0, 0 strh r0, [r1] _0800D98E: movs r0, 0x1 negs r0, r0 str r0, [r4, 0x14] ldrb r0, [r4] cmp r0, 0 beq _0800D9A6 ldrb r0, [r4, 0x8] cmp r0, 0 beq _0800D9A6 ldr r1, _0800D9B4 movs r0, 0xC0 strh r0, [r1] _0800D9A6: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0800D9AC: .4byte gUnknown_202DCF8 _0800D9B0: .4byte 0x04000004 _0800D9B4: .4byte 0x0400010e thumb_func_end sub_800D944 thumb_func_start sub_800D9B8 sub_800D9B8: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC str r0, [sp, 0x8] ldr r0, _0800DA68 bl _call_via_r0 str r0, [sp] ldr r1, _0800DA6C movs r0, 0 strb r0, [r1, 0x3] movs r6, 0 add r0, sp, 0x4 mov r10, r0 mov r9, r1 movs r1, 0x50 add r1, r9 mov r8, r1 _0800D9E2: movs r3, 0 movs r2, 0 lsls r5, r6, 2 mov r0, sp adds r4, r0, r6 adds r7, r6, 0x1 mov r1, r8 adds r0, r5, r1 ldr r1, [r0] _0800D9F4: ldrh r0, [r1] adds r3, r0 adds r1, 0x2 adds r2, 0x1 cmp r2, 0x9 bls _0800D9F4 ldrb r0, [r4] cmp r0, 0 beq _0800DA32 lsls r0, r3, 16 asrs r0, 16 movs r2, 0xD negs r2, r2 cmp r0, r2 bne _0800DA32 mov r1, r8 adds r0, r5, r1 ldr r0, [r0] adds r0, 0x4 lsls r1, r6, 4 ldr r2, [sp, 0x8] adds r1, r2, r1 ldr r2, _0800DA70 bl CpuSet movs r0, 0x1 lsls r0, r6 mov r2, r9 ldrb r1, [r2, 0x3] orrs r0, r1 strb r0, [r2, 0x3] _0800DA32: movs r0, 0 str r0, [sp, 0x4] mov r1, r8 adds r0, r5, r1 ldr r1, [r0] adds r1, 0x4 mov r0, r10 ldr r2, _0800DA74 bl CpuSet adds r6, r7, 0 cmp r6, 0x1 ble _0800D9E2 ldr r1, _0800DA6C ldrb r0, [r1, 0x2] ldrb r2, [r1, 0x3] orrs r0, r2 strb r0, [r1, 0x2] ldrb r0, [r1, 0x3] add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0800DA68: .4byte gUnknown_202DB78 _0800DA6C: .4byte gUnknown_202DCF8 _0800DA70: .4byte 0x04000004 _0800DA74: .4byte 0x05000004 thumb_func_end sub_800D9B8 thumb_func_start nullsub_189 nullsub_189: bx lr thumb_func_end nullsub_189 thumb_func_start nullsub_190 nullsub_190: bx lr thumb_func_end nullsub_190 thumb_func_start nullsub_191 nullsub_191: bx lr thumb_func_end nullsub_191 thumb_func_start nullsub_192 nullsub_192: bx lr thumb_func_end nullsub_192 thumb_func_start nullsub_193 nullsub_193: bx lr thumb_func_end nullsub_193 thumb_func_start nullsub_194 nullsub_194: bx lr thumb_func_end nullsub_194 thumb_func_start nullsub_195 nullsub_195: bx lr thumb_func_end nullsub_195 thumb_func_start sub_800DA94 sub_800DA94: movs r0, 0 bx lr thumb_func_end sub_800DA94 thumb_func_start sub_800DA98 sub_800DA98: movs r0, 0 bx lr thumb_func_end sub_800DA98 thumb_func_start sub_800DA9C sub_800DA9C: movs r0, 0 bx lr thumb_func_end sub_800DA9C thumb_func_start nullsub_196 nullsub_196: bx lr thumb_func_end nullsub_196 thumb_func_start nullsub_197 nullsub_197: bx lr thumb_func_end nullsub_197 thumb_func_start nullsub_198 nullsub_198: bx lr thumb_func_end nullsub_198 thumb_func_start sub_800DAAC sub_800DAAC: movs r0, 0 bx lr thumb_func_end sub_800DAAC thumb_func_start sub_800DAB0 sub_800DAB0: movs r0, 0 bx lr thumb_func_end sub_800DAB0 thumb_func_start sub_800DAB4 sub_800DAB4: movs r0, 0 bx lr thumb_func_end sub_800DAB4 thumb_func_start sub_800DAB8 sub_800DAB8: movs r0, 0 bx lr thumb_func_end sub_800DAB8 thumb_func_start sub_800DABC sub_800DABC: movs r0, 0 bx lr thumb_func_end sub_800DABC thumb_func_start sub_800DAC0 sub_800DAC0: push {r4-r6,lr} adds r6, r0, 0 ldr r5, _0800DB38 ldr r0, [r5] cmp r0, 0 beq _0800DAD0 bl sub_800DB7C _0800DAD0: ldr r4, _0800DB3C adds r0, r4, 0 movs r1, 0xB bl MemoryAlloc str r0, [r5] adds r1, r4, 0 bl MemoryClear8 ldr r1, [r5] ldr r2, _0800DB40 adds r0, r1, r2 str r6, [r0] movs r2, 0x1 negs r2, r2 movs r0, 0x1F _0800DAF0: str r2, [r1, 0x4] subs r0, 0x1 adds r1, 0xD0 cmp r0, 0 bge _0800DAF0 adds r0, r6, 0 bl sub_800ED38 bl sub_800F034 ldr r0, _0800DB38 ldr r0, [r0] ldr r1, _0800DB40 adds r0, r1 ldr r0, [r0] cmp r0, 0 beq _0800DB4C cmp r0, 0x1 bne _0800DB6C ldr r0, _0800DB44 ldr r1, _0800DB48 bl Call_OpenFileAndGetFileDataPtr adds r4, r0, 0 cmp r4, 0 beq _0800DB6C movs r1, 0x92 lsls r1, 2 movs r2, 0x1F movs r3, 0 bl sub_8005610 adds r0, r4, 0 bl CloseFile b _0800DB6C .align 2, 0 _0800DB38: .4byte gUnknown_203B0CC _0800DB3C: .4byte 0x00001a18 _0800DB40: .4byte 0x00001a04 _0800DB44: .4byte gUnknown_80B9C6C _0800DB48: .4byte gUnknown_9740000 _0800DB4C: ldr r0, _0800DB74 ldr r1, _0800DB78 bl Call_OpenFileAndGetFileDataPtr adds r4, r0, 0 cmp r4, 0 beq _0800DB6C movs r1, 0x92 lsls r1, 2 movs r2, 0x1F movs r3, 0 bl sub_8005610 adds r0, r4, 0 bl CloseFile _0800DB6C: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0800DB74: .4byte gUnknown_80B9C74 _0800DB78: .4byte gUnknown_9740000 thumb_func_end sub_800DAC0 thumb_func_start sub_800DB7C sub_800DB7C: push {r4-r6,lr} ldr r0, _0800DBB8 ldr r4, [r0] movs r6, 0x1 negs r6, r6 movs r5, 0x1F _0800DB88: ldr r0, [r4, 0x4] cmp r0, r6 beq _0800DB92 bl sub_800DC14 _0800DB92: subs r5, 0x1 adds r4, 0xD0 cmp r5, 0 bge _0800DB88 bl sub_800F078 bl sub_800ED64 ldr r4, _0800DBB8 ldr r0, [r4] cmp r0, 0 beq _0800DBB2 bl MemoryFree movs r0, 0 str r0, [r4] _0800DBB2: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0800DBB8: .4byte gUnknown_203B0CC thumb_func_end sub_800DB7C thumb_func_start sub_800DBBC sub_800DBBC: push {r4-r6,lr} ldr r0, _0800DBFC ldr r4, [r0] movs r6, 0x1 negs r6, r6 movs r5, 0x1F _0800DBC8: ldr r0, [r4, 0x4] cmp r0, r6 beq _0800DBD2 bl sub_800DC14 _0800DBD2: subs r5, 0x1 adds r4, 0xD0 cmp r5, 0 bge _0800DBC8 ldr r0, _0800DBFC ldr r0, [r0] movs r2, 0x1 negs r2, r2 movs r1, 0x1F _0800DBE4: str r2, [r0, 0x4] subs r1, 0x1 adds r0, 0xD0 cmp r1, 0 bge _0800DBE4 bl sub_800ED80 bl sub_800F094 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0800DBFC: .4byte gUnknown_203B0CC thumb_func_end sub_800DBBC thumb_func_start sub_800DC00 sub_800DC00: push {lr} ldr r0, _0800DC10 ldr r0, [r0] cmp r0, 0 beq _0800DC0C movs r0, 0x1 _0800DC0C: pop {r1} bx r1 .align 2, 0 _0800DC10: .4byte gUnknown_203B0CC thumb_func_end sub_800DC00 thumb_func_start sub_800DC14 sub_800DC14: push {r4,r5,lr} bl sub_800E2C0 adds r1, r0, 0 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _0800DC96 ldr r2, _0800DC60 movs r0, 0xD0 muls r1, r0 ldr r0, [r2] adds r5, r0, r1 ldr r0, [r5, 0x34] cmp r0, 0x4 bne _0800DC56 bl sub_8009BE4 bl sub_8000728 cmp r0, 0x1 bne _0800DC56 bl sub_8040238 movs r0, 0 movs r1, 0 bl sub_803EAF0 movs r0, 0x80 lsls r0, 8 movs r1, 0 bl sub_800CD64 _0800DC56: ldr r0, [r5, 0x34] cmp r0, 0x3 bne _0800DC82 movs r4, 0 b _0800DC66 .align 2, 0 _0800DC60: .4byte gUnknown_203B0CC _0800DC64: adds r4, 0x1 _0800DC66: cmp r4, 0x1 bgt _0800DC90 adds r0, r4, 0 bl sub_800F18C adds r2, r0, 0 ldr r1, [r2] ldr r0, [r5, 0x38] cmp r1, r0 bne _0800DC64 ldr r0, [r2, 0x4] subs r0, 0x1 str r0, [r2, 0x4] b _0800DC90 _0800DC82: movs r0, 0x1 bl sub_800F18C movs r1, 0 str r1, [r0, 0x4] subs r1, 0x1 str r1, [r0] _0800DC90: adds r0, r5, 0 bl sub_800DCA8 _0800DC96: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_800DC14 thumb_func_start sub_800DC9C sub_800DC9C: push {lr} bl sub_800E900 pop {r1} bx r1 thumb_func_end sub_800DC9C thumb_func_start sub_800DCA8 sub_800DCA8: push {r4,r5,lr} movs r1, 0x1 negs r1, r1 str r1, [r0, 0x4] adds r1, r0, 0 adds r1, 0x54 movs r5, 0 strb r5, [r1] adds r4, r0, 0 adds r4, 0xB8 ldr r0, [r4] cmp r0, 0 beq _0800DCC8 bl sub_800F204 str r5, [r4] _0800DCC8: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_800DCA8 thumb_func_start sub_800DCD0 sub_800DCD0: push {r4,r5,lr} adds r4, r0, 0 ldr r0, [r4, 0x4C] movs r5, 0x1 negs r5, r5 cmp r0, r5 beq _0800DCFA ldr r0, [r4, 0x50] cmp r0, 0 bne _0800DCFA bl sub_8000728 cmp r0, 0x2 beq _0800DCF6 ldr r0, [r4, 0x4C] lsls r0, 16 lsrs r0, 16 bl sub_8011988 _0800DCF6: str r5, [r4, 0x4C] str r5, [r4, 0x50] _0800DCFA: ldr r0, [r4, 0x50] cmp r0, 0 ble _0800DD04 subs r0, 0x1 str r0, [r4, 0x50] _0800DD04: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_800DCD0 thumb_func_start sub_800DD0C sub_800DD0C: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 adds r5, r0, 0 adds r6, r1, 0 movs r0, 0x58 adds r0, r5 mov r8, r0 ldrh r1, [r0] movs r0, 0x80 lsls r0, 6 ands r0, r1 cmp r0, 0 beq _0800DD2E movs r0, 0 b _0800DD30 _0800DD2E: lsrs r0, r1, 15 _0800DD30: cmp r0, 0 bne _0800DD64 adds r0, r5, 0 bl sub_800DCA8 ldr r0, [r5, 0x34] cmp r0, 0x3 bne _0800DD60 movs r4, 0 b _0800DD46 _0800DD44: adds r4, 0x1 _0800DD46: cmp r4, 0x1 bgt _0800DD60 adds r0, r4, 0 bl sub_800F18C adds r2, r0, 0 ldr r1, [r2] ldr r0, [r5, 0x38] cmp r1, r0 bne _0800DD44 ldr r0, [r2, 0x4] subs r0, 0x1 str r0, [r2, 0x4] _0800DD60: movs r0, 0 b _0800DE28 _0800DD64: mov r0, r8 bl sub_80054BC movs r4, 0 ldr r0, [r5, 0x8] movs r1, 0x7 ands r0, r1 cmp r0, 0 bne _0800DD88 ldr r0, [r5, 0x14] cmp r0, 0x5 bgt _0800DD84 cmp r0, 0x3 blt _0800DD84 subs r4, 0x3 b _0800DD8A _0800DD84: adds r4, 0x3 b _0800DD8A _0800DD88: movs r4, 0x3 _0800DD8A: movs r2, 0 ldr r1, [r5, 0x20] movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _0800DD9E ldrh r0, [r5, 0x1E] lsls r0, 16 ldrh r2, [r5, 0x1C] orrs r2, r0 _0800DD9E: lsls r0, r2, 16 asrs r1, r0, 16 adds r7, r0, 0 cmp r1, 0x63 beq _0800DE26 asrs r0, r2, 16 adds r2, r0, 0 cmp r2, 0x63 beq _0800DE26 ldr r3, [r5, 0x24] ldr r0, _0800DE34 cmp r3, r0 bne _0800DDCA movs r1, 0x1A ldrsh r0, [r5, r1] movs r3, 0x2 ldrsh r1, [r6, r3] subs r0, r1 lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 adds r3, r0, r4 _0800DDCA: movs r4, 0x18 ldrsh r0, [r5, r4] movs r4, 0 ldrsh r1, [r6, r4] subs r0, r1 asrs r1, r7, 16 adds r4, r0, r1 movs r7, 0x1A ldrsh r0, [r5, r7] movs r7, 0x2 ldrsh r1, [r6, r7] subs r0, r1 adds r2, r0, r2 adds r0, r5, 0 adds r0, 0xCC ldrh r0, [r0] ldrh r1, [r5, 0x18] adds r0, r1 strh r0, [r5, 0x18] adds r0, r5, 0 adds r0, 0xCE ldrh r0, [r0] ldrh r7, [r5, 0x1A] adds r0, r7 strh r0, [r5, 0x1A] adds r1, r4, 0 adds r1, 0x3F movs r0, 0xB7 lsls r0, 1 cmp r1, r0 bhi _0800DE26 movs r0, 0x40 negs r0, r0 cmp r2, r0 ble _0800DE26 cmp r2, 0xDF bgt _0800DE26 ldr r0, [r5, 0x3C] str r0, [sp] adds r0, r5, 0 adds r0, 0x28 str r0, [sp, 0x4] mov r0, r8 adds r1, r4, 0 bl sub_800558C _0800DE26: movs r0, 0x1 _0800DE28: add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0800DE34: .4byte 0x0000ffff thumb_func_end sub_800DD0C thumb_func_start sub_800DE38 sub_800DE38: push {r4,r5,lr} adds r5, r0, 0 adds r0, 0x58 ldrh r1, [r0] movs r0, 0x80 lsls r0, 6 ands r0, r1 cmp r0, 0 beq _0800DE4E movs r0, 0 b _0800DE50 _0800DE4E: lsrs r0, r1, 15 _0800DE50: cmp r0, 0 bne _0800DE84 adds r0, r5, 0 bl sub_800DCA8 ldr r0, [r5, 0x34] cmp r0, 0x3 bne _0800DE80 movs r4, 0 b _0800DE66 _0800DE64: adds r4, 0x1 _0800DE66: cmp r4, 0x1 bgt _0800DE80 adds r0, r4, 0 bl sub_800F18C adds r2, r0, 0 ldr r1, [r2] ldr r0, [r5, 0x38] cmp r1, r0 bne _0800DE64 ldr r0, [r2, 0x4] subs r0, 0x1 str r0, [r2, 0x4] _0800DE80: movs r0, 0 b _0800DE86 _0800DE84: movs r0, 0x1 _0800DE86: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_800DE38 thumb_func_start sub_800DE8C sub_800DE8C: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x14 adds r6, r0, 0 movs r0, 0x94 adds r0, r6 mov r8, r0 ldr r4, [r0, 0x18] cmp r4, 0 beq _0800DEA4 b _0800E09C _0800DEA4: ldr r1, [r0, 0x14] movs r7, 0x1 str r7, [sp] adds r0, r6, 0 adds r0, 0xAC str r0, [sp, 0x4] add r2, sp, 0xC str r2, [sp, 0x8] mov r0, r8 movs r2, 0 movs r3, 0 bl sub_8009A7C lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _0800DEC8 b _0800E030 _0800DEC8: add r0, sp, 0xC movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 beq _0800DEE8 adds r0, r6, 0 adds r0, 0xB4 strb r7, [r0] ldr r0, _0800DF0C ldr r0, [r0] ldr r2, _0800DF10 adds r1, r0, r2 str r4, [r1] ldr r1, _0800DF14 adds r0, r1 str r4, [r0] _0800DEE8: add r0, sp, 0xC ldrh r0, [r0, 0x2] lsls r0, 16 asrs r0, 16 cmp r0, 0 beq _0800DF6C cmp r0, 0x63 bne _0800DF1C ldr r0, _0800DF0C ldr r0, [r0] ldr r1, _0800DF10 adds r2, r0, r1 ldr r1, _0800DF18 str r1, [r2] ldr r2, _0800DF14 adds r0, r2 str r4, [r0] b _0800DF6C .align 2, 0 _0800DF0C: .4byte gUnknown_203B0CC _0800DF10: .4byte 0x00001a08 _0800DF14: .4byte 0x00001a0c _0800DF18: .4byte 0x00000c1c _0800DF1C: cmp r0, 0 ble _0800DF50 ldr r0, _0800DF40 ldr r4, [r0] ldr r0, _0800DF44 adds r5, r4, r0 ldr r1, _0800DF48 adds r4, r1 add r0, sp, 0xC movs r2, 0x2 ldrsh r1, [r0, r2] ldr r0, _0800DF4C bl __divsi3 str r0, [r4] str r0, [r5] b _0800DF6C .align 2, 0 _0800DF40: .4byte gUnknown_203B0CC _0800DF44: .4byte 0x00001a08 _0800DF48: .4byte 0x00001a0c _0800DF4C: .4byte 0x00000c1c _0800DF50: ldr r0, _0800DFA4 ldr r4, [r0] ldr r0, _0800DFA8 adds r1, r4, r0 ldr r0, _0800DFAC str r0, [r1] ldr r1, _0800DFB0 adds r4, r1 add r1, sp, 0xC movs r2, 0x2 ldrsh r1, [r1, r2] bl __divsi3 str r0, [r4] _0800DF6C: mov r0, r8 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0 bne _0800DF78 b _0800E094 _0800DF78: ldr r0, _0800DFA4 ldr r1, [r0] ldr r2, _0800DFB4 adds r0, r1, r2 ldr r0, [r0] cmp r0, 0 beq _0800DFB8 cmp r0, 0x1 bne _0800DFEA adds r0, r6, 0 adds r0, 0xB8 ldr r0, [r0] ldr r0, [r0, 0x4] ldr r1, [r0, 0x10] movs r0, 0xE0 lsls r0, 2 adds r1, r0 movs r0, 0xE0 movs r2, 0x10 bl sub_809971C b _0800DFEA .align 2, 0 _0800DFA4: .4byte gUnknown_203B0CC _0800DFA8: .4byte 0x00001a08 _0800DFAC: .4byte 0x00000c1c _0800DFB0: .4byte 0x00001a0c _0800DFB4: .4byte 0x00001a04 _0800DFB8: ldr r2, _0800E010 adds r0, r1, r2 ldr r0, [r0] movs r1, 0x64 bl __divsi3 adds r7, r0, 0 movs r4, 0 adds r6, 0xB8 movs r5, 0xE0 lsls r5, 2 _0800DFCE: adds r0, r4, 0 adds r0, 0xE0 ldr r1, [r6] ldr r1, [r1, 0x4] ldr r1, [r1, 0x10] adds r1, r5 adds r2, r7, 0 movs r3, 0 bl SetBGPaletteBufferColorRGB adds r5, 0x4 adds r4, 0x1 cmp r4, 0xF ble _0800DFCE _0800DFEA: ldr r1, _0800E014 ldr r2, _0800E018 adds r0, r2, 0 strh r0, [r1] ldr r0, _0800E01C ldr r0, [r0] ldr r1, _0800E010 adds r2, r0, r1 adds r1, 0x4 adds r0, r1 ldr r1, [r2] ldr r0, [r0] adds r1, r0 str r1, [r2] cmp r1, 0 bge _0800E020 movs r0, 0 str r0, [r2] b _0800E094 .align 2, 0 _0800E010: .4byte 0x00001a08 _0800E014: .4byte gUnknown_2026E4E _0800E018: .4byte 0x00000a0a _0800E01C: .4byte gUnknown_203B0CC _0800E020: ldr r0, _0800E02C cmp r1, r0 ble _0800E094 str r0, [r2] b _0800E094 .align 2, 0 _0800E02C: .4byte 0x00000c1c _0800E030: bl sub_8009BE4 adds r0, r6, 0 bl sub_800DCA8 bl sub_8000728 cmp r0, 0x1 bne _0800E058 bl sub_8040238 movs r0, 0 movs r1, 0 bl sub_803EAF0 movs r0, 0x80 lsls r0, 8 movs r1, 0 bl sub_800CD64 _0800E058: ldr r4, _0800E084 ldr r0, [r4] ldr r2, _0800E088 adds r0, r2 ldr r0, [r0] bl sub_800CDA8 ldr r1, _0800E08C ldr r0, [r4] ldr r2, _0800E090 adds r0, r2 ldrh r0, [r0] strh r0, [r1] movs r0, 0x1 bl sub_800F18C str r5, [r0, 0x4] movs r1, 0x1 negs r1, r1 str r1, [r0] movs r0, 0 b _0800E0A6 .align 2, 0 _0800E084: .4byte gUnknown_203B0CC _0800E088: .4byte 0x00001a10 _0800E08C: .4byte gUnknown_2026E4E _0800E090: .4byte 0x00001a14 _0800E094: mov r1, r8 ldr r0, [r1, 0x14] adds r0, 0x1 str r0, [r1, 0x14] _0800E09C: mov r2, r8 ldr r0, [r2, 0x18] subs r0, 0x1 str r0, [r2, 0x18] movs r0, 0x1 _0800E0A6: add sp, 0x14 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_800DE8C thumb_func_start sub_800E0B4 sub_800E0B4: push {r4-r6,lr} sub sp, 0x8 adds r5, r0, 0 ldr r0, [r5, 0xC] bl sub_800ECA4 adds r6, r0, 0 ldr r0, [r6] str r0, [r5, 0x34] ldr r0, [r6, 0x4] str r0, [r5, 0x38] ldr r0, [r6, 0x10] str r0, [r5, 0x4C] ldr r0, [r5, 0x10] ldr r1, [r6, 0x14] adds r0, r1 str r0, [r5, 0x50] adds r0, r6, 0 adds r0, 0x21 ldrb r0, [r0] adds r1, r5, 0 adds r1, 0x55 strb r0, [r1] adds r0, r6, 0 adds r0, 0x20 ldrb r1, [r0] adds r0, r5, 0 adds r0, 0x54 strb r1, [r0] adds r0, 0x64 ldr r0, [r0] bl sub_800E2B8 adds r2, r0, 0 str r2, [r5, 0x8] ldr r3, [r6, 0xC] str r3, [r5, 0x40] ldr r1, [r5, 0x14] movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _0800E114 movs r0, 0x7 ands r0, r2 cmp r0, 0 bne _0800E114 adds r0, r3, r1 str r0, [r5, 0x40] _0800E114: ldr r0, [r5, 0x34] cmp r0, 0x3 beq _0800E12E cmp r0, 0x3 bhi _0800E128 cmp r0, 0x1 bcc _0800E184 movs r0, 0x92 lsls r0, 2 b _0800E132 _0800E128: cmp r0, 0x4 beq _0800E140 b _0800E184 _0800E12E: movs r0, 0xDC lsls r0, 2 _0800E132: str r0, [r5, 0x48] ldr r0, [r6, 0x8] str r0, [r5, 0x3C] movs r0, 0x1 negs r0, r0 str r0, [r5, 0x44] b _0800E184 _0800E140: movs r0, 0x1 negs r0, r0 str r0, [r5, 0x48] ldr r0, [r6, 0x8] str r0, [r5, 0x3C] movs r0, 0xF0 lsls r0, 4 str r0, [r5, 0x44] ldr r4, _0800E194 ldr r0, [r4] ldr r2, _0800E198 adds r1, r0, r2 movs r2, 0 str r2, [r1] ldr r3, _0800E19C adds r0, r3 str r2, [r0] bl sub_800CDC8 ldr r2, [r4] ldr r4, _0800E1A0 adds r1, r2, r4 str r0, [r1] ldr r0, _0800E1A4 ldrh r0, [r0] ldr r1, _0800E1A8 adds r2, r1 strh r0, [r2] ldrb r0, [r6, 0x18] cmp r0, 0 beq _0800E184 movs r0, 0x5 bl sub_800CDA8 _0800E184: ldr r0, [r5, 0x34] cmp r0, 0x3 beq _0800E1C2 cmp r0, 0x3 bls _0800E1AC cmp r0, 0x4 beq _0800E1E4 b _0800E200 .align 2, 0 _0800E194: .4byte gUnknown_203B0CC _0800E198: .4byte 0x00001a08 _0800E19C: .4byte 0x00001a0c _0800E1A0: .4byte 0x00001a10 _0800E1A4: .4byte gUnknown_2026E4E _0800E1A8: .4byte 0x00001a14 _0800E1AC: cmp r0, 0x1 bcc _0800E200 adds r0, r5, 0 adds r0, 0x58 adds r1, r5, 0 adds r1, 0xB8 ldr r1, [r1] ldr r2, [r5, 0x40] movs r3, 0x92 lsls r3, 2 b _0800E1D2 _0800E1C2: adds r0, r5, 0 adds r0, 0x58 adds r1, r5, 0 adds r1, 0xB8 ldr r1, [r1] ldr r2, [r5, 0x40] movs r3, 0xDC lsls r3, 2 _0800E1D2: movs r4, 0 str r4, [sp] adds r4, r5, 0 adds r4, 0x55 ldrb r4, [r4] str r4, [sp, 0x4] bl sub_800543C b _0800E200 _0800E1E4: adds r0, r5, 0 adds r0, 0xB8 ldr r0, [r0] adds r1, r5, 0 adds r1, 0x94 ldr r0, [r0, 0x4] ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2,r3} stm r1!, {r2,r3} adds r1, r5, 0 adds r1, 0xB4 movs r0, 0 strb r0, [r1] _0800E200: add sp, 0x8 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_800E0B4 thumb_func_start sub_800E208 sub_800E208: push {r4-r7,lr} adds r7, r0, 0 adds r6, r1, 0 ldr r0, _0800E220 ldr r4, [r0] ldr r0, [r6] cmp r0, 0 bne _0800E224 _0800E218: movs r0, 0x1 negs r0, r0 b _0800E2B0 .align 2, 0 _0800E220: .4byte gUnknown_203B0CC _0800E224: movs r1, 0 _0800E226: ldr r5, [r4, 0x4] movs r0, 0x1 negs r0, r0 cmp r5, r0 bne _0800E2A8 adds r0, r4, 0 movs r1, 0xD0 bl MemoryClear8 ldr r0, [r6] bl sub_800ECA4 adds r1, r0, 0 ldr r2, [r1] cmp r2, 0x2 bne _0800E254 ldr r0, _0800E2A0 ldr r0, [r0] ldr r3, _0800E2A4 adds r0, r3 ldr r0, [r0] cmp r0, 0x1 bne _0800E218 _0800E254: cmp r2, 0x1 bne _0800E266 ldr r0, _0800E2A0 ldr r0, [r0] ldr r3, _0800E2A4 adds r0, r3 ldr r0, [r0] cmp r0, 0 bne _0800E218 _0800E266: ldr r1, [r1, 0x4] adds r0, r2, 0 bl sub_800F1C0 adds r1, r4, 0 adds r1, 0xB8 str r0, [r1] cmp r0, 0 beq _0800E218 str r7, [r4] bl sub_800E2F0 str r0, [r4, 0x4] adds r1, r4, 0 adds r1, 0xC adds r0, r6, 0 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldr r0, [r0] str r0, [r1] adds r0, r4, 0 bl sub_800E0B4 ldr r0, [r4, 0x4] b _0800E2B0 .align 2, 0 _0800E2A0: .4byte gUnknown_203B0CC _0800E2A4: .4byte 0x00001a04 _0800E2A8: adds r1, 0x1 adds r4, 0xD0 cmp r1, 0x1F ble _0800E226 _0800E2B0: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_800E208 thumb_func_start sub_800E2B8 sub_800E2B8: ldr r0, [r0, 0x4] ldr r0, [r0, 0x8] bx lr thumb_func_end sub_800E2B8 thumb_func_start sub_800E2C0 sub_800E2C0: push {lr} adds r3, r0, 0 movs r0, 0x1 negs r0, r0 cmp r3, r0 beq _0800E2E8 ldr r0, _0800E2DC ldr r1, [r0] movs r2, 0 _0800E2D2: ldr r0, [r1, 0x4] cmp r0, r3 bne _0800E2E0 adds r0, r2, 0 b _0800E2EC .align 2, 0 _0800E2DC: .4byte gUnknown_203B0CC _0800E2E0: adds r2, 0x1 adds r1, 0xD0 cmp r2, 0x1F ble _0800E2D2 _0800E2E8: movs r0, 0x1 negs r0, r0 _0800E2EC: pop {r1} bx r1 thumb_func_end sub_800E2C0 thumb_func_start sub_800E2F0 sub_800E2F0: ldr r0, _0800E304 ldr r1, [r0] movs r0, 0xD0 lsls r0, 5 adds r1, r0 ldr r0, [r1] adds r2, r0, 0x1 str r2, [r1] bx lr .align 2, 0 _0800E304: .4byte gUnknown_203B0CC thumb_func_end sub_800E2F0 thumb_func_start sub_800E308 sub_800E308: push {r4-r7,lr} sub sp, 0x50 adds r4, r0, 0 adds r7, r1, 0 ldrh r0, [r4] bl sub_800ECB8 movs r1, 0x6 ldrsh r0, [r0, r1] str r0, [sp, 0x28] ldr r0, [r4, 0x10] str r0, [sp, 0x2C] ldr r0, [r4, 0xC] str r0, [sp, 0x30] ldr r0, [r4, 0x4] str r0, [sp, 0x34] ldr r0, [r4, 0x8] str r0, [sp, 0x38] movs r2, 0x2 ldrsh r0, [r4, r2] ldrh r1, [r4] bl sub_800E750 str r0, [sp, 0x3C] ldr r0, _0800E3A0 str r0, [sp, 0x40] add r1, sp, 0x44 ldr r0, _0800E3A4 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} add r1, sp, 0x28 mov r0, sp movs r2, 0x28 bl memcpy movs r0, 0x2 mov r1, sp bl sub_800E208 adds r5, r0, 0 movs r6, 0x1 negs r6, r6 cmp r5, r6 beq _0800E396 adds r0, r5, 0 bl sub_800E2C0 adds r1, r0, 0 cmp r1, r6 beq _0800E396 ldr r2, _0800E3A8 movs r0, 0xD0 muls r1, r0 ldr r0, [r2] adds r2, r0, r1 adds r1, r2, 0 adds r1, 0xBC ldr r0, [r4, 0x4] str r0, [r1] adds r1, 0x4 ldr r0, [r7] str r0, [r1] ldrh r1, [r4, 0x2] adds r0, r2, 0 adds r0, 0xC4 strh r1, [r0] adds r1, r2, 0 adds r1, 0xC8 ldr r0, [r2, 0x1C] str r0, [r1] adds r0, r5, 0 _0800E396: add sp, 0x50 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0800E3A0: .4byte 0x0000ffff _0800E3A4: .4byte gUnknown_80B9C60 _0800E3A8: .4byte gUnknown_203B0CC thumb_func_end sub_800E308 thumb_func_start sub_800E3AC sub_800E3AC: push {r4-r6,lr} adds r4, r1, 0 adds r6, r2, 0 bl sub_800E2C0 adds r1, r0, 0 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _0800E43C ldr r2, _0800E444 movs r0, 0xD0 muls r1, r0 ldr r0, [r2] adds r5, r0, r1 ldr r0, [r4] str r0, [r5, 0x18] adds r0, r5, 0 adds r0, 0xC0 movs r2, 0 ldrsh r1, [r0, r2] subs r0, 0x4 movs r3, 0 ldrsh r0, [r0, r3] subs r2, r1, r0 cmp r2, 0 bge _0800E3E4 negs r2, r2 _0800E3E4: adds r0, r5, 0 adds r0, 0xC2 movs r3, 0 ldrsh r1, [r0, r3] subs r0, 0x4 movs r3, 0 ldrsh r0, [r0, r3] subs r1, r0 cmp r1, 0 bge _0800E3FA negs r1, r1 _0800E3FA: cmp r1, r2 bge _0800E400 adds r1, r2, 0 _0800E400: cmp r1, 0 bge _0800E406 adds r1, 0x3 _0800E406: asrs r4, r1, 2 subs r1, r4, 0x1 ldrh r0, [r5, 0x1E] adds r0, 0x9 strh r0, [r5, 0x1E] movs r2, 0x1C ldrsh r0, [r5, r2] muls r0, r1 strh r0, [r5, 0x1C] movs r3, 0x1E ldrsh r0, [r5, r3] muls r0, r1 strh r0, [r5, 0x1E] movs r1, 0x1C ldrsh r0, [r5, r1] adds r1, r4, 0 bl __divsi3 strh r0, [r5, 0x1C] movs r2, 0x1E ldrsh r0, [r5, r2] adds r1, r4, 0 bl __divsi3 subs r0, 0x9 strh r0, [r5, 0x1E] str r6, [r5, 0x24] _0800E43C: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0800E444: .4byte gUnknown_203B0CC thumb_func_end sub_800E3AC thumb_func_start sub_800E448 sub_800E448: push {r4,lr} sub sp, 0x50 adds r4, r1, 0 lsls r0, 24 lsrs r0, 24 bl sub_800ECE4 lsls r0, 16 asrs r0, 16 str r0, [sp, 0x28] movs r2, 0 str r2, [sp, 0x2C] movs r1, 0x1 negs r1, r1 str r1, [sp, 0x30] ldr r0, [r4] str r0, [sp, 0x34] str r2, [sp, 0x38] str r1, [sp, 0x3C] ldr r0, _0800E494 str r0, [sp, 0x40] add r1, sp, 0x44 ldr r0, _0800E498 ldm r0!, {r2-r4} stm r1!, {r2-r4} add r1, sp, 0x28 mov r0, sp movs r2, 0x28 bl memcpy movs r0, 0x3 mov r1, sp bl sub_800E208 add sp, 0x50 pop {r4} pop {r1} bx r1 .align 2, 0 _0800E494: .4byte 0x0000ffff _0800E498: .4byte gUnknown_80B9C60 thumb_func_end sub_800E448 thumb_func_start sub_800E49C sub_800E49C: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x50 adds r7, r1, 0 mov r8, r2 lsls r0, 24 lsrs r0, 24 lsls r3, 24 lsrs r6, r3, 24 cmp r6, 0 beq _0800E4BA bl sub_800ECF8 b _0800E4BE _0800E4BA: bl sub_800ED0C _0800E4BE: lsls r0, 16 asrs r4, r0, 16 adds r0, r4, 0 bl sub_800E700 adds r5, r0, 0 str r4, [sp, 0x28] movs r1, 0 str r1, [sp, 0x2C] movs r4, 0x1 negs r4, r4 str r4, [sp, 0x30] ldr r0, [r7] str r0, [sp, 0x34] str r1, [sp, 0x38] str r4, [sp, 0x3C] str r1, [sp, 0x40] add r1, sp, 0x44 ldr r0, _0800E508 ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} add r1, sp, 0x28 mov r0, sp movs r2, 0x28 bl memcpy ldr r0, [sp, 0x68] str r0, [sp, 0x18] cmp r6, 0 beq _0800E50C cmp r5, r4 beq _0800E516 str r5, [sp, 0x14] lsls r0, r5, 2 add r0, r8 ldr r0, [r0] b _0800E514 .align 2, 0 _0800E508: .4byte gUnknown_80B9C60 _0800E50C: movs r0, 0x3 str r0, [sp, 0x14] mov r1, r8 ldr r0, [r1, 0xC] _0800E514: str r0, [sp, 0x10] _0800E516: movs r0, 0x4 mov r1, sp bl sub_800E208 add sp, 0x50 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_800E49C thumb_func_start sub_800E52C sub_800E52C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1B0 adds r7, r0, 0 ldrh r0, [r7] cmp r0, 0x52 bne _0800E628 mov r1, sp ldr r0, _0800E618 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r4,r5} stm r1!, {r4,r5} movs r0, 0 mov r10, r0 mov r9, r0 mov r8, sp add r6, sp, 0x20 adds r4, r6, 0 _0800E55C: ldrh r0, [r7] bl sub_800ECB8 movs r1, 0x2 ldrsh r0, [r0, r1] str r0, [r4] ldr r0, [r7, 0x10] str r0, [r4, 0x4] ldr r0, [r7, 0xC] str r0, [r4, 0x8] ldr r0, [r7, 0x4] str r0, [r4, 0xC] ldrh r0, [r4, 0xE] adds r0, 0x40 strh r0, [r4, 0xE] ldr r0, [r7, 0x8] str r0, [r4, 0x10] mov r2, r8 ldrh r0, [r2] ldrh r3, [r4, 0x10] adds r0, r3 strh r0, [r4, 0x10] ldrh r0, [r4, 0x12] subs r0, 0x40 ldrh r5, [r2, 0x2] adds r0, r5 strh r0, [r4, 0x12] movs r1, 0x2 ldrsh r0, [r7, r1] ldrh r1, [r7] bl sub_800E750 str r0, [r4, 0x14] ldr r0, _0800E61C str r0, [r4, 0x18] adds r1, r6, 0 adds r1, 0x1C ldr r0, _0800E620 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} movs r0, 0x1 adds r1, r6, 0 bl sub_800E208 adds r5, r0, 0 bl sub_800E2C0 adds r1, r0, 0 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _0800E5D4 ldr r2, _0800E624 movs r0, 0xD0 muls r1, r0 ldr r0, [r2] adds r0, r1 adds r0, 0xCC movs r1, 0x6 strh r1, [r0] _0800E5D4: mov r0, r9 cmp r0, 0 bne _0800E5DC mov r10, r5 _0800E5DC: movs r1, 0x4 add r8, r1 adds r4, 0x28 adds r6, 0x28 movs r2, 0x1 add r9, r2 mov r3, r9 cmp r3, 0x7 ble _0800E55C movs r4, 0x6 mov r9, r4 _0800E5F2: ldrh r0, [r7] bl sub_800ECB8 movs r5, 0x2 ldrsh r0, [r0, r5] bl sub_800ECA4 ldr r0, [r0, 0x4] bl sub_800F15C movs r0, 0x1 negs r0, r0 add r9, r0 mov r1, r9 cmp r1, 0 bge _0800E5F2 mov r0, r10 b _0800E67E .align 2, 0 _0800E618: .4byte gUnknown_80B9C7C _0800E61C: .4byte 0x0000ffff _0800E620: .4byte gUnknown_80B9C60 _0800E624: .4byte gUnknown_203B0CC _0800E628: add r6, sp, 0x160 add r5, sp, 0x188 ldrh r0, [r7] bl sub_800ECB8 movs r2, 0x2 ldrsh r0, [r0, r2] str r0, [r5] add r1, sp, 0x18C ldr r0, [r7, 0x10] str r0, [r1] add r1, sp, 0x190 ldr r0, [r7, 0xC] str r0, [r1] add r1, sp, 0x194 ldr r0, [r7, 0x4] str r0, [r1] add r1, sp, 0x198 ldr r0, [r7, 0x8] str r0, [r1] add r4, sp, 0x19C movs r3, 0x2 ldrsh r0, [r7, r3] ldrh r1, [r7] bl sub_800E750 str r0, [r4] add r1, sp, 0x1A0 ldr r0, _0800E690 str r0, [r1] add r1, sp, 0x1A4 ldr r0, _0800E694 ldm r0!, {r2-r4} stm r1!, {r2-r4} adds r0, r6, 0 adds r1, r5, 0 movs r2, 0x28 bl memcpy movs r0, 0x1 adds r1, r6, 0 bl sub_800E208 _0800E67E: add sp, 0x1B0 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0800E690: .4byte 0x0000ffff _0800E694: .4byte gUnknown_80B9C60 thumb_func_end sub_800E52C thumb_func_start sub_800E698 sub_800E698: push {r4,r5,lr} adds r4, r1, 0 adds r5, r2, 0 bl sub_800E2C0 adds r1, r0, 0 movs r3, 0x1 negs r3, r3 cmp r1, r3 beq _0800E6D2 ldr r2, _0800E6C8 movs r0, 0xD0 muls r1, r0 ldr r0, [r2] adds r1, r0, r1 ldr r0, [r4] str r0, [r1, 0x18] ldr r0, [r1, 0x20] cmp r0, r3 beq _0800E6CC ldr r0, [r5] str r0, [r1, 0x1C] b _0800E6D2 .align 2, 0 _0800E6C8: .4byte gUnknown_203B0CC _0800E6CC: movs r0, 0 strh r0, [r1, 0x1C] strh r0, [r1, 0x1E] _0800E6D2: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_800E698 thumb_func_start sub_800E6D8 sub_800E6D8: push {lr} bl sub_800E2C0 adds r1, r0, 0 movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _0800E6EC adds r0, r1, 0 b _0800E6F8 _0800E6EC: ldr r2, _0800E6FC movs r0, 0xD0 muls r1, r0 ldr r0, [r2] adds r0, r1 ldr r0, [r0, 0x20] _0800E6F8: pop {r1} bx r1 .align 2, 0 _0800E6FC: .4byte gUnknown_203B0CC thumb_func_end sub_800E6D8 thumb_func_start sub_800E700 sub_800E700: push {lr} lsls r0, 16 asrs r0, 16 bl sub_800E900 pop {r1} bx r1 thumb_func_end sub_800E700 thumb_func_start sub_800E710 sub_800E710: push {r4-r6,lr} lsls r0, 16 asrs r5, r0, 16 lsls r1, 16 lsrs r1, 16 adds r0, r1, 0 bl sub_800ECB8 adds r4, r0, 0 ldr r0, [r4, 0x20] bl sub_800ECD0 adds r1, r0, 0 movs r2, 0 ldr r0, [r4, 0x1C] cmp r2, r0 bge _0800E748 adds r3, r0, 0 _0800E734: movs r6, 0 ldrsh r0, [r1, r6] cmp r0, r5 bne _0800E740 ldr r0, [r1, 0x4] b _0800E74A _0800E740: adds r2, 0x1 adds r1, 0xC cmp r2, r3 blt _0800E734 _0800E748: ldr r0, [r4, 0x14] _0800E74A: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_800E710 thumb_func_start sub_800E750 sub_800E750: push {r4-r6,lr} lsls r0, 16 asrs r5, r0, 16 lsls r1, 16 lsrs r1, 16 adds r0, r1, 0 bl sub_800ECB8 adds r4, r0, 0 ldr r0, [r4, 0x20] bl sub_800ECD0 adds r1, r0, 0 movs r2, 0 ldr r0, [r4, 0x1C] cmp r2, r0 bge _0800E788 adds r3, r0, 0 _0800E774: movs r6, 0 ldrsh r0, [r1, r6] cmp r0, r5 bne _0800E780 ldr r0, [r1, 0x4] b _0800E78A _0800E780: adds r2, 0x1 adds r1, 0xC cmp r2, r3 blt _0800E774 _0800E788: ldr r0, [r4, 0x14] _0800E78A: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_800E750 thumb_func_start sub_800E790 sub_800E790: push {r4-r6,lr} lsls r0, 16 asrs r5, r0, 16 lsls r1, 16 lsrs r1, 16 adds r0, r1, 0 bl sub_800ECB8 adds r4, r0, 0 ldr r0, [r4, 0x20] bl sub_800ECD0 adds r1, r0, 0 movs r2, 0 ldr r0, [r4, 0x1C] cmp r2, r0 bge _0800E7C8 adds r3, r0, 0 _0800E7B4: movs r6, 0 ldrsh r0, [r1, r6] cmp r0, r5 bne _0800E7C0 ldr r0, [r1, 0x8] b _0800E7CA _0800E7C0: adds r2, 0x1 adds r1, 0xC cmp r2, r3 blt _0800E7B4 _0800E7C8: ldr r0, [r4, 0x18] _0800E7CA: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_800E790 thumb_func_start sub_800E7D0 sub_800E7D0: push {r4-r6,lr} sub sp, 0x10 adds r4, r0, 0 movs r6, 0 ldrh r0, [r4] bl sub_800ECB8 movs r1, 0 ldrsh r0, [r0, r1] str r0, [sp] ldrh r0, [r4] bl sub_800ECB8 movs r1, 0x2 ldrsh r0, [r0, r1] str r0, [sp, 0x4] ldrh r0, [r4] bl sub_800ECB8 movs r1, 0x4 ldrsh r0, [r0, r1] str r0, [sp, 0x8] ldrh r0, [r4] bl sub_800ECB8 movs r1, 0x6 ldrsh r0, [r0, r1] str r0, [sp, 0xC] movs r5, 0 mov r4, sp b _0800E812 _0800E80E: adds r4, 0x4 adds r5, 0x1 _0800E812: cmp r5, 0x3 bgt _0800E82C ldr r0, [r4] bl sub_800ECA4 movs r1, 0 ldr r0, [r0] cmp r0, 0x4 bne _0800E826 movs r1, 0x1 _0800E826: adds r6, r1, 0 cmp r6, 0 beq _0800E80E _0800E82C: adds r0, r6, 0 add sp, 0x10 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_800E7D0 thumb_func_start sub_800E838 sub_800E838: push {r4,r5,lr} sub sp, 0x10 adds r4, r0, 0 adds r5, r1, 0 ldrh r0, [r4] bl sub_800ECB8 movs r1, 0 ldrsh r0, [r0, r1] str r0, [sp] ldrh r0, [r4] bl sub_800ECB8 movs r1, 0x2 ldrsh r0, [r0, r1] str r0, [sp, 0x4] ldrh r0, [r4] bl sub_800ECB8 movs r1, 0x4 ldrsh r0, [r0, r1] str r0, [sp, 0x8] ldrh r0, [r4] bl sub_800ECB8 movs r1, 0x6 ldrsh r0, [r0, r1] str r0, [sp, 0xC] lsls r5, 2 mov r1, sp adds r0, r1, r5 ldr r0, [r0] bl sub_800ECA4 movs r1, 0 ldr r0, [r0] cmp r0, 0x4 bne _0800E886 movs r1, 0x1 _0800E886: adds r0, r1, 0 add sp, 0x10 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_800E838 thumb_func_start sub_800E890 sub_800E890: push {r4,lr} adds r4, r0, 0 ldr r0, [r4] bl sub_800E900 str r0, [r4, 0x14] movs r0, 0x7 adds r1, r4, 0 bl sub_800E208 pop {r4} pop {r1} bx r1 thumb_func_end sub_800E890 thumb_func_start sub_800E8AC sub_800E8AC: push {r4-r7,lr} adds r4, r1, 0 adds r5, r2, 0 adds r6, r3, 0 ldr r7, [sp, 0x14] bl sub_800E2C0 adds r1, r0, 0 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _0800E8F2 ldr r2, _0800E8F8 movs r0, 0xD0 muls r1, r0 ldr r0, [r2] adds r1, r0, r1 cmp r4, 0 beq _0800E8D6 ldr r0, [r4] str r0, [r1, 0x18] _0800E8D6: cmp r5, 0 beq _0800E8DE ldr r0, [r5] str r0, [r1, 0x1C] _0800E8DE: ldr r0, _0800E8FC cmp r6, r0 beq _0800E8E6 str r6, [r1, 0x24] _0800E8E6: cmp r7, 0 beq _0800E8F2 adds r1, 0x28 adds r0, r7, 0 ldm r0!, {r2-r4} stm r1!, {r2-r4} _0800E8F2: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0800E8F8: .4byte gUnknown_203B0CC _0800E8FC: .4byte 0x0000ffff thumb_func_end sub_800E8AC thumb_func_start sub_800E900 sub_800E900: push {lr} bl sub_800ECA4 ldr r0, [r0, 0x1C] pop {r1} bx r1 thumb_func_end sub_800E900 thumb_func_start sub_800E90C sub_800E90C: push {r4-r7,lr} adds r5, r0, 0 movs r7, 0 ldr r0, _0800E938 ldr r4, [r0] movs r6, 0x1F _0800E918: ldr r1, [r4, 0x4] movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _0800E960 ldr r0, [r4, 0x10] cmp r0, 0 bgt _0800E94A ldr r0, [r4, 0x34] cmp r0, 0x4 bne _0800E93C adds r0, r4, 0 adds r1, r5, 0 bl sub_800DE8C b _0800E944 .align 2, 0 _0800E938: .4byte gUnknown_203B0CC _0800E93C: adds r0, r4, 0 adds r1, r5, 0 bl sub_800DD0C _0800E944: ldr r0, [r4, 0x10] cmp r0, 0 ble _0800E94E _0800E94A: subs r0, 0x1 str r0, [r4, 0x10] _0800E94E: adds r0, r4, 0 bl sub_800DCD0 adds r0, r4, 0 adds r0, 0x54 ldrb r0, [r0] cmp r0, 0 bne _0800E960 movs r7, 0x1 _0800E960: subs r6, 0x1 adds r4, 0xD0 cmp r6, 0 bge _0800E918 adds r0, r7, 0 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_800E90C thumb_func_start sub_800E970 sub_800E970: push {r4,r5,lr} ldr r0, _0800E9A4 ldr r4, [r0] movs r5, 0x1F _0800E978: ldr r1, [r4, 0x4] movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _0800E994 ldr r0, [r4, 0x10] cmp r0, 0 bgt _0800E994 ldr r0, [r4, 0x34] cmp r0, 0x4 beq _0800E994 adds r0, r4, 0 bl sub_800DE38 _0800E994: subs r5, 0x1 adds r4, 0xD0 cmp r5, 0 bge _0800E978 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0800E9A4: .4byte gUnknown_203B0CC thumb_func_end sub_800E970 thumb_func_start sub_800E9A8 sub_800E9A8: push {lr} adds r3, r0, 0 movs r0, 0x1 negs r0, r0 cmp r3, r0 beq _0800E9DC ldr r0, _0800E9D0 ldr r1, [r0] movs r2, 0 _0800E9BA: ldr r0, [r1, 0x4] cmp r0, r3 bne _0800E9D4 adds r0, r1, 0 adds r0, 0x54 ldrb r0, [r0] cmp r0, 0 bne _0800E9DC movs r0, 0x1 b _0800E9DE .align 2, 0 _0800E9D0: .4byte gUnknown_203B0CC _0800E9D4: adds r2, 0x1 adds r1, 0xD0 cmp r2, 0x1F ble _0800E9BA _0800E9DC: movs r0, 0 _0800E9DE: pop {r1} bx r1 thumb_func_end sub_800E9A8 thumb_func_start sub_800E9E4 sub_800E9E4: push {lr} bl sub_800E2C0 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _0800E9F6 movs r0, 0 b _0800E9F8 _0800E9F6: movs r0, 0x1 _0800E9F8: pop {r1} bx r1 thumb_func_end sub_800E9E4 thumb_func_start sub_800E9FC sub_800E9FC: push {r4,lr} lsls r0, 24 lsrs r3, r0, 24 ldr r0, _0800EA38 ldr r1, [r0] movs r2, 0 movs r4, 0x1 negs r4, r4 _0800EA0C: ldr r0, [r1, 0x4] cmp r0, r4 beq _0800EA20 cmp r3, 0 bne _0800EA3C adds r0, r1, 0 adds r0, 0x54 ldrb r0, [r0] cmp r0, 0 beq _0800EA3C _0800EA20: adds r2, 0x1 adds r1, 0xD0 cmp r2, 0x1F ble _0800EA0C bl sub_800EC74 lsls r0, 24 cmp r0, 0 bne _0800EA3C movs r0, 0 b _0800EA3E .align 2, 0 _0800EA38: .4byte gUnknown_203B0CC _0800EA3C: movs r0, 0x1 _0800EA3E: pop {r4} pop {r1} bx r1 thumb_func_end sub_800E9FC thumb_func_start sub_800EA44 sub_800EA44: push {r4-r6,lr} lsls r0, 16 asrs r5, r0, 16 lsls r1, 16 lsrs r1, 16 adds r0, r1, 0 bl sub_800ECB8 adds r4, r0, 0 ldr r0, [r4, 0x20] bl sub_800ECD0 adds r1, r0, 0 movs r2, 0 ldr r0, [r4, 0x1C] cmp r2, r0 bge _0800EA7C adds r3, r0, 0 _0800EA68: movs r6, 0 ldrsh r0, [r1, r6] cmp r0, r5 bne _0800EA74 ldrb r0, [r1, 0x2] b _0800EA7E _0800EA74: adds r2, 0x1 adds r1, 0xC cmp r2, r3 blt _0800EA68 _0800EA7C: ldrb r0, [r4, 0x10] _0800EA7E: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_800EA44 thumb_func_start sub_800EA84 sub_800EA84: push {r4,lr} sub sp, 0x50 adds r4, r0, 0 ldrh r0, [r4] bl sub_800ECB8 movs r1, 0 ldrsh r0, [r0, r1] str r0, [sp, 0x28] ldr r0, [r4, 0x10] str r0, [sp, 0x2C] ldr r0, [r4, 0xC] str r0, [sp, 0x30] ldr r0, [r4, 0x4] str r0, [sp, 0x34] ldr r0, [r4, 0x8] str r0, [sp, 0x38] ldrh r0, [r4] bl sub_800ECB8 movs r2, 0 ldrsh r0, [r0, r2] bl sub_800EBBC str r0, [sp, 0x3C] ldr r0, _0800EADC str r0, [sp, 0x40] add r1, sp, 0x44 ldr r0, _0800EAE0 ldm r0!, {r2-r4} stm r1!, {r2-r4} add r1, sp, 0x28 mov r0, sp movs r2, 0x28 bl memcpy movs r0, 0x5 mov r1, sp bl sub_800E208 add sp, 0x50 pop {r4} pop {r1} bx r1 .align 2, 0 _0800EADC: .4byte 0x0000ffff _0800EAE0: .4byte gUnknown_80B9C60 thumb_func_end sub_800EA84 thumb_func_start sub_800EAE4 sub_800EAE4: push {r4,r5,lr} adds r4, r1, 0 adds r5, r2, 0 bl sub_800E2C0 adds r1, r0, 0 movs r3, 0x1 negs r3, r3 cmp r1, r3 beq _0800EB1E ldr r2, _0800EB14 movs r0, 0xD0 muls r1, r0 ldr r0, [r2] adds r1, r0, r1 ldr r0, [r4] str r0, [r1, 0x18] ldr r0, [r1, 0x20] cmp r0, r3 beq _0800EB18 ldr r0, [r5] str r0, [r1, 0x1C] b _0800EB1E .align 2, 0 _0800EB14: .4byte gUnknown_203B0CC _0800EB18: movs r0, 0 strh r0, [r1, 0x1C] strh r0, [r1, 0x1E] _0800EB1E: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_800EAE4 thumb_func_start sub_800EB24 sub_800EB24: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x20 adds r6, r1, 0 mov r8, r2 adds r5, r3, 0 ldr r4, [sp, 0x38] bl sub_800E2C0 adds r1, r0, 0 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _0800EBB0 ldr r2, _0800EB8C movs r0, 0xD0 muls r1, r0 ldr r0, [r2] adds r2, r0, r1 adds r0, r2, 0 adds r0, 0xCC ldr r0, [r0] cmp r0, 0 bne _0800EB5A ldr r0, [r6] str r0, [r2, 0x18] _0800EB5A: ldr r0, [r2] cmp r0, 0x6 beq _0800EB94 ldr r0, [r2, 0x8] movs r1, 0x7 mov r12, r1 ands r0, r1 cmp r0, 0 bne _0800EB94 mov r1, sp ldr r0, _0800EB90 ldm r0!, {r3,r6,r7} stm r1!, {r3,r6,r7} ldm r0!, {r3,r6,r7} stm r1!, {r3,r6,r7} ldm r0!, {r3,r6} stm r1!, {r3,r6} mov r7, r12 ands r4, r7 lsls r0, r4, 2 add r0, sp ldr r0, [r0] adds r0, r5, r0 b _0800EB96 .align 2, 0 _0800EB8C: .4byte gUnknown_203B0CC _0800EB90: .4byte gUnknown_80B9C9C _0800EB94: adds r0, r5, 0x1 _0800EB96: str r0, [r2, 0x24] ldr r1, [r2, 0x20] movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _0800EBAA mov r1, r8 ldr r0, [r1] str r0, [r2, 0x1C] b _0800EBB0 _0800EBAA: movs r0, 0 strh r0, [r2, 0x1C] strh r0, [r2, 0x1E] _0800EBB0: add sp, 0x20 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_800EB24 thumb_func_start sub_800EBBC sub_800EBBC: push {lr} bl sub_800ECA4 ldr r0, [r0, 0x1C] pop {r1} bx r1 thumb_func_end sub_800EBBC thumb_func_start sub_800EBC8 sub_800EBC8: push {r4,lr} sub sp, 0x50 adds r4, r0, 0 ldrh r0, [r4] bl sub_800ECB8 movs r1, 0x4 ldrsh r0, [r0, r1] str r0, [sp, 0x28] ldr r0, [r4, 0x10] str r0, [sp, 0x2C] ldr r0, [r4, 0xC] str r0, [sp, 0x30] ldr r0, [r4, 0x4] str r0, [sp, 0x34] ldr r0, [r4, 0x8] str r0, [sp, 0x38] ldrh r0, [r4] bl sub_800ECB8 movs r2, 0x4 ldrsh r0, [r0, r2] bl sub_800EC68 str r0, [sp, 0x3C] ldr r0, _0800EC20 str r0, [sp, 0x40] add r1, sp, 0x44 ldr r0, _0800EC24 ldm r0!, {r2-r4} stm r1!, {r2-r4} add r1, sp, 0x28 mov r0, sp movs r2, 0x28 bl memcpy movs r0, 0x6 mov r1, sp bl sub_800E208 add sp, 0x50 pop {r4} pop {r1} bx r1 .align 2, 0 _0800EC20: .4byte 0x0000ffff _0800EC24: .4byte gUnknown_80B9C60 thumb_func_end sub_800EBC8 thumb_func_start sub_800EC28 sub_800EC28: push {r4,r5,lr} adds r4, r1, 0 adds r5, r2, 0 bl sub_800E2C0 adds r1, r0, 0 movs r3, 0x1 negs r3, r3 cmp r1, r3 beq _0800EC62 ldr r2, _0800EC58 movs r0, 0xD0 muls r1, r0 ldr r0, [r2] adds r1, r0, r1 ldr r0, [r4] str r0, [r1, 0x18] ldr r0, [r1, 0x20] cmp r0, r3 beq _0800EC5C ldr r0, [r5] str r0, [r1, 0x1C] b _0800EC62 .align 2, 0 _0800EC58: .4byte gUnknown_203B0CC _0800EC5C: movs r0, 0 strh r0, [r1, 0x1C] strh r0, [r1, 0x1E] _0800EC62: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_800EC28 thumb_func_start sub_800EC68 sub_800EC68: push {lr} bl sub_800ECA4 ldr r0, [r0, 0x1C] pop {r1} bx r1 thumb_func_end sub_800EC68 thumb_func_start sub_800EC74 sub_800EC74: push {lr} movs r0, 0x1 bl sub_800F19C lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end sub_800EC74 thumb_func_start sub_800EC84 sub_800EC84: push {lr} lsls r0, 16 lsrs r0, 16 bl sub_800ECB8 ldrb r0, [r0, 0x8] pop {r1} bx r1 thumb_func_end sub_800EC84 thumb_func_start sub_800EC94 sub_800EC94: push {lr} lsls r0, 16 lsrs r0, 16 bl sub_800ECB8 ldrb r0, [r0, 0x9] pop {r1} bx r1 thumb_func_end sub_800EC94 thumb_func_start sub_800ECA4 sub_800ECA4: adds r1, r0, 0 lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _0800ECB4 adds r0, r1 bx lr .align 2, 0 _0800ECB4: .4byte gUnknown_80B9CC4 thumb_func_end sub_800ECA4 thumb_func_start sub_800ECB8 sub_800ECB8: adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _0800ECCC adds r0, r1 bx lr .align 2, 0 _0800ECCC: .4byte gUnknown_80BDBC4 thumb_func_end sub_800ECB8 thumb_func_start sub_800ECD0 sub_800ECD0: adds r1, r0, 0 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _0800ECE0 adds r0, r1 bx lr .align 2, 0 _0800ECE0: .4byte gUnknown_80C183C thumb_func_end sub_800ECD0 thumb_func_start sub_800ECE4 sub_800ECE4: lsls r0, 24 ldr r1, _0800ECF4 lsrs r0, 23 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] bx lr .align 2, 0 _0800ECF4: .4byte gUnknown_80CE73C thumb_func_end sub_800ECE4 thumb_func_start sub_800ECF8 sub_800ECF8: lsls r0, 24 ldr r1, _0800ED08 lsrs r0, 22 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] bx lr .align 2, 0 _0800ED08: .4byte gUnknown_80CE37C thumb_func_end sub_800ECF8 thumb_func_start sub_800ED0C sub_800ED0C: lsls r0, 24 ldr r1, _0800ED1C lsrs r0, 22 adds r0, r1 movs r1, 0x2 ldrsh r0, [r0, r1] bx lr .align 2, 0 _0800ED1C: .4byte gUnknown_80CE37C thumb_func_end sub_800ED0C thumb_func_start sub_800ED20 sub_800ED20: lsls r0, 16 lsrs r0, 16 ldr r2, _0800ED34 lsls r1, r0, 3 adds r1, r0 lsls r1, 2 adds r2, 0xC adds r1, r2 ldr r0, [r1] bx lr .align 2, 0 _0800ED34: .4byte gUnknown_80BDBC4 thumb_func_end sub_800ED20 thumb_func_start sub_800ED38 sub_800ED38: push {r4,r5,lr} adds r5, r0, 0 ldr r4, _0800ED60 ldr r0, [r4] cmp r0, 0 bne _0800ED54 movs r0, 0x4C movs r1, 0xB bl MemoryAlloc str r0, [r4] movs r1, 0x4C bl MemoryClear8 _0800ED54: ldr r0, [r4] str r5, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0800ED60: .4byte gUnknown_203B0D0 thumb_func_end sub_800ED38 thumb_func_start sub_800ED64 sub_800ED64: push {r4,lr} ldr r4, _0800ED7C ldr r0, [r4] cmp r0, 0 beq _0800ED76 bl MemoryFree movs r0, 0 str r0, [r4] _0800ED76: pop {r4} pop {r0} bx r0 .align 2, 0 _0800ED7C: .4byte gUnknown_203B0D0 thumb_func_end sub_800ED64 thumb_func_start sub_800ED80 sub_800ED80: push {r4,lr} ldr r2, _0800EDAC ldr r1, [r2] movs r0, 0 str r0, [r1] adds r4, r2, 0 movs r3, 0 movs r2, 0x4 movs r1, 0x1 _0800ED92: ldr r0, [r4] adds r0, r2 str r3, [r0] str r3, [r0, 0x4] str r3, [r0, 0x8] adds r2, 0x24 subs r1, 0x1 cmp r1, 0 bge _0800ED92 pop {r4} pop {r0} bx r0 .align 2, 0 _0800EDAC: .4byte gUnknown_203B0D0 thumb_func_end sub_800ED80 thumb_func_start sub_800EDB0 sub_800EDB0: push {r4,r5,lr} adds r4, r0, 0 movs r3, 0 ldr r5, _0800EDDC movs r2, 0 _0800EDBA: ldr r1, [r5] adds r0, r1, 0x4 adds r0, r2 ldr r0, [r0] cmp r0, 0 bne _0800EDE0 adds r1, r2 adds r1, 0x4 adds r0, r4, 0 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} movs r0, 0x1 b _0800EDEA .align 2, 0 _0800EDDC: .4byte gUnknown_203B0D0 _0800EDE0: adds r2, 0x24 adds r3, 0x1 cmp r3, 0x1 ble _0800EDBA movs r0, 0 _0800EDEA: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_800EDB0 thumb_func_start sub_800EDF0 sub_800EDF0: push {r4,lr} sub sp, 0x24 adds r4, r1, 0 cmp r0, 0 beq _0800EE00 cmp r0, 0x1 beq _0800EE1A b _0800EE44 _0800EE00: movs r0, 0x3 str r0, [sp] movs r0, 0xE str r0, [sp, 0xC] movs r1, 0x1 negs r1, r1 str r1, [sp, 0x10] movs r0, 0xDC lsls r0, 2 str r0, [sp, 0x18] movs r0, 0x1F str r0, [sp, 0x1C] b _0800EE40 _0800EE1A: movs r0, 0x4 str r0, [sp] movs r0, 0xE str r0, [sp, 0xC] movs r0, 0xF0 lsls r0, 4 str r0, [sp, 0x10] movs r0, 0x1 negs r0, r0 str r0, [sp, 0x18] str r0, [sp, 0x1C] bl sub_8000728 movs r2, 0x2 eors r0, r2 negs r1, r0 orrs r1, r0 asrs r1, 31 ands r1, r2 _0800EE40: str r1, [sp, 0x14] str r4, [sp, 0x4] _0800EE44: ldr r0, [r4, 0x4] str r0, [sp, 0x8] movs r0, 0 str r0, [sp, 0x20] mov r0, sp bl sub_800EDB0 add sp, 0x24 pop {r4} pop {r0} bx r0 thumb_func_end sub_800EDF0 thumb_func_start sub_800EE5C sub_800EE5C: push {r4-r6,lr} adds r4, r0, 0 bl sub_800ECA4 adds r6, r0, 0 cmp r4, 0 beq _0800EEC2 ldr r2, [r6] subs r0, r2, 0x1 cmp r0, 0x1 bls _0800EEC2 ldr r1, [r6, 0x4] adds r0, r2, 0 bl sub_800F1C0 adds r5, r0, 0 cmp r5, 0 beq _0800EEC2 ldr r0, [r6] ldr r1, [r6, 0x4] bl sub_800F0F4 adds r4, r0, 0 movs r0, 0x1 negs r0, r0 cmp r4, r0 bne _0800EE9A adds r0, r5, 0 bl sub_800F204 b _0800EEC2 _0800EE9A: movs r0, 0x2 negs r0, r0 cmp r4, r0 beq _0800EEB6 adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 bl sub_800F13C adds r0, r4, 0 adds r1, r5, 0 bl sub_800EDF0 b _0800EEBC _0800EEB6: adds r0, r5, 0 bl sub_800F204 _0800EEBC: ldr r0, [r6, 0x4] bl sub_800F15C _0800EEC2: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_800EE5C thumb_func_start sub_800EEC8 sub_800EEC8: push {lr} lsls r0, 16 lsrs r0, 16 bl sub_800ECB8 movs r1, 0 ldrsh r0, [r0, r1] bl sub_800EE5C pop {r0} bx r0 thumb_func_end sub_800EEC8 thumb_func_start sub_800EEE0 sub_800EEE0: push {lr} lsls r0, 16 lsrs r0, 16 bl sub_800ECB8 movs r1, 0x4 ldrsh r0, [r0, r1] bl sub_800EE5C pop {r0} bx r0 thumb_func_end sub_800EEE0 thumb_func_start sub_800EEF8 sub_800EEF8: push {lr} lsls r0, 16 lsrs r0, 16 bl sub_800ECB8 movs r1, 0x2 ldrsh r0, [r0, r1] bl sub_800EE5C pop {r0} bx r0 thumb_func_end sub_800EEF8 thumb_func_start sub_800EF10 sub_800EF10: push {lr} lsls r0, 16 lsrs r0, 16 bl sub_800ECB8 movs r1, 0x6 ldrsh r0, [r0, r1] bl sub_800EE5C pop {r0} bx r0 thumb_func_end sub_800EF10 thumb_func_start sub_800EF28 sub_800EF28: push {lr} lsls r0, 24 lsrs r0, 24 bl sub_800ECE4 lsls r0, 16 asrs r0, 16 bl sub_800EE5C pop {r0} bx r0 thumb_func_end sub_800EF28 thumb_func_start sub_800EF40 sub_800EF40: push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 cmp r1, 0 beq _0800EF52 bl sub_800ECF8 b _0800EF56 _0800EF52: bl sub_800ED0C _0800EF56: lsls r0, 16 asrs r0, 16 bl sub_800EE5C pop {r0} bx r0 thumb_func_end sub_800EF40 thumb_func_start sub_800EF64 sub_800EF64: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r0, _0800EF9C mov r9, r0 movs r1, 0x4 mov r8, r1 movs r7, 0 movs r6, 0 movs r5, 0x1 _0800EF7A: mov r0, r9 ldr r1, [r0] adds r0, r1, 0x4 adds r0, r7 ldr r0, [r0] cmp r0, 0 beq _0800F01A mov r0, r8 adds r4, r1, r0 ldr r0, [r4] cmp r0, 0x3 beq _0800EFA0 cmp r0, 0x3 bls _0800F018 cmp r0, 0x4 beq _0800EFDA b _0800F018 .align 2, 0 _0800EF9C: .4byte gUnknown_203B0D0 _0800EFA0: ldr r0, [r4, 0x8] ldr r1, [r4, 0x18] bl sub_8005674 mov r1, r9 ldr r0, [r1] ldr r0, [r0] cmp r0, 0 beq _0800EFCA cmp r0, 0x1 bne _0800F00C ldr r0, [r4, 0x8] ldr r1, [r0, 0x18] ldr r0, [r4, 0xC] adds r0, 0x10 lsls r0, 20 lsrs r0, 16 movs r2, 0x10 bl sub_809971C b _0800F00C _0800EFCA: ldr r0, [r4, 0xC] ldr r1, [r4, 0x8] ldr r1, [r1, 0x18] ldr r2, [r4, 0x1C] ldr r3, [r4, 0x20] bl sub_8005770 b _0800F00C _0800EFDA: bl sub_8000728 cmp r0, 0x1 bne _0800F000 movs r0, 0 movs r1, 0x1 bl sub_800CD64 movs r0, 0 bl sub_8052210 movs r0, 0x5 movs r1, 0 bl sub_803EAF0 bl sub_800CB20 bl xxx_call_update_bg_vram _0800F000: ldr r0, [r4, 0x8] ldr r1, [r4, 0xC] ldr r2, [r4, 0x10] ldr r3, [r4, 0x14] bl sub_8009A1C _0800F00C: ldr r0, [r4, 0x4] cmp r0, 0 beq _0800F018 bl sub_800F204 str r6, [r4, 0x4] _0800F018: str r6, [r4] _0800F01A: movs r0, 0x24 add r8, r0 adds r7, 0x24 subs r5, 0x1 cmp r5, 0 bge _0800EF7A pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_800EF64 thumb_func_start sub_800F034 sub_800F034: push {r4-r6,lr} ldr r4, _0800F074 ldr r0, [r4] cmp r0, 0 bne _0800F04E movs r0, 0x10 movs r1, 0xB bl MemoryAlloc str r0, [r4] movs r1, 0x10 bl MemoryClear8 _0800F04E: movs r3, 0 adds r6, r4, 0 movs r5, 0x1 negs r5, r5 movs r4, 0 _0800F058: ldr r0, [r6] lsls r2, r3, 3 adds r1, r0, r2 str r5, [r1] adds r0, 0x4 adds r0, r2 str r4, [r0] adds r3, 0x1 cmp r3, 0x1 ble _0800F058 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0800F074: .4byte gUnknown_203B0D4 thumb_func_end sub_800F034 thumb_func_start sub_800F078 sub_800F078: push {r4,lr} ldr r4, _0800F090 ldr r0, [r4] cmp r0, 0 beq _0800F08A bl MemoryFree movs r0, 0 str r0, [r4] _0800F08A: pop {r4} pop {r0} bx r0 .align 2, 0 _0800F090: .4byte gUnknown_203B0D4 thumb_func_end sub_800F078 thumb_func_start sub_800F094 sub_800F094: push {r4-r6,lr} movs r3, 0 ldr r6, _0800F0BC movs r5, 0x1 negs r5, r5 movs r4, 0 _0800F0A0: ldr r0, [r6] lsls r2, r3, 3 adds r1, r0, r2 str r5, [r1] adds r0, 0x4 adds r0, r2 str r4, [r0] adds r3, 0x1 cmp r3, 0x1 ble _0800F0A0 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0800F0BC: .4byte gUnknown_203B0D4 thumb_func_end sub_800F094 thumb_func_start sub_800F0C0 sub_800F0C0: push {lr} cmp r0, 0x3 bne _0800F0D8 ldr r0, _0800F0D4 ldr r0, [r0] ldr r0, [r0] cmp r0, r1 bne _0800F0EC movs r0, 0 b _0800F0F0 .align 2, 0 _0800F0D4: .4byte gUnknown_203B0D4 _0800F0D8: ldr r0, _0800F0E8 ldr r0, [r0] ldr r0, [r0, 0x8] cmp r0, r1 bne _0800F0EC movs r0, 0x1 b _0800F0F0 .align 2, 0 _0800F0E8: .4byte gUnknown_203B0D4 _0800F0EC: movs r0, 0x3 negs r0, r0 _0800F0F0: pop {r1} bx r1 thumb_func_end sub_800F0C0 thumb_func_start sub_800F0F4 sub_800F0F4: push {lr} cmp r0, 0x3 bne _0800F114 ldr r0, _0800F110 ldr r2, [r0] ldr r0, [r2] cmp r0, r1 beq _0800F11E ldr r0, [r2, 0x4] cmp r0, 0 bne _0800F132 movs r0, 0 b _0800F136 .align 2, 0 _0800F110: .4byte gUnknown_203B0D4 _0800F114: ldr r0, _0800F124 ldr r2, [r0] ldr r0, [r2, 0x8] cmp r0, r1 bne _0800F128 _0800F11E: movs r0, 0x2 negs r0, r0 b _0800F136 .align 2, 0 _0800F124: .4byte gUnknown_203B0D4 _0800F128: ldr r0, [r2, 0xC] cmp r0, 0 bne _0800F132 movs r0, 0x1 b _0800F136 _0800F132: movs r0, 0x1 negs r0, r0 _0800F136: pop {r1} bx r1 thumb_func_end sub_800F0F4 thumb_func_start sub_800F13C sub_800F13C: push {lr} ldr r1, _0800F158 ldr r3, [r1] lsls r1, r0, 3 adds r0, r3, 0x4 adds r0, r1 ldr r0, [r0] cmp r0, 0 bne _0800F154 adds r1, r3, r1 ldr r0, [r2, 0x4] str r0, [r1] _0800F154: pop {r0} bx r0 .align 2, 0 _0800F158: .4byte gUnknown_203B0D4 thumb_func_end sub_800F13C thumb_func_start sub_800F15C sub_800F15C: push {r4,r5,lr} adds r4, r0, 0 movs r3, 0 ldr r5, _0800F17C _0800F164: ldr r1, [r5] lsls r2, r3, 3 adds r0, r1, r2 ldr r0, [r0] cmp r0, r4 bne _0800F180 adds r1, 0x4 adds r1, r2 ldr r0, [r1] adds r0, 0x1 str r0, [r1] b _0800F186 .align 2, 0 _0800F17C: .4byte gUnknown_203B0D4 _0800F180: adds r3, 0x1 cmp r3, 0x1 ble _0800F164 _0800F186: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_800F15C thumb_func_start sub_800F18C sub_800F18C: ldr r1, _0800F198 lsls r0, 3 ldr r1, [r1] adds r1, r0 adds r0, r1, 0 bx lr .align 2, 0 _0800F198: .4byte gUnknown_203B0D4 thumb_func_end sub_800F18C thumb_func_start sub_800F19C sub_800F19C: push {lr} ldr r1, _0800F1B4 ldr r1, [r1] lsls r0, 3 adds r1, 0x4 adds r1, r0 ldr r0, [r1] cmp r0, 0 beq _0800F1B8 movs r0, 0x1 b _0800F1BA .align 2, 0 _0800F1B4: .4byte gUnknown_203B0D4 _0800F1B8: movs r0, 0 _0800F1BA: pop {r1} bx r1 thumb_func_end sub_800F19C thumb_func_start sub_800F1C0 sub_800F1C0: push {lr} sub sp, 0x8 adds r2, r1, 0 cmp r0, 0x1 bcc _0800F1EC cmp r0, 0x3 bls _0800F1D4 cmp r0, 0x4 beq _0800F1E4 b _0800F1EC _0800F1D4: ldr r1, _0800F1E0 mov r0, sp bl sprintf b _0800F1EC .align 2, 0 _0800F1E0: .4byte gUnknown_80CE77C _0800F1E4: ldr r1, _0800F1FC mov r0, sp bl sprintf _0800F1EC: ldr r1, _0800F200 mov r0, sp bl Call_OpenFileAndGetFileDataPtr add sp, 0x8 pop {r1} bx r1 .align 2, 0 _0800F1FC: .4byte gUnknown_80CE788 _0800F200: .4byte gUnknown_9740000 thumb_func_end sub_800F1C0 thumb_func_start sub_800F204 sub_800F204: push {lr} bl CloseFile pop {r0} bx r0 thumb_func_end sub_800F204 thumb_func_start sub_800F210 sub_800F210: push {r4,lr} adds r4, r0, 0 movs r3, 0 ldr r0, _0800F230 ldr r0, [r0] adds r1, r0, 0x4 adds r2, r0, 0 adds r2, 0x8 _0800F220: ldrb r0, [r1] cmp r0, 0 beq _0800F234 ldr r0, [r2] cmp r0, r4 bne _0800F234 adds r0, r1, 0 b _0800F240 .align 2, 0 _0800F230: .4byte gUnknown_203B0D8 _0800F234: adds r1, 0x40 adds r2, 0x40 adds r3, 0x1 cmp r3, 0x15 ble _0800F220 movs r0, 0 _0800F240: pop {r4} pop {r1} bx r1 thumb_func_end sub_800F210 thumb_func_start sub_800F248 sub_800F248: push {lr} movs r2, 0 ldr r0, _0800F25C ldr r0, [r0] adds r1, r0, 0x4 _0800F252: ldrb r0, [r1] cmp r0, 0 bne _0800F260 adds r0, r1, 0 b _0800F26A .align 2, 0 _0800F25C: .4byte gUnknown_203B0D8 _0800F260: adds r1, 0x40 adds r2, 0x1 cmp r2, 0x15 ble _0800F252 movs r0, 0 _0800F26A: pop {r1} bx r1 thumb_func_end sub_800F248 thumb_func_start sub_800F270 sub_800F270: push {r4-r6,lr} adds r2, r0, 0 lsls r0, r1, 3 adds r0, 0x28 adds r3, r2, r0 movs r5, 0x80 lsls r5, 21 cmp r1, 0 bne _0800F284 movs r5, 0x1 _0800F284: movs r6, 0x80 lsls r6, 21 cmp r1, 0 bne _0800F290 movs r6, 0x80 lsls r6, 20 _0800F290: movs r4, 0x1 cmp r1, 0 bne _0800F298 movs r4, 0x1C _0800F298: ldr r0, [r2, 0xC] cmp r0, 0 bne _0800F2A4 b _0800F2CC _0800F2A0: adds r0, r1, 0 b _0800F2CE _0800F2A4: ldr r2, [r3] adds r1, r5, 0 cmp r2, 0 beq _0800F2AE adds r1, r2, 0 _0800F2AE: movs r2, 0 cmp r2, r4 bge _0800F2CC adds r3, r0, 0 _0800F2B6: lsls r1, 1 cmp r1, r6 bls _0800F2BE adds r1, r5, 0 _0800F2BE: adds r0, r3, 0 ands r0, r1 cmp r0, 0 bne _0800F2A0 adds r2, 0x1 cmp r2, r4 blt _0800F2B6 _0800F2CC: movs r0, 0 _0800F2CE: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_800F270 thumb_func_start sub_800F2D4 sub_800F2D4: push {lr} movs r1, 0 cmp r0, 0 beq _0800F2E4 _0800F2DC: lsrs r0, 1 adds r1, 0x1 cmp r0, 0 bne _0800F2DC _0800F2E4: adds r0, r1, 0 pop {r1} bx r1 thumb_func_end sub_800F2D4 thumb_func_start sub_800F2EC sub_800F2EC: push {r4-r7,lr} sub sp, 0xC adds r5, r0, 0 adds r6, r1, 0 adds r7, r2, 0 lsls r0, r6, 3 adds r0, 0x28 adds r4, r5, r0 ldr r0, [r5, 0xC] cmp r0, 0 bne _0800F306 str r0, [r4] b _0800F35C _0800F306: ldr r0, [r4] cmp r0, 0 bne _0800F30E str r0, [r4, 0x4] _0800F30E: ldr r0, [r4, 0x4] cmp r0, 0 bgt _0800F32A adds r0, r5, 0 adds r1, r6, 0 bl sub_800F270 adds r1, r0, 0 ldr r0, [r4] cmp r0, r1 beq _0800F326 str r1, [r4] _0800F326: movs r0, 0x3C b _0800F32C _0800F32A: subs r0, 0x1 _0800F32C: str r0, [r4, 0x4] ldrb r0, [r5, 0x10] cmp r0, 0 beq _0800F35C ldr r0, [r4] cmp r0, 0 beq _0800F35C bl sub_800F2D4 adds r1, r0, 0 movs r2, 0x8 ldrsh r0, [r5, r2] adds r2, r5, 0 adds r2, 0x14 lsls r3, r6, 2 adds r3, 0x18 adds r3, r5, r3 str r7, [sp] ldrb r4, [r5, 0x11] str r4, [sp, 0x4] ldr r4, [r5, 0x4] str r4, [sp, 0x8] bl sub_800F364 _0800F35C: add sp, 0xC pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_800F2EC thumb_func_start sub_800F364 sub_800F364: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 mov r12, r2 ldr r0, [sp, 0x20] mov r8, r0 ldr r4, [sp, 0x24] ldr r0, _0800F410 lsls r1, 3 adds r2, r1, r0 ldr r0, [r2] ldr r1, [r2, 0x4] str r0, [sp] str r1, [sp, 0x4] lsls r2, r0, 1 ldr r1, [sp] adds r2, r1 lsls r2, 3 ldr r0, _0800F414 adds r2, r0 ldr r0, [r2, 0x8] ldr r6, _0800F418 adds r7, r0, r6 movs r0, 0x3 ands r4, r0 lsls r4, 10 ldr r5, _0800F41C ldrh r1, [r5, 0x4] ldr r0, _0800F420 ands r0, r1 orrs r0, r4 strh r0, [r5, 0x4] mov r0, r12 movs r4, 0 ldrsh r1, [r0, r4] ldr r0, [r2] lsls r0, 2 subs r1, r0 mov r6, r8 movs r4, 0 ldrsh r0, [r6, r4] subs r1, r0 movs r6, 0 ldrsh r0, [r3, r6] adds r4, r1, r0 mov r0, r12 movs r6, 0x2 ldrsh r1, [r0, r6] ldr r0, [r2, 0x4] lsls r0, 2 subs r1, r0 mov r2, r8 movs r6, 0x2 ldrsh r0, [r2, r6] subs r1, r0 movs r2, 0x2 ldrsh r0, [r3, r2] adds r3, r1, r0 adds r6, r3, 0 subs r6, 0x10 movs r0, 0x20 negs r0, r0 cmp r4, r0 bge _0800F3E8 b _0800F5E4 _0800F3E8: cmp r3, r0 bge _0800F3EE b _0800F5E4 _0800F3EE: cmp r4, 0xEF ble _0800F3F4 b _0800F5E4 _0800F3F4: cmp r3, 0x9F ble _0800F3FA b _0800F5E4 _0800F3FA: ldr r0, [sp] subs r0, 0x1 cmp r0, 0xF bls _0800F404 b _0800F5A6 _0800F404: lsls r0, 2 ldr r1, _0800F424 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0800F410: .4byte gUnknown_80D3474 _0800F414: .4byte gUnknown_80CE79C _0800F418: .4byte 0x0000032b _0800F41C: .4byte gUnknown_203B0DC _0800F420: .4byte 0x0000f3ff _0800F424: .4byte _0800F428 .align 2, 0 _0800F428: .4byte _0800F468 .4byte _0800F4CC .4byte _0800F4CC .4byte _0800F574 .4byte _0800F538 .4byte _0800F4CC .4byte _0800F4CC .4byte _0800F498 .4byte _0800F4CC .4byte _0800F4CC .4byte _0800F4CC .4byte _0800F468 .4byte _0800F4CC .4byte _0800F468 .4byte _0800F4CC .4byte _0800F500 _0800F468: ldrh r2, [r5] ldr r1, _0800F48C adds r0, r1, 0 ands r0, r2 strh r0, [r5] ldrh r0, [r5, 0x2] ands r1, r0 ldr r0, _0800F490 ands r4, r0 movs r0, 0xFE lsls r0, 8 ands r1, r0 orrs r1, r4 strh r1, [r5, 0x2] ldr r1, _0800F494 ands r1, r6 b _0800F59A .align 2, 0 _0800F48C: .4byte 0x00003fff _0800F490: .4byte 0x000001ff _0800F494: .4byte 0x00000fff _0800F498: movs r3, 0x80 lsls r3, 8 ldrh r2, [r5] ldr r1, _0800F4C0 adds r0, r1, 0 ands r0, r2 orrs r0, r3 strh r0, [r5] ldrh r0, [r5, 0x2] ands r1, r0 ldr r0, _0800F4C4 ands r4, r0 movs r0, 0xFE lsls r0, 8 ands r1, r0 orrs r1, r4 strh r1, [r5, 0x2] ldr r1, _0800F4C8 ands r1, r6 b _0800F59A .align 2, 0 _0800F4C0: .4byte 0x00003fff _0800F4C4: .4byte 0x000001ff _0800F4C8: .4byte 0x00000fff _0800F4CC: ldrh r2, [r5] ldr r1, _0800F4F4 adds r0, r1, 0 ands r0, r2 strh r0, [r5] movs r2, 0x80 lsls r2, 7 ldrh r0, [r5, 0x2] ands r1, r0 orrs r1, r2 ldr r0, _0800F4F8 ands r4, r0 movs r0, 0xFE lsls r0, 8 ands r1, r0 orrs r1, r4 strh r1, [r5, 0x2] ldr r1, _0800F4FC ands r1, r6 b _0800F59A .align 2, 0 _0800F4F4: .4byte 0x00003fff _0800F4F8: .4byte 0x000001ff _0800F4FC: .4byte 0x00000fff _0800F500: ldrh r2, [r5] ldr r1, _0800F52C adds r0, r1, 0 ands r0, r2 strh r0, [r5] movs r2, 0x80 lsls r2, 7 ldrh r0, [r5, 0x2] ands r1, r0 orrs r1, r2 adds r2, r4, 0 adds r2, 0x8 ldr r0, _0800F530 ands r2, r0 movs r0, 0xFE lsls r0, 8 ands r1, r0 orrs r1, r2 strh r1, [r5, 0x2] ldr r1, _0800F534 ands r1, r6 b _0800F59A .align 2, 0 _0800F52C: .4byte 0x00003fff _0800F530: .4byte 0x000001ff _0800F534: .4byte 0x00000fff _0800F538: movs r3, 0x80 lsls r3, 7 ldrh r2, [r5] ldr r1, _0800F568 adds r0, r1, 0 ands r0, r2 orrs r0, r3 strh r0, [r5] movs r2, 0x80 lsls r2, 8 ldrh r0, [r5, 0x2] ands r1, r0 orrs r1, r2 ldr r0, _0800F56C ands r4, r0 movs r0, 0xFE lsls r0, 8 ands r1, r0 orrs r1, r4 strh r1, [r5, 0x2] ldr r1, _0800F570 ands r1, r6 b _0800F59A .align 2, 0 _0800F568: .4byte 0x00003fff _0800F56C: .4byte 0x000001ff _0800F570: .4byte 0x00000fff _0800F574: ldrh r2, [r5] ldr r1, _0800F5F0 adds r0, r1, 0 ands r0, r2 strh r0, [r5] movs r2, 0x80 lsls r2, 8 ldrh r0, [r5, 0x2] ands r1, r0 orrs r1, r2 ldr r0, _0800F5F4 ands r4, r0 movs r0, 0xFE lsls r0, 8 ands r1, r0 orrs r1, r4 strh r1, [r5, 0x2] ldr r1, _0800F5F8 ands r1, r3 _0800F59A: lsls r1, 4 ldrh r2, [r5, 0x6] movs r0, 0xF ands r0, r2 orrs r0, r1 strh r0, [r5, 0x6] _0800F5A6: ldr r0, _0800F5FC ands r7, r0 ldrh r1, [r5, 0x4] movs r0, 0xFC lsls r0, 8 ands r0, r1 orrs r0, r7 movs r1, 0xF ldr r3, [sp, 0x4] ands r1, r3 lsls r1, 12 ldr r2, _0800F5F8 ands r0, r2 orrs r0, r1 strh r0, [r5, 0x4] mov r4, r12 movs r6, 0x2 ldrsh r1, [r4, r6] mov r2, r8 movs r3, 0x2 ldrsh r0, [r2, r3] subs r1, r0 lsrs r0, r1, 31 adds r1, r0 asrs r1, 1 adds r1, 0x1 adds r0, r5, 0 movs r2, 0 movs r3, 0 bl AddSprite _0800F5E4: add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0800F5F0: .4byte 0x00003fff _0800F5F4: .4byte 0x000001ff _0800F5F8: .4byte 0x00000fff _0800F5FC: .4byte 0x000003ff thumb_func_end sub_800F364 thumb_func_start sub_800F600 sub_800F600: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r1, 24 lsrs r1, 24 mov r9, r1 lsls r1, r0, 1 adds r1, r0 lsls r1, 3 ldr r0, _0800F660 adds r1, r0 ldr r7, [r1, 0x14] ldr r3, [r1, 0x10] ldr r2, [r1] ldr r0, [r1, 0x4] muls r0, r2 lsls r4, r0, 5 mov r8, r4 ldr r0, [r1, 0x8] ldr r1, _0800F664 adds r0, r1 lsls r5, r0, 5 adds r6, r5, 0 ldr r0, _0800F668 ldr r0, [r0] ldr r0, [r0] cmp r0, 0 bge _0800F63C adds r0, 0x3 _0800F63C: asrs r0, 2 adds r1, r3, 0 bl __modsi3 muls r0, r4 ldr r1, _0800F66C adds r0, r1 adds r1, r7, r0 mov r2, r9 cmp r2, 0 beq _0800F674 ldr r2, _0800F670 adds r0, r5, r2 adds r2, r4, 0 bl sub_80098BC b _0800F67E .align 2, 0 _0800F660: .4byte gUnknown_80CE79C _0800F664: .4byte 0x0000032b _0800F668: .4byte gUnknown_203B0D8 _0800F66C: .4byte gUnknown_80CE934 _0800F670: .4byte 0x06010000 _0800F674: ldr r2, _0800F68C adds r0, r6, r2 mov r2, r8 bl CpuCopy _0800F67E: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0800F68C: .4byte 0x06010000 thumb_func_end sub_800F600 thumb_func_start sub_800F690 sub_800F690: push {r4,r5,lr} ldr r5, _0800F738 ldr r0, [r5] cmp r0, 0 bne _0800F6AC ldr r4, _0800F73C adds r0, r4, 0 movs r1, 0xC bl MemoryAlloc str r0, [r5] adds r1, r4, 0 bl MemoryClear8 _0800F6AC: ldr r1, [r5] movs r0, 0 str r0, [r1] movs r0, 0x1 movs r1, 0 bl sub_800F600 movs r0, 0x2 movs r1, 0 bl sub_800F600 movs r0, 0x3 movs r1, 0 bl sub_800F600 movs r0, 0x4 movs r1, 0 bl sub_800F600 movs r0, 0x5 movs r1, 0 bl sub_800F600 movs r0, 0x6 movs r1, 0 bl sub_800F600 movs r0, 0x7 movs r1, 0 bl sub_800F600 movs r0, 0x8 movs r1, 0 bl sub_800F600 movs r0, 0x9 movs r1, 0 bl sub_800F600 movs r0, 0xA movs r1, 0 bl sub_800F600 movs r0, 0xB movs r1, 0 bl sub_800F600 movs r0, 0xC movs r1, 0 bl sub_800F600 movs r0, 0xD movs r1, 0 bl sub_800F600 movs r0, 0xE movs r1, 0 bl sub_800F600 movs r0, 0xF movs r1, 0 bl sub_800F600 movs r0, 0x10 movs r1, 0 bl sub_800F600 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0800F738: .4byte gUnknown_203B0D8 _0800F73C: .4byte 0x00000584 thumb_func_end sub_800F690 thumb_func_start sub_800F740 sub_800F740: push {r4,lr} ldr r4, _0800F758 ldr r0, [r4] cmp r0, 0 beq _0800F752 bl MemoryFree movs r0, 0 str r0, [r4] _0800F752: pop {r4} pop {r0} bx r0 .align 2, 0 _0800F758: .4byte gUnknown_203B0D8 thumb_func_end sub_800F740 thumb_func_start sub_800F75C sub_800F75C: push {r4-r7,lr} adds r4, r0, 0 adds r7, r2, 0 lsls r1, 16 asrs r5, r1, 16 lsls r3, 24 lsrs r6, r3, 24 ldr r0, _0800F790 ldr r0, [r0] cmp r0, 0 beq _0800F788 adds r0, r4, 0 bl sub_800F210 cmp r0, 0 beq _0800F788 movs r1, 0 strh r5, [r0, 0x8] str r7, [r0, 0xC] strb r6, [r0, 0x10] adds r0, 0x38 strb r1, [r0] _0800F788: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0800F790: .4byte gUnknown_203B0D8 thumb_func_end sub_800F75C thumb_func_start sub_800F794 sub_800F794: push {r4-r6,lr} adds r1, r0, 0 adds r4, r2, 0 adds r5, r3, 0 ldr r6, [sp, 0x10] ldr r0, _0800F7CC ldr r0, [r0] cmp r0, 0 beq _0800F7C6 adds r0, r1, 0 bl sub_800F210 adds r2, r0, 0 cmp r2, 0 beq _0800F7C6 adds r1, r2, 0 adds r1, 0x38 movs r0, 0x1 strb r0, [r1] strh r4, [r2, 0x3C] strh r5, [r2, 0x3E] ldr r0, [r6] str r0, [r2, 0x20] ldr r0, [r6, 0xC] str r0, [r2, 0x24] _0800F7C6: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0800F7CC: .4byte gUnknown_203B0D8 thumb_func_end sub_800F794 thumb_func_start sub_800F7D0 sub_800F7D0: push {r4-r7,lr} mov r7, r8 push {r7} mov r8, r0 ldr r0, _0800F800 ldr r0, [r0] cmp r0, 0 beq _0800F8C0 ldr r1, [r0] adds r0, r1, 0 cmp r1, 0 bge _0800F7EA adds r0, r1, 0x3 _0800F7EA: asrs r0, 2 lsls r0, 2 subs r0, r1, r0 cmp r0, 0x1 beq _0800F82A cmp r0, 0x1 bgt _0800F804 cmp r0, 0 beq _0800F80E b _0800F888 .align 2, 0 _0800F800: .4byte gUnknown_203B0D8 _0800F804: cmp r0, 0x2 beq _0800F846 cmp r0, 0x3 beq _0800F868 b _0800F888 _0800F80E: movs r0, 0x1 movs r1, 0x1 bl sub_800F600 movs r0, 0x2 movs r1, 0x1 bl sub_800F600 movs r0, 0x3 movs r1, 0x1 bl sub_800F600 movs r0, 0x4 b _0800F860 _0800F82A: movs r0, 0x5 movs r1, 0x1 bl sub_800F600 movs r0, 0x6 movs r1, 0x1 bl sub_800F600 movs r0, 0x7 movs r1, 0x1 bl sub_800F600 movs r0, 0x8 b _0800F860 _0800F846: movs r0, 0x9 movs r1, 0x1 bl sub_800F600 movs r0, 0xA movs r1, 0x1 bl sub_800F600 movs r0, 0xB movs r1, 0x1 bl sub_800F600 movs r0, 0xC _0800F860: movs r1, 0x1 bl sub_800F600 b _0800F888 _0800F868: movs r0, 0xD movs r1, 0x1 bl sub_800F600 movs r0, 0xE movs r1, 0x1 bl sub_800F600 movs r0, 0xF movs r1, 0x1 bl sub_800F600 movs r0, 0x10 movs r1, 0x1 bl sub_800F600 _0800F888: movs r5, 0 movs r6, 0x4 _0800F88C: ldr r7, _0800F8CC ldr r4, [r7] lsls r0, r5, 6 adds r0, r4, r0 ldrb r0, [r0, 0x4] cmp r0, 0 beq _0800F8B0 adds r4, r6 adds r0, r4, 0 movs r1, 0 mov r2, r8 bl sub_800F2EC adds r0, r4, 0 movs r1, 0x1 mov r2, r8 bl sub_800F2EC _0800F8B0: adds r6, 0x40 adds r5, 0x1 cmp r5, 0x15 ble _0800F88C ldr r1, [r7] ldr r0, [r1] adds r0, 0x1 str r0, [r1] _0800F8C0: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0800F8CC: .4byte gUnknown_203B0D8 thumb_func_end sub_800F7D0 thumb_func_start sub_800F8D0 sub_800F8D0: push {r4-r7,lr} mov r7, r8 push {r7} adds r5, r0, 0 adds r7, r2, 0 mov r8, r3 lsls r1, 16 asrs r6, r1, 16 ldr r0, _0800F92C ldr r0, [r0] cmp r0, 0 beq _0800F920 adds r0, r5, 0 bl sub_800F210 adds r4, r0, 0 cmp r4, 0 bne _0800F920 bl sub_800F248 adds r1, r0, 0 cmp r1, 0 beq _0800F920 movs r0, 0x1 strb r0, [r1] str r5, [r1, 0x4] strh r6, [r1, 0x8] str r4, [r1, 0xC] ldr r0, [r7] str r0, [r1, 0x14] mov r0, r8 strb r0, [r1, 0x11] ldr r0, _0800F930 ldr r0, [r0] str r0, [r1, 0x1C] str r0, [r1, 0x18] str r4, [r1, 0x28] str r4, [r1, 0x2C] str r4, [r1, 0x30] str r4, [r1, 0x34] _0800F920: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0800F92C: .4byte gUnknown_203B0D8 _0800F930: .4byte gUnknown_80D3564 thumb_func_end sub_800F8D0 thumb_func_start sub_800F934 sub_800F934: push {lr} adds r1, r0, 0 ldr r0, _0800F954 ldr r0, [r0] cmp r0, 0 beq _0800F950 adds r0, r1, 0 bl sub_800F210 cmp r0, 0 beq _0800F950 movs r1, 0x40 bl MemoryClear8 _0800F950: pop {r0} bx r0 .align 2, 0 _0800F954: .4byte gUnknown_203B0D8 thumb_func_end sub_800F934 thumb_func_start sub_800F958 sub_800F958: push {r4-r7,lr} adds r4, r0, 0 adds r6, r1, 0 adds r5, r2, 0 adds r7, r3, 0 ldr r0, _0800F98C ldr r0, [r0] cmp r0, 0 beq _0800F984 adds r0, r4, 0 bl sub_800F210 adds r3, r0, 0 cmp r3, 0 beq _0800F984 ldr r0, [r6] str r0, [r3, 0x14] strb r7, [r3, 0x11] ldr r0, [r5] str r0, [r3, 0x18] ldr r0, [r5, 0xC] str r0, [r3, 0x1C] _0800F984: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0800F98C: .4byte gUnknown_203B0D8 thumb_func_end sub_800F958 thumb_func_start sub_800F990 sub_800F990: push {r4-r7,lr} sub sp, 0x8 adds r6, r0, 0 ldr r4, _0800FA20 ldr r0, [r6, 0x8] str r0, [r4] ldr r1, _0800FA24 ldr r2, _0800FA28 adds r0, r2, 0 strh r0, [r1] movs r0, 0 movs r1, 0x14 bl sub_80095CC movs r0, 0x2 bl xxx_update_some_bg_tiles ldr r1, [r4] ldr r0, _0800FA2C adds r2, r1, r0 ldr r0, _0800FA30 str r0, [r2] ldrb r0, [r6, 0x5] ldr r2, _0800FA34 adds r1, r2 movs r5, 0 strb r0, [r1] bl sub_8010DA4 ldr r0, [r4] ldr r2, _0800FA38 adds r1, r0, r2 movs r2, 0x1 negs r2, r2 str r2, [r1] ldr r1, _0800FA3C adds r0, r1 str r2, [r0] ldrb r0, [r6, 0x4] bl sub_800FC5C ldr r0, [r4] ldr r2, _0800FA40 adds r1, r0, r2 adds r2, 0x4 adds r0, r2 ldr r0, [r0] str r0, [r1] ldr r1, _0800FA44 movs r0, 0xFF strb r0, [r1] ldr r0, _0800FA48 strb r5, [r0] bl sub_8011760 add r7, sp, 0x4 _0800FA00: movs r5, 0 str r5, [sp] str r5, [sp, 0x4] mov r0, sp adds r1, r7, 0 bl sub_800FAA8 cmp r0, 0x1 bne _0800FA4C ldr r0, [sp] ldr r1, [sp, 0x4] movs r2, 0x32 bl sub_80100C0 b _0800FA00 .align 2, 0 _0800FA20: .4byte gUnknown_203B0E4 _0800FA24: .4byte gUnknown_2026E4E _0800FA28: .4byte 0x00001010 _0800FA2C: .4byte 0x00004014 _0800FA30: .4byte gUnknown_80D3570 _0800FA34: .4byte 0x00004a2c _0800FA38: .4byte 0x00004a28 _0800FA3C: .4byte 0x00004a1c _0800FA40: .4byte 0x00004a20 _0800FA44: .4byte gUnknown_202DE18 _0800FA48: .4byte gUnknown_202DE19 _0800FA4C: cmp r0, 0x2 bne _0800FA6C bl sub_800FB6C lsls r0, 24 cmp r0, 0 beq _0800FA00 ldr r0, [r4] ldr r1, _0800FA68 adds r0, r1 ldrb r0, [r0] strb r0, [r6, 0xC] b _0800FA92 .align 2, 0 _0800FA68: .4byte 0x00004df4 _0800FA6C: cmp r0, 0x3 bne _0800FA00 ldr r0, [r4] ldr r2, _0800FA8C adds r1, r0, r2 adds r2, 0x8 adds r0, r2 ldr r1, [r1] ldr r0, [r0] cmp r1, r0 beq _0800FA90 movs r1, 0 movs r2, 0xA bl sub_80100C0 b _0800FA00 .align 2, 0 _0800FA8C: .4byte 0x00004a18 _0800FA90: strb r5, [r6, 0xC] _0800FA92: bl sub_800FC28 bl sub_8010EF0 bl nullsub_16 add sp, 0x8 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_800F990 thumb_func_start sub_800FAA8 sub_800FAA8: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} mov r8, r0 mov r9, r1 movs r5, 0 bl sub_8011300 bl sub_8011398 _0800FABE: bl sub_801169C bl sub_8010014 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0xFF beq _0800FB1C ldr r6, _0800FB50 ldr r2, [r6] ldr r1, _0800FB54 adds r0, r2, r1 ldr r4, [r0] lsls r0, r4, 2 adds r0, r4 lsls r0, 4 adds r0, r2 lsls r1, r3, 1 ldr r7, _0800FB58 adds r0, r7 adds r1, r0, r1 movs r7, 0 ldrsh r0, [r1, r7] cmp r0, 0 blt _0800FB1C adds r1, r0, 0 lsls r0, r1, 2 adds r0, r1 lsls r0, 4 ldr r7, _0800FB5C adds r0, r7 adds r0, r2, r0 ldrb r0, [r0] cmp r0, 0 beq _0800FB1C movs r5, 0x1 mov r0, r8 str r1, [r0] mov r1, r9 str r3, [r1] ldr r1, [r6] ldr r2, _0800FB60 adds r0, r1, r2 str r3, [r0] ldr r7, _0800FB64 adds r1, r7 str r4, [r1] _0800FB1C: ldr r4, _0800FB68 ldrh r1, [r4, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0800FB2E bl sub_80117D0 movs r5, 0x2 _0800FB2E: ldrh r1, [r4, 0x2] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0800FB3E bl sub_80117E4 movs r5, 0x3 _0800FB3E: cmp r5, 0 beq _0800FABE adds r0, r5, 0 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0800FB50: .4byte gUnknown_203B0E4 _0800FB54: .4byte 0x00004a18 _0800FB58: .4byte 0x0000401a _0800FB5C: .4byte 0x00004018 _0800FB60: .4byte 0x00004a28 _0800FB64: .4byte 0x00004a1c _0800FB68: .4byte gUnknown_20255F0 thumb_func_end sub_800FAA8 thumb_func_start sub_800FB6C sub_800FB6C: push {r4-r7,lr} mov r7, r8 push {r7} movs r0, 0 mov r8, r0 bl sub_8011494 ldr r7, _0800FBE8 ldr r6, _0800FBEC _0800FB7E: ldr r5, [r7] ldr r1, _0800FBF0 adds r4, r5, r1 adds r0, r4, 0 bl AddMenuCursorSprite bl sub_801169C ldrh r1, [r6, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0800FBA2 adds r0, r4, 0 bl MoveMenuCursorDown bl sub_80117F8 _0800FBA2: ldrh r1, [r6, 0x4] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0800FBB6 adds r0, r4, 0 bl MoveMenuCursorUp bl sub_80117F8 _0800FBB6: ldrh r1, [r6, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0800FBCA ldr r2, _0800FBF4 adds r0, r5, r2 ldrb r0, [r0] cmp r0, 0 beq _0800FC00 _0800FBCA: bl sub_80117D0 ldr r1, [r7] movs r3, 0x18 ldrsh r2, [r4, r3] ldr r3, _0800FBF8 adds r0, r1, r3 adds r0, r2 ldrb r0, [r0] ldr r2, _0800FBFC adds r1, r2 strb r0, [r1] movs r3, 0x1 mov r8, r3 b _0800FC16 .align 2, 0 _0800FBE8: .4byte gUnknown_203B0E4 _0800FBEC: .4byte gUnknown_20255F0 _0800FBF0: .4byte 0x00004dfc _0800FBF4: .4byte 0x00004e25 _0800FBF8: .4byte 0x00004dec _0800FBFC: .4byte 0x00004df4 _0800FC00: movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _0800FC12 ldr r1, _0800FC24 adds r0, r5, r1 ldrb r0, [r0] cmp r0, 0 beq _0800FB7E _0800FC12: bl sub_80117E4 _0800FC16: mov r0, r8 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0800FC24: .4byte 0x00004e26 thumb_func_end sub_800FB6C thumb_func_start sub_800FC28 sub_800FC28: push {r4,r5,lr} bl sub_8011168 bl sub_80117AC ldr r5, _0800FC54 movs r4, 0x3B _0800FC36: ldr r1, [r5] ldr r0, _0800FC58 adds r1, r0 ldr r0, [r1] subs r0, 0x2 str r0, [r1] bl sub_801169C subs r4, 0x1 cmp r4, 0 bge _0800FC36 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0800FC54: .4byte gUnknown_203B0E4 _0800FC58: .4byte 0x00004dcc thumb_func_end sub_800FC28 thumb_func_start sub_800FC5C sub_800FC5C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x40 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x14] movs r0, 0 str r0, [sp, 0x18] mov r8, r0 ldr r1, _0800FD1C mov r9, r1 ldr r2, _0800FD20 str r2, [sp, 0x38] _0800FC7C: movs r7, 0 movs r3, 0 mov r10, r3 mov r4, r9 ldr r0, [r4] ldr r1, [sp, 0x38] adds r6, r0, r1 ldr r2, _0800FD24 adds r0, r2 mov r3, r8 lsls r1, r3, 5 ldr r0, [r0] adds r2, r0, r1 adds r1, r6, 0x2 movs r5, 0x7 _0800FC9A: ldrh r0, [r1] ldr r4, _0800FD28 orrs r0, r4 strh r0, [r1] adds r1, 0x2 subs r5, 0x1 cmp r5, 0 bge _0800FC9A movs r5, 0 adds r1, r2, 0 adds r1, 0x8 _0800FCB0: adds r4, r1, r5 ldrb r0, [r4] str r1, [sp, 0x3C] bl sub_800FFE8 lsls r0, 24 ldr r1, [sp, 0x3C] cmp r0, 0 beq _0800FCE4 ldrb r0, [r4] ldr r7, [sp, 0x14] cmp r0, r7 bne _0800FCCE mov r2, r8 str r2, [sp, 0x18] _0800FCCE: cmp r0, 0 bne _0800FCE2 mov r3, r9 ldr r0, [r3] ldr r4, _0800FD2C adds r0, r4 mov r7, r8 str r7, [r0] movs r0, 0x1 mov r10, r0 _0800FCE2: movs r7, 0x1 _0800FCE4: adds r5, 0x1 cmp r5, 0x7 ble _0800FCB0 cmp r7, 0 beq _0800FD30 movs r5, 0 movs r4, 0x1 strb r4, [r6] adds r3, r6, 0 adds r3, 0x14 mov r1, r9 ldr r0, [r1] ldr r1, [r0, 0x8] movs r2, 0x1 mov r7, r10 cmp r7, 0 beq _0800FD08 movs r2, 0xC _0800FD08: movs r0, 0x40 str r0, [sp] str r5, [sp, 0x4] str r4, [sp, 0x8] adds r0, r3, 0 movs r3, 0 bl sub_80053AC b _0800FD32 .align 2, 0 _0800FD1C: .4byte gUnknown_203B0E4 _0800FD20: .4byte 0x00004018 _0800FD24: .4byte 0x00004014 _0800FD28: .4byte 0x0000ffff _0800FD2C: .4byte 0x00004a24 _0800FD30: strb r7, [r6] _0800FD32: ldr r0, [sp, 0x38] adds r0, 0x50 str r0, [sp, 0x38] movs r1, 0x1 add r8, r1 mov r2, r8 cmp r2, 0x1F ble _0800FC7C movs r3, 0 mov r8, r3 ldr r4, [sp, 0x18] lsls r4, 5 str r4, [sp, 0x34] _0800FD4C: mov r7, r8 lsls r0, r7, 2 add r0, r8 lsls r0, 4 ldr r1, _0800FEDC adds r0, r1 ldr r2, _0800FEE0 ldr r1, [r2] adds r3, r1, r0 ldr r4, _0800FEE4 adds r1, r4 lsls r2, r7, 5 ldr r0, [r1] adds r0, r2 str r0, [sp, 0x1C] ldrb r0, [r3] adds r7, 0x1 str r7, [sp, 0x28] cmp r0, 0 bne _0800FD76 b _0800FF56 _0800FD76: movs r5, 0 adds r3, 0x2 mov r10, r3 ldr r4, [sp, 0x1C] adds r4, 0x10 ldr r6, _0800FEE0 _0800FD82: lsls r0, r5, 1 mov r1, r10 adds r2, r1, r0 ldr r1, _0800FEE8 strh r1, [r2] adds r1, r4, r0 ldrh r3, [r1] movs r7, 0 ldrsh r0, [r1, r7] cmp r0, 0 blt _0800FDB0 adds r1, r0, 0 lsls r0, r1, 2 adds r0, r1 lsls r0, 4 ldr r1, _0800FEDC adds r0, r1 ldr r1, [r6] adds r1, r0 ldrb r0, [r1] cmp r0, 0 beq _0800FDB0 strh r3, [r2] _0800FDB0: adds r5, 0x1 cmp r5, 0x7 ble _0800FD82 ldr r3, _0800FEE0 ldr r2, [r3] ldr r4, _0800FEEC adds r0, r2, r4 ldr r1, [r0] ldr r7, _0800FEF0 adds r0, r2, r7 ldr r3, [r0] cmp r1, 0 blt _0800FDEC cmp r3, 0 blt _0800FDEC lsls r0, r3, 2 adds r0, r3 lsls r0, 4 ldr r4, _0800FEDC adds r0, r4 adds r0, r2, r0 ldrb r0, [r0] cmp r0, 0 beq _0800FDEC adds r1, 0x4 movs r0, 0x7 ands r1, r0 lsls r0, r1, 1 add r0, r10 strh r3, [r0] _0800FDEC: movs r5, 0 _0800FDEE: movs r7, 0x1 negs r7, r7 str r7, [sp, 0x20] ldr r0, _0800FEF4 str r0, [sp, 0x24] lsls r0, r5, 1 mov r2, r10 adds r1, r2, r0 movs r3, 0 ldrsh r1, [r1, r3] str r0, [sp, 0x30] adds r4, r5, 0x1 str r4, [sp, 0x2C] cmp r1, 0 blt _0800FE0E b _0800FF4E _0800FE0E: movs r6, 0 _0800FE10: lsls r0, r6, 2 adds r0, r6 lsls r0, 4 ldr r7, _0800FEDC adds r0, r7 ldr r2, _0800FEE0 ldr r1, [r2] adds r3, r1, r0 ldr r4, _0800FEE4 adds r1, r4 lsls r2, r6, 5 ldr r0, [r1] adds r2, r0, r2 adds r7, r6, 0x1 mov r9, r7 cmp r6, r8 bne _0800FE34 b _0800FF3A _0800FE34: ldrb r0, [r3] cmp r0, 0 bne _0800FE3C b _0800FF3A _0800FE3C: movs r1, 0x4 ldrsh r0, [r2, r1] ldr r3, [sp, 0x1C] movs r4, 0x4 ldrsh r1, [r3, r4] subs r0, r1 lsls r0, 8 str r0, [sp, 0xC] movs r7, 0x6 ldrsh r0, [r2, r7] movs r2, 0x6 ldrsh r1, [r3, r2] subs r0, r1 lsls r0, 8 str r0, [sp, 0x10] add r0, sp, 0xC bl sub_800A0B0 adds r2, r0, 0 ldr r0, [sp, 0xC] cmp r0, 0 bge _0800FE6A adds r0, 0x3 _0800FE6A: asrs r1, r0, 2 str r1, [sp, 0xC] ldr r0, [sp, 0x10] cmp r0, 0 bge _0800FE76 adds r0, 0x3 _0800FE76: asrs r0, 2 str r0, [sp, 0x10] cmp r1, 0 bge _0800FE80 adds r1, 0xFF _0800FE80: asrs r1, 8 str r1, [sp, 0xC] cmp r0, 0 bge _0800FE8A adds r0, 0xFF _0800FE8A: asrs r0, 8 str r0, [sp, 0x10] cmp r1, 0 bne _0800FE96 movs r0, 0x1 str r0, [sp, 0xC] _0800FE96: ldr r0, [sp, 0x10] cmp r0, 0 bne _0800FEA0 movs r0, 0x1 str r0, [sp, 0x10] _0800FEA0: movs r7, 0 cmp r5, 0x2 bne _0800FF04 ldr r1, _0800FEF8 ldr r4, _0800FEFC movs r3, 0x8 cmp r2, r1 ble _0800FEB8 ldr r0, _0800FF00 _0800FEB2: adds r2, r0 cmp r2, r1 bgt _0800FEB2 _0800FEB8: cmp r2, 0 bge _0800FEC6 movs r0, 0x80 lsls r0, 5 _0800FEC0: adds r2, r0 cmp r2, 0 blt _0800FEC0 _0800FEC6: adds r1, r3, r4 movs r3, 0 ldrsh r0, [r1, r3] cmp r0, r2 blt _0800FF20 movs r4, 0x2 ldrsh r0, [r1, r4] cmp r0, r2 ble _0800FF1C b _0800FF20 .align 2, 0 _0800FEDC: .4byte 0x00004018 _0800FEE0: .4byte gUnknown_203B0E4 _0800FEE4: .4byte 0x00004014 _0800FEE8: .4byte 0x0000ffff _0800FEEC: .4byte 0x00004a28 _0800FEF0: .4byte 0x00004a1c _0800FEF4: .4byte 0x000f423f _0800FEF8: .4byte 0x00000fff _0800FEFC: .4byte gUnknown_80D3EBC _0800FF00: .4byte 0xfffff000 _0800FF04: ldr r0, _0800FFC8 lsls r1, r5, 2 adds r1, r0 movs r3, 0 ldrsh r0, [r1, r3] cmp r0, r2 bgt _0800FF1C movs r4, 0x2 ldrsh r0, [r1, r4] cmp r0, r2 ble _0800FF1C movs r7, 0x1 _0800FF1C: cmp r7, 0 beq _0800FF3A _0800FF20: ldr r0, [sp, 0xC] adds r1, r0, 0 muls r1, r0 ldr r0, [sp, 0x10] adds r7, r0, 0 muls r7, r0 adds r0, r7, 0 adds r1, r0 ldr r0, [sp, 0x24] cmp r0, r1 ble _0800FF3A str r1, [sp, 0x24] str r6, [sp, 0x20] _0800FF3A: mov r6, r9 cmp r6, 0x1F bgt _0800FF42 b _0800FE10 _0800FF42: ldr r1, [sp, 0x20] cmp r1, 0 blt _0800FF4E ldr r0, [sp, 0x30] add r0, r10 strh r1, [r0] _0800FF4E: ldr r5, [sp, 0x2C] cmp r5, 0x7 bgt _0800FF56 b _0800FDEE _0800FF56: ldr r3, [sp, 0x28] mov r8, r3 cmp r3, 0x1F bgt _0800FF60 b _0800FD4C _0800FF60: ldr r4, _0800FFCC ldr r1, [r4] ldr r7, _0800FFD0 adds r0, r1, r7 ldr r1, [r1, 0xC] movs r2, 0 str r2, [sp] str r2, [sp, 0x4] movs r2, 0x1 str r2, [sp, 0x8] movs r2, 0 movs r3, 0 bl sub_80053AC ldr r2, [r4] ldr r1, _0800FFD4 adds r0, r2, r1 ldr r3, [sp, 0x18] str r3, [r0] ldr r4, _0800FFD8 adds r1, r2, r4 ldr r7, _0800FFDC adds r0, r2, r7 ldr r0, [r0] ldr r3, [sp, 0x34] adds r0, r3, r0 ldr r0, [r0, 0x4] str r0, [r1] ldrh r0, [r1] subs r0, 0x78 subs r4, 0x4 adds r1, r2, r4 strh r0, [r1] ldr r7, _0800FFE0 adds r0, r2, r7 ldrh r0, [r0] subs r0, 0x50 ldr r1, _0800FFE4 adds r2, r1 strh r0, [r2] bl sub_8011240 bl sub_80110B0 add sp, 0x40 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0800FFC8: .4byte gUnknown_80D3EBC _0800FFCC: .4byte gUnknown_203B0E4 _0800FFD0: .4byte 0x00004c10 _0800FFD4: .4byte 0x00004a18 _0800FFD8: .4byte 0x00004dd8 _0800FFDC: .4byte 0x00004014 _0800FFE0: .4byte 0x00004dda _0800FFE4: .4byte 0x00004dd6 thumb_func_end sub_800FC5C thumb_func_start sub_800FFE8 sub_800FFE8: push {lr} lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 cmp r0, 0x39 bhi _08010004 cmp r0, 0 beq _0801000C ldr r0, _08010008 ldr r0, [r0] adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _0801000C _08010004: movs r0, 0 b _0801000E .align 2, 0 _08010008: .4byte gUnknown_203B468 _0801000C: movs r0, 0x1 _0801000E: pop {r1} bx r1 thumb_func_end sub_800FFE8 thumb_func_start sub_8010014 sub_8010014: push {r4,r5,lr} sub sp, 0x20 ldr r1, _08010094 mov r0, sp movs r2, 0x10 bl memcpy add r4, sp, 0x10 ldr r1, _08010098 adds r0, r4, 0 movs r2, 0x10 bl memcpy movs r2, 0 ldr r0, _0801009C ldrh r3, [r0] movs r0, 0x80 lsls r0, 1 ands r0, r3 mov r5, sp cmp r0, 0 beq _08010042 adds r5, r4, 0 _08010042: adds r1, r3, 0 movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0801004E movs r2, 0x1 _0801004E: movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _0801005A movs r0, 0x2 orrs r2, r0 _0801005A: movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08010066 movs r0, 0x4 orrs r2, r0 _08010066: movs r0, 0x20 ands r0, r3 cmp r0, 0 beq _08010072 movs r0, 0x8 orrs r2, r0 _08010072: ldr r3, _080100A0 adds r2, r5, r2 ldrb r1, [r2] ldrb r0, [r3] cmp r0, r1 bne _080100A8 ldr r1, _080100A4 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bls _080100B0 ldrb r0, [r2] b _080100B2 .align 2, 0 _08010094: .4byte gUnknown_80D3EDC _08010098: .4byte gUnknown_80D3EEC _0801009C: .4byte gUnknown_20255F0 _080100A0: .4byte gUnknown_202DE18 _080100A4: .4byte gUnknown_202DE19 _080100A8: strb r1, [r3] ldr r1, _080100BC movs r0, 0 strb r0, [r1] _080100B0: movs r0, 0xFF _080100B2: add sp, 0x20 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080100BC: .4byte gUnknown_202DE19 thumb_func_end sub_8010014 thumb_func_start sub_80100C0 sub_80100C0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x18 str r0, [sp, 0xC] mov r8, r2 ldr r4, _080101E0 ldr r2, [r4] ldr r3, _080101E4 adds r0, r2, r3 ldr r2, [r2, 0xC] movs r3, 0x7 ands r3, r1 movs r1, 0 str r1, [sp] str r1, [sp, 0x4] movs r1, 0x1 str r1, [sp, 0x8] adds r1, r2, 0 movs r2, 0 bl sub_80053AC bl sub_8011168 ldr r0, [r4] ldr r2, _080101E8 adds r1, r0, r2 ldr r1, [r1] ldr r3, _080101EC adds r0, r3 ldr r2, [r0] lsls r1, 5 adds r1, r2 ldr r1, [r1, 0x4] mov r9, r1 ldr r1, [sp, 0xC] lsls r0, r1, 5 adds r0, r2 ldr r0, [r0, 0x4] str r0, [sp, 0x10] bl sub_80117F8 movs r7, 0 cmp r7, r8 bge _0801018A ldr r2, [sp, 0x10] lsls r1, r2, 16 asrs r1, 16 mov r3, r9 lsls r0, r3, 16 asrs r0, 16 subs r1, r0 str r1, [sp, 0x14] movs r0, 0 mov r10, r0 _08010132: ldr r0, _080101E0 ldr r6, [r0] lsls r5, r7, 8 mov r0, r10 mov r1, r8 bl __divsi3 cmp r0, 0 bge _08010146 adds r0, 0xFF _08010146: asrs r0, 8 add r0, r9 ldr r2, _080101F0 adds r1, r6, r2 strh r0, [r1] ldr r3, [sp, 0x10] asrs r0, r3, 16 mov r1, r9 asrs r4, r1, 16 subs r0, r4 muls r0, r5 mov r1, r8 bl __divsi3 cmp r0, 0 bge _08010168 adds r0, 0xFF _08010168: asrs r0, 8 adds r0, r4 ldr r2, _080101F4 adds r1, r6, r2 strh r0, [r1] bl sub_8011240 bl sub_80110B0 bl sub_801169C ldr r3, [sp, 0x14] lsls r0, r3, 8 add r10, r0 adds r7, 0x1 cmp r7, r8 blt _08010132 _0801018A: ldr r4, _080101E0 ldr r0, [r4] ldr r2, _080101E8 adds r1, r0, r2 ldr r3, [sp, 0xC] str r3, [r1] ldr r1, _080101F0 adds r2, r0, r1 ldr r3, _080101EC adds r0, r3 ldr r1, [r0] ldr r3, [sp, 0xC] lsls r0, r3, 5 adds r0, r1 ldr r0, [r0, 0x4] str r0, [r2] bl sub_8011240 bl sub_80110B0 bl sub_801169C ldr r1, [r4] ldr r2, _080101E4 adds r0, r1, r2 ldr r1, [r1, 0xC] movs r2, 0 str r2, [sp] str r2, [sp, 0x4] movs r2, 0x1 str r2, [sp, 0x8] movs r2, 0 movs r3, 0 bl sub_80053AC add sp, 0x18 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080101E0: .4byte gUnknown_203B0E4 _080101E4: .4byte 0x00004c10 _080101E8: .4byte 0x00004a18 _080101EC: .4byte 0x00004014 _080101F0: .4byte 0x00004dd8 _080101F4: .4byte 0x00004dda thumb_func_end sub_80100C0 thumb_func_start sub_80101F8 sub_80101F8: push {lr} adds r3, r0, 0 lsls r1, 24 lsrs r1, 24 cmp r1, 0 bne _08010218 ldr r0, _08010214 adds r2, r3, 0 adds r2, 0x50 adds r1, r3, 0 movs r3, 0 bl xxx_format_string b _08010220 .align 2, 0 _08010214: .4byte gUnknown_80D3EFC _08010218: adds r0, r3, 0 movs r2, 0 bl sub_8092578 _08010220: pop {r0} bx r0 thumb_func_end sub_80101F8 thumb_func_start sub_8010224 sub_8010224: push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 movs r7, 0 ldr r0, _08010248 adds r4, r0, 0x4 adds r5, r0, 0 adds r5, 0x8 _08010234: movs r2, 0 adds r3, r5, 0 _08010238: adds r0, r3, r2 ldrb r0, [r0] cmp r0, r6 bne _0801024C ldrh r0, [r4] strh r0, [r1] ldrh r0, [r4, 0x2] b _08010260 .align 2, 0 _08010248: .4byte gUnknown_80D3570 _0801024C: adds r2, 0x1 cmp r2, 0x7 ble _08010238 adds r4, 0x20 adds r5, 0x20 adds r7, 0x1 cmp r7, 0x1F ble _08010234 movs r0, 0 strh r0, [r1] _08010260: strh r0, [r1, 0x2] pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8010224 thumb_func_start sub_8010268 sub_8010268: push {r4-r6,lr} ldr r4, _080102D4 add sp, r4 adds r5, r0, 0 ldr r1, _080102D8 adds r0, 0xB0 ldr r0, [r0] str r0, [r1] ldr r1, _080102DC ldr r2, _080102E0 adds r0, r2, 0 strh r0, [r1] movs r0, 0 movs r1, 0x14 bl sub_80095CC movs r0, 0x2 bl xxx_update_some_bg_tiles bl sub_801059C adds r0, r5, 0x4 bl sub_8010494 bl sub_801178C movs r4, 0x3B _0801029E: bl sub_8010960 subs r4, 0x1 cmp r4, 0 bge _0801029E ldrb r0, [r5, 0x4] ldrb r1, [r5, 0x8] bl sub_8010344 adds r0, r5, 0 adds r0, 0x8 bl sub_8010B74 adds r6, r5, 0 adds r6, 0x70 movs r4, 0x3B _080102BE: bl sub_8010960 subs r4, 0x1 cmp r4, 0 bge _080102BE ldrb r0, [r5, 0x14] cmp r0, 0 beq _080102E4 movs r0, 0x20 ldrsh r1, [r5, r0] b _080102E6 .align 2, 0 _080102D4: .4byte 0xfffffc14 _080102D8: .4byte gUnknown_203B0E8 _080102DC: .4byte gUnknown_2026E4E _080102E0: .4byte 0x00000a06 _080102E4: movs r1, 0 _080102E6: ldrb r0, [r5, 0x8] ldrb r3, [r6] movs r4, 0 str r4, [sp] add r2, sp, 0x4 bl sub_809034C cmp r0, 0 beq _0801031C cmp r0, 0x1 bne _0801030A add r0, sp, 0x4 bl sub_8010C10 adds r0, r5, 0 adds r0, 0xB4 strb r4, [r0] b _0801032C _0801030A: cmp r0, 0x2 bne _0801032C add r0, sp, 0x4 bl sub_8010C58 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 beq _08010326 _0801031C: adds r1, r5, 0 adds r1, 0xB4 movs r0, 0x1 strb r0, [r1] b _0801032C _08010326: adds r0, r5, 0 adds r0, 0xB4 strb r1, [r0] _0801032C: bl sub_801091C bl sub_801073C bl nullsub_16 movs r3, 0xFB lsls r3, 2 add sp, r3 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8010268 thumb_func_start sub_8010344 sub_8010344: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C lsls r0, 24 lsls r1, 24 ldr r2, _08010470 lsrs r0, 22 adds r0, r2 lsrs r1, 22 adds r1, r2 ldr r2, [r1] str r2, [sp, 0x14] movs r3, 0 ldrsh r5, [r1, r3] ldr r1, [r0] mov r9, r1 movs r2, 0 ldrsh r6, [r0, r2] subs r2, r5, r6 cmp r2, 0 bge _08010376 negs r2, r2 _08010376: ldr r3, [sp, 0x14] asrs r0, r3, 16 mov r3, r9 asrs r1, r3, 16 subs r4, r0, r1 adds r3, r4, 0 str r0, [sp, 0x18] mov r8, r1 cmp r4, 0 bge _0801038C negs r4, r4 _0801038C: cmp r4, r2 bge _08010392 adds r4, r2, 0 _08010392: lsrs r0, r4, 31 adds r0, r4, r0 asrs r4, r0, 1 subs r0, r6, r5 str r0, [sp, 0xC] str r3, [sp, 0x10] add r0, sp, 0xC bl sub_800A0B0 ldr r1, _08010474 adds r3, r0, r1 cmp r3, 0 bge _080103B0 ldr r2, _08010478 adds r3, r0, r2 _080103B0: asrs r3, 9 movs r0, 0x7 ands r3, r0 ldr r0, _0801047C ldr r1, [r0] ldr r2, _08010480 adds r0, r1, r2 ldr r2, _08010484 adds r1, r2 ldr r1, [r1] movs r2, 0 str r2, [sp] str r2, [sp, 0x4] movs r2, 0x1 str r2, [sp, 0x8] movs r2, 0 bl sub_80053AC movs r7, 0 cmp r7, r4 bge _08010448 mov r10, r5 _080103DC: ldr r0, _0801047C ldr r6, [r0] mov r3, r9 lsls r0, r3, 16 asrs r0, 16 mov r1, r10 subs r0, r1, r0 lsls r5, r7, 8 muls r0, r5 adds r1, r4, 0 bl __divsi3 cmp r0, 0 bge _080103FA adds r0, 0xFF _080103FA: asrs r0, 8 add r0, r9 ldr r2, _08010488 adds r1, r6, r2 strh r0, [r1] ldr r3, [sp, 0x18] mov r1, r8 subs r0, r3, r1 muls r0, r5 adds r1, r4, 0 bl __divsi3 cmp r0, 0 bge _08010418 adds r0, 0xFF _08010418: asrs r0, 8 add r0, r8 ldr r2, _0801048C adds r1, r6, r2 strh r0, [r1] bl sub_8010798 bl sub_8010858 bl sub_8010960 ldr r0, _08010490 ldrh r1, [r0, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08010448 movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08010448 adds r7, 0x1 cmp r7, r4 blt _080103DC _08010448: ldr r0, _0801047C ldr r0, [r0] ldr r3, _08010488 adds r0, r3 ldr r1, [sp, 0x14] str r1, [r0] bl sub_8010798 bl sub_8010858 bl sub_8010960 add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08010470: .4byte gUnknown_80D3F14 _08010474: .4byte 0xfffffc00 _08010478: .4byte 0xfffffdff _0801047C: .4byte gUnknown_203B0E8 _08010480: .4byte 0x00005114 _08010484: .4byte 0x0000110c _08010488: .4byte 0x000052dc _0801048C: .4byte 0x000052de _08010490: .4byte gUnknown_20255F0 thumb_func_end sub_8010344 thumb_func_start sub_8010494 sub_8010494: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC mov r9, r0 movs r5, 0 ldr r0, _080104C0 mov r10, r0 mov r8, r5 _080104AA: mov r1, r10 ldr r0, [r1] mov r3, r8 adds r4, r0, r3 cmp r5, 0x3E bgt _080104C4 mov r0, r9 adds r0, 0x6D adds r0, r5 ldrb r0, [r0] b _080104C6 .align 2, 0 _080104C0: .4byte gUnknown_203B0E8 _080104C4: movs r0, 0x1 _080104C6: cmp r0, 0 beq _0801050C movs r7, 0 movs r6, 0x1 strb r6, [r4] adds r3, r4, 0 adds r3, 0x8 mov r1, r10 ldr r0, [r1] ldr r1, _08010504 adds r0, r1 ldr r1, [r0] movs r2, 0x1 cmp r5, 0x3F bne _080104E6 movs r2, 0xC _080104E6: movs r0, 0x40 str r0, [sp] str r7, [sp, 0x4] str r6, [sp, 0x8] adds r0, r3, 0 movs r3, 0 bl sub_80053AC ldr r1, _08010508 lsls r0, r5, 2 adds r0, r1 ldr r0, [r0] str r0, [r4, 0x4] b _0801050E .align 2, 0 _08010504: .4byte 0x00001108 _08010508: .4byte gUnknown_80D3F14 _0801050C: strb r0, [r4] _0801050E: movs r3, 0x44 add r8, r3 adds r5, 0x1 cmp r5, 0x3F ble _080104AA movs r2, 0 ldr r4, _0801057C ldr r1, [r4] ldr r3, _08010580 adds r0, r1, r3 ldr r3, _08010584 adds r1, r3 ldr r1, [r1] str r2, [sp] str r2, [sp, 0x4] movs r2, 0x1 str r2, [sp, 0x8] movs r2, 0 movs r3, 0 bl sub_80053AC ldr r2, [r4] ldr r4, _08010588 adds r3, r2, r4 ldr r1, _0801058C mov r4, r9 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r0, [r0] str r0, [r3] ldrh r0, [r3] subs r0, 0x78 ldr r3, _08010590 adds r1, r2, r3 strh r0, [r1] ldr r4, _08010594 adds r0, r2, r4 ldrh r0, [r0] subs r0, 0x50 ldr r1, _08010598 adds r2, r1 strh r0, [r2] bl sub_8010798 bl sub_8010858 add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0801057C: .4byte gUnknown_203B0E8 _08010580: .4byte 0x00005114 _08010584: .4byte 0x0000110c _08010588: .4byte 0x000052dc _0801058C: .4byte gUnknown_80D3F14 _08010590: .4byte 0x000052d8 _08010594: .4byte 0x000052de _08010598: .4byte 0x000052da thumb_func_end sub_8010494 thumb_func_start sub_801059C sub_801059C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 bl sub_808D33C adds r7, r0, 0 ldr r6, _080106E4 ldr r0, [r6] ldr r5, _080106E8 adds r1, r5, 0 bl OpenFileAndGetFileDataPtr str r0, [sp, 0xC] ldr r0, [r6, 0x4] adds r1, r5, 0 bl OpenFileAndGetFileDataPtr str r0, [sp, 0x10] ldr r1, _080106EC movs r0, 0x8 ldrsh r2, [r7, r0] mov r0, sp bl sprintf ldr r1, _080106F0 mov r8, r1 mov r0, sp bl OpenFileAndGetFileDataPtr ldr r4, _080106F4 ldr r1, [r4] ldr r2, _080106F8 adds r1, r2 str r0, [r1] ldr r0, _080106FC adds r1, r5, 0 bl OpenFileAndGetFileDataPtr ldr r1, [r4] ldr r3, _08010700 mov r9, r3 add r1, r9 str r0, [r1] ldr r0, [r6, 0x8] adds r1, r5, 0 bl OpenFileAndGetFileDataPtr ldr r1, [r4] ldr r2, _08010704 mov r10, r2 add r1, r10 str r0, [r1] ldr r0, _08010708 mov r1, r8 bl OpenFileAndGetFileDataPtr ldr r1, [r4] ldr r3, _0801070C adds r1, r3 str r0, [r1] ldr r0, [r6, 0xC] adds r1, r5, 0 bl OpenFileAndGetFileDataPtr ldr r1, [r4] movs r2, 0x88 lsls r2, 5 adds r1, r2 str r0, [r1] movs r3, 0x8 ldrsh r0, [r7, r3] movs r1, 0 bl sub_808DD68 ldr r1, [r4] ldr r3, _08010710 adds r2, r1, r3 lsls r0, 24 lsrs r0, 24 str r0, [r2] add r1, r9 ldr r0, [r1] movs r1, 0x40 movs r2, 0x1F movs r3, 0 bl sub_8005610 ldr r0, _08010714 movs r1, 0 ldr r2, [sp, 0xC] bl sub_800AE28 ldr r1, [r4] ldr r2, _08010718 adds r0, r1, r2 add r1, r10 ldr r1, [r1] movs r2, 0x10 bl sub_8004AA4 movs r1, 0x80 lsls r1, 7 ldr r0, [r4] ldr r3, _0801071C adds r0, r3 ldr r2, [sp, 0x10] bl sub_800AAA8 ldr r1, [r4] ldr r2, _08010720 adds r0, r1, r2 movs r2, 0 str r2, [r0] ldr r3, _08010724 adds r0, r1, r3 strh r2, [r0] ldr r0, _08010728 adds r1, r0 strh r2, [r1] movs r3, 0 ldr r1, _0801072C mov r9, r1 mov r8, r4 ldr r7, _08010730 ldr r2, _08010734 adds r4, r2, 0 ldr r6, _08010738 movs r5, 0 _080106A2: mov r0, r8 ldr r2, [r0] lsls r0, r3, 1 adds r1, r2, r7 adds r1, r0 ldrh r0, [r1] orrs r0, r4 strh r0, [r1] adds r2, r6 adds r2, r3 strb r5, [r2] adds r3, 0x1 cmp r3, r9 ble _080106A2 ldr r0, [sp, 0xC] bl CloseFile ldr r0, [sp, 0x10] bl CloseFile movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080106E4: .4byte gUnknown_80D4014 _080106E8: .4byte gUnknown_8380000 _080106EC: .4byte gUnknown_80D405C _080106F0: .4byte gUnknown_8510000 _080106F4: .4byte gUnknown_203B0E8 _080106F8: .4byte 0x0000110c _080106FC: .4byte gUnknown_80D4064 _08010700: .4byte 0x00001108 _08010704: .4byte 0x00001110 _08010708: .4byte gUnknown_80D406C _0801070C: .4byte 0x00001104 _08010710: .4byte 0x000052d4 _08010714: .4byte 0x06008000 _08010718: .4byte 0x00005150 _0801071C: .4byte 0x00001114 _08010720: .4byte 0x000052d0 _08010724: .4byte 0x000052d8 _08010728: .4byte 0x000052da _0801072C: .4byte 0x000005db _08010730: .4byte 0x000052e0 _08010734: .4byte 0x0000ffff _08010738: .4byte 0x00005e98 thumb_func_end sub_801059C thumb_func_start sub_801073C sub_801073C: push {r4,lr} ldr r4, _08010784 ldr r0, [r4] ldr r1, _08010788 adds r0, r1 ldr r0, [r0] bl CloseFile ldr r0, [r4] ldr r1, _0801078C adds r0, r1 ldr r0, [r0] bl CloseFile ldr r0, [r4] ldr r1, _08010790 adds r0, r1 ldr r0, [r0] bl CloseFile ldr r0, [r4] movs r1, 0x88 lsls r1, 5 adds r0, r1 ldr r0, [r0] bl CloseFile ldr r0, [r4] ldr r1, _08010794 adds r0, r1 ldr r0, [r0] bl CloseFile pop {r4} pop {r0} bx r0 .align 2, 0 _08010784: .4byte gUnknown_203B0E8 _08010788: .4byte 0x00001110 _0801078C: .4byte 0x0000110c _08010790: .4byte 0x00001108 _08010794: .4byte 0x00001104 thumb_func_end sub_801073C thumb_func_start sub_8010798 sub_8010798: push {r4-r6,lr} ldr r2, _080107BC ldr r0, [r2] ldr r1, _080107C0 adds r3, r0, r1 movs r4, 0 ldrsh r1, [r3, r4] ldr r5, _080107C4 adds r4, r0, r5 movs r6, 0 ldrsh r0, [r4, r6] subs r1, r0 adds r5, r2, 0 cmp r1, 0x2F bgt _080107C8 ldrh r0, [r3] subs r0, 0x30 b _080107D0 .align 2, 0 _080107BC: .4byte gUnknown_203B0E8 _080107C0: .4byte 0x000052dc _080107C4: .4byte 0x000052d8 _080107C8: cmp r1, 0xC0 ble _080107D2 ldrh r0, [r3] subs r0, 0xC0 _080107D0: strh r0, [r4] _080107D2: ldr r0, [r5] ldr r1, _080107F0 adds r3, r0, r1 movs r2, 0 ldrsh r1, [r3, r2] ldr r4, _080107F4 adds r2, r0, r4 movs r6, 0 ldrsh r0, [r2, r6] subs r1, r0 cmp r1, 0x2F bgt _080107F8 ldrh r0, [r3] subs r0, 0x30 b _08010800 .align 2, 0 _080107F0: .4byte 0x000052de _080107F4: .4byte 0x000052da _080107F8: cmp r1, 0x70 ble _08010802 ldrh r0, [r3] subs r0, 0x70 _08010800: strh r0, [r2] _08010802: adds r3, r5, 0 ldr r0, [r3] ldr r4, _08010850 adds r1, r0, r4 movs r2, 0 ldrsh r0, [r1, r2] cmp r0, 0 bge _08010816 movs r0, 0 strh r0, [r1] _08010816: ldr r0, [r3] ldr r2, _08010854 adds r1, r0, r2 movs r6, 0 ldrsh r0, [r1, r6] cmp r0, 0 bge _08010828 movs r0, 0 strh r0, [r1] _08010828: ldr r0, [r3] adds r1, r0, r4 movs r3, 0 ldrsh r0, [r1, r3] cmp r0, 0xEF ble _08010838 movs r0, 0xF0 strh r0, [r1] _08010838: ldr r0, [r5] adds r2, r0, r2 movs r4, 0 ldrsh r0, [r2, r4] cmp r0, 0x9F ble _08010848 movs r0, 0xA0 strh r0, [r2] _08010848: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08010850: .4byte 0x000052d8 _08010854: .4byte 0x000052da thumb_func_end sub_8010798 thumb_func_start sub_8010858 sub_8010858: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 ldr r0, _080108FC ldr r1, [r0] ldr r2, _08010900 adds r1, r2 ldrh r1, [r1] lsls r1, 16 asrs r6, r1, 19 adds r2, r6, 0 movs r3, 0 mov r10, r0 movs r0, 0x1F mov r9, r0 _0801087C: mov r1, r10 ldr r0, [r1] ldr r1, _08010904 adds r0, r1 ldrh r0, [r0] lsls r0, 16 asrs r4, r0, 19 lsls r1, r2, 7 adds r2, 0x1 mov r12, r2 adds r3, 0x1 mov r8, r3 movs r7, 0x1E lsls r0, r4, 1 adds r5, r0, r1 _0801089A: mov r2, r9 ands r4, r2 ands r6, r2 lsls r2, r4, 1 lsls r0, r6, 6 adds r2, r0 ldr r3, _08010908 adds r3, r2, r3 str r3, [sp] mov r0, r10 ldr r1, [r0] ldr r3, _0801090C adds r0, r1, r3 adds r0, r5 ldrh r0, [r0] ldr r3, [sp] strh r0, [r3] ldr r0, _08010910 adds r2, r0 ldr r3, _08010914 adds r1, r3 adds r1, r5 ldrh r0, [r1] strh r0, [r2] adds r5, 0x2 adds r4, 0x1 subs r7, 0x1 cmp r7, 0 bge _0801089A mov r2, r12 adds r6, 0x1 mov r3, r8 cmp r3, 0x14 ble _0801087C movs r0, 0x2 bl sub_80098F8 movs r0, 0x3 bl sub_80098F8 add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080108FC: .4byte gUnknown_203B0E8 _08010900: .4byte 0x000052da _08010904: .4byte 0x000052d8 _08010908: .4byte gUnknown_202C038 _0801090C: .4byte 0x00003114 _08010910: .4byte gUnknown_202C838 _08010914: .4byte 0x00001114 thumb_func_end sub_8010858 thumb_func_start nullsub_24 nullsub_24: bx lr thumb_func_end nullsub_24 thumb_func_start sub_801091C sub_801091C: push {r4,r5,lr} bl sub_8010950 bl sub_80117C4 ldr r5, _08010948 movs r4, 0x3B _0801092A: ldr r1, [r5] ldr r0, _0801094C adds r1, r0 ldr r0, [r1] subs r0, 0x2 str r0, [r1] bl sub_8010960 subs r4, 0x1 cmp r4, 0 bge _0801092A pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08010948: .4byte gUnknown_203B0E8 _0801094C: .4byte 0x000052d0 thumb_func_end sub_801091C thumb_func_start sub_8010950 sub_8010950: push {lr} movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r0} bx r0 thumb_func_end sub_8010950 thumb_func_start sub_8010960 sub_8010960: push {r4-r6,lr} ldr r6, _080109EC ldr r1, [r6] ldr r4, _080109F0 adds r0, r1, r4 movs r2, 0 ldrsh r0, [r0, r2] ldr r5, _080109F4 adds r1, r5 movs r2, 0 ldrsh r1, [r1, r2] bl sub_800CCA0 ldr r1, [r6] adds r4, r1, r4 movs r2, 0 ldrsh r0, [r4, r2] adds r1, r5 movs r2, 0 ldrsh r1, [r1, r2] bl sub_800CCAC movs r0, 0x1 bl sub_8010A88 bl sub_8010A00 movs r0, 0 movs r1, 0 bl sub_8005838 ldr r0, _080109F8 ldr r0, [r0] ldrb r0, [r0, 0xA] bl nullsub_8 bl sub_8005180 bl sub_80060EC ldr r0, _080109FC ldr r0, [r0] bl sub_8094FB4 bl sub_800CB20 bl sub_800485C bl CopySpritesToOam bl sub_8005304 bl TransferBGPaletteBuffer bl xxx_call_update_bg_vram bl nullsub_24 bl sub_8009908 bl xxx_call_update_bg_sound_input bl sub_8011860 movs r0, 0 bl sub_8004D8C pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080109EC: .4byte gUnknown_203B0E8 _080109F0: .4byte 0x000052d8 _080109F4: .4byte 0x000052da _080109F8: .4byte gUnknown_203B46C _080109FC: .4byte gUnknown_203B47C thumb_func_end sub_8010960 thumb_func_start sub_8010A00 sub_8010A00: push {r4-r6,lr} movs r3, 0 ldr r6, _08010A7C ldr r0, [r6] ldr r2, _08010A80 adds r1, r0, r2 ldr r2, [r1] cmp r2, 0x1E bgt _08010A74 movs r3, 0x88 lsls r3, 5 adds r0, r3 ldr r0, [r0] ldr r5, [r0, 0x4] adds r0, r2, 0x1 str r0, [r1] cmp r0, 0x1E ble _08010A28 movs r0, 0x1F str r0, [r1] _08010A28: movs r4, 0 _08010A2A: ldr r0, [r6] ldr r1, _08010A80 adds r0, r1 ldr r2, [r0] adds r0, r4, 0 adds r1, r5, 0 movs r3, 0 bl SetBGPaletteBufferColorRGB adds r5, 0x4 adds r4, 0x1 cmp r4, 0xDF ble _08010A2A ldr r0, _08010A7C ldr r0, [r0] ldr r2, _08010A84 adds r0, r2 ldr r0, [r0] ldr r5, [r0, 0x4] movs r4, 0 _08010A52: movs r3, 0x80 lsls r3, 1 adds r0, r4, r3 ldr r1, _08010A7C ldr r1, [r1] ldr r2, _08010A80 adds r1, r2 ldr r2, [r1] adds r1, r5, 0 movs r3, 0 bl SetBGPaletteBufferColorRGB adds r5, 0x4 adds r4, 0x1 cmp r4, 0xEF ble _08010A52 movs r3, 0x1 _08010A74: adds r0, r3, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08010A7C: .4byte gUnknown_203B0E8 _08010A80: .4byte 0x000052d0 _08010A84: .4byte 0x00001104 thumb_func_end sub_8010A00 thumb_func_start sub_8010A88 sub_8010A88: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 lsls r0, 24 lsrs r0, 24 mov r9, r0 add r0, sp, 0x8 bl sub_8004E8C add r1, sp, 0x8 ldr r0, _08010B58 strh r0, [r1, 0x4] movs r0, 0x80 lsls r0, 4 strh r0, [r1, 0xA] ldr r6, _08010B5C ldr r0, [r6] ldr r2, _08010B60 adds r1, r0, r2 ldr r5, [r1] ldr r3, _08010B64 adds r0, r3 bl sub_80054BC mov r0, r9 cmp r0, 0 beq _08010AF6 ldr r4, [r6] ldr r1, _08010B64 adds r0, r4, r1 ldr r2, _08010B68 adds r1, r4, r2 movs r3, 0 ldrsh r1, [r1, r3] lsls r2, r5, 16 asrs r2, 16 subs r1, r2 ldr r3, _08010B6C adds r2, r4, r3 movs r3, 0 ldrsh r2, [r2, r3] asrs r3, r5, 16 subs r2, r3 ldr r3, _08010B70 adds r4, r3 ldr r3, [r4] str r3, [sp] add r3, sp, 0x8 str r3, [sp, 0x4] movs r3, 0x3 bl sub_800558C _08010AF6: lsls r0, r5, 16 asrs r0, 16 mov r10, r0 movs r7, 0 asrs r5, 16 mov r8, r5 movs r6, 0x3F _08010B04: ldr r1, _08010B5C ldr r0, [r1] adds r4, r0, r7 ldrb r0, [r4] cmp r0, 0 beq _08010B40 adds r5, r4, 0 adds r5, 0x8 adds r0, r5, 0 bl sub_80054BC mov r2, r9 cmp r2, 0 beq _08010B40 movs r3, 0x4 ldrsh r1, [r4, r3] mov r0, r10 subs r1, r0 movs r3, 0x6 ldrsh r2, [r4, r3] mov r0, r8 subs r2, r0 movs r0, 0 str r0, [sp] add r3, sp, 0x8 str r3, [sp, 0x4] adds r0, r5, 0 movs r3, 0x1 bl sub_800558C _08010B40: adds r7, 0x44 subs r6, 0x1 cmp r6, 0 bge _08010B04 add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08010B58: .4byte 0x0000f3ff _08010B5C: .4byte gUnknown_203B0E8 _08010B60: .4byte 0x000052d8 _08010B64: .4byte 0x00005114 _08010B68: .4byte 0x000052dc _08010B6C: .4byte 0x000052de _08010B70: .4byte 0x000052d4 thumb_func_end sub_8010A88 thumb_func_start sub_8010B74 sub_8010B74: push {r4,r5,lr} sub sp, 0x64 adds r5, r0, 0 add r4, sp, 0x4 adds r0, r4, 0 movs r1, 0 movs r2, 0x60 bl memset movs r2, 0x3 str r2, [sp, 0x8] movs r0, 0xC strh r0, [r4, 0x8] movs r1, 0x2 strh r1, [r4, 0xA] movs r0, 0x10 strh r0, [r4, 0xC] strh r1, [r4, 0xE] strh r1, [r4, 0x10] str r2, [sp, 0x20] str r2, [sp, 0x38] str r2, [sp, 0x50] ldr r0, _08010BC0 ldr r0, [r0] ldr r2, _08010BC4 adds r1, r0, r2 movs r2, 0 ldrsh r1, [r1, r2] ldr r2, _08010BC8 adds r0, r2 movs r2, 0 ldrsh r0, [r0, r2] subs r1, r0 cmp r1, 0x50 bgt _08010BCC add r1, sp, 0x4 movs r0, 0x11 b _08010BD0 .align 2, 0 _08010BC0: .4byte gUnknown_203B0E8 _08010BC4: .4byte 0x000052de _08010BC8: .4byte 0x000052da _08010BCC: add r1, sp, 0x4 movs r0, 0x1 _08010BD0: strh r0, [r1, 0xA] add r0, sp, 0x4 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0 bl sub_80073B8 ldr r0, _08010C08 adds r1, r5, 0 bl sub_809027C ldr r2, _08010C0C movs r0, 0 str r0, [sp] movs r0, 0xC movs r1, 0x2 movs r3, 0 bl sub_8014FF0 movs r0, 0 bl sub_80073E0 add sp, 0x64 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08010C08: .4byte gUnknown_202DF98 _08010C0C: .4byte gUnknown_80D4074 thumb_func_end sub_8010B74 thumb_func_start sub_8010C10 sub_8010C10: push {r4,lr} sub sp, 0x18 movs r2, 0 str r2, [sp] movs r1, 0x3 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] ldr r1, _08010C54 str r1, [sp, 0x10] movs r1, 0 movs r3, 0 bl sub_8014248 _08010C2C: bl xxx_draw_string_80144C4 bl sub_8010960 add r0, sp, 0x14 bl sub_80144A4 cmp r0, 0 bne _08010C2C movs r4, 0x9 _08010C40: bl sub_8010960 subs r4, 0x1 cmp r4, 0 bge _08010C40 add sp, 0x18 pop {r4} pop {r0} bx r0 .align 2, 0 _08010C54: .4byte 0x00000301 thumb_func_end sub_8010C10 thumb_func_start sub_8010C58 sub_8010C58: push {r4-r6,lr} sub sp, 0x38 adds r5, r0, 0 movs r2, 0 ldrb r0, [r5] ldr r3, _08010D70 add r6, sp, 0x2C cmp r0, 0 beq _08010C7C adds r1, r5, 0 _08010C6C: ldrb r0, [r1] cmp r0, 0xA bne _08010C74 adds r2, 0xC _08010C74: adds r1, 0x1 ldrb r0, [r1] cmp r0, 0 bne _08010C6C _08010C7C: adds r2, 0xB adds r0, r2, 0 cmp r2, 0 bge _08010C86 adds r0, r2, 0x7 _08010C86: asrs r2, r0, 3 movs r0, 0x13 subs r0, r2 movs r4, 0 strh r0, [r3, 0xA] strh r2, [r3, 0x10] strh r2, [r3, 0xE] movs r0, 0xE subs r0, r2 strh r0, [r3, 0x22] adds r0, r3, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0 bl sub_80073B8 str r4, [sp] movs r0, 0x4 movs r1, 0 adds r2, r5, 0 movs r3, 0 bl sub_8014FF0 movs r0, 0 bl sub_80073E0 movs r0, 0x1 bl sub_80073B8 ldr r2, _08010D74 str r4, [sp] movs r0, 0xA movs r1, 0 movs r3, 0x1 bl sub_8014FF0 ldr r2, _08010D78 str r4, [sp] movs r0, 0xA movs r1, 0xC movs r3, 0x1 bl sub_8014FF0 movs r0, 0x1 bl sub_80073E0 add r0, sp, 0x4 movs r2, 0x1 strh r2, [r0, 0x18] movs r1, 0x2 strh r1, [r0, 0x1A] strh r1, [r0, 0x1C] strh r4, [r0, 0x1E] strh r4, [r0, 0x20] strh r4, [r0, 0x4] strh r4, [r0, 0x6] str r2, [sp, 0x4] strh r4, [r0, 0xC] strh r4, [r0, 0xE] strh r4, [r0, 0x14] strh r4, [r0, 0x16] movs r1, 0x8 strh r1, [r0, 0x8] strh r1, [r0, 0xA] movs r1, 0x18 bl sub_80137B0 adds r0, r6, 0 bl sub_801317C ldr r4, _08010D7C _08010D18: add r0, sp, 0x4 bl AddMenuCursorSprite bl sub_8010960 ldrh r1, [r4, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08010D36 add r0, sp, 0x4 bl MoveMenuCursorDown bl sub_80117F8 _08010D36: ldrh r1, [r4, 0x4] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08010D4A add r0, sp, 0x4 bl MoveMenuCursorUp bl sub_80117F8 _08010D4A: ldrh r1, [r4, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08010D5E mov r0, sp adds r0, 0x2D ldrb r0, [r0] cmp r0, 0 beq _08010D18 _08010D5E: bl sub_80117D0 add r0, sp, 0x4 movs r1, 0x18 ldrsh r0, [r0, r1] cmp r0, 0 beq _08010D80 movs r0, 0 b _08010D82 .align 2, 0 _08010D70: .4byte gUnknown_203B0EC _08010D74: .4byte gUnknown_80D407C _08010D78: .4byte gUnknown_80D4080 _08010D7C: .4byte gUnknown_20255F0 _08010D80: movs r0, 0x1 _08010D82: add sp, 0x38 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8010C58 thumb_func_start sub_8010D8C sub_8010D8C: lsls r0, 24 ldr r2, _08010DA0 lsrs r0, 22 adds r0, r2 ldrh r2, [r0] strh r2, [r1] ldrh r0, [r0, 0x2] strh r0, [r1, 0x2] bx lr .align 2, 0 _08010DA0: .4byte gUnknown_80D3F14 thumb_func_end sub_8010D8C thumb_func_start sub_8010DA4 sub_8010DA4: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC bl sub_808D33C mov r9, r0 ldr r6, _08010EBC ldr r0, [r6] ldr r5, _08010EC0 adds r1, r5, 0 bl OpenFileAndGetFileDataPtr mov r10, r0 ldr r0, [r6, 0x4] adds r1, r5, 0 bl OpenFileAndGetFileDataPtr adds r7, r0, 0 ldr r1, _08010EC4 mov r0, r9 movs r3, 0x8 ldrsh r2, [r0, r3] mov r0, sp bl sprintf ldr r0, _08010EC8 mov r8, r0 mov r0, sp mov r1, r8 bl OpenFileAndGetFileDataPtr ldr r4, _08010ECC ldr r1, [r4] str r0, [r1, 0xC] ldr r0, _08010ED0 adds r1, r5, 0 bl OpenFileAndGetFileDataPtr ldr r1, [r4] str r0, [r1, 0x8] ldr r0, [r6, 0x8] adds r1, r5, 0 bl OpenFileAndGetFileDataPtr ldr r1, [r4] str r0, [r1, 0x10] ldr r0, _08010ED4 mov r1, r8 bl OpenFileAndGetFileDataPtr ldr r1, [r4] str r0, [r1, 0x4] ldr r0, [r6, 0xC] adds r1, r5, 0 bl OpenFileAndGetFileDataPtr ldr r1, [r4] str r0, [r1] mov r1, r9 movs r2, 0x8 ldrsh r0, [r1, r2] movs r1, 0 bl sub_808DD68 ldr r2, [r4] ldr r3, _08010ED8 adds r1, r2, r3 lsls r0, 24 lsrs r0, 24 str r0, [r1] ldr r0, [r2, 0x8] movs r1, 0x40 movs r2, 0x1F movs r3, 0 bl sub_8005610 ldr r0, _08010EDC movs r1, 0 mov r2, r10 bl sub_800AE28 ldr r1, [r4] ldr r2, _08010EE0 adds r0, r1, r2 ldr r1, [r1, 0x10] movs r2, 0x10 bl sub_8004AA4 movs r1, 0x80 lsls r1, 7 ldr r0, [r4] adds r0, 0x14 adds r2, r7, 0 bl sub_800AAA8 ldr r1, [r4] ldr r3, _08010EE4 adds r0, r1, r3 movs r2, 0 str r2, [r0] adds r3, 0x8 adds r0, r1, r3 strh r2, [r0] ldr r0, _08010EE8 adds r1, r0 strh r2, [r1] ldr r5, _08010EEC movs r3, 0 movs r1, 0x7 _08010E84: ldr r0, [r4] adds r0, r2, r0 adds r0, r5 strh r3, [r0] adds r2, 0x3C subs r1, 0x1 cmp r1, 0 bge _08010E84 mov r0, r10 bl CloseFile adds r0, r7, 0 bl CloseFile movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08010EBC: .4byte gUnknown_80D408C _08010EC0: .4byte gUnknown_8380000 _08010EC4: .4byte gUnknown_80D40E4 _08010EC8: .4byte gUnknown_8510000 _08010ECC: .4byte gUnknown_203B0E4 _08010ED0: .4byte gUnknown_80D40EC _08010ED4: .4byte gUnknown_80D40F4 _08010ED8: .4byte 0x00004dd0 _08010EDC: .4byte 0x06008000 _08010EE0: .4byte 0x00004c4c _08010EE4: .4byte 0x00004dcc _08010EE8: .4byte 0x00004dd6 _08010EEC: .4byte 0x00004a30 thumb_func_end sub_8010DA4 thumb_func_start sub_8010EF0 sub_8010EF0: push {r4,lr} ldr r4, _08010F24 ldr r0, [r4] ldr r0, [r0, 0x10] bl CloseFile ldr r0, [r4] ldr r0, [r0, 0x8] bl CloseFile ldr r0, [r4] ldr r0, [r0, 0xC] bl CloseFile ldr r0, [r4] ldr r0, [r0] bl CloseFile ldr r0, [r4] ldr r0, [r0, 0x4] bl CloseFile pop {r4} pop {r0} bx r0 .align 2, 0 _08010F24: .4byte gUnknown_203B0E4 thumb_func_end sub_8010EF0 thumb_func_start sub_8010F28 sub_8010F28: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x18 add r0, sp, 0x8 bl sub_8004E8C add r1, sp, 0x8 ldr r0, _08011080 strh r0, [r1, 0x4] movs r0, 0x80 lsls r0, 4 strh r0, [r1, 0xA] ldr r6, _08011084 ldr r0, [r6] ldr r2, _08011088 adds r1, r0, r2 ldr r1, [r1] mov r8, r1 ldr r4, _0801108C adds r0, r4 bl sub_80054BC ldr r3, [r6] adds r4, r3, r4 ldr r7, _08011090 adds r0, r3, r7 movs r2, 0 ldrsh r1, [r0, r2] mov r7, r8 lsls r5, r7, 16 asrs r5, 16 subs r1, r5 ldr r2, _08011094 adds r0, r3, r2 movs r7, 0 ldrsh r2, [r0, r7] mov r7, r8 asrs r0, r7, 16 subs r2, r0 ldr r0, _08011098 adds r3, r0 ldr r0, [r3] str r0, [sp] add r3, sp, 0x8 str r3, [sp, 0x4] adds r0, r4, 0 movs r3, 0x3 bl sub_800558C movs r7, 0 mov r10, r6 ldr r6, _0801109C mov r9, r5 _08010F98: mov r4, r10 ldr r0, [r4] adds r4, r0, r6 ldr r1, _080110A0 adds r0, r1 lsls r1, r7, 5 ldr r0, [r0] adds r5, r0, r1 ldrb r0, [r4] cmp r0, 0 beq _08010FD8 adds r4, 0x14 adds r0, r4, 0 bl sub_80054BC movs r2, 0x4 ldrsh r1, [r5, r2] mov r3, r9 subs r1, r3 movs r0, 0x6 ldrsh r2, [r5, r0] mov r3, r8 asrs r0, r3, 16 subs r2, r0 movs r0, 0 str r0, [sp] add r0, sp, 0x8 str r0, [sp, 0x4] adds r0, r4, 0 movs r3, 0x1 bl sub_800558C _08010FD8: adds r6, 0x50 adds r7, 0x1 cmp r7, 0x1F ble _08010F98 movs r5, 0 ldr r1, _08011084 mov r9, r1 ldr r6, _080110A4 movs r2, 0 str r2, [sp, 0x14] _08010FEC: mov r3, r9 ldr r1, [r3] ldr r4, [sp, 0x14] adds r0, r4, r1 ldr r7, _080110A4 adds r0, r7 ldrh r0, [r0] lsrs r0, 15 cmp r0, 0 beq _08011062 adds r0, r1, r6 bl sub_80054BC ldr r0, _080110A8 ldrh r0, [r0] movs r2, 0x80 lsls r2, 1 adds r1, r2, 0 ands r0, r1 cmp r0, 0 beq _0801101E movs r0, 0x1 ands r0, r5 cmp r0, 0 beq _08011062 _0801101E: mov r3, r9 ldr r4, [r3] adds r0, r4, r6 ldr r1, _080110AC lsls r3, r5, 2 adds r3, r1 movs r7, 0 ldrsh r1, [r3, r7] ldr r7, _08011090 adds r2, r4, r7 movs r7, 0 ldrsh r2, [r2, r7] adds r1, r2 mov r7, r8 lsls r2, r7, 16 asrs r2, 16 subs r1, r2 movs r7, 0x2 ldrsh r2, [r3, r7] ldr r3, _08011094 adds r3, r4 movs r4, 0 ldrsh r3, [r3, r4] adds r2, r3 mov r7, r8 asrs r3, r7, 16 subs r2, r3 movs r3, 0 str r3, [sp] add r3, sp, 0x8 str r3, [sp, 0x4] movs r3, 0x2 bl sub_800558C _08011062: adds r6, 0x3C ldr r4, [sp, 0x14] adds r4, 0x3C str r4, [sp, 0x14] adds r5, 0x1 cmp r5, 0x7 ble _08010FEC add sp, 0x18 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08011080: .4byte 0x0000f3ff _08011084: .4byte gUnknown_203B0E4 _08011088: .4byte 0x00004dd4 _0801108C: .4byte 0x00004c10 _08011090: .4byte 0x00004dd8 _08011094: .4byte 0x00004dda _08011098: .4byte 0x00004dd0 _0801109C: .4byte 0x00004018 _080110A0: .4byte 0x00004014 _080110A4: .4byte 0x00004a30 _080110A8: .4byte gUnknown_20255F0 _080110AC: .4byte gUnknown_80D40C4 thumb_func_end sub_8010F28 thumb_func_start sub_80110B0 sub_80110B0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 ldr r0, _08011150 ldr r1, [r0] ldr r2, _08011154 adds r1, r2 ldrh r1, [r1] lsls r1, 16 asrs r6, r1, 19 adds r2, r6, 0 movs r3, 0 mov r10, r0 movs r0, 0x1F mov r9, r0 _080110D4: mov r1, r10 ldr r0, [r1] ldr r1, _08011158 adds r0, r1 ldrh r0, [r0] lsls r0, 16 asrs r4, r0, 19 lsls r1, r2, 7 adds r2, 0x1 mov r12, r2 adds r3, 0x1 mov r8, r3 movs r7, 0x1E lsls r0, r4, 1 adds r5, r0, r1 _080110F2: mov r2, r9 ands r4, r2 ands r6, r2 lsls r2, r4, 1 lsls r0, r6, 6 adds r2, r0 ldr r3, _0801115C adds r3, r2, r3 str r3, [sp] mov r0, r10 ldr r1, [r0] ldr r3, _08011160 adds r0, r1, r3 adds r0, r5 ldrh r0, [r0] ldr r3, [sp] strh r0, [r3] ldr r0, _08011164 adds r2, r0 adds r1, 0x14 adds r1, r5 ldrh r0, [r1] strh r0, [r2] adds r5, 0x2 adds r4, 0x1 subs r7, 0x1 cmp r7, 0 bge _080110F2 mov r2, r12 adds r6, 0x1 mov r3, r8 cmp r3, 0x14 ble _080110D4 movs r0, 0x2 bl sub_80098F8 movs r0, 0x3 bl sub_80098F8 add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08011150: .4byte gUnknown_203B0E4 _08011154: .4byte 0x00004dd6 _08011158: .4byte 0x00004dd4 _0801115C: .4byte gUnknown_202C038 _08011160: .4byte 0x00002014 _08011164: .4byte gUnknown_202C838 thumb_func_end sub_80110B0 thumb_func_start sub_8011168 sub_8011168: push {r4,r5,lr} movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r3, _080111B0 ldr r1, [r3] ldr r2, _080111B4 adds r0, r1, r2 movs r2, 0 str r2, [r0] ldr r4, _080111B8 adds r0, r1, r4 str r2, [r0] adds r4, 0x4 adds r0, r1, r4 str r2, [r0] ldr r0, _080111BC adds r1, r0 str r2, [r1] adds r5, r3, 0 ldr r4, _080111C0 movs r3, 0 movs r1, 0x7 _0801119A: ldr r0, [r5] adds r0, r2, r0 adds r0, r4 strh r3, [r0] adds r2, 0x3C subs r1, 0x1 cmp r1, 0 bge _0801119A pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080111B0: .4byte gUnknown_203B0E4 _080111B4: .4byte 0x00004ddc _080111B8: .4byte 0x00004de0 _080111BC: .4byte 0x00004de8 _080111C0: .4byte 0x00004a30 thumb_func_end sub_8011168 thumb_func_start sub_80111C4 sub_80111C4: push {r4-r6,lr} movs r3, 0 ldr r6, _08011238 ldr r0, [r6] ldr r2, _0801123C adds r1, r0, r2 ldr r2, [r1] cmp r2, 0x1E bgt _0801122E ldr r0, [r0] ldr r5, [r0, 0x4] adds r0, r2, 0x1 str r0, [r1] cmp r0, 0x1E ble _080111E6 movs r0, 0x1F str r0, [r1] _080111E6: movs r4, 0 _080111E8: ldr r0, [r6] ldr r1, _0801123C adds r0, r1 ldr r2, [r0] adds r0, r4, 0 adds r1, r5, 0 movs r3, 0 bl SetBGPaletteBufferColorRGB adds r5, 0x4 adds r4, 0x1 cmp r4, 0xDF ble _080111E8 ldr r0, _08011238 ldr r0, [r0] ldr r0, [r0, 0x4] ldr r5, [r0, 0x4] movs r4, 0 _0801120C: movs r2, 0x80 lsls r2, 1 adds r0, r4, r2 ldr r1, _08011238 ldr r1, [r1] ldr r2, _0801123C adds r1, r2 ldr r2, [r1] adds r1, r5, 0 movs r3, 0 bl SetBGPaletteBufferColorRGB adds r5, 0x4 adds r4, 0x1 cmp r4, 0xEF ble _0801120C movs r3, 0x1 _0801122E: adds r0, r3, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08011238: .4byte gUnknown_203B0E4 _0801123C: .4byte 0x00004dcc thumb_func_end sub_80111C4 thumb_func_start sub_8011240 sub_8011240: push {r4-r6,lr} ldr r2, _08011264 ldr r0, [r2] ldr r1, _08011268 adds r3, r0, r1 movs r4, 0 ldrsh r1, [r3, r4] ldr r5, _0801126C adds r4, r0, r5 movs r6, 0 ldrsh r0, [r4, r6] subs r1, r0 adds r5, r2, 0 cmp r1, 0x2F bgt _08011270 ldrh r0, [r3] subs r0, 0x30 b _08011278 .align 2, 0 _08011264: .4byte gUnknown_203B0E4 _08011268: .4byte 0x00004dd8 _0801126C: .4byte 0x00004dd4 _08011270: cmp r1, 0xC0 ble _0801127A ldrh r0, [r3] subs r0, 0xC0 _08011278: strh r0, [r4] _0801127A: ldr r0, [r5] ldr r1, _08011298 adds r3, r0, r1 movs r2, 0 ldrsh r1, [r3, r2] ldr r4, _0801129C adds r2, r0, r4 movs r6, 0 ldrsh r0, [r2, r6] subs r1, r0 cmp r1, 0x2F bgt _080112A0 ldrh r0, [r3] subs r0, 0x30 b _080112A8 .align 2, 0 _08011298: .4byte 0x00004dda _0801129C: .4byte 0x00004dd6 _080112A0: cmp r1, 0x70 ble _080112AA ldrh r0, [r3] subs r0, 0x70 _080112A8: strh r0, [r2] _080112AA: adds r3, r5, 0 ldr r0, [r3] ldr r4, _080112F8 adds r1, r0, r4 movs r2, 0 ldrsh r0, [r1, r2] cmp r0, 0 bge _080112BE movs r0, 0 strh r0, [r1] _080112BE: ldr r0, [r3] ldr r2, _080112FC adds r1, r0, r2 movs r6, 0 ldrsh r0, [r1, r6] cmp r0, 0 bge _080112D0 movs r0, 0 strh r0, [r1] _080112D0: ldr r0, [r3] adds r1, r0, r4 movs r3, 0 ldrsh r0, [r1, r3] cmp r0, 0xEF ble _080112E0 movs r0, 0xEF strh r0, [r1] _080112E0: ldr r0, [r5] adds r2, r0, r2 movs r4, 0 ldrsh r0, [r2, r4] cmp r0, 0x97 ble _080112F0 movs r0, 0x97 strh r0, [r2] _080112F0: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080112F8: .4byte 0x00004dd4 _080112FC: .4byte 0x00004dd6 thumb_func_end sub_8011240 thumb_func_start sub_8011300 sub_8011300: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0xC ldr r0, _08011388 ldr r2, [r0] ldr r1, _0801138C adds r0, r2, r1 ldr r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 4 ldr r3, _08011390 adds r0, r3 adds r2, r0 mov r9, r2 movs r4, 0 ldr r0, _08011394 mov r8, r0 movs r7, 0 mov r6, r8 movs r5, 0 _0801132E: ldr r0, _08011388 ldr r2, [r0] adds r0, r5, r2 add r0, r8 strh r7, [r0] lsls r1, r4, 1 mov r0, r9 adds r0, 0x2 adds r1, r0, r1 movs r3, 0 ldrsh r0, [r1, r3] cmp r0, 0 blt _08011370 lsls r1, r0, 2 adds r1, r0 lsls r1, 4 ldr r0, _08011390 adds r1, r0 adds r1, r2, r1 ldrb r0, [r1] cmp r0, 0 beq _08011370 adds r0, r2, r6 ldr r1, [r2, 0x8] adds r2, r4, 0x4 movs r3, 0x40 str r3, [sp] str r7, [sp, 0x4] movs r3, 0x1 str r3, [sp, 0x8] movs r3, 0 bl sub_80053AC _08011370: adds r6, 0x3C adds r5, 0x3C adds r4, 0x1 cmp r4, 0x7 ble _0801132E add sp, 0xC pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08011388: .4byte gUnknown_203B0E4 _0801138C: .4byte 0x00004a18 _08011390: .4byte 0x00004018 _08011394: .4byte 0x00004a30 thumb_func_end sub_8011300 thumb_func_start sub_8011398 sub_8011398: push {r4-r6,lr} sub sp, 0x12C ldr r5, _080113F4 ldr r0, [r5] ldr r2, _080113F8 adds r1, r0, r2 ldr r1, [r1] ldr r3, _080113FC adds r0, r3 lsls r1, 5 ldr r0, [r0] adds r6, r0, r1 add r4, sp, 0xCC adds r0, r4, 0 movs r1, 0 movs r2, 0x60 bl memset movs r2, 0x3 str r2, [r4, 0x4] movs r0, 0x7 strh r0, [r4, 0x8] movs r1, 0x2 strh r1, [r4, 0xA] movs r0, 0x15 strh r0, [r4, 0xC] strh r1, [r4, 0xE] strh r1, [r4, 0x10] str r2, [r4, 0x1C] str r2, [r4, 0x34] str r2, [r4, 0x4C] ldr r0, [r5] ldr r2, _08011400 adds r1, r0, r2 movs r3, 0 ldrsh r1, [r1, r3] subs r2, 0x4 adds r0, r2 movs r3, 0 ldrsh r0, [r0, r3] subs r1, r0 cmp r1, 0x50 bgt _08011404 movs r0, 0x11 b _08011406 .align 2, 0 _080113F4: .4byte gUnknown_203B0E4 _080113F8: .4byte 0x00004a18 _080113FC: .4byte 0x00004014 _08011400: .4byte 0x00004dda _08011404: movs r0, 0x1 _08011406: strh r0, [r4, 0xA] adds r0, r4, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0 bl sub_80073B8 ldr r1, _0801147C ldr r2, [r6] add r0, sp, 0x4 bl sub_800D158 movs r0, 0 str r0, [sp] movs r0, 0xC movs r1, 0x2 add r2, sp, 0x4 movs r3, 0 bl sub_8014FF0 movs r0, 0 bl sub_80073E0 ldr r0, _08011480 ldr r1, [r0] ldr r0, _08011484 adds r2, r1, r0 movs r3, 0x8 ldrsh r0, [r4, r3] lsls r0, 3 subs r0, 0x5 str r0, [r2] ldr r0, _08011488 adds r2, r1, r0 movs r3, 0xA ldrsh r0, [r4, r3] lsls r0, 3 adds r0, 0x5 str r0, [r2] ldr r0, _0801148C adds r2, r1, r0 movs r3, 0xC ldrsh r0, [r4, r3] lsls r0, 3 adds r0, 0xA str r0, [r2] ldr r0, _08011490 adds r1, r0 movs r2, 0xE ldrsh r0, [r4, r2] lsls r0, 3 adds r0, 0xA str r0, [r1] add sp, 0x12C pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0801147C: .4byte gUnknown_80D40FC _08011480: .4byte gUnknown_203B0E4 _08011484: .4byte 0x00004ddc _08011488: .4byte 0x00004de0 _0801148C: .4byte 0x00004de4 _08011490: .4byte 0x00004de8 thumb_func_end sub_8011398 thumb_func_start sub_8011494 sub_8011494: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC8 ldr r0, _08011610 ldr r2, [r0] ldr r1, _08011614 adds r0, r2, r1 ldr r0, [r0] ldr r3, _08011618 adds r1, r2, r3 lsls r0, 5 ldr r1, [r1] adds r1, r0 mov r8, r1 ldr r0, _0801161C adds r7, r2, r0 add r4, sp, 0x64 adds r0, r4, 0 movs r1, 0 movs r2, 0x60 bl memset movs r0, 0x6 str r0, [sp, 0x68] add r1, sp, 0x6C movs r0, 0x7 strh r0, [r1] movs r2, 0x2 strh r2, [r1, 0x2] add r1, sp, 0x70 movs r0, 0x15 strh r0, [r1] mov r0, sp adds r0, 0x72 strh r2, [r0] add r0, sp, 0x74 strh r2, [r0] add r5, sp, 0xC4 str r5, [sp, 0x78] movs r1, 0x3 str r1, [sp, 0x80] add r0, sp, 0x94 str r1, [r0, 0x4] add r0, sp, 0xAC str r1, [r0, 0x4] add r0, sp, 0x4 adds r1, r4, 0 movs r2, 0x60 bl memcpy movs r1, 0 mov r9, r1 movs r6, 0 mov r10, r5 _08011506: mov r0, r8 adds r0, 0x8 adds r4, r0, r6 ldrb r0, [r4] bl sub_800FFE8 lsls r0, 24 cmp r0, 0 beq _0801152A ldr r0, _08011610 ldr r0, [r0] ldr r2, _08011620 adds r0, r2 add r0, r9 ldrb r1, [r4] strb r1, [r0] movs r3, 0x1 add r9, r3 _0801152A: adds r6, 0x1 cmp r6, 0x7 ble _08011506 ldr r5, _08011610 ldr r0, [r5] ldr r1, _08011624 adds r0, r1 mov r2, r9 str r2, [r0] movs r4, 0 movs r0, 0x1 mov r3, r10 strb r0, [r3] add r0, sp, 0xC4 strb r4, [r0, 0x1] movs r1, 0x12 strb r1, [r0, 0x2] strb r4, [r0, 0x3] strh r4, [r7, 0x18] strh r2, [r7, 0x1A] mov r0, r9 strh r0, [r7, 0x1C] strh r4, [r7, 0x1E] strh r4, [r7, 0x20] strh r4, [r7, 0x4] movs r0, 0x10 strh r0, [r7, 0x6] str r4, [r7] strh r4, [r7, 0xC] strh r4, [r7, 0xE] strh r4, [r7, 0x14] strh r4, [r7, 0x16] movs r0, 0x8 strh r0, [r7, 0x8] strh r0, [r7, 0xA] adds r0, r7, 0 adds r0, 0x28 bl sub_801317C movs r1, 0x1C ldrsh r0, [r7, r1] movs r1, 0 bl sub_80095E4 adds r1, r0, 0 add r3, sp, 0x4 adds r2, r3, 0 adds r0, r1, 0x2 strh r0, [r2, 0xE] strh r0, [r3, 0x10] lsls r1, 3 adds r0, r7, 0 bl sub_80137B0 add r0, sp, 0x4 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r1, [r5] ldr r2, _08011628 adds r0, r1, r2 str r4, [r0] ldr r3, _0801162C adds r0, r1, r3 str r4, [r0] adds r2, 0x8 adds r0, r1, r2 str r4, [r0] adds r3, 0x8 adds r1, r3 str r4, [r1] movs r0, 0 bl sub_80073B8 ldr r2, _08011630 str r4, [sp] movs r0, 0x10 movs r1, 0 movs r3, 0 bl sub_8014FF0 movs r6, 0 cmp r6, r9 bge _08011678 add r0, sp, 0x64 mov r8, r0 ldr r1, _08011634 mov r10, r1 _080115DC: adds r0, r7, 0 adds r1, r6, 0 bl sub_8013800 adds r4, r0, 0 ldr r2, _08011610 ldr r0, [r2] ldr r3, _08011620 adds r0, r3 adds r0, r6 ldrb r5, [r0] ldr r0, _08011638 adds r1, r5, 0 bl sub_80101F8 cmp r5, 0 bne _08011640 str r5, [sp] movs r0, 0xC adds r1, r4, 0 ldr r2, _0801163C movs r3, 0 bl sub_8014FF0 b _08011672 .align 2, 0 _08011610: .4byte gUnknown_203B0E4 _08011614: .4byte 0x00004a18 _08011618: .4byte 0x00004014 _0801161C: .4byte 0x00004dfc _08011620: .4byte 0x00004dec _08011624: .4byte 0x00004df8 _08011628: .4byte 0x00004ddc _0801162C: .4byte 0x00004de0 _08011630: .4byte gUnknown_80D4104 _08011634: .4byte gUnknown_202DE30 _08011638: .4byte gUnknown_202DE58 _0801163C: .4byte gUnknown_80D4120 _08011640: ldr r1, _08011690 ldr r0, [r1] ldr r2, _08011694 adds r0, r2 ldrb r2, [r0] adds r0, r5, 0 mov r1, r8 bl sub_80926F8 mov r3, r8 movs r1, 0x2 ldrsh r0, [r3, r1] mov r2, r10 str r0, [r2] movs r1, 0 ldrsh r0, [r3, r1] str r0, [r2, 0x4] movs r0, 0 str r0, [sp] movs r0, 0xC adds r1, r4, 0 ldr r2, _08011698 movs r3, 0 bl sub_8014FF0 _08011672: adds r6, 0x1 cmp r6, r9 blt _080115DC _08011678: movs r0, 0 bl sub_80073E0 add sp, 0xC8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08011690: .4byte gUnknown_203B0E4 _08011694: .4byte 0x00004a2c _08011698: .4byte gUnknown_80D4124 thumb_func_end sub_8011494 thumb_func_start sub_801169C sub_801169C: push {r4-r6,lr} sub sp, 0x8 ldr r5, _08011744 ldr r1, [r5] ldr r4, _08011748 adds r0, r1, r4 movs r2, 0 ldrsh r0, [r0, r2] ldr r6, _0801174C adds r1, r6 movs r3, 0 ldrsh r1, [r1, r3] bl sub_800CCA0 ldr r1, [r5] adds r4, r1, r4 movs r2, 0 ldrsh r0, [r4, r2] adds r1, r6 movs r3, 0 ldrsh r1, [r1, r3] bl sub_800CCAC bl sub_8010F28 bl sub_80111C4 lsls r0, 24 lsrs r0, 24 ldr r2, [r5] ldr r3, _08011750 adds r1, r2, r3 ldr r3, _08011754 adds r2, r3 ldr r2, [r2] str r2, [sp] movs r2, 0 str r2, [sp, 0x4] movs r2, 0xB0 movs r3, 0x10 bl sub_8004AF0 movs r0, 0 movs r1, 0 bl sub_8005838 ldr r0, _08011758 ldr r0, [r0] ldrb r0, [r0, 0xA] bl nullsub_8 bl sub_8005180 bl sub_80060EC ldr r0, _0801175C ldr r0, [r0] bl sub_8094FB4 bl sub_800CB20 bl sub_800485C bl CopySpritesToOam bl sub_8005304 bl TransferBGPaletteBuffer bl xxx_call_update_bg_vram bl sub_8009908 bl xxx_call_update_bg_sound_input bl sub_8011860 movs r0, 0 bl sub_8004D8C add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08011744: .4byte gUnknown_203B0E4 _08011748: .4byte 0x00004dd4 _0801174C: .4byte 0x00004dd6 _08011750: .4byte 0x00004c4c _08011754: .4byte 0x00004dcc _08011758: .4byte gUnknown_203B46C _0801175C: .4byte gUnknown_203B47C thumb_func_end sub_801169C thumb_func_start sub_8011760 sub_8011760: push {lr} movs r0, 0xD bl sub_80023E4 lsls r0, 24 cmp r0, 0 beq _08011776 movs r0, 0x13 bl sub_800BDFC b _08011788 _08011776: movs r0, 0xC bl sub_80023E4 lsls r0, 24 cmp r0, 0 beq _08011788 movs r0, 0x7 bl sub_800BDFC _08011788: pop {r0} bx r0 thumb_func_end sub_8011760 thumb_func_start sub_801178C sub_801178C: push {lr} movs r0, 0xD bl sub_80023E4 lsls r0, 24 cmp r0, 0 beq _080117A2 movs r0, 0x13 bl sub_800BDFC b _080117A8 _080117A2: movs r0, 0x7 bl sub_800BDFC _080117A8: pop {r0} bx r0 thumb_func_end sub_801178C thumb_func_start sub_80117AC sub_80117AC: push {lr} movs r0, 0xD bl sub_80023E4 lsls r0, 24 cmp r0, 0 bne _080117C0 movs r0, 0x1E bl sub_800BFD0 _080117C0: pop {r0} bx r0 thumb_func_end sub_80117AC thumb_func_start sub_80117C4 sub_80117C4: push {lr} movs r0, 0x1E bl sub_800BFD0 pop {r0} bx r0 thumb_func_end sub_80117C4 thumb_func_start sub_80117D0 sub_80117D0: push {lr} movs r0, 0x97 lsls r0, 1 movs r1, 0x80 lsls r1, 1 bl sub_800C074 pop {r0} bx r0 thumb_func_end sub_80117D0 thumb_func_start sub_80117E4 sub_80117E4: push {lr} ldr r0, _080117F4 movs r1, 0x80 lsls r1, 1 bl sub_800C074 pop {r0} bx r0 .align 2, 0 _080117F4: .4byte 0x0000012f thumb_func_end sub_80117E4 thumb_func_start sub_80117F8 sub_80117F8: push {lr} ldr r0, _08011808 movs r1, 0x80 lsls r1, 1 bl sub_800C074 pop {r0} bx r0 .align 2, 0 _08011808: .4byte 0x0000012d thumb_func_end sub_80117F8 thumb_func_start sub_801180C sub_801180C: ldr r0, _08011820 movs r1, 0 str r1, [r0] ldr r0, _08011824 strh r1, [r0] ldr r0, _08011828 strh r1, [r0] ldr r0, _0801182C strh r1, [r0] bx lr .align 2, 0 _08011820: .4byte gUnknown_202DE1C _08011824: .4byte gUnknown_202DE20 _08011828: .4byte gUnknown_202DE22 _0801182C: .4byte gUnknown_202DE24 thumb_func_end sub_801180C thumb_func_start sub_8011830 sub_8011830: push {lr} bl sub_800C93C ldr r0, _08011848 movs r1, 0 strh r1, [r0] ldr r0, _0801184C strh r1, [r0] ldr r0, _08011850 strh r1, [r0] pop {r0} bx r0 .align 2, 0 _08011848: .4byte gUnknown_202DE20 _0801184C: .4byte gUnknown_202DE22 _08011850: .4byte gUnknown_202DE24 thumb_func_end sub_8011830 thumb_func_start sub_8011854 sub_8011854: push {lr} bl sub_800C9CC pop {r0} bx r0 thumb_func_end sub_8011854 thumb_func_start sub_8011860 sub_8011860: push {lr} ldr r1, _08011898 ldrh r2, [r1] movs r3, 0 ldrsh r0, [r1, r3] cmp r0, 0 ble _08011872 subs r0, r2, 0x1 strh r0, [r1] _08011872: ldr r1, _0801189C ldrh r2, [r1] movs r3, 0 ldrsh r0, [r1, r3] cmp r0, 0 ble _08011882 subs r0, r2, 0x1 strh r0, [r1] _08011882: ldr r1, _080118A0 ldrh r2, [r1] movs r3, 0 ldrsh r0, [r1, r3] cmp r0, 0 ble _08011892 subs r0, r2, 0x1 strh r0, [r1] _08011892: pop {r0} bx r0 .align 2, 0 _08011898: .4byte gUnknown_202DE20 _0801189C: .4byte gUnknown_202DE22 _080118A0: .4byte gUnknown_202DE24 thumb_func_end sub_8011860 thumb_func_start sub_80118A4 sub_80118A4: push {lr} bl sub_8011924 ldr r0, _080118BC bl sub_801199C ldr r0, _080118C0 bl sub_801199C pop {r0} bx r0 .align 2, 0 _080118BC: .4byte 0x000003e6 _080118C0: .4byte 0x000003e5 thumb_func_end sub_80118A4 thumb_func_start sub_80118C4 sub_80118C4: push {r4,lr} adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r4, 0 bl sub_800BFD0 ldr r0, _080118E8 adds r1, r4, 0 bl sub_800C3F8 ldr r0, _080118EC adds r1, r4, 0 bl sub_800C3F8 pop {r4} pop {r0} bx r0 .align 2, 0 _080118E8: .4byte 0x000003e6 _080118EC: .4byte 0x000003e5 thumb_func_end sub_80118C4 thumb_func_start sub_80118F0 sub_80118F0: push {lr} lsls r0, 16 lsrs r0, 16 bl sub_800BDFC pop {r0} bx r0 thumb_func_end sub_80118F0 thumb_func_start sub_8011900 sub_8011900: push {lr} lsls r0, 16 lsrs r0, 16 lsls r1, 16 lsrs r1, 16 bl sub_800BE8C pop {r0} bx r0 thumb_func_end sub_8011900 thumb_func_start sub_8011914 sub_8011914: push {lr} lsls r0, 16 lsrs r0, 16 bl sub_800BF48 pop {r0} bx r0 thumb_func_end sub_8011914 thumb_func_start sub_8011924 sub_8011924: push {lr} bl sub_800BF80 pop {r0} bx r0 thumb_func_end sub_8011924 thumb_func_start sub_8011930 sub_8011930: push {lr} lsls r0, 16 lsrs r0, 16 bl sub_800BFD0 pop {r0} bx r0 thumb_func_end sub_8011930 thumb_func_start sub_8011940 sub_8011940: push {r4,lr} lsls r0, 16 lsrs r4, r0, 16 bl sub_800C068 lsls r0, 16 lsrs r1, r0, 16 ldr r0, _08011960 cmp r4, r0 bne _08011964 eors r1, r4 negs r0, r1 orrs r0, r1 lsrs r0, 31 b _0801196C .align 2, 0 _08011960: .4byte 0x000003e7 _08011964: movs r0, 0 cmp r1, r4 bne _0801196C movs r0, 0x1 _0801196C: pop {r4} pop {r1} bx r1 thumb_func_end sub_8011940 thumb_func_start sub_8011974 sub_8011974: push {lr} lsls r0, 16 lsrs r0, 16 lsls r1, 16 lsrs r1, 16 bl sub_800C074 pop {r0} bx r0 thumb_func_end sub_8011974 thumb_func_start sub_8011988 sub_8011988: push {lr} lsls r0, 16 lsrs r0, 16 movs r1, 0x80 lsls r1, 1 bl sub_800C074 pop {r0} bx r0 thumb_func_end sub_8011988 thumb_func_start sub_801199C sub_801199C: push {lr} lsls r0, 16 lsrs r0, 16 bl sub_800C298 pop {r0} bx r0 thumb_func_end sub_801199C thumb_func_start sub_80119AC sub_80119AC: push {lr} lsls r0, 16 lsrs r0, 16 lsls r1, 16 lsrs r1, 16 bl sub_800C3F8 pop {r0} bx r0 thumb_func_end sub_80119AC thumb_func_start sub_80119C0 sub_80119C0: push {lr} lsls r0, 16 lsrs r0, 16 bl sub_800C5D0 lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end sub_80119C0 thumb_func_start sub_80119D4 sub_80119D4: push {r4,lr} adds r2, r0, 0 ldr r4, _080119FC movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0 bgt _080119F6 ldr r1, _08011A00 lsls r0, r2, 1 adds r0, r1 ldrh r0, [r0] movs r1, 0x80 lsls r1, 1 bl sub_800C074 movs r0, 0x4 strh r0, [r4] _080119F6: pop {r4} pop {r0} bx r0 .align 2, 0 _080119FC: .4byte gUnknown_202DE20 _08011A00: .4byte gUnknown_80D4144 thumb_func_end sub_80119D4 thumb_func_start sub_8011A04 sub_8011A04: push {lr} ldr r1, _08011A24 movs r2, 0 ldrsh r0, [r1, r2] cmp r0, 0 bgt _08011A1E movs r0, 0x3 strh r0, [r1] ldr r0, _08011A28 movs r1, 0x80 lsls r1, 1 bl sub_800C074 _08011A1E: pop {r0} bx r0 .align 2, 0 _08011A24: .4byte gUnknown_202DE22 _08011A28: .4byte 0x00000131 thumb_func_end sub_8011A04 thumb_func_start sub_8011A2C sub_8011A2C: ldr r1, _08011A34 str r0, [r1] bx lr .align 2, 0 _08011A34: .4byte gUnknown_202DE1C thumb_func_end sub_8011A2C thumb_func_start NDS_DebugInit NDS_DebugInit: push {lr} bl nullsub_26 bl nullsub_27 bl nullsub_29 bl nullsub_30 bl nullsub_31 bl nullsub_32 bl nullsub_28 ldr r1, _08011A60 movs r0, 0x1 str r0, [r1] pop {r0} bx r0 .align 2, 0 _08011A60: .4byte gUnknown_203B14C thumb_func_end NDS_DebugInit thumb_func_start nullsub_25 nullsub_25: bx lr thumb_func_end nullsub_25 thumb_func_start nullsub_26 nullsub_26: bx lr thumb_func_end nullsub_26 thumb_func_start PrintFuncFileLineOrNotEntry PrintFuncFileLineOrNotEntry: push {r4,lr} sub sp, 0x4 adds r4, r0, 0 adds r0, r1, 0 cmp r0, 0 beq _08011A90 ldr r1, _08011A8C ldr r2, [r0, 0x8] ldr r3, [r0] ldr r0, [r0, 0x4] str r0, [sp] adds r0, r4, 0 bl sprintf b _08011A98 .align 2, 0 _08011A8C: .4byte gUnknown_80D418C _08011A90: ldr r1, _08011AA0 adds r0, r4, 0 bl sprintf _08011A98: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08011AA0: .4byte gUnknown_80D41B0 thumb_func_end PrintFuncFileLineOrNotEntry thumb_func_start PrintFuncFileLine PrintFuncFileLine: push {r4,r5,lr} sub sp, 0x8 ldr r5, _08011AC4 ldr r3, [r1, 0x8] ldr r4, [r1] str r4, [sp] ldr r1, [r1, 0x4] str r1, [sp, 0x4] adds r1, r5, 0 bl sprintf add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08011AC4: .4byte gUnknown_80D41C4 thumb_func_end PrintFuncFileLine thumb_func_start PrintMessageWithFuncFileLine PrintMessageWithFuncFileLine: push {r2,r3} push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 ldr r1, [sp, 0x10] add r2, sp, 0x14 bl vsprintf adds r0, r4, 0 bl strlen adds r4, r0 ldr r1, _08011AFC ldr r2, [r5, 0x8] ldr r3, [r5] ldr r0, [r5, 0x4] str r0, [sp] adds r0, r4, 0 bl sprintf add sp, 0x4 pop {r4,r5} pop {r3} add sp, 0x8 bx r3 .align 2, 0 _08011AFC: .4byte gUnknown_80D41EC thumb_func_end PrintMessageWithFuncFileLine thumb_func_start nullsub_199 nullsub_199: bx lr thumb_func_end nullsub_199 thumb_func_start nullsub_27 nullsub_27: bx lr thumb_func_end nullsub_27 thumb_func_start sub_8011B08 sub_8011B08: ldr r1, _08011B10 movs r0, 0x1 strb r0, [r1] bx lr .align 2, 0 _08011B10: .4byte gUnknown_203B150 thumb_func_end sub_8011B08 thumb_func_start sub_8011B14 sub_8011B14: ldr r1, _08011B1C movs r0, 0 strb r0, [r1] bx lr .align 2, 0 _08011B1C: .4byte gUnknown_203B150 thumb_func_end sub_8011B14 thumb_func_start sub_8011B20 sub_8011B20: push {lr} ldr r1, _08011B38 movs r2, 0 ldrb r0, [r1] cmp r0, 0 bne _08011B2E movs r2, 0x1 _08011B2E: strb r2, [r1] ldrb r0, [r1] pop {r1} bx r1 .align 2, 0 _08011B38: .4byte gUnknown_203B150 thumb_func_end sub_8011B20 thumb_func_start sub_8011B3C sub_8011B3C: ldr r0, _08011B44 ldrb r0, [r0] bx lr .align 2, 0 _08011B44: .4byte gUnknown_203B150 thumb_func_end sub_8011B3C thumb_func_start nullsub_137 nullsub_137: bx lr thumb_func_end nullsub_137 thumb_func_start FatalErrorPrintFuncFileLine FatalErrorPrintFuncFileLine: push {lr} sub sp, 0x100 adds r2, r0, 0 cmp r2, 0 beq _08011B5E mov r0, sp bl PrintFuncFileLine b _08011B66 _08011B5E: ldr r2, _08011B6C mov r0, sp bl PrintFuncFileLine _08011B66: add sp, 0x100 pop {r0} bx r0 .align 2, 0 _08011B6C: .4byte gUnknown_80D421C thumb_func_end FatalErrorPrintFuncFileLine thumb_func_start FatalErrorFormatMessage FatalErrorFormatMessage: push {r0-r3} push {lr} sub sp, 0x100 ldr r1, [sp, 0x104] add r2, sp, 0x108 mov r0, sp bl vsprintf add sp, 0x100 pop {r3} add sp, 0x10 bx r3 thumb_func_end FatalErrorFormatMessage thumb_func_start sub_8011B88 sub_8011B88: push {r0-r3} push {lr} sub sp, 0x100 ldr r1, [sp, 0x104] add r2, sp, 0x108 mov r0, sp bl vsprintf add sp, 0x100 pop {r3} add sp, 0x10 bx r3 thumb_func_end sub_8011B88 thumb_func_start nullsub_28 nullsub_28: bx lr thumb_func_end nullsub_28 thumb_func_start sub_8011BA4 sub_8011BA4: movs r0, 0 bx lr thumb_func_end sub_8011BA4 thumb_func_start sub_8011BA8 sub_8011BA8: movs r0, 0 bx lr thumb_func_end sub_8011BA8 thumb_func_start sub_8011BAC sub_8011BAC: ldr r0, _08011BB0 bx lr .align 2, 0 _08011BB0: .4byte gUnknown_80D4288 thumb_func_end sub_8011BAC thumb_func_start sub_8011BB4 sub_8011BB4: push {lr} bl Hang pop {r0} bx r0 thumb_func_end sub_8011BB4 thumb_func_start Log Log: push {r1-r3} add sp, 0xC bx lr thumb_func_end Log thumb_func_start sub_8011BC8 sub_8011BC8: push {r2,r3} add sp, 0x8 bx lr thumb_func_end sub_8011BC8 thumb_func_start nullsub_29 nullsub_29: bx lr thumb_func_end nullsub_29 thumb_func_start nullsub_30 nullsub_30: bx lr thumb_func_end nullsub_30 thumb_func_start nullsub_31 nullsub_31: bx lr thumb_func_end nullsub_31 thumb_func_start nullsub_32 nullsub_32: bx lr thumb_func_end nullsub_32 thumb_func_start FatalErrorHang FatalErrorHang: push {lr} bl Hang pop {r0} bx r0 thumb_func_end FatalErrorHang thumb_func_start FatalError FatalError: push {r1-r3} push {r4,lr} sub sp, 0x100 adds r1, r0, 0 ldr r4, [sp, 0x108] ldr r0, _08011C14 bl FatalErrorPrintFuncFileLine add r2, sp, 0x10C mov r0, sp adds r1, r4, 0 bl vsprintf ldr r0, _08011C18 mov r1, sp bl FatalErrorFormatMessage bl FatalErrorHang .align 2, 0 _08011C14: .4byte gUnknown_80D42C0 _08011C18: .4byte gUnknown_80D42D4 thumb_func_end FatalError thumb_func_start sub_8011C1C sub_8011C1C: ldr r0, _08011C24 ldr r0, [r0] bx lr .align 2, 0 _08011C24: .4byte gUnknown_203B17C thumb_func_end sub_8011C1C thumb_func_start sub_8011C28 sub_8011C28: ldr r1, _08011C30 str r0, [r1] bx lr .align 2, 0 _08011C30: .4byte gUnknown_203B17C thumb_func_end sub_8011C28 thumb_func_start sub_8011C34 sub_8011C34: ldr r0, _08011C3C ldr r0, [r0] bx lr .align 2, 0 _08011C3C: .4byte gUnknown_202DE28 thumb_func_end sub_8011C34 thumb_func_start sub_8011C40 sub_8011C40: ldr r1, _08011C48 str r0, [r1] bx lr .align 2, 0 _08011C48: .4byte gUnknown_202DE28 thumb_func_end sub_8011C40 thumb_func_start sub_8011C4C sub_8011C4C: ldr r0, _08011C54 ldr r0, [r0] bx lr .align 2, 0 _08011C54: .4byte gUnknown_203B180 thumb_func_end sub_8011C4C thumb_func_start sub_8011C58 sub_8011C58: push {r4,lr} adds r4, r0, 0 movs r2, 0 lsrs r1, 2 cmp r1, 0x1 ble _08011C72 adds r3, r4, 0x4 subs r1, 0x1 _08011C68: ldm r3!, {r0} adds r2, r0 subs r1, 0x1 cmp r1, 0 bne _08011C68 _08011C72: str r2, [r4] pop {r4} pop {r0} bx r0 thumb_func_end sub_8011C58 thumb_func_start sub_8011C7C sub_8011C7C: push {r4,lr} adds r4, r0, 0 movs r2, 0 lsrs r1, 2 cmp r1, 0x1 ble _08011C96 adds r3, r4, 0x4 subs r1, 0x1 _08011C8C: ldm r3!, {r0} adds r2, r0 subs r1, 0x1 cmp r1, 0 bne _08011C8C _08011C96: ldr r0, [r4] cmp r0, r2 bne _08011CA0 movs r0, 0 b _08011CA2 _08011CA0: movs r0, 0x1 _08011CA2: pop {r4} pop {r1} bx r1 thumb_func_end sub_8011C7C thumb_func_start sub_8011CA8 sub_8011CA8: push {lr} adds r3, r0, 0 adds r2, r1, 0 ldr r0, _08011CCC ldr r0, [r0] ldr r0, _08011CD0 adds r1, r2, r0 cmp r1, 0 bge _08011CBE ldr r0, _08011CD4 adds r1, r2, r0 _08011CBE: asrs r1, 12 ldr r0, [r3] adds r0, r1 str r0, [r3] pop {r0} bx r0 .align 2, 0 _08011CCC: .4byte gUnknown_203B184 _08011CD0: .4byte 0x00000fff _08011CD4: .4byte 0x00001ffe thumb_func_end sub_8011CA8 thumb_func_start sub_8011CD8 sub_8011CD8: push {r4-r6,lr} adds r5, r1, 0 adds r4, r2, 0 ldr r6, [r0] adds r1, r4, 0 bl sub_8011CA8 adds r0, r5, 0 adds r1, r4, 0 bl sub_8011C58 ldr r0, _08011D04 ldr r0, [r0] cmp r0, 0 bne _08011D08 adds r0, r6, 0 adds r1, r5, 0 adds r2, r4, 0 bl sub_800CFC0 adds r1, r0, 0 b _08011D28 .align 2, 0 _08011D04: .4byte gUnknown_203B184 _08011D08: bl sub_800DAB8 lsls r0, 24 cmp r0, 0 beq _08011D38 lsls r0, r6, 16 lsrs r0, 16 adds r1, r5, 0 adds r2, r4, 0 bl sub_800DAB4 lsls r0, 24 movs r1, 0 cmp r0, 0 bne _08011D28 movs r1, 0x3 _08011D28: cmp r1, 0x4 bne _08011D30 movs r0, 0x1 b _08011D3A _08011D30: cmp r1, 0 bne _08011D38 movs r0, 0 b _08011D3A _08011D38: movs r0, 0x2 _08011D3A: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8011CD8 thumb_func_start sub_8011D40 sub_8011D40: push {r4-r6,lr} adds r5, r1, 0 adds r4, r2, 0 ldr r6, [r0] adds r1, r4, 0 bl sub_8011CA8 ldr r0, _08011D64 ldr r0, [r0] cmp r0, 0 bne _08011D68 adds r0, r6, 0 adds r1, r5, 0 adds r2, r4, 0 bl sub_800CF5C adds r1, r0, 0 b _08011D86 .align 2, 0 _08011D64: .4byte gUnknown_203B184 _08011D68: bl sub_800DAB8 lsls r0, 24 cmp r0, 0 beq _08011D8A lsls r0, r6, 16 lsrs r0, 16 adds r1, r5, 0 adds r2, r4, 0 bl sub_800DAB0 lsls r0, 24 movs r1, 0 cmp r0, 0 beq _08011D8A _08011D86: cmp r1, 0 beq _08011D8E _08011D8A: movs r0, 0x1 b _08011DA2 _08011D8E: adds r0, r5, 0 adds r1, r4, 0 bl sub_8011C7C lsls r0, 24 cmp r0, 0 bne _08011DA0 movs r0, 0 b _08011DA2 _08011DA0: movs r0, 0x2 _08011DA2: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8011D40 thumb_func_start sub_8011DA8 sub_8011DA8: movs r0, 0x1 bx lr thumb_func_end sub_8011DA8 thumb_func_start sub_8011DAC sub_8011DAC: push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 ldr r0, _08011DE4 mov r8, r0 movs r1, 0x5 bl MemoryAlloc adds r5, r0, 0 movs r1, 0x89 lsls r1, 3 adds r4, r5, r1 adds r0, r6, 0 adds r1, r5, 0 mov r2, r8 bl sub_8011D40 adds r7, r0, 0 cmp r7, 0 beq _08011DE8 adds r0, r6, 0 adds r1, r5, 0 mov r2, r8 bl sub_8011D40 adds r7, r0, 0 b _08011DF0 .align 2, 0 _08011DE4: .4byte 0x000057d4 _08011DE8: adds r0, r6, 0 mov r1, r8 bl sub_8011CA8 _08011DF0: cmp r7, 0 beq _08011DF6 b _08011F6E _08011DF6: ldr r2, _08011E38 adds r0, r5, r2 ldr r1, [r0] ldr r0, _08011E3C cmp r1, r0 beq _08011E04 movs r7, 0x4 _08011E04: cmp r7, 0 beq _08011E0A b _08011F6E _08011E0A: ldr r0, _08011E40 ldr r1, [r0] cmp r1, 0 bne _08011E48 ldr r1, _08011E44 adds r0, r5, r1 ldr r0, [r0] bl sub_8011C28 movs r2, 0x83 lsls r2, 3 adds r0, r5, r2 ldr r0, [r0] bl sub_8011C40 movs r1, 0x84 lsls r1, 3 adds r0, r5, r1 ldr r0, [r0] bl SetRngState b _08011E60 .align 2, 0 _08011E38: .4byte 0x00000414 _08011E3C: .4byte 0x05071412 _08011E40: .4byte gUnknown_203B184 _08011E44: .4byte 0x0000041c _08011E48: ldr r2, _08011E80 adds r0, r5, r2 ldr r0, [r0] str r0, [r1, 0x54] subs r2, 0x4 adds r0, r5, r2 ldr r0, [r0] str r0, [r1, 0x50] adds r2, 0x8 adds r0, r5, r2 ldr r0, [r0] str r0, [r1, 0x58] _08011E60: cmp r7, 0 beq _08011E66 b _08011F6E _08011E66: ldr r0, _08011E84 ldr r0, [r0] cmp r0, 0 bne _08011E88 adds r0, r5, 0x4 bl sub_8002718 lsls r0, 24 cmp r0, 0 bne _08011E94 movs r7, 0x4 b _08011F6E .align 2, 0 _08011E80: .4byte 0x0000041c _08011E84: .4byte gUnknown_203B184 _08011E88: ldr r0, [r0, 0x4C] adds r1, r5, 0x4 movs r2, 0x80 lsls r2, 3 bl MemoryCopy8 _08011E94: cmp r7, 0 bne _08011F6E ldr r6, _08011F80 adds r0, r4, 0 adds r1, r6, 0 bl sub_808EE9C adds r1, r0, 0 ldr r2, _08011F84 adds r0, r5, r2 ldr r0, [r0] cmp r1, r0 beq _08011EB0 movs r7, 0x3 _08011EB0: adds r4, r6 movs r6, 0x96 lsls r6, 2 adds r0, r4, 0 adds r1, r6, 0 bl sub_808F2B0 adds r1, r0, 0 movs r2, 0x85 lsls r2, 3 adds r0, r5, r2 ldr r0, [r0] cmp r1, r0 beq _08011ECE movs r7, 0x3 _08011ECE: adds r4, r6 movs r6, 0xEC lsls r6, 1 adds r0, r4, 0 adds r1, r6, 0 bl sub_8091D14 adds r1, r0, 0 movs r2, 0x86 lsls r2, 3 adds r0, r5, r2 ldr r0, [r0] cmp r1, r0 beq _08011EEC movs r7, 0x3 _08011EEC: adds r4, r6 adds r0, r4, 0 movs r1, 0x10 bl sub_809222C adds r1, r0, 0 ldr r2, _08011F88 adds r0, r5, r2 ldr r0, [r0] cmp r1, r0 beq _08011F04 movs r7, 0x3 _08011F04: adds r4, 0x10 adds r0, r4, 0 movs r1, 0x8 bl sub_80927F4 adds r1, r0, 0 movs r2, 0x87 lsls r2, 3 adds r0, r5, r2 ldr r0, [r0] cmp r1, r0 beq _08011F1E movs r7, 0x3 _08011F1E: adds r4, 0x8 movs r6, 0x80 lsls r6, 1 adds r0, r4, 0 adds r1, r6, 0 bl sub_8097D98 adds r1, r0, 0 ldr r2, _08011F8C adds r0, r5, r2 ldr r0, [r0] cmp r1, r0 beq _08011F3A movs r7, 0x3 _08011F3A: adds r4, r6 ldr r6, _08011F90 adds r0, r4, 0 adds r1, r6, 0 bl sub_80954CC adds r1, r0, 0 movs r2, 0x88 lsls r2, 3 adds r0, r5, r2 ldr r0, [r0] cmp r1, r0 beq _08011F56 movs r7, 0x3 _08011F56: adds r4, r6 ldr r1, _08011F94 adds r0, r4, 0 bl sub_8096FA0 adds r1, r0, 0 ldr r2, _08011F98 adds r0, r5, r2 ldr r0, [r0] cmp r1, r0 beq _08011F6E movs r7, 0x3 _08011F6E: adds r0, r5, 0 bl MemoryFree adds r0, r7, 0 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08011F80: .4byte 0x00004650 _08011F84: .4byte 0x00000424 _08011F88: .4byte 0x00000434 _08011F8C: .4byte 0x0000043c _08011F90: .4byte 0x00000594 _08011F94: .4byte 0x00000221 _08011F98: .4byte 0x00000444 thumb_func_end sub_8011DAC thumb_func_start sub_8011F9C sub_8011F9C: push {lr} bl sub_8011D40 pop {r1} bx r1 thumb_func_end sub_8011F9C thumb_func_start sub_8011FA8 sub_8011FA8: push {r4,r5,lr} sub sp, 0x4 movs r4, 0x80 lsls r4, 4 adds r0, r4, 0 movs r1, 0x5 bl MemoryAlloc adds r5, r0, 0 movs r0, 0x1F str r0, [sp] mov r0, sp adds r1, r5, 0 adds r2, r4, 0 bl sub_8011D40 adds r2, r0, 0 cmp r2, 0 bne _08011FD8 ldr r1, [r5, 0x14] ldr r0, _08011FF0 cmp r1, r0 beq _08011FD8 movs r2, 0x4 _08011FD8: ldr r4, _08011FF4 cmp r2, 0 bne _08011FE0 ldr r4, [r5, 0x18] _08011FE0: adds r0, r5, 0 bl MemoryFree adds r0, r4, 0 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08011FF0: .4byte 0x05071412 _08011FF4: .4byte 0x000f1209 thumb_func_end sub_8011FA8 thumb_func_start sub_8011FF8 sub_8011FF8: push {r4-r6,lr} sub sp, 0x4 movs r4, 0x80 lsls r4, 4 adds r0, r4, 0 movs r1, 0x5 bl MemoryAlloc adds r5, r0, 0 movs r0, 0x1F str r0, [sp] movs r6, 0 mov r0, sp adds r1, r5, 0 adds r2, r4, 0 bl sub_8011D40 cmp r0, 0 bne _08012028 ldr r1, [r5, 0x14] ldr r0, _08012038 cmp r1, r0 bne _08012028 movs r6, 0x1 _08012028: adds r0, r5, 0 bl MemoryFree adds r0, r6, 0 add sp, 0x4 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08012038: .4byte 0x05071412 thumb_func_end sub_8011FF8 thumb_func_start sub_801203C sub_801203C: push {r4-r7,lr} adds r7, r0, 0 adds r4, r1, 0 ldr r0, _08012078 movs r1, 0x5 bl MemoryAlloc adds r6, r0, 0 movs r0, 0x89 lsls r0, 3 adds r5, r6, r0 ldr r0, _0801207C ldr r2, [r0] cmp r2, 0 bne _08012084 ldr r1, _08012080 adds r0, r6, r1 str r4, [r0] bl sub_8011C34 movs r2, 0x83 lsls r2, 3 adds r1, r6, r2 str r0, [r1] bl GetRngState movs r2, 0x84 lsls r2, 3 adds r1, r6, r2 b _0801209E .align 2, 0 _08012078: .4byte 0x000057d4 _0801207C: .4byte gUnknown_203B184 _08012080: .4byte 0x0000041c _08012084: ldr r0, _080120C8 adds r1, r6, r0 ldr r0, [r2, 0x54] str r0, [r1] movs r0, 0x83 lsls r0, 3 adds r1, r6, r0 ldr r0, [r2, 0x50] str r0, [r1] movs r0, 0x84 lsls r0, 3 adds r1, r6, r0 ldr r0, [r2, 0x58] _0801209E: str r0, [r1] ldr r2, _080120CC adds r1, r6, r2 ldr r0, _080120D0 str r0, [r1] bl sub_8011C4C adds r1, r0, 0 ldr r2, _080120D4 adds r0, r6, r2 movs r2, 0x10 bl strncpy ldr r0, _080120D8 ldr r1, [r0] cmp r1, 0 bne _080120DC adds r0, r6, 0x4 bl sub_8002700 b _080120E8 .align 2, 0 _080120C8: .4byte 0x0000041c _080120CC: .4byte 0x00000414 _080120D0: .4byte 0x05071412 _080120D4: .4byte 0x00000404 _080120D8: .4byte gUnknown_203B184 _080120DC: adds r0, r6, 0x4 ldr r1, [r1, 0x4C] movs r2, 0x80 lsls r2, 3 bl MemoryCopy8 _080120E8: ldr r4, _080121A4 adds r0, r5, 0 adds r1, r4, 0 bl sub_808ED78 ldr r2, _080121A8 adds r1, r6, r2 str r0, [r1] adds r5, r4 movs r4, 0x96 lsls r4, 2 adds r0, r5, 0 adds r1, r4, 0 bl sub_808F154 movs r2, 0x85 lsls r2, 3 adds r1, r6, r2 str r0, [r1] adds r5, r4 subs r4, 0x80 adds r0, r5, 0 adds r1, r4, 0 bl sub_8091C68 movs r2, 0x86 lsls r2, 3 adds r1, r6, r2 str r0, [r1] adds r5, r4 adds r0, r5, 0 movs r1, 0x10 bl sub_80921C4 ldr r2, _080121AC adds r1, r6, r2 str r0, [r1] adds r5, 0x10 adds r0, r5, 0 movs r1, 0x8 bl sub_80927A8 movs r2, 0x87 lsls r2, 3 adds r1, r6, r2 str r0, [r1] adds r5, 0x8 subs r4, 0xD8 adds r0, r5, 0 adds r1, r4, 0 bl sub_8097D60 ldr r2, _080121B0 adds r1, r6, r2 str r0, [r1] adds r5, r4 ldr r4, _080121B4 adds r0, r5, 0 adds r1, r4, 0 bl sub_8095624 movs r2, 0x88 lsls r2, 3 adds r1, r6, r2 str r0, [r1] adds r5, r4 ldr r1, _080121B8 adds r0, r5, 0 bl sub_80970D8 ldr r2, _080121BC adds r1, r6, r2 str r0, [r1] ldr r4, _080121C0 adds r0, r7, 0 adds r1, r6, 0 adds r2, r4, 0 bl sub_8011CD8 adds r5, r0, 0 adds r0, r7, 0 adds r1, r6, 0 adds r2, r4, 0 bl sub_8011CD8 adds r4, r0, 0 adds r0, r6, 0 bl MemoryFree cmp r5, 0 beq _080121C4 adds r0, r5, 0 b _080121CE .align 2, 0 _080121A4: .4byte 0x00004650 _080121A8: .4byte 0x00000424 _080121AC: .4byte 0x00000434 _080121B0: .4byte 0x0000043c _080121B4: .4byte 0x00000594 _080121B8: .4byte 0x00000221 _080121BC: .4byte 0x00000444 _080121C0: .4byte 0x000057d4 _080121C4: cmp r4, 0 bne _080121CC movs r0, 0 b _080121CE _080121CC: adds r0, r4, 0 _080121CE: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_801203C thumb_func_start sub_80121D4 sub_80121D4: push {lr} bl sub_8011CD8 pop {r1} bx r1 thumb_func_end sub_80121D4 thumb_func_start sub_80121E0 sub_80121E0: push {r4-r6,lr} sub sp, 0x4 adds r5, r0, 0 movs r6, 0x80 lsls r6, 4 adds r0, r6, 0 movs r1, 0x5 bl MemoryAlloc adds r4, r0, 0 movs r0, 0x1F str r0, [sp] str r5, [r4, 0x18] bl sub_809769C ldr r0, [r0] str r0, [r4, 0x1C] ldr r0, _0801223C str r0, [r4, 0x14] bl sub_8011C4C adds r1, r0, 0 adds r0, r4, 0x4 movs r2, 0x10 bl strncpy adds r0, r4, 0 adds r0, 0x20 movs r1, 0 bl sub_80958E4 mov r0, sp adds r1, r4, 0 adds r2, r6, 0 bl sub_8011CD8 adds r5, r0, 0 adds r0, r4, 0 bl MemoryFree adds r0, r5, 0 add sp, 0x4 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0801223C: .4byte 0x05071412 thumb_func_end sub_80121E0 thumb_func_start sub_8012240 sub_8012240: push {r4,r5,lr} movs r4, 0x80 lsls r4, 4 adds r0, r4, 0 movs r1, 0x5 bl MemoryAlloc adds r5, r0, 0 movs r1, 0xFF movs r2, 0x4 bl MemoryFill8 bl sub_8011830 movs r0, 0x1F adds r1, r5, 0 adds r2, r4, 0 bl sub_800CFC0 adds r4, r0, 0 bl sub_8011854 adds r0, r5, 0 bl MemoryFree cmp r4, 0 bne _0801227A movs r0, 0 b _0801227C _0801227A: movs r0, 0x2 _0801227C: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8012240 thumb_func_start sub_8012284 sub_8012284: push {lr} bl sub_80122D0 bl sub_80122F4 bl sub_8012300 pop {r0} bx r0 thumb_func_end sub_8012284 thumb_func_start sub_8012298 sub_8012298: push {lr} bl sub_80976A8 bl sub_80122A8 pop {r0} bx r0 thumb_func_end sub_8012298 thumb_func_start sub_80122A8 sub_80122A8: push {lr} bl sub_80122D0 bl sub_80122F4 bl sub_8012300 bl sub_8012240 pop {r0} bx r0 thumb_func_end sub_80122A8 thumb_func_start nullsub_33 nullsub_33: bx lr thumb_func_end nullsub_33 thumb_func_start sub_80122C4 sub_80122C4: push {lr} bl sub_80122A8 pop {r0} bx r0 thumb_func_end sub_80122C4 thumb_func_start sub_80122D0 sub_80122D0: push {lr} movs r0, 0 bl sub_8011C28 movs r0, 0x1 negs r0, r0 bl sub_8011C40 bl sub_8097748 ldr r0, _080122F0 ldr r0, [r0] bl sub_8094FA8 pop {r0} bx r0 .align 2, 0 _080122F0: .4byte gUnknown_203B47C thumb_func_end sub_80122D0 thumb_func_start sub_80122F4 sub_80122F4: push {lr} bl sub_800135C pop {r0} bx r0 thumb_func_end sub_80122F4 thumb_func_start sub_8012300 sub_8012300: push {lr} bl sub_80923B8 bl sub_808CE08 bl sub_80909D8 bl sub_8092094 bl sub_80972F4 bl sub_8095118 bl sub_8095900 bl sub_80974E8 movs r0, 0x1 bl sub_8094998 bl sub_8097F74 pop {r0} bx r0 thumb_func_end sub_8012300 thumb_func_start nullsub_200 nullsub_200: bx lr thumb_func_end nullsub_200 thumb_func_start sub_8012334 sub_8012334: push {lr} adds r2, r0, 0 ldr r0, _08012390 str r2, [r0] cmp r2, 0 beq _080123C8 ldr r1, _08012394 ldr r0, [r2] str r0, [r1] ldr r1, _08012398 ldr r0, [r2, 0x4] str r0, [r1] ldr r1, _0801239C ldr r0, [r2, 0x8] str r0, [r1] ldr r1, _080123A0 ldr r0, [r2, 0xC] str r0, [r1] ldr r1, _080123A4 ldr r0, [r2, 0x10] str r0, [r1] ldr r1, _080123A8 ldr r0, [r2, 0x14] str r0, [r1] ldr r1, _080123AC ldr r0, [r2, 0x18] str r0, [r1] ldr r1, _080123B0 ldr r0, [r2, 0x1C] str r0, [r1] ldr r1, _080123B4 ldr r0, [r2, 0x20] str r0, [r1] ldr r1, _080123B8 ldr r0, [r2, 0x24] str r0, [r1] ldr r1, _080123BC ldr r0, [r2, 0x28] str r0, [r1] ldr r1, _080123C0 ldr r0, [r2, 0x2C] str r0, [r1] ldr r1, _080123C4 ldr r0, [r2, 0x30] b _0801242E .align 2, 0 _08012390: .4byte gUnknown_203B184 _08012394: .4byte gUnknown_203B460 _08012398: .4byte gUnknown_203B45C _0801239C: .4byte gUnknown_203B480 _080123A0: .4byte gUnknown_203B484 _080123A4: .4byte gUnknown_203B488 _080123A8: .4byte gUnknown_203B48C _080123AC: .4byte gUnknown_203B490 _080123B0: .4byte gUnknown_203B464 _080123B4: .4byte gUnknown_203B494 _080123B8: .4byte gUnknown_203B498 _080123BC: .4byte gUnknown_203B468 _080123C0: .4byte gUnknown_203B46C _080123C4: .4byte gUnknown_203B47C _080123C8: bl sub_80909D0 ldr r1, _08012434 str r0, [r1] bl sub_808CE00 ldr r1, _08012438 str r0, [r1] bl sub_80950F8 ldr r1, _0801243C str r0, [r1] bl sub_8095100 ldr r1, _08012440 str r0, [r1] bl sub_8095108 ldr r1, _08012444 str r0, [r1] bl sub_8095110 ldr r1, _08012448 str r0, [r1] bl sub_80958F8 ldr r1, _0801244C str r0, [r1] bl sub_809208C ldr r1, _08012450 str r0, [r1] bl sub_8097680 ldr r1, _08012454 str r0, [r1] bl sub_8097F6C ldr r1, _08012458 str r0, [r1] bl sub_80923B0 ldr r1, _0801245C str r0, [r1] bl sub_8094990 ldr r1, _08012460 str r0, [r1] bl sub_8094FA0 ldr r1, _08012464 _0801242E: str r0, [r1] pop {r0} bx r0 .align 2, 0 _08012434: .4byte gUnknown_203B460 _08012438: .4byte gUnknown_203B45C _0801243C: .4byte gUnknown_203B480 _08012440: .4byte gUnknown_203B484 _08012444: .4byte gUnknown_203B488 _08012448: .4byte gUnknown_203B48C _0801244C: .4byte gUnknown_203B490 _08012450: .4byte gUnknown_203B464 _08012454: .4byte gUnknown_203B494 _08012458: .4byte gUnknown_203B498 _0801245C: .4byte gUnknown_203B468 _08012460: .4byte gUnknown_203B46C _08012464: .4byte gUnknown_203B47C thumb_func_end sub_8012334 thumb_func_start sub_8012468 sub_8012468: push {r4,lr} ldr r4, _08012480 movs r0, 0x8 movs r1, 0x5 bl MemoryAlloc str r0, [r4] movs r1, 0x1 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _08012480: .4byte gUnknown_203B188 thumb_func_end sub_8012468 thumb_func_start sub_8012484 sub_8012484: push {r4,r5,lr} sub sp, 0x8 ldr r1, _080124A0 ldr r0, [r1] ldr r0, [r0] adds r4, r1, 0 cmp r0, 0x6 bhi _0801254C lsls r0, 2 ldr r1, _080124A4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080124A0: .4byte gUnknown_203B188 _080124A4: .4byte _080124A8 .align 2, 0 _080124A8: .4byte _080124C4 .4byte _080124CC .4byte _080124E8 .4byte _0801251C .4byte _08012534 .4byte _0801254C .4byte _08012548 _080124C4: ldr r1, [r4] movs r0, 0x1 str r0, [r1] b _0801254C _080124CC: movs r0, 0 str r0, [sp] mov r0, sp bl sub_8011DAC ldr r1, _080124E4 ldr r1, [r1] str r0, [r1, 0x4] movs r0, 0x2 str r0, [r1] b _0801254C .align 2, 0 _080124E4: .4byte gUnknown_203B188 _080124E8: adds r5, r4, 0 ldr r1, [r5] ldr r0, [r1, 0x4] cmp r0, 0 beq _0801253C bl sub_8011FF8 lsls r0, 24 cmp r0, 0 beq _08012518 ldr r0, _08012510 ldr r3, _08012514 movs r1, 0 movs r2, 0 bl sub_80141B4 ldr r1, [r5] movs r0, 0x3 str r0, [r1] b _0801254C .align 2, 0 _08012510: .4byte gUnknown_80D4354 _08012514: .4byte 0x00000301 _08012518: ldr r1, [r4] b _0801252A _0801251C: add r0, sp, 0x4 bl sub_80144A4 cmp r0, 0 bne _0801254C ldr r0, _08012530 ldr r1, [r0] _0801252A: movs r0, 0x4 str r0, [r1] b _0801254C .align 2, 0 _08012530: .4byte gUnknown_203B188 _08012534: bl sub_8012298 ldr r0, _08012544 ldr r1, [r0] _0801253C: movs r0, 0x6 str r0, [r1] b _0801254C .align 2, 0 _08012544: .4byte gUnknown_203B188 _08012548: movs r0, 0 b _0801254E _0801254C: movs r0, 0x1 _0801254E: add sp, 0x8 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8012484 thumb_func_start sub_8012558 sub_8012558: push {r4,lr} ldr r4, _08012570 ldr r0, [r4] cmp r0, 0 beq _0801256A bl MemoryFree movs r0, 0 str r0, [r4] _0801256A: pop {r4} pop {r0} bx r0 .align 2, 0 _08012570: .4byte gUnknown_203B188 thumb_func_end sub_8012558 thumb_func_start sub_8012574 sub_8012574: push {r4-r6,lr} lsls r0, 16 asrs r4, r0, 16 bl sub_80993D8 ldr r5, _080125D4 movs r0, 0x20 movs r1, 0x5 bl MemoryAlloc str r0, [r5] movs r6, 0 movs r1, 0 strh r4, [r0, 0x1C] str r1, [r0, 0xC] str r1, [r0, 0x10] cmp r4, 0 beq _080125BA adds r0, r4, 0 bl sub_808DDD0 ldr r1, [r5] str r0, [r1, 0xC] ldr r0, [r0, 0x4] str r0, [r1, 0x10] strb r6, [r1, 0x18] ldr r0, [r5] strb r6, [r0, 0x19] ldr r0, [r5] strb r6, [r0, 0x1A] ldr r1, [r5] movs r0, 0x2 strh r0, [r1, 0x14] movs r0, 0x8 strh r0, [r1, 0x16] _080125BA: ldr r1, [r5] ldr r0, [r1, 0xC] cmp r0, 0 beq _080125DC adds r2, r1, 0 adds r2, 0xC ldr r0, _080125D8 movs r1, 0 movs r3, 0x20 bl sub_80141B4 b _080125E8 .align 2, 0 _080125D4: .4byte gUnknown_203B18C _080125D8: .4byte gUnknown_80D4398 _080125DC: ldr r0, _080125F8 movs r1, 0 movs r2, 0 movs r3, 0x20 bl sub_80141B4 _080125E8: ldr r0, _080125FC ldr r1, [r0] movs r0, 0x3 str r0, [r1] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080125F8: .4byte gUnknown_80D4398 _080125FC: .4byte gUnknown_203B18C thumb_func_end sub_8012574 thumb_func_start sub_8012600 sub_8012600: push {r4,r5,lr} sub sp, 0x8 movs r5, 0 ldr r0, _08012628 ldr r2, [r0] ldr r1, [r2, 0xC] adds r4, r0, 0 cmp r1, 0 beq _08012616 adds r5, r2, 0 adds r5, 0xC _08012616: ldr r0, [r2] cmp r0, 0x7 bls _0801261E b _08012738 _0801261E: lsls r0, 2 ldr r1, _0801262C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08012628: .4byte gUnknown_203B18C _0801262C: .4byte _08012630 .align 2, 0 _08012630: .4byte _08012650 .4byte _08012654 .4byte _08012738 .4byte _08012678 .4byte _08012680 .4byte _0801271C .4byte _08012738 .4byte _08012734 _08012650: ldr r1, [r4] b _0801272A _08012654: ldr r1, [r4] ldr r0, [r1, 0x4] adds r0, 0x1 str r0, [r1, 0x4] cmp r0, 0x8 ble _08012738 ldr r0, _08012674 movs r1, 0 movs r2, 0 movs r3, 0x20 bl sub_80141B4 ldr r1, [r4] movs r0, 0x3 str r0, [r1] b _08012738 .align 2, 0 _08012674: .4byte gUnknown_80D43D8 _08012678: ldr r1, [r4] movs r0, 0x4 str r0, [r1] b _08012738 _08012680: movs r0, 0 str r0, [sp] bl sub_80140DC bl sub_8011C1C adds r1, r0, 0 mov r0, sp bl sub_801203C ldr r4, _080126B8 ldr r1, [r4] str r0, [r1, 0x8] cmp r0, 0 beq _080126C4 cmp r0, 0x1 beq _080126DC ldr r0, [r1, 0xC] cmp r0, 0 beq _080126F4 ldr r0, _080126BC _080126AA: ldr r3, _080126C0 movs r1, 0 adds r2, r5, 0 bl sub_80141B4 b _08012700 .align 2, 0 _080126B8: .4byte gUnknown_203B18C _080126BC: .4byte gUnknown_80D44B0 _080126C0: .4byte 0x00000101 _080126C4: ldr r0, [r1, 0xC] cmp r0, 0 beq _080126D4 ldr r0, _080126D0 b _080126AA .align 2, 0 _080126D0: .4byte gUnknown_80D4438 _080126D4: ldr r0, _080126D8 b _080126F6 .align 2, 0 _080126D8: .4byte gUnknown_80D4438 _080126DC: ldr r0, _080126F0 movs r1, 0 movs r2, 0 movs r3, 0 bl sub_80141B4 ldr r1, [r4] movs r0, 0x6 b _08012706 .align 2, 0 _080126F0: .4byte gUnknown_80D444C _080126F4: ldr r0, _08012710 _080126F6: ldr r3, _08012714 movs r1, 0 adds r2, r5, 0 bl sub_80141B4 _08012700: ldr r0, _08012718 ldr r1, [r0] movs r0, 0x5 _08012706: str r0, [r1] bl sub_8014114 b _08012738 .align 2, 0 _08012710: .4byte gUnknown_80D44B0 _08012714: .4byte 0x00000101 _08012718: .4byte gUnknown_203B18C _0801271C: add r0, sp, 0x4 bl sub_80144A4 cmp r0, 0 bne _08012738 ldr r0, _08012730 ldr r1, [r0] _0801272A: movs r0, 0x7 str r0, [r1] b _08012738 .align 2, 0 _08012730: .4byte gUnknown_203B18C _08012734: movs r0, 0 b _0801273A _08012738: movs r0, 0x1 _0801273A: add sp, 0x8 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8012600 thumb_func_start sub_8012744 sub_8012744: ldr r0, _0801274C ldr r0, [r0] ldr r0, [r0, 0x8] bx lr .align 2, 0 _0801274C: .4byte gUnknown_203B18C thumb_func_end sub_8012744 thumb_func_start sub_8012750 sub_8012750: push {r4,lr} ldr r4, _08012778 ldr r0, [r4] cmp r0, 0 beq _0801276E ldr r0, [r0, 0xC] cmp r0, 0 beq _08012764 bl CloseFile _08012764: ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _0801276E: bl sub_80993E4 pop {r4} pop {r0} bx r0 .align 2, 0 _08012778: .4byte gUnknown_203B18C thumb_func_end sub_8012750 thumb_func_start sub_801277C sub_801277C: push {r4-r6,lr} adds r5, r0, 0 adds r6, r1, 0 ldr r4, _080127A4 movs r0, 0x10 movs r1, 0x5 bl MemoryAlloc str r0, [r4] str r5, [r0, 0x4] str r6, [r0, 0x8] movs r1, 0 strb r1, [r0, 0xC] ldr r1, [r4] movs r0, 0x1 str r0, [r1] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080127A4: .4byte gUnknown_203B190 thumb_func_end sub_801277C thumb_func_start sub_80127A8 sub_80127A8: push {r4,r5,lr} sub sp, 0x8 ldr r5, _080127C0 ldr r2, [r5] ldr r4, [r2] cmp r4, 0x1 beq _080127D4 cmp r4, 0x1 bgt _080127C4 cmp r4, 0 beq _080127CE b _0801281E .align 2, 0 _080127C0: .4byte gUnknown_203B190 _080127C4: cmp r4, 0x2 beq _08012808 cmp r4, 0x3 beq _0801281A b _0801281E _080127CE: movs r0, 0x1 str r0, [r2] b _0801281E _080127D4: movs r0, 0x10 str r0, [sp] ldr r1, [r2, 0x4] ldr r2, [r2, 0x8] mov r0, sp bl sub_8011F9C cmp r0, 0 bne _080127EC ldr r0, [r5] strb r4, [r0, 0xC] b _08012812 _080127EC: ldr r0, _08012800 ldr r3, _08012804 movs r1, 0 movs r2, 0 bl sub_80141B4 ldr r1, [r5] movs r0, 0x2 str r0, [r1] b _0801281E .align 2, 0 _08012800: .4byte gUnknown_80D44C8 _08012804: .4byte 0x00000301 _08012808: add r0, sp, 0x4 bl sub_80144A4 cmp r0, 0 bne _0801281E _08012812: ldr r1, [r5] movs r0, 0x3 str r0, [r1] b _0801281E _0801281A: movs r0, 0 b _08012820 _0801281E: movs r0, 0x1 _08012820: add sp, 0x8 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80127A8 thumb_func_start sub_8012828 sub_8012828: ldr r0, _08012830 ldr r0, [r0] ldrb r0, [r0, 0xC] bx lr .align 2, 0 _08012830: .4byte gUnknown_203B190 thumb_func_end sub_8012828 thumb_func_start sub_8012834 sub_8012834: push {r4,lr} ldr r4, _0801284C ldr r0, [r4] cmp r0, 0 beq _08012846 bl MemoryFree movs r0, 0 str r0, [r4] _08012846: pop {r4} pop {r0} bx r0 .align 2, 0 _0801284C: .4byte gUnknown_203B190 thumb_func_end sub_8012834 thumb_func_start sub_8012850 sub_8012850: push {r4-r6,lr} mov r6, r8 push {r6} adds r6, r0, 0 mov r8, r1 lsls r4, r2, 24 lsrs r4, 24 ldr r5, _0801288C movs r0, 0x14 movs r1, 0x5 bl MemoryAlloc str r0, [r5] str r6, [r0, 0x4] mov r1, r8 str r1, [r0, 0x8] movs r1, 0 strb r4, [r0, 0xC] ldr r0, [r5] str r1, [r0] ldrb r0, [r0, 0xC] cmp r0, 0 beq _08012894 ldr r0, _08012890 movs r2, 0 movs r3, 0x20 bl sub_80141B4 b _080128A0 .align 2, 0 _0801288C: .4byte gUnknown_203B194 _08012890: .4byte gUnknown_80D45AC _08012894: ldr r0, _080128AC movs r1, 0 movs r2, 0 movs r3, 0x20 bl sub_80141B4 _080128A0: pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080128AC: .4byte gUnknown_80D45AC thumb_func_end sub_8012850 thumb_func_start sub_80128B0 sub_80128B0: push {r4,lr} sub sp, 0x8 ldr r1, _080128CC ldr r0, [r1] ldr r0, [r0] adds r4, r1, 0 cmp r0, 0x5 bls _080128C2 b _080129F0 _080128C2: lsls r0, 2 ldr r1, _080128D0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080128CC: .4byte gUnknown_203B194 _080128D0: .4byte _080128D4 .align 2, 0 _080128D4: .4byte _080128EC .4byte _080128F4 .4byte _0801291C .4byte _080129C8 .4byte _080129F0 .4byte _080129E0 _080128EC: ldr r1, [r4] movs r0, 0x1 str r0, [r1] b _080129F0 _080128F4: bl sub_80140DC movs r0, 0x10 str r0, [sp] ldr r4, _08012918 ldr r0, [r4] ldr r1, [r0, 0x4] ldr r2, [r0, 0x8] mov r0, sp bl sub_80121D4 ldr r1, [r4] str r0, [r1, 0x10] movs r0, 0x2 str r0, [r1] movs r0, 0x1 b _080129F2 .align 2, 0 _08012918: .4byte gUnknown_203B194 _0801291C: movs r0, 0 str r0, [sp] ldr r0, [r4] ldr r0, [r0, 0x10] cmp r0, 0 bne _08012934 mov r0, sp movs r1, 0x2 bl sub_801203C ldr r1, [r4] str r0, [r1, 0x10] _08012934: ldr r0, [r4] ldr r0, [r0, 0x10] cmp r0, 0 beq _08012964 cmp r0, 0x1 beq _080129AC ldr r0, _08012958 bl sub_80121E0 ldr r0, _0801295C ldr r3, _08012960 movs r1, 0 movs r2, 0 bl sub_80141B4 ldr r1, [r4] movs r0, 0x3 b _080129BC .align 2, 0 _08012958: .4byte 0x000f1209 _0801295C: .4byte gUnknown_80D47A0 _08012960: .4byte 0x00000301 _08012964: ldr r0, _08012980 bl sub_80121E0 ldr r0, [r4] ldrb r0, [r0, 0xC] cmp r0, 0 beq _0801298C ldr r0, _08012984 ldr r3, _08012988 movs r1, 0 movs r2, 0 bl sub_80141B4 b _08012998 .align 2, 0 _08012980: .4byte 0x000f1207 _08012984: .4byte gUnknown_80D45F4 _08012988: .4byte 0x00000301 _0801298C: ldr r0, _080129A0 ldr r3, _080129A4 movs r1, 0 movs r2, 0 bl sub_80141B4 _08012998: ldr r0, _080129A8 ldr r1, [r0] movs r0, 0x3 b _080129BC .align 2, 0 _080129A0: .4byte gUnknown_80D4668 _080129A4: .4byte 0x00000301 _080129A8: .4byte gUnknown_203B194 _080129AC: ldr r0, _080129C4 movs r1, 0 movs r2, 0 movs r3, 0 bl sub_80141B4 ldr r1, [r4] movs r0, 0x4 _080129BC: str r0, [r1] bl sub_8014114 b _080129F0 .align 2, 0 _080129C4: .4byte gUnknown_80D473C _080129C8: add r0, sp, 0x4 bl sub_80144A4 cmp r0, 0 bne _080129F0 ldr r0, _080129DC ldr r1, [r0] movs r0, 0x5 str r0, [r1] b _080129F0 .align 2, 0 _080129DC: .4byte gUnknown_203B194 _080129E0: ldr r0, [r4] ldr r0, [r0, 0x10] cmp r0, 0 bne _080129EC movs r0, 0x2 b _080129F2 _080129EC: movs r0, 0x3 b _080129F2 _080129F0: movs r0, 0 _080129F2: add sp, 0x8 pop {r4} pop {r1} bx r1 thumb_func_end sub_80128B0 thumb_func_start sub_80129FC sub_80129FC: push {r4,lr} ldr r4, _08012A14 ldr r0, [r4] cmp r0, 0 beq _08012A0E bl MemoryFree movs r0, 0 str r0, [r4] _08012A0E: pop {r4} pop {r0} bx r0 .align 2, 0 _08012A14: .4byte gUnknown_203B194 thumb_func_end sub_80129FC thumb_func_start sub_8012A18 sub_8012A18: push {lr} bl sub_8011860 bl xxx_draw_string_80144C4 ldr r0, _08012A60 ldr r0, [r0] ldrb r0, [r0, 0xA] bl nullsub_8 bl sub_8005180 bl sub_80060EC bl sub_800CB20 bl sub_800485C bl CopySpritesToOam bl sub_8005304 bl TransferBGPaletteBuffer bl xxx_call_update_bg_vram bl sub_8009908 bl xxx_call_update_bg_sound_input movs r0, 0 bl sub_8004D8C pop {r0} bx r0 .align 2, 0 _08012A60: .4byte gUnknown_203B46C thumb_func_end sub_8012A18 thumb_func_start sub_8012A64 sub_8012A64: push {r4,lr} adds r4, r0, 0 cmp r4, 0 beq _08012A94 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _08012A7A adds r0, r4, 0 bl nullsub_34 _08012A7A: ldrb r1, [r4, 0x1] cmp r1, 0 beq _08012A88 movs r0, 0 strb r0, [r4, 0x1] movs r0, 0x1 b _08012A98 _08012A88: ldrb r0, [r4, 0x2] cmp r0, 0 beq _08012A94 strb r1, [r4, 0x2] movs r0, 0x2 b _08012A98 _08012A94: bl sub_8012AE8 _08012A98: pop {r4} pop {r1} bx r1 thumb_func_end sub_8012A64 thumb_func_start GetKeyPress GetKeyPress: push {lr} adds r1, r0, 0 cmp r1, 0 beq _08012ADE adds r0, 0x29 ldrb r0, [r0] cmp r0, 0 beq _08012AB4 movs r0, 0x1 b _08012AE2 _08012AB4: adds r0, r1, 0 adds r0, 0x2A ldrb r0, [r0] cmp r0, 0 beq _08012AC2 movs r0, 0x2 b _08012AE2 _08012AC2: adds r0, r1, 0 adds r0, 0x2C ldrb r0, [r0] cmp r0, 0 beq _08012AD0 movs r0, 0x9 b _08012AE2 _08012AD0: adds r0, r1, 0 adds r0, 0x2B ldrb r0, [r0] cmp r0, 0 beq _08012ADE movs r0, 0xA b _08012AE2 _08012ADE: bl sub_8012AE8 _08012AE2: pop {r1} bx r1 thumb_func_end GetKeyPress thumb_func_start sub_8012AE8 sub_8012AE8: push {lr} ldr r2, _08012B08 ldrh r1, [r2] movs r3, 0x80 lsls r3, 1 adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _08012B4A ldrh r1, [r2, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08012B0C movs r0, 0xB b _08012BBE .align 2, 0 _08012B08: .4byte gUnknown_20255F0 _08012B0C: ldrh r1, [r2, 0x4] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08012B1A movs r0, 0xC b _08012BBE _08012B1A: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08012B26 movs r0, 0xD b _08012BBE _08012B26: movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _08012B32 movs r0, 0xE b _08012BBE _08012B32: movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _08012B3E movs r0, 0xF b _08012BBE _08012B3E: adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _08012BBC movs r0, 0x6 b _08012BBE _08012B4A: ldrh r1, [r2, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08012B58 movs r0, 0x1 b _08012BBE _08012B58: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08012B64 movs r0, 0x2 b _08012BBE _08012B64: movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08012B70 movs r0, 0x3 b _08012BBE _08012B70: movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08012B7C movs r0, 0x4 b _08012BBE _08012B7C: ldrh r1, [r2, 0x4] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08012B8A movs r0, 0x7 b _08012BBE _08012B8A: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08012B96 movs r0, 0x8 b _08012BBE _08012B96: movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _08012BA2 movs r0, 0x9 b _08012BBE _08012BA2: movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _08012BAE movs r0, 0xA b _08012BBE _08012BAE: movs r0, 0x80 lsls r0, 2 ands r0, r1 cmp r0, 0 beq _08012BBC movs r0, 0x5 b _08012BBE _08012BBC: movs r0, 0 _08012BBE: pop {r1} bx r1 thumb_func_end sub_8012AE8 thumb_func_start sub_8012BC4 sub_8012BC4: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x24 mov r10, r0 mov r9, r1 adds r1, r2, 0 adds r7, r3, 0 movs r0, 0 mov r8, r0 add r0, sp, 0x4 adds r2, r7, 0 bl ConvertToDecimal subs r5, r7, 0x1 cmp r5, 0 ble _08012C0A lsls r0, r5, 2 mov r1, sp adds r1, r0 adds r1, 0x4 ldr r0, [r1] cmp r0, 0 bne _08012C0A movs r2, 0xFF _08012BFA: str r2, [r1] subs r1, 0x4 subs r5, 0x1 cmp r5, 0 ble _08012C0A ldr r0, [r1] cmp r0, 0 beq _08012BFA _08012C0A: movs r5, 0 cmp r5, r7 bge _08012C50 ldr r0, [sp, 0x4] cmp r0, 0xFF beq _08012C50 add r6, sp, 0x4 _08012C18: ldm r6!, {r0} adds r0, 0x30 lsls r0, 24 lsrs r0, 24 bl sub_8092288 adds r4, r0, 0 bl sub_8008584 movs r1, 0x6 ldrsh r0, [r0, r1] add r8, r0 mov r2, r10 mov r1, r8 subs r0, r2, r1 ldr r2, [sp, 0x48] str r2, [sp] mov r1, r9 adds r2, r4, 0 ldr r3, [sp, 0x44] bl xxx_call_draw_char adds r5, 0x1 cmp r5, r7 bge _08012C50 ldr r0, [r6] cmp r0, 0xFF bne _08012C18 _08012C50: add sp, 0x24 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8012BC4 thumb_func_start sub_8012C60 sub_8012C60: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 adds r0, r2, 0 adds r7, r3, 0 lsls r0, 24 lsrs r0, 24 bl sub_8092288 adds r4, r0, 0 bl sub_8008584 adds r1, r0, 0 movs r2, 0x6 ldrsh r0, [r1, r2] cmp r0, 0xB bgt _08012C90 movs r1, 0xC subs r1, r0 lsrs r0, r1, 31 adds r1, r0 asrs r0, r1, 1 b _08012C92 _08012C90: movs r0, 0 _08012C92: adds r0, r5, r0 ldr r1, [sp, 0x18] str r1, [sp] adds r1, r6, 0 adds r2, r4, 0 adds r3, r7, 0 bl xxx_call_draw_char add sp, 0x4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8012C60 thumb_func_start sub_8012CAC sub_8012CAC: push {r4-r7,lr} mov r7, r8 push {r7} mov r8, r0 adds r4, r1, 0 movs r7, 0 movs r6, 0 ldr r0, [r4] cmp r0, 0 beq _08012CE6 movs r5, 0x80 lsls r5, 9 _08012CC4: adds r0, r5, 0 movs r1, 0x80 lsls r1, 9 adds r5, r1 asrs r7, r0, 16 ldr r0, [r4] bl sub_8008ED0 lsls r0, 16 asrs r0, 16 cmp r0, r6 ble _08012CDE adds r6, r0, 0 _08012CDE: adds r4, 0x8 ldr r0, [r4] cmp r0, 0 bne _08012CC4 _08012CE6: adds r0, r6, 0 cmp r0, 0 bge _08012CEE adds r0, 0x7 _08012CEE: asrs r0, 3 adds r0, 0x2 mov r1, r8 strh r0, [r1, 0xC] mov r0, r8 adds r1, r7, 0 bl sub_8012D08 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8012CAC thumb_func_start sub_8012D08 sub_8012D08: push {r4,lr} adds r4, r0, 0 adds r0, r1, 0 movs r1, 0xC bl sub_80095E4 lsls r0, 16 asrs r1, r0, 16 ldr r0, [r4, 0x4] cmp r0, 0x6 bne _08012D24 adds r0, r1, 0x2 lsls r0, 16 asrs r1, r0, 16 _08012D24: lsls r0, r1, 16 lsrs r0, 16 strh r0, [r4, 0xE] strh r0, [r4, 0x10] pop {r4} pop {r0} bx r0 thumb_func_end sub_8012D08 thumb_func_start sub_8012D34 sub_8012D34: push {r4,lr} adds r4, r0, 0 adds r0, r1, 0 movs r1, 0x18 bl sub_8009614 lsls r0, 16 asrs r1, r0, 16 ldr r0, [r4, 0x4] cmp r0, 0x6 bne _08012D50 adds r0, r1, 0x2 lsls r0, 16 asrs r1, r0, 16 _08012D50: lsls r0, r1, 16 lsrs r0, 16 strh r0, [r4, 0xE] strh r0, [r4, 0x10] pop {r4} pop {r0} bx r0 thumb_func_end sub_8012D34 thumb_func_start sub_8012D60 sub_8012D60: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r4, r0, 0 adds r5, r3, 0 ldr r7, [sp, 0x20] movs r3, 0 movs r6, 0x1 negs r6, r6 mov r12, r3 ldr r0, [sp, 0x24] str r0, [r4, 0x10] str r1, [r4, 0x4] str r2, [r4, 0x8] cmp r2, 0 bne _08012D88 ldr r0, _08012E00 str r0, [r4, 0x8] _08012D88: str r5, [r4, 0xC] ldr r0, [r1] adds r5, r4, 0 adds r5, 0x14 movs r2, 0x4C adds r2, r4 mov r8, r2 movs r2, 0x4D adds r2, r4 mov r9, r2 movs r2, 0x4E adds r2, r4 mov r10, r2 cmp r0, 0 beq _08012DC6 _08012DA6: cmp r7, 0 blt _08012DB2 ldr r0, [r1, 0x4] cmp r7, r0 bne _08012DB2 adds r6, r3, 0 _08012DB2: ldr r0, [r1] ldrb r0, [r0] cmp r0, 0x2A bne _08012DBC mov r12, r3 _08012DBC: adds r1, 0x8 adds r3, 0x1 ldr r0, [r1] cmp r0, 0 bne _08012DA6 _08012DC6: cmp r6, 0 bge _08012DCC mov r6, r12 _08012DCC: adds r0, r5, 0 adds r1, r3, 0 ldr r2, [sp, 0x24] bl sub_8013134 strh r6, [r4, 0x2C] adds r0, r5, 0 movs r1, 0 bl sub_80137B0 movs r0, 0x1 mov r1, r8 strb r0, [r1] mov r2, r9 strb r0, [r2] mov r1, r10 strb r0, [r1] subs r0, 0x2 str r0, [r4, 0x48] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08012E00: .4byte gUnknown_80D47B8 thumb_func_end sub_8012D60 thumb_func_start sub_8012E04 sub_8012E04: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r5, r0, 0 adds r7, r1, 0 mov r8, r2 mov r9, r3 ldr r3, [sp, 0x1C] movs r1, 0 movs r6, 0x1 negs r6, r6 movs r4, 0 ldr r0, [r7] cmp r0, 0 beq _08012E46 adds r2, r7, 0 _08012E26: cmp r3, 0 blt _08012E32 ldr r0, [r2, 0x4] cmp r3, r0 bne _08012E32 adds r6, r1, 0 _08012E32: ldr r0, [r2] ldrb r0, [r0] cmp r0, 0x2A bne _08012E3C adds r4, r1, 0 _08012E3C: adds r2, 0x8 adds r1, 0x1 ldr r0, [r2] cmp r0, 0 bne _08012E26 _08012E46: cmp r6, 0 bge _08012E4C adds r6, r4, 0 _08012E4C: adds r4, r5, 0 adds r4, 0x14 adds r0, r4, 0 ldr r2, [sp, 0x20] bl sub_8013134 strh r6, [r5, 0x2C] adds r0, r4, 0 movs r1, 0 bl sub_80137B0 ldr r0, [sp, 0x20] str r0, [r5, 0x10] mov r0, r8 str r0, [r5, 0x8] cmp r0, 0 bne _08012E72 ldr r0, _08012EA0 str r0, [r5, 0x8] _08012E72: mov r0, r9 str r0, [r5, 0xC] str r7, [r5, 0x4] adds r1, r5, 0 adds r1, 0x4E movs r0, 0 strb r0, [r1] adds r0, r5, 0 adds r0, 0x4C movs r1, 0x1 strb r1, [r0] adds r0, 0x1 strb r1, [r0] movs r0, 0x1 negs r0, r0 str r0, [r5, 0x48] pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08012EA0: .4byte gUnknown_80D47B8 thumb_func_end sub_8012E04 thumb_func_start sub_8012EA4 sub_8012EA4: push {lr} adds r2, r0, 0 adds r2, 0x4C strb r1, [r2] adds r2, 0x1 movs r1, 0x1 strb r1, [r2] bl sub_8012EBC pop {r0} bx r0 thumb_func_end sub_8012EA4 thumb_func_start sub_8012EBC sub_8012EBC: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x164 adds r5, r0, 0 movs r0, 0x4D adds r0, r5 mov r8, r0 ldrb r0, [r0] cmp r0, 0 beq _08012F9E ldr r0, [r5, 0x10] bl sub_80073B8 ldr r2, [r5, 0x10] lsls r0, r2, 3 adds r0, r2 lsls r0, 3 ldr r1, _08012F54 adds r0, r1 ldr r0, [r0, 0xC] cmp r0, 0x6 bne _08012F24 lsls r0, r2, 1 adds r0, r2 lsls r0, 3 mov r4, sp adds r4, r0 adds r4, 0x4 add r0, sp, 0x4 bl sub_8006518 ldr r0, [r5] bl sub_8008ED0 adds r1, r0, 0 ldr r0, [r4, 0x14] ldrb r0, [r0, 0x2] lsls r0, 3 subs r0, r1 lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 adds r0, 0x8 ldr r2, [r5] ldr r3, [r5, 0x10] movs r1, 0 str r1, [sp] bl sub_8014FF0 _08012F24: ldr r7, [r5, 0x8] ldr r4, [r5, 0x4] ldr r6, [r5, 0xC] movs r1, 0 mov r9, r1 ldr r0, [r4] mov r10, r8 cmp r0, 0 beq _08012F92 add r0, sp, 0x64 mov r8, r0 _08012F3A: ldr r3, [r4] ldrb r0, [r3] cmp r0, 0x2A bne _08012F44 adds r3, 0x1 _08012F44: cmp r6, 0 beq _08012F58 ldrh r0, [r6] lsls r0, 2 adds r0, r7 ldr r2, [r0] adds r6, 0x2 b _08012F64 .align 2, 0 _08012F54: .4byte gUnknown_2027370 _08012F58: ldr r0, [r4, 0x4] cmp r0, 0 bge _08012F62 ldr r2, [r7, 0x4] b _08012F64 _08012F62: ldr r2, [r7] _08012F64: mov r0, r8 ldr r1, _08012FBC bl sub_800D158 adds r0, r5, 0 adds r0, 0x14 mov r1, r9 bl sub_8013800 adds r1, r0, 0 ldr r3, [r5, 0x10] movs r0, 0 str r0, [sp] movs r0, 0x8 mov r2, r8 bl sub_8014FF0 adds r4, 0x8 movs r1, 0x1 add r9, r1 ldr r0, [r4] cmp r0, 0 bne _08012F3A _08012F92: ldr r0, [r5, 0x10] bl sub_80073E0 movs r0, 0 mov r1, r10 strb r0, [r1] _08012F9E: adds r0, r5, 0 adds r0, 0x4E ldrb r0, [r0] cmp r0, 0 beq _08012FC8 adds r0, r5, 0 adds r0, 0x4C ldrb r0, [r0] cmp r0, 0 beq _08012FC0 adds r0, r5, 0 adds r0, 0x14 bl AddMenuCursorSprite b _08012FC8 .align 2, 0 _08012FBC: .4byte gUnknown_80D4828 _08012FC0: adds r0, r5, 0 adds r0, 0x14 bl sub_8013660 _08012FC8: add sp, 0x164 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8012EBC thumb_func_start sub_8012FD8 sub_8012FD8: push {r4-r7,lr} adds r4, r0, 0 movs r0, 0x2C ldrsh r7, [r4, r0] adds r6, r4, 0 adds r6, 0x4C ldrb r0, [r6] cmp r0, 0 beq _08013094 adds r5, r4, 0 adds r5, 0x14 adds r0, r5, 0 bl GetKeyPress cmp r0, 0x2 beq _08013078 cmp r0, 0x2 bgt _08013002 cmp r0, 0x1 beq _08013028 b _08013094 _08013002: cmp r0, 0x7 beq _08013012 cmp r0, 0x8 bne _08013094 adds r0, r5, 0 bl MoveMenuCursorDown b _08013018 _08013012: adds r0, r5, 0 bl MoveMenuCursorUp _08013018: movs r1, 0x2C ldrsh r0, [r4, r1] cmp r7, r0 beq _08013094 movs r0, 0x3 bl sub_80119D4 b _08013094 _08013028: adds r0, r5, 0 bl sub_80137A8 adds r2, r0, 0 lsls r1, r2, 3 ldr r0, [r4, 0x4] adds r0, r1 ldr r3, [r0, 0x4] cmp r3, 0 blt _08013068 ldr r1, [r4, 0xC] cmp r1, 0 beq _0801304C lsls r0, r2, 1 adds r0, r1 ldrh r0, [r0] cmp r0, 0x1 beq _08013068 _0801304C: str r3, [r4, 0x48] adds r1, r4, 0 adds r1, 0x4C movs r0, 0 strb r0, [r1] strh r0, [r4, 0x38] ldr r1, [r4, 0xC] cmp r1, 0 beq _08013070 lsls r0, r2, 1 adds r0, r1 ldrh r0, [r0] cmp r0, 0x2 bne _08013070 _08013068: movs r0, 0x2 bl sub_80119D4 b _08013094 _08013070: movs r0, 0 bl sub_80119D4 b _08013094 _08013078: movs r1, 0x2E ldrsh r0, [r4, r1] ldr r1, [r4, 0x4] lsls r0, 3 adds r0, r1 ldr r0, [r0, 0x4] cmp r0, 0 blt _08013094 str r0, [r4, 0x48] movs r0, 0 strb r0, [r6] movs r0, 0x1 bl sub_80119D4 _08013094: adds r0, r4, 0 bl sub_8012EBC adds r0, r4, 0 adds r0, 0x4C ldrb r0, [r0] pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8012FD8 thumb_func_start sub_80130A8 sub_80130A8: push {r4-r6,lr} adds r4, r0, 0 adds r6, r4, 0 adds r6, 0x4C ldrb r0, [r6] cmp r0, 0 beq _08013100 adds r5, r4, 0 adds r5, 0x14 adds r0, r5, 0 bl GetKeyPress cmp r0, 0x1 beq _080130CA cmp r0, 0x2 beq _080130E6 b _08013100 _080130CA: adds r0, r5, 0 bl sub_80137A8 lsls r0, 3 ldr r1, [r4, 0x4] adds r1, r0 ldr r0, [r1, 0x4] str r0, [r4, 0x48] movs r0, 0 strb r0, [r6] strh r0, [r4, 0x38] bl sub_80119D4 b _08013100 _080130E6: movs r1, 0x2E ldrsh r0, [r4, r1] ldr r1, [r4, 0x4] lsls r0, 3 adds r0, r1 ldr r0, [r0, 0x4] cmp r0, 0 blt _08013100 str r0, [r4, 0x48] movs r0, 0 strb r0, [r6] bl sub_80119D4 _08013100: adds r0, r4, 0 bl sub_8012EBC adds r0, r4, 0 adds r0, 0x4C ldrb r0, [r0] pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80130A8 thumb_func_start sub_8013114 sub_8013114: push {lr} adds r2, r0, 0 adds r0, 0x4C ldrb r0, [r0] cmp r0, 0 beq _08013124 movs r0, 0x1 b _0801312E _08013124: cmp r1, 0 beq _0801312C ldr r0, [r2, 0x48] str r0, [r1] _0801312C: movs r0, 0 _0801312E: pop {r1} bx r1 thumb_func_end sub_8013114 thumb_func_start sub_8013134 sub_8013134: push {r4,lr} adds r4, r0, 0 lsls r0, r2, 3 adds r0, r2 lsls r0, 3 ldr r3, _0801315C adds r0, r3 str r2, [r4] movs r2, 0 strh r2, [r4, 0x18] strh r1, [r4, 0x1A] strh r1, [r4, 0x1C] strh r2, [r4, 0x1E] strh r2, [r4, 0x4] ldr r0, [r0, 0xC] cmp r0, 0x6 bne _08013160 movs r0, 0x10 b _08013162 .align 2, 0 _0801315C: .4byte gUnknown_2027370 _08013160: movs r0, 0x2 _08013162: strh r0, [r4, 0x6] movs r0, 0 strh r0, [r4, 0xC] strh r0, [r4, 0xE] strh r0, [r4, 0x14] strh r0, [r4, 0x24] adds r0, r4, 0 adds r0, 0x28 bl sub_801317C pop {r4} pop {r0} bx r0 thumb_func_end sub_8013134 thumb_func_start sub_801317C sub_801317C: push {lr} movs r1, 0 strb r1, [r0] strb r1, [r0, 0x1] strb r1, [r0, 0x2] strb r1, [r0, 0x4] strb r1, [r0, 0x3] ldr r1, _080131A4 strh r1, [r0, 0x8] movs r1, 0x1 negs r1, r1 strh r1, [r0, 0xA] adds r0, 0x8 bl nullsub_7 bl sub_8004914 pop {r0} bx r0 .align 2, 0 _080131A4: .4byte 0x0000ffff thumb_func_end sub_801317C thumb_func_start AddMenuCursorSprite AddMenuCursorSprite: push {lr} movs r1, 0 bl AddMenuCursorSprite_ pop {r0} bx r0 thumb_func_end AddMenuCursorSprite thumb_func_start AddMenuCursorSprite_ AddMenuCursorSprite_: push {r4-r6,lr} sub sp, 0x8 adds r6, r0, 0 movs r0, 0 movs r1, 0 str r0, [sp] str r1, [sp, 0x4] movs r1, 0x1A ldrsh r0, [r6, r1] cmp r0, 0 bgt _080131CC b _080132D6 _080131CC: adds r0, r6, 0 bl UpdateMenuCursorSpriteCoords ldrh r1, [r6, 0x24] movs r0, 0x8 ands r0, r1 cmp r0, 0 bne _080132D6 mov r0, sp ldrh r0, [r0] ldr r1, _080132FC ands r1, r0 ldr r3, _08013300 ldr r0, [sp] ands r0, r3 orrs r0, r1 str r0, [sp] mov r1, sp ldrh r1, [r1] adds r2, r3, 0 ands r2, r0 orrs r2, r1 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r0, _08013304 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r4, _08013308 adds r0, r4, 0 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r0, _0801330C ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r0, _08013310 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r0, _08013314 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] ands r3, r1 orrs r3, r0 str r3, [sp] mov r3, sp movs r2, 0xFD lsls r2, 2 ldrh r1, [r3, 0x4] movs r0, 0xFC lsls r0, 8 ands r0, r1 orrs r0, r2 ands r0, r4 movs r5, 0xF movs r1, 0xF0 lsls r1, 8 ldr r4, _08013318 ands r0, r4 orrs r0, r1 strh r0, [r3, 0x4] ldrh r0, [r3, 0x6] ldr r1, _0801331C ands r1, r0 ldr r0, _08013320 ands r1, r0 movs r2, 0x8 ldrsh r0, [r6, r2] ldr r2, _08013324 ands r0, r2 strh r0, [r3, 0x2] movs r2, 0xA ldrsh r0, [r6, r2] adds r0, 0x1 ands r0, r4 lsls r0, 4 ands r1, r5 orrs r1, r0 strh r1, [r3, 0x6] mov r0, sp movs r1, 0xFF movs r2, 0 movs r3, 0 bl AddSprite _080132D6: adds r0, r6, 0 bl sub_8013470 movs r1, 0x14 ldrsh r0, [r6, r1] cmp r0, 0 beq _080132EC adds r0, r6, 0 adds r0, 0x14 bl sub_801332C _080132EC: ldrh r0, [r6, 0x24] adds r0, 0x1 strh r0, [r6, 0x24] add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080132FC: .4byte 0x0000feff _08013300: .4byte 0xffff0000 _08013304: .4byte 0x0000fdff _08013308: .4byte 0x0000f3ff _0801330C: .4byte 0x0000efff _08013310: .4byte 0x0000dfff _08013314: .4byte 0x00003fff _08013318: .4byte 0x00000fff _0801331C: .4byte 0x0000fffe _08013320: .4byte 0x0000fffd _08013324: .4byte 0x000001ff thumb_func_end AddMenuCursorSprite_ thumb_func_start nullsub_34 nullsub_34: bx lr thumb_func_end nullsub_34 thumb_func_start sub_801332C sub_801332C: push {r4-r6,lr} sub sp, 0x8 movs r1, 0 movs r2, 0 str r1, [sp] str r2, [sp, 0x4] mov r1, sp ldrh r1, [r1] ldr r2, _08013440 ands r2, r1 ldr r4, _08013444 ldr r1, [sp] ands r1, r4 orrs r1, r2 str r1, [sp] mov r2, sp ldrh r2, [r2] adds r3, r4, 0 ands r3, r1 orrs r3, r2 str r3, [sp] mov r1, sp ldrh r2, [r1] ldr r1, _08013448 ands r1, r2 adds r2, r4, 0 ands r2, r3 orrs r2, r1 str r2, [sp] mov r1, sp ldrh r1, [r1] adds r3, r4, 0 ands r3, r2 orrs r3, r1 str r3, [sp] movs r5, 0x80 lsls r5, 3 mov r1, sp ldrh r2, [r1] ldr r6, _0801344C adds r1, r6, 0 ands r1, r2 adds r2, r4, 0 ands r2, r3 orrs r2, r1 str r2, [sp] mov r1, sp ldrh r1, [r1] orrs r5, r1 adds r3, r4, 0 ands r3, r2 orrs r3, r5 str r3, [sp] mov r1, sp ldrh r2, [r1] ldr r1, _08013450 ands r1, r2 adds r2, r4, 0 ands r2, r3 orrs r2, r1 str r2, [sp] mov r1, sp ldrh r1, [r1] adds r3, r4, 0 ands r3, r2 orrs r3, r1 str r3, [sp] mov r1, sp ldrh r2, [r1] ldr r1, _08013454 ands r1, r2 adds r2, r4, 0 ands r2, r3 orrs r2, r1 str r2, [sp] mov r1, sp ldrh r1, [r1] adds r3, r4, 0 ands r3, r2 orrs r3, r1 str r3, [sp] mov r1, sp ldrh r2, [r1] ldr r1, _08013458 ands r1, r2 adds r2, r4, 0 ands r2, r3 orrs r2, r1 str r2, [sp] mov r1, sp ldrh r1, [r1] ands r4, r2 orrs r4, r1 str r4, [sp] mov r4, sp ldr r3, _0801345C ldrh r2, [r4, 0x4] movs r1, 0xFC lsls r1, 8 ands r1, r2 orrs r1, r3 ands r1, r6 movs r6, 0xF movs r2, 0xF0 lsls r2, 8 ldr r5, _08013460 ands r1, r5 orrs r1, r2 strh r1, [r4, 0x4] ldrh r1, [r4, 0x6] ldr r2, _08013464 ands r2, r1 ldr r1, _08013468 ands r2, r1 movs r3, 0 ldrsh r1, [r0, r3] ldr r3, _0801346C ands r1, r3 strh r1, [r4, 0x2] movs r1, 0x2 ldrsh r0, [r0, r1] adds r0, 0x1 ands r0, r5 lsls r0, 4 ands r2, r6 orrs r2, r0 strh r2, [r4, 0x6] mov r0, sp movs r1, 0xFF movs r2, 0 movs r3, 0 bl AddSprite add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08013440: .4byte 0x0000feff _08013444: .4byte 0xffff0000 _08013448: .4byte 0x0000fdff _0801344C: .4byte 0x0000f3ff _08013450: .4byte 0x0000efff _08013454: .4byte 0x0000dfff _08013458: .4byte 0x00003fff _0801345C: .4byte 0x000003f5 _08013460: .4byte 0x00000fff _08013464: .4byte 0x0000fffe _08013468: .4byte 0x0000fffd _0801346C: .4byte 0x000001ff thumb_func_end sub_801332C thumb_func_start sub_8013470 sub_8013470: push {r4-r6,lr} sub sp, 0x8 adds r6, r0, 0 movs r0, 0 movs r1, 0 str r0, [sp] str r1, [sp, 0x4] movs r1, 0xC ldrsh r0, [r6, r1] cmp r0, 0 bne _08013488 b _08013624 _08013488: movs r2, 0x1E ldrsh r0, [r6, r2] cmp r0, 0 beq _08013586 mov r0, sp ldrh r0, [r0] ldr r1, _0801362C ands r1, r0 ldr r3, _08013630 ldr r0, [sp] ands r0, r3 orrs r0, r1 str r0, [sp] mov r1, sp ldrh r1, [r1] adds r2, r3, 0 ands r2, r0 orrs r2, r1 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r0, _08013634 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r4, _08013638 adds r0, r4, 0 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r0, _0801363C ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r0, _08013640 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r0, _08013644 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] ands r3, r1 orrs r3, r0 str r3, [sp] mov r3, sp ldr r2, _08013648 ldrh r1, [r3, 0x4] movs r0, 0xFC lsls r0, 8 ands r0, r1 orrs r0, r2 ands r0, r4 movs r5, 0xF movs r1, 0xF0 lsls r1, 8 ldr r4, _0801364C ands r0, r4 orrs r0, r1 strh r0, [r3, 0x4] ldrh r0, [r3, 0x6] ldr r1, _08013650 ands r1, r0 ldr r0, _08013654 ands r1, r0 movs r2, 0xC ldrsh r0, [r6, r2] ldr r2, _08013658 ands r0, r2 strh r0, [r3, 0x2] movs r2, 0xE ldrsh r0, [r6, r2] ands r0, r4 lsls r0, 4 ands r1, r5 orrs r1, r0 strh r1, [r3, 0x6] mov r0, sp movs r1, 0xFF movs r2, 0 movs r3, 0 bl AddSprite _08013586: movs r1, 0x20 ldrsh r0, [r6, r1] cmp r0, 0 beq _08013624 adds r1, r0, 0 movs r2, 0x1E ldrsh r0, [r6, r2] adds r0, 0x1 cmp r1, r0 beq _08013624 mov r0, sp ldrh r0, [r0] ldr r1, _0801362C ands r1, r0 mov r0, sp strh r1, [r0] strh r1, [r0] ldr r0, _08013634 ands r0, r1 mov r1, sp strh r0, [r1] strh r0, [r1] ldr r4, _08013638 ands r0, r4 strh r0, [r1] strh r0, [r1] ldr r1, _0801363C ands r1, r0 mov r0, sp strh r1, [r0] strh r1, [r0] ldr r2, _08013640 ands r2, r1 strh r2, [r0] strh r2, [r0] ldr r0, _08013644 ands r0, r2 mov r1, sp strh r0, [r1] strh r0, [r1] mov r3, sp ldr r2, _0801365C ldrh r1, [r3, 0x4] movs r0, 0xFC lsls r0, 8 ands r0, r1 orrs r0, r2 ands r0, r4 movs r5, 0xF movs r1, 0xF0 lsls r1, 8 ldr r4, _0801364C ands r0, r4 orrs r0, r1 strh r0, [r3, 0x4] ldrh r0, [r3, 0x6] ldr r1, _08013650 ands r1, r0 ldr r0, _08013654 ands r1, r0 movs r2, 0xC ldrsh r0, [r6, r2] adds r0, 0xA ldr r2, _08013658 ands r0, r2 strh r0, [r3, 0x2] movs r2, 0xE ldrsh r0, [r6, r2] ands r0, r4 lsls r0, 4 ands r1, r5 orrs r1, r0 strh r1, [r3, 0x6] mov r0, sp movs r1, 0xFF movs r2, 0 movs r3, 0 bl AddSprite _08013624: add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0801362C: .4byte 0x0000feff _08013630: .4byte 0xffff0000 _08013634: .4byte 0x0000fdff _08013638: .4byte 0x0000f3ff _0801363C: .4byte 0x0000efff _08013640: .4byte 0x0000dfff _08013644: .4byte 0x00003fff _08013648: .4byte 0x000003f2 _0801364C: .4byte 0x00000fff _08013650: .4byte 0x0000fffe _08013654: .4byte 0x0000fffd _08013658: .4byte 0x000001ff _0801365C: .4byte 0x000003f3 thumb_func_end sub_8013470 thumb_func_start sub_8013660 sub_8013660: push {r4,lr} adds r4, r0, 0 movs r1, 0x1A ldrsh r0, [r4, r1] cmp r0, 0 ble _0801367A adds r0, r4, 0 bl UpdateMenuCursorSpriteCoords adds r0, r4, 0 adds r0, 0x8 bl sub_801332C _0801367A: pop {r4} pop {r0} bx r0 thumb_func_end sub_8013660 thumb_func_start UpdateMenuCursorSpriteCoords UpdateMenuCursorSpriteCoords: push {r4,r5,lr} adds r5, r0, 0 ldr r0, [r5] lsls r4, r0, 3 adds r4, r0 lsls r4, 3 ldr r0, _080136B8 adds r4, r0 movs r1, 0 ldrsh r0, [r4, r1] lsls r0, 3 ldrh r2, [r5, 0x4] adds r0, r2 strh r0, [r5, 0x8] movs r0, 0x18 ldrsh r1, [r5, r0] adds r0, r5, 0 bl sub_8013800 movs r2, 0x2 ldrsh r1, [r4, r2] lsls r1, 3 adds r1, r0 strh r1, [r5, 0xA] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080136B8: .4byte gUnknown_2027370 thumb_func_end UpdateMenuCursorSpriteCoords thumb_func_start MoveMenuCursorDown MoveMenuCursorDown: push {lr} adds r1, r0, 0 movs r3, 0 strh r3, [r1, 0x24] movs r0, 0x1A ldrsh r2, [r1, r0] cmp r2, 0 ble _080136DA ldrh r0, [r1, 0x18] adds r0, 0x1 strh r0, [r1, 0x18] lsls r0, 16 asrs r0, 16 cmp r0, r2 blt _080136DC _080136DA: strh r3, [r1, 0x18] _080136DC: pop {r0} bx r0 thumb_func_end MoveMenuCursorDown thumb_func_start sub_80136E0 sub_80136E0: push {r4,r5,lr} adds r2, r0, 0 lsls r1, 24 lsrs r5, r1, 24 movs r1, 0 strh r1, [r2, 0x24] ldrh r4, [r2, 0x1A] movs r0, 0x1A ldrsh r3, [r2, r0] cmp r3, 0 ble _08013708 ldrh r0, [r2, 0x18] adds r0, 0x1 strh r0, [r2, 0x18] lsls r0, 16 asrs r0, 16 cmp r0, r3 blt _08013710 cmp r5, 0 beq _0801370C _08013708: strh r1, [r2, 0x18] b _08013710 _0801370C: subs r0, r4, 0x1 strh r0, [r2, 0x18] _08013710: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80136E0 thumb_func_start MoveMenuCursorUp MoveMenuCursorUp: push {r4,lr} adds r1, r0, 0 movs r2, 0 strh r2, [r1, 0x24] ldrh r3, [r1, 0x1A] movs r4, 0x1A ldrsh r0, [r1, r4] cmp r0, 0 bgt _0801372E strh r2, [r1, 0x18] b _0801373E _0801372E: ldrh r0, [r1, 0x18] subs r0, 0x1 strh r0, [r1, 0x18] lsls r0, 16 cmp r0, 0 bge _0801373E subs r0, r3, 0x1 strh r0, [r1, 0x18] _0801373E: pop {r4} pop {r0} bx r0 thumb_func_end MoveMenuCursorUp thumb_func_start sub_8013744 sub_8013744: push {r4-r6,lr} adds r2, r0, 0 lsls r1, 24 lsrs r1, 24 adds r5, r1, 0 movs r3, 0 strh r3, [r2, 0x24] ldrh r4, [r2, 0x1A] movs r6, 0x1A ldrsh r0, [r2, r6] cmp r0, 0 bgt _08013760 strh r3, [r2, 0x18] b _08013778 _08013760: ldrh r0, [r2, 0x18] subs r0, 0x1 strh r0, [r2, 0x18] lsls r0, 16 cmp r0, 0 bge _08013778 cmp r1, 0 beq _08013776 subs r0, r4, 0x1 strh r0, [r2, 0x18] b _08013778 _08013776: strh r5, [r2, 0x18] _08013778: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8013744 thumb_func_start sub_8013780 sub_8013780: push {lr} adds r2, r0, 0 cmp r1, 0 bge _0801378E movs r0, 0 strh r0, [r2, 0x18] b _080137A0 _0801378E: movs r3, 0x1A ldrsh r0, [r2, r3] cmp r1, r0 blt _0801379E ldrh r0, [r2, 0x1A] subs r0, 0x1 strh r0, [r2, 0x18] b _080137A0 _0801379E: strh r1, [r2, 0x18] _080137A0: movs r0, 0 strh r0, [r2, 0x24] pop {r0} bx r0 thumb_func_end sub_8013780 thumb_func_start sub_80137A8 sub_80137A8: movs r1, 0x18 ldrsh r0, [r0, r1] bx lr thumb_func_end sub_80137A8 thumb_func_start sub_80137B0 sub_80137B0: push {r4,lr} adds r4, r0, 0 cmp r1, 0 ble _080137BC lsls r0, r1, 8 b _080137E2 _080137BC: ldr r3, _080137F4 ldr r1, [r4] lsls r0, r1, 3 adds r0, r1 lsls r1, r0, 3 adds r0, r3, 0 adds r0, 0xC adds r0, r1, r0 ldr r0, [r0] movs r2, 0 cmp r0, 0x6 bne _080137D6 movs r2, 0x10 _080137D6: adds r0, r1, r3 movs r1, 0x6 ldrsh r0, [r0, r1] lsls r0, 3 subs r0, r2 lsls r0, 8 _080137E2: movs r2, 0x1C ldrsh r1, [r4, r2] bl __divsi3 str r0, [r4, 0x10] pop {r4} pop {r0} bx r0 .align 2, 0 _080137F4: .4byte gUnknown_2027370 thumb_func_end sub_80137B0 thumb_func_start sub_80137F8 sub_80137F8: lsls r1, 8 str r1, [r0, 0x10] bx lr thumb_func_end sub_80137F8 thumb_func_start sub_8013800 sub_8013800: push {lr} movs r3, 0x6 ldrsh r2, [r0, r3] ldr r0, [r0, 0x10] muls r0, r1 cmp r0, 0 bge _08013810 adds r0, 0xFF _08013810: asrs r0, 8 adds r0, r2, r0 pop {r1} bx r1 thumb_func_end sub_8013800 thumb_func_start sub_8013818 sub_8013818: push {r4,lr} adds r4, r0, 0 str r3, [r4] movs r0, 0 strh r1, [r4, 0x22] strh r2, [r4, 0x1C] strh r0, [r4, 0x14] strh r0, [r4, 0x24] strh r0, [r4, 0x18] strh r0, [r4, 0x1E] adds r0, r4, 0 adds r0, 0x28 bl sub_801317C adds r0, r4, 0 bl sub_8013984 adds r0, r4, 0 movs r1, 0xC bl sub_80137F8 pop {r4} pop {r0} bx r0 thumb_func_end sub_8013818 thumb_func_start sub_8013848 sub_8013848: push {r4,lr} adds r4, r0, 0 str r3, [r4] movs r0, 0 strh r1, [r4, 0x22] strh r2, [r4, 0x1C] strh r0, [r4, 0x14] strh r0, [r4, 0x24] strh r0, [r4, 0x18] strh r0, [r4, 0x1E] adds r0, r4, 0 adds r0, 0x28 bl sub_801317C adds r0, r4, 0 bl sub_8013984 adds r0, r4, 0 movs r1, 0x18 bl sub_80137F8 pop {r4} pop {r0} bx r0 thumb_func_end sub_8013848 thumb_func_start sub_8013878 sub_8013878: push {r4-r6,lr} adds r5, r0, 0 adds r6, r1, 0 cmp r6, 0 bge _08013886 movs r6, 0 b _08013890 _08013886: movs r1, 0x22 ldrsh r0, [r5, r1] cmp r6, r0 blt _08013890 subs r6, r0, 0x1 _08013890: movs r0, 0x1C ldrsh r1, [r5, r0] adds r0, r6, 0 bl __divsi3 movs r4, 0 strh r0, [r5, 0x1E] movs r0, 0x1C ldrsh r1, [r5, r0] adds r0, r6, 0 bl __modsi3 strh r0, [r5, 0x18] strh r4, [r5, 0x24] adds r0, r5, 0 bl sub_8013984 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8013878 thumb_func_start sub_80138B8 sub_80138B8: push {r4-r7,lr} adds r5, r0, 0 lsls r4, r1, 24 lsrs r4, 24 movs r0, 0x1E ldrsh r7, [r5, r0] movs r1, 0x18 ldrsh r6, [r5, r1] adds r0, r5, 0 bl AddMenuCursorSprite cmp r4, 0 beq _0801391C adds r0, r5, 0 bl GetKeyPress cmp r0, 0x8 beq _080138F8 cmp r0, 0x8 bgt _080138E6 cmp r0, 0x7 beq _080138F0 b _0801391C _080138E6: cmp r0, 0x9 beq _0801390E cmp r0, 0xA beq _08013916 b _0801391C _080138F0: adds r0, r5, 0 bl MoveMenuCursorUp b _080138FE _080138F8: adds r0, r5, 0 bl MoveMenuCursorDown _080138FE: movs r1, 0x18 ldrsh r0, [r5, r1] cmp r6, r0 beq _0801391C movs r0, 0x3 bl sub_80119D4 b _0801391C _0801390E: adds r0, r5, 0 bl sub_8013A7C b _0801391C _08013916: adds r0, r5, 0 bl sub_8013A54 _0801391C: movs r1, 0x1E ldrsh r0, [r5, r1] cmp r7, r0 bne _08013928 movs r0, 0 b _08013930 _08013928: movs r0, 0x4 bl sub_80119D4 movs r0, 0x1 _08013930: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80138B8 thumb_func_start sub_8013938 sub_8013938: push {r4,r5,lr} adds r4, r0, 0 movs r0, 0x1E ldrsh r5, [r4, r0] movs r0, 0 strh r0, [r4, 0x1A] strh r0, [r4, 0x14] adds r0, r4, 0 bl AddMenuCursorSprite adds r0, r4, 0 bl GetKeyPress cmp r0, 0x9 beq _0801395C cmp r0, 0xA beq _08013964 b _0801396A _0801395C: adds r0, r4, 0 bl sub_8013A7C b _0801396A _08013964: adds r0, r4, 0 bl sub_8013A54 _0801396A: movs r1, 0x1E ldrsh r0, [r4, r1] cmp r5, r0 bne _08013976 movs r0, 0 b _0801397E _08013976: movs r0, 0x4 bl sub_80119D4 movs r0, 0x1 _0801397E: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8013938 thumb_func_start sub_8013984 sub_8013984: push {r4-r6,lr} adds r4, r0, 0 ldr r1, [r4] lsls r0, r1, 3 adds r0, r1 lsls r0, 3 ldr r1, _08013A20 adds r6, r0, r1 ldrh r1, [r4, 0x1C] movs r2, 0x1C ldrsh r0, [r4, r2] cmp r0, 0 bne _080139A2 adds r0, r1, 0x1 strh r0, [r4, 0x1C] _080139A2: movs r1, 0x22 ldrsh r0, [r4, r1] movs r2, 0x1C ldrsh r1, [r4, r2] bl __divsi3 adds r5, r0, 0 strh r5, [r4, 0x20] movs r1, 0x22 ldrsh r0, [r4, r1] movs r2, 0x1C ldrsh r1, [r4, r2] bl __modsi3 cmp r0, 0 beq _080139C6 adds r0, r5, 0x1 strh r0, [r4, 0x20] _080139C6: movs r0, 0x1E ldrsh r1, [r4, r0] movs r2, 0x20 ldrsh r0, [r4, r2] subs r0, 0x1 ldrh r5, [r4, 0x20] cmp r1, r0 ble _080139DA subs r0, r5, 0x1 strh r0, [r4, 0x1E] _080139DA: movs r0, 0x1E ldrsh r1, [r4, r0] movs r2, 0x20 ldrsh r0, [r4, r2] subs r0, 0x1 cmp r1, r0 bne _080139F8 movs r1, 0x22 ldrsh r0, [r4, r1] movs r2, 0x1C ldrsh r1, [r4, r2] bl __modsi3 cmp r0, 0 bne _080139FA _080139F8: ldrh r0, [r4, 0x1C] _080139FA: strh r0, [r4, 0x1A] movs r0, 0x18 ldrsh r1, [r4, r0] movs r2, 0x1A ldrsh r0, [r4, r2] subs r0, 0x1 cmp r1, r0 ble _08013A10 ldrh r0, [r4, 0x1A] subs r0, 0x1 strh r0, [r4, 0x18] _08013A10: movs r1, 0 strh r1, [r4, 0x4] ldr r0, [r6, 0xC] cmp r0, 0x6 bne _08013A24 movs r0, 0x10 strh r0, [r4, 0x6] b _08013A26 .align 2, 0 _08013A20: .4byte gUnknown_2027370 _08013A24: strh r1, [r4, 0x6] _08013A26: lsls r0, r5, 16 asrs r0, 16 cmp r0, 0x1 bgt _08013A32 movs r0, 0 b _08013A40 _08013A32: movs r1, 0 ldrsh r0, [r6, r1] movs r2, 0x4 ldrsh r1, [r6, r2] adds r0, r1 subs r0, 0x2 lsls r0, 3 _08013A40: strh r0, [r4, 0xC] movs r1, 0x2 ldrsh r0, [r6, r1] adds r0, 0x1 lsls r0, 3 subs r0, 0x2 strh r0, [r4, 0xE] pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8013984 thumb_func_start sub_8013A54 sub_8013A54: push {lr} adds r2, r0, 0 movs r0, 0x1E ldrsh r1, [r2, r0] movs r3, 0x20 ldrsh r0, [r2, r3] subs r0, 0x1 cmp r1, r0 bge _08013A6C ldrh r0, [r2, 0x1E] adds r0, 0x1 b _08013A6E _08013A6C: movs r0, 0 _08013A6E: strh r0, [r2, 0x1E] adds r0, r2, 0 bl sub_8013984 pop {r0} bx r0 thumb_func_end sub_8013A54 thumb_func_start sub_8013A7C sub_8013A7C: push {lr} adds r1, r0, 0 ldrh r2, [r1, 0x1E] movs r3, 0x1E ldrsh r0, [r1, r3] cmp r0, 0 bgt _08013A90 ldrh r0, [r1, 0x20] subs r0, 0x1 b _08013A92 _08013A90: subs r0, r2, 0x1 _08013A92: strh r0, [r1, 0x1E] adds r0, r1, 0 bl sub_8013984 pop {r0} bx r0 thumb_func_end sub_8013A7C thumb_func_start sub_8013AA0 sub_8013AA0: push {r4,r5,lr} sub sp, 0x28 adds r5, r0, 0 ldrh r1, [r5, 0x28] ldr r0, _08013B9C ands r0, r1 ldr r1, _08013BA0 ands r0, r1 ldr r4, _08013BA4 ands r0, r4 ldr r1, _08013BA8 ands r0, r1 ldr r1, _08013BAC ands r0, r1 movs r1, 0x80 lsls r1, 7 ldr r3, _08013BB0 ands r0, r3 orrs r0, r1 strh r0, [r5, 0x28] movs r1, 0x80 lsls r1, 6 ldrh r0, [r5, 0x2A] ldr r2, _08013BB4 ands r2, r0 orrs r2, r1 ands r2, r3 movs r3, 0xFC lsls r3, 2 ldrh r1, [r5, 0x2C] movs r0, 0xFC lsls r0, 8 ands r0, r1 orrs r0, r3 ands r0, r4 movs r3, 0xF movs r4, 0xF0 lsls r4, 8 ldr r1, _08013BB8 ands r0, r1 orrs r0, r4 strh r0, [r5, 0x2C] movs r0, 0xFE lsls r0, 8 ands r2, r0 movs r0, 0xF0 orrs r2, r0 strh r2, [r5, 0x2A] subs r1, 0xFF ldrh r0, [r5, 0x2E] ands r3, r0 movs r0, 0 orrs r3, r1 strh r3, [r5, 0x2E] adds r1, r5, 0 adds r1, 0x26 strb r0, [r1] ldr r1, [r5, 0xC] ldr r2, [r5, 0x10] mov r0, sp bl ConvertToDecimal ldr r0, [r5, 0x10] adds r1, r5, 0 adds r1, 0x25 strb r0, [r1] ldrb r2, [r1] subs r0, r2, 0x1 lsls r0, 2 add r0, sp ldr r0, [r0] cmp r0, 0 bne _08013B50 cmp r2, 0x1 bls _08013B50 adds r2, r1, 0 _08013B38: ldrb r0, [r2] subs r0, 0x1 strb r0, [r2] ldrb r1, [r2] subs r0, r1, 0x1 lsls r0, 2 add r0, sp ldr r0, [r0] cmp r0, 0 bne _08013B50 cmp r1, 0x1 bhi _08013B38 _08013B50: ldr r1, [r5, 0x4] str r1, [r5] ldr r2, [r5, 0x10] mov r0, sp bl ConvertToDecimal adds r0, r5, 0 adds r0, 0x25 ldrb r0, [r0] subs r0, 0x1 adds r1, r5, 0 adds r1, 0x24 strb r0, [r1] ldrb r2, [r1] lsls r0, r2, 2 add r0, sp ldr r0, [r0] cmp r0, 0 bne _08013B92 cmp r2, 0 beq _08013B92 adds r2, r1, 0 _08013B7C: ldrb r0, [r2] subs r0, 0x1 strb r0, [r2] ldrb r1, [r2] lsls r0, r1, 2 add r0, sp ldr r0, [r0] cmp r0, 0 bne _08013B92 cmp r1, 0 bne _08013B7C _08013B92: add sp, 0x28 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08013B9C: .4byte 0x0000feff _08013BA0: .4byte 0x0000fdff _08013BA4: .4byte 0x0000f3ff _08013BA8: .4byte 0x0000efff _08013BAC: .4byte 0x0000dfff _08013BB0: .4byte 0x00003fff _08013BB4: .4byte 0x0000c1ff _08013BB8: .4byte 0x00000fff thumb_func_end sub_8013AA0 thumb_func_start sub_8013BBC sub_8013BBC: push {r4-r7,lr} adds r7, r0, 0 adds r4, r7, 0 adds r4, 0x26 ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] adds r0, r7, 0 bl sub_8013D10 ldrb r1, [r4] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08013C26 movs r2, 0x80 lsls r2, 6 ldrh r1, [r7, 0x2A] ldr r4, _08013C38 adds r0, r4, 0 ands r0, r1 orrs r0, r2 strh r0, [r7, 0x2A] adds r5, r7, 0 adds r5, 0x28 movs r6, 0x80 lsls r6, 1 adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 movs r3, 0 bl AddSprite ldrh r0, [r7, 0x2A] ands r4, r0 strh r4, [r7, 0x2A] ldrh r1, [r7, 0x2E] ldr r0, _08013C3C lsrs r1, 4 adds r1, 0x10 ands r1, r0 lsls r1, 4 ldrh r2, [r7, 0x2E] movs r0, 0xF ands r0, r2 orrs r0, r1 strh r0, [r7, 0x2E] adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 movs r3, 0 bl AddSprite _08013C26: adds r0, r7, 0 bl sub_8013DD0 lsls r0, 24 cmp r0, 0 beq _08013C40 movs r0, 0x1 b _08013C62 .align 2, 0 _08013C38: .4byte 0x0000c1ff _08013C3C: .4byte 0x00000fff _08013C40: bl sub_8012AE8 cmp r0, 0x1 beq _08013C56 cmp r0, 0x2 bne _08013C60 movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 b _08013C62 _08013C56: movs r0, 0 bl sub_80119D4 movs r0, 0x3 b _08013C62 _08013C60: movs r0, 0 _08013C62: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8013BBC thumb_func_start sub_8013C68 sub_8013C68: push {r4-r6,lr} sub sp, 0x2C adds r5, r0, 0 ldr r1, [r5] ldr r2, [r5, 0x10] add r0, sp, 0x4 bl ConvertToDecimal ldr r0, [r5, 0x10] subs r4, r0, 0x1 cmp r4, 0 ble _08013CA0 lsls r0, r4, 2 mov r1, sp adds r1, r0 adds r1, 0x4 ldr r0, [r1] cmp r0, 0 bne _08013CA0 movs r2, 0xFF _08013C90: str r2, [r1] subs r1, 0x4 subs r4, 0x1 cmp r4, 0 ble _08013CA0 ldr r0, [r1] cmp r0, 0 beq _08013C90 _08013CA0: movs r4, 0 adds r0, r5, 0 adds r0, 0x25 adds r6, r0, 0 b _08013CDA _08013CAA: lsls r0, r4, 2 add r0, sp adds r0, 0x4 ldr r0, [r0] cmp r0, 0xFF bne _08013CBA movs r3, 0x2A b _08013CC0 _08013CBA: adds r0, 0x30 lsls r0, 24 lsrs r3, r0, 24 _08013CC0: adds r4, 0x1 lsls r1, r4, 1 adds r1, r4 lsls r1, 2 ldr r0, [r5, 0x1C] subs r0, r1 ldr r1, [r5, 0x20] ldr r2, [r5, 0x14] str r2, [sp] adds r2, r3, 0 movs r3, 0x7 bl sub_8012C60 _08013CDA: ldrb r0, [r6] cmp r4, r0 blt _08013CAA movs r4, 0 b _08013D02 _08013CE4: ldr r0, [r5, 0x14] adds r4, 0x1 lsls r2, r4, 1 adds r2, r4 lsls r2, 2 ldr r1, [r5, 0x1C] subs r1, r2 subs r1, 0x1 ldr r2, [r5, 0x20] adds r2, 0xA movs r3, 0x5 str r3, [sp] movs r3, 0xB bl sub_800792C _08013D02: ldr r0, [r5, 0x10] cmp r4, r0 blt _08013CE4 add sp, 0x2C pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8013C68 thumb_func_start sub_8013D10 sub_8013D10: push {r4-r7,lr} adds r6, r0, 0 ldr r0, [r6, 0x14] lsls r1, r0, 3 adds r1, r0 lsls r1, 3 ldr r0, _08013D34 adds r7, r1, r0 adds r4, r6, 0 adds r4, 0x24 ldrb r5, [r4] bl sub_8012AE8 cmp r0, 0x9 beq _08013D38 cmp r0, 0xA beq _08013D4E b _08013D62 .align 2, 0 _08013D34: .4byte gUnknown_2027370 _08013D38: ldrb r1, [r4] adds r0, r6, 0 adds r0, 0x25 ldrb r0, [r0] subs r0, 0x1 cmp r1, r0 bge _08013D4A adds r0, r1, 0x1 b _08013D5C _08013D4A: movs r0, 0 b _08013D60 _08013D4E: ldrb r0, [r4] cmp r0, 0 bne _08013D5A adds r0, r6, 0 adds r0, 0x25 ldrb r0, [r0] _08013D5A: subs r0, 0x1 _08013D5C: lsls r0, 24 lsrs r0, 24 _08013D60: adds r5, r0, 0 _08013D62: adds r4, r6, 0 adds r4, 0x24 ldrb r0, [r4] cmp r5, r0 beq _08013D7C strb r5, [r4] movs r0, 0x3 bl sub_80119D4 adds r1, r6, 0 adds r1, 0x26 movs r0, 0x8 strb r0, [r1] _08013D7C: ldrb r0, [r4] adds r0, 0x1 lsls r1, r0, 1 adds r1, r0 lsls r1, 2 ldr r2, [r6, 0x1C] subs r2, r1 movs r1, 0 ldrsh r0, [r7, r1] lsls r0, 3 adds r2, r0 subs r2, 0x3 ldr r0, _08013DC8 ands r2, r0 ldrh r1, [r6, 0x2A] movs r0, 0xFE lsls r0, 8 ands r0, r1 orrs r0, r2 strh r0, [r6, 0x2A] movs r1, 0x2 ldrsh r0, [r7, r1] lsls r0, 3 ldr r1, [r6, 0x20] adds r1, r0 subs r1, 0x7 ldr r0, _08013DCC ands r1, r0 lsls r1, 4 ldrh r2, [r6, 0x2E] movs r0, 0xF ands r0, r2 orrs r0, r1 strh r0, [r6, 0x2E] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08013DC8: .4byte 0x000001ff _08013DCC: .4byte 0x00000fff thumb_func_end sub_8013D10 thumb_func_start sub_8013DD0 sub_8013DD0: push {r4,r5,lr} adds r4, r0, 0 bl sub_8012AE8 cmp r0, 0x7 beq _08013DE4 cmp r0, 0x8 beq _08013E10 movs r0, 0 b _08013E4C _08013DE4: ldr r2, [r4] ldr r0, [r4, 0xC] cmp r2, r0 beq _08013E18 ldr r1, _08013E0C adds r0, r4, 0 adds r0, 0x24 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] adds r5, r2, r0 movs r0, 0x3 bl sub_80119D4 ldr r0, [r4, 0xC] cmp r5, r0 bgt _08013E3E b _08013E48 .align 2, 0 _08013E0C: .4byte gUnknown_80D4830 _08013E10: ldr r2, [r4] ldr r0, [r4, 0x8] cmp r2, r0 bne _08013E22 _08013E18: movs r0, 0x2 bl sub_80119D4 movs r0, 0 b _08013E4C _08013E22: ldr r1, _08013E44 adds r0, r4, 0 adds r0, 0x24 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] subs r5, r2, r0 movs r0, 0x3 bl sub_80119D4 ldr r0, [r4, 0x8] cmp r5, r0 bge _08013E48 _08013E3E: str r0, [r4] b _08013E4A .align 2, 0 _08013E44: .4byte gUnknown_80D4830 _08013E48: str r5, [r4] _08013E4A: movs r0, 0x1 _08013E4C: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8013DD0 thumb_func_start sub_8013E54 sub_8013E54: push {r4-r6,lr} sub sp, 0x8 ldr r6, _08013F60 movs r0, 0 movs r1, 0 str r0, [sp] str r1, [sp, 0x4] mov r0, sp ldrh r0, [r0] ldr r1, _08013F64 ands r1, r0 ldr r3, _08013F68 ldr r0, [sp] ands r0, r3 orrs r0, r1 str r0, [sp] mov r1, sp ldrh r1, [r1] adds r2, r3, 0 ands r2, r0 orrs r2, r1 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r0, _08013F6C ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r5, _08013F70 adds r0, r5, 0 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r0, _08013F74 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r0, _08013F78 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] movs r4, 0x80 lsls r4, 7 mov r0, sp ldrh r1, [r0] ldr r0, _08013F7C ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] orrs r4, r0 ands r3, r1 orrs r3, r4 str r3, [sp] mov r3, sp movs r2, 0xFC lsls r2, 2 ldrh r1, [r3, 0x4] movs r0, 0xFC lsls r0, 8 ands r0, r1 orrs r0, r2 ands r0, r5 movs r2, 0xF movs r1, 0xF0 lsls r1, 8 ldr r4, _08013F80 ands r0, r4 orrs r0, r1 strh r0, [r3, 0x4] movs r1, 0x2 ldrsh r0, [r6, r1] lsls r0, 3 adds r0, 0x80 ands r0, r4 lsls r0, 4 ldrh r1, [r3, 0x6] ands r2, r1 orrs r2, r0 strh r2, [r3, 0x6] movs r0, 0x70 strh r0, [r3, 0x2] movs r1, 0x80 lsls r1, 1 mov r0, sp movs r2, 0 movs r3, 0 bl AddSprite add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08013F60: .4byte gUnknown_2027370 _08013F64: .4byte 0x0000feff _08013F68: .4byte 0xffff0000 _08013F6C: .4byte 0x0000fdff _08013F70: .4byte 0x0000f3ff _08013F74: .4byte 0x0000efff _08013F78: .4byte 0x0000dfff _08013F7C: .4byte 0x00003fff _08013F80: .4byte 0x00000fff thumb_func_end sub_8013E54 thumb_func_start sub_8013F84 sub_8013F84: push {r4-r6,lr} sub sp, 0x8 ldr r6, _08014090 movs r0, 0 movs r1, 0 str r0, [sp] str r1, [sp, 0x4] mov r0, sp ldrh r0, [r0] ldr r1, _08014094 ands r1, r0 ldr r3, _08014098 ldr r0, [sp] ands r0, r3 orrs r0, r1 str r0, [sp] mov r1, sp ldrh r1, [r1] adds r2, r3, 0 ands r2, r0 orrs r2, r1 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r0, _0801409C ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r5, _080140A0 adds r0, r5, 0 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r0, _080140A4 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r0, _080140A8 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] movs r4, 0x80 lsls r4, 7 mov r0, sp ldrh r1, [r0] ldr r0, _080140AC ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] orrs r4, r0 ands r3, r1 orrs r3, r4 str r3, [sp] mov r3, sp movs r2, 0xFC lsls r2, 2 ldrh r1, [r3, 0x4] movs r0, 0xFC lsls r0, 8 ands r0, r1 orrs r0, r2 ands r0, r5 movs r2, 0xF movs r1, 0xF0 lsls r1, 8 ldr r4, _080140B0 ands r0, r4 orrs r0, r1 strh r0, [r3, 0x4] movs r1, 0x2 ldrsh r0, [r6, r1] lsls r0, 3 adds r0, 0x60 ands r0, r4 lsls r0, 4 ldrh r1, [r3, 0x6] ands r2, r1 orrs r2, r0 strh r2, [r3, 0x6] movs r0, 0x70 strh r0, [r3, 0x2] movs r1, 0x80 lsls r1, 1 mov r0, sp movs r2, 0 movs r3, 0 bl AddSprite add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08014090: .4byte gUnknown_2027370 _08014094: .4byte 0x0000feff _08014098: .4byte 0xffff0000 _0801409C: .4byte 0x0000fdff _080140A0: .4byte 0x0000f3ff _080140A4: .4byte 0x0000efff _080140A8: .4byte 0x0000dfff _080140AC: .4byte 0x00003fff _080140B0: .4byte 0x00000fff thumb_func_end sub_8013F84 thumb_func_start sub_80140B4 sub_80140B4: push {r4-r7,lr} ldr r4, _080140D8 adds r2, r0, 0 movs r3, 0x3 _080140BC: adds r1, r2, 0 adds r0, r4, 0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} adds r4, 0x18 adds r2, 0x18 subs r3, 0x1 cmp r3, 0 bge _080140BC pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080140D8: .4byte gUnknown_80D47C8 thumb_func_end sub_80140B4 thumb_func_start sub_80140DC sub_80140DC: push {lr} sub sp, 0x4 ldr r0, _080140F4 str r0, [sp] mov r0, sp bl SetSavingIconCoords bl sub_8011830 add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080140F4: .4byte 0x008000c8 thumb_func_end sub_80140DC thumb_func_start sub_80140F8 sub_80140F8: push {lr} sub sp, 0x4 ldr r0, _08014110 str r0, [sp] mov r0, sp bl SetSavingIconCoords bl sub_8011830 add sp, 0x4 pop {r0} bx r0 .align 2, 0 _08014110: .4byte 0x004000bc thumb_func_end sub_80140F8 thumb_func_start sub_8014114 sub_8014114: push {lr} bl sub_8011854 movs r0, 0 bl SetSavingIconCoords pop {r0} bx r0 thumb_func_end sub_8014114 thumb_func_start nullsub_201 nullsub_201: bx lr thumb_func_end nullsub_201 thumb_func_start sub_8014128 sub_8014128: push {lr} bl sub_8012AE8 cmp r0, 0x2 beq _08014136 movs r0, 0x1 b _08014138 _08014136: movs r0, 0 _08014138: pop {r1} bx r1 thumb_func_end sub_8014128 thumb_func_start sub_801413C sub_801413C: movs r0, 0 bx lr thumb_func_end sub_801413C thumb_func_start sub_8014140 sub_8014140: movs r0, 0 bx lr thumb_func_end sub_8014140 thumb_func_start sub_8014144 sub_8014144: ldr r0, _0801415C movs r2, 0 str r2, [r0] ldr r0, _08014160 movs r1, 0x3C str r1, [r0] ldr r0, _08014164 str r1, [r0] ldr r0, _08014168 str r2, [r0] bx lr .align 2, 0 _0801415C: .4byte gUnknown_202E744 _08014160: .4byte gUnknown_202E738 _08014164: .4byte gUnknown_202E73C _08014168: .4byte gUnknown_202E740 thumb_func_end sub_8014144 thumb_func_start sub_801416C sub_801416C: push {lr} adds r2, r0, 0 adds r3, r1, 0 movs r0, 0x1 negs r0, r0 cmp r2, r0 bge _0801418C ldr r0, _08014184 str r3, [r0] ldr r1, _08014188 negs r0, r2 b _08014194 .align 2, 0 _08014184: .4byte gUnknown_202E738 _08014188: .4byte gUnknown_202E740 _0801418C: ldr r0, _080141A8 str r2, [r0] ldr r1, _080141AC movs r0, 0 _08014194: str r0, [r1] ldr r0, _080141B0 adds r1, r3, 0 cmp r1, 0 bge _080141A0 movs r1, 0 _080141A0: str r1, [r0] pop {r0} bx r0 .align 2, 0 _080141A8: .4byte gUnknown_202E738 _080141AC: .4byte gUnknown_202E740 _080141B0: .4byte gUnknown_202E73C thumb_func_end sub_801416C thumb_func_start sub_80141B4 sub_80141B4: push {r4-r6,lr} sub sp, 0x14 lsls r3, 16 lsrs r3, 16 movs r6, 0x1 negs r6, r6 movs r5, 0 str r5, [sp] movs r4, 0x3 str r4, [sp, 0x4] str r5, [sp, 0x8] str r2, [sp, 0xC] str r3, [sp, 0x10] adds r2, r6, 0 movs r3, 0 bl sub_8014248 add sp, 0x14 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80141B4 thumb_func_start sub_80141E0 sub_80141E0: push {r4-r6,lr} sub sp, 0x14 lsls r6, r2, 16 movs r2, 0x1 negs r2, r2 ldr r3, _08014210 movs r5, 0 str r5, [sp] movs r4, 0x3 str r4, [sp, 0x4] str r5, [sp, 0x8] str r1, [sp, 0xC] movs r1, 0xC0 lsls r1, 18 orrs r1, r6 lsrs r1, 16 str r1, [sp, 0x10] movs r1, 0 bl sub_8014248 add sp, 0x14 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08014210: .4byte gUnknown_80D485C thumb_func_end sub_80141E0 thumb_func_start sub_8014214 sub_8014214: push {r4-r6,lr} sub sp, 0x14 lsls r6, r2, 16 movs r2, 0x1 negs r2, r2 ldr r3, _08014244 movs r5, 0 str r5, [sp] movs r4, 0x3 str r4, [sp, 0x4] str r5, [sp, 0x8] str r1, [sp, 0xC] movs r1, 0xC0 lsls r1, 18 orrs r1, r6 lsrs r1, 16 str r1, [sp, 0x10] movs r1, 0 bl sub_8014248 add sp, 0x14 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08014244: .4byte gUnknown_80D4880 thumb_func_end sub_8014214 thumb_func_start sub_8014248 sub_8014248: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 adds r6, r1, 0 mov r9, r2 mov r8, r3 ldr r5, [sp, 0x28] ldr r7, [sp, 0x30] ldr r1, [sp, 0x34] lsls r1, 16 lsrs r1, 16 mov r10, r1 movs r1, 0 str r1, [sp] ldr r4, _080142B8 ldr r3, _080142BC adds r2, r4, r3 adds r1, r4, 0 mov r3, r10 bl xxx_format_string ldr r0, _080142C0 str r4, [r0] ldr r0, _080142C4 str r6, [r0, 0x24] ldr r0, _080142C8 str r5, [r0] ldr r0, _080142CC mov r4, r8 str r4, [r0] ldr r0, _080142D0 ldr r5, [sp, 0x24] str r5, [r0] ldr r0, _080142D4 mov r6, r9 str r6, [r0] ldr r0, _080142D8 bl sub_801317C movs r0, 0x10 mov r1, r10 ands r0, r1 cmp r0, 0 beq _080142E4 ldr r2, _080142DC adds r1, r2, 0 ldr r0, _080142E0 ldm r0!, {r3-r5} stm r1!, {r3-r5} ldm r0!, {r3,r4,r6} stm r1!, {r3,r4,r6} b _080142F2 .align 2, 0 _080142B8: .4byte gUnknown_202E798 _080142BC: .4byte 0x000003e7 _080142C0: .4byte gUnknown_202E794 _080142C4: .4byte gUnknown_202E748 _080142C8: .4byte gUnknown_202EC10 _080142CC: .4byte gUnknown_202EC14 _080142D0: .4byte gUnknown_202EC18 _080142D4: .4byte gUnknown_202EC1C _080142D8: .4byte gUnknown_202EC28 _080142DC: .4byte gUnknown_203B198 _080142E0: .4byte gUnknown_80D48DC _080142E4: ldr r2, _08014358 adds r1, r2, 0 ldr r0, _0801435C ldm r0!, {r3,r5,r6} stm r1!, {r3,r5,r6} ldm r0!, {r4-r6} stm r1!, {r4-r6} _080142F2: adds r4, r2, 0 movs r0, 0 strh r0, [r4, 0x24] strh r0, [r4, 0x26] strh r0, [r4, 0x28] movs r0, 0x40 strb r0, [r4, 0x18] cmp r7, 0 beq _08014368 ldr r1, [r7, 0x4] cmp r1, 0 beq _08014368 ldrb r0, [r7, 0xC] lsls r0, 3 adds r1, 0x4 adds r1, r0 ldr r0, [r1] cmp r0, 0 beq _08014368 ldrh r0, [r7, 0x8] strh r0, [r4, 0x20] ldrh r0, [r7, 0xA] strh r0, [r4, 0x22] movs r0, 0x5 strh r0, [r4, 0x24] strh r0, [r4, 0x26] strh r0, [r4, 0x28] movs r4, 0 _0801432A: adds r0, r4, 0 adds r0, 0xE0 ldr r2, [r7, 0x4] ldrb r1, [r7, 0xC] lsls r1, 3 adds r2, r1 lsls r3, r4, 2 ldr r1, [r2] adds r1, r3 bl SetBGPaletteBufferColorArray adds r4, 0x1 cmp r4, 0xF ble _0801432A movs r0, 0x1 str r0, [sp] ldrb r0, [r7, 0xE] cmp r0, 0 beq _08014360 ldr r1, _08014358 movs r0, 0x7 b _08014364 .align 2, 0 _08014358: .4byte gUnknown_203B198 _0801435C: .4byte gUnknown_80D48C4 _08014360: ldr r1, _080143E8 movs r0, 0x5 _08014364: str r0, [r1, 0x1C] adds r4, r1, 0 _08014368: ldr r2, _080143EC adds r1, r4, 0 adds r1, 0x30 adds r0, r2, 0 ldm r0!, {r3,r5,r6} stm r1!, {r3,r5,r6} ldm r0!, {r3,r5,r6} stm r1!, {r3,r5,r6} adds r0, r4, 0 adds r0, 0x48 ldm r2!, {r1,r3,r5} stm r0!, {r1,r3,r5} ldm r2!, {r1,r3,r6} stm r0!, {r1,r3,r6} bl sub_8004914 adds r0, r4, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r1, _080143F0 movs r4, 0 movs r2, 0 movs r0, 0x4 strh r0, [r1] strh r0, [r1, 0x2] movs r0, 0x70 strh r0, [r1, 0x8] ldr r0, _080143F4 movs r5, 0x2 ldrsh r0, [r0, r5] lsls r0, 3 adds r0, 0x22 strh r0, [r1, 0xA] movs r0, 0x7 str r0, [r1, 0x10] str r2, [r1, 0x1C] adds r1, 0x20 strb r4, [r1] movs r0, 0x10 mov r6, r10 ands r0, r6 movs r1, 0x3 cmp r0, 0 beq _080143C6 movs r1, 0x8 _080143C6: adds r0, r1, 0 bl sub_80063D8 ldr r0, _080143F8 movs r1, 0x1 str r1, [r0] ldr r0, _080143FC mov r2, r10 strh r2, [r0] movs r0, 0x20 mov r3, r10 ands r0, r3 cmp r0, 0 beq _08014404 ldr r0, _08014400 strb r1, [r0] b _08014408 .align 2, 0 _080143E8: .4byte gUnknown_203B198 _080143EC: .4byte gUnknown_80D48AC _080143F0: .4byte gUnknown_202E748 _080143F4: .4byte gUnknown_2027370 _080143F8: .4byte gUnknown_202E744 _080143FC: .4byte gUnknown_202E77C _08014400: .4byte gUnknown_202E790 _08014404: ldr r0, _0801445C strb r4, [r0] _08014408: movs r0, 0x80 lsls r0, 3 mov r4, r10 ands r0, r4 cmp r0, 0 beq _08014418 bl sub_8094C14 _08014418: ldr r0, _08014460 movs r1, 0x1 str r1, [r0] ldr r0, _08014464 str r1, [r0] bl sub_80048F8 ldr r1, _08014468 movs r0, 0 strb r0, [r1] ldr r1, _0801446C movs r0, 0 str r0, [r1] ldr r5, [sp] cmp r5, 0 beq _08014480 ldr r0, [r7, 0x4] ldrb r1, [r7, 0xC] lsls r1, 3 adds r0, 0x4 adds r0, r1 ldr r4, [r0] movs r0, 0x1 bl sub_80073B8 ldrb r0, [r7, 0xD] cmp r0, 0 bne _08014470 movs r0, 0x1 adds r1, r4, 0 movs r2, 0xE bl sub_8008274 b _0801447A .align 2, 0 _0801445C: .4byte gUnknown_202E790 _08014460: .4byte gUnknown_202E788 _08014464: .4byte gUnknown_202E78C _08014468: .4byte gUnknown_202E791 _0801446C: .4byte gUnknown_202E784 _08014470: movs r0, 0x1 adds r1, r4, 0 movs r2, 0xE bl sub_800836C _0801447A: movs r0, 0x1 bl sub_80073E0 _08014480: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8014248 thumb_func_start sub_8014490 sub_8014490: ldr r0, _0801449C movs r1, 0 str r1, [r0] ldr r0, _080144A0 str r1, [r0] bx lr .align 2, 0 _0801449C: .4byte gUnknown_202E744 _080144A0: .4byte gUnknown_202EC1C thumb_func_end sub_8014490 thumb_func_start sub_80144A4 sub_80144A4: push {lr} adds r1, r0, 0 cmp r1, 0 beq _080144B2 ldr r0, _080144BC ldr r0, [r0] str r0, [r1] _080144B2: ldr r0, _080144C0 ldr r0, [r0] pop {r1} bx r1 .align 2, 0 _080144BC: .4byte gUnknown_202EC1C _080144C0: .4byte gUnknown_202E744 thumb_func_end sub_80144A4 thumb_func_start xxx_draw_string_80144C4 xxx_draw_string_80144C4: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 movs r0, 0x1 mov r10, r0 ldr r1, _080144F4 ldr r0, [r1] adds r0, 0x1 str r0, [r1] _080144DC: ldr r0, _080144F8 ldr r1, [r0] adds r3, r0, 0 cmp r1, 0xB bls _080144E8 b _08014A6A _080144E8: lsls r0, r1, 2 ldr r1, _080144FC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080144F4: .4byte gUnknown_202E784 _080144F8: .4byte gUnknown_202E744 _080144FC: .4byte _08014500 .align 2, 0 _08014500: .4byte _08014A72 .4byte _08014530 .4byte _08014708 .4byte _08014A38 .4byte _08014A48 .4byte _08014A60 .4byte _08014778 .4byte _080147E2 .4byte _080147E2 .4byte _080147E2 .4byte _080149D8 .4byte _08014A04 _08014530: ldr r0, _08014540 ldr r6, [r0] ldr r0, _08014544 ldrb r0, [r0] cmp r0, 0 beq _0801457C ldr r7, _08014548 b _08014580 .align 2, 0 _08014540: .4byte gUnknown_202E794 _08014544: .4byte gUnknown_202E790 _08014548: .4byte 0x0001869f _0801454C: str r2, [r3, 0x1C] adds r1, r3, 0 adds r1, 0x20 movs r0, 0x1 strb r0, [r1] ldr r1, _0801456C movs r0, 0x8 str r0, [r1] ldr r0, _08014570 strb r2, [r0] ldr r1, _08014574 ldr r0, _08014578 ldr r0, [r0] str r0, [r1] b _0801466C .align 2, 0 _0801456C: .4byte gUnknown_202E744 _08014570: .4byte gUnknown_202E791 _08014574: .4byte gUnknown_202E780 _08014578: .4byte gUnknown_202E738 _0801457C: ldr r0, _08014594 ldr r7, [r0] _08014580: ldr r1, _08014598 movs r0, 0 str r0, [r1, 0x2C] bl sub_80073B8 ldr r1, _0801459C mov r8, r1 ldr r2, _080145A0 mov r9, r2 b _08014652 .align 2, 0 _08014594: .4byte gUnknown_202E788 _08014598: .4byte gUnknown_202E748 _0801459C: .4byte gUnknown_202E744 _080145A0: .4byte gUnknown_202E780 _080145A4: adds r0, r4, 0 adds r0, 0x20 ldrb r5, [r0] cmp r5, 0 beq _080145EC movs r3, 0x2 ldrsh r0, [r4, r3] cmp r0, 0x22 ble _080145CC movs r0, 0x8 mov r4, r8 str r0, [r4] ldr r0, _080145C8 ldr r0, [r0] mov r1, r9 str r0, [r1] b _080145DA .align 2, 0 _080145C8: .4byte gUnknown_202E738 _080145CC: movs r0, 0x7 mov r2, r8 str r0, [r2] ldr r0, _080145E4 ldr r0, [r0] mov r3, r9 str r0, [r3] _080145DA: ldr r1, _080145E8 movs r0, 0 strb r0, [r1] b _0801466C .align 2, 0 _080145E4: .4byte gUnknown_202E73C _080145E8: .4byte gUnknown_202E791 _080145EC: ldrb r0, [r6] cmp r0, 0 beq _0801466C cmp r0, 0xD beq _080145FA cmp r0, 0xA bne _08014608 _080145FA: movs r0, 0x4 strh r0, [r4] ldrh r0, [r4, 0x2] adds r0, 0xB strh r0, [r4, 0x2] adds r6, 0x1 b _08014630 _08014608: adds r0, r6, 0 add r1, sp, 0x4 bl xxx_get_next_char_from_string adds r6, r0, 0 movs r1, 0 ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] ldr r2, [sp, 0x4] ldr r3, [r4, 0x10] str r5, [sp] bl xxx_call_draw_char ldrh r1, [r4] adds r1, r0 strh r1, [r4] ldr r0, _08014694 ldr r0, [r0] str r0, [r4, 0x2C] _08014630: ldr r3, _08014698 movs r4, 0x2 ldrsh r0, [r3, r4] cmp r0, 0x22 ble _08014650 ldr r0, _0801469C ldrh r1, [r0] movs r0, 0x10 ands r0, r1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0 bne _0801464C b _0801454C _0801464C: movs r0, 0x4 strh r0, [r3, 0x2] _08014650: subs r7, 0x1 _08014652: cmp r7, 0 ble _0801466C ldr r4, _08014698 adds r0, r6, 0 adds r1, r4, 0 bl sub_8009190 adds r6, r0, 0 adds r0, r4, 0 adds r0, 0x21 ldrb r0, [r0] cmp r0, 0 beq _080145A4 _0801466C: movs r0, 0 bl sub_80073E0 ldr r4, _080146A0 str r6, [r4] ldr r0, _080146A4 bl sub_801317C ldr r0, [r4] ldrb r0, [r0] cmp r0, 0 bne _080146BC ldr r0, _080146A8 ldr r0, [r0] cmp r0, 0 beq _080146B0 ldr r1, _080146AC movs r0, 0x3 str r0, [r1] b _08014A72 .align 2, 0 _08014694: .4byte gUnknown_202E78C _08014698: .4byte gUnknown_202E748 _0801469C: .4byte gUnknown_202E77C _080146A0: .4byte gUnknown_202E794 _080146A4: .4byte gUnknown_202EC28 _080146A8: .4byte gUnknown_202EC14 _080146AC: .4byte gUnknown_202E744 _080146B0: ldr r1, _080146B8 movs r0, 0x6 str r0, [r1] b _08014A72 .align 2, 0 _080146B8: .4byte gUnknown_202E744 _080146BC: ldr r0, _080146E8 movs r2, 0 str r2, [r0, 0x30] adds r0, 0x20 ldrb r0, [r0] cmp r0, 0 beq _080146FC ldr r1, _080146EC ldr r0, [r1] cmp r0, 0x1 beq _080146D4 b _08014A72 _080146D4: movs r0, 0x7 str r0, [r1] ldr r0, _080146F0 strb r2, [r0] ldr r1, _080146F4 ldr r0, _080146F8 ldr r0, [r0] str r0, [r1] b _08014A72 .align 2, 0 _080146E8: .4byte gUnknown_202E748 _080146EC: .4byte gUnknown_202E744 _080146F0: .4byte gUnknown_202E791 _080146F4: .4byte gUnknown_202E780 _080146F8: .4byte gUnknown_202E738 _080146FC: ldr r1, _08014704 movs r0, 0x2 b _08014A68 .align 2, 0 _08014704: .4byte gUnknown_202E744 _08014708: ldr r4, _08014760 ldrh r1, [r4] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08014718 bl sub_8011A04 _08014718: ldrh r1, [r4] movs r0, 0x2 ands r0, r1 ldr r2, _08014764 cmp r0, 0 bne _08014742 movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08014742 ldr r0, _08014768 ldrh r1, [r0, 0x2] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _08014742 ldr r0, _0801476C movs r1, 0x1 strb r1, [r0] ldr r0, _08014770 str r0, [r2, 0x30] _08014742: ldr r1, [r2, 0x30] adds r1, 0x1 str r1, [r2, 0x30] ldr r0, [r2, 0x2C] cmp r1, r0 bgt _08014750 b _08014A72 _08014750: ldr r1, _08014774 movs r0, 0x1 str r0, [r1] adds r1, r2, 0 adds r1, 0x21 movs r0, 0 strb r0, [r1] b _08014A6A .align 2, 0 _08014760: .4byte gUnknown_202E77C _08014764: .4byte gUnknown_202E748 _08014768: .4byte gUnknown_20255F0 _0801476C: .4byte gUnknown_202E790 _08014770: .4byte 0x0001869f _08014774: .4byte gUnknown_202E744 _08014778: ldr r0, _080147B4 ldrh r1, [r0] movs r0, 0x80 lsls r0, 1 ands r0, r1 cmp r0, 0 beq _080147DC movs r0, 0x9 str r0, [r3] ldr r1, _080147B8 movs r0, 0 strb r0, [r1] ldr r0, _080147BC ldr r1, [r0] cmp r1, 0 ble _080147C8 ldr r2, _080147C0 ldr r0, _080147C4 ldr r0, [r0] subs r0, r1, r0 str r0, [r2] cmp r0, 0 blt _080147A8 b _08014A6A _080147A8: movs r0, 0xB str r0, [r3] movs r0, 0 str r0, [r2] b _08014A6A .align 2, 0 _080147B4: .4byte gUnknown_202E77C _080147B8: .4byte gUnknown_202E791 _080147BC: .4byte gUnknown_202E740 _080147C0: .4byte gUnknown_202E780 _080147C4: .4byte gUnknown_202E784 _080147C8: ldr r0, _080147D4 ldr r1, _080147D8 ldr r1, [r1] str r1, [r0] b _08014A6A .align 2, 0 _080147D4: .4byte gUnknown_202E780 _080147D8: .4byte gUnknown_202E738 _080147DC: movs r0, 0xB str r0, [r3] b _08014A6A _080147E2: movs r5, 0 ldr r0, _0801481C adds r0, 0x20 strb r5, [r0] ldr r4, _08014820 adds r0, r4, 0 movs r1, 0 bl nullsub_34 ldr r0, _08014824 ldrh r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08014802 b _0801494C _08014802: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0801482C ldr r1, _08014828 ldr r0, [r1] cmp r0, 0 bgt _08014814 b _0801494C _08014814: subs r0, 0x1 str r0, [r1] b _08014856 .align 2, 0 _0801481C: .4byte gUnknown_202E748 _08014820: .4byte gUnknown_202EC28 _08014824: .4byte gUnknown_202E77C _08014828: .4byte gUnknown_202E780 _0801482C: ldr r2, _080148E4 ldrh r1, [r2, 0x2] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _0801483A b _0801494C _0801483A: ldrb r0, [r4, 0x1] cmp r0, 0 beq _08014842 b _0801494C _08014842: ldrh r1, [r2] movs r0, 0xF2 ands r0, r1 cmp r0, 0x2 bne _0801484E b _0801494C _0801484E: ldrb r0, [r4, 0x5] cmp r0, 0 beq _08014856 movs r5, 0x1 _08014856: cmp r5, 0 bne _0801494C ldr r1, _080148E8 ldrb r0, [r1] adds r2, r0, 0x1 strb r2, [r1] ldr r0, _080148EC ldrh r7, [r0] movs r0, 0x2 ands r0, r7 cmp r0, 0 beq _08014870 b _08014A72 _08014870: movs r0, 0x8 ands r2, r0 cmp r2, 0 bne _0801487A b _08014A72 _0801487A: ldr r3, _080148F0 ldrh r1, [r3] ldr r0, _080148F4 ands r0, r1 ldr r1, _080148F8 ands r0, r1 ldr r4, _080148FC ands r0, r4 ldr r1, _08014900 ands r0, r1 ldr r1, _08014904 ands r0, r1 movs r1, 0x80 lsls r1, 7 ldr r2, _08014908 ands r0, r2 orrs r0, r1 strh r0, [r3] ldrh r0, [r3, 0x2] ldr r5, _0801490C ands r5, r0 ands r5, r2 strh r5, [r3, 0x2] movs r2, 0xFC lsls r2, 2 ldrh r1, [r3, 0x4] movs r0, 0xFC lsls r0, 8 ands r0, r1 orrs r0, r2 ands r0, r4 movs r6, 0xF lsls r1, r6, 12 ldr r2, _08014910 ands r0, r2 movs r4, 0 mov r8, r4 orrs r0, r1 strh r0, [r3, 0x4] movs r0, 0x10 ands r0, r7 adds r4, r3, 0 cmp r0, 0 beq _08014914 movs r2, 0xF0 lsls r2, 3 ldrh r1, [r4, 0x6] adds r0, r6, 0 ands r0, r1 orrs r0, r2 strh r0, [r4, 0x6] movs r0, 0x70 b _08014932 .align 2, 0 _080148E4: .4byte gUnknown_20255F0 _080148E8: .4byte gUnknown_202E791 _080148EC: .4byte gUnknown_202E77C _080148F0: .4byte gUnknown_202E6E0 _080148F4: .4byte 0x0000feff _080148F8: .4byte 0x0000fdff _080148FC: .4byte 0x0000f3ff _08014900: .4byte 0x0000efff _08014904: .4byte 0x0000dfff _08014908: .4byte 0x00003fff _0801490C: .4byte 0x0000c1ff _08014910: .4byte 0x00000fff _08014914: ldr r3, _08014944 movs r0, 0xA ldrsh r1, [r3, r0] adds r1, 0x1 ands r1, r2 lsls r1, 4 ldrh r2, [r4, 0x6] adds r0, r6, 0 ands r0, r2 orrs r0, r1 strh r0, [r4, 0x6] movs r1, 0x8 ldrsh r0, [r3, r1] ldr r1, _08014948 ands r0, r1 _08014932: strh r0, [r4, 0x2] movs r1, 0x80 lsls r1, 1 adds r0, r4, 0 movs r2, 0 movs r3, 0 bl AddSprite b _08014A72 .align 2, 0 _08014944: .4byte gUnknown_202E748 _08014948: .4byte 0x000001ff _0801494C: ldr r0, _08014960 ldr r0, [r0] ldrb r0, [r0] cmp r0, 0 bne _08014968 ldr r1, _08014964 movs r0, 0xB str r0, [r1] b _080149BA .align 2, 0 _08014960: .4byte gUnknown_202E794 _08014964: .4byte gUnknown_202E744 _08014968: ldr r4, _08014974 ldr r0, [r4] cmp r0, 0x9 bne _08014978 movs r0, 0xB b _080149B8 .align 2, 0 _08014974: .4byte gUnknown_202E744 _08014978: cmp r0, 0x8 bne _080149B6 ldr r2, _080149A0 movs r1, 0x4 strh r1, [r2] movs r3, 0x2 ldrsh r0, [r2, r3] cmp r0, 0x22 ble _080149B6 strh r1, [r2, 0x2] ldr r0, _080149A4 ldrh r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080149A8 _08014998: movs r0, 0 bl sub_8008C54 b _080149B6 .align 2, 0 _080149A0: .4byte gUnknown_202E748 _080149A4: .4byte gUnknown_202E77C _080149A8: ldr r1, [r2, 0x1C] cmp r1, 0 bne _08014998 movs r0, 0xA str r0, [r4] str r1, [r2, 0x28] b _080149BA _080149B6: movs r0, 0x1 _080149B8: str r0, [r4] _080149BA: ldr r1, _080149D0 movs r0, 0x70 strh r0, [r1, 0x8] ldr r0, _080149D4 movs r4, 0x2 ldrsh r0, [r0, r4] lsls r0, 3 adds r0, 0x22 strh r0, [r1, 0xA] b _08014A72 .align 2, 0 _080149D0: .4byte gUnknown_202E748 _080149D4: .4byte gUnknown_2027370 _080149D8: ldr r4, _080149F8 ldr r0, [r4, 0x28] adds r0, 0x1 str r0, [r4, 0x28] ldr r0, _080149FC ldr r1, [r0] movs r0, 0 bl _call_via_r1 ldr r0, [r4, 0x28] cmp r0, 0x11 ble _08014A72 ldr r1, _08014A00 movs r0, 0x1 str r0, [r1] b _08014A72 .align 2, 0 _080149F8: .4byte gUnknown_202E748 _080149FC: .4byte gUnknown_203B088 _08014A00: .4byte gUnknown_202E744 _08014A04: ldr r0, _08014A2C ldrh r1, [r0] movs r0, 0x80 lsls r0, 2 ands r0, r1 lsls r0, 16 lsrs r0, 16 cmp r0, 0 beq _08014A34 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r1, _08014A30 movs r0, 0 str r0, [r1] b _08014A72 .align 2, 0 _08014A2C: .4byte gUnknown_202E77C _08014A30: .4byte gUnknown_202E744 _08014A34: str r0, [r3] b _08014A72 _08014A38: bl sub_8014A88 ldr r1, _08014A44 movs r0, 0x4 str r0, [r1] b _08014A72 .align 2, 0 _08014A44: .4byte gUnknown_202E744 _08014A48: bl sub_8014B94 lsls r0, 24 cmp r0, 0 beq _08014A72 ldr r1, _08014A5C movs r0, 0x5 str r0, [r1] b _08014A72 .align 2, 0 _08014A5C: .4byte gUnknown_202E744 _08014A60: bl nullsub_35 ldr r1, _08014A84 movs r0, 0xB _08014A68: str r0, [r1] _08014A6A: mov r0, r10 cmp r0, 0 beq _08014A72 b _080144DC _08014A72: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08014A84: .4byte gUnknown_202E744 thumb_func_end xxx_draw_string_80144C4 thumb_func_start sub_8014A88 sub_8014A88: push {r4-r7,lr} sub sp, 0x88 ldr r0, _08014A98 ldr r4, [r0] movs r5, 0 movs r7, 0 movs r6, 0 b _08014ABE .align 2, 0 _08014A98: .4byte gUnknown_202EC14 _08014A9C: adds r5, 0xC ldr r0, [r4] add r1, sp, 0x8 add r2, sp, 0x88 movs r3, 0 bl xxx_format_string add r0, sp, 0x8 bl sub_8008ED0 cmp r7, r0 bge _08014AB6 adds r7, r0, 0 _08014AB6: adds r4, 0x8 adds r6, 0x1 cmp r6, 0x9 bgt _08014AC4 _08014ABE: ldr r0, [r4] cmp r0, 0 bne _08014A9C _08014AC4: adds r0, r5, 0 cmp r5, 0 bge _08014ACC adds r0, r5, 0x7 _08014ACC: asrs r2, r0, 3 movs r0, 0x7 ands r5, r0 cmp r5, 0 beq _08014AD8 adds r2, 0x1 _08014AD8: ldr r4, _08014B74 ldr r0, _08014B78 ldr r0, [r0] str r0, [r4, 0x34] adds r1, r7, 0 cmp r1, 0 bge _08014AE8 adds r1, 0x7 _08014AE8: asrs r1, 3 adds r1, 0x2 strh r1, [r4, 0x3C] adds r0, r4, 0 adds r0, 0x40 strh r2, [r0] strh r2, [r4, 0x3E] movs r0, 0x1C subs r0, r1 strh r0, [r4, 0x38] movs r0, 0xE subs r0, r2 strh r0, [r4, 0x3A] movs r0, 0x80 strb r0, [r4] movs r0, 0xC0 strb r0, [r4, 0x18] ldr r5, _08014B7C ldr r0, [r5] cmp r0, 0 beq _08014B1E adds r1, r4, 0 adds r1, 0x48 ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} _08014B1E: bl sub_8004914 adds r0, r4, 0 movs r1, 0x1 movs r2, 0 bl sub_800641C ldr r0, _08014B80 ldr r1, _08014B84 ldr r1, [r1] ldr r2, _08014B88 ldr r3, _08014B8C ldr r3, [r3] ldr r4, _08014B90 ldr r4, [r4] str r4, [sp] movs r4, 0x2 str r4, [sp, 0x4] bl sub_8012D60 ldr r0, [r5] cmp r0, 0 beq _08014B6A movs r0, 0x3 bl sub_80073B8 ldr r0, [r5] ldr r2, [r0, 0x18] movs r0, 0 str r0, [sp] movs r0, 0x4 movs r1, 0x2 movs r3, 0x3 bl xxx_call_draw_string movs r0, 0x3 bl sub_80073E0 _08014B6A: add sp, 0x88 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08014B74: .4byte gUnknown_203B198 _08014B78: .4byte gUnknown_202EC10 _08014B7C: .4byte gUnknown_202EC20 _08014B80: .4byte gUnknown_202EBC0 _08014B84: .4byte gUnknown_202EC14 _08014B88: .4byte gUnknown_80D48A0 _08014B8C: .4byte gUnknown_202EC18 _08014B90: .4byte gUnknown_202EC1C thumb_func_end sub_8014A88 thumb_func_start sub_8014B94 sub_8014B94: push {r4,lr} ldr r4, _08014BA8 adds r0, r4, 0 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 beq _08014BAC movs r0, 0 b _08014BB6 .align 2, 0 _08014BA8: .4byte gUnknown_202EBC0 _08014BAC: ldr r1, _08014BBC adds r0, r4, 0 bl sub_8013114 movs r0, 0x1 _08014BB6: pop {r4} pop {r1} bx r1 .align 2, 0 _08014BBC: .4byte gUnknown_202EC1C thumb_func_end sub_8014B94 thumb_func_start nullsub_35 nullsub_35: bx lr thumb_func_end nullsub_35 thumb_func_start xxx_format_string xxx_format_string: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x40 adds r5, r0, 0 str r1, [sp, 0x3C] adds r7, r2, 0 lsls r3, 16 lsrs r3, 16 mov r8, r3 movs r0, 0x1 mov r10, r0 mov r9, r0 subs r7, 0x1 b _08014F62 _08014BE6: movs r1, 0x1 b _08014C2C _08014BEA: mov r0, r10 cmp r0, 0 beq _08014C24 movs r1, 0 mov r10, r1 mov r9, r1 movs r0, 0x8 mov r1, r8 ands r0, r1 cmp r0, 0 beq _08014C2E ldr r0, _08014C1C add r4, sp, 0x3C adds r1, r4, 0 adds r2, r7, 0 mov r3, r8 bl sub_8014FA8 ldr r0, _08014C20 adds r1, r4, 0 adds r2, r7, 0 mov r3, r8 bl sub_8014FA8 b _08014C2E .align 2, 0 _08014C1C: .4byte gUnknown_202E5D8 _08014C20: .4byte gUnknown_80D48F4 _08014C24: mov r0, r9 cmp r0, 0 beq _08014C2E movs r1, 0 _08014C2C: mov r9, r1 _08014C2E: cmp r6, 0x23 bne _08014C5A ldrb r3, [r5, 0x1] cmp r3, 0x50 beq _08014C3C cmp r3, 0x70 bne _08014C42 _08014C3C: movs r0, 0x1 mov r10, r0 mov r9, r0 _08014C42: ldr r1, [sp, 0x3C] adds r2, r1, 0x1 cmp r2, r7 bcs _08014C56 movs r0, 0x23 strb r0, [r1] str r2, [sp, 0x3C] strb r3, [r1, 0x1] adds r0, r2, 0x1 str r0, [sp, 0x3C] _08014C56: adds r5, 0x2 b _08014F62 _08014C5A: cmp r6, 0x24 beq _08014C60 b _08014F26 _08014C60: movs r4, 0 adds r5, 0x1 ldrb r0, [r5] subs r0, 0x24 cmp r0, 0x52 bls _08014C6E b _08014F0E _08014C6E: lsls r0, 2 ldr r1, _08014C78 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08014C78: .4byte _08014C7C .align 2, 0 _08014C7C: .4byte _08014F04 .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0C .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014EC4 .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014E60 .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014E54 .4byte _08014DC8 .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014DDC .4byte _08014E10 .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014E24 .4byte _08014F0E .4byte _08014E84 _08014DC8: adds r5, 0x1 ldrb r0, [r5] lsls r1, r0, 2 adds r1, r0 lsls r1, 4 ldr r0, _08014DD8 adds r4, r1, r0 b _08014F0C .align 2, 0 _08014DD8: .4byte gUnknown_202CF58 _08014DDC: adds r5, 0x1 ldrb r0, [r5] cmp r0, 0x6D bne _08014DFC bl sub_808D3BC adds r1, r0, 0 ldr r4, _08014DF8 adds r0, r4, 0 movs r2, 0 bl sub_808D9AC b _08014F0E .align 2, 0 _08014DF8: .4byte gUnknown_202EB80 _08014DFC: ldrb r0, [r5] lsls r1, r0, 2 adds r1, r0 lsls r1, 4 ldr r0, _08014E0C adds r4, r1, r0 b _08014F0C .align 2, 0 _08014E0C: .4byte gUnknown_202D098 _08014E10: adds r5, 0x1 ldrb r0, [r5] lsls r1, r0, 2 adds r1, r0 lsls r1, 4 ldr r0, _08014E20 adds r4, r1, r0 b _08014F0C .align 2, 0 _08014E20: .4byte gUnknown_202D3B8 _08014E24: adds r5, 0x1 movs r0, 0 bl sub_80023E4 lsls r0, 24 cmp r0, 0 beq _08014E40 ldr r0, _08014E3C bl sub_80920D8 b _08014E48 .align 2, 0 _08014E3C: .4byte gUnknown_202E6E8 _08014E40: ldr r0, _08014E4C ldr r1, _08014E50 bl strcpy _08014E48: ldr r4, _08014E4C b _08014F0E .align 2, 0 _08014E4C: .4byte gUnknown_202E6E8 _08014E50: .4byte gUnknown_80D48F8 _08014E54: adds r5, 0x1 ldr r4, _08014E5C b _08014F0E .align 2, 0 _08014E5C: .4byte gUnknown_202E628 _08014E60: adds r5, 0x1 ldr r1, _08014E7C ldr r2, _08014E80 ldrb r0, [r5] subs r0, 0x30 lsls r0, 2 adds r0, r2 adds r5, 0x1 ldr r2, [r0] mov r0, sp bl sub_800D158 _08014E78: mov r4, sp b _08014F0E .align 2, 0 _08014E7C: .4byte gUnknown_80D4900 _08014E80: .4byte gUnknown_202DE30 _08014E84: adds r5, 0x1 ldr r1, _08014EBC ldrb r0, [r5] subs r0, 0x30 lsls r0, 2 adds r0, r1 ldr r3, [r0] adds r5, 0x1 ldr r1, _08014EC0 ldrb r2, [r5] subs r2, 0x30 adds r5, 0x1 mov r0, sp bl sub_800D158 mov r0, sp ldrb r1, [r0] cmp r1, 0 beq _08014E78 movs r2, 0x60 _08014EAC: cmp r1, 0x20 bne _08014EB2 strb r2, [r0] _08014EB2: adds r0, 0x1 ldrb r1, [r0] cmp r1, 0 bne _08014EAC b _08014E78 .align 2, 0 _08014EBC: .4byte gUnknown_202DE30 _08014EC0: .4byte gUnknown_80D4904 _08014EC4: adds r5, 0x1 ldr r1, _08014EFC ldrb r0, [r5] subs r0, 0x30 lsls r0, 2 adds r0, r1 ldr r3, [r0] adds r5, 0x1 ldr r1, _08014F00 ldrb r2, [r5] subs r2, 0x30 adds r5, 0x1 mov r0, sp bl sub_800D158 mov r0, sp ldrb r1, [r0] cmp r1, 0 beq _08014E78 movs r2, 0x60 _08014EEC: cmp r1, 0x20 bne _08014EF2 strb r2, [r0] _08014EF2: adds r0, 0x1 ldrb r1, [r0] cmp r1, 0 bne _08014EEC b _08014E78 .align 2, 0 _08014EFC: .4byte gUnknown_202DE30 _08014F00: .4byte gUnknown_80D4908 _08014F04: ldr r4, _08014F08 b _08014F0E .align 2, 0 _08014F08: .4byte gUnknown_80D4910 _08014F0C: adds r5, 0x1 _08014F0E: cmp r4, 0 beq _08014F62 add r1, sp, 0x3C adds r0, r4, 0 adds r2, r7, 0 mov r3, r8 bl sub_8014FA8 lsls r0, 24 cmp r0, 0 bne _08014F7E b _08014F62 _08014F26: adds r0, r6, 0 adds r0, 0x7F lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bls _08014F36 cmp r6, 0x87 bne _08014F54 _08014F36: ldr r0, [sp, 0x3C] cmp r0, r7 bcs _08014F42 strb r6, [r0] adds r0, 0x1 str r0, [sp, 0x3C] _08014F42: adds r5, 0x1 ldrb r1, [r5] cmp r1, 0 beq _08014F7E ldr r0, [sp, 0x3C] cmp r0, r7 bcs _08014F60 strb r1, [r0] b _08014F5C _08014F54: ldr r0, [sp, 0x3C] cmp r0, r7 bcs _08014F60 strb r6, [r0] _08014F5C: adds r0, 0x1 str r0, [sp, 0x3C] _08014F60: adds r5, 0x1 _08014F62: ldrb r6, [r5] cmp r6, 0 beq _08014F7E cmp r6, 0xD beq _08014F72 cmp r6, 0xA beq _08014F72 b _08014BEA _08014F72: movs r0, 0x80 mov r1, r8 ands r0, r1 cmp r0, 0 bne _08014F7E b _08014BE6 _08014F7E: ldr r0, [sp, 0x3C] movs r1, 0 strb r1, [r0] ldrb r0, [r5] cmp r0, 0xD bne _08014F8C adds r5, 0x1 _08014F8C: ldrb r0, [r5] cmp r0, 0xA bne _08014F94 adds r5, 0x1 _08014F94: adds r0, r5, 0 add sp, 0x40 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end xxx_format_string thumb_func_start sub_8014FA8 sub_8014FA8: push {r4-r6,lr} adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 lsls r3, 16 lsrs r3, 16 ldr r2, [r5] ldrb r1, [r4] cmp r1, 0 beq _08014FE4 movs r0, 0x80 ands r0, r3 lsls r0, 16 lsrs r3, r0, 16 _08014FC4: cmp r3, 0 beq _08014FD2 cmp r1, 0xD bne _08014FD2 str r2, [r5] movs r0, 0x1 b _08014FE8 _08014FD2: cmp r2, r6 bcs _08014FDC ldrb r0, [r4] strb r0, [r2] adds r2, 0x1 _08014FDC: adds r4, 0x1 ldrb r1, [r4] cmp r1, 0 bne _08014FC4 _08014FE4: str r2, [r5] movs r0, 0 _08014FE8: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8014FA8 thumb_func_start sub_8014FF0 sub_8014FF0: push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x1F8 adds r5, r0, 0 adds r6, r1, 0 adds r0, r2, 0 mov r8, r3 ldr r4, [sp, 0x20C] add r2, sp, 0x1F8 add r1, sp, 0x4 movs r3, 0 bl xxx_format_string ldr r1, _08015030 add r1, sp movs r0, 0 strb r0, [r1] str r4, [sp] adds r0, r5, 0 adds r1, r6, 0 add r2, sp, 0x4 mov r3, r8 bl xxx_call_draw_string add sp, 0x1F8 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08015030: .4byte 0x000001f7 thumb_func_end sub_8014FF0 thumb_func_start sub_8015034 sub_8015034: push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x1FC adds r6, r0, 0 mov r8, r1 adds r0, r2, 0 mov r9, r3 ldr r4, [sp, 0x214] ldr r5, [sp, 0x218] add r2, sp, 0x1FC add r1, sp, 0x8 movs r3, 0 bl xxx_format_string ldr r1, _0801507C add r1, sp movs r0, 0 strb r0, [r1] str r4, [sp] str r5, [sp, 0x4] adds r0, r6, 0 mov r1, r8 add r2, sp, 0x8 mov r3, r9 bl sub_8008F8C add sp, 0x1FC pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0801507C: .4byte 0x000001fb thumb_func_end sub_8015034 thumb_func_start sub_8015080 sub_8015080: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 mov r8, r0 mov r9, r1 ldr r4, _08015158 ldr r0, _0801515C movs r1, 0x8 bl MemoryAlloc str r0, [r4] movs r1, 0 str r1, [r0] mov r12, r4 ldr r0, _08015160 mov r10, r0 mov r5, r12 movs r3, 0 movs r2, 0x3 _080150AC: mov r4, r12 ldr r1, [r4] adds r1, r3 adds r1, 0x54 mov r0, r10 ldm r0!, {r4,r6,r7} stm r1!, {r4,r6,r7} ldm r0!, {r4,r6,r7} stm r1!, {r4,r6,r7} adds r3, 0x18 subs r2, 0x1 cmp r2, 0 bge _080150AC movs r4, 0 ldr r1, [r5] adds r1, 0x54 ldr r0, _08015164 ldm r0!, {r2,r6,r7} stm r1!, {r2,r6,r7} ldm r0!, {r3,r6,r7} stm r1!, {r3,r6,r7} ldr r1, [r5] adds r1, 0x84 ldr r0, _08015168 ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldr r0, [r5] adds r0, 0x84 mov r1, r9 bl sub_8012CAC bl sub_8004914 ldr r0, [r5] adds r0, 0x54 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0 bl sub_80073B8 ldr r2, [r5] adds r1, r2, 0 adds r1, 0xB4 ldr r6, _0801515C adds r2, r6 mov r0, r8 movs r3, 0 bl xxx_format_string ldr r2, [r5] adds r2, 0xB4 str r4, [sp] movs r0, 0x4 movs r1, 0x4 movs r3, 0 bl xxx_call_draw_string movs r0, 0 bl sub_80073E0 ldr r0, [r5] adds r0, 0x4 movs r1, 0x1 negs r1, r1 str r1, [sp] movs r1, 0x2 str r1, [sp, 0x4] mov r1, r9 movs r2, 0 movs r3, 0 bl sub_8012D60 movs r0, 0x1 add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08015158: .4byte gUnknown_203B1F8 _0801515C: .4byte 0x000004b4 _08015160: .4byte gUnknown_80DAF70 _08015164: .4byte gUnknown_80DAF88 _08015168: .4byte gUnknown_80DAFA0 thumb_func_end sub_8015080 thumb_func_start sub_801516C sub_801516C: push {r4,lr} ldr r4, _08015184 ldr r0, [r4] adds r0, 0x4 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 beq _08015188 movs r0, 0 b _08015192 .align 2, 0 _08015184: .4byte gUnknown_203B1F8 _08015188: ldr r1, [r4] adds r0, r1, 0x4 bl sub_8013114 movs r0, 0x3 _08015192: pop {r4} pop {r1} bx r1 thumb_func_end sub_801516C thumb_func_start sub_8015198 sub_8015198: ldr r0, _080151A0 ldr r0, [r0] ldr r0, [r0] bx lr .align 2, 0 _080151A0: .4byte gUnknown_203B1F8 thumb_func_end sub_8015198 thumb_func_start sub_80151A4 sub_80151A4: push {r4,lr} ldr r4, _080151BC ldr r0, [r4] cmp r0, 0 beq _080151B6 bl MemoryFree movs r0, 0 str r0, [r4] _080151B6: pop {r4} pop {r0} bx r0 .align 2, 0 _080151BC: .4byte gUnknown_203B1F8 thumb_func_end sub_80151A4 thumb_func_start sub_80151C0 sub_80151C0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r5, r0, 0 adds r6, r1, 0 ldr r4, _080151FC movs r0, 0xCC lsls r0, 1 movs r1, 0x8 bl MemoryAlloc str r0, [r4] str r5, [r0] movs r1, 0 strb r1, [r0, 0x19] ldr r0, [r4] strb r1, [r0, 0x18] ldr r0, [r4] strb r1, [r0, 0x4] ldr r0, [r4] ldr r0, [r0] cmp r0, 0x5 bhi _0801524C lsls r0, 2 ldr r1, _08015200 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080151FC: .4byte gUnknown_203B1FC _08015200: .4byte _08015204 .align 2, 0 _08015204: .4byte _0801524C .4byte _0801524C .4byte _0801524C .4byte _0801524C .4byte _0801521C .4byte _08015234 _0801521C: ldr r1, _08015230 ldr r2, [r1] movs r0, 0x9 strb r0, [r2, 0x1A] ldr r2, [r1] movs r0, 0x1 strb r0, [r2, 0x4] ldr r2, [r1] movs r0, 0x36 b _08015258 .align 2, 0 _08015230: .4byte gUnknown_203B1FC _08015234: ldr r1, _08015248 ldr r2, [r1] movs r0, 0x9 strb r0, [r2, 0x1A] ldr r2, [r1] movs r0, 0x1 strb r0, [r2, 0x4] ldr r2, [r1] movs r0, 0x18 b _08015258 .align 2, 0 _08015248: .4byte gUnknown_203B1FC _0801524C: ldr r1, _08015374 ldr r2, [r1] movs r0, 0x6 strb r0, [r2, 0x1A] ldr r2, [r1] movs r0, 0xA _08015258: strb r0, [r2, 0x1B] mov r8, r1 mov r0, r8 ldr r2, [r0] movs r1, 0x9A lsls r1, 1 adds r0, r2, r1 str r6, [r0] adds r1, r2, 0 adds r1, 0xF8 adds r0, r2, 0 adds r0, 0xFC str r0, [r1] movs r2, 0 mov r1, r8 movs r3, 0 _08015278: ldr r0, [r1] adds r0, 0xF8 ldr r0, [r0] adds r0, r2 strb r3, [r0] adds r2, 0x1 cmp r2, 0x35 ble _08015278 ldr r5, _08015374 ldr r2, [r5] adds r0, r2, 0 adds r0, 0xF8 ldr r0, [r0] movs r3, 0x9A lsls r3, 1 adds r1, r2, r3 ldr r1, [r1] ldrb r2, [r2, 0x1B] bl MemoryCopy8 movs r2, 0 ldr r0, [r5] ldrb r3, [r0, 0x1B] cmp r2, r3 bge _080152EA adds r1, r0, 0 adds r1, 0xF8 ldr r0, [r1] ldrb r0, [r0] mov r8, r5 cmp r0, 0 beq _080152C8 _080152B8: adds r2, 0x1 cmp r2, r3 bge _080152EA ldr r0, [r1] adds r0, r2 ldrb r0, [r0] cmp r0, 0 bne _080152B8 _080152C8: mov r4, r8 ldr r0, [r4] ldrb r0, [r0, 0x1B] cmp r2, r0 bge _080152EA mov r1, r8 movs r3, 0 _080152D6: ldr r0, [r1] adds r0, 0xF8 ldr r0, [r0] adds r0, r2 strb r3, [r0] adds r2, 0x1 ldr r0, [r1] ldrb r0, [r0, 0x1B] cmp r2, r0 blt _080152D6 _080152EA: bl sub_8015F44 ldr r2, _08015374 ldr r1, [r2] strb r0, [r1, 0x1C] ldr r1, [r2] ldrb r0, [r1, 0x1C] ldrb r5, [r1, 0x1B] cmp r0, r5 bne _08015302 subs r0, 0x1 strb r0, [r1, 0x1C] _08015302: movs r6, 0x1 mov r12, r6 ldr r6, [r2] adds r5, r6, 0x6 ldrh r1, [r6, 0x6] ldr r0, _08015378 ands r0, r1 ldr r1, _0801537C ands r0, r1 ldr r2, _08015380 ands r0, r2 ldr r1, _08015384 ands r0, r1 ldr r1, _08015388 ands r0, r1 strh r0, [r6, 0x6] ldrh r0, [r5, 0x4] adds r3, r2, 0 ands r3, r0 movs r1, 0xF movs r2, 0xF0 lsls r2, 8 ldr r0, _0801538C ands r3, r0 orrs r3, r2 strh r3, [r5, 0x4] ldrh r0, [r5, 0x2] movs r4, 0xFE lsls r4, 8 ands r4, r0 movs r0, 0xF0 orrs r4, r0 strh r4, [r5, 0x2] movs r2, 0xF0 lsls r2, 4 ldrh r0, [r5, 0x6] ands r1, r0 movs r7, 0 orrs r1, r2 strh r1, [r5, 0x6] ldrb r0, [r6, 0x4] cmp r0, 0 beq _0801539C ldr r0, _08015390 ands r4, r0 ldr r1, _08015394 movs r0, 0xFC lsls r0, 8 ands r3, r0 orrs r3, r1 strh r3, [r5, 0x4] ldr r0, _08015398 ands r4, r0 strh r4, [r5, 0x2] mov r7, r12 b _080153BE .align 2, 0 _08015374: .4byte gUnknown_203B1FC _08015378: .4byte 0x0000feff _0801537C: .4byte 0x0000fdff _08015380: .4byte 0x0000f3ff _08015384: .4byte 0x0000efff _08015388: .4byte 0x0000dfff _0801538C: .4byte 0x00000fff _08015390: .4byte 0x0000c1ff _08015394: .4byte 0x000003f6 _08015398: .4byte 0x00003fff _0801539C: movs r1, 0x80 lsls r1, 6 ldr r0, _08015468 ands r4, r0 orrs r4, r1 orrs r4, r7 movs r1, 0xFC lsls r1, 2 movs r0, 0xFC lsls r0, 8 ands r3, r0 orrs r3, r1 strh r3, [r5, 0x4] ldr r0, _0801546C ands r4, r0 strh r4, [r5, 0x2] mov r1, r12 _080153BE: movs r2, 0x80 lsls r2, 7 ldrh r1, [r6, 0x6] ands r0, r1 orrs r0, r2 strh r0, [r6, 0x6] ldr r5, _08015470 ldr r1, [r5] movs r0, 0x4 strb r0, [r1, 0x16] ldr r4, [r5] adds r6, r4, 0 adds r6, 0xE ldrh r1, [r4, 0xE] ldr r0, _08015474 ands r0, r1 ldr r1, _08015478 ands r0, r1 ldr r3, _0801547C ands r0, r3 ldr r1, _08015480 ands r0, r1 ldr r1, _08015484 ands r0, r1 ldr r1, _0801546C ands r0, r1 strh r0, [r4, 0xE] movs r2, 0xFD lsls r2, 2 ldrh r1, [r6, 0x4] movs r0, 0xFC lsls r0, 8 ands r0, r1 orrs r0, r2 ands r0, r3 movs r2, 0xF movs r3, 0xF0 lsls r3, 8 ldr r1, _08015488 ands r0, r1 orrs r0, r3 strh r0, [r6, 0x4] movs r0, 0xF0 strh r0, [r6, 0x2] subs r1, 0xFF ldrh r0, [r6, 0x6] ands r2, r0 movs r0, 0 orrs r2, r1 strh r2, [r6, 0x6] strb r0, [r4, 0x17] mov r8, r5 ldr r2, _0801548C mov r10, r2 mov r12, r8 movs r3, 0x9C lsls r3, 1 mov r9, r3 ldr r4, _08015490 movs r3, 0 movs r2, 0x3 _08015438: mov r5, r12 ldr r1, [r5] adds r1, r3 add r1, r9 adds r0, r4, 0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} adds r3, 0x18 subs r2, 0x1 cmp r2, 0 bge _08015438 mov r6, r8 ldr r1, [r6] ldrb r0, [r1, 0x4] cmp r0, 0 beq _08015498 movs r7, 0xA8 lsls r7, 1 adds r1, r7 ldr r0, _08015494 b _080154A0 .align 2, 0 _08015468: .4byte 0x0000c1ff _0801546C: .4byte 0x00003fff _08015470: .4byte gUnknown_203B1FC _08015474: .4byte 0x0000feff _08015478: .4byte 0x0000fdff _0801547C: .4byte 0x0000f3ff _08015480: .4byte 0x0000efff _08015484: .4byte 0x0000dfff _08015488: .4byte 0x00000fff _0801548C: .4byte gUnknown_80DB550 _08015490: .4byte gUnknown_80DB538 _08015494: .4byte gUnknown_80DB580 _08015498: movs r0, 0xA8 lsls r0, 1 adds r1, r0 ldr r0, _080154EC _080154A0: ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r5-r7} stm r1!, {r5-r7} mov r0, r8 ldr r1, [r0] movs r4, 0x9C lsls r4, 1 adds r1, r4 mov r0, r10 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r6,r7} stm r1!, {r2,r6,r7} bl sub_8004914 mov r3, r8 ldr r0, [r3] adds r0, r4 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x1 bl sub_8015A08 bl sub_8015C1C bl sub_8015F84 movs r0, 0x1 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080154EC: .4byte gUnknown_80DB568 thumb_func_end sub_80151C0 thumb_func_start sub_80154F0 sub_80154F0: push {r4,r5,lr} ldr r4, _08015558 ldr r1, [r4] ldrb r0, [r1, 0x16] adds r0, 0x1 strb r0, [r1, 0x16] bl sub_80157D8 ldr r2, [r4] ldrb r1, [r2, 0x16] movs r5, 0x8 adds r0, r5, 0 ands r0, r1 cmp r0, 0 beq _0801551C adds r0, r2, 0x6 movs r1, 0x80 lsls r1, 1 movs r2, 0 movs r3, 0 bl AddSprite _0801551C: ldr r1, [r4] ldrb r0, [r1, 0x17] adds r0, 0x1 strb r0, [r1, 0x17] bl sub_80158BC ldr r2, [r4] ldrb r1, [r2, 0x17] adds r0, r5, 0 ands r0, r1 cmp r0, 0 beq _08015544 adds r0, r2, 0 adds r0, 0xE movs r1, 0x80 lsls r1, 1 movs r2, 0 movs r3, 0 bl AddSprite _08015544: bl sub_8012AE8 subs r0, 0x1 cmp r0, 0x5 bhi _080155E2 lsls r0, 2 ldr r1, _0801555C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08015558: .4byte gUnknown_203B1FC _0801555C: .4byte _08015560 .align 2, 0 _08015560: .4byte _080155C0 .4byte _080155C6 .4byte _080155E2 .4byte _080155D4 .4byte _08015578 .4byte _0801558C _08015578: ldr r0, _08015588 ldr r1, [r0] ldrb r0, [r1, 0x1C] cmp r0, 0 beq _080155B8 subs r0, 0x1 b _080155A8 .align 2, 0 _08015588: .4byte gUnknown_203B1FC _0801558C: ldr r5, _080155B4 ldr r0, [r5] ldrb r4, [r0, 0x1C] ldrb r0, [r0, 0x1B] subs r0, 0x1 cmp r4, r0 beq _080155B8 bl sub_8015F44 cmp r4, r0 bge _080155B8 ldr r1, [r5] ldrb r0, [r1, 0x1C] adds r0, 0x1 _080155A8: strb r0, [r1, 0x1C] movs r0, 0x3 bl sub_80119D4 b _080155E2 .align 2, 0 _080155B4: .4byte gUnknown_203B1FC _080155B8: movs r0, 0x2 bl sub_80119D4 b _080155E2 _080155C0: bl sub_801560C b _080155E4 _080155C6: bl sub_8015748 lsls r0, 24 cmp r0, 0 beq _080155E2 movs r0, 0x2 b _080155E4 _080155D4: movs r0, 0x3 bl sub_80119D4 ldr r0, _080155EC ldr r1, [r0] movs r0, 0x5 strb r0, [r1, 0x1A] _080155E2: movs r0, 0 _080155E4: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080155EC: .4byte gUnknown_203B1FC thumb_func_end sub_80154F0 thumb_func_start sub_80155F0 sub_80155F0: push {r4,lr} ldr r4, _08015608 ldr r0, [r4] cmp r0, 0 beq _08015602 bl MemoryFree movs r0, 0 str r0, [r4] _08015602: pop {r4} pop {r0} bx r0 .align 2, 0 _08015608: .4byte gUnknown_203B1FC thumb_func_end sub_80155F0 thumb_func_start sub_801560C sub_801560C: push {r4-r6,lr} ldr r3, _08015640 ldr r4, _08015644 ldr r5, [r4] ldrb r0, [r5, 0x1A] lsls r1, r0, 1 adds r1, r0 ldrb r2, [r5, 0x19] lsls r0, r2, 8 subs r0, r2 adds r0, r1 lsls r0, 2 adds r3, 0x8 adds r0, r3 ldr r6, [r0] movs r0, 0x83 lsls r0, 1 cmp r6, r0 beq _0801567A cmp r6, r0 bgt _08015648 subs r0, 0x1 cmp r6, r0 beq _0801566C b _080156BC .align 2, 0 _08015640: .4byte gUnknown_80DB0F8 _08015644: .4byte gUnknown_203B1FC _08015648: ldr r0, _08015668 cmp r6, r0 bne _080156BC movs r1, 0 ldrb r0, [r5, 0x18] cmp r0, 0 bne _08015658 movs r1, 0x1 _08015658: strb r1, [r5, 0x18] movs r0, 0x4 bl sub_80119D4 movs r0, 0 bl sub_8015A08 b _0801573E .align 2, 0 _08015668: .4byte 0x00000107 _0801566C: bl sub_8015748 lsls r0, 24 cmp r0, 0 beq _0801573E movs r0, 0x2 b _08015740 _0801567A: bl sub_8015F44 cmp r0, 0 beq _080156D4 ldr r0, [r4] ldrb r0, [r0, 0x4] cmp r0, 0 beq _08015696 bl sub_8015F44 ldr r1, [r4] ldrb r1, [r1, 0x1B] cmp r0, r1 bne _080156D4 _08015696: movs r0, 0 bl sub_80119D4 ldr r0, _080156B8 ldr r2, [r0] movs r1, 0x9A lsls r1, 1 adds r0, r2, r1 ldr r0, [r0] adds r1, r2, 0 adds r1, 0xF8 ldr r1, [r1] ldrb r2, [r2, 0x1B] bl MemoryCopy8 movs r0, 0x3 b _08015740 .align 2, 0 _080156B8: .4byte gUnknown_203B1FC _080156BC: ldr r0, [r4] ldrb r0, [r0, 0x4] cmp r0, 0 beq _080156DC lsls r0, r6, 24 lsrs r0, 24 bl sub_803D0F0 lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF bne _080156DC _080156D4: movs r0, 0x2 bl sub_80119D4 b _0801573E _080156DC: ldr r0, _08015728 ldr r3, [r0] ldrb r1, [r3, 0x18] adds r4, r0, 0 cmp r1, 0x1 bne _0801570A ldrb r0, [r3, 0x1B] subs r2, r0, 0x2 ldrb r3, [r3, 0x1C] cmp r2, r3 blt _0801570A adds r3, r4, 0 _080156F4: ldr r0, [r3] adds r0, 0xF8 ldr r0, [r0] adds r0, r2 ldrb r1, [r0] strb r1, [r0, 0x1] subs r2, 0x1 ldr r0, [r3] ldrb r0, [r0, 0x1C] cmp r2, r0 bge _080156F4 _0801570A: ldr r0, [r4] ldrb r1, [r0, 0x1C] adds r0, 0xF8 ldr r0, [r0] adds r0, r1 strb r6, [r0] ldr r1, [r4] ldrb r2, [r1, 0x1C] ldrb r0, [r1, 0x1B] subs r0, 0x1 cmp r2, r0 bge _0801572C adds r0, r2, 0x1 strb r0, [r1, 0x1C] b _08015730 .align 2, 0 _08015728: .4byte gUnknown_203B1FC _0801572C: movs r0, 0x5 strb r0, [r1, 0x1A] _08015730: movs r0, 0 bl sub_80119D4 bl sub_8015C1C bl sub_8015F84 _0801573E: movs r0, 0 _08015740: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_801560C thumb_func_start sub_8015748 sub_8015748: push {r4,lr} ldr r4, _0801576C ldr r2, [r4] ldrb r1, [r2, 0x1C] adds r0, r2, 0 adds r0, 0xF8 ldr r0, [r0] adds r0, r1 ldrb r3, [r0] cmp r3, 0 bne _08015790 cmp r1, 0 bne _08015770 movs r0, 0x2 bl sub_80119D4 movs r0, 0x1 b _080157CE .align 2, 0 _0801576C: .4byte gUnknown_203B1FC _08015770: subs r0, r1, 0x1 strb r0, [r2, 0x1C] ldr r0, [r4] ldrb r1, [r0, 0x1C] adds r0, 0xF8 ldr r0, [r0] adds r0, r1 strb r3, [r0] movs r0, 0x1 bl sub_80119D4 bl sub_8015C1C bl sub_8015F84 b _080157CC _08015790: bl sub_8015F44 subs r3, r0, 0x1 ldr r0, [r4] ldrb r2, [r0, 0x1C] cmp r2, r3 bge _080157B0 _0801579E: ldr r0, [r4] adds r0, 0xF8 ldr r0, [r0] adds r0, r2 ldrb r1, [r0, 0x1] strb r1, [r0] adds r2, 0x1 cmp r2, r3 blt _0801579E _080157B0: ldr r0, _080157D4 ldr r0, [r0] adds r0, 0xF8 ldr r0, [r0] adds r0, r3 movs r1, 0 strb r1, [r0] movs r0, 0x1 bl sub_80119D4 bl sub_8015C1C bl sub_8015F84 _080157CC: movs r0, 0 _080157CE: pop {r4} pop {r1} bx r1 .align 2, 0 _080157D4: .4byte gUnknown_203B1FC thumb_func_end sub_8015748 thumb_func_start sub_80157D8 sub_80157D8: push {r4,r5,lr} ldr r5, _080157EC ldr r0, _080157F0 ldr r0, [r0] mov r12, r0 ldr r0, [r0] cmp r0, 0x4 bne _080157F8 ldr r3, _080157F4 b _080157FE .align 2, 0 _080157EC: .4byte gUnknown_20273B8 _080157F0: .4byte gUnknown_203B1FC _080157F4: .4byte gUnknown_80DAFC0 _080157F8: cmp r0, 0x5 bne _0801585C ldr r3, _08015850 _080157FE: mov r1, r12 ldrb r0, [r1, 0x1C] lsls r0, 2 adds r0, r3 movs r2, 0 ldrsh r1, [r0, r2] movs r2, 0 ldrsh r0, [r5, r2] lsls r0, 3 adds r1, r0 ldr r0, _08015854 ands r1, r0 mov r4, r12 adds r4, 0x6 ldrh r2, [r4, 0x2] movs r0, 0xFE lsls r0, 8 ands r0, r2 orrs r0, r1 strh r0, [r4, 0x2] mov r1, r12 ldrb r0, [r1, 0x1C] lsls r0, 2 adds r0, r3 movs r2, 0x2 ldrsh r1, [r0, r2] movs r3, 0x2 ldrsh r0, [r5, r3] lsls r0, 3 adds r1, r0 adds r1, 0x5 ldr r0, _08015858 ands r1, r0 lsls r1, 4 ldrh r2, [r4, 0x6] movs r0, 0xF ands r0, r2 orrs r0, r1 strh r0, [r4, 0x6] b _080158B0 .align 2, 0 _08015850: .4byte gUnknown_80DB098 _08015854: .4byte 0x000001ff _08015858: .4byte 0x00000fff _0801585C: mov r0, r12 ldrb r1, [r0, 0x1C] lsls r1, 1 mov r2, r12 adds r2, 0x1E adds r2, r1 adds r0, 0x8A adds r0, r1 movs r3, 0 ldrsh r1, [r0, r3] lsrs r0, r1, 31 adds r1, r0 asrs r1, 1 ldrh r2, [r2] adds r1, r2 movs r2, 0 ldrsh r0, [r5, r2] lsls r0, 3 adds r0, 0x1E adds r1, r0 lsls r1, 23 lsrs r1, 23 mov r3, r12 adds r3, 0x6 ldrh r2, [r3, 0x2] movs r0, 0xFE lsls r0, 8 ands r0, r2 orrs r0, r1 strh r0, [r3, 0x2] movs r0, 0x2 ldrsh r1, [r5, r0] lsls r1, 3 adds r1, 0x22 ldr r0, _080158B8 ands r1, r0 lsls r1, 4 ldrh r2, [r3, 0x6] movs r0, 0xF ands r0, r2 orrs r0, r1 strh r0, [r3, 0x6] _080158B0: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080158B8: .4byte 0x00000fff thumb_func_end sub_80157D8 thumb_func_start sub_80158BC sub_80158BC: push {r4-r6,lr} ldr r6, _080158D4 bl sub_8012AE8 cmp r0, 0x8 beq _08015908 cmp r0, 0x8 bgt _080158D8 cmp r0, 0x7 beq _080158E2 b _08015980 .align 2, 0 _080158D4: .4byte gUnknown_2027370 _080158D8: cmp r0, 0x9 beq _08015930 cmp r0, 0xA beq _08015958 b _08015980 _080158E2: ldr r4, _08015900 ldr r3, _08015904 ldr r2, [r3] ldrb r0, [r2, 0x1A] lsls r1, r0, 1 adds r1, r0 ldrb r2, [r2, 0x19] lsls r0, r2, 8 subs r0, r2 adds r0, r1 lsls r0, 2 adds r0, r4 ldrb r0, [r0] adds r5, r3, 0 b _08015988 .align 2, 0 _08015900: .4byte gUnknown_80DB0F8 _08015904: .4byte gUnknown_203B1FC _08015908: ldr r4, _08015928 ldr r3, _0801592C ldr r2, [r3] ldrb r0, [r2, 0x1A] lsls r1, r0, 1 adds r1, r0 ldrb r2, [r2, 0x19] lsls r0, r2, 8 subs r0, r2 adds r0, r1 lsls r0, 2 adds r0, r4 ldrb r0, [r0, 0x1] adds r5, r3, 0 b _08015988 .align 2, 0 _08015928: .4byte gUnknown_80DB0F8 _0801592C: .4byte gUnknown_203B1FC _08015930: ldr r4, _08015950 ldr r3, _08015954 ldr r2, [r3] ldrb r0, [r2, 0x1A] lsls r1, r0, 1 adds r1, r0 ldrb r2, [r2, 0x19] lsls r0, r2, 8 subs r0, r2 adds r0, r1 lsls r0, 2 adds r0, r4 ldrb r0, [r0, 0x2] adds r5, r3, 0 b _08015988 .align 2, 0 _08015950: .4byte gUnknown_80DB0F8 _08015954: .4byte gUnknown_203B1FC _08015958: ldr r4, _08015978 ldr r3, _0801597C ldr r2, [r3] ldrb r0, [r2, 0x1A] lsls r1, r0, 1 adds r1, r0 ldrb r2, [r2, 0x19] lsls r0, r2, 8 subs r0, r2 adds r0, r1 lsls r0, 2 adds r0, r4 ldrb r0, [r0, 0x3] adds r5, r3, 0 b _08015988 .align 2, 0 _08015978: .4byte gUnknown_80DB0F8 _0801597C: .4byte gUnknown_203B1FC _08015980: ldr r1, _080159F8 ldr r0, [r1] ldrb r0, [r0, 0x1A] adds r5, r1, 0 _08015988: adds r4, r5, 0 ldr r1, [r4] ldrb r2, [r1, 0x1A] cmp r0, r2 beq _080159A0 strb r0, [r1, 0x1A] movs r0, 0x3 bl sub_80119D4 ldr r1, [r4] movs r0, 0x8 strb r0, [r1, 0x17] _080159A0: ldr r3, _080159FC ldr r4, [r5] ldrb r0, [r4, 0x1A] lsls r1, r0, 1 adds r1, r0 ldrb r2, [r4, 0x19] lsls r0, r2, 8 subs r0, r2 adds r0, r1 lsls r0, 2 adds r0, r3 movs r3, 0 ldrsh r1, [r6, r3] lsls r1, 3 ldrb r2, [r0, 0x4] adds r1, r2 subs r1, 0x5 movs r3, 0x2 ldrsh r2, [r6, r3] lsls r2, 3 ldrb r0, [r0, 0x5] adds r2, r0 adds r2, 0x1 ldr r0, _08015A00 ands r1, r0 adds r4, 0xE ldrh r3, [r4, 0x2] movs r0, 0xFE lsls r0, 8 ands r0, r3 orrs r0, r1 strh r0, [r4, 0x2] ldr r0, _08015A04 ands r2, r0 lsls r2, 4 ldrh r1, [r4, 0x6] movs r0, 0xF ands r0, r1 orrs r0, r2 strh r0, [r4, 0x6] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080159F8: .4byte gUnknown_203B1FC _080159FC: .4byte gUnknown_80DB0F8 _08015A00: .4byte 0x000001ff _08015A04: .4byte 0x00000fff thumb_func_end sub_80158BC thumb_func_start sub_8015A08 sub_8015A08: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x24 movs r0, 0 bl sub_8008C54 movs r0, 0 bl sub_80073B8 ldr r3, _08015A68 ldr r2, _08015A6C ldr r0, [r2] ldrb r1, [r0, 0x19] lsls r0, r1, 8 subs r0, r1 lsls r0, 2 adds r1, r3, 0 adds r1, 0x8 adds r0, r1 ldr r4, [r0] ldr r0, _08015A70 cmp r4, r0 bne _08015A3E b _08015BC0 _08015A3E: mov r8, r2 adds r7, r3, 0 add r0, sp, 0x14 mov r10, r0 movs r6, 0 mov r9, r6 _08015A4A: ldr r0, [r2] ldrb r1, [r0, 0x19] lsls r0, r1, 8 subs r0, r1 lsls r0, 2 adds r0, r6, r0 adds r0, r3 ldrb r0, [r0, 0x6] cmp r0, 0x2 beq _08015AAA cmp r0, 0x2 bgt _08015A74 cmp r0, 0x1 beq _08015A7A b _08015A82 .align 2, 0 _08015A68: .4byte gUnknown_80DB0F8 _08015A6C: .4byte gUnknown_203B1FC _08015A70: .4byte 0x00000109 _08015A74: cmp r0, 0x3 beq _08015A7E b _08015A82 _08015A7A: movs r5, 0x5 b _08015AAC _08015A7E: movs r5, 0x7 b _08015AAC _08015A82: movs r5, 0x7 mov r1, r8 ldr r0, [r1] ldrb r0, [r0, 0x4] cmp r0, 0 beq _08015AAC cmp r4, 0xFF bgt _08015AA4 lsls r0, r4, 24 lsrs r0, 24 bl sub_803D0F0 lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF bne _08015AAC b _08015AAA _08015AA4: ldr r0, _08015ADC cmp r4, r0 bgt _08015AAC _08015AAA: movs r5, 0x2 _08015AAC: movs r0, 0x84 lsls r0, 1 cmp r4, r0 beq _08015B9E subs r0, 0x1 cmp r4, r0 bne _08015B04 mov r2, r8 ldr r0, [r2] ldrb r2, [r0, 0x18] cmp r2, 0 bne _08015AE4 ldrb r0, [r0, 0x19] lsls r1, r0, 8 subs r1, r0 lsls r1, 2 adds r1, r6, r1 adds r1, r7 ldrb r0, [r1, 0x4] adds r0, 0x3 ldrb r1, [r1, 0x5] str r2, [sp] ldr r2, _08015AE0 b _08015B6A .align 2, 0 _08015ADC: .4byte 0x00000101 _08015AE0: .4byte gUnknown_80DB598 _08015AE4: ldrb r0, [r0, 0x19] lsls r1, r0, 8 subs r1, r0 lsls r1, 2 adds r1, r6, r1 adds r1, r7 ldrb r0, [r1, 0x4] adds r0, 0x3 ldrb r1, [r1, 0x5] mov r3, r9 str r3, [sp] ldr r2, _08015B00 b _08015B6A .align 2, 0 _08015B00: .4byte gUnknown_80DB5A4 _08015B04: cmp r4, 0x20 bne _08015B34 add r0, sp, 0x4 ldr r1, _08015B30 adds r2, r5, 0 bl sub_800D158 mov r1, r8 ldr r0, [r1] ldrb r0, [r0, 0x19] lsls r1, r0, 8 subs r1, r0 lsls r1, 2 adds r1, r6, r1 adds r1, r7 ldrb r0, [r1, 0x4] adds r0, 0x1 ldrb r1, [r1, 0x5] mov r2, r9 str r2, [sp] add r2, sp, 0x4 b _08015B6A .align 2, 0 _08015B30: .4byte gUnknown_80DB5B0 _08015B34: cmp r4, 0xFF ble _08015B7C ldr r1, _08015B74 movs r0, 0xFF ands r4, r0 lsls r0, r4, 2 adds r0, r1 ldr r3, [r0] mov r0, r10 ldr r1, _08015B78 adds r2, r5, 0 bl sub_800D158 mov r3, r8 ldr r0, [r3] ldrb r0, [r0, 0x19] lsls r1, r0, 8 subs r1, r0 lsls r1, 2 adds r1, r6, r1 adds r1, r7 ldrb r0, [r1, 0x4] adds r0, 0x3 ldrb r1, [r1, 0x5] mov r2, r9 str r2, [sp] mov r2, r10 _08015B6A: movs r3, 0 bl xxx_call_draw_string b _08015B9E .align 2, 0 _08015B74: .4byte gUnknown_80DB4F4 _08015B78: .4byte gUnknown_80DB5B8 _08015B7C: mov r3, r8 ldr r0, [r3] ldrb r0, [r0, 0x19] lsls r1, r0, 8 subs r1, r0 lsls r1, 2 adds r1, r6, r1 adds r1, r7 ldrb r0, [r1, 0x4] ldrb r1, [r1, 0x5] lsls r2, r4, 24 lsrs r2, 24 mov r3, r9 str r3, [sp] adds r3, r5, 0 bl sub_8012C60 _08015B9E: adds r6, 0xC ldr r3, _08015C10 ldr r2, _08015C14 ldr r0, [r2] ldrb r1, [r0, 0x19] lsls r0, r1, 8 subs r0, r1 lsls r0, 2 adds r0, r6, r0 adds r1, r3, 0 adds r1, 0x8 adds r0, r1 ldr r4, [r0] ldr r0, _08015C18 cmp r4, r0 beq _08015BC0 b _08015A4A _08015BC0: movs r4, 0xE str r4, [sp] movs r0, 0 movs r1, 0 movs r2, 0 movs r3, 0xE0 bl sub_800792C str r4, [sp] movs r0, 0 movs r1, 0 movs r2, 0x47 movs r3, 0xE0 bl sub_800792C str r4, [sp] movs r0, 0 movs r1, 0 movs r2, 0 movs r3, 0x48 bl sub_8007A78 str r4, [sp] movs r0, 0 movs r1, 0xDF movs r2, 0 movs r3, 0x48 bl sub_8007A78 movs r0, 0 bl sub_80073E0 add sp, 0x24 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08015C10: .4byte gUnknown_80DB0F8 _08015C14: .4byte gUnknown_203B1FC _08015C18: .4byte 0x00000109 thumb_func_end sub_8015A08 thumb_func_start sub_8015C1C sub_8015C1C: push {r4,r5,lr} sub sp, 0x54 movs r0, 0x1 bl sub_8008C54 movs r0, 0x1 bl sub_80073B8 ldr r0, _08015C74 ldr r0, [r0] ldrb r0, [r0, 0x4] cmp r0, 0 beq _08015C78 movs r4, 0xE str r4, [sp] movs r0, 0x1 movs r1, 0 movs r2, 0 movs r3, 0xE0 bl sub_800792C str r4, [sp] movs r0, 0x1 movs r1, 0 movs r2, 0x37 movs r3, 0xE0 bl sub_800792C str r4, [sp] movs r0, 0x1 movs r1, 0 movs r2, 0 movs r3, 0x38 bl sub_8007A78 str r4, [sp] movs r0, 0x1 movs r1, 0xDF movs r2, 0 movs r3, 0x38 bl sub_8007A78 b _08015CB2 .align 2, 0 _08015C74: .4byte gUnknown_203B1FC _08015C78: movs r4, 0xE str r4, [sp] movs r0, 0x1 movs r1, 0 movs r2, 0 movs r3, 0xB0 bl sub_800792C str r4, [sp] movs r0, 0x1 movs r1, 0 movs r2, 0x27 movs r3, 0xB0 bl sub_800792C str r4, [sp] movs r0, 0x1 movs r1, 0 movs r2, 0 movs r3, 0x28 bl sub_8007A78 str r4, [sp] movs r0, 0x1 movs r1, 0xAF movs r2, 0 movs r3, 0x28 bl sub_8007A78 _08015CB2: ldr r0, _08015CC8 ldr r0, [r0] ldr r0, [r0] cmp r0, 0x5 bhi _08015D50 lsls r0, 2 ldr r1, _08015CCC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08015CC8: .4byte gUnknown_203B1FC _08015CCC: .4byte _08015CD0 .align 2, 0 _08015CD0: .4byte _08015CE8 .4byte _08015D18 .4byte _08015CF8 .4byte _08015D08 .4byte _08015D28 .4byte _08015D40 _08015CE8: ldr r2, _08015CF4 movs r0, 0 str r0, [sp] movs r0, 0x8 movs r1, 0x5 b _08015D32 .align 2, 0 _08015CF4: .4byte gUnknown_80DB5C0 _08015CF8: ldr r2, _08015D04 movs r0, 0 str r0, [sp] movs r0, 0x8 movs r1, 0x5 b _08015D32 .align 2, 0 _08015D04: .4byte gUnknown_80DB5D4 _08015D08: ldr r2, _08015D14 movs r0, 0 str r0, [sp] movs r0, 0x8 movs r1, 0x5 b _08015D32 .align 2, 0 _08015D14: .4byte gUnknown_80DB5F8 _08015D18: ldr r2, _08015D24 movs r0, 0 str r0, [sp] movs r0, 0x8 movs r1, 0x5 b _08015D32 .align 2, 0 _08015D24: .4byte gUnknown_80DB61C _08015D28: ldr r2, _08015D3C movs r0, 0 str r0, [sp] movs r0, 0x36 movs r1, 0x2 _08015D32: movs r3, 0x1 bl xxx_call_draw_string b _08015D50 .align 2, 0 _08015D3C: .4byte gUnknown_80DB638 _08015D40: ldr r2, _08015D64 movs r0, 0 str r0, [sp] movs r0, 0x30 movs r1, 0x4 movs r3, 0x1 bl xxx_call_draw_string _08015D50: ldr r5, _08015D68 ldr r0, [r5] ldr r1, [r0] cmp r1, 0x4 beq _08015D6C cmp r1, 0x4 bcc _08015D88 cmp r1, 0x5 beq _08015D7A b _08015DFE .align 2, 0 _08015D64: .4byte gUnknown_80DB638 _08015D68: .4byte gUnknown_203B1FC _08015D6C: adds r0, 0xF8 ldr r0, [r0] movs r1, 0x1 movs r2, 0 bl sub_8015E10 b _08015DFE _08015D7A: adds r0, 0xF8 ldr r0, [r0] movs r1, 0x1 movs r2, 0 bl sub_8015EB4 b _08015DFE _08015D88: bl sub_8016028 adds r3, r0, 0 movs r0, 0x4 str r0, [sp] movs r0, 0x1 movs r1, 0x26 movs r2, 0x21 bl sub_80078A4 ldr r1, [r5] adds r0, r1, 0 adds r0, 0xF8 ldr r0, [r0] ldrb r1, [r1, 0x1B] bl sub_8015FEC adds r4, r0, 0 bl sub_8016028 cmp r4, r0 ble _08015DC0 ldr r1, _08015DBC ldr r0, [r5] b _08015DD0 .align 2, 0 _08015DBC: .4byte gUnknown_80DB654 _08015DC0: bl sub_8015F44 ldr r2, [r5] ldrb r1, [r2, 0x1B] cmp r0, r1 bne _08015DE0 ldr r1, _08015DDC adds r0, r2, 0 _08015DD0: adds r0, 0xF8 ldr r2, [r0] add r0, sp, 0x4 bl sub_800D158 b _08015DEE .align 2, 0 _08015DDC: .4byte gUnknown_80DB65C _08015DE0: ldr r1, _08015E0C adds r0, r2, 0 adds r0, 0xF8 ldr r2, [r0] add r0, sp, 0x4 bl sub_800D158 _08015DEE: movs r0, 0 str r0, [sp] movs r0, 0x26 movs r1, 0x16 add r2, sp, 0x4 movs r3, 0x1 bl xxx_call_draw_string _08015DFE: movs r0, 0x1 bl sub_80073E0 add sp, 0x54 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08015E0C: .4byte gUnknown_80DB664 thumb_func_end sub_8015C1C thumb_func_start sub_8015E10 sub_8015E10: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 mov r8, r0 adds r7, r1, 0 lsls r2, 16 asrs r6, r2, 16 ldr r5, _08015EB0 movs r4, 0x35 _08015E24: movs r0, 0 ldrsh r1, [r5, r0] movs r0, 0x2 ldrsh r2, [r5, r0] adds r0, r6, 0 adds r0, 0xB adds r2, r0 movs r0, 0x5 str r0, [sp] adds r0, r7, 0 movs r3, 0xB bl sub_80078A4 adds r5, 0x4 subs r4, 0x1 cmp r4, 0 bge _08015E24 movs r4, 0 mov r1, r8 ldrb r0, [r1] cmp r0, 0 beq _08015EA4 mov r5, r8 _08015E52: movs r3, 0x7 cmp r4, 0x4 ble _08015E7E movs r3, 0x6 cmp r4, 0xC ble _08015E7E movs r3, 0x7 cmp r4, 0x11 ble _08015E7E cmp r4, 0x16 ble _08015E7E movs r3, 0x6 cmp r4, 0x1E ble _08015E7E movs r3, 0x7 cmp r4, 0x23 ble _08015E7E cmp r4, 0x28 ble _08015E7E cmp r4, 0x30 bgt _08015E7E movs r3, 0x6 _08015E7E: ldr r0, _08015EB0 lsls r1, r4, 2 adds r1, r0 movs r2, 0 ldrsh r0, [r1, r2] movs r2, 0x2 ldrsh r1, [r1, r2] adds r1, r6 ldrb r2, [r5] str r7, [sp] bl sub_8012C60 adds r5, 0x1 adds r4, 0x1 cmp r4, 0x35 bgt _08015EA4 ldrb r0, [r5] cmp r0, 0 bne _08015E52 _08015EA4: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08015EB0: .4byte gUnknown_80DAFC0 thumb_func_end sub_8015E10 thumb_func_start sub_8015EB4 sub_8015EB4: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 mov r8, r0 adds r7, r1, 0 lsls r2, 16 asrs r6, r2, 16 ldr r5, _08015F40 movs r4, 0x17 _08015EC8: movs r0, 0 ldrsh r1, [r5, r0] movs r0, 0x2 ldrsh r2, [r5, r0] adds r0, r6, 0 adds r0, 0xB adds r2, r0 movs r0, 0x5 str r0, [sp] adds r0, r7, 0 movs r3, 0xC bl sub_80078A4 adds r5, 0x4 subs r4, 0x1 cmp r4, 0 bge _08015EC8 movs r4, 0 mov r1, r8 ldrb r0, [r1] cmp r0, 0 beq _08015F34 mov r5, r8 _08015EF6: movs r3, 0x7 cmp r4, 0x3 ble _08015F0E movs r3, 0x6 cmp r4, 0x7 ble _08015F0E movs r3, 0x7 cmp r4, 0xF ble _08015F0E cmp r4, 0x13 bgt _08015F0E movs r3, 0x6 _08015F0E: ldr r0, _08015F40 lsls r1, r4, 2 adds r1, r0 movs r2, 0 ldrsh r0, [r1, r2] movs r2, 0x2 ldrsh r1, [r1, r2] adds r1, r6 ldrb r2, [r5] str r7, [sp] bl sub_8012C60 adds r5, 0x1 adds r4, 0x1 cmp r4, 0x17 bgt _08015F34 ldrb r0, [r5] cmp r0, 0 bne _08015EF6 _08015F34: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08015F40: .4byte gUnknown_80DB098 thumb_func_end sub_8015EB4 thumb_func_start sub_8015F44 sub_8015F44: push {r4,lr} movs r2, 0 ldr r0, _08015F78 ldr r0, [r0] ldrb r4, [r0, 0x1B] cmp r2, r4 bge _08015F7C adds r3, r0, 0 adds r3, 0xF8 ldr r0, [r3] ldrb r0, [r0] cmp r0, 0 beq _08015F7C movs r2, 0x1 movs r1, 0x1 _08015F62: cmp r1, r4 bge _08015F7C ldr r0, [r3] adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _08015F7C adds r2, r1, 0x1 adds r1, r2, 0 b _08015F62 .align 2, 0 _08015F78: .4byte gUnknown_203B1FC _08015F7C: adds r0, r2, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_8015F44 thumb_func_start sub_8015F84 sub_8015F84: push {r4-r7,lr} movs r6, 0 movs r5, 0 ldr r3, _08015FBC ldr r0, [r3] ldrb r0, [r0, 0x1B] cmp r5, r0 bge _08015FE4 adds r7, r3, 0 _08015F96: ldr r1, [r7] lsls r4, r5, 1 adds r0, r1, 0 adds r0, 0x1E adds r0, r4 strh r6, [r0] adds r0, r1, 0 adds r0, 0xF8 ldr r0, [r0] adds r2, r0, r5 ldrb r0, [r2] cmp r0, 0 bne _08015FC0 adds r0, r1, 0 adds r0, 0x8A adds r0, r4 movs r1, 0x8 strh r1, [r0] b _08015FE4 .align 2, 0 _08015FBC: .4byte gUnknown_203B1FC _08015FC0: ldrb r0, [r2] bl sub_8092288 bl sub_8008584 ldr r3, [r7] adds r1, r3, 0 adds r1, 0x8A adds r1, r4 ldrh r2, [r0, 0x6] strh r2, [r1] movs r1, 0x6 ldrsh r0, [r0, r1] adds r6, r0 adds r5, 0x1 ldrb r3, [r3, 0x1B] cmp r5, r3 blt _08015F96 _08015FE4: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8015F84 thumb_func_start sub_8015FEC sub_8015FEC: push {r4-r7,lr} adds r2, r0, 0 adds r5, r1, 0 movs r7, 0 movs r6, 0 cmp r7, r5 bge _08016020 ldrb r0, [r2] cmp r0, 0 beq _08016020 adds r4, r2, 0 _08016002: ldrb r0, [r4] bl sub_8092288 bl sub_8008584 movs r1, 0x6 ldrsh r0, [r0, r1] adds r7, r0 adds r4, 0x1 adds r6, 0x1 cmp r6, r5 bge _08016020 ldrb r0, [r4] cmp r0, 0 bne _08016002 _08016020: adds r0, r7, 0 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8015FEC thumb_func_start sub_8016028 sub_8016028: movs r0, 0x3C bx lr thumb_func_end sub_8016028 thumb_func_start sub_801602C sub_801602C: push {r4-r6,lr} adds r6, r0, 0 adds r5, r1, 0 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, _08016064 movs r0, 0x50 movs r1, 0x8 bl MemoryAlloc adds r1, r0, 0 str r1, [r4] str r6, [r1] str r5, [r1, 0x8] cmp r6, 0x1 beq _0801606E cmp r6, 0x1 bcc _08016068 cmp r6, 0x2 beq _0801606E cmp r6, 0x3 beq _0801606E b _08016070 .align 2, 0 _08016064: .4byte gUnknown_203B200 _08016068: movs r0, 0 str r0, [r1, 0x4] b _08016070 _0801606E: str r6, [r1, 0x4] _08016070: movs r0, 0 bl sub_80160F4 movs r0, 0x1 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_801602C thumb_func_start sub_8016080 sub_8016080: push {lr} ldr r0, _08016098 ldr r0, [r0] ldr r0, [r0, 0xC] cmp r0, 0x4 bhi _080160D0 lsls r0, 2 ldr r1, _0801609C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08016098: .4byte gUnknown_203B200 _0801609C: .4byte _080160A0 .align 2, 0 _080160A0: .4byte _080160B4 .4byte _080160BA .4byte _080160C0 .4byte _080160C6 .4byte _080160CC _080160B4: bl sub_80161F8 b _080160D0 _080160BA: bl sub_8016248 b _080160D0 _080160C0: bl sub_8016280 b _080160D0 _080160C6: bl sub_801629C b _080160D0 _080160CC: movs r0, 0x3 b _080160D2 _080160D0: movs r0, 0 _080160D2: pop {r1} bx r1 thumb_func_end sub_8016080 thumb_func_start sub_80160D8 sub_80160D8: push {r4,lr} ldr r4, _080160F0 ldr r0, [r4] cmp r0, 0 beq _080160EA bl MemoryFree movs r0, 0 str r0, [r4] _080160EA: pop {r4} pop {r0} bx r0 .align 2, 0 _080160F0: .4byte gUnknown_203B200 thumb_func_end sub_80160D8 thumb_func_start sub_80160F4 sub_80160F4: push {lr} ldr r1, _08016108 ldr r1, [r1] str r0, [r1, 0xC] bl nullsub_36 bl sub_8016110 pop {r0} bx r0 .align 2, 0 _08016108: .4byte gUnknown_203B200 thumb_func_end sub_80160F4 thumb_func_start nullsub_36 nullsub_36: bx lr thumb_func_end nullsub_36 thumb_func_start sub_8016110 sub_8016110: push {r4,lr} sub sp, 0x14 ldr r4, _08016128 ldr r1, [r4] ldr r0, [r1, 0xC] cmp r0, 0x1 beq _08016140 cmp r0, 0x1 bgt _0801612C cmp r0, 0 beq _08016136 b _080161B8 .align 2, 0 _08016128: .4byte gUnknown_203B200 _0801612C: cmp r0, 0x2 beq _08016194 cmp r0, 0x3 beq _080161AC b _080161B8 _08016136: ldr r0, [r1, 0x4] ldr r1, [r1, 0x8] bl sub_80151C0 b _080161B8 _08016140: bl sub_80161C8 ldr r1, [r4] ldr r0, [r1, 0x4] cmp r0, 0x1 bne _0801615C ldr r0, _08016158 ldr r1, [r1, 0x8] movs r2, 0xA bl sub_80922B4 b _08016166 .align 2, 0 _08016158: .4byte gUnknown_202DF98 _0801615C: ldr r0, _08016188 ldr r1, [r1, 0x8] movs r2, 0xA bl sub_80922B4 _08016166: ldr r0, _0801618C ldr r1, _08016190 ldr r3, [r1] adds r3, 0x10 movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] movs r1, 0x20 str r1, [sp, 0x10] movs r1, 0 movs r2, 0x3 bl sub_8014248 b _080161B8 .align 2, 0 _08016188: .4byte gUnknown_202DF98 _0801618C: .4byte gUnknown_80DB688 _08016190: .4byte gUnknown_203B200 _08016194: ldr r0, _080161A4 ldr r3, _080161A8 movs r1, 0 movs r2, 0 bl sub_80141B4 b _080161B8 .align 2, 0 _080161A4: .4byte gUnknown_80DB6A4 _080161A8: .4byte 0x00000121 _080161AC: ldr r0, _080161C0 ldr r3, _080161C4 movs r1, 0 movs r2, 0 bl sub_80141B4 _080161B8: add sp, 0x14 pop {r4} pop {r0} bx r0 .align 2, 0 _080161C0: .4byte gUnknown_80DB6BC _080161C4: .4byte 0x00000121 thumb_func_end sub_8016110 thumb_func_start sub_80161C8 sub_80161C8: ldr r0, _080161EC ldr r1, [r0] ldr r0, _080161F0 ldr r0, [r0] str r0, [r1, 0x10] movs r0, 0x2 str r0, [r1, 0x14] ldr r0, _080161F4 ldr r0, [r0] str r0, [r1, 0x18] movs r0, 0x3 str r0, [r1, 0x1C] movs r0, 0 str r0, [r1, 0x20] movs r0, 0x1 str r0, [r1, 0x24] bx lr .align 2, 0 _080161EC: .4byte gUnknown_203B200 _080161F0: .4byte gUnknown_80D4920 _080161F4: .4byte gUnknown_80D4928 thumb_func_end sub_80161C8 thumb_func_start sub_80161F8 sub_80161F8: push {r4,lr} bl sub_80154F0 cmp r0, 0x3 bne _08016242 bl sub_80155F0 bl sub_80162B8 lsls r0, 24 cmp r0, 0 beq _08016218 movs r0, 0x3 bl sub_80160F4 b _08016242 _08016218: ldr r0, _08016238 ldr r0, [r0] ldr r0, [r0, 0x8] movs r1, 0xA bl sub_8015FEC adds r4, r0, 0 bl sub_8016028 cmp r4, r0 ble _0801623C movs r0, 0x2 bl sub_80160F4 b _08016242 .align 2, 0 _08016238: .4byte gUnknown_203B200 _0801623C: movs r0, 0x1 bl sub_80160F4 _08016242: pop {r4} pop {r0} bx r0 thumb_func_end sub_80161F8 thumb_func_start sub_8016248 sub_8016248: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0801627A ldr r0, [sp] cmp r0, 0x2 beq _0801626C cmp r0, 0x2 bgt _08016266 cmp r0, 0x1 beq _08016274 b _0801627A _08016266: cmp r0, 0x3 beq _08016274 b _0801627A _0801626C: movs r0, 0x4 bl sub_80160F4 b _0801627A _08016274: movs r0, 0 bl sub_80160F4 _0801627A: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8016248 thumb_func_start sub_8016280 sub_8016280: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08016294 movs r0, 0 bl sub_80160F4 _08016294: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8016280 thumb_func_start sub_801629C sub_801629C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080162B0 movs r0, 0 bl sub_80160F4 _080162B0: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_801629C thumb_func_start sub_80162B8 sub_80162B8: push {lr} movs r3, 0xA movs r1, 0 ldr r0, _080162D4 ldr r0, [r0] ldr r2, [r0, 0x8] _080162C4: adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0 beq _080162DE cmp r0, 0x20 beq _080162D8 movs r0, 0 b _080162E0 .align 2, 0 _080162D4: .4byte gUnknown_203B200 _080162D8: adds r1, 0x1 cmp r1, r3 blt _080162C4 _080162DE: movs r0, 0x1 _080162E0: pop {r1} bx r1 thumb_func_end sub_80162B8 thumb_func_start sub_80162E4 sub_80162E4: push {r4-r6,lr} adds r4, r0, 0 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r5, _0801633C movs r0, 0x84 lsls r0, 1 movs r1, 0x8 bl MemoryAlloc str r0, [r5] movs r6, 0 str r6, [r0, 0x10] str r4, [r0] ldr r0, _08016340 movs r1, 0x35 bl sub_808D8E0 ldr r4, _08016344 adds r0, r4, 0 movs r1, 0x35 bl sub_808D8E0 movs r0, 0x35 bl sub_808D994 adds r1, r0, 0 subs r4, 0x50 adds r0, r4, 0 bl strcpy ldr r5, [r5] ldr r0, [r5] cmp r0, 0x1 bne _08016348 adds r0, r5, 0 adds r0, 0xA4 str r6, [r0] b _08016352 .align 2, 0 _0801633C: .4byte gUnknown_203B204 _08016340: .4byte gUnknown_202E5D8 _08016344: .4byte gUnknown_202E1C8 _08016348: adds r1, r5, 0 adds r1, 0xA4 adds r0, r5, 0 adds r0, 0x94 str r0, [r1] _08016352: movs r0, 0x35 bl sub_808DDD0 ldr r2, _0801639C ldr r3, [r2] adds r1, r3, 0 adds r1, 0x94 str r0, [r1] adds r1, 0x4 ldr r0, [r0, 0x4] str r0, [r1] adds r0, r3, 0 adds r0, 0xA0 movs r1, 0 strb r1, [r0] ldr r0, [r2] adds r0, 0xA1 strb r1, [r0] ldr r0, [r2] adds r0, 0xA2 strb r1, [r0] ldr r1, [r2] adds r2, r1, 0 adds r2, 0x9C movs r0, 0x2 strh r0, [r2] adds r1, 0x9E movs r0, 0x8 strh r0, [r1] movs r0, 0 bl sub_8016444 movs r0, 0x1 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0801639C: .4byte gUnknown_203B204 thumb_func_end sub_80162E4 thumb_func_start sub_80163A0 sub_80163A0: push {lr} ldr r0, _080163B8 ldr r0, [r0] ldr r0, [r0, 0x4] cmp r0, 0xC bhi _08016410 lsls r0, 2 ldr r1, _080163BC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080163B8: .4byte gUnknown_203B204 _080163BC: .4byte _080163C0 .align 2, 0 _080163C0: .4byte _08016410 .4byte _080163F4 .4byte _080163FA .4byte _08016410 .4byte _08016410 .4byte _08016410 .4byte _0801640C .4byte _08016410 .4byte _08016400 .4byte _08016410 .4byte _08016410 .4byte _08016406 .4byte _08016410 _080163F4: bl sub_8016B24 b _08016414 _080163FA: bl sub_80169BC b _08016414 _08016400: bl sub_8016A18 b _08016414 _08016406: bl sub_8016A8C b _08016414 _0801640C: movs r0, 0x3 b _08016416 _08016410: bl sub_8016B00 _08016414: movs r0, 0 _08016416: pop {r1} bx r1 thumb_func_end sub_80163A0 thumb_func_start sub_801641C sub_801641C: push {r4,lr} ldr r4, _08016440 ldr r0, [r4] cmp r0, 0 beq _08016438 adds r0, 0x94 ldr r0, [r0] bl CloseFile ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _08016438: pop {r4} pop {r0} bx r0 .align 2, 0 _08016440: .4byte gUnknown_203B204 thumb_func_end sub_801641C thumb_func_start sub_8016444 sub_8016444: push {lr} ldr r1, _08016458 ldr r1, [r1] str r0, [r1, 0x4] bl sub_801645C bl sub_801653C pop {r0} bx r0 .align 2, 0 _08016458: .4byte gUnknown_203B204 thumb_func_end sub_8016444 thumb_func_start sub_801645C sub_801645C: push {r4-r7,lr} ldr r4, _0801647C ldr r0, [r4] adds r0, 0xA8 bl sub_8006518 ldr r0, [r4] ldr r1, [r0, 0x4] cmp r1, 0x8 beq _080164AC cmp r1, 0x8 bgt _08016480 cmp r1, 0x2 beq _08016486 b _080164F8 .align 2, 0 _0801647C: .4byte gUnknown_203B204 _08016480: cmp r1, 0xB beq _080164AC b _080164F8 _08016486: adds r0, 0xA8 movs r1, 0x80 strb r1, [r0] ldr r0, [r4] adds r0, 0xC0 strb r1, [r0] ldr r0, [r4] adds r0, 0xD8 strb r1, [r0] ldr r1, [r4] adds r1, 0xF0 ldr r0, _080164A8 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r6,r7} stm r1!, {r2,r6,r7} b _080164D8 .align 2, 0 _080164A8: .4byte gUnknown_80DB6F4 _080164AC: ldr r4, _080164EC ldr r0, [r4] adds r0, 0xA8 movs r1, 0x80 strb r1, [r0] ldr r0, [r4] adds r0, 0xC0 strb r1, [r0] ldr r1, [r4] adds r1, 0xF0 ldr r0, _080164F0 ldm r0!, {r3,r5,r6} stm r1!, {r3,r5,r6} ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldr r1, [r4] adds r1, 0xD8 ldr r0, _080164F4 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} _080164D8: bl sub_8004914 ldr r0, [r4] adds r0, 0xA8 movs r1, 0x1 movs r2, 0 bl sub_800641C b _0801652E .align 2, 0 _080164EC: .4byte gUnknown_203B204 _080164F0: .4byte gUnknown_80DB6F4 _080164F4: .4byte gUnknown_80DB70C _080164F8: ldr r6, _08016534 mov r12, r6 ldr r4, _08016538 movs r3, 0 movs r2, 0x3 _08016502: mov r7, r12 ldr r1, [r7] adds r1, r3 adds r1, 0xA8 adds r0, r4, 0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} adds r3, 0x18 subs r2, 0x1 cmp r2, 0 bge _08016502 bl sub_8004914 ldr r0, _08016534 ldr r0, [r0] adds r0, 0xA8 movs r1, 0x1 movs r2, 0x1 bl sub_800641C _0801652E: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08016534: .4byte gUnknown_203B204 _08016538: .4byte gUnknown_80DB6DC thumb_func_end sub_801645C thumb_func_start sub_801653C sub_801653C: push {r4,r5,lr} sub sp, 0x14 ldr r1, _08016558 ldr r0, [r1] ldr r0, [r0, 0x4] adds r2, r1, 0 cmp r0, 0xC bls _0801654E b _080168EC _0801654E: lsls r0, 2 ldr r1, _0801655C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08016558: .4byte gUnknown_203B204 _0801655C: .4byte _08016560 .align 2, 0 _08016560: .4byte _08016594 .4byte _080165B4 .4byte _080168B2 .4byte _08016650 .4byte _08016668 .4byte _080166C4 .4byte _080168EC .4byte _080166DC .4byte _0801674C .4byte _080167A8 .4byte _080167CC .4byte _0801685C .4byte _080168C4 _08016594: ldr r2, [r2] movs r0, 0x1 str r0, [r2, 0x8] ldr r3, _080165B0 ldr r1, [r2] lsls r0, r1, 4 subs r0, r1 lsls r0, 2 adds r0, r3 ldr r0, [r0] adds r2, 0xA4 ldr r2, [r2] b _08016844 .align 2, 0 _080165B0: .4byte gUnknown_80D49E0 _080165B4: bl sub_8016900 ldr r0, _080165FC ldr r0, [r0] mov r12, r0 movs r0, 0x2 mov r1, r12 str r0, [r1, 0x8] ldr r0, _08016600 ldr r0, [r0] movs r3, 0x99 lsls r3, 2 adds r0, r3 ldr r4, [r0] cmp r4, 0 bne _08016608 ldr r2, _08016604 ldr r1, [r1] lsls r0, r1, 4 subs r0, r1 lsls r0, 2 adds r2, 0x4 adds r0, r2 ldr r0, [r0] mov r5, r12 ldr r2, [r5, 0x10] mov r3, r12 adds r3, 0x14 mov r1, r12 adds r1, 0x54 str r1, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r4, [sp, 0x8] b _08016632 .align 2, 0 _080165FC: .4byte gUnknown_203B204 _08016600: .4byte gUnknown_203B460 _08016604: .4byte gUnknown_80D49E0 _08016608: ldr r0, _08016648 str r4, [r0] ldr r2, _0801664C mov r0, r12 ldr r1, [r0] lsls r0, r1, 4 subs r0, r1 lsls r0, 2 adds r2, 0x8 adds r0, r2 ldr r0, [r0] mov r1, r12 ldr r2, [r1, 0x10] mov r3, r12 adds r3, 0x14 adds r1, 0x54 str r1, [sp] movs r1, 0x4 str r1, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] _08016632: mov r1, r12 adds r1, 0xA4 ldr r1, [r1] str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 bl sub_8014248 b _080168EC .align 2, 0 _08016648: .4byte gUnknown_202DE30 _0801664C: .4byte gUnknown_80D49E0 _08016650: ldr r3, [r2] movs r0, 0x1 str r0, [r3, 0x8] ldr r2, _08016664 ldr r1, [r3] lsls r0, r1, 4 subs r0, r1 lsls r0, 2 adds r2, 0x38 b _0801683C .align 2, 0 _08016664: .4byte gUnknown_80D49E0 _08016668: ldr r3, [r2] movs r0, 0x6 str r0, [r3, 0x8] ldr r0, _08016698 ldr r0, [r0] movs r5, 0x99 lsls r5, 2 adds r0, r5 ldr r1, [r0] cmp r1, 0 bne _080166A0 ldr r2, _0801669C ldr r1, [r3] lsls r0, r1, 4 subs r0, r1 lsls r0, 2 adds r2, 0x10 adds r0, r2 ldr r0, [r0] adds r1, r3, 0 adds r1, 0xA4 ldr r2, [r1] b _08016844 .align 2, 0 _08016698: .4byte gUnknown_203B460 _0801669C: .4byte gUnknown_80D49E0 _080166A0: ldr r0, _080166BC str r1, [r0] ldr r2, _080166C0 ldr r1, [r3] lsls r0, r1, 4 subs r0, r1 lsls r0, 2 adds r2, 0x14 adds r0, r2 ldr r0, [r0] adds r1, r3, 0 adds r1, 0xA4 ldr r2, [r1] b _08016844 .align 2, 0 _080166BC: .4byte gUnknown_202DE30 _080166C0: .4byte gUnknown_80D49E0 _080166C4: ldr r3, [r2] movs r0, 0x1 str r0, [r3, 0x8] ldr r2, _080166D8 ldr r1, [r3] lsls r0, r1, 4 subs r0, r1 lsls r0, 2 adds r2, 0xC b _0801683C .align 2, 0 _080166D8: .4byte gUnknown_80D49E0 _080166DC: ldr r0, _08016700 ldr r1, [r0] movs r3, 0x98 lsls r3, 2 adds r0, r1, r3 ldr r0, [r0] cmp r0, 0 bne _08016708 ldr r3, [r2] movs r0, 0x1 str r0, [r3, 0x8] ldr r2, _08016704 ldr r1, [r3] lsls r0, r1, 4 subs r0, r1 lsls r0, 2 adds r2, 0x1C b _0801683C .align 2, 0 _08016700: .4byte gUnknown_203B460 _08016704: .4byte gUnknown_80D49E0 _08016708: movs r5, 0x99 lsls r5, 2 adds r0, r1, r5 ldr r1, [r0] ldr r0, _0801672C cmp r1, r0 ble _08016734 ldr r3, [r2] movs r0, 0x1 str r0, [r3, 0x8] ldr r2, _08016730 ldr r1, [r3] lsls r0, r1, 4 subs r0, r1 lsls r0, 2 adds r2, 0x20 b _0801683C .align 2, 0 _0801672C: .4byte 0x0098967e _08016730: .4byte gUnknown_80D49E0 _08016734: ldr r3, [r2] movs r0, 0x8 str r0, [r3, 0x8] ldr r2, _08016748 ldr r1, [r3] lsls r0, r1, 4 subs r0, r1 lsls r0, 2 adds r2, 0x18 b _0801683C .align 2, 0 _08016748: .4byte gUnknown_80D49E0 _0801674C: ldr r4, [r2] ldr r0, _080167A0 ldr r3, [r0] movs r1, 0x99 lsls r1, 2 adds r0, r3, r1 ldr r1, [r0] ldr r0, _080167A4 subs r0, r1 str r0, [r4, 0x70] movs r5, 0x98 lsls r5, 2 adds r1, r3, r5 ldr r1, [r1] cmp r0, r1 ble _0801676E str r1, [r4, 0x70] _0801676E: ldr r2, [r2] ldr r0, [r2, 0x70] str r0, [r2, 0x68] movs r0, 0x1 str r0, [r2, 0x6C] movs r0, 0x5 str r0, [r2, 0x74] movs r0, 0x2 str r0, [r2, 0x78] adds r0, r2, 0 adds r0, 0xD8 str r0, [r2, 0x7C] adds r1, r2, 0 adds r1, 0x80 movs r0, 0x50 str r0, [r1] adds r1, 0x4 movs r0, 0x12 str r0, [r1] adds r0, r2, 0 adds r0, 0x64 bl sub_8013AA0 movs r0, 0x1 b _080168AE .align 2, 0 _080167A0: .4byte gUnknown_203B460 _080167A4: .4byte 0x0098967f _080167A8: ldr r3, [r2] movs r0, 0x1 str r0, [r3, 0x8] ldr r1, _080167C4 ldr r0, [r3, 0xC] str r0, [r1] ldr r2, _080167C8 ldr r1, [r3] lsls r0, r1, 4 subs r0, r1 lsls r0, 2 adds r2, 0x24 b _0801683C .align 2, 0 _080167C4: .4byte gUnknown_202DE30 _080167C8: .4byte gUnknown_80D49E0 _080167CC: ldr r0, _080167F4 ldr r3, [r0] movs r1, 0x98 lsls r1, 2 adds r0, r3, r1 ldr r1, [r0] ldr r0, _080167F8 cmp r1, r0 ble _08016800 ldr r3, [r2] movs r0, 0x1 str r0, [r3, 0x8] ldr r2, _080167FC ldr r1, [r3] lsls r0, r1, 4 subs r0, r1 lsls r0, 2 adds r2, 0x30 b _0801683C .align 2, 0 _080167F4: .4byte gUnknown_203B460 _080167F8: .4byte 0x0001869e _080167FC: .4byte gUnknown_80D49E0 _08016800: movs r5, 0x99 lsls r5, 2 adds r4, r3, r5 ldr r0, [r4] cmp r0, 0 bne _08016824 ldr r3, [r2] movs r0, 0x1 str r0, [r3, 0x8] ldr r2, _08016820 ldr r1, [r3] lsls r0, r1, 4 subs r0, r1 lsls r0, 2 adds r2, 0x2C b _0801683C .align 2, 0 _08016820: .4byte gUnknown_80D49E0 _08016824: ldr r3, [r2] movs r0, 0xB str r0, [r3, 0x8] ldr r1, _08016850 ldr r0, [r4] str r0, [r1] ldr r2, _08016854 ldr r1, [r3] lsls r0, r1, 4 subs r0, r1 lsls r0, 2 adds r2, 0x28 _0801683C: adds r0, r2 ldr r0, [r0] adds r3, 0xA4 ldr r2, [r3] _08016844: ldr r3, _08016858 movs r1, 0 bl sub_80141B4 b _080168EC .align 2, 0 _08016850: .4byte gUnknown_202DE30 _08016854: .4byte gUnknown_80D49E0 _08016858: .4byte 0x0000010d _0801685C: ldr r4, [r2] ldr r0, _080168BC ldr r3, [r0] movs r1, 0x98 lsls r1, 2 adds r0, r3, r1 ldr r1, [r0] ldr r0, _080168C0 subs r0, r1 str r0, [r4, 0x70] movs r5, 0x99 lsls r5, 2 adds r1, r3, r5 ldr r1, [r1] cmp r0, r1 ble _0801687E str r1, [r4, 0x70] _0801687E: ldr r2, [r2] ldr r0, [r2, 0x70] str r0, [r2, 0x68] movs r0, 0x1 str r0, [r2, 0x6C] movs r0, 0x5 str r0, [r2, 0x74] movs r0, 0x2 str r0, [r2, 0x78] adds r0, r2, 0 adds r0, 0xD8 str r0, [r2, 0x7C] adds r1, r2, 0 adds r1, 0x80 movs r0, 0x50 str r0, [r1] adds r1, 0x4 movs r0, 0x12 str r0, [r1] adds r0, r2, 0 adds r0, 0x64 bl sub_8013AA0 movs r0, 0 _080168AE: bl sub_8016B48 _080168B2: movs r0, 0x3 bl sub_8016BB8 b _080168EC .align 2, 0 _080168BC: .4byte gUnknown_203B460 _080168C0: .4byte 0x0001869f _080168C4: ldr r3, [r2] movs r0, 0x1 str r0, [r3, 0x8] ldr r1, _080168F4 ldr r0, [r3, 0xC] str r0, [r1] ldr r2, _080168F8 ldr r1, [r3] lsls r0, r1, 4 subs r0, r1 lsls r0, 2 adds r2, 0x34 adds r0, r2 ldr r0, [r0] adds r3, 0xA4 ldr r2, [r3] ldr r3, _080168FC movs r1, 0 bl sub_80141B4 _080168EC: add sp, 0x14 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080168F4: .4byte gUnknown_202DE30 _080168F8: .4byte gUnknown_80D49E0 _080168FC: .4byte 0x0000010d thumb_func_end sub_801653C thumb_func_start sub_8016900 sub_8016900: push {r4-r7,lr} ldr r4, _08016980 ldr r0, [r4] adds r0, 0x54 movs r1, 0 movs r2, 0x10 bl MemoryFill16 ldr r3, [r4] movs r2, 0 ldr r0, _08016984 ldr r0, [r0] str r0, [r3, 0x14] movs r0, 0x2 str r0, [r3, 0x18] movs r1, 0x1 ldr r0, _08016988 ldr r0, [r0] str r0, [r3, 0x1C] movs r0, 0x3 str r0, [r3, 0x20] ldr r0, _0801698C ldr r0, [r0] str r0, [r3, 0x24] movs r0, 0x4 str r0, [r3, 0x28] ldr r0, _08016990 ldr r0, [r0] str r0, [r3, 0x2C] str r1, [r3, 0x30] movs r6, 0x4 str r2, [r3, 0x34] str r1, [r3, 0x38] movs r5, 0 mov r12, r3 adds r3, 0x18 mov r2, r12 adds r2, 0x54 _0801694C: ldrh r0, [r2] cmp r0, 0 bne _0801695C ldr r1, [r3] mov r7, r12 ldr r0, [r7, 0x10] cmp r1, r0 beq _080169B6 _0801695C: adds r3, 0x8 adds r2, 0x2 adds r5, 0x1 cmp r5, r6 blt _0801694C movs r5, 0 cmp r5, r6 bge _080169B6 ldr r1, [r4] adds r0, r1, 0 adds r0, 0x54 ldrh r0, [r0] cmp r0, 0 bne _08016994 ldr r0, [r1, 0x18] str r0, [r1, 0x10] b _080169B6 .align 2, 0 _08016980: .4byte gUnknown_203B204 _08016984: .4byte gUnknown_80D4958 _08016988: .4byte gUnknown_80D4964 _0801698C: .4byte gUnknown_80D4970 _08016990: .4byte gUnknown_80D4934 _08016994: adds r5, 0x1 cmp r5, r6 bge _080169B6 ldr r2, [r4] lsls r0, r5, 1 adds r1, r2, 0 adds r1, 0x54 adds r1, r0 ldrh r0, [r1] cmp r0, 0 bne _08016994 lsls r0, r5, 3 adds r1, r2, 0 adds r1, 0x18 adds r1, r0 ldr r0, [r1] str r0, [r2, 0x10] _080169B6: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8016900 thumb_func_start sub_80169BC sub_80169BC: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08016A10 ldr r0, _080169E4 ldr r1, [r0] ldr r0, [sp] str r0, [r1, 0x10] ldr r0, [sp] cmp r0, 0x2 beq _080169F2 cmp r0, 0x2 bgt _080169E8 cmp r0, 0x1 beq _08016A0A b _08016A10 .align 2, 0 _080169E4: .4byte gUnknown_203B204 _080169E8: cmp r0, 0x3 beq _080169FA cmp r0, 0x4 beq _08016A02 b _08016A10 _080169F2: movs r0, 0x7 bl sub_8016444 b _08016A10 _080169FA: movs r0, 0xA bl sub_8016444 b _08016A10 _08016A02: movs r0, 0x3 bl sub_8016444 b _08016A10 _08016A0A: movs r0, 0x4 bl sub_8016444 _08016A10: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80169BC thumb_func_start sub_8016A18 sub_8016A18: push {r4,lr} ldr r4, _08016A38 ldr r0, [r4] adds r0, 0x64 bl sub_8013BBC cmp r0, 0x1 beq _08016A3C cmp r0, 0x1 bcc _08016A86 cmp r0, 0x2 beq _08016A80 cmp r0, 0x3 beq _08016A44 b _08016A86 .align 2, 0 _08016A38: .4byte gUnknown_203B204 _08016A3C: movs r0, 0x1 bl sub_8016B48 b _08016A86 _08016A44: ldr r3, [r4] ldr r2, [r3, 0x64] str r2, [r3, 0xC] ldr r0, _08016A7C ldr r0, [r0] mov r12, r0 movs r1, 0x99 lsls r1, 2 add r1, r12 ldr r0, [r1] adds r0, r2 str r0, [r1] movs r2, 0x98 lsls r2, 2 add r2, r12 ldr r0, [r2] ldr r1, [r3, 0xC] subs r0, r1 str r0, [r2] movs r0, 0xA6 lsls r0, 1 bl sub_8011988 movs r0, 0x9 bl sub_8016444 b _08016A86 .align 2, 0 _08016A7C: .4byte gUnknown_203B460 _08016A80: movs r0, 0x5 bl sub_8016444 _08016A86: pop {r4} pop {r0} bx r0 thumb_func_end sub_8016A18 thumb_func_start sub_8016A8C sub_8016A8C: push {r4,lr} ldr r4, _08016AAC ldr r0, [r4] adds r0, 0x64 bl sub_8013BBC cmp r0, 0x1 beq _08016AB0 cmp r0, 0x1 bcc _08016AFA cmp r0, 0x2 beq _08016AF4 cmp r0, 0x3 beq _08016AB8 b _08016AFA .align 2, 0 _08016AAC: .4byte gUnknown_203B204 _08016AB0: movs r0, 0 bl sub_8016B48 b _08016AFA _08016AB8: ldr r3, [r4] ldr r2, [r3, 0x64] str r2, [r3, 0xC] ldr r0, _08016AF0 ldr r0, [r0] mov r12, r0 movs r1, 0x98 lsls r1, 2 add r1, r12 ldr r0, [r1] adds r0, r2 str r0, [r1] movs r2, 0x99 lsls r2, 2 add r2, r12 ldr r0, [r2] ldr r1, [r3, 0xC] subs r0, r1 str r0, [r2] movs r0, 0xA6 lsls r0, 1 bl sub_8011988 movs r0, 0xC bl sub_8016444 b _08016AFA .align 2, 0 _08016AF0: .4byte gUnknown_203B460 _08016AF4: movs r0, 0x5 bl sub_8016444 _08016AFA: pop {r4} pop {r0} bx r0 thumb_func_end sub_8016A8C thumb_func_start sub_8016B00 sub_8016B00: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08016B18 ldr r0, _08016B20 ldr r0, [r0] ldr r0, [r0, 0x8] bl sub_8016444 _08016B18: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _08016B20: .4byte gUnknown_203B204 thumb_func_end sub_8016B00 thumb_func_start sub_8016B24 sub_8016B24: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0x4 bne _08016B3C ldr r0, _08016B44 ldr r0, [r0] ldr r0, [r0, 0x8] bl sub_8016444 _08016B3C: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _08016B44: .4byte gUnknown_203B204 thumb_func_end sub_8016B24 thumb_func_start sub_8016B48 sub_8016B48: push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r5, r0, 24 ldr r4, _08016B7C ldr r0, [r4] ldr r0, [r0, 0x78] bl sub_8008C54 ldr r0, [r4] ldr r0, [r0, 0x78] bl sub_80073B8 cmp r5, 0 beq _08016B84 ldr r0, _08016B80 ldr r2, [r0] ldr r0, [r4] ldr r3, [r0, 0x78] movs r0, 0 str r0, [sp] movs r0, 0xC movs r1, 0 bl xxx_call_draw_string b _08016B96 .align 2, 0 _08016B7C: .4byte gUnknown_203B204 _08016B80: .4byte gUnknown_80D49CC _08016B84: ldr r0, _08016BB0 ldr r2, [r0] ldr r0, [r4] ldr r3, [r0, 0x78] str r5, [sp] movs r0, 0xC movs r1, 0 bl xxx_call_draw_string _08016B96: ldr r4, _08016BB4 ldr r0, [r4] adds r0, 0x64 bl sub_8013C68 ldr r0, [r4] ldr r0, [r0, 0x78] bl sub_80073E0 add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08016BB0: .4byte gUnknown_80D49DC _08016BB4: .4byte gUnknown_203B204 thumb_func_end sub_8016B48 thumb_func_start sub_8016BB8 sub_8016BB8: push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x8 adds r4, r0, 0 bl sub_8008C54 adds r0, r4, 0 bl sub_80073B8 ldr r2, _08016C34 movs r0, 0 mov r8, r0 str r0, [sp] movs r0, 0x10 movs r1, 0x4 adds r3, r4, 0 bl xxx_call_draw_string ldr r6, _08016C38 ldr r0, [r6] movs r1, 0x98 lsls r1, 2 adds r0, r1 ldr r2, [r0] movs r5, 0x5 str r5, [sp] str r4, [sp, 0x4] movs r0, 0x60 movs r1, 0x4 movs r3, 0x5 bl sub_8012BC4 ldr r2, _08016C3C mov r0, r8 str r0, [sp] movs r0, 0x70 movs r1, 0x4 adds r3, r4, 0 bl xxx_call_draw_string ldr r0, [r6] movs r1, 0x99 lsls r1, 2 adds r0, r1 ldr r2, [r0] str r5, [sp] str r4, [sp, 0x4] movs r0, 0xC8 movs r1, 0x4 movs r3, 0x7 bl sub_8012BC4 adds r0, r4, 0 bl sub_80073E0 add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08016C34: .4byte gUnknown_80DB724 _08016C38: .4byte gUnknown_203B460 _08016C3C: .4byte gUnknown_80DB72C thumb_func_end sub_8016BB8 thumb_func_start sub_8016C40 sub_8016C40: push {r4,lr} sub sp, 0x8 adds r4, r0, 0 bl sub_8008C54 adds r0, r4, 0 bl sub_80073B8 ldr r2, _08016C8C movs r0, 0 str r0, [sp] movs r0, 0x6 movs r1, 0 adds r3, r4, 0 bl xxx_call_draw_string ldr r0, _08016C90 ldr r0, [r0] movs r1, 0x98 lsls r1, 2 adds r0, r1 ldr r2, [r0] movs r0, 0x5 str r0, [sp] str r4, [sp, 0x4] movs r0, 0x2A movs r1, 0xC movs r3, 0x5 bl sub_8012BC4 adds r0, r4, 0 bl sub_80073E0 add sp, 0x8 pop {r4} pop {r0} bx r0 .align 2, 0 _08016C8C: .4byte gUnknown_80DB738 _08016C90: .4byte gUnknown_203B460 thumb_func_end sub_8016C40 thumb_func_start sub_8016C94 sub_8016C94: push {r4-r6,lr} adds r4, r0, 0 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r5, _08016CF0 movs r0, 0xA6 lsls r0, 1 movs r1, 0x8 bl MemoryAlloc str r0, [r5] movs r6, 0 str r6, [r0, 0x18] str r6, [r0, 0x1C] str r6, [r0, 0x20] str r4, [r0] ldr r0, _08016CF4 movs r1, 0x73 bl sub_808D8E0 ldr r4, _08016CF8 adds r0, r4, 0 movs r1, 0x73 bl sub_808D8E0 movs r0, 0x73 bl sub_808D994 adds r1, r0, 0 subs r4, 0x50 adds r0, r4, 0 bl strcpy ldr r5, [r5] ldr r0, [r5] cmp r0, 0x1 bne _08016CFC adds r0, r5, 0 adds r0, 0xE8 str r6, [r0] b _08016D06 .align 2, 0 _08016CF0: .4byte gUnknown_203B208 _08016CF4: .4byte gUnknown_202E5D8 _08016CF8: .4byte gUnknown_202E1C8 _08016CFC: adds r1, r5, 0 adds r1, 0xE8 adds r0, r5, 0 adds r0, 0xD8 str r0, [r1] _08016D06: movs r0, 0x73 bl sub_808DDD0 ldr r2, _08016D50 ldr r3, [r2] adds r1, r3, 0 adds r1, 0xD8 str r0, [r1] adds r1, 0x4 ldr r0, [r0, 0x4] str r0, [r1] adds r0, r3, 0 adds r0, 0xE4 movs r1, 0 strb r1, [r0] ldr r0, [r2] adds r0, 0xE5 strb r1, [r0] ldr r0, [r2] adds r0, 0xE6 strb r1, [r0] ldr r1, [r2] adds r2, r1, 0 adds r2, 0xE0 movs r0, 0x2 strh r0, [r2] adds r1, 0xE2 movs r0, 0x8 strh r0, [r1] movs r0, 0 bl sub_8016E68 movs r0, 0x1 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08016D50: .4byte gUnknown_203B208 thumb_func_end sub_8016C94 thumb_func_start sub_8016D54 sub_8016D54: push {lr} ldr r0, _08016D6C ldr r0, [r0] ldr r0, [r0, 0x4] cmp r0, 0x1C bhi _08016E34 lsls r0, 2 ldr r1, _08016D70 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08016D6C: .4byte gUnknown_203B208 _08016D70: .4byte _08016D74 .align 2, 0 _08016D74: .4byte _08016DE8 .4byte _08016DE8 .4byte _08016E34 .4byte _08016E34 .4byte _08016E30 .4byte _08016E34 .4byte _08016E34 .4byte _08016E34 .4byte _08016E34 .4byte _08016E34 .4byte _08016E34 .4byte _08016E34 .4byte _08016E34 .4byte _08016DEE .4byte _08016DEE .4byte _08016DF4 .4byte _08016DFA .4byte _08016E00 .4byte _08016E06 .4byte _08016E34 .4byte _08016E34 .4byte _08016E34 .4byte _08016E0C .4byte _08016E0C .4byte _08016E12 .4byte _08016E18 .4byte _08016E1E .4byte _08016E24 .4byte _08016E2A _08016DE8: bl sub_8017828 b _08016E38 _08016DEE: bl sub_8017AF8 b _08016E38 _08016DF4: bl sub_8017C7C b _08016E38 _08016DFA: bl sub_8017DC0 b _08016E38 _08016E00: bl sub_80178D0 b _08016E38 _08016E06: bl sub_80179A8 b _08016E38 _08016E0C: bl sub_8017B88 b _08016E38 _08016E12: bl sub_8017C28 b _08016E38 _08016E18: bl sub_8017D24 b _08016E38 _08016E1E: bl sub_8017DDC b _08016E38 _08016E24: bl sub_8017928 b _08016E38 _08016E2A: bl sub_8017A1C b _08016E38 _08016E30: movs r0, 0x3 b _08016E3A _08016E34: bl sub_8017DF8 _08016E38: movs r0, 0 _08016E3A: pop {r1} bx r1 thumb_func_end sub_8016D54 thumb_func_start sub_8016E40 sub_8016E40: push {r4,lr} ldr r4, _08016E64 ldr r0, [r4] cmp r0, 0 beq _08016E5C adds r0, 0xD8 ldr r0, [r0] bl CloseFile ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _08016E5C: pop {r4} pop {r0} bx r0 .align 2, 0 _08016E64: .4byte gUnknown_203B208 thumb_func_end sub_8016E40 thumb_func_start sub_8016E68 sub_8016E68: push {lr} ldr r1, _08016E7C ldr r1, [r1] str r0, [r1, 0x4] bl sub_8016E80 bl sub_8016FF8 pop {r0} bx r0 .align 2, 0 _08016E7C: .4byte gUnknown_203B208 thumb_func_end sub_8016E68 thumb_func_start sub_8016E80 sub_8016E80: push {r4-r7,lr} ldr r4, _08016EA4 ldr r0, [r4] adds r0, 0xEC bl sub_8006518 ldr r0, [r4] ldr r0, [r0, 0x4] subs r0, 0xD cmp r0, 0xC bls _08016E98 b _08016FB4 _08016E98: lsls r0, 2 ldr r1, _08016EA8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08016EA4: .4byte gUnknown_203B208 _08016EA8: .4byte _08016EAC .align 2, 0 _08016EAC: .4byte _08016EE0 .4byte _08016EE0 .4byte _08016F94 .4byte _08016FB4 .4byte _08016FB4 .4byte _08016FB4 .4byte _08016FB4 .4byte _08016FB4 .4byte _08016FB4 .4byte _08016F2C .4byte _08016F2C .4byte _08016F7C .4byte _08016F94 _08016EE0: ldr r3, _08016F24 ldr r1, [r3] ldr r2, _08016F28 adds r1, 0xEC adds r0, r2, 0 ldm r0!, {r4-r6} stm r1!, {r4-r6} ldm r0!, {r4,r5,r7} stm r1!, {r4,r5,r7} ldr r1, [r3] movs r6, 0x82 lsls r6, 1 adds r1, r6 adds r0, r2, 0 ldm r0!, {r4,r5,r7} stm r1!, {r4,r5,r7} ldm r0!, {r4,r6,r7} stm r1!, {r4,r6,r7} ldr r1, [r3] movs r5, 0x8E lsls r5, 1 adds r1, r5 adds r0, r2, 0 ldm r0!, {r4,r6,r7} stm r1!, {r4,r6,r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} ldr r0, [r3] adds r0, 0xEC ldm r2!, {r1,r3,r4} stm r0!, {r1,r3,r4} ldm r2!, {r5-r7} stm r0!, {r5-r7} b _08016FD8 .align 2, 0 _08016F24: .4byte gUnknown_203B208 _08016F28: .4byte gUnknown_80DB748 _08016F2C: ldr r3, _08016F70 ldr r1, [r3] ldr r2, _08016F74 adds r1, 0xEC adds r0, r2, 0 ldm r0!, {r4-r6} stm r1!, {r4-r6} ldm r0!, {r4,r5,r7} stm r1!, {r4,r5,r7} ldr r1, [r3] movs r6, 0x82 lsls r6, 1 adds r1, r6 adds r0, r2, 0 ldm r0!, {r4,r5,r7} stm r1!, {r4,r5,r7} ldm r0!, {r4,r6,r7} stm r1!, {r4,r6,r7} ldr r0, [r3] movs r5, 0x8E lsls r5, 1 adds r0, r5 ldm r2!, {r1,r6,r7} stm r0!, {r1,r6,r7} ldm r2!, {r4-r6} stm r0!, {r4-r6} ldr r1, [r3] adds r1, 0xEC ldr r0, _08016F78 ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldm r0!, {r4-r6} stm r1!, {r4-r6} b _08016FD8 .align 2, 0 _08016F70: .4byte gUnknown_203B208 _08016F74: .4byte gUnknown_80DB748 _08016F78: .4byte gUnknown_80DB778 _08016F7C: ldr r0, _08016F8C ldr r1, [r0] movs r7, 0x82 lsls r7, 1 adds r1, r7 ldr r0, _08016F90 b _08016FA0 .align 2, 0 _08016F8C: .4byte gUnknown_203B208 _08016F90: .4byte gUnknown_80DB790 _08016F94: ldr r0, _08016FAC ldr r1, [r0] movs r0, 0x8E lsls r0, 1 adds r1, r0 ldr r0, _08016FB0 _08016FA0: ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r5-r7} stm r1!, {r5-r7} b _08016FD8 .align 2, 0 _08016FAC: .4byte gUnknown_203B208 _08016FB0: .4byte gUnknown_80DB760 _08016FB4: ldr r0, _08016FF0 mov r12, r0 ldr r4, _08016FF4 movs r3, 0 movs r2, 0x3 _08016FBE: mov r5, r12 ldr r1, [r5] adds r1, r3 adds r1, 0xEC adds r0, r4, 0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} adds r3, 0x18 subs r2, 0x1 cmp r2, 0 bge _08016FBE _08016FD8: bl sub_8004914 ldr r0, _08016FF0 ldr r0, [r0] adds r0, 0xEC movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08016FF0: .4byte gUnknown_203B208 _08016FF4: .4byte gUnknown_80DB748 thumb_func_end sub_8016E80 thumb_func_start sub_8016FF8 sub_8016FF8: push {r4,r5,lr} sub sp, 0x14 ldr r1, _08017014 ldr r0, [r1] ldr r0, [r0, 0x4] adds r4, r1, 0 cmp r0, 0x1D bls _0801700A b _08017584 _0801700A: lsls r0, 2 ldr r1, _08017018 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08017014: .4byte gUnknown_203B208 _08017018: .4byte _0801701C .align 2, 0 _0801701C: .4byte _08017094 .4byte _080170BC .4byte _0801710C .4byte _0801713C .4byte _08017584 .4byte _0801715C .4byte _0801718C .4byte _080171BC .4byte _080171EC .4byte _0801721C .4byte _0801724C .4byte _0801726C .4byte _0801728C .4byte _080172AC .4byte _080172BA .4byte _080172C2 .4byte _080174A8 .4byte _080172E4 .4byte _0801731C .4byte _08017344 .4byte _08017394 .4byte _080173B4 .4byte _080173E8 .4byte _080173F6 .4byte _08017404 .4byte _08017474 .4byte _080174A8 .4byte _080174B2 .4byte _080174E8 .4byte _08017530 _08017094: bl sub_80175FC ldr r2, _080170B4 ldr r0, [r2] adds r0, 0xE4 movs r4, 0 movs r1, 0x1 strb r1, [r0] ldr r3, _080170B8 ldr r5, [r2] ldr r1, [r5] lsls r0, r1, 2 adds r0, r1 lsls r0, 4 adds r0, r3 b _080170DA .align 2, 0 _080170B4: .4byte gUnknown_203B208 _080170B8: .4byte gUnknown_80D5404 _080170BC: bl sub_80175FC ldr r1, _08017104 ldr r0, [r1] adds r0, 0xE4 movs r4, 0 strb r4, [r0] ldr r2, _08017108 ldr r5, [r1] ldr r1, [r5] lsls r0, r1, 2 adds r0, r1 lsls r0, 4 adds r2, 0x4 adds r0, r2 _080170DA: ldr r0, [r0] ldr r2, [r5, 0x18] adds r3, r5, 0 adds r3, 0x24 adds r1, r5, 0 adds r1, 0x4C str r1, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r4, [sp, 0x8] adds r1, r5, 0 adds r1, 0xE8 ldr r1, [r1] str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 bl sub_8014248 b _08017584 .align 2, 0 _08017104: .4byte gUnknown_203B208 _08017108: .4byte gUnknown_80D5404 _0801710C: ldr r0, [r4] movs r1, 0x1 str r1, [r0, 0x8] adds r0, 0xE4 movs r1, 0 strb r1, [r0] ldr r2, _08017134 ldr r3, [r4] ldr r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 4 adds r2, 0x4C adds r0, r2 ldr r0, [r0] adds r3, 0xE8 ldr r2, [r3] ldr r3, _08017138 b _080173D8 .align 2, 0 _08017134: .4byte gUnknown_80D5404 _08017138: .4byte 0x0000010d _0801713C: ldr r0, [r4] movs r1, 0x4 str r1, [r0, 0x8] adds r0, 0xE4 movs r1, 0x1 strb r1, [r0] ldr r2, _08017158 ldr r3, [r4] ldr r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 4 adds r2, 0x8 b _080173CE .align 2, 0 _08017158: .4byte gUnknown_80D5404 _0801715C: ldr r0, [r4] movs r1, 0x1 str r1, [r0, 0x8] adds r0, 0xE4 movs r1, 0 strb r1, [r0] ldr r2, _08017184 ldr r3, [r4] ldr r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 4 adds r2, 0x34 adds r0, r2 ldr r0, [r0] adds r3, 0xE8 ldr r2, [r3] ldr r3, _08017188 b _080173D8 .align 2, 0 _08017184: .4byte gUnknown_80D5404 _08017188: .4byte 0x0000010d _0801718C: ldr r0, [r4] movs r1, 0x1 str r1, [r0, 0x8] adds r0, 0xE4 movs r1, 0 strb r1, [r0] ldr r2, _080171B4 ldr r3, [r4] ldr r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 4 adds r2, 0x38 adds r0, r2 ldr r0, [r0] adds r3, 0xE8 ldr r2, [r3] ldr r3, _080171B8 b _080173D8 .align 2, 0 _080171B4: .4byte gUnknown_80D5404 _080171B8: .4byte 0x0000010d _080171BC: ldr r0, [r4] movs r1, 0x1 str r1, [r0, 0x8] adds r0, 0xE4 movs r1, 0 strb r1, [r0] ldr r2, _080171E4 ldr r3, [r4] ldr r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 4 adds r2, 0x3C adds r0, r2 ldr r0, [r0] adds r3, 0xE8 ldr r2, [r3] ldr r3, _080171E8 b _080173D8 .align 2, 0 _080171E4: .4byte gUnknown_80D5404 _080171E8: .4byte 0x0000010d _080171EC: ldr r0, [r4] movs r1, 0x1 str r1, [r0, 0x8] adds r0, 0xE4 movs r1, 0 strb r1, [r0] ldr r2, _08017214 ldr r3, [r4] ldr r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 4 adds r2, 0x48 adds r0, r2 ldr r0, [r0] adds r3, 0xE8 ldr r2, [r3] ldr r3, _08017218 b _080173D8 .align 2, 0 _08017214: .4byte gUnknown_80D5404 _08017218: .4byte 0x0000010d _0801721C: ldr r0, _08017244 ldr r1, [r4] adds r1, 0xC movs r2, 0 bl sub_8090E14 ldr r0, [r4] movs r1, 0xE str r1, [r0, 0x8] adds r0, 0xE4 movs r1, 0 strb r1, [r0] ldr r2, _08017248 ldr r3, [r4] ldr r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 4 adds r2, 0x40 b _080173CE .align 2, 0 _08017244: .4byte gUnknown_202DE58 _08017248: .4byte gUnknown_80D5404 _0801724C: ldr r0, [r4] movs r1, 0xE str r1, [r0, 0x8] adds r0, 0xE4 movs r1, 0 strb r1, [r0] ldr r2, _08017268 ldr r3, [r4] ldr r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 4 adds r2, 0x44 b _080173CE .align 2, 0 _08017268: .4byte gUnknown_80D5404 _0801726C: ldr r0, [r4] movs r1, 0xD str r1, [r0, 0x8] adds r0, 0xE4 movs r1, 0 strb r1, [r0] ldr r2, _08017288 ldr r3, [r4] ldr r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 4 adds r2, 0xC b _080173CE .align 2, 0 _08017288: .4byte gUnknown_80D5404 _0801728C: ldr r0, [r4] movs r1, 0xE str r1, [r0, 0x8] adds r0, 0xE4 movs r1, 0 strb r1, [r0] ldr r2, _080172A8 ldr r3, [r4] ldr r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 4 adds r2, 0x10 b _080173CE .align 2, 0 _080172A8: .4byte gUnknown_80D5404 _080172AC: movs r0, 0x3 movs r1, 0x3 movs r2, 0 movs r3, 0xA bl sub_801A5D8 b _08017584 _080172BA: movs r0, 0x1 bl sub_801A8D0 b _08017584 _080172C2: bl sub_801A9E0 bl sub_80176B8 ldr r0, _080172E0 ldr r2, [r0] adds r0, r2, 0 adds r0, 0x58 adds r1, r2, 0 adds r1, 0x24 adds r3, r2, 0 adds r3, 0x4C ldr r2, [r2, 0x1C] b _08017494 .align 2, 0 _080172E0: .4byte gUnknown_203B208 _080172E4: bl sub_80177F8 ldr r0, _08017310 ldr r4, _08017314 ldr r1, [r4] adds r1, 0xC movs r2, 0 bl sub_8090E14 ldr r0, [r4] adds r0, 0xE4 movs r5, 0 strb r5, [r0] ldr r2, _08017318 ldr r4, [r4] ldr r1, [r4] lsls r0, r1, 2 adds r0, r1 lsls r0, 4 adds r2, 0x14 b _08017504 .align 2, 0 _08017310: .4byte gUnknown_202DE58 _08017314: .4byte gUnknown_203B208 _08017318: .4byte gUnknown_80D5404 _0801731C: bl sub_80177F8 ldr r1, _0801733C ldr r0, [r1] adds r0, 0xE4 movs r5, 0 strb r5, [r0] ldr r2, _08017340 ldr r4, [r1] ldr r1, [r4] lsls r0, r1, 2 adds r0, r1 lsls r0, 4 adds r2, 0x18 b _08017504 .align 2, 0 _0801733C: .4byte gUnknown_203B208 _08017340: .4byte gUnknown_80D5404 _08017344: bl sub_8090A34 cmp r0, 0 bne _0801735C bl sub_801A928 ldr r0, _08017358 ldr r1, [r0] movs r0, 0x1 b _08017362 .align 2, 0 _08017358: .4byte gUnknown_203B208 _0801735C: ldr r0, _08017388 ldr r1, [r0] movs r0, 0xC _08017362: str r0, [r1, 0x8] ldr r3, _08017388 ldr r0, [r3] adds r0, 0xE4 movs r1, 0x1 strb r1, [r0] ldr r2, _0801738C ldr r3, [r3] ldr r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 4 adds r2, 0x1C adds r0, r2 ldr r0, [r0] adds r3, 0xE8 ldr r2, [r3] ldr r3, _08017390 b _080173D8 .align 2, 0 _08017388: .4byte gUnknown_203B208 _0801738C: .4byte gUnknown_80D5404 _08017390: .4byte 0x0000010d _08017394: ldr r0, [r4] movs r1, 0x16 str r1, [r0, 0x8] adds r0, 0xE4 movs r1, 0 strb r1, [r0] ldr r2, _080173B0 ldr r3, [r4] ldr r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 4 adds r2, 0x20 b _080173CE .align 2, 0 _080173B0: .4byte gUnknown_80D5404 _080173B4: ldr r0, [r4] movs r1, 0x17 str r1, [r0, 0x8] adds r0, 0xE4 movs r1, 0 strb r1, [r0] ldr r2, _080173E0 ldr r3, [r4] ldr r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 4 adds r2, 0x24 _080173CE: adds r0, r2 ldr r0, [r0] adds r3, 0xE8 ldr r2, [r3] ldr r3, _080173E4 _080173D8: movs r1, 0 bl sub_80141B4 b _08017584 .align 2, 0 _080173E0: .4byte gUnknown_80D5404 _080173E4: .4byte 0x0000030d _080173E8: movs r0, 0x1 movs r1, 0x3 movs r2, 0 movs r3, 0xA bl sub_801C8C4 b _080173FC _080173F6: movs r0, 0x1 bl sub_801CB5C _080173FC: movs r0, 0 bl sub_801AD34 b _08017584 _08017404: ldr r2, [r4] adds r1, r2, 0 adds r1, 0xB8 movs r0, 0x2 str r0, [r1] subs r1, 0x8 movs r0, 0x1 str r0, [r1] ldr r0, _08017430 ldr r1, [r0] ldrb r0, [r2, 0xE] lsls r0, 1 adds r1, 0x50 adds r3, r1, r0 ldrh r0, [r3] cmp r0, 0x63 bls _08017434 adds r1, r2, 0 adds r1, 0xB4 movs r0, 0x63 b _0801743A .align 2, 0 _08017430: .4byte gUnknown_203B460 _08017434: adds r1, r2, 0 adds r1, 0xB4 ldrh r0, [r3] _0801743A: str r0, [r1] ldr r2, [r4] adds r1, r2, 0 adds r1, 0xAC adds r0, r2, 0 adds r0, 0xB4 ldr r0, [r0] str r0, [r1] adds r1, 0x10 movs r0, 0x1 str r0, [r1] adds r1, 0x4 movs r3, 0x82 lsls r3, 1 adds r0, r2, r3 str r0, [r1] adds r1, 0x4 movs r0, 0x28 str r0, [r1] adds r1, 0x4 movs r0, 0x12 str r0, [r1] adds r0, r2, 0 adds r0, 0xA8 bl sub_8013AA0 bl sub_8017598 b _08017584 _08017474: bl sub_801CCD8 movs r0, 0 bl sub_801AD34 bl sub_8017758 ldr r0, _080174A4 ldr r2, [r0] adds r0, r2, 0 adds r0, 0x58 adds r1, r2, 0 adds r1, 0x24 adds r3, r2, 0 adds r3, 0x4C ldr r2, [r2, 0x20] _08017494: str r2, [sp] movs r2, 0x2 str r2, [sp, 0x4] movs r2, 0 bl sub_8012D60 b _08017584 .align 2, 0 _080174A4: .4byte gUnknown_203B208 _080174A8: ldr r0, [r4] adds r0, 0xC bl sub_801B3C0 b _08017584 _080174B2: bl sub_80177F8 ldr r0, _080174DC ldr r4, _080174E0 ldr r1, [r4] adds r1, 0xC movs r2, 0 bl sub_8090E14 ldr r0, [r4] adds r0, 0xE4 movs r5, 0 strb r5, [r0] ldr r2, _080174E4 ldr r4, [r4] ldr r1, [r4] lsls r0, r1, 2 adds r0, r1 lsls r0, 4 adds r2, 0x28 b _08017504 .align 2, 0 _080174DC: .4byte gUnknown_202DE58 _080174E0: .4byte gUnknown_203B208 _080174E4: .4byte gUnknown_80D5404 _080174E8: bl sub_80177F8 ldr r1, _08017528 ldr r0, [r1] adds r0, 0xE4 movs r5, 0 strb r5, [r0] ldr r2, _0801752C ldr r4, [r1] ldr r1, [r4] lsls r0, r1, 2 adds r0, r1 lsls r0, 4 adds r2, 0x2C _08017504: adds r0, r2 ldr r0, [r0] adds r3, r4, 0 adds r3, 0x24 str r5, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r5, [sp, 0x8] adds r4, 0xE8 ldr r1, [r4] str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 movs r2, 0x4 bl sub_8014248 b _08017584 .align 2, 0 _08017528: .4byte gUnknown_203B208 _0801752C: .4byte gUnknown_80D5404 _08017530: movs r0, 0x1 bl sub_801CF14 lsls r0, 24 cmp r0, 0 bne _08017544 bl sub_8090A34 cmp r0, 0x13 ble _08017554 _08017544: bl sub_801CBB8 ldr r0, _08017550 ldr r1, [r0] movs r0, 0x1 b _0801755A .align 2, 0 _08017550: .4byte gUnknown_203B208 _08017554: ldr r0, _0801758C ldr r1, [r0] movs r0, 0x15 _0801755A: str r0, [r1, 0x8] ldr r3, _0801758C ldr r0, [r3] adds r0, 0xE4 movs r1, 0x1 strb r1, [r0] ldr r2, _08017590 ldr r3, [r3] ldr r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 4 adds r2, 0x30 adds r0, r2 ldr r0, [r0] adds r3, 0xE8 ldr r2, [r3] ldr r3, _08017594 movs r1, 0 bl sub_80141B4 _08017584: add sp, 0x14 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0801758C: .4byte gUnknown_203B208 _08017590: .4byte gUnknown_80D5404 _08017594: .4byte 0x0000010d thumb_func_end sub_8016FF8 thumb_func_start sub_8017598 sub_8017598: push {r4,lr} sub sp, 0x4 ldr r4, _080175F4 ldr r0, [r4] adds r0, 0xBC ldr r0, [r0] bl sub_8008C54 ldr r0, [r4] adds r0, 0xBC ldr r0, [r0] bl sub_80073B8 ldr r2, _080175F8 ldr r0, [r4] adds r0, 0xBC ldr r3, [r0] movs r0, 0 str r0, [sp] movs r0, 0x4 movs r1, 0 bl xxx_call_draw_string ldr r0, [r4] adds r0, 0xA8 bl sub_8013C68 ldr r0, [r4] adds r0, 0xBC ldr r0, [r0] bl sub_80073E0 bl sub_801CCD8 movs r0, 0 bl sub_801AD34 ldr r0, [r4] adds r0, 0x58 movs r1, 0 bl sub_8012EA4 add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080175F4: .4byte gUnknown_203B208 _080175F8: .4byte gUnknown_80DB7A8 thumb_func_end sub_8017598 thumb_func_start sub_80175FC sub_80175FC: push {r4-r7,lr} ldr r4, _0801767C ldr r0, [r4] adds r0, 0x4C movs r1, 0 movs r2, 0xA bl MemoryFill16 ldr r3, [r4] movs r2, 0 ldr r0, _08017680 ldr r0, [r0] str r0, [r3, 0x24] movs r0, 0x2 str r0, [r3, 0x28] movs r1, 0x1 ldr r0, _08017684 ldr r0, [r0] str r0, [r3, 0x2C] movs r0, 0x3 str r0, [r3, 0x30] ldr r0, _08017688 ldr r0, [r0] str r0, [r3, 0x34] movs r0, 0x6 str r0, [r3, 0x38] ldr r0, _0801768C ldr r0, [r0] str r0, [r3, 0x3C] str r1, [r3, 0x40] movs r6, 0x4 str r2, [r3, 0x44] str r1, [r3, 0x48] movs r5, 0 mov r12, r3 adds r3, 0x28 mov r2, r12 adds r2, 0x4C _08017648: ldrh r0, [r2] cmp r0, 0 bne _08017658 ldr r1, [r3] mov r7, r12 ldr r0, [r7, 0x18] cmp r1, r0 beq _080176B2 _08017658: adds r3, 0x8 adds r2, 0x2 adds r5, 0x1 cmp r5, r6 blt _08017648 movs r5, 0 cmp r5, r6 bge _080176B2 ldr r1, [r4] adds r0, r1, 0 adds r0, 0x4C ldrh r0, [r0] cmp r0, 0 bne _08017690 ldr r0, [r1, 0x28] str r0, [r1, 0x18] b _080176B2 .align 2, 0 _0801767C: .4byte gUnknown_203B208 _08017680: .4byte gUnknown_80D4958 _08017684: .4byte gUnknown_80D4964 _08017688: .4byte gUnknown_80D4970 _0801768C: .4byte gUnknown_80D4934 _08017690: adds r5, 0x1 cmp r5, r6 bge _080176B2 ldr r2, [r4] lsls r0, r5, 1 adds r1, r2, 0 adds r1, 0x4C adds r1, r0 ldrh r0, [r1] cmp r0, 0 bne _08017690 lsls r0, r5, 3 adds r1, r2, 0 adds r1, 0x28 adds r1, r0 ldr r0, [r1] str r0, [r2, 0x18] _080176B2: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80175FC thumb_func_start sub_80176B8 sub_80176B8: push {r4-r7,lr} ldr r4, _08017724 ldr r0, [r4] adds r0, 0x4C movs r1, 0 movs r2, 0xA bl MemoryFill16 ldr r3, [r4] movs r2, 0 ldr r0, _08017728 ldr r0, [r0] str r0, [r3, 0x24] movs r0, 0x2 str r0, [r3, 0x28] movs r1, 0x1 ldr r0, _0801772C ldr r0, [r0] str r0, [r3, 0x2C] movs r0, 0x6 str r0, [r3, 0x30] movs r6, 0x2 str r2, [r3, 0x34] str r1, [r3, 0x38] movs r5, 0 mov r12, r3 adds r3, 0x28 mov r2, r12 adds r2, 0x4C _080176F2: ldrh r0, [r2] cmp r0, 0 bne _08017702 ldr r1, [r3] mov r7, r12 ldr r0, [r7, 0x1C] cmp r1, r0 beq _08017752 _08017702: adds r3, 0x8 adds r2, 0x2 adds r5, 0x1 cmp r5, r6 blt _080176F2 movs r5, 0 cmp r5, r6 bge _08017752 ldr r1, [r4] adds r0, r1, 0 adds r0, 0x4C ldrh r0, [r0] cmp r0, 0 bne _08017730 ldr r0, [r1, 0x28] str r0, [r1, 0x1C] b _08017752 .align 2, 0 _08017724: .4byte gUnknown_203B208 _08017728: .4byte gUnknown_80D4958 _0801772C: .4byte gUnknown_80D4970 _08017730: adds r5, 0x1 cmp r5, r6 bge _08017752 ldr r2, [r4] lsls r0, r5, 1 adds r1, r2, 0 adds r1, 0x4C adds r1, r0 ldrh r0, [r1] cmp r0, 0 bne _08017730 lsls r0, r5, 3 adds r1, r2, 0 adds r1, 0x28 adds r1, r0 ldr r0, [r1] str r0, [r2, 0x1C] _08017752: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80176B8 thumb_func_start sub_8017758 sub_8017758: push {r4-r7,lr} ldr r4, _080177C4 ldr r0, [r4] adds r0, 0x4C movs r1, 0 movs r2, 0xA bl MemoryFill16 ldr r3, [r4] movs r2, 0 ldr r0, _080177C8 ldr r0, [r0] str r0, [r3, 0x24] movs r0, 0x3 str r0, [r3, 0x28] movs r1, 0x1 ldr r0, _080177CC ldr r0, [r0] str r0, [r3, 0x2C] movs r0, 0x6 str r0, [r3, 0x30] movs r6, 0x2 str r2, [r3, 0x34] str r1, [r3, 0x38] movs r5, 0 mov r12, r3 adds r3, 0x28 mov r2, r12 adds r2, 0x4C _08017792: ldrh r0, [r2] cmp r0, 0 bne _080177A2 ldr r1, [r3] mov r7, r12 ldr r0, [r7, 0x20] cmp r1, r0 beq _080177F2 _080177A2: adds r3, 0x8 adds r2, 0x2 adds r5, 0x1 cmp r5, r6 blt _08017792 movs r5, 0 cmp r5, r6 bge _080177F2 ldr r1, [r4] adds r0, r1, 0 adds r0, 0x4C ldrh r0, [r0] cmp r0, 0 bne _080177D0 ldr r0, [r1, 0x28] str r0, [r1, 0x20] b _080177F2 .align 2, 0 _080177C4: .4byte gUnknown_203B208 _080177C8: .4byte gUnknown_80D4964 _080177CC: .4byte gUnknown_80D4970 _080177D0: adds r5, 0x1 cmp r5, r6 bge _080177F2 ldr r2, [r4] lsls r0, r5, 1 adds r1, r2, 0 adds r1, 0x4C adds r1, r0 ldrh r0, [r1] cmp r0, 0 bne _080177D0 lsls r0, r5, 3 adds r1, r2, 0 adds r1, 0x28 adds r1, r0 ldr r0, [r1] str r0, [r2, 0x20] _080177F2: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8017758 thumb_func_start sub_80177F8 sub_80177F8: ldr r0, _0801781C ldr r1, [r0] movs r3, 0 ldr r0, _08017820 ldr r0, [r0] str r0, [r1, 0x24] movs r0, 0x4 str r0, [r1, 0x28] movs r2, 0x1 ldr r0, _08017824 ldr r0, [r0] str r0, [r1, 0x2C] movs r0, 0x5 str r0, [r1, 0x30] str r3, [r1, 0x34] str r2, [r1, 0x38] bx lr .align 2, 0 _0801781C: .4byte gUnknown_203B208 _08017820: .4byte gUnknown_80D4920 _08017824: .4byte gUnknown_80D4928 thumb_func_end sub_80177F8 thumb_func_start sub_8017828 sub_8017828: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080178C8 ldr r1, [sp] cmp r1, 0x1 beq _08017842 ldr r0, _08017854 ldr r0, [r0] str r1, [r0, 0x18] _08017842: ldr r0, [sp] cmp r0, 0x2 beq _08017862 cmp r0, 0x2 bgt _08017858 cmp r0, 0x1 beq _080178C2 b _080178C8 .align 2, 0 _08017854: .4byte gUnknown_203B208 _08017858: cmp r0, 0x3 beq _0801788E cmp r0, 0x6 beq _080178BA b _080178C8 _08017862: bl sub_8090A34 cmp r0, 0 bne _08017872 movs r0, 0x5 bl sub_8016E68 b _080178C8 _08017872: movs r0, 0 bl sub_801CF50 lsls r0, 24 cmp r0, 0 beq _08017886 movs r0, 0x8 bl sub_8016E68 b _080178C8 _08017886: movs r0, 0xB bl sub_8016E68 b _080178C8 _0801788E: movs r0, 0x1 bl sub_801CF14 lsls r0, 24 cmp r0, 0 beq _080178A2 movs r0, 0x7 bl sub_8016E68 b _080178C8 _080178A2: bl sub_8090A34 cmp r0, 0x13 ble _080178B2 movs r0, 0x6 bl sub_8016E68 b _080178C8 _080178B2: movs r0, 0x14 bl sub_8016E68 b _080178C8 _080178BA: movs r0, 0x2 bl sub_8016E68 b _080178C8 _080178C2: movs r0, 0x3 bl sub_8016E68 _080178C8: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8017828 thumb_func_start sub_80178D0 sub_80178D0: push {r4,lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0801791E ldr r0, [sp] cmp r0, 0x4 beq _080178F4 cmp r0, 0x4 bgt _080178EE cmp r0, 0x1 beq _08017918 b _0801791E _080178EE: cmp r0, 0x5 beq _08017918 b _0801791E _080178F4: ldr r4, _08017914 ldr r0, [r4] adds r0, 0xC bl sub_80917B8 ldr r0, [r4] ldr r0, [r0, 0x10] bl sub_80911F8 bl sub_80910B4 movs r0, 0x13 bl sub_8016E68 b _0801791E .align 2, 0 _08017914: .4byte gUnknown_203B208 _08017918: movs r0, 0xE bl sub_8016E68 _0801791E: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_80178D0 thumb_func_start sub_8017928 sub_8017928: push {lr} sub sp, 0x8 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080179A2 ldr r0, [sp] cmp r0, 0x4 beq _0801794C cmp r0, 0x4 bgt _08017946 cmp r0, 0x1 beq _0801799C b _080179A2 _08017946: cmp r0, 0x5 beq _0801799C b _080179A2 _0801794C: ldr r0, _0801798C ldr r1, [r0] ldr r0, _08017990 ldr r3, [r0] ldrb r0, [r3, 0xE] lsls r0, 1 adds r1, 0x50 adds r1, r0 ldrb r2, [r3, 0xD] ldrh r0, [r1] subs r0, r2 strh r0, [r1] ldrb r2, [r3, 0xE] ldr r1, _08017994 ldr r0, [sp, 0x4] ands r0, r1 orrs r0, r2 str r0, [sp, 0x4] ldrb r1, [r3, 0xD] lsls r1, 8 ldr r2, _08017998 ands r0, r2 orrs r0, r1 str r0, [sp, 0x4] add r0, sp, 0x4 bl sub_8091274 movs r0, 0x1D bl sub_8016E68 b _080179A2 .align 2, 0 _0801798C: .4byte gUnknown_203B460 _08017990: .4byte gUnknown_203B208 _08017994: .4byte 0xffffff00 _08017998: .4byte 0xffff00ff _0801799C: movs r0, 0x17 bl sub_8016E68 _080179A2: add sp, 0x8 pop {r0} bx r0 thumb_func_end sub_8017928 thumb_func_start sub_80179A8 sub_80179A8: push {r4-r7,lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08017A12 ldr r0, [sp] cmp r0, 0x4 beq _080179CC cmp r0, 0x4 bgt _080179C6 cmp r0, 0x1 beq _08017A0C b _08017A12 _080179C6: cmp r0, 0x5 beq _08017A0C b _08017A12 _080179CC: movs r5, 0 ldr r6, _08017A08 movs r7, 0 _080179D2: adds r0, r5, 0 bl sub_801AED0 cmp r0, 0 beq _080179F2 lsls r4, r5, 2 ldr r0, [r6] adds r0, r4 bl sub_80917B8 ldr r0, [r6] adds r0, r4 strb r7, [r0, 0x2] ldr r0, [r6] adds r0, r4 strb r7, [r0] _080179F2: adds r5, 0x1 cmp r5, 0x13 ble _080179D2 bl sub_80910B4 bl sub_801AE84 movs r0, 0x13 bl sub_8016E68 b _08017A12 .align 2, 0 _08017A08: .4byte gUnknown_203B460 _08017A0C: movs r0, 0xE bl sub_8016E68 _08017A12: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80179A8 thumb_func_start sub_8017A1C sub_8017A1C: push {r4-r6,lr} sub sp, 0x8 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08017AEE ldr r0, [sp] cmp r0, 0x4 beq _08017A40 cmp r0, 0x4 bgt _08017A3A cmp r0, 0x1 beq _08017AE8 b _08017AEE _08017A3A: cmp r0, 0x5 beq _08017AE8 b _08017AEE _08017A40: movs r5, 0 ldr r6, _08017A88 _08017A44: lsls r0, r5, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl sub_801CFE0 cmp r0, 0 beq _08017ACE ldr r1, _08017A8C ldr r0, [sp, 0x4] ands r0, r1 orrs r0, r4 str r0, [sp, 0x4] add r4, sp, 0x4 ldrb r0, [r4] bl sub_8090A60 lsls r0, 24 cmp r0, 0 beq _08017AA2 ldr r2, _08017A90 ldr r1, [r2] ldrb r0, [r4] lsls r0, 1 adds r1, 0x50 adds r1, r0 ldrh r1, [r1] cmp r1, 0x63 bls _08017A94 ldr r0, [sp, 0x4] ands r0, r6 movs r1, 0xC6 lsls r1, 7 b _08017A9C .align 2, 0 _08017A88: .4byte 0xffff00ff _08017A8C: .4byte 0xffffff00 _08017A90: .4byte gUnknown_203B460 _08017A94: lsls r1, 24 lsrs r1, 16 ldr r0, [sp, 0x4] ands r0, r6 _08017A9C: orrs r0, r1 str r0, [sp, 0x4] b _08017AB0 _08017AA2: ldr r0, [sp, 0x4] ands r0, r6 movs r1, 0x80 lsls r1, 1 orrs r0, r1 str r0, [sp, 0x4] ldr r2, _08017AE4 _08017AB0: ldr r3, [r2] add r0, sp, 0x4 ldrb r1, [r4] lsls r1, 1 adds r3, 0x50 adds r3, r1 ldr r1, [sp, 0x4] lsrs r1, 8 lsls r1, 24 lsrs r1, 24 ldrh r2, [r3] subs r2, r1 strh r2, [r3] bl sub_8091274 _08017ACE: adds r5, 0x1 cmp r5, 0xEF ble _08017A44 bl sub_80910B4 bl sub_801CF94 movs r0, 0x1D bl sub_8016E68 b _08017AEE .align 2, 0 _08017AE4: .4byte gUnknown_203B460 _08017AE8: movs r0, 0x17 bl sub_8016E68 _08017AEE: add sp, 0x8 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8017A1C thumb_func_start sub_8017AF8 sub_8017AF8: push {lr} movs r0, 0x1 bl sub_801A6E8 cmp r0, 0x3 beq _08017B14 cmp r0, 0x3 bhi _08017B0E cmp r0, 0x2 beq _08017B78 b _08017B82 _08017B0E: cmp r0, 0x4 beq _08017B50 b _08017B82 _08017B14: bl sub_801AEA8 cmp r0, 0 beq _08017B2A movs r0, 0 bl sub_8099690 movs r0, 0x12 bl sub_8016E68 b _08017B82 _08017B2A: bl sub_801A8AC ldr r1, _08017B48 ldr r2, [r1] str r0, [r2, 0x10] ldr r1, _08017B4C ldr r1, [r1] lsls r0, 2 adds r1, r0 ldr r0, [r1] str r0, [r2, 0xC] movs r0, 0xF bl sub_8016E68 b _08017B82 .align 2, 0 _08017B48: .4byte gUnknown_203B208 _08017B4C: .4byte gUnknown_203B460 _08017B50: bl sub_801A8AC ldr r1, _08017B70 ldr r2, [r1] str r0, [r2, 0x10] ldr r1, _08017B74 ldr r1, [r1] lsls r0, 2 adds r1, r0 ldr r0, [r1] str r0, [r2, 0xC] movs r0, 0x10 bl sub_8016E68 b _08017B82 .align 2, 0 _08017B70: .4byte gUnknown_203B208 _08017B74: .4byte gUnknown_203B460 _08017B78: bl sub_801A928 movs r0, 0x1 bl sub_8016E68 _08017B82: pop {r0} bx r0 thumb_func_end sub_8017AF8 thumb_func_start sub_8017B88 sub_8017B88: push {r4,lr} movs r0, 0x1 bl sub_801CA08 cmp r0, 0x2 beq _08017C10 cmp r0, 0x2 bhi _08017B9E cmp r0, 0x1 beq _08017C1C b _08017C22 _08017B9E: cmp r0, 0x3 beq _08017BA8 cmp r0, 0x4 beq _08017BE4 b _08017C22 _08017BA8: bl sub_801CFB8 cmp r0, 0 beq _08017BB8 movs r0, 0x1C bl sub_8016E68 b _08017C22 _08017BB8: bl sub_801CB24 ldr r4, _08017BE0 ldr r1, [r4] strb r0, [r1, 0x14] ldr r1, [r4] adds r0, r1, 0 adds r0, 0xC ldrb r1, [r1, 0x14] movs r2, 0 bl sub_8090A8C ldr r1, [r4] movs r0, 0x1 strb r0, [r1, 0xD] movs r0, 0x19 bl sub_8016E68 b _08017C22 .align 2, 0 _08017BE0: .4byte gUnknown_203B208 _08017BE4: bl sub_801CB24 ldr r4, _08017C0C ldr r1, [r4] strb r0, [r1, 0x14] ldr r1, [r4] adds r0, r1, 0 adds r0, 0xC ldrb r1, [r1, 0x14] movs r2, 0 bl sub_8090A8C ldr r1, [r4] movs r0, 0x1 strb r0, [r1, 0xD] movs r0, 0x1A bl sub_8016E68 b _08017C22 .align 2, 0 _08017C0C: .4byte gUnknown_203B208 _08017C10: bl sub_801CBB8 movs r0, 0x1 bl sub_8016E68 b _08017C22 _08017C1C: movs r0, 0 bl sub_801AD34 _08017C22: pop {r4} pop {r0} bx r0 thumb_func_end sub_8017B88 thumb_func_start sub_8017C28 sub_8017C28: push {r4,lr} movs r0, 0 bl sub_801CA08 ldr r4, _08017C54 ldr r0, [r4] adds r0, 0x58 bl sub_8012FD8 ldr r0, [r4] adds r0, 0xA8 bl sub_8013BBC cmp r0, 0x1 beq _08017C58 cmp r0, 0x1 bcc _08017C76 cmp r0, 0x2 beq _08017C70 cmp r0, 0x3 beq _08017C5E b _08017C76 .align 2, 0 _08017C54: .4byte gUnknown_203B208 _08017C58: bl sub_8017598 b _08017C76 _08017C5E: ldr r0, [r4] adds r1, r0, 0 adds r1, 0xA8 ldr r1, [r1] strb r1, [r0, 0xD] movs r0, 0x1B bl sub_8016E68 b _08017C76 _08017C70: movs r0, 0x17 bl sub_8016E68 _08017C76: pop {r4} pop {r0} bx r0 thumb_func_end sub_8017C28 thumb_func_start sub_8017C7C sub_8017C7C: push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] bl sub_801A6E8 ldr r4, _08017CBC ldr r0, [r4] adds r0, 0x58 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _08017CAC ldr r0, [r4] adds r0, 0x58 mov r1, sp bl sub_8013114 ldr r1, [sp] cmp r1, 0x1 beq _08017CAC ldr r0, [r4] str r1, [r0, 0x1C] _08017CAC: ldr r0, [sp] cmp r0, 0x2 beq _08017CC6 cmp r0, 0x2 bgt _08017CC0 cmp r0, 0x1 beq _08017D14 b _08017D1A .align 2, 0 _08017CBC: .4byte gUnknown_203B208 _08017CC0: cmp r0, 0x6 beq _08017D06 b _08017D1A _08017CC6: movs r0, 0 bl sub_8099690 ldr r4, _08017CE4 ldr r0, [r4] ldrb r0, [r0, 0xE] bl sub_8091524 lsls r0, 24 cmp r0, 0 bne _08017CE8 movs r0, 0x9 bl sub_8016E68 b _08017D1A .align 2, 0 _08017CE4: .4byte gUnknown_203B208 _08017CE8: ldr r0, [r4] ldr r0, [r0, 0x10] bl sub_801ADA0 lsls r0, 24 cmp r0, 0 bne _08017CFE movs r0, 0xA bl sub_8016E68 b _08017D1A _08017CFE: movs r0, 0x11 bl sub_8016E68 b _08017D1A _08017D06: movs r0, 0 bl sub_8099690 movs r0, 0x10 bl sub_8016E68 b _08017D1A _08017D14: movs r0, 0xE bl sub_8016E68 _08017D1A: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_8017C7C thumb_func_start sub_8017D24 sub_8017D24: push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] bl sub_801CA08 ldr r4, _08017D64 ldr r0, [r4] adds r0, 0x58 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _08017D54 ldr r0, [r4] adds r0, 0x58 mov r1, sp bl sub_8013114 ldr r1, [sp] cmp r1, 0x1 beq _08017D54 ldr r0, [r4] str r1, [r0, 0x20] _08017D54: ldr r0, [sp] cmp r0, 0x3 beq _08017D6E cmp r0, 0x3 bgt _08017D68 cmp r0, 0x1 beq _08017DB0 b _08017DB6 .align 2, 0 _08017D64: .4byte gUnknown_203B208 _08017D68: cmp r0, 0x6 beq _08017DA8 b _08017DB6 _08017D6E: bl sub_8090A34 cmp r0, 0x13 ble _08017D82 bl sub_801CBB8 movs r0, 0x6 bl sub_8016E68 b _08017DB6 _08017D82: ldr r0, _08017D9C ldr r0, [r0] ldrb r0, [r0, 0xE] bl sub_8090A60 lsls r0, 24 cmp r0, 0 beq _08017DA0 movs r0, 0x18 bl sub_8016E68 b _08017DB6 .align 2, 0 _08017D9C: .4byte gUnknown_203B208 _08017DA0: movs r0, 0x1B bl sub_8016E68 b _08017DB6 _08017DA8: movs r0, 0x1A bl sub_8016E68 b _08017DB6 _08017DB0: movs r0, 0x17 bl sub_8016E68 _08017DB6: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_8017D24 thumb_func_start sub_8017DC0 sub_8017DC0: push {lr} bl sub_801B410 cmp r0, 0x1 bls _08017DD8 cmp r0, 0x3 bhi _08017DD8 bl sub_801B450 movs r0, 0xE bl sub_8016E68 _08017DD8: pop {r0} bx r0 thumb_func_end sub_8017DC0 thumb_func_start sub_8017DDC sub_8017DDC: push {lr} bl sub_801B410 cmp r0, 0x1 bls _08017DF4 cmp r0, 0x3 bhi _08017DF4 bl sub_801B450 movs r0, 0x17 bl sub_8016E68 _08017DF4: pop {r0} bx r0 thumb_func_end sub_8017DDC thumb_func_start sub_8017DF8 sub_8017DF8: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08017E10 ldr r0, _08017E18 ldr r0, [r0] ldr r0, [r0, 0x8] bl sub_8016E68 _08017E10: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _08017E18: .4byte gUnknown_203B208 thumb_func_end sub_8017DF8 thumb_func_start sub_8017E1C sub_8017E1C: push {r4,lr} bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, _08017E50 movs r0, 0xA8 lsls r0, 1 movs r1, 0x8 bl MemoryAlloc str r0, [r4] movs r1, 0 str r1, [r0, 0x14] str r1, [r0, 0x18] str r1, [r0, 0x1C] movs r0, 0 bl sub_8017F10 movs r0, 0x1 pop {r4} pop {r1} bx r1 .align 2, 0 _08017E50: .4byte gUnknown_203B20C thumb_func_end sub_8017E1C thumb_func_start sub_8017E54 sub_8017E54: push {lr} ldr r0, _08017E6C ldr r0, [r0] ldr r0, [r0] cmp r0, 0xE bhi _08017EEC lsls r0, 2 ldr r1, _08017E70 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08017E6C: .4byte gUnknown_203B20C _08017E70: .4byte _08017E74 .align 2, 0 _08017E74: .4byte _08017EB0 .4byte _08017EB8 .4byte _08017EEC .4byte _08017EE8 .4byte _08017EBE .4byte _08017EBE .4byte _08017EC4 .4byte _08017ECA .4byte _08017EEC .4byte _08017EEC .4byte _08017ED0 .4byte _08017ED0 .4byte _08017ED6 .4byte _08017EDC .4byte _08017EE2 _08017EB0: movs r0, 0x1 bl sub_8017F10 b _08017EEC _08017EB8: bl sub_8018588 b _08017EEC _08017EBE: bl sub_8018620 b _08017EEC _08017EC4: bl sub_8018904 b _08017EEC _08017ECA: bl sub_8018AC8 b _08017EEC _08017ED0: bl sub_80186F8 b _08017EEC _08017ED6: bl sub_8018854 b _08017EEC _08017EDC: bl sub_80189C8 b _08017EEC _08017EE2: bl sub_8018AE4 b _08017EEC _08017EE8: movs r0, 0x3 b _08017EEE _08017EEC: movs r0, 0 _08017EEE: pop {r1} bx r1 thumb_func_end sub_8017E54 thumb_func_start sub_8017EF4 sub_8017EF4: push {r4,lr} ldr r4, _08017F0C ldr r0, [r4] cmp r0, 0 beq _08017F06 bl MemoryFree movs r0, 0 str r0, [r4] _08017F06: pop {r4} pop {r0} bx r0 .align 2, 0 _08017F0C: .4byte gUnknown_203B20C thumb_func_end sub_8017EF4 thumb_func_start sub_8017F10 sub_8017F10: push {lr} ldr r1, _08017F24 ldr r1, [r1] str r0, [r1] bl sub_8017F28 bl sub_8018100 pop {r0} bx r0 .align 2, 0 _08017F24: .4byte gUnknown_203B20C thumb_func_end sub_8017F10 thumb_func_start sub_8017F28 sub_8017F28: push {r4-r7,lr} ldr r4, _08017F48 ldr r0, [r4] adds r0, 0xF0 bl sub_8006518 ldr r0, [r4] ldr r0, [r0] cmp r0, 0xD bls _08017F3E b _080180BC _08017F3E: lsls r0, 2 ldr r1, _08017F4C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08017F48: .4byte gUnknown_203B20C _08017F4C: .4byte _08017F50 .align 2, 0 _08017F50: .4byte _080180BC .4byte _08017F88 .4byte _080180BC .4byte _080180BC .4byte _08017FE8 .4byte _08017FE8 .4byte _0801809C .4byte _080180BC .4byte _080180BC .4byte _080180BC .4byte _08018034 .4byte _08018034 .4byte _08018084 .4byte _0801809C _08017F88: ldr r4, _08017FDC ldr r1, [r4] ldr r2, _08017FE0 adds r1, 0xF0 adds r0, r2, 0 ldm r0!, {r3,r5,r6} stm r1!, {r3,r5,r6} ldm r0!, {r3,r5,r7} stm r1!, {r3,r5,r7} ldr r1, [r4] movs r6, 0x84 lsls r6, 1 adds r1, r6 adds r0, r2, 0 ldm r0!, {r3,r5,r7} stm r1!, {r3,r5,r7} ldm r0!, {r3,r6,r7} stm r1!, {r3,r6,r7} ldr r0, [r4] adds r0, 0xF0 ldm r2!, {r5-r7} stm r0!, {r5-r7} ldm r2!, {r1,r3,r5} stm r0!, {r1,r3,r5} bl sub_80182E4 ldr r2, [r4] movs r0, 0x90 lsls r0, 1 adds r2, r0 ldr r1, _08017FE4 ldm r1!, {r3,r6,r7} stm r2!, {r3,r6,r7} ldm r1!, {r5-r7} stm r2!, {r5-r7} ldr r1, [r4] adds r0, r1, r0 adds r1, 0x20 bl sub_8012CAC b _080180E0 .align 2, 0 _08017FDC: .4byte gUnknown_203B20C _08017FE0: .4byte gUnknown_80DB7B8 _08017FE4: .4byte gUnknown_80DB7D0 _08017FE8: ldr r3, _0801802C ldr r1, [r3] ldr r2, _08018030 adds r1, 0xF0 adds r0, r2, 0 ldm r0!, {r4-r6} stm r1!, {r4-r6} ldm r0!, {r4,r5,r7} stm r1!, {r4,r5,r7} ldr r1, [r3] movs r6, 0x84 lsls r6, 1 adds r1, r6 adds r0, r2, 0 ldm r0!, {r4,r5,r7} stm r1!, {r4,r5,r7} ldm r0!, {r4,r6,r7} stm r1!, {r4,r6,r7} ldr r1, [r3] movs r5, 0x90 lsls r5, 1 adds r1, r5 adds r0, r2, 0 ldm r0!, {r4,r6,r7} stm r1!, {r4,r6,r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} ldr r0, [r3] adds r0, 0xF0 ldm r2!, {r1,r3,r4} stm r0!, {r1,r3,r4} ldm r2!, {r5-r7} stm r0!, {r5-r7} b _080180E0 .align 2, 0 _0801802C: .4byte gUnknown_203B20C _08018030: .4byte gUnknown_80DB7B8 _08018034: ldr r3, _08018078 ldr r1, [r3] ldr r2, _0801807C adds r1, 0xF0 adds r0, r2, 0 ldm r0!, {r4-r6} stm r1!, {r4-r6} ldm r0!, {r4,r5,r7} stm r1!, {r4,r5,r7} ldr r1, [r3] movs r6, 0x84 lsls r6, 1 adds r1, r6 adds r0, r2, 0 ldm r0!, {r4,r5,r7} stm r1!, {r4,r5,r7} ldm r0!, {r4,r6,r7} stm r1!, {r4,r6,r7} ldr r0, [r3] movs r5, 0x90 lsls r5, 1 adds r0, r5 ldm r2!, {r1,r6,r7} stm r0!, {r1,r6,r7} ldm r2!, {r4-r6} stm r0!, {r4-r6} ldr r1, [r3] adds r1, 0xF0 ldr r0, _08018080 ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldm r0!, {r4-r6} stm r1!, {r4-r6} b _080180E0 .align 2, 0 _08018078: .4byte gUnknown_203B20C _0801807C: .4byte gUnknown_80DB7B8 _08018080: .4byte gUnknown_80DB800 _08018084: ldr r0, _08018094 ldr r1, [r0] movs r7, 0x84 lsls r7, 1 adds r1, r7 ldr r0, _08018098 b _080180A8 .align 2, 0 _08018094: .4byte gUnknown_203B20C _08018098: .4byte gUnknown_80DB818 _0801809C: ldr r0, _080180B4 ldr r1, [r0] movs r0, 0x90 lsls r0, 1 adds r1, r0 ldr r0, _080180B8 _080180A8: ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r5-r7} stm r1!, {r5-r7} b _080180E0 .align 2, 0 _080180B4: .4byte gUnknown_203B20C _080180B8: .4byte gUnknown_80DB7E8 _080180BC: ldr r0, _080180F8 mov r12, r0 ldr r4, _080180FC movs r3, 0 movs r2, 0x3 _080180C6: mov r5, r12 ldr r1, [r5] adds r1, r3 adds r1, 0xF0 adds r0, r4, 0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} adds r3, 0x18 subs r2, 0x1 cmp r2, 0 bge _080180C6 _080180E0: bl sub_8004914 ldr r0, _080180F8 ldr r0, [r0] adds r0, 0xF0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080180F8: .4byte gUnknown_203B20C _080180FC: .4byte gUnknown_80DB7B8 thumb_func_end sub_8017F28 thumb_func_start sub_8018100 sub_8018100: push {r4,lr} sub sp, 0x8 ldr r1, _0801811C ldr r0, [r1] ldr r0, [r0] adds r4, r1, 0 cmp r0, 0xE bls _08018112 b _08018278 _08018112: lsls r0, 2 ldr r1, _08018120 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0801811C: .4byte gUnknown_203B20C _08018120: .4byte _08018124 .align 2, 0 _08018124: .4byte _08018278 .4byte _08018160 .4byte _08018278 .4byte _08018278 .4byte _08018172 .4byte _08018180 .4byte _08018188 .4byte _080181A8 .4byte _08018278 .4byte _08018278 .4byte _080181B2 .4byte _080181C0 .4byte _080181CE .4byte _0801823C .4byte _08018270 _08018160: ldr r2, [r4] adds r0, r2, 0 adds r0, 0x70 adds r1, r2, 0 adds r1, 0x20 adds r3, r2, 0 adds r3, 0x60 ldr r2, [r2, 0x14] b _0801825C _08018172: movs r0, 0x3 movs r1, 0x3 movs r2, 0 movs r3, 0xA bl sub_801A5D8 b _08018278 _08018180: movs r0, 0x1 bl sub_801A8D0 b _08018278 _08018188: bl sub_801A9E0 bl sub_801841C ldr r0, _080181A4 ldr r2, [r0] adds r0, r2, 0 adds r0, 0x70 adds r1, r2, 0 adds r1, 0x20 adds r3, r2, 0 adds r3, 0x60 ldr r2, [r2, 0x18] b _0801825C .align 2, 0 _080181A4: .4byte gUnknown_203B20C _080181A8: ldr r0, [r4] adds r0, 0x8 bl sub_801B3C0 b _08018278 _080181B2: movs r0, 0x1 movs r1, 0x3 movs r2, 0 movs r3, 0xA bl sub_801C8C4 b _080181C6 _080181C0: movs r0, 0x1 bl sub_801CB5C _080181C6: movs r0, 0 bl sub_801AD34 b _08018278 _080181CE: ldr r2, [r4] adds r1, r2, 0 adds r1, 0xD0 movs r0, 0x2 str r0, [r1] subs r1, 0x8 movs r0, 0x1 str r0, [r1] ldr r0, _080181F8 ldr r1, [r0] ldrb r0, [r2, 0xA] lsls r0, 1 adds r1, 0x50 adds r3, r1, r0 ldrh r0, [r3] cmp r0, 0x63 bls _080181FC adds r1, r2, 0 adds r1, 0xCC movs r0, 0x63 b _08018202 .align 2, 0 _080181F8: .4byte gUnknown_203B460 _080181FC: adds r1, r2, 0 adds r1, 0xCC ldrh r0, [r3] _08018202: str r0, [r1] ldr r2, [r4] adds r1, r2, 0 adds r1, 0xC4 adds r0, r2, 0 adds r0, 0xCC ldr r0, [r0] str r0, [r1] adds r1, 0x10 movs r0, 0x1 str r0, [r1] adds r1, 0x4 movs r3, 0x84 lsls r3, 1 adds r0, r2, r3 str r0, [r1] adds r1, 0x4 movs r0, 0x28 str r0, [r1] adds r1, 0x4 movs r0, 0x12 str r0, [r1] adds r0, r2, 0 adds r0, 0xC0 bl sub_8013AA0 bl sub_8018280 b _08018278 _0801823C: bl sub_801CCD8 movs r0, 0 bl sub_801AD34 bl sub_80184D4 ldr r0, _0801826C ldr r2, [r0] adds r0, r2, 0 adds r0, 0x70 adds r1, r2, 0 adds r1, 0x20 adds r3, r2, 0 adds r3, 0x60 ldr r2, [r2, 0x1C] _0801825C: str r2, [sp] movs r2, 0x2 str r2, [sp, 0x4] movs r2, 0 bl sub_8012D60 b _08018278 .align 2, 0 _0801826C: .4byte gUnknown_203B20C _08018270: ldr r0, [r4] adds r0, 0x8 bl sub_801B3C0 _08018278: add sp, 0x8 pop {r4} pop {r0} bx r0 thumb_func_end sub_8018100 thumb_func_start sub_8018280 sub_8018280: push {r4,lr} sub sp, 0x4 ldr r4, _080182DC ldr r0, [r4] adds r0, 0xD4 ldr r0, [r0] bl sub_8008C54 ldr r0, [r4] adds r0, 0xD4 ldr r0, [r0] bl sub_80073B8 ldr r2, _080182E0 ldr r0, [r4] adds r0, 0xD4 ldr r3, [r0] movs r0, 0 str r0, [sp] movs r0, 0x4 movs r1, 0 bl xxx_call_draw_string ldr r0, [r4] adds r0, 0xC0 bl sub_8013C68 ldr r0, [r4] adds r0, 0xD4 ldr r0, [r0] bl sub_80073E0 bl sub_801CCD8 movs r0, 0 bl sub_801AD34 ldr r0, [r4] adds r0, 0x70 movs r1, 0 bl sub_8012EA4 add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080182DC: .4byte gUnknown_203B20C _080182E0: .4byte gUnknown_80DB830 thumb_func_end sub_8018280 thumb_func_start sub_80182E4 sub_80182E4: push {r4-r7,lr} mov r7, r8 push {r7} movs r0, 0 mov r8, r0 ldr r4, _080183DC ldr r0, [r4] adds r0, 0x60 movs r1, 0 movs r2, 0x10 bl MemoryFill16 ldr r1, [r4] ldr r0, _080183E0 ldr r0, [r0] str r0, [r1, 0x20] movs r0, 0x2 str r0, [r1, 0x24] bl sub_8090A34 cmp r0, 0 beq _0801831C movs r0, 0 bl sub_801CF50 lsls r0, 24 cmp r0, 0 beq _08018324 _0801831C: ldr r0, [r4] adds r0, 0x60 movs r1, 0x1 strh r1, [r0] _08018324: movs r1, 0x1 add r8, r1 ldr r4, _080183DC ldr r2, [r4] mov r0, r8 lsls r3, r0, 3 adds r0, r2, 0 adds r0, 0x20 adds r0, r3 ldr r1, _080183E4 ldr r1, [r1] str r1, [r0] adds r2, 0x24 adds r2, r3 movs r0, 0x3 str r0, [r2] movs r0, 0x1 bl sub_801CF14 lsls r0, 24 cmp r0, 0 bne _08018358 bl sub_8090A34 cmp r0, 0x13 ble _08018366 _08018358: ldr r0, [r4] mov r2, r8 lsls r1, r2, 1 adds r0, 0x60 adds r0, r1 movs r1, 0x1 strh r1, [r0] _08018366: movs r0, 0x1 add r8, r0 ldr r4, _080183DC ldr r7, [r4] mov r2, r8 lsls r1, r2, 3 adds r2, r7, 0 adds r2, 0x20 adds r3, r2, r1 ldr r0, _080183E8 ldr r0, [r0] str r0, [r3] adds r6, r7, 0 adds r6, 0x24 adds r1, r6, r1 movs r3, 0x1 str r3, [r1] add r8, r3 mov r1, r8 lsls r0, r1, 3 adds r2, r0 movs r1, 0 str r1, [r2] adds r0, r6, r0 str r3, [r0] movs r5, 0 mov r12, r4 cmp r5, r8 bge _080183C0 adds r4, r7, 0 adds r2, r4, 0 adds r2, 0x60 adds r3, r6, 0 _080183A8: ldrh r0, [r2] cmp r0, 0 bne _080183B6 ldr r1, [r3] ldr r0, [r4, 0x14] cmp r1, r0 beq _08018410 _080183B6: adds r2, 0x2 adds r3, 0x8 adds r5, 0x1 cmp r5, r8 blt _080183A8 _080183C0: movs r5, 0 cmp r5, r8 bge _08018410 mov r2, r12 ldr r1, [r2] adds r0, r1, 0 adds r0, 0x60 ldrh r0, [r0] cmp r0, 0 bne _080183EC ldr r0, [r1, 0x24] str r0, [r1, 0x14] b _08018410 .align 2, 0 _080183DC: .4byte gUnknown_203B20C _080183E0: .4byte gUnknown_80D4958 _080183E4: .4byte gUnknown_80D4964 _080183E8: .4byte gUnknown_80D4934 _080183EC: adds r5, 0x1 cmp r5, r8 bge _08018410 mov r0, r12 ldr r2, [r0] lsls r0, r5, 1 adds r1, r2, 0 adds r1, 0x60 adds r1, r0 ldrh r0, [r1] cmp r0, 0 bne _080183EC lsls r0, r5, 3 adds r1, r2, 0 adds r1, 0x24 adds r1, r0 ldr r0, [r1] str r0, [r2, 0x14] _08018410: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80182E4 thumb_func_start sub_801841C sub_801841C: push {r4-r7,lr} ldr r4, _080184A0 ldr r0, [r4] adds r0, 0x60 movs r1, 0 movs r2, 0x10 bl MemoryFill16 ldr r1, [r4] ldr r0, _080184A4 ldr r0, [r0] str r0, [r1, 0x20] movs r0, 0x2 str r0, [r1, 0x24] ldr r0, [r1, 0xC] bl sub_801ADA0 lsls r0, 24 cmp r0, 0 bne _0801844C ldr r0, [r4] adds r0, 0x60 movs r1, 0x1 strh r1, [r0] _0801844C: ldr r2, [r4] movs r1, 0x1 ldr r0, _080184A8 ldr r0, [r0] str r0, [r2, 0x28] movs r0, 0x4 str r0, [r2, 0x2C] movs r5, 0x2 movs r0, 0 str r0, [r2, 0x30] str r1, [r2, 0x34] movs r3, 0 adds r6, r4, 0 mov r12, r2 mov r4, r12 adds r4, 0x60 adds r2, 0x24 _0801846E: ldrh r0, [r4] cmp r0, 0 bne _0801847E ldr r1, [r2] mov r7, r12 ldr r0, [r7, 0x18] cmp r1, r0 beq _080184CE _0801847E: adds r4, 0x2 adds r2, 0x8 adds r3, 0x1 cmp r3, r5 blt _0801846E movs r3, 0 cmp r3, r5 bge _080184CE ldr r1, [r6] adds r0, r1, 0 adds r0, 0x60 ldrh r0, [r0] cmp r0, 0 bne _080184AC ldr r0, [r1, 0x24] str r0, [r1, 0x18] b _080184CE .align 2, 0 _080184A0: .4byte gUnknown_203B20C _080184A4: .4byte gUnknown_80D4958 _080184A8: .4byte gUnknown_80D4970 _080184AC: adds r3, 0x1 cmp r3, r5 bge _080184CE ldr r2, [r6] lsls r0, r3, 1 adds r1, r2, 0 adds r1, 0x60 adds r1, r0 ldrh r0, [r1] cmp r0, 0 bne _080184AC lsls r0, r3, 3 adds r1, r2, 0 adds r1, 0x24 adds r1, r0 ldr r0, [r1] str r0, [r2, 0x18] _080184CE: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_801841C thumb_func_start sub_80184D4 sub_80184D4: push {r4-r7,lr} ldr r4, _08018554 ldr r0, [r4] adds r0, 0x60 movs r1, 0 movs r2, 0x10 bl MemoryFill16 ldr r1, [r4] ldr r0, _08018558 ldr r0, [r0] str r0, [r1, 0x20] movs r0, 0x3 str r0, [r1, 0x24] bl sub_8090A34 cmp r0, 0x13 ble _08018500 ldr r0, [r4] adds r0, 0x60 movs r1, 0x1 strh r1, [r0] _08018500: ldr r2, [r4] movs r1, 0x1 ldr r0, _0801855C ldr r0, [r0] str r0, [r2, 0x28] movs r0, 0x4 str r0, [r2, 0x2C] movs r5, 0x2 movs r0, 0 str r0, [r2, 0x30] str r1, [r2, 0x34] movs r3, 0 adds r6, r4, 0 mov r12, r2 mov r4, r12 adds r4, 0x60 adds r2, 0x24 _08018522: ldrh r0, [r4] cmp r0, 0 bne _08018532 ldr r1, [r2] mov r7, r12 ldr r0, [r7, 0x1C] cmp r1, r0 beq _08018582 _08018532: adds r4, 0x2 adds r2, 0x8 adds r3, 0x1 cmp r3, r5 blt _08018522 movs r3, 0 cmp r3, r5 bge _08018582 ldr r1, [r6] adds r0, r1, 0 adds r0, 0x60 ldrh r0, [r0] cmp r0, 0 bne _08018560 ldr r0, [r1, 0x24] str r0, [r1, 0x1C] b _08018582 .align 2, 0 _08018554: .4byte gUnknown_203B20C _08018558: .4byte gUnknown_80D4964 _0801855C: .4byte gUnknown_80D4970 _08018560: adds r3, 0x1 cmp r3, r5 bge _08018582 ldr r2, [r6] lsls r0, r3, 1 adds r1, r2, 0 adds r1, 0x60 adds r1, r0 ldrh r0, [r1] cmp r0, 0 bne _08018560 lsls r0, r3, 3 adds r1, r2, 0 adds r1, 0x24 adds r1, r0 ldr r0, [r1] str r0, [r2, 0x1C] _08018582: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80184D4 thumb_func_start sub_8018588 sub_8018588: push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] ldr r4, _080185C4 ldr r0, [r4] adds r0, 0x70 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _080185B4 ldr r0, [r4] adds r0, 0x70 mov r1, sp bl sub_8013114 ldr r1, [sp] cmp r1, 0x1 beq _080185B4 ldr r0, [r4] str r1, [r0, 0x14] _080185B4: ldr r0, [sp] cmp r0, 0x2 beq _080185CE cmp r0, 0x2 bgt _080185C8 cmp r0, 0x1 beq _08018610 b _08018616 .align 2, 0 _080185C4: .4byte gUnknown_203B20C _080185C8: cmp r0, 0x3 beq _080185EA b _08018616 _080185CE: bl sub_8090A34 cmp r0, 0 beq _080185F6 movs r0, 0 bl sub_801CF50 lsls r0, 24 cmp r0, 0 bne _080185F6 movs r0, 0x4 bl sub_8017F10 b _08018616 _080185EA: movs r0, 0x1 bl sub_801CF14 lsls r0, 24 cmp r0, 0 beq _08018608 _080185F6: ldr r0, _08018604 ldr r0, [r0] adds r0, 0x70 movs r1, 0x1 bl sub_8012EA4 b _08018616 .align 2, 0 _08018604: .4byte gUnknown_203B20C _08018608: movs r0, 0xA bl sub_8017F10 b _08018616 _08018610: movs r0, 0x3 bl sub_8017F10 _08018616: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_8018588 thumb_func_start sub_8018620 sub_8018620: push {r4-r7,lr} movs r0, 0x1 bl sub_801A6E8 cmp r0, 0x3 beq _0801863C cmp r0, 0x3 bhi _08018636 cmp r0, 0x2 beq _080186E8 b _080186F2 _08018636: cmp r0, 0x4 beq _080186C0 b _080186F2 _0801863C: bl sub_801AEA8 cmp r0, 0 beq _08018698 movs r5, 0 ldr r6, _0801868C movs r7, 0 _0801864A: adds r0, r5, 0 bl sub_801AED0 cmp r0, 0 beq _0801866A lsls r4, r5, 2 ldr r0, [r6] adds r0, r4 bl sub_80917B8 ldr r0, [r6] adds r0, r4 strb r7, [r0, 0x2] ldr r0, [r6] adds r0, r4 strb r7, [r0] _0801866A: adds r5, 0x1 cmp r5, 0x13 ble _0801864A bl sub_80910B4 bl sub_801AE84 bl sub_8090A34 cmp r0, 0 bne _08018690 bl sub_801A928 movs r0, 0x1 bl sub_8017F10 b _080186F2 .align 2, 0 _0801868C: .4byte gUnknown_203B460 _08018690: movs r0, 0x5 bl sub_8017F10 b _080186F2 _08018698: bl sub_801A8AC ldr r1, _080186B8 ldr r2, [r1] str r0, [r2, 0xC] ldr r1, _080186BC ldr r1, [r1] lsls r0, 2 adds r1, r0 ldr r0, [r1] str r0, [r2, 0x8] movs r0, 0x6 bl sub_8017F10 b _080186F2 .align 2, 0 _080186B8: .4byte gUnknown_203B20C _080186BC: .4byte gUnknown_203B460 _080186C0: bl sub_801A8AC ldr r1, _080186E0 ldr r2, [r1] str r0, [r2, 0xC] ldr r1, _080186E4 ldr r1, [r1] lsls r0, 2 adds r1, r0 ldr r0, [r1] str r0, [r2, 0x8] movs r0, 0x7 bl sub_8017F10 b _080186F2 .align 2, 0 _080186E0: .4byte gUnknown_203B20C _080186E4: .4byte gUnknown_203B460 _080186E8: bl sub_801A928 movs r0, 0x1 bl sub_8017F10 _080186F2: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8018620 thumb_func_start sub_80186F8 sub_80186F8: push {r4-r7,lr} sub sp, 0x4 movs r0, 0x1 bl sub_801CA08 cmp r0, 0x2 bne _08018708 b _08018838 _08018708: cmp r0, 0x2 bhi _08018714 cmp r0, 0x1 bne _08018712 b _08018844 _08018712: b _0801884A _08018714: cmp r0, 0x3 beq _0801871E cmp r0, 0x4 beq _0801880C b _0801884A _0801871E: bl sub_801CFB8 cmp r0, 0 beq _080187E0 movs r6, 0 mov r5, sp ldr r7, _0801876C _0801872C: lsls r0, r6, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl sub_801CFE0 cmp r0, 0 beq _080187B2 ldr r1, _08018770 ldr r0, [sp] ands r0, r1 orrs r0, r4 str r0, [sp] ldrb r0, [r5] bl sub_8090A60 lsls r0, 24 cmp r0, 0 beq _08018786 ldr r2, _08018774 ldr r1, [r2] ldrb r0, [r5] lsls r0, 1 adds r1, 0x50 adds r1, r0 ldrh r1, [r1] cmp r1, 0x63 bls _08018778 ldr r0, [sp] ands r0, r7 movs r1, 0xC6 lsls r1, 7 b _08018780 .align 2, 0 _0801876C: .4byte 0xffff00ff _08018770: .4byte 0xffffff00 _08018774: .4byte gUnknown_203B460 _08018778: lsls r1, 24 lsrs r1, 16 ldr r0, [sp] ands r0, r7 _08018780: orrs r0, r1 str r0, [sp] b _08018794 _08018786: ldr r0, [sp] ands r0, r7 movs r1, 0x80 lsls r1, 1 orrs r0, r1 str r0, [sp] ldr r2, _080187DC _08018794: ldr r2, [r2] ldrb r0, [r5] lsls r0, 1 adds r2, 0x50 adds r2, r0 ldr r0, [sp] lsrs r0, 8 lsls r0, 24 lsrs r0, 24 ldrh r1, [r2] subs r1, r0 strh r1, [r2] mov r0, sp bl sub_8091274 _080187B2: adds r6, 0x1 cmp r6, 0xEF ble _0801872C bl sub_80910B4 bl sub_801CF94 movs r0, 0x1 bl sub_801CF14 lsls r0, 24 cmp r0, 0 bne _08018838 bl sub_8090A34 cmp r0, 0x13 bgt _08018838 movs r0, 0xB bl sub_8017F10 b _0801884A .align 2, 0 _080187DC: .4byte gUnknown_203B460 _080187E0: bl sub_801CB24 ldr r4, _08018808 ldr r1, [r4] strb r0, [r1, 0x10] ldr r1, [r4] adds r0, r1, 0 adds r0, 0x8 ldrb r1, [r1, 0x10] movs r2, 0 bl sub_8090A8C ldr r1, [r4] movs r0, 0x1 strb r0, [r1, 0x9] movs r0, 0xD bl sub_8017F10 b _0801884A .align 2, 0 _08018808: .4byte gUnknown_203B20C _0801880C: bl sub_801CB24 ldr r4, _08018834 ldr r1, [r4] strb r0, [r1, 0x10] ldr r1, [r4] adds r0, r1, 0 adds r0, 0x8 ldrb r1, [r1, 0x10] movs r2, 0 bl sub_8090A8C ldr r1, [r4] movs r0, 0x1 strb r0, [r1, 0x9] movs r0, 0xE bl sub_8017F10 b _0801884A .align 2, 0 _08018834: .4byte gUnknown_203B20C _08018838: bl sub_801CBB8 movs r0, 0x1 bl sub_8017F10 b _0801884A _08018844: movs r0, 0 bl sub_801AD34 _0801884A: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80186F8 thumb_func_start sub_8018854 sub_8018854: push {r4,lr} sub sp, 0x4 movs r0, 0 bl sub_801CA08 ldr r4, _080188E0 ldr r0, [r4] adds r0, 0x70 bl sub_8012FD8 ldr r0, [r4] adds r0, 0xC0 bl sub_8013BBC cmp r0, 0x1 beq _080188F8 cmp r0, 0x1 bcc _080188FC cmp r0, 0x2 beq _080188F0 cmp r0, 0x3 bne _080188FC ldr r1, [r4] adds r0, r1, 0 adds r0, 0xC0 ldr r0, [r0] strb r0, [r1, 0x9] ldr r0, _080188E4 ldr r1, [r0] ldr r3, [r4] ldrb r0, [r3, 0xA] lsls r0, 1 adds r1, 0x50 adds r1, r0 ldrb r2, [r3, 0x9] ldrh r0, [r1] subs r0, r2 strh r0, [r1] ldrb r2, [r3, 0xA] ldr r1, _080188E8 ldr r0, [sp] ands r0, r1 orrs r0, r2 str r0, [sp] ldrb r1, [r3, 0x9] lsls r1, 8 ldr r2, _080188EC ands r0, r2 orrs r0, r1 str r0, [sp] mov r0, sp bl sub_8091274 movs r0, 0x1 bl sub_801CF14 lsls r0, 24 cmp r0, 0 bne _080188D2 bl sub_8090A34 cmp r0, 0x13 ble _080188F0 _080188D2: bl sub_801CBB8 movs r0, 0x1 bl sub_8017F10 b _080188FC .align 2, 0 _080188E0: .4byte gUnknown_203B20C _080188E4: .4byte gUnknown_203B460 _080188E8: .4byte 0xffffff00 _080188EC: .4byte 0xffff00ff _080188F0: movs r0, 0xB bl sub_8017F10 b _080188FC _080188F8: bl sub_8018280 _080188FC: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_8018854 thumb_func_start sub_8018904 sub_8018904: push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] bl sub_801A6E8 ldr r4, _08018944 ldr r0, [r4] adds r0, 0x70 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _08018934 ldr r0, [r4] adds r0, 0x70 mov r1, sp bl sub_8013114 ldr r1, [sp] cmp r1, 0x1 beq _08018934 ldr r0, [r4] str r1, [r0, 0x18] _08018934: ldr r0, [sp] cmp r0, 0x2 beq _0801894E cmp r0, 0x2 bgt _08018948 cmp r0, 0x1 beq _080189BA b _080189C0 .align 2, 0 _08018944: .4byte gUnknown_203B20C _08018948: cmp r0, 0x4 beq _080189AC b _080189C0 _0801894E: ldr r4, _08018978 ldr r0, [r4] ldrb r0, [r0, 0xA] bl sub_8091524 lsls r0, 24 cmp r0, 0 beq _0801896C ldr r0, [r4] ldr r0, [r0, 0xC] bl sub_801ADA0 lsls r0, 24 cmp r0, 0 bne _0801897C _0801896C: ldr r0, [r4] adds r0, 0x70 movs r1, 0x1 bl sub_8012EA4 b _080189C0 .align 2, 0 _08018978: .4byte gUnknown_203B20C _0801897C: ldr r0, [r4] adds r0, 0x8 bl sub_80917B8 ldr r0, [r4] ldr r0, [r0, 0xC] bl sub_80911F8 bl sub_80910B4 bl sub_8090A34 cmp r0, 0 bne _080189A4 bl sub_801A928 movs r0, 0x1 bl sub_8017F10 b _080189C0 _080189A4: movs r0, 0x5 bl sub_8017F10 b _080189C0 _080189AC: movs r0, 0 bl sub_8099690 movs r0, 0x7 bl sub_8017F10 b _080189C0 _080189BA: movs r0, 0x5 bl sub_8017F10 _080189C0: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_8018904 thumb_func_start sub_80189C8 sub_80189C8: push {r4,lr} sub sp, 0x8 movs r0, 0 str r0, [sp] bl sub_801CA08 ldr r4, _08018A08 ldr r0, [r4] adds r0, 0x70 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _080189F8 ldr r0, [r4] adds r0, 0x70 mov r1, sp bl sub_8013114 ldr r1, [sp] cmp r1, 0x1 beq _080189F8 ldr r0, [r4] str r1, [r0, 0x1C] _080189F8: ldr r0, [sp] cmp r0, 0x3 beq _08018A12 cmp r0, 0x3 bgt _08018A0C cmp r0, 0x1 beq _08018AB8 b _08018ABE .align 2, 0 _08018A08: .4byte gUnknown_203B20C _08018A0C: cmp r0, 0x4 beq _08018AB0 b _08018ABE _08018A12: bl sub_8090A34 cmp r0, 0x13 ble _08018A2C ldr r0, _08018A28 ldr r0, [r0] adds r0, 0x70 movs r1, 0x1 bl sub_8012EA4 b _08018ABE .align 2, 0 _08018A28: .4byte gUnknown_203B20C _08018A2C: ldr r4, _08018A44 ldr r0, [r4] ldrb r0, [r0, 0xA] bl sub_8090A60 lsls r0, 24 cmp r0, 0 beq _08018A48 movs r0, 0xC bl sub_8017F10 b _08018ABE .align 2, 0 _08018A44: .4byte gUnknown_203B20C _08018A48: ldr r0, _08018A9C ldr r1, [r0] ldr r3, [r4] ldrb r0, [r3, 0xA] lsls r0, 1 adds r1, 0x50 adds r1, r0 ldrb r2, [r3, 0x9] ldrh r0, [r1] subs r0, r2 strh r0, [r1] ldrb r2, [r3, 0xA] ldr r1, _08018AA0 ldr r0, [sp, 0x4] ands r0, r1 orrs r0, r2 str r0, [sp, 0x4] ldrb r1, [r3, 0x9] lsls r1, 8 ldr r2, _08018AA4 ands r0, r2 orrs r0, r1 str r0, [sp, 0x4] add r0, sp, 0x4 bl sub_8091274 movs r0, 0x1 bl sub_801CF14 lsls r0, 24 cmp r0, 0 bne _08018A90 bl sub_8090A34 cmp r0, 0x13 ble _08018AA8 _08018A90: bl sub_801CBB8 movs r0, 0x1 bl sub_8017F10 b _08018ABE .align 2, 0 _08018A9C: .4byte gUnknown_203B460 _08018AA0: .4byte 0xffffff00 _08018AA4: .4byte 0xffff00ff _08018AA8: movs r0, 0xB bl sub_8017F10 b _08018ABE _08018AB0: movs r0, 0xE bl sub_8017F10 b _08018ABE _08018AB8: movs r0, 0xB bl sub_8017F10 _08018ABE: add sp, 0x8 pop {r4} pop {r0} bx r0 thumb_func_end sub_80189C8 thumb_func_start sub_8018AC8 sub_8018AC8: push {lr} bl sub_801B410 cmp r0, 0x1 bls _08018AE0 cmp r0, 0x3 bhi _08018AE0 bl sub_801B450 movs r0, 0x5 bl sub_8017F10 _08018AE0: pop {r0} bx r0 thumb_func_end sub_8018AC8 thumb_func_start sub_8018AE4 sub_8018AE4: push {lr} bl sub_801B410 cmp r0, 0x1 bls _08018AFC cmp r0, 0x3 bhi _08018AFC bl sub_801B450 movs r0, 0xB bl sub_8017F10 _08018AFC: pop {r0} bx r0 thumb_func_end sub_8018AE4 thumb_func_start sub_8018B00 sub_8018B00: push {r4,r5,lr} adds r4, r0, 0 ldr r5, _08018B30 movs r0, 0xA4 lsls r0, 1 movs r1, 0x8 bl MemoryAlloc adds r1, r0, 0 str r1, [r5] movs r2, 0 str r2, [r1, 0x28] str r2, [r1, 0x2C] str r2, [r1, 0x30] str r4, [r1] cmp r4, 0x1 beq _08018B3A cmp r4, 0x1 bcc _08018B34 cmp r4, 0x2 beq _08018B44 cmp r4, 0x3 beq _08018B80 b _08018BAE .align 2, 0 _08018B30: .4byte gUnknown_203B210 _08018B34: movs r0, 0x1 strb r0, [r1, 0x4] b _08018B46 _08018B3A: strb r4, [r1, 0x4] ldr r0, [r5] adds r0, 0xE4 str r2, [r0] b _08018B50 _08018B44: strb r2, [r1, 0x4] _08018B46: ldr r0, [r5] adds r1, r0, 0 adds r1, 0xE4 adds r0, 0xD4 str r0, [r1] _08018B50: ldr r0, _08018B78 movs r5, 0xBE lsls r5, 1 adds r1, r5, 0 bl sub_808D8E0 ldr r4, _08018B7C adds r0, r4, 0 adds r1, r5, 0 bl sub_808D8E0 adds r0, r5, 0 bl sub_808D994 adds r1, r0, 0 subs r4, 0x50 adds r0, r4, 0 bl strcpy b _08018BAE .align 2, 0 _08018B78: .4byte gUnknown_202E5D8 _08018B7C: .4byte gUnknown_202E1C8 _08018B80: strb r2, [r1, 0x4] ldr r0, [r5] adds r0, 0xE4 str r2, [r0] ldr r0, _08018BF8 movs r5, 0xBE lsls r5, 1 adds r1, r5, 0 bl sub_808D8E0 ldr r4, _08018BFC adds r0, r4, 0 adds r1, r5, 0 bl sub_808D8E0 adds r0, r5, 0 bl sub_808D994 adds r1, r0, 0 subs r4, 0x50 adds r0, r4, 0 bl strcpy _08018BAE: movs r0, 0xBE lsls r0, 1 bl sub_808DDD0 ldr r2, _08018C00 ldr r3, [r2] adds r1, r3, 0 adds r1, 0xD4 str r0, [r1] adds r1, 0x4 ldr r0, [r0, 0x4] str r0, [r1] adds r0, r3, 0 adds r0, 0xE0 movs r1, 0 strb r1, [r0] ldr r0, [r2] adds r0, 0xE1 strb r1, [r0] ldr r0, [r2] adds r0, 0xE2 strb r1, [r0] ldr r1, [r2] adds r2, r1, 0 adds r2, 0xDC movs r0, 0x2 strh r0, [r2] adds r1, 0xDE movs r0, 0x8 strh r0, [r1] movs r0, 0 bl sub_8018D18 movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08018BF8: .4byte gUnknown_202E5D8 _08018BFC: .4byte gUnknown_202E1C8 _08018C00: .4byte gUnknown_203B210 thumb_func_end sub_8018B00 thumb_func_start sub_8018C04 sub_8018C04: push {lr} ldr r0, _08018C1C ldr r0, [r0] ldr r0, [r0, 0x8] cmp r0, 0x1F bhi _08018CE4 lsls r0, 2 ldr r1, _08018C20 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08018C1C: .4byte gUnknown_203B210 _08018C20: .4byte _08018C24 .align 2, 0 _08018C24: .4byte _08018CA4 .4byte _08018CA4 .4byte _08018CE4 .4byte _08018CE4 .4byte _08018CE0 .4byte _08018CE4 .4byte _08018CE4 .4byte _08018CE4 .4byte _08018CE4 .4byte _08018CE4 .4byte _08018CE4 .4byte _08018CE4 .4byte _08018CE4 .4byte _08018CE4 .4byte _08018CE4 .4byte _08018CE4 .4byte _08018CE4 .4byte _08018CE4 .4byte _08018CAA .4byte _08018CAA .4byte _08018CB6 .4byte _08018CD4 .4byte _08018CC2 .4byte _08018CE4 .4byte _08018CE4 .4byte _08018CE4 .4byte _08018CB0 .4byte _08018CB0 .4byte _08018CBC .4byte _08018CDA .4byte _08018CC8 .4byte _08018CCE _08018CA4: bl sub_8019730 b _08018CE8 _08018CAA: bl sub_80199CC b _08018CE8 _08018CB0: bl sub_8019B08 b _08018CE8 _08018CB6: bl sub_8019BBC b _08018CE8 _08018CBC: bl sub_8019C78 b _08018CE8 _08018CC2: bl sub_8019850 b _08018CE8 _08018CC8: bl sub_80198E8 b _08018CE8 _08018CCE: bl sub_8019944 b _08018CE8 _08018CD4: bl sub_8019D30 b _08018CE8 _08018CDA: bl sub_8019D4C b _08018CE8 _08018CE0: movs r0, 0x3 b _08018CEA _08018CE4: bl sub_8019D68 _08018CE8: movs r0, 0 _08018CEA: pop {r1} bx r1 thumb_func_end sub_8018C04 thumb_func_start sub_8018CF0 sub_8018CF0: push {r4,lr} ldr r4, _08018D14 ldr r0, [r4] cmp r0, 0 beq _08018D0C adds r0, 0xD4 ldr r0, [r0] bl CloseFile ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _08018D0C: pop {r4} pop {r0} bx r0 .align 2, 0 _08018D14: .4byte gUnknown_203B210 thumb_func_end sub_8018CF0 thumb_func_start sub_8018D18 sub_8018D18: push {lr} ldr r1, _08018D2C ldr r1, [r1] str r0, [r1, 0x8] bl sub_8018D30 bl sub_8018E88 pop {r0} bx r0 .align 2, 0 _08018D2C: .4byte gUnknown_203B210 thumb_func_end sub_8018D18 thumb_func_start sub_8018D30 sub_8018D30: push {r4-r7,lr} ldr r4, _08018D54 ldr r0, [r4] adds r0, 0xE8 bl sub_8006518 ldr r0, [r4] ldr r0, [r0, 0x8] subs r0, 0x12 cmp r0, 0xA bls _08018D48 b _08018E44 _08018D48: lsls r0, 2 ldr r1, _08018D58 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08018D54: .4byte gUnknown_203B210 _08018D58: .4byte _08018D5C .align 2, 0 _08018D5C: .4byte _08018D88 .4byte _08018D88 .4byte _08018E24 .4byte _08018E44 .4byte _08018E44 .4byte _08018E44 .4byte _08018E44 .4byte _08018E44 .4byte _08018DDC .4byte _08018DDC .4byte _08018E24 _08018D88: ldr r3, _08018DCC ldr r1, [r3] ldr r2, _08018DD0 adds r1, 0xE8 adds r0, r2, 0 ldm r0!, {r4-r6} stm r1!, {r4-r6} ldm r0!, {r4,r5,r7} stm r1!, {r4,r5,r7} ldr r0, [r3] movs r6, 0x8C lsls r6, 1 adds r0, r6 ldm r2!, {r1,r4,r7} stm r0!, {r1,r4,r7} ldm r2!, {r5-r7} stm r0!, {r5-r7} ldr r1, [r3] adds r1, 0xE8 ldr r0, _08018DD4 ldm r0!, {r2,r4,r5} stm r1!, {r2,r4,r5} ldm r0!, {r2,r6,r7} stm r1!, {r2,r6,r7} ldr r1, [r3] movs r3, 0x80 lsls r3, 1 adds r1, r3 ldr r0, _08018DD8 ldm r0!, {r4-r6} stm r1!, {r4-r6} ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} b _08018E68 .align 2, 0 _08018DCC: .4byte gUnknown_203B210 _08018DD0: .4byte gUnknown_80DB840 _08018DD4: .4byte gUnknown_80DB870 _08018DD8: .4byte gUnknown_80DB888 _08018DDC: ldr r3, _08018E18 ldr r1, [r3] ldr r2, _08018E1C adds r1, 0xE8 adds r0, r2, 0 ldm r0!, {r4-r6} stm r1!, {r4-r6} ldm r0!, {r4,r5,r7} stm r1!, {r4,r5,r7} ldr r1, [r3] movs r4, 0x80 lsls r4, 1 adds r1, r4 adds r0, r2, 0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} ldr r0, [r3] movs r6, 0x8C lsls r6, 1 adds r0, r6 ldm r2!, {r1,r5,r7} stm r0!, {r1,r5,r7} ldm r2!, {r1,r6,r7} stm r0!, {r1,r6,r7} ldr r1, [r3] adds r1, r4 ldr r0, _08018E20 b _08018E30 .align 2, 0 _08018E18: .4byte gUnknown_203B210 _08018E1C: .4byte gUnknown_80DB840 _08018E20: .4byte gUnknown_80DB888 _08018E24: ldr r0, _08018E3C ldr r1, [r0] movs r0, 0x8C lsls r0, 1 adds r1, r0 ldr r0, _08018E40 _08018E30: ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r5-r7} stm r1!, {r5-r7} b _08018E68 .align 2, 0 _08018E3C: .4byte gUnknown_203B210 _08018E40: .4byte gUnknown_80DB858 _08018E44: ldr r0, _08018E80 mov r12, r0 ldr r4, _08018E84 movs r3, 0 movs r2, 0x3 _08018E4E: mov r5, r12 ldr r1, [r5] adds r1, r3 adds r1, 0xE8 adds r0, r4, 0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} adds r3, 0x18 subs r2, 0x1 cmp r2, 0 bge _08018E4E _08018E68: bl sub_8004914 ldr r0, _08018E80 ldr r0, [r0] adds r0, 0xE8 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08018E80: .4byte gUnknown_203B210 _08018E84: .4byte gUnknown_80DB840 thumb_func_end sub_8018D30 thumb_func_start sub_8018E88 sub_8018E88: push {r4,lr} sub sp, 0x14 ldr r1, _08018EA4 ldr r0, [r1] ldr r0, [r0, 0x8] adds r4, r1, 0 cmp r0, 0x20 bls _08018E9A b _080194E8 _08018E9A: lsls r0, 2 ldr r1, _08018EA8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08018EA4: .4byte gUnknown_203B210 _08018EA8: .4byte _08018EAC .align 2, 0 _08018EAC: .4byte _08018F30 .4byte _08018F58 .4byte _08018FA8 .4byte _08018FD0 .4byte _080194E8 .4byte _08018FFC .4byte _08019024 .4byte _0801904C .4byte _08019070 .4byte _08019094 .4byte _080190B8 .4byte _080190DC .4byte _08019104 .4byte _0801912C .4byte _08019164 .4byte _0801918C .4byte _080191B4 .4byte _08019294 .4byte _080191DC .4byte _080191FA .4byte _08019218 .4byte _080193F4 .4byte _08019254 .4byte _08019314 .4byte _0801933C .4byte _080193FE .4byte _08019364 .4byte _08019372 .4byte _08019380 .4byte _080193F4 .4byte _080193B4 .4byte _0801946C .4byte _080194C0 _08018F30: bl sub_8019DAC bl sub_80194F8 movs r0, 0 bl sub_8019E04 ldr r2, _08018F50 ldr r0, _08018F54 ldr r4, [r0] ldr r1, [r4] movs r0, 0x5C muls r0, r1 adds r0, r2 b _08018F76 .align 2, 0 _08018F50: .4byte gUnknown_80D5EC8 _08018F54: .4byte gUnknown_203B210 _08018F58: bl sub_8019DAC bl sub_80194F8 movs r0, 0 bl sub_8019E04 ldr r1, _08018FA0 ldr r0, _08018FA4 ldr r4, [r0] ldr r2, [r4] movs r0, 0x5C muls r0, r2 adds r1, 0x4 adds r0, r1 _08018F76: ldr r0, [r0] ldr r2, [r4, 0x28] adds r3, r4, 0 adds r3, 0x34 adds r1, r4, 0 adds r1, 0x74 str r1, [sp] movs r1, 0x4 str r1, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] adds r1, r4, 0 adds r1, 0xE4 ldr r1, [r1] str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 bl sub_8014248 b _080194E8 .align 2, 0 _08018FA0: .4byte gUnknown_80D5EC8 _08018FA4: .4byte gUnknown_203B210 _08018FA8: ldr r1, [r4] movs r0, 0x1 str r0, [r1, 0xC] movs r0, 0 bl sub_8019E04 ldr r1, _08018FCC ldr r2, [r4] ldr r3, [r2] movs r0, 0x5C muls r0, r3 adds r1, 0x58 adds r0, r1 ldr r0, [r0] adds r2, 0xE4 ldr r2, [r2] b _08019454 .align 2, 0 _08018FCC: .4byte gUnknown_80D5EC8 _08018FD0: ldr r1, [r4] movs r0, 0x4 str r0, [r1, 0xC] movs r0, 0 bl sub_8019E04 ldr r1, _08018FF4 ldr r2, [r4] ldr r3, [r2] movs r0, 0x5C muls r0, r3 adds r1, 0x8 adds r0, r1 ldr r0, [r0] adds r2, 0xE4 ldr r2, [r2] ldr r3, _08018FF8 b _08019456 .align 2, 0 _08018FF4: .4byte gUnknown_80D5EC8 _08018FF8: .4byte 0x0000030d _08018FFC: ldr r1, [r4] movs r0, 0x1 str r0, [r1, 0xC] movs r0, 0 bl sub_8019E04 ldr r1, _08019020 ldr r2, [r4] ldr r3, [r2] movs r0, 0x5C muls r0, r3 adds r1, 0x30 adds r0, r1 ldr r0, [r0] adds r2, 0xE4 ldr r2, [r2] b _08019454 .align 2, 0 _08019020: .4byte gUnknown_80D5EC8 _08019024: ldr r1, [r4] movs r0, 0x10 str r0, [r1, 0xC] movs r0, 0x1 bl sub_8019E04 ldr r1, _08019048 ldr r2, [r4] ldr r3, [r2] movs r0, 0x5C muls r0, r3 adds r1, 0x34 adds r0, r1 ldr r0, [r0] adds r2, 0xE4 ldr r2, [r2] b _08019454 .align 2, 0 _08019048: .4byte gUnknown_80D5EC8 _0801904C: ldr r1, [r4] movs r0, 0x1 str r0, [r1, 0xC] bl sub_8019E04 ldr r1, _0801906C ldr r2, [r4] ldr r3, [r2] movs r0, 0x5C muls r0, r3 adds r1, 0x38 adds r0, r1 ldr r0, [r0] adds r2, 0xE4 ldr r2, [r2] b _08019454 .align 2, 0 _0801906C: .4byte gUnknown_80D5EC8 _08019070: ldr r1, [r4] movs r0, 0x1 str r0, [r1, 0xC] bl sub_8019E04 ldr r1, _08019090 ldr r2, [r4] ldr r3, [r2] movs r0, 0x5C muls r0, r3 adds r1, 0x3C adds r0, r1 ldr r0, [r0] adds r2, 0xE4 ldr r2, [r2] b _08019454 .align 2, 0 _08019090: .4byte gUnknown_80D5EC8 _08019094: ldr r1, [r4] movs r0, 0x1 str r0, [r1, 0xC] bl sub_8019E04 ldr r1, _080190B4 ldr r2, [r4] ldr r3, [r2] movs r0, 0x5C muls r0, r3 adds r1, 0x40 adds r0, r1 ldr r0, [r0] adds r2, 0xE4 ldr r2, [r2] b _08019454 .align 2, 0 _080190B4: .4byte gUnknown_80D5EC8 _080190B8: ldr r1, [r4] movs r0, 0x1 str r0, [r1, 0xC] bl sub_8019E04 ldr r1, _080190D8 ldr r2, [r4] ldr r3, [r2] movs r0, 0x5C muls r0, r3 adds r1, 0x44 adds r0, r1 ldr r0, [r0] adds r2, 0xE4 ldr r2, [r2] b _08019454 .align 2, 0 _080190D8: .4byte gUnknown_80D5EC8 _080190DC: ldr r1, [r4] movs r0, 0x1 str r0, [r1, 0xC] movs r0, 0 bl sub_8019E04 ldr r1, _08019100 ldr r2, [r4] ldr r3, [r2] movs r0, 0x5C muls r0, r3 adds r1, 0x48 adds r0, r1 ldr r0, [r0] adds r2, 0xE4 ldr r2, [r2] b _08019454 .align 2, 0 _08019100: .4byte gUnknown_80D5EC8 _08019104: ldr r1, [r4] movs r0, 0x10 str r0, [r1, 0xC] movs r0, 0x1 bl sub_8019E04 ldr r1, _08019128 ldr r2, [r4] ldr r3, [r2] movs r0, 0x5C muls r0, r3 adds r1, 0x4C adds r0, r1 ldr r0, [r0] adds r2, 0xE4 ldr r2, [r2] b _08019454 .align 2, 0 _08019128: .4byte gUnknown_80D5EC8 _0801912C: ldr r0, _0801915C ldr r1, [r4] adds r1, 0x1C movs r2, 0 bl sub_8090E14 ldr r1, [r4] movs r0, 0x18 str r0, [r1, 0xC] movs r0, 0x1 bl sub_8019E04 ldr r1, _08019160 ldr r2, [r4] ldr r3, [r2] movs r0, 0x5C muls r0, r3 adds r1, 0x50 adds r0, r1 ldr r0, [r0] adds r2, 0xE4 ldr r2, [r2] b _08019454 .align 2, 0 _0801915C: .4byte gUnknown_202DE58 _08019160: .4byte gUnknown_80D5EC8 _08019164: ldr r1, [r4] movs r0, 0x18 str r0, [r1, 0xC] movs r0, 0x1 bl sub_8019E04 ldr r1, _08019188 ldr r2, [r4] ldr r3, [r2] movs r0, 0x5C muls r0, r3 adds r1, 0x54 adds r0, r1 ldr r0, [r0] adds r2, 0xE4 ldr r2, [r2] b _08019454 .align 2, 0 _08019188: .4byte gUnknown_80D5EC8 _0801918C: ldr r1, [r4] movs r0, 0x12 str r0, [r1, 0xC] movs r0, 0 bl sub_8019E04 ldr r1, _080191B0 ldr r2, [r4] ldr r3, [r2] movs r0, 0x5C muls r0, r3 adds r1, 0xC adds r0, r1 ldr r0, [r0] adds r2, 0xE4 ldr r2, [r2] b _08019454 .align 2, 0 _080191B0: .4byte gUnknown_80D5EC8 _080191B4: ldr r1, [r4] movs r0, 0x13 str r0, [r1, 0xC] movs r0, 0 bl sub_8019E04 ldr r1, _080191D8 ldr r2, [r4] ldr r3, [r2] movs r0, 0x5C muls r0, r3 adds r1, 0x10 adds r0, r1 ldr r0, [r0] adds r2, 0xE4 ldr r2, [r2] b _08019454 .align 2, 0 _080191D8: .4byte gUnknown_80D5EC8 _080191DC: ldr r0, [r4] ldrb r0, [r0, 0x4] cmp r0, 0 beq _080191EC movs r0, 0x3 bl sub_8019E40 b _080191F2 _080191EC: movs r0, 0x3 bl sub_801A20C _080191F2: movs r0, 0 bl sub_801AD34 b _08019378 _080191FA: ldr r0, [r4] ldrb r0, [r0, 0x4] cmp r0, 0 beq _0801920A movs r0, 0x1 bl sub_8019FCC b _08019210 _0801920A: movs r0, 0x1 bl sub_801A398 _08019210: movs r0, 0 bl sub_801AD34 b _08019378 _08019218: ldr r0, [r4] ldrb r0, [r0, 0x4] cmp r0, 0 beq _08019226 bl sub_801A0D8 b _0801922A _08019226: bl sub_801A4A4 _0801922A: movs r0, 0 bl sub_801AD34 movs r0, 0x1 bl sub_8016C40 bl sub_80195C0 ldr r0, _08019250 ldr r2, [r0] adds r0, r2, 0 adds r0, 0x84 adds r1, r2, 0 adds r1, 0x34 adds r3, r2, 0 adds r3, 0x74 ldr r2, [r2, 0x30] b _080193A0 .align 2, 0 _08019250: .4byte gUnknown_203B210 _08019254: bl sub_8019700 ldr r0, _08019284 ldr r4, _08019288 ldr r1, [r4] adds r1, 0x1C movs r2, 0 bl sub_8090E14 ldr r1, _0801928C ldr r0, [r4] ldr r0, [r0, 0x10] str r0, [r1] movs r0, 0 bl sub_8019E04 ldr r1, _08019290 ldr r4, [r4] ldr r2, [r4] movs r0, 0x5C muls r0, r2 adds r1, 0x14 b _0801948C .align 2, 0 _08019284: .4byte gUnknown_202DE58 _08019288: .4byte gUnknown_203B210 _0801928C: .4byte gUnknown_202DE30 _08019290: .4byte gUnknown_80D5EC8 _08019294: bl sub_8019D8C cmp r0, 0 bne _080192C0 ldr r0, _080192AC ldr r0, [r0] ldrb r0, [r0, 0x4] cmp r0, 0 beq _080192B0 bl sub_801A010 b _080192B4 .align 2, 0 _080192AC: .4byte gUnknown_203B210 _080192B0: bl sub_801A3DC _080192B4: ldr r0, _080192BC ldr r1, [r0] movs r0, 0xB b _080192F2 .align 2, 0 _080192BC: .4byte gUnknown_203B210 _080192C0: bl sub_8090A34 cmp r0, 0x13 ble _080192EC ldr r0, _080192D8 ldr r0, [r0] ldrb r0, [r0, 0x4] cmp r0, 0 beq _080192DC bl sub_801A010 b _080192E0 .align 2, 0 _080192D8: .4byte gUnknown_203B210 _080192DC: bl sub_801A3DC _080192E0: ldr r0, _080192E8 ldr r1, [r0] movs r0, 0x1 b _080192F2 .align 2, 0 _080192E8: .4byte gUnknown_203B210 _080192EC: ldr r0, _0801930C ldr r1, [r0] movs r0, 0x10 _080192F2: str r0, [r1, 0xC] movs r0, 0 bl sub_8019E04 ldr r2, _08019310 ldr r0, _0801930C ldr r1, [r0] ldr r3, [r1] movs r0, 0x5C muls r0, r3 adds r2, 0x18 b _0801944C .align 2, 0 _0801930C: .4byte gUnknown_203B210 _08019310: .4byte gUnknown_80D5EC8 _08019314: ldr r1, [r4] movs r0, 0x1A str r0, [r1, 0xC] movs r0, 0 bl sub_8019E04 ldr r1, _08019338 ldr r2, [r4] ldr r3, [r2] movs r0, 0x5C muls r0, r3 adds r1, 0x1C adds r0, r1 ldr r0, [r0] adds r2, 0xE4 ldr r2, [r2] b _08019454 .align 2, 0 _08019338: .4byte gUnknown_80D5EC8 _0801933C: ldr r1, [r4] movs r0, 0x1B str r0, [r1, 0xC] movs r0, 0 bl sub_8019E04 ldr r1, _08019360 ldr r2, [r4] ldr r3, [r2] movs r0, 0x5C muls r0, r3 adds r1, 0x20 adds r0, r1 ldr r0, [r0] adds r2, 0xE4 ldr r2, [r2] b _08019454 .align 2, 0 _08019360: .4byte gUnknown_80D5EC8 _08019364: movs r0, 0x4 movs r1, 0x3 movs r2, 0 movs r3, 0xA bl sub_801A5D8 b _08019378 _08019372: movs r0, 0x1 bl sub_801A8D0 _08019378: movs r0, 0x1 bl sub_8016C40 b _080194E8 _08019380: bl sub_801A9E0 movs r0, 0x1 bl sub_8016C40 bl sub_8019660 ldr r0, _080193B0 ldr r2, [r0] adds r0, r2, 0 adds r0, 0x84 adds r1, r2, 0 adds r1, 0x34 adds r3, r2, 0 adds r3, 0x74 ldr r2, [r2, 0x2C] _080193A0: str r2, [sp] movs r2, 0x2 str r2, [sp, 0x4] movs r2, 0 bl sub_8012D60 b _080194E8 .align 2, 0 _080193B0: .4byte gUnknown_203B210 _080193B4: bl sub_8019700 ldr r0, _080193E4 ldr r4, _080193E8 ldr r1, [r4] adds r1, 0x1C movs r2, 0 bl sub_8090E14 ldr r1, _080193EC ldr r0, [r4] ldr r0, [r0, 0x10] str r0, [r1] movs r0, 0 bl sub_8019E04 ldr r1, _080193F0 ldr r4, [r4] ldr r2, [r4] movs r0, 0x5C muls r0, r2 adds r1, 0x24 b _0801948C .align 2, 0 _080193E4: .4byte gUnknown_202DE58 _080193E8: .4byte gUnknown_203B210 _080193EC: .4byte gUnknown_202DE30 _080193F0: .4byte gUnknown_80D5EC8 _080193F4: ldr r0, [r4] adds r0, 0x1C bl sub_801B3C0 b _080194E8 _080193FE: bl sub_8090A34 cmp r0, 0 beq _08019418 ldr r0, _08019424 ldr r0, [r0] movs r1, 0x98 lsls r1, 2 adds r0, r1 ldr r1, [r0] ldr r0, _08019428 cmp r1, r0 ble _08019430 _08019418: bl sub_801A928 ldr r0, _0801942C ldr r1, [r0] movs r0, 0x1 b _08019436 .align 2, 0 _08019424: .4byte gUnknown_203B460 _08019428: .4byte 0x0001869e _0801942C: .4byte gUnknown_203B210 _08019430: ldr r0, _08019460 ldr r1, [r0] movs r0, 0x18 _08019436: str r0, [r1, 0xC] movs r0, 0 bl sub_8019E04 ldr r2, _08019464 ldr r0, _08019460 ldr r1, [r0] ldr r3, [r1] movs r0, 0x5C muls r0, r3 adds r2, 0x2C _0801944C: adds r0, r2 ldr r0, [r0] adds r1, 0xE4 ldr r2, [r1] _08019454: ldr r3, _08019468 _08019456: movs r1, 0 bl sub_80141B4 b _080194E8 .align 2, 0 _08019460: .4byte gUnknown_203B210 _08019464: .4byte gUnknown_80D5EC8 _08019468: .4byte 0x0000010d _0801946C: bl sub_8019700 ldr r1, _080194B4 ldr r4, _080194B8 ldr r0, [r4] ldr r0, [r0, 0x18] str r0, [r1] movs r0, 0 bl sub_8019E04 ldr r1, _080194BC ldr r4, [r4] ldr r2, [r4] movs r0, 0x5C muls r0, r2 adds r1, 0x28 _0801948C: adds r0, r1 ldr r0, [r0] adds r3, r4, 0 adds r3, 0x34 movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] adds r4, 0xE4 ldr r1, [r4] str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 movs r2, 0x5 bl sub_8014248 b _080194E8 .align 2, 0 _080194B4: .4byte gUnknown_202DE30 _080194B8: .4byte gUnknown_203B210 _080194BC: .4byte gUnknown_80D5EC8 _080194C0: ldr r1, [r4] movs r0, 0x1 str r0, [r1, 0xC] movs r0, 0 bl sub_8019E04 ldr r1, _080194F0 ldr r2, [r4] ldr r3, [r2] movs r0, 0x5C muls r0, r3 adds r1, 0x2C adds r0, r1 ldr r0, [r0] adds r2, 0xE4 ldr r2, [r2] ldr r3, _080194F4 movs r1, 0 bl sub_80141B4 _080194E8: add sp, 0x14 pop {r4} pop {r0} bx r0 .align 2, 0 _080194F0: .4byte gUnknown_80D5EC8 _080194F4: .4byte 0x0000010d thumb_func_end sub_8018E88 thumb_func_start sub_80194F8 sub_80194F8: push {r4-r7,lr} ldr r4, _08019580 ldr r0, [r4] adds r0, 0x74 movs r1, 0 movs r2, 0x10 bl MemoryFill16 ldr r3, [r4] movs r2, 0 ldr r0, _08019584 ldr r0, [r0] str r0, [r3, 0x34] movs r0, 0x2 str r0, [r3, 0x38] movs r1, 0x1 ldr r0, _08019588 ldr r0, [r0] str r0, [r3, 0x3C] movs r0, 0x3 str r0, [r3, 0x40] ldr r0, _0801958C str r0, [r3, 0x44] movs r0, 0x4 str r0, [r3, 0x48] ldr r0, _08019590 ldr r0, [r0] str r0, [r3, 0x4C] movs r0, 0x7 str r0, [r3, 0x50] ldr r0, _08019594 ldr r0, [r0] str r0, [r3, 0x54] str r1, [r3, 0x58] movs r6, 0x5 str r2, [r3, 0x5C] str r1, [r3, 0x60] movs r5, 0 mov r12, r3 adds r3, 0x38 mov r2, r12 adds r2, 0x74 _0801954C: ldrh r0, [r2] cmp r0, 0 bne _0801955C ldr r1, [r3] mov r7, r12 ldr r0, [r7, 0x28] cmp r1, r0 beq _080195BA _0801955C: adds r3, 0x8 adds r2, 0x2 adds r5, 0x1 cmp r5, r6 blt _0801954C movs r5, 0 cmp r5, r6 bge _080195BA ldr r1, [r4] adds r0, r1, 0 adds r0, 0x74 ldrh r0, [r0] cmp r0, 0 bne _08019598 ldr r0, [r1, 0x38] str r0, [r1, 0x28] b _080195BA .align 2, 0 _08019580: .4byte gUnknown_203B210 _08019584: .4byte gUnknown_80D4978 _08019588: .4byte gUnknown_80D4984 _0801958C: .4byte gUnknown_80DB8A0 _08019590: .4byte gUnknown_80D4970 _08019594: .4byte gUnknown_80D4934 _08019598: adds r5, 0x1 cmp r5, r6 bge _080195BA ldr r2, [r4] lsls r0, r5, 1 adds r1, r2, 0 adds r1, 0x74 adds r1, r0 ldrh r0, [r1] cmp r0, 0 bne _08019598 lsls r0, r5, 3 adds r1, r2, 0 adds r1, 0x38 adds r1, r0 ldr r0, [r1] str r0, [r2, 0x28] _080195BA: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80194F8 thumb_func_start sub_80195C0 sub_80195C0: push {r4-r7,lr} ldr r4, _0801962C ldr r0, [r4] adds r0, 0x74 movs r1, 0 movs r2, 0x10 bl MemoryFill16 ldr r3, [r4] movs r2, 0 ldr r0, _08019630 ldr r0, [r0] str r0, [r3, 0x34] movs r0, 0x2 str r0, [r3, 0x38] movs r1, 0x1 ldr r0, _08019634 ldr r0, [r0] str r0, [r3, 0x3C] movs r0, 0x7 str r0, [r3, 0x40] movs r6, 0x2 str r2, [r3, 0x44] str r1, [r3, 0x48] movs r5, 0 mov r12, r3 adds r3, 0x38 mov r2, r12 adds r2, 0x74 _080195FA: ldrh r0, [r2] cmp r0, 0 bne _0801960A ldr r1, [r3] mov r7, r12 ldr r0, [r7, 0x30] cmp r1, r0 beq _0801965A _0801960A: adds r3, 0x8 adds r2, 0x2 adds r5, 0x1 cmp r5, r6 blt _080195FA movs r5, 0 cmp r5, r6 bge _0801965A ldr r1, [r4] adds r0, r1, 0 adds r0, 0x74 ldrh r0, [r0] cmp r0, 0 bne _08019638 ldr r0, [r1, 0x38] str r0, [r1, 0x30] b _0801965A .align 2, 0 _0801962C: .4byte gUnknown_203B210 _08019630: .4byte gUnknown_80D4978 _08019634: .4byte gUnknown_80D4970 _08019638: adds r5, 0x1 cmp r5, r6 bge _0801965A ldr r2, [r4] lsls r0, r5, 1 adds r1, r2, 0 adds r1, 0x74 adds r1, r0 ldrh r0, [r1] cmp r0, 0 bne _08019638 lsls r0, r5, 3 adds r1, r2, 0 adds r1, 0x38 adds r1, r0 ldr r0, [r1] str r0, [r2, 0x30] _0801965A: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80195C0 thumb_func_start sub_8019660 sub_8019660: push {r4-r7,lr} ldr r4, _080196CC ldr r0, [r4] adds r0, 0x74 movs r1, 0 movs r2, 0x10 bl MemoryFill16 ldr r3, [r4] movs r2, 0 ldr r0, _080196D0 ldr r0, [r0] str r0, [r3, 0x34] movs r0, 0x3 str r0, [r3, 0x38] movs r1, 0x1 ldr r0, _080196D4 ldr r0, [r0] str r0, [r3, 0x3C] movs r0, 0x7 str r0, [r3, 0x40] movs r6, 0x2 str r2, [r3, 0x44] str r1, [r3, 0x48] movs r5, 0 mov r12, r3 adds r3, 0x38 mov r2, r12 adds r2, 0x74 _0801969A: ldrh r0, [r2] cmp r0, 0 bne _080196AA ldr r1, [r3] mov r7, r12 ldr r0, [r7, 0x2C] cmp r1, r0 beq _080196FA _080196AA: adds r3, 0x8 adds r2, 0x2 adds r5, 0x1 cmp r5, r6 blt _0801969A movs r5, 0 cmp r5, r6 bge _080196FA ldr r1, [r4] adds r0, r1, 0 adds r0, 0x74 ldrh r0, [r0] cmp r0, 0 bne _080196D8 ldr r0, [r1, 0x38] str r0, [r1, 0x2C] b _080196FA .align 2, 0 _080196CC: .4byte gUnknown_203B210 _080196D0: .4byte gUnknown_80D4984 _080196D4: .4byte gUnknown_80D4970 _080196D8: adds r5, 0x1 cmp r5, r6 bge _080196FA ldr r2, [r4] lsls r0, r5, 1 adds r1, r2, 0 adds r1, 0x74 adds r1, r0 ldrh r0, [r1] cmp r0, 0 bne _080196D8 lsls r0, r5, 3 adds r1, r2, 0 adds r1, 0x38 adds r1, r0 ldr r0, [r1] str r0, [r2, 0x2C] _080196FA: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8019660 thumb_func_start sub_8019700 sub_8019700: ldr r0, _08019724 ldr r1, [r0] movs r3, 0 ldr r0, _08019728 ldr r0, [r0] str r0, [r1, 0x34] movs r0, 0x5 str r0, [r1, 0x38] movs r2, 0x1 ldr r0, _0801972C ldr r0, [r0] str r0, [r1, 0x3C] movs r0, 0x6 str r0, [r1, 0x40] str r3, [r1, 0x44] str r2, [r1, 0x48] bx lr .align 2, 0 _08019724: .4byte gUnknown_203B210 _08019728: .4byte gUnknown_80D4920 _0801972C: .4byte gUnknown_80D4928 thumb_func_end sub_8019700 thumb_func_start sub_8019730 sub_8019730: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 beq _08019740 b _0801984A _08019740: ldr r1, [sp] cmp r1, 0x1 beq _0801974C ldr r0, _08019760 ldr r0, [r0] str r1, [r0, 0x28] _0801974C: ldr r0, [sp] subs r0, 0x1 cmp r0, 0x6 bls _08019756 b _0801984A _08019756: lsls r0, 2 ldr r1, _08019764 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08019760: .4byte gUnknown_203B210 _08019764: .4byte _08019768 .align 2, 0 _08019768: .4byte _08019844 .4byte _08019784 .4byte _080197AC .4byte _080197E4 .4byte _0801984A .4byte _0801984A .4byte _0801983C _08019784: bl sub_8019D8C cmp r0, 0 bne _08019794 movs r0, 0x5 bl sub_8018D18 b _0801984A _08019794: bl sub_8090A34 cmp r0, 0x13 ble _080197A4 movs r0, 0xA bl sub_8018D18 b _0801984A _080197A4: movs r0, 0xF bl sub_8018D18 b _0801984A _080197AC: bl sub_8090A34 cmp r0, 0 beq _080197EC ldr r0, _080197D8 ldr r0, [r0] ldr r0, [r0, 0x14] cmp r0, 0 beq _080197FE ldr r0, _080197DC ldr r0, [r0] movs r1, 0x98 lsls r1, 2 adds r0, r1 ldr r1, [r0] ldr r0, _080197E0 cmp r1, r0 bgt _08019822 movs r0, 0x17 bl sub_8018D18 b _0801984A .align 2, 0 _080197D8: .4byte gUnknown_203B210 _080197DC: .4byte gUnknown_203B460 _080197E0: .4byte 0x0001869e _080197E4: bl sub_8090A34 cmp r0, 0 bne _080197F4 _080197EC: movs r0, 0x9 bl sub_8018D18 b _0801984A _080197F4: ldr r0, _08019808 ldr r1, [r0] ldr r0, [r1, 0x14] cmp r0, 0 bne _0801980C _080197FE: movs r0, 0x8 bl sub_8018D18 b _0801984A .align 2, 0 _08019808: .4byte gUnknown_203B210 _0801980C: ldr r0, _0801982C ldr r0, [r0] movs r2, 0x98 lsls r2, 2 adds r0, r2 ldr r1, [r1, 0x18] ldr r0, [r0] adds r1, r0 ldr r0, _08019830 cmp r1, r0 ble _08019834 _08019822: movs r0, 0x7 bl sub_8018D18 b _0801984A .align 2, 0 _0801982C: .4byte gUnknown_203B460 _08019830: .4byte 0x0001869f _08019834: movs r0, 0x1F bl sub_8018D18 b _0801984A _0801983C: movs r0, 0x2 bl sub_8018D18 b _0801984A _08019844: movs r0, 0x3 bl sub_8018D18 _0801984A: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8019730 thumb_func_start sub_8019850 sub_8019850: push {r4,lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080198DE ldr r0, [sp] cmp r0, 0x5 beq _08019874 cmp r0, 0x5 bgt _0801986E cmp r0, 0x1 beq _080198D8 b _080198DE _0801986E: cmp r0, 0x6 beq _080198D8 b _080198DE _08019874: ldr r4, _080198A8 ldr r0, [r4] ldr r0, [r0, 0x10] negs r0, r0 bl sub_80913A0 ldr r1, [r4] ldrb r0, [r1, 0x4] cmp r0, 0 beq _080198AC adds r0, r1, 0 adds r0, 0x20 ldrb r0, [r0] bl sub_809185C bl sub_8091274 ldr r0, [r4] adds r0, 0x20 ldrb r0, [r0] bl sub_8091840 bl sub_8091874 b _080198C8 .align 2, 0 _080198A8: .4byte gUnknown_203B210 _080198AC: adds r0, r1, 0 adds r0, 0x21 ldrb r0, [r0] bl sub_8091A90 bl sub_8091274 ldr r0, [r4] adds r0, 0x21 ldrb r0, [r0] bl sub_8091A74 bl sub_8091AA8 _080198C8: movs r0, 0xA6 lsls r0, 1 bl sub_8011988 movs r0, 0x11 bl sub_8018D18 b _080198DE _080198D8: movs r0, 0x10 bl sub_8018D18 _080198DE: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_8019850 thumb_func_start sub_80198E8 sub_80198E8: push {r4,lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0801993A ldr r0, [sp] cmp r0, 0x5 beq _0801990C cmp r0, 0x5 bgt _08019906 cmp r0, 0x1 beq _08019934 b _0801993A _08019906: cmp r0, 0x6 beq _08019934 b _0801993A _0801990C: ldr r4, _08019930 ldr r0, [r4] ldr r0, [r0, 0x10] bl sub_80913A0 ldr r0, [r4] ldr r0, [r0, 0x24] bl sub_80911F8 movs r0, 0xA6 lsls r0, 1 bl sub_8011988 movs r0, 0x19 bl sub_8018D18 b _0801993A .align 2, 0 _08019930: .4byte gUnknown_203B210 _08019934: movs r0, 0x18 bl sub_8018D18 _0801993A: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_80198E8 thumb_func_start sub_8019944 sub_8019944: push {r4,r5,lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080199C2 ldr r0, [sp] cmp r0, 0x5 beq _08019968 cmp r0, 0x5 bgt _08019962 cmp r0, 0x1 beq _080199BC b _080199C2 _08019962: cmp r0, 0x6 beq _080199BC b _080199C2 _08019968: movs r4, 0 ldr r5, _080199B4 _0801996C: lsls r1, r4, 2 ldr r0, [r5] adds r2, r0, r1 ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0801998E ldrb r0, [r2, 0x2] bl sub_80914E4 lsls r0, 24 cmp r0, 0 beq _0801998E adds r0, r4, 0 bl sub_8091234 _0801998E: adds r4, 0x1 cmp r4, 0x13 ble _0801996C bl sub_80910B4 ldr r0, _080199B8 ldr r0, [r0] ldr r0, [r0, 0x18] bl sub_80913A0 movs r0, 0xA6 lsls r0, 1 bl sub_8011988 movs r0, 0x20 bl sub_8018D18 b _080199C2 .align 2, 0 _080199B4: .4byte gUnknown_203B460 _080199B8: .4byte gUnknown_203B210 _080199BC: movs r0, 0x1 bl sub_8018D18 _080199C2: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8019944 thumb_func_start sub_80199CC sub_80199CC: push {r4,r5,lr} ldr r0, _080199E0 ldr r0, [r0] ldrb r0, [r0, 0x4] cmp r0, 0 beq _080199E4 movs r0, 0x1 bl sub_8019EDC b _080199EA .align 2, 0 _080199E0: .4byte gUnknown_203B210 _080199E4: movs r0, 0x1 bl sub_801A2A8 _080199EA: cmp r0, 0x2 beq _08019AD4 cmp r0, 0x2 bhi _080199FA cmp r0, 0x1 bne _080199F8 b _08019AF4 _080199F8: b _08019B00 _080199FA: cmp r0, 0x3 beq _08019A04 cmp r0, 0x4 beq _08019A6C b _08019B00 _08019A04: ldr r4, _08019A24 ldr r0, [r4] ldrb r0, [r0, 0x4] cmp r0, 0 beq _08019A28 bl sub_8019FB0 ldr r1, [r4] adds r1, 0x20 strb r0, [r1] ldr r0, [r4] adds r0, 0x20 ldrb r0, [r0] bl sub_809185C b _08019A3C .align 2, 0 _08019A24: .4byte gUnknown_203B210 _08019A28: bl sub_801A37C ldr r1, [r4] adds r1, 0x21 strb r0, [r1] ldr r0, [r4] adds r0, 0x21 ldrb r0, [r0] bl sub_8091A90 _08019A3C: adds r5, r0, 0 ldr r4, _08019A68 ldr r0, [r4] adds r0, 0x1C ldrb r1, [r5] movs r2, 0 bl sub_8090A8C ldr r1, [r4] ldrb r0, [r5, 0x1] strb r0, [r1, 0x1D] ldr r0, [r4] adds r0, 0x1C bl sub_8090C7C ldr r1, [r4] str r0, [r1, 0x10] movs r0, 0x14 bl sub_8018D18 b _08019B00 .align 2, 0 _08019A68: .4byte gUnknown_203B210 _08019A6C: ldr r4, _08019A8C ldr r0, [r4] ldrb r0, [r0, 0x4] cmp r0, 0 beq _08019A90 bl sub_8019FB0 ldr r1, [r4] adds r1, 0x20 strb r0, [r1] ldr r0, [r4] adds r0, 0x20 ldrb r0, [r0] bl sub_809185C b _08019AA4 .align 2, 0 _08019A8C: .4byte gUnknown_203B210 _08019A90: bl sub_801A37C ldr r1, [r4] adds r1, 0x21 strb r0, [r1] ldr r0, [r4] adds r0, 0x21 ldrb r0, [r0] bl sub_8091A90 _08019AA4: adds r5, r0, 0 ldr r4, _08019AD0 ldr r0, [r4] adds r0, 0x1C ldrb r1, [r5] movs r2, 0 bl sub_8090A8C ldr r1, [r4] ldrb r0, [r5, 0x1] strb r0, [r1, 0x1D] ldr r0, [r4] adds r0, 0x1C bl sub_8090C7C ldr r1, [r4] str r0, [r1, 0x10] movs r0, 0x15 bl sub_8018D18 b _08019B00 .align 2, 0 _08019AD0: .4byte gUnknown_203B210 _08019AD4: ldr r0, _08019AE4 ldr r0, [r0] ldrb r0, [r0, 0x4] cmp r0, 0 beq _08019AE8 bl sub_801A010 b _08019AEC .align 2, 0 _08019AE4: .4byte gUnknown_203B210 _08019AE8: bl sub_801A3DC _08019AEC: movs r0, 0x1 bl sub_8018D18 b _08019B00 _08019AF4: movs r0, 0 bl sub_801AD34 movs r0, 0x1 bl sub_8016C40 _08019B00: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80199CC thumb_func_start sub_8019B08 sub_8019B08: push {r4,lr} movs r0, 0x1 bl sub_801A6E8 cmp r0, 0x4 bhi _08019BB0 lsls r0, 2 ldr r1, _08019B20 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08019B20: .4byte _08019B24 .align 2, 0 _08019B24: .4byte _08019BB6 .4byte _08019BB0 .4byte _08019BA4 .4byte _08019B38 .4byte _08019B6C _08019B38: bl sub_801A8AC ldr r4, _08019B64 ldr r2, [r4] str r0, [r2, 0x24] ldr r1, _08019B68 ldr r1, [r1] lsls r0, 2 adds r1, r0 ldr r0, [r1] str r0, [r2, 0x1C] adds r2, 0x1C adds r0, r2, 0 bl sub_8090CCC ldr r1, [r4] str r0, [r1, 0x10] movs r0, 0x1C bl sub_8018D18 b _08019BB6 .align 2, 0 _08019B64: .4byte gUnknown_203B210 _08019B68: .4byte gUnknown_203B460 _08019B6C: bl sub_801A8AC ldr r4, _08019B9C ldr r2, [r4] str r0, [r2, 0x24] ldr r1, _08019BA0 ldr r1, [r1] lsls r0, 2 adds r1, r0 ldr r0, [r1] str r0, [r2, 0x1C] adds r2, 0x1C adds r0, r2, 0 bl sub_8090CCC ldr r1, [r4] str r0, [r1, 0x10] movs r0, 0 bl sub_8099690 movs r0, 0x1D bl sub_8018D18 b _08019BB6 .align 2, 0 _08019B9C: .4byte gUnknown_203B210 _08019BA0: .4byte gUnknown_203B460 _08019BA4: bl sub_801A928 movs r0, 0x1 bl sub_8018D18 b _08019BB6 _08019BB0: movs r0, 0x1 bl sub_8016C40 _08019BB6: pop {r4} pop {r0} bx r0 thumb_func_end sub_8019B08 thumb_func_start sub_8019BBC sub_8019BBC: push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] ldr r0, _08019BD8 ldr r0, [r0] ldrb r0, [r0, 0x4] cmp r0, 0 beq _08019BDC movs r0, 0 bl sub_8019EDC b _08019BE2 .align 2, 0 _08019BD8: .4byte gUnknown_203B210 _08019BDC: movs r0, 0 bl sub_801A2A8 _08019BE2: ldr r4, _08019C18 ldr r0, [r4] adds r0, 0x84 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _08019C06 ldr r0, [r4] adds r0, 0x84 mov r1, sp bl sub_8013114 ldr r1, [sp] cmp r1, 0x1 beq _08019C06 ldr r0, [r4] str r1, [r0, 0x30] _08019C06: ldr r0, [sp] cmp r0, 0x2 beq _08019C22 cmp r0, 0x2 bgt _08019C1C cmp r0, 0x1 beq _08019C68 b _08019C6E .align 2, 0 _08019C18: .4byte gUnknown_203B210 _08019C1C: cmp r0, 0x7 beq _08019C60 b _08019C6E _08019C22: ldr r0, _08019C3C ldr r0, [r0] movs r1, 0x98 lsls r1, 2 adds r0, r1 ldr r1, [r0] cmp r1, 0 bne _08019C40 movs r0, 0x6 bl sub_8018D18 b _08019C6E .align 2, 0 _08019C3C: .4byte gUnknown_203B460 _08019C40: ldr r0, _08019C54 ldr r0, [r0] ldr r0, [r0, 0x10] cmp r0, r1 ble _08019C58 movs r0, 0xC bl sub_8018D18 b _08019C6E .align 2, 0 _08019C54: .4byte gUnknown_203B210 _08019C58: movs r0, 0x16 bl sub_8018D18 b _08019C6E _08019C60: movs r0, 0x15 bl sub_8018D18 b _08019C6E _08019C68: movs r0, 0x13 bl sub_8018D18 _08019C6E: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_8019BBC thumb_func_start sub_8019C78 sub_8019C78: push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] bl sub_801A6E8 ldr r4, _08019CB8 ldr r0, [r4] adds r0, 0x84 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _08019CA8 ldr r0, [r4] adds r0, 0x84 mov r1, sp bl sub_8013114 ldr r1, [sp] cmp r1, 0x1 beq _08019CA8 ldr r0, [r4] str r1, [r0, 0x2C] _08019CA8: ldr r0, [sp] cmp r0, 0x3 beq _08019CC2 cmp r0, 0x3 bgt _08019CBC cmp r0, 0x1 beq _08019D22 b _08019D28 .align 2, 0 _08019CB8: .4byte gUnknown_203B210 _08019CBC: cmp r0, 0x7 beq _08019D14 b _08019D28 _08019CC2: movs r0, 0 bl sub_8099690 ldr r4, _08019CE0 ldr r0, [r4] ldrb r0, [r0, 0x1E] bl sub_80914E4 lsls r0, 24 cmp r0, 0 bne _08019CE4 movs r0, 0xD bl sub_8018D18 b _08019D28 .align 2, 0 _08019CE0: .4byte gUnknown_203B210 _08019CE4: ldr r1, [r4] ldr r0, _08019D04 ldr r0, [r0] movs r2, 0x98 lsls r2, 2 adds r0, r2 ldr r1, [r1, 0x10] ldr r0, [r0] adds r1, r0 ldr r0, _08019D08 cmp r1, r0 ble _08019D0C movs r0, 0xE bl sub_8018D18 b _08019D28 .align 2, 0 _08019D04: .4byte gUnknown_203B460 _08019D08: .4byte 0x0001869f _08019D0C: movs r0, 0x1E bl sub_8018D18 b _08019D28 _08019D14: movs r0, 0 bl sub_8099690 movs r0, 0x1D bl sub_8018D18 b _08019D28 _08019D22: movs r0, 0x1B bl sub_8018D18 _08019D28: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_8019C78 thumb_func_start sub_8019D30 sub_8019D30: push {lr} bl sub_801B410 cmp r0, 0x1 bls _08019D48 cmp r0, 0x3 bhi _08019D48 bl sub_801B450 movs r0, 0x13 bl sub_8018D18 _08019D48: pop {r0} bx r0 thumb_func_end sub_8019D30 thumb_func_start sub_8019D4C sub_8019D4C: push {lr} bl sub_801B410 cmp r0, 0x1 bls _08019D64 cmp r0, 0x3 bhi _08019D64 bl sub_801B450 movs r0, 0x1B bl sub_8018D18 _08019D64: pop {r0} bx r0 thumb_func_end sub_8019D4C thumb_func_start sub_8019D68 sub_8019D68: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08019D80 ldr r0, _08019D88 ldr r0, [r0] ldr r0, [r0, 0xC] bl sub_8018D18 _08019D80: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _08019D88: .4byte gUnknown_203B210 thumb_func_end sub_8019D68 thumb_func_start sub_8019D8C sub_8019D8C: push {lr} ldr r0, _08019DA0 ldr r0, [r0] ldrb r0, [r0, 0x4] cmp r0, 0 bne _08019DA4 bl sub_8091A48 b _08019DA8 .align 2, 0 _08019DA0: .4byte gUnknown_203B210 _08019DA4: bl sub_8091814 _08019DA8: pop {r1} bx r1 thumb_func_end sub_8019D8C thumb_func_start sub_8019DAC sub_8019DAC: push {r4,r5,lr} ldr r0, _08019DFC ldr r1, [r0] movs r0, 0 str r0, [r1, 0x14] str r0, [r1, 0x18] movs r5, 0 _08019DBA: ldr r0, _08019E00 lsls r1, r5, 2 ldr r0, [r0] adds r4, r0, r1 ldrb r1, [r4] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08019DEE ldrb r0, [r4, 0x2] bl sub_80914E4 lsls r0, 24 cmp r0, 0 beq _08019DEE adds r0, r4, 0 bl sub_8090CCC ldr r1, _08019DFC ldr r2, [r1] ldr r1, [r2, 0x18] adds r1, r0 str r1, [r2, 0x18] ldr r0, [r2, 0x14] adds r0, 0x1 str r0, [r2, 0x14] _08019DEE: adds r5, 0x1 cmp r5, 0x13 ble _08019DBA pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08019DFC: .4byte gUnknown_203B210 _08019E00: .4byte gUnknown_203B460 thumb_func_end sub_8019DAC thumb_func_start sub_8019E04 sub_8019E04: push {lr} adds r2, r0, 0 ldr r0, _08019E20 ldr r1, [r0] ldrb r0, [r1, 0x4] cmp r0, 0 beq _08019E2A cmp r2, 0x1 bne _08019E24 adds r0, r1, 0 adds r0, 0xE0 strb r2, [r0] b _08019E3A .align 2, 0 _08019E20: .4byte gUnknown_203B210 _08019E24: adds r1, 0xE0 movs r0, 0 b _08019E38 _08019E2A: cmp r2, 0x1 bne _08019E34 adds r1, 0xE0 movs r0, 0x7 b _08019E38 _08019E34: adds r1, 0xE0 movs r0, 0x6 _08019E38: strb r0, [r1] _08019E3A: pop {r0} bx r0 thumb_func_end sub_8019E04 thumb_func_start sub_8019E40 sub_8019E40: push {r4-r6,lr} adds r6, r0, 0 bl sub_8091814 cmp r0, 0 beq _08019ED4 ldr r5, _08019EC8 movs r0, 0xA0 movs r1, 0x8 bl MemoryAlloc str r0, [r5] str r6, [r0, 0x34] lsls r1, r6, 1 adds r1, r6 lsls r1, 3 adds r1, 0x3C adds r1, r0, r1 str r1, [r0, 0x38] adds r0, 0x3C bl sub_8006518 ldr r1, [r5] ldr r2, [r1, 0x34] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, 0x3C ldr r0, _08019ECC ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldr r0, [r5] ldr r1, [r0, 0x38] adds r0, 0x9C str r0, [r1, 0x14] bl sub_8004914 ldr r0, [r5] adds r0, 0x3C movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, [r5] bl sub_8091814 adds r1, r0, 0 adds r0, r4, 0 movs r2, 0xA adds r3, r6, 0 bl sub_8013818 ldr r0, [r5] ldr r1, _08019ED0 ldrh r1, [r1] strh r1, [r0, 0x18] bl sub_8013984 bl sub_801A064 bl sub_801A0D8 movs r0, 0x1 b _08019ED6 .align 2, 0 _08019EC8: .4byte gUnknown_203B214 _08019ECC: .4byte gUnknown_80DB8CC _08019ED0: .4byte gUnknown_203B218 _08019ED4: movs r0, 0 _08019ED6: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8019E40 thumb_func_start sub_8019EDC sub_8019EDC: push {lr} sub sp, 0x4 lsls r0, 24 cmp r0, 0 bne _08019EF8 ldr r0, _08019EF4 ldr r0, [r0] bl sub_8013660 movs r0, 0 b _08019FAA .align 2, 0 _08019EF4: .4byte gUnknown_203B214 _08019EF8: ldr r0, _08019F10 ldr r0, [r0] bl GetKeyPress cmp r0, 0x2 beq _08019F1A cmp r0, 0x2 bgt _08019F14 cmp r0, 0x1 beq _08019F24 b _08019F88 .align 2, 0 _08019F10: .4byte gUnknown_203B214 _08019F14: cmp r0, 0x4 beq _08019F7E b _08019F88 _08019F1A: movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 b _08019FAA _08019F24: bl sub_8019FB0 lsls r0, 24 lsrs r0, 24 bl sub_809185C ldrb r2, [r0] lsls r2, 16 ldr r3, _08019F68 ldr r1, [sp] ands r1, r3 orrs r1, r2 str r1, [sp] ldrb r0, [r0, 0x1] lsls r0, 8 ldr r2, _08019F6C ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp bl sub_8090C7C ldr r1, _08019F70 ldr r1, [r1] movs r2, 0x98 lsls r2, 2 adds r1, r2 ldr r1, [r1] cmp r0, r1 ble _08019F74 movs r0, 0x2 bl sub_80119D4 b _08019F7A .align 2, 0 _08019F68: .4byte 0xff00ffff _08019F6C: .4byte 0xffff00ff _08019F70: .4byte gUnknown_203B460 _08019F74: movs r0, 0 bl sub_80119D4 _08019F7A: movs r0, 0x3 b _08019FAA _08019F7E: movs r0, 0x4 bl sub_80119D4 movs r0, 0x4 b _08019FAA _08019F88: ldr r0, _08019F9C ldr r0, [r0] movs r1, 0x1 bl sub_80138B8 lsls r0, 24 cmp r0, 0 bne _08019FA0 movs r0, 0 b _08019FAA .align 2, 0 _08019F9C: .4byte gUnknown_203B214 _08019FA0: bl sub_801A064 bl sub_801A0D8 movs r0, 0x1 _08019FAA: add sp, 0x4 pop {r1} bx r1 thumb_func_end sub_8019EDC thumb_func_start sub_8019FB0 sub_8019FB0: ldr r0, _08019FC8 ldr r1, [r0] movs r0, 0x1E ldrsh r2, [r1, r0] movs r3, 0x1C ldrsh r0, [r1, r3] muls r0, r2 ldrb r1, [r1, 0x18] adds r0, r1 lsls r0, 24 lsrs r0, 24 bx lr .align 2, 0 _08019FC8: .4byte gUnknown_203B214 thumb_func_end sub_8019FB0 thumb_func_start sub_8019FCC sub_8019FCC: push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8004914 ldr r5, _0801A00C ldr r0, [r5] adds r0, 0x3C movs r1, 0 movs r2, 0 bl sub_800641C bl sub_8091814 adds r1, r0, 0 ldr r0, [r5] strh r1, [r0, 0x22] bl sub_8013984 bl sub_801A064 bl sub_801A0D8 cmp r4, 0 beq _0801A006 ldr r0, [r5] bl AddMenuCursorSprite _0801A006: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0801A00C: .4byte gUnknown_203B214 thumb_func_end sub_8019FCC thumb_func_start sub_801A010 sub_801A010: push {r4,r5,lr} ldr r4, _0801A058 ldr r2, [r4] cmp r2, 0 beq _0801A050 ldr r1, _0801A05C ldrh r0, [r2, 0x18] strh r0, [r1] ldr r0, [r2, 0x34] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 adds r1, 0x3C ldr r0, _0801A060 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} bl sub_8004914 ldr r0, [r4] adds r0, 0x3C movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _0801A050: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0801A058: .4byte gUnknown_203B214 _0801A05C: .4byte gUnknown_203B218 _0801A060: .4byte gUnknown_80DB8B4 thumb_func_end sub_801A010 thumb_func_start sub_801A064 sub_801A064: push {r4,lr} ldr r4, _0801A0D4 ldr r0, [r4] ldrh r1, [r0, 0x20] adds r0, 0x9C movs r2, 0 strb r1, [r0] ldr r0, [r4] ldrh r1, [r0, 0x1E] adds r0, 0x9D strb r1, [r0] ldr r0, [r4] adds r0, 0x9E movs r1, 0xA strb r1, [r0] ldr r0, [r4] adds r0, 0x9F strb r2, [r0] ldr r0, [r4] movs r1, 0x1A ldrsh r0, [r0, r1] movs r1, 0xC bl sub_80095E4 adds r0, 0x2 lsls r0, 16 ldr r2, [r4] ldr r3, [r2, 0x34] lsls r1, r3, 1 adds r1, r3 lsls r1, 3 adds r1, r2, r1 adds r1, 0x4A asrs r3, r0, 16 lsrs r0, 16 strh r0, [r1] ldr r1, [r2, 0x34] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r2, r0 adds r3, 0x2 adds r2, 0x4C strh r3, [r2] bl sub_8004914 ldr r0, [r4] adds r0, 0x3C movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4} pop {r0} bx r0 .align 2, 0 _0801A0D4: .4byte gUnknown_203B214 thumb_func_end sub_801A064 thumb_func_start sub_801A0D8 sub_801A0D8: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0xB4 ldr r4, _0801A1A4 ldr r0, [r4] ldr r0, [r0, 0x34] bl sub_8008C54 ldr r0, [r4] ldr r0, [r0, 0x34] bl sub_80073B8 ldr r1, [r4] movs r2, 0x1E ldrsh r0, [r1, r2] lsls r0, 3 adds r0, 0xA ldr r2, _0801A1A8 ldr r3, [r1, 0x34] movs r1, 0 str r1, [sp] bl xxx_call_draw_string movs r6, 0 ldr r0, [r4] movs r1, 0x1A ldrsh r0, [r0, r1] cmp r6, r0 bge _0801A1EC adds r7, r4, 0 add r4, sp, 0xB0 mov r9, r6 add r5, sp, 0x54 add r2, sp, 0x60 mov r8, r2 _0801A122: ldr r0, [r7] movs r2, 0x1E ldrsh r1, [r0, r2] movs r2, 0x1C ldrsh r0, [r0, r2] muls r0, r1 adds r0, r6 lsls r0, 24 lsrs r0, 24 bl sub_809185C ldrb r2, [r0] lsls r2, 16 ldr r3, _0801A1AC ldr r1, [r4] ands r1, r3 orrs r1, r2 str r1, [r4] ldrb r2, [r0, 0x1] lsls r2, 8 ldr r0, _0801A1B0 ands r1, r0 orrs r1, r2 ldr r0, _0801A1B4 ands r1, r0 movs r0, 0x3 orrs r1, r0 str r1, [r4] movs r1, 0x1 str r1, [sp, 0x54] mov r0, r9 strb r0, [r5, 0x4] movs r0, 0x58 strh r0, [r5, 0x6] strb r1, [r5, 0x8] add r0, sp, 0x4 adds r1, r4, 0 adds r2, r5, 0 bl sub_8090E14 adds r0, r4, 0 bl sub_8090C7C ldr r1, _0801A1B8 ldr r1, [r1] movs r2, 0x98 lsls r2, 2 adds r1, r2 ldr r1, [r1] cmp r0, r1 bgt _0801A1BC ldr r0, [r7] adds r1, r6, 0 bl sub_8013800 adds r1, r0, 0 ldr r0, [r7] ldr r3, [r0, 0x34] mov r0, r9 str r0, [sp] movs r0, 0x8 add r2, sp, 0x4 bl xxx_call_draw_string b _0801A1E0 .align 2, 0 _0801A1A4: .4byte gUnknown_203B214 _0801A1A8: .4byte gUnknown_80DB8E4 _0801A1AC: .4byte 0xff00ffff _0801A1B0: .4byte 0xffff00ff _0801A1B4: .4byte 0xffffff00 _0801A1B8: .4byte gUnknown_203B460 _0801A1BC: mov r0, r8 ldr r1, _0801A204 add r2, sp, 0x4 bl sub_800D158 ldr r0, [r7] adds r1, r6, 0 bl sub_8013800 adds r1, r0, 0 ldr r0, [r7] ldr r3, [r0, 0x34] mov r2, r9 str r2, [sp] movs r0, 0x8 mov r2, r8 bl xxx_call_draw_string _0801A1E0: adds r6, 0x1 ldr r0, [r7] movs r1, 0x1A ldrsh r0, [r0, r1] cmp r6, r0 blt _0801A122 _0801A1EC: ldr r0, _0801A208 ldr r0, [r0] ldr r0, [r0, 0x34] bl sub_80073E0 add sp, 0xB4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0801A204: .4byte gUnknown_80DB8EC _0801A208: .4byte gUnknown_203B214 thumb_func_end sub_801A0D8 thumb_func_start sub_801A20C sub_801A20C: push {r4-r6,lr} adds r6, r0, 0 bl sub_8091A48 cmp r0, 0 beq _0801A2A0 ldr r5, _0801A294 movs r0, 0xA0 movs r1, 0x8 bl MemoryAlloc str r0, [r5] str r6, [r0, 0x34] lsls r1, r6, 1 adds r1, r6 lsls r1, 3 adds r1, 0x3C adds r1, r0, r1 str r1, [r0, 0x38] adds r0, 0x3C bl sub_8006518 ldr r1, [r5] ldr r2, [r1, 0x34] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, 0x3C ldr r0, _0801A298 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldr r0, [r5] ldr r1, [r0, 0x38] adds r0, 0x9C str r0, [r1, 0x14] bl sub_8004914 ldr r0, [r5] adds r0, 0x3C movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, [r5] bl sub_8091A48 adds r1, r0, 0 adds r0, r4, 0 movs r2, 0xA adds r3, r6, 0 bl sub_8013818 ldr r0, [r5] ldr r1, _0801A29C ldrh r1, [r1] strh r1, [r0, 0x18] bl sub_8013984 bl sub_801A430 bl sub_801A4A4 movs r0, 0x1 b _0801A2A2 .align 2, 0 _0801A294: .4byte gUnknown_203B21C _0801A298: .4byte gUnknown_80DB914 _0801A29C: .4byte gUnknown_203B220 _0801A2A0: movs r0, 0 _0801A2A2: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_801A20C thumb_func_start sub_801A2A8 sub_801A2A8: push {lr} sub sp, 0x4 lsls r0, 24 cmp r0, 0 bne _0801A2C4 ldr r0, _0801A2C0 ldr r0, [r0] bl sub_8013660 movs r0, 0 b _0801A376 .align 2, 0 _0801A2C0: .4byte gUnknown_203B21C _0801A2C4: ldr r0, _0801A2DC ldr r0, [r0] bl GetKeyPress cmp r0, 0x2 beq _0801A2E6 cmp r0, 0x2 bgt _0801A2E0 cmp r0, 0x1 beq _0801A2F0 b _0801A354 .align 2, 0 _0801A2DC: .4byte gUnknown_203B21C _0801A2E0: cmp r0, 0x4 beq _0801A34A b _0801A354 _0801A2E6: movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 b _0801A376 _0801A2F0: bl sub_801A37C lsls r0, 24 lsrs r0, 24 bl sub_8091A90 ldrb r2, [r0] lsls r2, 16 ldr r3, _0801A334 ldr r1, [sp] ands r1, r3 orrs r1, r2 str r1, [sp] ldrb r0, [r0, 0x1] lsls r0, 8 ldr r2, _0801A338 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp bl sub_8090C7C ldr r1, _0801A33C ldr r1, [r1] movs r2, 0x98 lsls r2, 2 adds r1, r2 ldr r1, [r1] cmp r0, r1 ble _0801A340 movs r0, 0x2 bl sub_80119D4 b _0801A346 .align 2, 0 _0801A334: .4byte 0xff00ffff _0801A338: .4byte 0xffff00ff _0801A33C: .4byte gUnknown_203B460 _0801A340: movs r0, 0 bl sub_80119D4 _0801A346: movs r0, 0x3 b _0801A376 _0801A34A: movs r0, 0x4 bl sub_80119D4 movs r0, 0x4 b _0801A376 _0801A354: ldr r0, _0801A368 ldr r0, [r0] movs r1, 0x1 bl sub_80138B8 lsls r0, 24 cmp r0, 0 bne _0801A36C movs r0, 0 b _0801A376 .align 2, 0 _0801A368: .4byte gUnknown_203B21C _0801A36C: bl sub_801A430 bl sub_801A4A4 movs r0, 0x1 _0801A376: add sp, 0x4 pop {r1} bx r1 thumb_func_end sub_801A2A8 thumb_func_start sub_801A37C sub_801A37C: ldr r0, _0801A394 ldr r1, [r0] movs r0, 0x1E ldrsh r2, [r1, r0] movs r3, 0x1C ldrsh r0, [r1, r3] muls r0, r2 ldrb r1, [r1, 0x18] adds r0, r1 lsls r0, 24 lsrs r0, 24 bx lr .align 2, 0 _0801A394: .4byte gUnknown_203B21C thumb_func_end sub_801A37C thumb_func_start sub_801A398 sub_801A398: push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8004914 ldr r5, _0801A3D8 ldr r0, [r5] adds r0, 0x3C movs r1, 0 movs r2, 0 bl sub_800641C bl sub_8091A48 adds r1, r0, 0 ldr r0, [r5] strh r1, [r0, 0x22] bl sub_8013984 bl sub_801A430 bl sub_801A4A4 cmp r4, 0 beq _0801A3D2 ldr r0, [r5] bl AddMenuCursorSprite _0801A3D2: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0801A3D8: .4byte gUnknown_203B21C thumb_func_end sub_801A398 thumb_func_start sub_801A3DC sub_801A3DC: push {r4,r5,lr} ldr r4, _0801A424 ldr r2, [r4] cmp r2, 0 beq _0801A41C ldr r1, _0801A428 ldrh r0, [r2, 0x18] strh r0, [r1] ldr r0, [r2, 0x34] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 adds r1, 0x3C ldr r0, _0801A42C ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} bl sub_8004914 ldr r0, [r4] adds r0, 0x3C movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _0801A41C: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0801A424: .4byte gUnknown_203B21C _0801A428: .4byte gUnknown_203B220 _0801A42C: .4byte gUnknown_80DB8FC thumb_func_end sub_801A3DC thumb_func_start sub_801A430 sub_801A430: push {r4,lr} ldr r4, _0801A4A0 ldr r0, [r4] ldrh r1, [r0, 0x20] adds r0, 0x9C movs r2, 0 strb r1, [r0] ldr r0, [r4] ldrh r1, [r0, 0x1E] adds r0, 0x9D strb r1, [r0] ldr r0, [r4] adds r0, 0x9E movs r1, 0xA strb r1, [r0] ldr r0, [r4] adds r0, 0x9F strb r2, [r0] ldr r0, [r4] movs r1, 0x1A ldrsh r0, [r0, r1] movs r1, 0xC bl sub_80095E4 adds r0, 0x2 lsls r0, 16 ldr r2, [r4] ldr r3, [r2, 0x34] lsls r1, r3, 1 adds r1, r3 lsls r1, 3 adds r1, r2, r1 adds r1, 0x4A asrs r3, r0, 16 lsrs r0, 16 strh r0, [r1] ldr r1, [r2, 0x34] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r2, r0 adds r3, 0x2 adds r2, 0x4C strh r3, [r2] bl sub_8004914 ldr r0, [r4] adds r0, 0x3C movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4} pop {r0} bx r0 .align 2, 0 _0801A4A0: .4byte gUnknown_203B21C thumb_func_end sub_801A430 thumb_func_start sub_801A4A4 sub_801A4A4: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0xB4 ldr r4, _0801A570 ldr r0, [r4] ldr r0, [r0, 0x34] bl sub_8008C54 ldr r0, [r4] ldr r0, [r0, 0x34] bl sub_80073B8 ldr r1, [r4] movs r2, 0x1E ldrsh r0, [r1, r2] lsls r0, 3 adds r0, 0xA ldr r2, _0801A574 ldr r3, [r1, 0x34] movs r1, 0 str r1, [sp] bl xxx_call_draw_string movs r6, 0 ldr r0, [r4] movs r1, 0x1A ldrsh r0, [r0, r1] cmp r6, r0 bge _0801A5B8 adds r7, r4, 0 add r4, sp, 0xB0 mov r9, r6 add r5, sp, 0x54 add r2, sp, 0x60 mov r8, r2 _0801A4EE: ldr r0, [r7] movs r2, 0x1E ldrsh r1, [r0, r2] movs r2, 0x1C ldrsh r0, [r0, r2] muls r0, r1 adds r0, r6 lsls r0, 24 lsrs r0, 24 bl sub_8091A90 ldrb r2, [r0] lsls r2, 16 ldr r3, _0801A578 ldr r1, [r4] ands r1, r3 orrs r1, r2 str r1, [r4] ldrb r2, [r0, 0x1] lsls r2, 8 ldr r0, _0801A57C ands r1, r0 orrs r1, r2 ldr r0, _0801A580 ands r1, r0 movs r0, 0x3 orrs r1, r0 str r1, [r4] movs r1, 0x1 str r1, [sp, 0x54] mov r0, r9 strb r0, [r5, 0x4] movs r0, 0x58 strh r0, [r5, 0x6] strb r1, [r5, 0x8] add r0, sp, 0x4 adds r1, r4, 0 adds r2, r5, 0 bl sub_8090E14 adds r0, r4, 0 bl sub_8090C7C ldr r1, _0801A584 ldr r1, [r1] movs r2, 0x98 lsls r2, 2 adds r1, r2 ldr r1, [r1] cmp r0, r1 bgt _0801A588 ldr r0, [r7] adds r1, r6, 0 bl sub_8013800 adds r1, r0, 0 ldr r0, [r7] ldr r3, [r0, 0x34] mov r0, r9 str r0, [sp] movs r0, 0x8 add r2, sp, 0x4 bl xxx_call_draw_string b _0801A5AC .align 2, 0 _0801A570: .4byte gUnknown_203B21C _0801A574: .4byte gUnknown_80DB92C _0801A578: .4byte 0xff00ffff _0801A57C: .4byte 0xffff00ff _0801A580: .4byte 0xffffff00 _0801A584: .4byte gUnknown_203B460 _0801A588: mov r0, r8 ldr r1, _0801A5D0 add r2, sp, 0x4 bl sub_800D158 ldr r0, [r7] adds r1, r6, 0 bl sub_8013800 adds r1, r0, 0 ldr r0, [r7] ldr r3, [r0, 0x34] mov r2, r9 str r2, [sp] movs r0, 0x8 mov r2, r8 bl xxx_call_draw_string _0801A5AC: adds r6, 0x1 ldr r0, [r7] movs r1, 0x1A ldrsh r0, [r0, r1] cmp r6, r0 blt _0801A4EE _0801A5B8: ldr r0, _0801A5D4 ldr r0, [r0] ldr r0, [r0, 0x34] bl sub_80073E0 add sp, 0xB4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0801A5D0: .4byte gUnknown_80DB934 _0801A5D4: .4byte gUnknown_203B21C thumb_func_end sub_801A4A4 thumb_func_start sub_801A5D8 sub_801A5D8: push {r4-r7,lr} mov r7, r8 push {r7} adds r4, r0, 0 adds r6, r1, 0 adds r7, r2, 0 mov r8, r3 bl sub_8090A34 cmp r0, 0 bne _0801A5F2 movs r0, 0 b _0801A6CC _0801A5F2: ldr r5, _0801A6D8 ldr r0, [r5] cmp r0, 0 bne _0801A604 movs r0, 0xF4 movs r1, 0x8 bl MemoryAlloc str r0, [r5] _0801A604: ldr r0, [r5] str r4, [r0] bl sub_80910B4 bl sub_801AE84 ldr r0, [r5] adds r1, r0, 0 adds r1, 0x88 str r6, [r1] adds r2, r0, 0 adds r2, 0x8C lsls r1, r6, 1 adds r1, r6 lsls r1, 3 adds r1, 0x90 adds r1, r0, r1 str r1, [r2] adds r0, 0x90 bl sub_8006518 ldr r1, [r5] adds r0, r1, 0 adds r0, 0x88 ldr r2, [r0] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, 0x90 ldr r0, _0801A6DC ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldr r2, [r5] adds r0, r2, 0 adds r0, 0x8C ldr r1, [r0] adds r0, 0x64 str r0, [r1, 0x14] cmp r7, 0 beq _0801A66E subs r0, 0x68 ldr r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r1, r2, 0 adds r1, 0x98 adds r1, r0 ldr r0, [r7] str r0, [r1] _0801A66E: ldr r0, [r5] adds r0, 0x8C ldr r0, [r0] mov r1, r8 bl sub_8012D08 movs r0, 0x1 bl sub_8099690 bl sub_8004914 ldr r0, [r5] adds r0, 0x90 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, [r5] adds r4, 0x54 bl sub_8090A34 adds r1, r0, 0 adds r0, r4, 0 mov r2, r8 adds r3, r6, 0 bl sub_8013818 ldr r2, [r5] ldr r0, _0801A6E0 ldrh r1, [r0] adds r0, r2, 0 adds r0, 0x6C strh r1, [r0] ldr r0, _0801A6E4 ldrh r0, [r0] adds r1, r2, 0 adds r1, 0x72 strh r0, [r1] adds r0, r2, 0 adds r0, 0x54 bl sub_8013984 bl sub_801A998 bl sub_801A9E0 movs r0, 0x1 _0801A6CC: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0801A6D8: .4byte gUnknown_203B224 _0801A6DC: .4byte gUnknown_80DB95C _0801A6E0: .4byte gUnknown_203B228 _0801A6E4: .4byte gUnknown_203B22A thumb_func_end sub_801A5D8 thumb_func_start sub_801A6E8 sub_801A6E8: push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 cmp r0, 0 bne _0801A704 ldr r0, _0801A700 ldr r0, [r0] adds r0, 0x54 bl sub_8013660 movs r0, 0 b _0801A8A2 .align 2, 0 _0801A700: .4byte gUnknown_203B224 _0801A704: ldr r0, _0801A720 ldr r0, [r0] adds r0, 0x54 bl GetKeyPress subs r0, 0x1 cmp r0, 0x5 bls _0801A716 b _0801A87C _0801A716: lsls r0, 2 ldr r1, _0801A724 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0801A720: .4byte gUnknown_203B224 _0801A724: .4byte _0801A728 .align 2, 0 _0801A728: .4byte _0801A74A .4byte _0801A740 .4byte _0801A864 .4byte _0801A806 .4byte _0801A810 .4byte _0801A810 _0801A740: movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 b _0801A8A2 _0801A74A: ldr r1, _0801A760 ldr r0, [r1] ldr r0, [r0] adds r4, r1, 0 cmp r0, 0x5 bhi _0801A802 lsls r0, 2 ldr r1, _0801A764 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0801A760: .4byte gUnknown_203B224 _0801A764: .4byte _0801A768 .align 2, 0 _0801A768: .4byte _0801A780 .4byte _0801A780 .4byte _0801A780 .4byte _0801A794 .4byte _0801A7AC .4byte _0801A7FC _0801A780: ldr r4, [r4] bl sub_801A8AC lsls r0, 2 adds r4, 0x4 adds r4, r0 ldr r0, [r4] cmp r0, 0 bne _0801A7F4 b _0801A7E2 _0801A794: bl sub_801AEA8 cmp r0, 0 bne _0801A7E2 bl sub_801A8AC bl sub_801ADA0 lsls r0, 24 cmp r0, 0 bne _0801A7E2 b _0801A7F4 _0801A7AC: ldr r5, _0801A7EC ldr r4, [r5] bl sub_801A8AC lsls r0, 2 adds r4, r0 ldr r0, [r4] str r0, [sp] mov r0, sp ldrb r0, [r0, 0x2] bl sub_80914E4 lsls r0, 24 cmp r0, 0 beq _0801A7F4 mov r0, sp bl sub_8090CCC ldr r1, [r5] movs r2, 0x98 lsls r2, 2 adds r1, r2 ldr r1, [r1] adds r0, r1 ldr r1, _0801A7F0 cmp r0, r1 bgt _0801A7F4 _0801A7E2: movs r0, 0 bl sub_80119D4 b _0801A802 .align 2, 0 _0801A7EC: .4byte gUnknown_203B460 _0801A7F0: .4byte 0x0001869f _0801A7F4: movs r0, 0x2 bl sub_80119D4 b _0801A802 _0801A7FC: movs r0, 0 bl sub_80119D4 _0801A802: movs r0, 0x3 b _0801A8A2 _0801A806: movs r0, 0x4 bl sub_80119D4 movs r0, 0x4 b _0801A8A2 _0801A810: ldr r4, _0801A858 ldr r0, [r4] ldr r0, [r0] cmp r0, 0x3 bne _0801A87C bl sub_801A8AC adds r1, r0, 0 ldr r0, [r4] lsls r5, r1, 2 adds r0, 0x4 adds r0, r5 ldr r0, [r0] cmp r0, 0 bne _0801A83A adds r0, r1, 0 bl sub_801ADA0 lsls r0, 24 cmp r0, 0 beq _0801A85C _0801A83A: movs r0, 0x6 bl sub_80119D4 ldr r0, [r4] adds r2, r0, 0x4 adds r2, r5 ldr r1, [r2] movs r3, 0x1 eors r1, r3 str r1, [r2] adds r0, 0x54 movs r1, 0 bl sub_80138B8 b _0801A89C .align 2, 0 _0801A858: .4byte gUnknown_203B224 _0801A85C: movs r0, 0x2 bl sub_80119D4 b _0801A87C _0801A864: ldr r0, _0801A894 ldr r0, [r0] ldr r0, [r0] cmp r0, 0x2 beq _0801A87C movs r0, 0x5 bl sub_80119D4 bl sub_801AEF8 bl sub_801A9E0 _0801A87C: ldr r0, _0801A894 ldr r0, [r0] adds r0, 0x54 movs r1, 0x1 bl sub_80138B8 lsls r0, 24 cmp r0, 0 bne _0801A898 movs r0, 0 b _0801A8A2 .align 2, 0 _0801A894: .4byte gUnknown_203B224 _0801A898: bl sub_801A998 _0801A89C: bl sub_801A9E0 movs r0, 0x1 _0801A8A2: add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_801A6E8 thumb_func_start sub_801A8AC sub_801A8AC: ldr r0, _0801A8CC ldr r2, [r0] adds r0, r2, 0 adds r0, 0x72 movs r3, 0 ldrsh r1, [r0, r3] subs r0, 0x2 movs r3, 0 ldrsh r0, [r0, r3] muls r0, r1 adds r1, r2, 0 adds r1, 0x6C movs r2, 0 ldrsh r1, [r1, r2] adds r0, r1 bx lr .align 2, 0 _0801A8CC: .4byte gUnknown_203B224 thumb_func_end sub_801A8AC thumb_func_start sub_801A8D0 sub_801A8D0: push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x1 bl sub_8099690 bl sub_8004914 ldr r5, _0801A924 ldr r0, [r5] adds r0, 0x90 movs r1, 0 movs r2, 0 bl sub_800641C bl sub_80910B4 bl sub_8090A34 adds r1, r0, 0 ldr r0, [r5] adds r2, r0, 0 adds r2, 0x76 strh r1, [r2] adds r0, 0x54 bl sub_8013984 bl sub_801A998 bl sub_801A9E0 cmp r4, 0 beq _0801A91C ldr r0, [r5] adds r0, 0x54 bl AddMenuCursorSprite _0801A91C: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0801A924: .4byte gUnknown_203B224 thumb_func_end sub_801A8D0 thumb_func_start sub_801A928 sub_801A928: push {r4,r5,lr} ldr r4, _0801A988 ldr r2, [r4] cmp r2, 0 beq _0801A980 ldr r1, _0801A98C adds r0, r2, 0 adds r0, 0x6C ldrh r0, [r0] strh r0, [r1] ldr r1, _0801A990 adds r0, r2, 0 adds r0, 0x72 ldrh r0, [r0] strh r0, [r1] adds r0, r2, 0 adds r0, 0x88 ldr r0, [r0] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 adds r1, 0x90 ldr r0, _0801A994 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} movs r0, 0 bl sub_8099690 bl sub_8004914 ldr r0, [r4] adds r0, 0x90 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _0801A980: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0801A988: .4byte gUnknown_203B224 _0801A98C: .4byte gUnknown_203B228 _0801A990: .4byte gUnknown_203B22A _0801A994: .4byte gUnknown_80DB944 thumb_func_end sub_801A928 thumb_func_start sub_801A998 sub_801A998: push {r4,lr} ldr r4, _0801A9DC ldr r0, [r4] adds r1, r0, 0 adds r1, 0x74 ldrh r1, [r1] adds r0, 0xF0 movs r2, 0 strb r1, [r0] ldr r0, [r4] adds r1, r0, 0 adds r1, 0x72 ldrh r1, [r1] adds r0, 0xF1 strb r1, [r0] ldr r0, [r4] adds r0, 0xF2 movs r1, 0xB strb r1, [r0] ldr r0, [r4] adds r0, 0xF3 strb r2, [r0] bl sub_8004914 ldr r0, [r4] adds r0, 0x90 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4} pop {r0} bx r0 .align 2, 0 _0801A9DC: .4byte gUnknown_203B224 thumb_func_end sub_801A998 thumb_func_start sub_801A9E0 sub_801A9E0: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xCC ldr r4, _0801AA2C ldr r0, [r4] adds r0, 0x88 ldr r0, [r0] bl sub_8008C54 ldr r0, [r4] adds r0, 0x88 ldr r0, [r0] bl sub_80073B8 ldr r4, [r4] adds r1, r4, 0 adds r1, 0x72 movs r2, 0 ldrsh r0, [r1, r2] lsls r0, 3 adds r5, r0, 0 adds r5, 0xA movs r3, 0 ldrsh r1, [r1, r3] cmp r1, 0 bne _0801AA34 ldr r2, _0801AA30 adds r0, r4, 0 adds r0, 0x88 ldr r3, [r0] str r1, [sp] adds r0, r5, 0 movs r1, 0 bl xxx_call_draw_string b _0801AA48 .align 2, 0 _0801AA2C: .4byte gUnknown_203B224 _0801AA30: .4byte gUnknown_80DB974 _0801AA34: ldr r2, _0801AA58 adds r0, r4, 0 adds r0, 0x88 ldr r3, [r0] movs r0, 0 str r0, [sp] adds r0, r5, 0 movs r1, 0 bl xxx_call_draw_string _0801AA48: movs r7, 0 ldr r1, _0801AA5C ldr r0, [r1] adds r0, 0x6E movs r4, 0 ldrsh r0, [r0, r4] b _0801AD0A .align 2, 0 _0801AA58: .4byte gUnknown_80DB984 _0801AA5C: .4byte gUnknown_203B224 _0801AA60: ldr r2, [r1] adds r0, r2, 0 adds r0, 0x72 movs r3, 0 ldrsh r1, [r0, r3] subs r0, 0x2 movs r4, 0 ldrsh r0, [r0, r4] muls r0, r1 adds r0, r7 mov r8, r0 ldr r0, _0801AA9C ldr r0, [r0] mov r3, r8 lsls r1, r3, 2 adds r0, r1 ldr r0, [r0] add r1, sp, 0xC8 str r0, [r1] ldr r0, [r2] adds r4, r1, 0 cmp r0, 0x5 bls _0801AA90 b _0801ACC4 _0801AA90: lsls r0, 2 ldr r1, _0801AAA0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0801AA9C: .4byte gUnknown_203B460 _0801AAA0: .4byte _0801AAA4 .align 2, 0 _0801AAA4: .4byte _0801AABC .4byte _0801AAE4 .4byte _0801AAE4 .4byte _0801AB18 .4byte _0801AB90 .4byte _0801AC50 _0801AABC: add r0, sp, 0x4 adds r1, r4, 0 movs r2, 0 bl sub_8090E14 ldr r4, _0801AAE0 ldr r0, [r4] adds r0, 0x54 adds r1, r7, 0 bl sub_8013800 adds r1, r0, 0 ldr r0, [r4] adds r0, 0x88 ldr r3, [r0] movs r0, 0 str r0, [sp] b _0801AC8C .align 2, 0 _0801AAE0: .4byte gUnknown_203B224 _0801AAE4: add r2, sp, 0x54 movs r5, 0 str r5, [sp, 0x54] strb r5, [r2, 0x4] movs r0, 0x1 strb r0, [r2, 0x8] strb r0, [r4] add r1, sp, 0xC8 add r0, sp, 0x4 bl sub_8090E14 ldr r4, _0801AB14 ldr r0, [r4] adds r0, 0x54 adds r1, r7, 0 bl sub_8013800 adds r1, r0, 0 ldr r0, [r4] adds r0, 0x88 ldr r3, [r0] str r5, [sp] b _0801AC8C .align 2, 0 _0801AB14: .4byte gUnknown_203B224 _0801AB18: add r2, sp, 0x60 movs r6, 0 str r6, [sp, 0x60] strb r6, [r2, 0x4] movs r0, 0x1 strb r0, [r2, 0x8] strb r0, [r4] add r1, sp, 0xC8 add r0, sp, 0x4 bl sub_8090E14 ldr r5, _0801AB60 ldr r0, [r5] mov r4, r8 lsls r1, r4, 2 adds r0, 0x4 adds r0, r1 ldr r0, [r0] cmp r0, 0 bne _0801AB4E mov r0, r8 bl sub_801ADA0 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _0801AB64 _0801AB4E: ldr r0, [r5] adds r0, 0x54 adds r1, r7, 0 bl sub_8013800 adds r1, r0, 0 ldr r0, [r5] b _0801AC86 .align 2, 0 _0801AB60: .4byte gUnknown_203B224 _0801AB64: ldr r0, _0801AB88 add r1, sp, 0x4 movs r2, 0x50 bl strncpy ldr r0, [r5] adds r0, 0x54 adds r1, r7, 0 bl sub_8013800 adds r1, r0, 0 ldr r2, _0801AB8C ldr r0, [r5] adds r0, 0x88 ldr r3, [r0] str r4, [sp] b _0801AC3C .align 2, 0 _0801AB88: .4byte gUnknown_202DE58 _0801AB8C: .4byte gUnknown_80DB994 _0801AB90: ldrb r0, [r4, 0x2] bl sub_80914E4 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 beq _0801AC10 add r2, sp, 0x6C movs r1, 0x3 str r1, [sp, 0x6C] movs r6, 0 strb r6, [r2, 0x4] movs r0, 0x58 strh r0, [r2, 0x6] movs r0, 0x1 strb r0, [r2, 0x8] strb r1, [r4] add r0, sp, 0x4 adds r1, r4, 0 bl sub_8090E14 adds r0, r4, 0 bl sub_8090CCC ldr r1, _0801AC00 ldr r1, [r1] movs r2, 0x98 lsls r2, 2 adds r1, r2 ldr r1, [r1] adds r0, r1 ldr r1, _0801AC04 cmp r0, r1 ble _0801AC76 add r5, sp, 0x78 ldr r1, _0801AC08 adds r0, r5, 0 add r2, sp, 0x4 bl sub_800D158 ldr r4, _0801AC0C ldr r0, [r4] adds r0, 0x54 adds r1, r7, 0 bl sub_8013800 adds r1, r0, 0 ldr r0, [r4] adds r0, 0x88 ldr r3, [r0] str r6, [sp] movs r0, 0x8 adds r2, r5, 0 bl xxx_call_draw_string b _0801ACC4 .align 2, 0 _0801AC00: .4byte gUnknown_203B460 _0801AC04: .4byte 0x0001869f _0801AC08: .4byte gUnknown_80DB9A0 _0801AC0C: .4byte gUnknown_203B224 _0801AC10: add r0, sp, 0x4 adds r1, r4, 0 movs r2, 0 bl sub_8090E14 ldr r0, _0801AC44 add r1, sp, 0x4 movs r2, 0x50 bl strncpy ldr r4, _0801AC48 ldr r0, [r4] adds r0, 0x54 adds r1, r7, 0 bl sub_8013800 adds r1, r0, 0 ldr r2, _0801AC4C ldr r0, [r4] adds r0, 0x88 ldr r3, [r0] str r5, [sp] _0801AC3C: movs r0, 0x8 bl sub_8014FF0 b _0801ACC4 .align 2, 0 _0801AC44: .4byte gUnknown_202DE58 _0801AC48: .4byte gUnknown_203B224 _0801AC4C: .4byte gUnknown_80DB994 _0801AC50: add r2, sp, 0x78 movs r6, 0 str r6, [sp, 0x78] strb r6, [r2, 0x4] movs r0, 0x1 strb r0, [r2, 0x8] strb r0, [r4] add r4, sp, 0xC8 add r0, sp, 0x4 adds r1, r4, 0 bl sub_8090E14 ldrb r0, [r4, 0x2] bl sub_8091764 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 beq _0801AC9C _0801AC76: ldr r4, _0801AC98 ldr r0, [r4] adds r0, 0x54 adds r1, r7, 0 bl sub_8013800 adds r1, r0, 0 ldr r0, [r4] _0801AC86: adds r0, 0x88 ldr r3, [r0] str r6, [sp] _0801AC8C: movs r0, 0x8 add r2, sp, 0x4 bl xxx_call_draw_string b _0801ACC4 .align 2, 0 _0801AC98: .4byte gUnknown_203B224 _0801AC9C: ldr r0, _0801AD28 add r1, sp, 0x4 movs r2, 0x50 bl strncpy ldr r4, _0801AD2C ldr r0, [r4] adds r0, 0x54 adds r1, r7, 0 bl sub_8013800 adds r1, r0, 0 ldr r2, _0801AD30 ldr r0, [r4] adds r0, 0x88 ldr r3, [r0] str r5, [sp] movs r0, 0x8 bl sub_8014FF0 _0801ACC4: mov r0, r8 bl sub_801AED0 movs r1, 0x1 ands r1, r0 cmp r1, 0 beq _0801ACFE ldr r4, _0801AD2C ldr r0, [r4] adds r0, 0x54 adds r1, r7, 0 bl sub_8013800 adds r2, r0, 0 ldr r1, [r4] adds r0, r1, 0 adds r0, 0x88 ldr r0, [r0] adds r1, 0x8C ldr r1, [r1] movs r4, 0xC ldrsh r3, [r1, r4] subs r3, 0x2 lsls r3, 3 movs r1, 0xA str r1, [sp] movs r1, 0x8 bl sub_8007B7C _0801ACFE: adds r7, 0x1 ldr r1, _0801AD2C ldr r0, [r1] adds r0, 0x6E movs r2, 0 ldrsh r0, [r0, r2] _0801AD0A: adds r2, r1, 0 cmp r7, r0 bge _0801AD12 b _0801AA60 _0801AD12: ldr r0, [r2] adds r0, 0x88 ldr r0, [r0] bl sub_80073E0 add sp, 0xCC pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0801AD28: .4byte gUnknown_202DE58 _0801AD2C: .4byte gUnknown_203B224 _0801AD30: .4byte gUnknown_80DB994 thumb_func_end sub_801A9E0 thumb_func_start sub_801AD34 sub_801AD34: push {r4-r6,lr} sub sp, 0x8 adds r4, r0, 0 bl sub_8008C54 adds r0, r4, 0 bl sub_80073B8 ldr r2, _0801AD98 movs r6, 0 str r6, [sp] movs r0, 0x6 movs r1, 0 adds r3, r4, 0 bl xxx_call_draw_string bl sub_8090A34 adds r2, r0, 0 movs r5, 0x7 str r5, [sp] str r4, [sp, 0x4] movs r0, 0x12 movs r1, 0xD movs r3, 0x2 bl sub_8012BC4 ldr r2, _0801AD9C str r6, [sp] movs r0, 0x16 movs r1, 0xD adds r3, r4, 0 bl xxx_call_draw_string str r5, [sp] str r4, [sp, 0x4] movs r0, 0x2B movs r1, 0xD movs r2, 0x14 movs r3, 0x2 bl sub_8012BC4 adds r0, r4, 0 bl sub_80073E0 add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0801AD98: .4byte gUnknown_80DB9A8 _0801AD9C: .4byte gUnknown_80DB9B0 thumb_func_end sub_801AD34 thumb_func_start sub_801ADA0 sub_801ADA0: push {r4-r6,lr} ldr r5, _0801ADEC ldr r1, [r5] lsls r0, 2 adds r1, r0 ldr r6, [r1] lsls r4, r6, 8 lsrs r0, r4, 24 bl sub_8091524 lsls r0, 24 cmp r0, 0 beq _0801AE12 lsrs r0, r4, 24 bl sub_8090A60 lsls r0, 24 cmp r0, 0 beq _0801ADF4 lsrs r0, r4, 24 bl sub_801AE24 ldr r2, [r5] lsrs r1, r4, 24 lsls r1, 1 adds r2, 0x50 adds r2, r1 lsls r0, 16 lsrs r0, 16 ldrh r2, [r2] adds r0, r2 lsrs r1, r6, 8 lsls r1, 24 lsrs r1, 24 adds r0, r1 ldr r1, _0801ADF0 b _0801AE0E .align 2, 0 _0801ADEC: .4byte gUnknown_203B460 _0801ADF0: .4byte 0x000003e7 _0801ADF4: lsrs r0, r4, 24 bl sub_801AE24 ldr r2, [r5] lsrs r1, r4, 24 lsls r1, 1 adds r2, 0x50 adds r2, r1 lsls r0, 16 lsrs r0, 16 ldrh r2, [r2] adds r0, r2 ldr r1, _0801AE18 _0801AE0E: cmp r0, r1 ble _0801AE1C _0801AE12: movs r0, 0 b _0801AE1E .align 2, 0 _0801AE18: .4byte 0x000003e6 _0801AE1C: movs r0, 0x1 _0801AE1E: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_801ADA0 thumb_func_start sub_801AE24 sub_801AE24: push {r4-r7,lr} adds r7, r0, 0 movs r5, 0 movs r6, 0 b _0801AE74 _0801AE2E: ldr r0, _0801AE64 ldr r0, [r0] lsls r1, r6, 2 adds r0, 0x4 adds r0, r1 ldr r0, [r0] cmp r0, 0 beq _0801AE72 ldr r0, _0801AE68 ldr r0, [r0] adds r0, r1 ldr r4, [r0] lsls r1, r4, 8 lsrs r0, r1, 24 cmp r0, r7 bne _0801AE72 bl sub_8090A60 lsls r0, 24 cmp r0, 0 beq _0801AE6C lsrs r0, r4, 8 lsls r0, 24 lsrs r0, 24 adds r0, r5, r0 b _0801AE6E .align 2, 0 _0801AE64: .4byte gUnknown_203B224 _0801AE68: .4byte gUnknown_203B460 _0801AE6C: adds r0, r5, 0x1 _0801AE6E: lsls r0, 16 lsrs r5, r0, 16 _0801AE72: adds r6, 0x1 _0801AE74: bl sub_8090A34 cmp r6, r0 blt _0801AE2E adds r0, r5, 0 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_801AE24 thumb_func_start sub_801AE84 sub_801AE84: push {r4,lr} movs r2, 0 ldr r4, _0801AEA4 movs r3, 0 _0801AE8C: ldr r0, [r4] lsls r1, r2, 2 adds r0, 0x4 adds r0, r1 str r3, [r0] adds r2, 0x1 cmp r2, 0x13 ble _0801AE8C pop {r4} pop {r0} bx r0 .align 2, 0 _0801AEA4: .4byte gUnknown_203B224 thumb_func_end sub_801AE84 thumb_func_start sub_801AEA8 sub_801AEA8: push {lr} movs r3, 0 ldr r0, _0801AECC ldr r0, [r0] adds r1, r0, 0x4 movs r2, 0x13 _0801AEB4: ldr r0, [r1] cmp r0, 0 beq _0801AEBC adds r3, 0x1 _0801AEBC: adds r1, 0x4 subs r2, 0x1 cmp r2, 0 bge _0801AEB4 adds r0, r3, 0 pop {r1} bx r1 .align 2, 0 _0801AECC: .4byte gUnknown_203B224 thumb_func_end sub_801AEA8 thumb_func_start sub_801AED0 sub_801AED0: ldr r1, _0801AEE0 ldr r1, [r1] lsls r0, 2 adds r1, 0x4 adds r1, r0 ldr r0, [r1] bx lr .align 2, 0 _0801AEE0: .4byte gUnknown_203B224 thumb_func_end sub_801AED0 thumb_func_start sub_801AEE4 sub_801AEE4: ldr r2, _0801AEF4 ldr r2, [r2] lsls r0, 2 adds r2, 0x4 adds r2, r0 str r1, [r2] bx lr .align 2, 0 _0801AEF4: .4byte gUnknown_203B224 thumb_func_end sub_801AEE4 thumb_func_start sub_801AEF8 sub_801AEF8: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 movs r0, 0 mov r9, r0 b _0801AF78 _0801AF08: movs r1, 0x1 add r1, r9 mov r8, r1 mov r7, r8 b _0801AF6E _0801AF12: ldr r2, _0801AF90 ldr r0, [r2] mov r1, r9 lsls r6, r1, 2 adds r0, r6 ldrb r0, [r0, 0x2] str r2, [sp] bl sub_8090D44 adds r4, r0, 0 ldr r2, [sp] ldr r0, [r2] lsls r5, r7, 2 adds r0, r5 ldrb r0, [r0, 0x2] bl sub_8090D44 ldr r2, [sp] cmp r4, r0 bgt _0801AF4C cmp r4, r0 bne _0801AF6C ldr r0, [r2] adds r1, r0, r6 adds r0, r5 ldrb r1, [r1, 0x1] ldrb r0, [r0, 0x1] cmp r1, r0 bcs _0801AF6C _0801AF4C: ldr r0, [r2] adds r2, r0, r6 ldr r3, [r2] adds r0, r5 ldr r1, [r0] str r1, [r2] str r3, [r0] ldr r0, _0801AF94 ldr r0, [r0] adds r0, 0x4 adds r2, r0, r6 ldr r3, [r2] adds r0, r5 ldr r1, [r0] str r1, [r2] str r3, [r0] _0801AF6C: adds r7, 0x1 _0801AF6E: bl sub_8090A34 cmp r7, r0 blt _0801AF12 mov r9, r8 _0801AF78: bl sub_8090A34 subs r0, 0x1 cmp r9, r0 blt _0801AF08 add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0801AF90: .4byte gUnknown_203B460 _0801AF94: .4byte gUnknown_203B224 thumb_func_end sub_801AEF8 thumb_func_start sub_801AF98 sub_801AF98: ldr r0, _0801AFA0 ldr r0, [r0] bx lr .align 2, 0 _0801AFA0: .4byte gUnknown_203B224 thumb_func_end sub_801AF98 thumb_func_start sub_801AFA4 sub_801AFA4: push {r4,r5,lr} adds r4, r0, 0 ldr r5, _0801AFEC movs r0, 0xA4 movs r1, 0x8 bl MemoryAlloc str r0, [r5] str r4, [r0, 0x4] ldr r1, _0801AFF0 ldr r1, [r1] lsls r4, 2 adds r1, r4 ldrb r1, [r1, 0x2] strb r1, [r0, 0x8] ldr r0, [r5] ldrb r0, [r0, 0x8] bl sub_80913CC ldr r1, [r5] strh r0, [r1, 0xA] ldr r0, _0801AFF4 ldrh r1, [r1, 0xA] bl sub_8092C84 movs r0, 0 bl sub_8099690 bl sub_801B2F4 cmp r0, 0 bne _0801AFF8 movs r0, 0x3 bl sub_801B064 b _0801B004 .align 2, 0 _0801AFEC: .4byte gUnknown_203B22C _0801AFF0: .4byte gUnknown_203B460 _0801AFF4: .4byte gUnknown_202E1C8 _0801AFF8: ldr r1, [r5] movs r0, 0x4 str r0, [r1, 0x60] movs r0, 0 bl sub_801B064 _0801B004: movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_801AFA4 thumb_func_start sub_801B00C sub_801B00C: push {lr} ldr r0, _0801B024 ldr r0, [r0] ldr r0, [r0] cmp r0, 0x1 beq _0801B036 cmp r0, 0x1 bgt _0801B028 cmp r0, 0 beq _0801B030 b _0801B03C .align 2, 0 _0801B024: .4byte gUnknown_203B22C _0801B028: cmp r0, 0x4 bne _0801B03C movs r0, 0x3 b _0801B042 _0801B030: bl sub_801B200 b _0801B040 _0801B036: bl sub_801B2AC b _0801B040 _0801B03C: bl sub_801B2D8 _0801B040: movs r0, 0 _0801B042: pop {r1} bx r1 thumb_func_end sub_801B00C thumb_func_start sub_801B048 sub_801B048: push {r4,lr} ldr r4, _0801B060 ldr r0, [r4] cmp r0, 0 beq _0801B05A bl MemoryFree movs r0, 0 str r0, [r4] _0801B05A: pop {r4} pop {r0} bx r0 .align 2, 0 _0801B060: .4byte gUnknown_203B22C thumb_func_end sub_801B048 thumb_func_start sub_801B064 sub_801B064: push {lr} ldr r1, _0801B078 ldr r1, [r1] str r0, [r1] bl nullsub_37 bl sub_801B080 pop {r0} bx r0 .align 2, 0 _0801B078: .4byte gUnknown_203B22C thumb_func_end sub_801B064 thumb_func_start nullsub_37 nullsub_37: bx lr thumb_func_end nullsub_37 thumb_func_start sub_801B080 sub_801B080: push {r4,lr} sub sp, 0x14 ldr r1, _0801B09C ldr r0, [r1] ldr r0, [r0] adds r4, r1, 0 cmp r0, 0x4 bhi _0801B168 lsls r0, 2 ldr r1, _0801B0A0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0801B09C: .4byte gUnknown_203B22C _0801B0A0: .4byte _0801B0A4 .align 2, 0 _0801B0A4: .4byte _0801B0B8 .4byte _0801B0E8 .4byte _0801B0FC .4byte _0801B15C .4byte _0801B168 _0801B0B8: bl sub_801B178 ldr r0, _0801B0E0 ldr r1, _0801B0E4 ldr r3, [r1] ldr r2, [r3, 0x60] adds r3, 0x64 movs r4, 0 str r4, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r4, [sp, 0x8] str r4, [sp, 0xC] movs r1, 0x20 str r1, [sp, 0x10] movs r1, 0 bl sub_8014248 b _0801B168 .align 2, 0 _0801B0E0: .4byte gUnknown_80DB9BC _0801B0E4: .4byte gUnknown_203B22C _0801B0E8: ldr r2, [r4] adds r0, r2, 0 adds r0, 0x58 movs r3, 0 ldrsh r1, [r0, r3] adds r2, 0xC movs r0, 0x2 bl sub_801E80C b _0801B168 _0801B0FC: ldr r1, [r4] adds r0, r1, 0 adds r0, 0xC ldr r1, [r1, 0x5C] adds r1, 0x2C bl sub_8094060 ldr r0, [r4] ldrb r0, [r0, 0x8] bl sub_80915A0 lsls r0, 24 cmp r0, 0 bne _0801B138 ldr r3, _0801B150 ldr r1, [r3] ldr r2, [r4] ldr r0, [r2, 0x4] lsls r0, 2 adds r1, r0 ldrb r0, [r2, 0x8] subs r0, 0x7D strb r0, [r1, 0x1] ldr r1, [r3] ldr r0, [r4] ldr r0, [r0, 0x4] lsls r0, 2 adds r1, r0 movs r0, 0x7C strb r0, [r1, 0x2] _0801B138: movs r0, 0x9C lsls r0, 1 bl sub_8011988 ldr r0, _0801B154 ldr r3, _0801B158 movs r1, 0 movs r2, 0 bl sub_80141B4 b _0801B168 .align 2, 0 _0801B150: .4byte gUnknown_203B460 _0801B154: .4byte gUnknown_80DB9E4 _0801B158: .4byte 0x00000121 _0801B15C: ldr r0, _0801B170 ldr r3, _0801B174 movs r1, 0 movs r2, 0 bl sub_80141B4 _0801B168: add sp, 0x14 pop {r4} pop {r0} bx r0 .align 2, 0 _0801B170: .4byte gUnknown_80DBA0C _0801B174: .4byte 0x00000121 thumb_func_end sub_801B080 thumb_func_start sub_801B178 sub_801B178: push {r4-r7,lr} mov r7, r8 push {r7} movs r5, 0 ldr r1, _0801B1F4 ldr r0, [r1] ldr r0, [r0, 0x4C] cmp r5, r0 bge _0801B1D2 ldr r0, _0801B1F8 mov r8, r0 adds r7, r1, 0 movs r6, 0 _0801B192: ldr r4, _0801B1FC adds r4, r6, r4 ldr r0, [r7] lsls r1, r5, 1 adds r0, 0x50 adds r0, r1 movs r2, 0 ldrsh r1, [r0, r2] movs r0, 0x58 muls r0, r1 mov r2, r8 ldr r1, [r2] adds r1, r0 adds r0, r4, 0 bl sub_808DA34 ldr r2, [r7] lsls r1, r5, 3 adds r0, r2, 0 adds r0, 0x64 adds r0, r1 str r4, [r0] adds r0, r2, 0 adds r0, 0x68 adds r0, r1 adds r1, r5, 0x4 str r1, [r0] adds r6, 0x50 adds r5, 0x1 ldr r0, [r2, 0x4C] cmp r5, r0 blt _0801B192 _0801B1D2: ldr r0, _0801B1F4 ldr r2, [r0] lsls r3, r5, 3 adds r0, r2, 0 adds r0, 0x64 adds r0, r3 movs r1, 0 str r1, [r0] adds r2, 0x68 adds r2, r3 movs r0, 0x1 str r0, [r2] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0801B1F4: .4byte gUnknown_203B22C _0801B1F8: .4byte gUnknown_203B45C _0801B1FC: .4byte gUnknown_202DF98 thumb_func_end sub_801B178 thumb_func_start sub_801B200 sub_801B200: push {r4-r6,lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0801B2A4 ldr r5, _0801B228 ldr r3, [r5] ldr r0, [sp] str r0, [r3, 0x60] ldr r1, [sp] cmp r1, 0 beq _0801B2A4 cmp r1, 0x1 bne _0801B22C movs r0, 0x4 bl sub_801B064 b _0801B2A4 .align 2, 0 _0801B228: .4byte gUnknown_203B22C _0801B22C: subs r1, 0x4 lsls r1, 1 adds r0, r3, 0 adds r0, 0x50 adds r0, r1 ldrh r0, [r0] adds r1, r3, 0 adds r1, 0x58 strh r0, [r1] ldr r2, _0801B26C movs r0, 0 ldrsh r1, [r1, r0] movs r0, 0x58 muls r0, r1 ldr r1, [r2] adds r1, r0 str r1, [r3, 0x5C] ldr r0, _0801B270 bl sub_808DA34 ldr r1, [r5] adds r0, r1, 0 adds r0, 0xC ldr r1, [r1, 0x5C] adds r1, 0x2C bl sub_809401C movs r4, 0 adds r6, r5, 0 movs r5, 0xC b _0801B278 .align 2, 0 _0801B26C: .4byte gUnknown_203B45C _0801B270: .4byte gUnknown_202E218 _0801B274: adds r5, 0x8 adds r4, 0x1 _0801B278: cmp r4, 0x7 bgt _0801B292 ldr r3, [r6] adds r2, r3, r5 ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0801B274 ldrh r1, [r3, 0xA] adds r0, r2, 0 bl sub_8092AD4 _0801B292: cmp r4, 0x3 ble _0801B29E movs r0, 0x1 bl sub_801B064 b _0801B2A4 _0801B29E: movs r0, 0x2 bl sub_801B064 _0801B2A4: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_801B200 thumb_func_start sub_801B2AC sub_801B2AC: push {lr} bl sub_801E8C0 cmp r0, 0x2 beq _0801B2CA cmp r0, 0x2 bcc _0801B2D4 cmp r0, 0x3 bne _0801B2D4 bl sub_801E93C movs r0, 0x2 bl sub_801B064 b _0801B2D4 _0801B2CA: bl sub_801E93C movs r0, 0 bl sub_801B064 _0801B2D4: pop {r0} bx r0 thumb_func_end sub_801B2AC thumb_func_start sub_801B2D8 sub_801B2D8: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0801B2EC movs r0, 0x4 bl sub_801B064 _0801B2EC: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_801B2D8 thumb_func_start sub_801B2F4 sub_801B2F4: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x10 mov r0, sp bl sub_808D580 adds r6, r0, 0 ldr r2, _0801B36C ldr r1, [r2] movs r0, 0 str r0, [r1, 0x4C] movs r5, 0 cmp r5, r6 bge _0801B35A ldr r0, _0801B370 mov r8, r0 adds r7, r2, 0 mov r4, sp _0801B31A: ldr r1, [r4] movs r0, 0x58 muls r0, r1 mov r2, r8 ldr r1, [r2] adds r1, r0 ldr r0, [r7] ldrh r0, [r0, 0xA] movs r2, 0x8 ldrsh r1, [r1, r2] bl sub_808E190 lsls r0, 24 cmp r0, 0 beq _0801B352 ldr r2, [r7] ldr r0, [r2, 0x4C] lsls r0, 1 adds r1, r2, 0 adds r1, 0x50 adds r1, r0 ldr r0, [r4] strh r0, [r1] ldr r0, [r2, 0x4C] cmp r0, 0x3 bgt _0801B35A adds r0, 0x1 str r0, [r2, 0x4C] _0801B352: adds r4, 0x4 adds r5, 0x1 cmp r5, r6 blt _0801B31A _0801B35A: ldr r0, _0801B36C ldr r0, [r0] ldr r0, [r0, 0x4C] add sp, 0x10 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0801B36C: .4byte gUnknown_203B22C _0801B370: .4byte gUnknown_203B45C thumb_func_end sub_801B2F4 thumb_func_start sub_801B374 sub_801B374: push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 ldr r1, _0801B3A8 ldr r4, [r1] bl sub_80913CC lsls r0, 16 lsrs r6, r0, 16 movs r5, 0 _0801B388: ldrh r0, [r4] lsrs r0, 1 movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _0801B3AC movs r0, 0x8 ldrsh r1, [r4, r0] adds r0, r6, 0 bl sub_808E190 lsls r0, 24 cmp r0, 0 beq _0801B3AC movs r0, 0 b _0801B3BA .align 2, 0 _0801B3A8: .4byte gUnknown_203B45C _0801B3AC: adds r5, 0x1 adds r4, 0x58 movs r0, 0xCE lsls r0, 1 cmp r5, r0 ble _0801B388 movs r0, 0x1 _0801B3BA: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_801B374 thumb_func_start sub_801B3C0 sub_801B3C0: push {r4,r5,lr} adds r5, r0, 0 movs r0, 0x1 bl sub_8004D8C ldr r4, _0801B40C movs r0, 0x94 movs r1, 0x8 bl MemoryAlloc str r0, [r4] ldr r1, [r5] str r1, [r0, 0x4] adds r0, 0x88 bl sub_801317C ldr r0, [r4] movs r1, 0 str r1, [r0, 0x24] adds r0, 0x28 bl sub_80140B4 bl sub_8004914 ldr r0, [r4] adds r0, 0x28 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0 bl sub_801B46C movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0801B40C: .4byte gUnknown_203B230 thumb_func_end sub_801B3C0 thumb_func_start sub_801B410 sub_801B410: push {lr} ldr r0, _0801B428 ldr r0, [r0] ldr r0, [r0] cmp r0, 0x1 beq _0801B43C cmp r0, 0x1 bgt _0801B42C cmp r0, 0 beq _0801B436 b _0801B446 .align 2, 0 _0801B428: .4byte gUnknown_203B230 _0801B42C: cmp r0, 0x2 beq _0801B446 cmp r0, 0x3 beq _0801B442 b _0801B446 _0801B436: bl sub_801B51C b _0801B44A _0801B43C: bl sub_801B590 b _0801B44A _0801B442: movs r0, 0x3 b _0801B44C _0801B446: movs r0, 0x2 b _0801B44C _0801B44A: movs r0, 0 _0801B44C: pop {r1} bx r1 thumb_func_end sub_801B410 thumb_func_start sub_801B450 sub_801B450: push {r4,lr} ldr r4, _0801B468 ldr r0, [r4] cmp r0, 0 beq _0801B462 bl MemoryFree movs r0, 0 str r0, [r4] _0801B462: pop {r4} pop {r0} bx r0 .align 2, 0 _0801B468: .4byte gUnknown_203B230 thumb_func_end sub_801B450 thumb_func_start sub_801B46C sub_801B46C: push {lr} ldr r1, _0801B47C ldr r1, [r1] str r0, [r1] bl sub_801B480 pop {r0} bx r0 .align 2, 0 _0801B47C: .4byte gUnknown_203B230 thumb_func_end sub_801B46C thumb_func_start sub_801B480 sub_801B480: push {r4,r5,lr} sub sp, 0x4 ldr r5, _0801B4B0 ldr r0, [r5] ldr r4, [r0] cmp r4, 0x1 beq _0801B4B4 cmp r4, 0x1 bgt _0801B50C cmp r4, 0 bne _0801B50C ldr r0, [r0, 0x24] bl sub_8008C54 ldr r2, [r5] adds r0, r2, 0x4 ldr r1, [r2, 0x24] adds r2, 0x10 bl sub_80913E0 ldr r1, [r5] str r0, [r1, 0xC] str r4, [r1, 0x20] b _0801B50C .align 2, 0 _0801B4B0: .4byte gUnknown_203B230 _0801B4B4: ldr r0, [r0, 0x24] bl sub_8008C54 ldr r0, [r5] ldr r0, [r0, 0x24] bl sub_80073B8 ldr r0, [r5] ldr r1, [r0, 0x8] lsls r1, 2 adds r0, 0x10 adds r0, r1 ldr r1, [r0] ldr r0, _0801B514 ldr r1, [r1] bl strcpy ldr r2, _0801B518 ldr r0, [r5] ldr r3, [r0, 0x24] movs r4, 0 str r4, [sp] movs r0, 0x10 movs r1, 0 bl sub_8014FF0 ldr r3, [r5] ldr r1, [r3, 0x8] lsls r1, 2 adds r0, r3, 0 adds r0, 0x10 adds r0, r1 ldr r0, [r0] ldr r2, [r0, 0x4] ldr r3, [r3, 0x24] str r4, [sp] movs r0, 0x4 movs r1, 0x10 bl sub_8014FF0 ldr r0, [r5] ldr r0, [r0, 0x24] bl sub_80073E0 _0801B50C: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0801B514: .4byte gUnknown_202DF98 _0801B518: .4byte gUnknown_80DBA4C thumb_func_end sub_801B480 thumb_func_start sub_801B51C sub_801B51C: push {r4,lr} ldr r0, _0801B558 ldr r2, [r0] ldr r1, [r2, 0xC] adds r4, r0, 0 cmp r1, 0 beq _0801B540 ldr r0, [r2, 0x20] movs r1, 0x8 ands r0, r1 cmp r0, 0 beq _0801B538 bl sub_8013F84 _0801B538: ldr r1, [r4] ldr r0, [r1, 0x20] adds r0, 0x1 str r0, [r1, 0x20] _0801B540: ldr r1, [r4] adds r0, r1, 0 adds r0, 0x88 ldr r1, [r1, 0x24] bl sub_8012A64 cmp r0, 0x1 beq _0801B55C cmp r0, 0x2 beq _0801B57E b _0801B58A .align 2, 0 _0801B558: .4byte gUnknown_203B230 _0801B55C: movs r0, 0 bl sub_80119D4 ldr r1, [r4] ldr r0, [r1, 0xC] cmp r0, 0 beq _0801B576 movs r0, 0 str r0, [r1, 0x8] movs r0, 0x1 bl sub_801B46C b _0801B58A _0801B576: movs r0, 0x3 bl sub_801B46C b _0801B58A _0801B57E: movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 bl sub_801B46C _0801B58A: pop {r4} pop {r0} bx r0 thumb_func_end sub_801B51C thumb_func_start sub_801B590 sub_801B590: push {r4,lr} ldr r0, _0801B5D0 ldr r3, [r0] ldr r1, [r3, 0xC] subs r1, 0x1 ldr r2, [r3, 0x8] adds r4, r0, 0 cmp r2, r1 bge _0801B5B8 ldr r0, [r3, 0x20] movs r1, 0x8 ands r0, r1 cmp r0, 0 beq _0801B5B0 bl sub_8013F84 _0801B5B0: ldr r1, [r4] ldr r0, [r1, 0x20] adds r0, 0x1 str r0, [r1, 0x20] _0801B5B8: ldr r1, [r4] adds r0, r1, 0 adds r0, 0x88 ldr r1, [r1, 0x24] bl sub_8012A64 cmp r0, 0x1 beq _0801B5D4 cmp r0, 0x2 beq _0801B5F8 b _0801B604 .align 2, 0 _0801B5D0: .4byte gUnknown_203B230 _0801B5D4: movs r0, 0 bl sub_80119D4 ldr r0, [r4] ldr r1, [r0, 0x8] adds r1, 0x1 str r1, [r0, 0x8] ldr r0, [r0, 0xC] cmp r1, r0 bge _0801B5F0 movs r0, 0x1 bl sub_801B46C b _0801B604 _0801B5F0: movs r0, 0 bl sub_801B46C b _0801B604 _0801B5F8: movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 bl sub_801B46C _0801B604: pop {r4} pop {r0} bx r0 thumb_func_end sub_801B590 thumb_func_start sub_801B60C sub_801B60C: push {r4-r7,lr} adds r5, r0, 0 adds r4, r1, 0 lsls r4, 24 lsrs r4, 24 lsls r2, 24 lsrs r7, r2, 24 ldr r6, _0801B650 movs r0, 0xAA lsls r0, 1 movs r1, 0x8 bl MemoryAlloc str r0, [r6] adds r2, r0, 0 adds r2, 0xC8 movs r1, 0 str r1, [r2] str r5, [r0] strb r4, [r0, 0x12] ldr r0, [r6] ldrb r0, [r0, 0x12] bl sub_8090A60 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 beq _0801B654 ldr r0, [r6] strb r7, [r0, 0x11] ldr r0, [r6] strb r7, [r0, 0xC] b _0801B65E .align 2, 0 _0801B650: .4byte gUnknown_203B234 _0801B654: ldr r0, [r6] strb r1, [r0, 0x11] ldr r1, [r6] movs r0, 0x1 strb r0, [r1, 0xC] _0801B65E: ldr r5, _0801B6A0 ldr r0, [r5] movs r1, 0 movs r2, 0x1 strb r2, [r0, 0x10] ldr r0, [r5] str r1, [r0, 0x14] strb r1, [r0, 0x18] ldr r0, [r5] strb r2, [r0, 0x1C] ldr r4, _0801B6A4 bl sub_808D33C adds r1, r0, 0 adds r0, r4, 0 movs r2, 0x6 bl sub_808D9AC ldr r0, _0801B6A8 ldr r2, [r5] adds r1, r2, 0 adds r1, 0x10 adds r2, 0x14 bl sub_8090E14 movs r0, 0 bl sub_801B748 movs r0, 0x1 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0801B6A0: .4byte gUnknown_203B234 _0801B6A4: .4byte gUnknown_202DF98 _0801B6A8: .4byte gUnknown_202DE58 thumb_func_end sub_801B60C thumb_func_start sub_801B6AC sub_801B6AC: push {lr} ldr r0, _0801B6C4 ldr r0, [r0] ldr r0, [r0, 0x4] subs r0, 0x6 cmp r0, 0xA bhi _0801B720 lsls r0, 2 ldr r1, _0801B6C8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0801B6C4: .4byte gUnknown_203B234 _0801B6C8: .4byte _0801B6CC .align 2, 0 _0801B6CC: .4byte _0801B6FC .4byte _0801B702 .4byte _0801B708 .4byte _0801B708 .4byte _0801B70E .4byte _0801B714 .4byte _0801B71A .4byte _0801B720 .4byte _0801B720 .4byte _0801B720 .4byte _0801B6F8 _0801B6F8: movs r0, 0x3 b _0801B726 _0801B6FC: bl sub_801BC64 b _0801B724 _0801B702: bl sub_801BC94 b _0801B724 _0801B708: bl sub_801BCCC b _0801B724 _0801B70E: bl sub_801BD80 b _0801B724 _0801B714: bl sub_801BEAC b _0801B724 _0801B71A: bl sub_801BE30 b _0801B724 _0801B720: bl sub_801BEC8 _0801B724: movs r0, 0 _0801B726: pop {r1} bx r1 thumb_func_end sub_801B6AC thumb_func_start sub_801B72C sub_801B72C: push {r4,lr} ldr r4, _0801B744 ldr r0, [r4] cmp r0, 0 beq _0801B73E bl MemoryFree movs r0, 0 str r0, [r4] _0801B73E: pop {r4} pop {r0} bx r0 .align 2, 0 _0801B744: .4byte gUnknown_203B234 thumb_func_end sub_801B72C thumb_func_start sub_801B748 sub_801B748: push {lr} ldr r1, _0801B75C ldr r1, [r1] str r0, [r1, 0x4] bl sub_801B760 bl sub_801B874 pop {r0} bx r0 .align 2, 0 _0801B75C: .4byte gUnknown_203B234 thumb_func_end sub_801B748 thumb_func_start sub_801B760 sub_801B760: push {r4-r7,lr} ldr r0, _0801B77C ldr r1, [r0] ldr r1, [r1, 0x4] subs r1, 0x1 adds r4, r0, 0 cmp r1, 0xE bls _0801B772 b _0801B86A _0801B772: lsls r0, r1, 2 ldr r1, _0801B780 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0801B77C: .4byte gUnknown_203B234 _0801B780: .4byte _0801B784 .align 2, 0 _0801B784: .4byte _0801B7C0 .4byte _0801B86A .4byte _0801B86A .4byte _0801B86A .4byte _0801B86A .4byte _0801B7C0 .4byte _0801B7C0 .4byte _0801B7C0 .4byte _0801B7C0 .4byte _0801B800 .4byte _0801B7C0 .4byte _0801B840 .4byte _0801B7C0 .4byte _0801B7C0 .4byte _0801B7C0 _0801B7C0: ldr r4, _0801B7F8 ldr r0, [r4] adds r0, 0xF4 bl sub_8006518 mov r12, r4 ldr r4, _0801B7FC movs r3, 0 movs r2, 0x3 _0801B7D2: mov r0, r12 ldr r1, [r0] adds r1, r3 adds r1, 0xF4 adds r0, r4, 0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} adds r3, 0x18 subs r2, 0x1 cmp r2, 0 bge _0801B7D2 bl sub_8004914 ldr r0, _0801B7F8 ldr r0, [r0] b _0801B82E .align 2, 0 _0801B7F8: .4byte gUnknown_203B234 _0801B7FC: .4byte gUnknown_80DBA58 _0801B800: ldr r0, [r4] adds r0, 0xF4 bl sub_8006518 bl sub_801BB5C ldr r2, [r4] movs r0, 0x92 lsls r0, 1 adds r2, r0 ldr r1, _0801B83C ldm r1!, {r3,r5,r6} stm r2!, {r3,r5,r6} ldm r1!, {r3,r5,r7} stm r2!, {r3,r5,r7} ldr r1, [r4] adds r0, r1, r0 adds r1, 0xCC bl sub_8012CAC bl sub_8004914 ldr r0, [r4] _0801B82E: adds r0, 0xF4 movs r1, 0x1 movs r2, 0x1 bl sub_800641C b _0801B86A .align 2, 0 _0801B83C: .4byte gUnknown_80DBA70 _0801B840: ldr r0, [r4] adds r0, 0xF4 bl sub_8006518 ldr r1, [r4] movs r6, 0x86 lsls r6, 1 adds r1, r6 ldr r0, _0801B870 ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} bl sub_8004914 ldr r0, [r4] adds r0, 0xF4 movs r1, 0x1 movs r2, 0x1 bl sub_800641C _0801B86A: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0801B870: .4byte gUnknown_80DBA88 thumb_func_end sub_801B760 thumb_func_start sub_801B874 sub_801B874: push {r4,lr} sub sp, 0x14 ldr r1, _0801B890 ldr r0, [r1] ldr r0, [r0, 0x4] adds r4, r1, 0 cmp r0, 0x10 bls _0801B886 b _0801BB0E _0801B886: lsls r0, 2 ldr r1, _0801B894 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0801B890: .4byte gUnknown_203B234 _0801B894: .4byte _0801B898 .align 2, 0 _0801B898: .4byte _0801B8DC .4byte _0801B9BC .4byte _0801B9D8 .4byte _0801B9E0 .4byte _0801B9F0 .4byte _0801B9F8 .4byte _0801BA08 .4byte _0801BA34 .4byte _0801BA60 .4byte _0801BA6E .4byte _0801BA76 .4byte _0801BA94 .4byte _0801BA9E .4byte _0801BAD0 .4byte _0801BAE0 .4byte _0801BAFC .4byte _0801BB0E _0801B8DC: ldr r1, [r4] ldrb r0, [r1, 0x12] cmp r0, 0xEA bne _0801B8FE movs r0, 0x10 str r0, [r1, 0x8] movs r0, 0 movs r1, 0x47 movs r2, 0x1 bl sub_8001784 cmp r0, 0 bne _0801B914 movs r0, 0 movs r1, 0x47 movs r2, 0x1 b _0801B92A _0801B8FE: cmp r0, 0xEB bne _0801B938 movs r0, 0x10 str r0, [r1, 0x8] movs r0, 0 movs r1, 0x47 movs r2, 0 bl sub_8001784 cmp r0, 0 beq _0801B924 _0801B914: movs r0, 0xFA lsls r0, 2 bl sub_80913A0 movs r0, 0x4 bl sub_801B748 b _0801BB0E _0801B924: movs r0, 0 movs r1, 0x47 movs r2, 0 _0801B92A: movs r3, 0x1 bl sub_800199C movs r0, 0x3 bl sub_801B748 b _0801BB0E _0801B938: bl sub_8090A34 cmp r0, 0x13 ble _0801B986 ldr r0, [r4] ldrb r0, [r0, 0x12] bl sub_8091524 lsls r0, 24 cmp r0, 0 beq _0801B968 ldr r0, _0801B970 ldr r1, [r0] ldr r2, [r4] ldrb r0, [r2, 0x12] lsls r0, 1 adds r1, 0x50 adds r3, r1, r0 ldrh r1, [r3] ldrb r0, [r2, 0xC] adds r1, r0 ldr r0, _0801B974 cmp r1, r0 ble _0801B978 _0801B968: ldr r1, [r4] movs r0, 0x6 b _0801B99C .align 2, 0 _0801B970: .4byte gUnknown_203B460 _0801B974: .4byte 0x000003e7 _0801B978: strh r1, [r3] movs r0, 0xCB bl sub_8011988 ldr r1, [r4] movs r0, 0x5 b _0801B99C _0801B986: ldr r0, [r4] adds r0, 0x10 bl sub_8091290 bl sub_80910B4 movs r0, 0xCB bl sub_8011988 ldr r1, [r4] movs r0, 0x10 _0801B99C: str r0, [r1, 0x8] ldr r0, _0801B9B0 ldr r0, [r0] ldr r0, [r0] cmp r0, 0x1 bne _0801B9B4 movs r0, 0x2 bl sub_801B748 b _0801BB0E .align 2, 0 _0801B9B0: .4byte gUnknown_203B234 _0801B9B4: movs r0, 0x1 bl sub_801B748 b _0801BB0E _0801B9BC: movs r0, 0 bl sub_808D544 cmp r0, 0x1 bgt _0801B9D0 ldr r0, _0801B9CC b _0801BAE8 .align 2, 0 _0801B9CC: .4byte gUnknown_80DBAA0 _0801B9D0: ldr r0, _0801B9D4 b _0801BAE8 .align 2, 0 _0801B9D4: .4byte gUnknown_80DBAD0 _0801B9D8: ldr r0, _0801B9DC b _0801BAE8 .align 2, 0 _0801B9DC: .4byte gUnknown_80DBB08 _0801B9E0: movs r0, 0xD4 bl sub_8011988 ldr r0, _0801B9EC b _0801BAE8 .align 2, 0 _0801B9EC: .4byte gUnknown_80DBB38 _0801B9F0: ldr r0, _0801B9F4 b _0801BAE8 .align 2, 0 _0801B9F4: .4byte gUnknown_80DBB9C _0801B9F8: ldr r1, [r4] movs r0, 0x10 str r0, [r1, 0x8] ldr r0, _0801BA04 b _0801BAE8 .align 2, 0 _0801BA04: .4byte gUnknown_80DBC28 _0801BA08: bl sub_801BB20 ldr r0, _0801BA2C ldr r1, _0801BA30 ldr r3, [r1] adds r3, 0xCC movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] str r2, [sp, 0x10] movs r1, 0 movs r2, 0x4 bl sub_8014248 b _0801BB0E .align 2, 0 _0801BA2C: .4byte gUnknown_80DBC60 _0801BA30: .4byte gUnknown_203B234 _0801BA34: bl sub_801BC24 ldr r0, _0801BA58 ldr r1, _0801BA5C ldr r3, [r1] adds r3, 0xCC movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] str r2, [sp, 0x10] movs r1, 0 movs r2, 0x3 bl sub_8014248 b _0801BB0E .align 2, 0 _0801BA58: .4byte gUnknown_80DBC98 _0801BA5C: .4byte gUnknown_203B234 _0801BA60: movs r0, 0x1 movs r1, 0x3 movs r2, 0 movs r3, 0xA bl sub_801A5D8 b _0801BB0E _0801BA6E: movs r0, 0x1 bl sub_801A8D0 b _0801BB0E _0801BA76: bl sub_801A9E0 ldr r0, _0801BA90 ldr r2, [r0] adds r0, r2, 0 adds r0, 0x28 adds r1, r2, 0 adds r1, 0xCC adds r2, 0xC8 ldr r2, [r2] str r2, [sp] movs r2, 0x2 b _0801BAC0 .align 2, 0 _0801BA90: .4byte gUnknown_203B234 _0801BA94: ldr r0, [r4] adds r0, 0x20 bl sub_801B3C0 b _0801BB0E _0801BA9E: bl sub_801A9E0 ldr r4, _0801BACC ldr r0, [r4] adds r0, 0x28 movs r1, 0 bl sub_8012EA4 bl sub_801BC24 ldr r1, [r4] adds r0, r1, 0 adds r0, 0x78 adds r1, 0xCC movs r2, 0x3 str r2, [sp] movs r2, 0x1 _0801BAC0: str r2, [sp, 0x4] movs r2, 0 movs r3, 0 bl sub_8012D60 b _0801BB0E .align 2, 0 _0801BACC: .4byte gUnknown_203B234 _0801BAD0: ldr r1, [r4] movs r0, 0x10 str r0, [r1, 0x8] ldr r0, _0801BADC b _0801BAE8 .align 2, 0 _0801BADC: .4byte gUnknown_80DBCC4 _0801BAE0: ldr r1, [r4] movs r0, 0x10 str r0, [r1, 0x8] ldr r0, _0801BAF4 _0801BAE8: ldr r3, _0801BAF8 movs r1, 0 movs r2, 0 bl sub_80141B4 b _0801BB0E .align 2, 0 _0801BAF4: .4byte gUnknown_80DBCE8 _0801BAF8: .4byte 0x00000101 _0801BAFC: ldr r1, [r4] movs r0, 0x10 str r0, [r1, 0x8] ldr r0, _0801BB18 ldr r3, _0801BB1C movs r1, 0 movs r2, 0 bl sub_80141B4 _0801BB0E: add sp, 0x14 pop {r4} pop {r0} bx r0 .align 2, 0 _0801BB18: .4byte gUnknown_80DBD24 _0801BB1C: .4byte 0x00000101 thumb_func_end sub_801B874 thumb_func_start sub_801BB20 sub_801BB20: ldr r0, _0801BB50 ldr r3, [r0] movs r2, 0 adds r1, r3, 0 adds r1, 0xCC ldr r0, _0801BB54 str r0, [r1] adds r1, 0x4 movs r0, 0x4 str r0, [r1] adds r1, 0x4 ldr r0, _0801BB58 str r0, [r1] adds r1, 0x4 movs r0, 0x5 str r0, [r1] adds r0, r3, 0 adds r0, 0xDC str r2, [r0] adds r1, 0x8 movs r0, 0x1 negs r0, r0 str r0, [r1] bx lr .align 2, 0 _0801BB50: .4byte gUnknown_203B234 _0801BB54: .4byte gUnknown_80DBD58 _0801BB58: .4byte gUnknown_80DBD6C thumb_func_end sub_801BB20 thumb_func_start sub_801BB5C sub_801BB5C: push {r4-r7,lr} ldr r4, _0801BBEC ldr r2, [r4] adds r1, r2, 0 adds r1, 0xCC ldr r0, _0801BBF0 str r0, [r1] adds r1, 0x4 movs r0, 0x6 str r0, [r1] ldr r0, [r2, 0x24] bl sub_801ADA0 lsls r0, 24 cmp r0, 0 bne _0801BB86 ldr r0, [r4] adds r0, 0xD0 movs r1, 0x1 negs r1, r1 str r1, [r0] _0801BB86: ldr r0, [r4] mov r12, r0 movs r3, 0x1 movs r2, 0x8 mov r1, r12 adds r1, 0xD4 ldr r0, _0801BBF4 str r0, [r1] adds r1, 0x4 movs r0, 0x7 str r0, [r1] adds r1, 0x4 ldr r0, _0801BBF8 ldr r0, [r0] str r0, [r1] mov r0, r12 adds r0, 0xE0 str r2, [r0] movs r5, 0x3 adds r1, 0x8 movs r0, 0 str r0, [r1] mov r0, r12 adds r0, 0xE8 str r3, [r0] movs r3, 0 adds r6, r4, 0 movs r7, 0x1 negs r7, r7 mov r4, r12 adds r4, 0xC8 subs r1, 0x14 _0801BBC6: ldr r2, [r1] cmp r2, r7 beq _0801BBD2 ldr r0, [r4] cmp r2, r0 beq _0801BC1C _0801BBD2: adds r1, 0x8 adds r3, 0x1 cmp r3, r5 blt _0801BBC6 movs r3, 0 cmp r3, r5 bge _0801BC1C ldr r2, [r6] adds r0, r2, 0 adds r0, 0xD0 ldr r1, [r0] b _0801BC0E .align 2, 0 _0801BBEC: .4byte gUnknown_203B234 _0801BBF0: .4byte gUnknown_80DBD80 _0801BBF4: .4byte gUnknown_80DBD88 _0801BBF8: .4byte gUnknown_80D4970 _0801BBFC: adds r3, 0x1 cmp r3, r5 bge _0801BC1C ldr r2, [r6] lsls r0, r3, 3 adds r1, r2, 0 adds r1, 0xD0 adds r1, r0 ldr r1, [r1] _0801BC0E: movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _0801BBFC adds r0, r2, 0 adds r0, 0xC8 str r1, [r0] _0801BC1C: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_801BB5C thumb_func_start sub_801BC24 sub_801BC24: ldr r0, _0801BC58 ldr r0, [r0] mov r12, r0 movs r3, 0 mov r1, r12 adds r1, 0xCC ldr r0, _0801BC5C ldr r0, [r0] str r0, [r1] adds r1, 0x4 movs r0, 0x2 str r0, [r1] movs r2, 0x1 adds r1, 0x4 ldr r0, _0801BC60 ldr r0, [r0] str r0, [r1] adds r1, 0x4 movs r0, 0x3 str r0, [r1] mov r0, r12 adds r0, 0xDC str r3, [r0] adds r0, 0x4 str r2, [r0] bx lr .align 2, 0 _0801BC58: .4byte gUnknown_203B234 _0801BC5C: .4byte gUnknown_80D4920 _0801BC60: .4byte gUnknown_80D4928 thumb_func_end sub_801BC24 thumb_func_start sub_801BC64 sub_801BC64: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0801BC8C ldr r0, [sp] cmp r0, 0x4 beq _0801BC7E cmp r0, 0x5 beq _0801BC86 b _0801BC8C _0801BC7E: movs r0, 0x8 bl sub_801B748 b _0801BC8C _0801BC86: movs r0, 0x7 bl sub_801B748 _0801BC8C: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_801BC64 thumb_func_start sub_801BC94 sub_801BC94: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0801BCC6 ldr r0, [sp] cmp r0, 0x2 beq _0801BCB8 cmp r0, 0x2 bgt _0801BCB2 cmp r0, 0x1 beq _0801BCC0 b _0801BCC6 _0801BCB2: cmp r0, 0x3 beq _0801BCC0 b _0801BCC6 _0801BCB8: movs r0, 0xD bl sub_801B748 b _0801BCC6 _0801BCC0: movs r0, 0x6 bl sub_801B748 _0801BCC6: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_801BC94 thumb_func_start sub_801BCCC sub_801BCCC: push {lr} movs r0, 0x1 bl sub_801A6E8 cmp r0, 0x4 bhi _0801BD7A lsls r0, 2 ldr r1, _0801BCE4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0801BCE4: .4byte _0801BCE8 .align 2, 0 _0801BCE8: .4byte _0801BD7A .4byte _0801BD7A .4byte _0801BD70 .4byte _0801BCFC .4byte _0801BD34 _0801BCFC: bl sub_801A8AC ldr r1, _0801BD28 ldr r2, [r1] str r0, [r2, 0x24] ldr r1, _0801BD2C ldr r1, [r1] lsls r0, 2 adds r1, r0 ldr r0, [r1] str r0, [r2, 0x20] ldr r0, _0801BD30 adds r1, r2, 0 adds r1, 0x20 adds r2, 0x14 bl sub_8090E14 movs r0, 0xA bl sub_801B748 b _0801BD7A .align 2, 0 _0801BD28: .4byte gUnknown_203B234 _0801BD2C: .4byte gUnknown_203B460 _0801BD30: .4byte gUnknown_202DEA8 _0801BD34: bl sub_801A8AC ldr r1, _0801BD64 ldr r2, [r1] str r0, [r2, 0x24] ldr r1, _0801BD68 ldr r1, [r1] lsls r0, 2 adds r1, r0 ldr r0, [r1] str r0, [r2, 0x20] ldr r0, _0801BD6C adds r1, r2, 0 adds r1, 0x20 adds r2, 0x14 bl sub_8090E14 movs r0, 0 bl sub_8099690 movs r0, 0xB bl sub_801B748 b _0801BD7A .align 2, 0 _0801BD64: .4byte gUnknown_203B234 _0801BD68: .4byte gUnknown_203B460 _0801BD6C: .4byte gUnknown_202DEA8 _0801BD70: bl sub_801A928 movs r0, 0x6 bl sub_801B748 _0801BD7A: pop {r0} bx r0 thumb_func_end sub_801BCCC thumb_func_start sub_801BD80 sub_801BD80: push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] bl sub_801A6E8 ldr r4, _0801BDC4 ldr r0, [r4] adds r0, 0x28 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _0801BDB2 ldr r0, [r4] adds r0, 0x28 mov r1, sp bl sub_8013114 ldr r1, [sp] cmp r1, 0x1 beq _0801BDB2 ldr r0, [r4] adds r0, 0xC8 str r1, [r0] _0801BDB2: ldr r0, [sp] cmp r0, 0x6 beq _0801BDD2 cmp r0, 0x6 bgt _0801BDC8 cmp r0, 0x1 beq _0801BE22 b _0801BE28 .align 2, 0 _0801BDC4: .4byte gUnknown_203B234 _0801BDC8: cmp r0, 0x7 beq _0801BE0C cmp r0, 0x8 beq _0801BE14 b _0801BE28 _0801BDD2: ldr r4, _0801BE08 ldr r0, [r4] adds r0, 0x20 bl sub_80917B8 ldr r0, [r4] ldr r0, [r0, 0x24] bl sub_80911F8 ldr r0, [r4] adds r0, 0x10 bl sub_8091290 bl sub_80910B4 movs r0, 0xCB bl sub_8011988 movs r0, 0 bl sub_8099690 bl sub_801A928 movs r0, 0xE bl sub_801B748 b _0801BE28 .align 2, 0 _0801BE08: .4byte gUnknown_203B234 _0801BE0C: movs r0, 0xC bl sub_801B748 b _0801BE28 _0801BE14: movs r0, 0 bl sub_8099690 movs r0, 0xB bl sub_801B748 b _0801BE28 _0801BE22: movs r0, 0x9 bl sub_801B748 _0801BE28: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_801BD80 thumb_func_start sub_801BE30 sub_801BE30: push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] bl sub_801A6E8 ldr r4, _0801BE70 ldr r0, [r4] adds r0, 0x28 bl sub_8012FD8 ldr r0, [r4] adds r0, 0x78 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _0801BE5E ldr r0, [r4] adds r0, 0x78 mov r1, sp bl sub_8013114 _0801BE5E: ldr r0, [sp] cmp r0, 0x2 beq _0801BE80 cmp r0, 0x2 bgt _0801BE74 cmp r0, 0x1 beq _0801BE78 b _0801BEA4 .align 2, 0 _0801BE70: .4byte gUnknown_203B234 _0801BE74: cmp r0, 0x3 bne _0801BEA4 _0801BE78: movs r0, 0x9 bl sub_801B748 b _0801BEA4 _0801BE80: ldr r0, [r4] ldr r0, [r0, 0x24] bl sub_80911F8 ldr r0, [r4] adds r0, 0x10 bl sub_8091290 bl sub_80910B4 movs r0, 0xCB bl sub_8011988 bl sub_801A928 movs r0, 0xF bl sub_801B748 _0801BEA4: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_801BE30 thumb_func_start sub_801BEAC sub_801BEAC: push {lr} bl sub_801B410 cmp r0, 0x1 bls _0801BEC4 cmp r0, 0x3 bhi _0801BEC4 bl sub_801B450 movs r0, 0x9 bl sub_801B748 _0801BEC4: pop {r0} bx r0 thumb_func_end sub_801BEAC thumb_func_start sub_801BEC8 sub_801BEC8: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0801BEE0 ldr r0, _0801BEE8 ldr r0, [r0] ldr r0, [r0, 0x8] bl sub_801B748 _0801BEE0: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _0801BEE8: .4byte gUnknown_203B234 thumb_func_end sub_801BEC8 thumb_func_start sub_801BEEC sub_801BEEC: push {r4-r6,lr} lsls r0, 16 asrs r5, r0, 16 adds r0, r5, 0 bl sub_801C5F0 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0 bne _0801BF40 ldr r4, _0801BF38 movs r0, 0x92 lsls r0, 1 movs r1, 0x8 bl MemoryAlloc str r0, [r4] str r6, [r0, 0x30] strh r5, [r0, 0x4] ldr r3, _0801BF3C movs r1, 0x58 adds r2, r5, 0 muls r2, r1 ldr r1, [r3] adds r1, r2 str r1, [r0, 0x8] adds r0, 0xC movs r2, 0x14 ldrsh r1, [r1, r2] bl sub_808EBA8 ldr r1, [r4] str r0, [r1, 0x2C] movs r0, 0 bl sub_801BFB4 movs r0, 0x1 b _0801BF42 .align 2, 0 _0801BF38: .4byte gUnknown_203B238 _0801BF3C: .4byte gUnknown_203B45C _0801BF40: movs r0, 0 _0801BF42: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_801BEEC thumb_func_start sub_801BF48 sub_801BF48: push {lr} ldr r0, _0801BF60 ldr r0, [r0] ldr r0, [r0] cmp r0, 0x4 bhi _0801BF90 lsls r0, 2 ldr r1, _0801BF64 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0801BF60: .4byte gUnknown_203B238 _0801BF64: .4byte _0801BF68 .align 2, 0 _0801BF68: .4byte _0801BF80 .4byte _0801BF80 .4byte _0801BF86 .4byte _0801BF8C .4byte _0801BF7C _0801BF7C: movs r0, 0x3 b _0801BF92 _0801BF80: bl sub_801C118 b _0801BF90 _0801BF86: bl sub_801C1A0 b _0801BF90 _0801BF8C: bl sub_801C228 _0801BF90: movs r0, 0 _0801BF92: pop {r1} bx r1 thumb_func_end sub_801BF48 thumb_func_start sub_801BF98 sub_801BF98: push {r4,lr} ldr r4, _0801BFB0 ldr r0, [r4] cmp r0, 0 beq _0801BFAA bl MemoryFree movs r0, 0 str r0, [r4] _0801BFAA: pop {r4} pop {r0} bx r0 .align 2, 0 _0801BFB0: .4byte gUnknown_203B238 thumb_func_end sub_801BF98 thumb_func_start sub_801BFB4 sub_801BFB4: push {lr} ldr r1, _0801BFC8 ldr r1, [r1] str r0, [r1] bl sub_801BFCC bl sub_801C03C pop {r0} bx r0 .align 2, 0 _0801BFC8: .4byte gUnknown_203B238 thumb_func_end sub_801BFB4 thumb_func_start sub_801BFCC sub_801BFCC: push {r4-r7,lr} ldr r4, _0801BFF0 ldr r0, [r4] adds r0, 0xC4 bl sub_8006518 ldr r1, [r4] ldr r0, [r1] cmp r0, 0x2 bne _0801BFF8 adds r1, 0xF4 ldr r0, _0801BFF4 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r5-r7} stm r1!, {r5-r7} b _0801C01A .align 2, 0 _0801BFF0: .4byte gUnknown_203B238 _0801BFF4: .4byte gUnknown_80DBDB0 _0801BFF8: mov r12, r4 ldr r4, _0801C034 movs r3, 0 movs r2, 0x3 _0801C000: mov r0, r12 ldr r1, [r0] adds r1, r3 adds r1, 0xC4 adds r0, r4, 0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} adds r3, 0x18 subs r2, 0x1 cmp r2, 0 bge _0801C000 _0801C01A: bl sub_8004914 ldr r0, _0801C038 ldr r0, [r0] adds r0, 0xC4 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0801C034: .4byte gUnknown_80DBD98 _0801C038: .4byte gUnknown_203B238 thumb_func_end sub_801BFCC thumb_func_start sub_801C03C sub_801C03C: push {lr} sub sp, 0x8 ldr r1, _0801C058 ldr r0, [r1] ldr r0, [r0] adds r2, r1, 0 cmp r0, 0x4 bhi _0801C0C2 lsls r0, 2 ldr r1, _0801C05C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0801C058: .4byte gUnknown_203B238 _0801C05C: .4byte _0801C060 .align 2, 0 _0801C060: .4byte _0801C074 .4byte _0801C084 .4byte _0801C08C .4byte _0801C0B8 .4byte _0801C0C2 _0801C074: ldr r0, [r2] movs r1, 0x4 ldrsh r0, [r0, r1] movs r1, 0 movs r2, 0x8 bl sub_801C244 b _0801C0C2 _0801C084: movs r0, 0x1 bl sub_801C3B0 b _0801C0C2 _0801C08C: bl sub_801C4C8 bl sub_801C0C8 ldr r0, _0801C0B4 ldr r2, [r0] adds r0, r2, 0 adds r0, 0x74 adds r1, r2, 0 adds r1, 0x34 ldr r2, [r2, 0x30] str r2, [sp] movs r2, 0x2 str r2, [sp, 0x4] movs r2, 0 movs r3, 0 bl sub_8012D60 b _0801C0C2 .align 2, 0 _0801C0B4: .4byte gUnknown_203B238 _0801C0B8: ldr r0, [r2] adds r0, 0x28 ldrb r0, [r0] bl sub_801C620 _0801C0C2: add sp, 0x8 pop {r0} bx r0 thumb_func_end sub_801C03C thumb_func_start sub_801C0C8 sub_801C0C8: push {r4,r5,lr} ldr r3, _0801C10C ldr r1, [r3] movs r4, 0 ldr r0, _0801C110 str r0, [r1, 0x34] movs r0, 0x2 str r0, [r1, 0x38] movs r2, 0x1 ldr r0, _0801C114 ldr r0, [r0] str r0, [r1, 0x3C] movs r0, 0x3 str r0, [r1, 0x40] movs r5, 0x2 str r4, [r1, 0x44] str r2, [r1, 0x48] movs r2, 0 ldr r4, [r1, 0x30] adds r1, 0x38 _0801C0F0: ldr r0, [r1] cmp r0, r4 beq _0801C104 adds r1, 0x8 adds r2, 0x1 cmp r2, r5 blt _0801C0F0 ldr r1, [r3] movs r0, 0x2 str r0, [r1, 0x30] _0801C104: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0801C10C: .4byte gUnknown_203B238 _0801C110: .4byte gUnknown_80DBDC8 _0801C114: .4byte gUnknown_80D4970 thumb_func_end sub_801C0C8 thumb_func_start sub_801C118 sub_801C118: push {lr} movs r0, 0x1 bl sub_801C308 cmp r0, 0x4 bhi _0801C19A lsls r0, 2 ldr r1, _0801C130 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0801C130: .4byte _0801C134 .align 2, 0 _0801C134: .4byte _0801C19A .4byte _0801C19A .4byte _0801C190 .4byte _0801C148 .4byte _0801C16C _0801C148: bl sub_801C390 ldr r1, _0801C168 ldr r2, [r1] str r0, [r2, 0x24] adds r1, r2, 0 adds r1, 0xC adds r1, r0 ldrb r0, [r1] adds r2, 0x28 strb r0, [r2] movs r0, 0x2 bl sub_801BFB4 b _0801C19A .align 2, 0 _0801C168: .4byte gUnknown_203B238 _0801C16C: bl sub_801C390 ldr r1, _0801C18C ldr r2, [r1] str r0, [r2, 0x24] adds r1, r2, 0 adds r1, 0xC adds r1, r0 ldrb r0, [r1] adds r2, 0x28 strb r0, [r2] movs r0, 0x3 bl sub_801BFB4 b _0801C19A .align 2, 0 _0801C18C: .4byte gUnknown_203B238 _0801C190: bl sub_801C3F8 movs r0, 0x4 bl sub_801BFB4 _0801C19A: pop {r0} bx r0 thumb_func_end sub_801C118 thumb_func_start sub_801C1A0 sub_801C1A0: push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] bl sub_801C308 ldr r4, _0801C1E0 ldr r0, [r4] adds r0, 0x74 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _0801C1D0 ldr r0, [r4] adds r0, 0x74 mov r1, sp bl sub_8013114 ldr r1, [sp] cmp r1, 0x1 beq _0801C1D0 ldr r0, [r4] str r1, [r0, 0x30] _0801C1D0: ldr r0, [sp] cmp r0, 0x2 beq _0801C1EA cmp r0, 0x2 bgt _0801C1E4 cmp r0, 0x1 beq _0801C218 b _0801C21E .align 2, 0 _0801C1E0: .4byte gUnknown_203B238 _0801C1E4: cmp r0, 0x3 beq _0801C210 b _0801C21E _0801C1EA: ldr r0, _0801C208 bl sub_8011988 ldr r0, _0801C20C ldr r1, [r0] ldr r0, [r1, 0x8] adds r0, 0x20 adds r1, 0x28 ldrb r1, [r1] bl sub_808EBF4 movs r0, 0x1 bl sub_801BFB4 b _0801C21E .align 2, 0 _0801C208: .4byte 0x00000133 _0801C20C: .4byte gUnknown_203B238 _0801C210: movs r0, 0x3 bl sub_801BFB4 b _0801C21E _0801C218: movs r0, 0x1 bl sub_801BFB4 _0801C21E: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_801C1A0 thumb_func_start sub_801C228 sub_801C228: push {lr} bl sub_801C674 cmp r0, 0x1 bls _0801C240 cmp r0, 0x3 bhi _0801C240 bl sub_801C6B4 movs r0, 0x1 bl sub_801BFB4 _0801C240: pop {r0} bx r0 thumb_func_end sub_801C228 thumb_func_start sub_801C244 sub_801C244: push {r4-r7,lr} adds r6, r1, 0 adds r7, r2, 0 lsls r0, 16 asrs r0, 16 adds r4, r0, 0 bl sub_801C5F0 lsls r0, 24 cmp r0, 0 beq _0801C25E movs r0, 0 b _0801C2F6 _0801C25E: ldr r5, _0801C2FC ldr r0, [r5] cmp r0, 0 bne _0801C270 movs r0, 0xC4 movs r1, 0x8 bl MemoryAlloc str r0, [r5] _0801C270: ldr r0, [r5] strh r4, [r0] ldr r3, _0801C300 movs r1, 0x58 adds r2, r4, 0 muls r2, r1 ldr r1, [r3] adds r1, r2 str r1, [r0, 0x4] adds r0, 0x8 movs r2, 0x14 ldrsh r1, [r1, r2] bl sub_808EBA8 adds r1, r0, 0 ldr r0, [r5] str r1, [r0, 0x20] str r6, [r0, 0x58] lsls r1, r6, 1 adds r1, r6 lsls r1, 3 adds r1, 0x60 adds r1, r0, r1 str r1, [r0, 0x5C] adds r0, 0x60 bl sub_8006518 ldr r1, [r5] ldr r2, [r1, 0x58] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, 0x60 ldr r0, _0801C304 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldr r1, [r5] ldr r0, [r1, 0x5C] adds r1, 0xC0 str r1, [r0, 0x14] adds r1, r7, 0 bl sub_8012D08 bl sub_8004914 ldr r0, [r5] adds r0, 0x60 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r1, [r5] adds r0, r1, 0 adds r0, 0x24 ldr r1, [r1, 0x20] adds r2, r7, 0 adds r3, r6, 0 bl sub_8013818 bl sub_801C440 bl sub_801C4C8 movs r0, 0x1 _0801C2F6: pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0801C2FC: .4byte gUnknown_203B23C _0801C300: .4byte gUnknown_203B45C _0801C304: .4byte gUnknown_80DBDF0 thumb_func_end sub_801C244 thumb_func_start sub_801C308 sub_801C308: push {lr} lsls r0, 24 cmp r0, 0 bne _0801C324 ldr r0, _0801C320 ldr r0, [r0] adds r0, 0x24 bl sub_8013660 movs r0, 0 b _0801C38A .align 2, 0 _0801C320: .4byte gUnknown_203B23C _0801C324: ldr r0, _0801C33C ldr r0, [r0] adds r0, 0x24 bl GetKeyPress cmp r0, 0x2 beq _0801C346 cmp r0, 0x2 bgt _0801C340 cmp r0, 0x1 beq _0801C350 b _0801C364 .align 2, 0 _0801C33C: .4byte gUnknown_203B23C _0801C340: cmp r0, 0x4 beq _0801C35A b _0801C364 _0801C346: movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 b _0801C38A _0801C350: movs r0, 0 bl sub_80119D4 movs r0, 0x3 b _0801C38A _0801C35A: movs r0, 0x4 bl sub_80119D4 movs r0, 0x4 b _0801C38A _0801C364: ldr r0, _0801C37C ldr r0, [r0] adds r0, 0x24 movs r1, 0x1 bl sub_80138B8 lsls r0, 24 cmp r0, 0 bne _0801C380 movs r0, 0 b _0801C38A .align 2, 0 _0801C37C: .4byte gUnknown_203B23C _0801C380: bl sub_801C440 bl sub_801C4C8 movs r0, 0x1 _0801C38A: pop {r1} bx r1 thumb_func_end sub_801C308 thumb_func_start sub_801C390 sub_801C390: ldr r0, _0801C3AC ldr r2, [r0] adds r0, r2, 0 adds r0, 0x42 movs r3, 0 ldrsh r1, [r0, r3] subs r0, 0x2 movs r3, 0 ldrsh r0, [r0, r3] muls r0, r1 movs r3, 0x3C ldrsh r1, [r2, r3] adds r0, r1 bx lr .align 2, 0 _0801C3AC: .4byte gUnknown_203B23C thumb_func_end sub_801C390 thumb_func_start sub_801C3B0 sub_801C3B0: push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8004914 ldr r5, _0801C3F4 ldr r0, [r5] adds r0, 0x60 movs r1, 0 movs r2, 0 bl sub_800641C ldr r0, [r5] ldr r1, [r0, 0x20] adds r2, r0, 0 adds r2, 0x46 strh r1, [r2] adds r0, 0x24 bl sub_8013984 bl sub_801C440 bl sub_801C4C8 cmp r4, 0 beq _0801C3EE ldr r0, [r5] adds r0, 0x24 bl AddMenuCursorSprite _0801C3EE: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0801C3F4: .4byte gUnknown_203B23C thumb_func_end sub_801C3B0 thumb_func_start sub_801C3F8 sub_801C3F8: push {r4,r5,lr} ldr r4, _0801C438 ldr r2, [r4] cmp r2, 0 beq _0801C432 ldr r0, [r2, 0x58] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 adds r1, 0x60 ldr r0, _0801C43C ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} bl sub_8004914 ldr r0, [r4] adds r0, 0x60 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _0801C432: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0801C438: .4byte gUnknown_203B23C _0801C43C: .4byte gUnknown_80DBDD8 thumb_func_end sub_801C3F8 thumb_func_start sub_801C440 sub_801C440: push {r4,lr} ldr r4, _0801C4C4 ldr r0, [r4] adds r1, r0, 0 adds r1, 0x44 ldrh r1, [r1] adds r0, 0xC0 movs r2, 0 strb r1, [r0] ldr r0, [r4] adds r1, r0, 0 adds r1, 0x42 ldrh r1, [r1] adds r0, 0xC1 strb r1, [r0] ldr r0, [r4] adds r0, 0xC2 movs r1, 0xA strb r1, [r0] ldr r0, [r4] adds r0, 0xC3 strb r2, [r0] bl sub_8004914 ldr r0, [r4] adds r0, 0x60 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] movs r1, 0x3E ldrsh r0, [r0, r1] movs r1, 0xC bl sub_80095E4 adds r0, 0x2 ldr r2, [r4] ldr r3, [r2, 0x58] lsls r1, r3, 1 adds r1, r3 lsls r1, 3 adds r1, r2, r1 adds r1, 0x6E lsls r0, 16 lsrs r0, 16 strh r0, [r1] ldr r3, [r2, 0x58] lsls r1, r3, 1 adds r1, r3 lsls r1, 3 adds r2, r1 adds r2, 0x70 strh r0, [r2] bl sub_8004914 ldr r0, [r4] adds r0, 0x60 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4} pop {r0} bx r0 .align 2, 0 _0801C4C4: .4byte gUnknown_203B23C thumb_func_end sub_801C440 thumb_func_start sub_801C4C8 sub_801C4C8: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 ldr r6, _0801C594 ldr r0, [r6] ldr r0, [r0, 0x58] bl sub_8008C54 ldr r0, [r6] ldr r0, [r0, 0x58] bl sub_80073B8 ldr r0, [r6] adds r1, r0, 0 adds r1, 0x42 movs r2, 0 ldrsh r4, [r1, r2] lsls r4, 3 adds r5, r4, 0 adds r5, 0xA ldr r2, _0801C598 ldr r3, [r0, 0x58] movs r0, 0 str r0, [sp] adds r0, r5, 0 movs r1, 0 bl xxx_call_draw_string adds r4, 0x4 ldr r1, [r6] adds r0, r1, 0 adds r0, 0xC2 ldrb r0, [r0] lsls r0, 3 adds r5, r4, r0 adds r0, r1, 0 adds r0, 0x42 movs r3, 0 ldrsh r2, [r0, r3] adds r2, 0x1 movs r0, 0x7 str r0, [sp] ldr r0, [r1, 0x58] str r0, [sp, 0x4] adds r0, r5, 0 movs r1, 0 movs r3, 0x1 bl sub_8012BC4 movs r5, 0 ldr r0, [r6] movs r1, 0x3E ldrsh r0, [r0, r1] cmp r5, r0 bge _0801C5CC ldr r2, _0801C59C mov r8, r2 _0801C53C: ldr r2, [r6] adds r0, r2, 0 adds r0, 0x42 movs r3, 0 ldrsh r1, [r0, r3] subs r0, 0x2 movs r3, 0 ldrsh r0, [r0, r3] muls r1, r0 adds r1, r5 adds r0, r2, 0 adds r0, 0x8 adds r0, r1 ldrb r4, [r0] adds r0, r2, 0 adds r0, 0x24 adds r1, r5, 0 bl sub_8013800 adds r7, r0, 0 adds r0, r4, 0 bl sub_808EAB0 adds r1, r0, 0 mov r0, r8 movs r2, 0x50 bl strncpy ldr r0, [r6] ldr r0, [r0, 0x4] adds r0, 0x20 movs r1, 0x1 lsls r1, r4 bl sub_808ECD0 lsls r0, 24 cmp r0, 0 beq _0801C5A4 mov r0, r8 subs r0, 0x50 ldr r1, _0801C5A0 bl strcpy b _0801C5AE .align 2, 0 _0801C594: .4byte gUnknown_203B23C _0801C598: .4byte gUnknown_80DBE08 _0801C59C: .4byte gUnknown_202DEA8 _0801C5A0: .4byte gUnknown_80DBE14 _0801C5A4: mov r0, r8 subs r0, 0x50 ldr r1, _0801C5E4 bl strcpy _0801C5AE: ldr r0, [r6] ldr r3, [r0, 0x58] movs r0, 0 str r0, [sp] movs r0, 0xC adds r1, r7, 0 ldr r2, _0801C5E8 bl sub_8014FF0 adds r5, 0x1 ldr r0, [r6] movs r1, 0x3E ldrsh r0, [r0, r1] cmp r5, r0 blt _0801C53C _0801C5CC: ldr r0, _0801C5EC ldr r0, [r0] ldr r0, [r0, 0x58] bl sub_80073E0 add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0801C5E4: .4byte gUnknown_80DBE18 _0801C5E8: .4byte gUnknown_80DBE1C _0801C5EC: .4byte gUnknown_203B23C thumb_func_end sub_801C4C8 thumb_func_start sub_801C5F0 sub_801C5F0: push {lr} sub sp, 0x18 lsls r0, 16 asrs r0, 16 ldr r2, _0801C614 movs r1, 0x58 muls r1, r0 ldr r0, [r2] adds r0, r1 movs r2, 0x14 ldrsh r1, [r0, r2] mov r0, sp bl sub_808EBA8 cmp r0, 0 beq _0801C618 movs r0, 0 b _0801C61A .align 2, 0 _0801C614: .4byte gUnknown_203B45C _0801C618: movs r0, 0x1 _0801C61A: add sp, 0x18 pop {r1} bx r1 thumb_func_end sub_801C5F0 thumb_func_start sub_801C620 sub_801C620: push {r4-r6,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x1 bl sub_8004D8C ldr r5, _0801C670 movs r0, 0x94 movs r1, 0x8 bl MemoryAlloc str r0, [r5] movs r6, 0 strb r4, [r0, 0x4] ldr r0, [r5] adds r0, 0x88 bl sub_801317C ldr r0, [r5] str r6, [r0, 0x24] adds r0, 0x28 bl sub_80140B4 bl sub_8004914 ldr r0, [r5] adds r0, 0x28 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0 bl sub_801C6D0 movs r0, 0x1 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0801C670: .4byte gUnknown_203B240 thumb_func_end sub_801C620 thumb_func_start sub_801C674 sub_801C674: push {lr} ldr r0, _0801C68C ldr r0, [r0] ldr r0, [r0] cmp r0, 0x1 beq _0801C6A0 cmp r0, 0x1 bgt _0801C690 cmp r0, 0 beq _0801C69A b _0801C6AA .align 2, 0 _0801C68C: .4byte gUnknown_203B240 _0801C690: cmp r0, 0x2 beq _0801C6AA cmp r0, 0x3 beq _0801C6A6 b _0801C6AA _0801C69A: bl sub_801C7D4 b _0801C6AE _0801C6A0: bl sub_801C848 b _0801C6AE _0801C6A6: movs r0, 0x3 b _0801C6B0 _0801C6AA: movs r0, 0x2 b _0801C6B0 _0801C6AE: movs r0, 0 _0801C6B0: pop {r1} bx r1 thumb_func_end sub_801C674 thumb_func_start sub_801C6B4 sub_801C6B4: push {r4,lr} ldr r4, _0801C6CC ldr r0, [r4] cmp r0, 0 beq _0801C6C6 bl MemoryFree movs r0, 0 str r0, [r4] _0801C6C6: pop {r4} pop {r0} bx r0 .align 2, 0 _0801C6CC: .4byte gUnknown_203B240 thumb_func_end sub_801C6B4 thumb_func_start sub_801C6D0 sub_801C6D0: push {lr} ldr r1, _0801C6E0 ldr r1, [r1] str r0, [r1] bl sub_801C6E4 pop {r0} bx r0 .align 2, 0 _0801C6E0: .4byte gUnknown_203B240 thumb_func_end sub_801C6D0 thumb_func_start sub_801C6E4 sub_801C6E4: push {r4,r5,lr} sub sp, 0x4 ldr r5, _0801C760 ldr r0, [r5] ldr r4, [r0] cmp r4, 0x1 beq _0801C76C cmp r4, 0x1 bgt _0801C7C4 cmp r4, 0 bne _0801C7C4 ldr r0, [r0, 0x24] bl sub_8008C54 ldr r0, [r5] ldr r0, [r0, 0x24] bl sub_80073B8 ldr r0, [r5] ldrb r0, [r0, 0x4] bl sub_808EAB0 adds r1, r0, 0 ldr r0, _0801C764 bl strcpy ldr r2, _0801C768 str r4, [sp] movs r0, 0x10 movs r1, 0 movs r3, 0 bl sub_8014FF0 ldr r0, [r5] ldrb r0, [r0, 0x4] bl sub_808EADC adds r2, r0, 0 ldr r0, [r5] ldr r3, [r0, 0x24] str r4, [sp] movs r0, 0x8 movs r1, 0x10 bl xxx_call_draw_string ldr r0, [r5] ldr r0, [r0, 0x24] bl sub_80073E0 ldr r0, [r5] ldrb r0, [r0, 0x4] bl sub_808EADC ldr r1, [r5] adds r1, 0x10 bl sub_8097DF0 ldr r1, [r5] str r0, [r1, 0xC] str r4, [r1, 0x20] b _0801C7C4 .align 2, 0 _0801C760: .4byte gUnknown_203B240 _0801C764: .4byte gUnknown_202DE58 _0801C768: .4byte gUnknown_80DBE2C _0801C76C: ldr r0, [r0, 0x24] bl sub_8008C54 ldr r0, [r5] ldr r0, [r0, 0x24] bl sub_80073B8 ldr r0, [r5] ldr r1, [r0, 0x8] lsls r1, 2 adds r0, 0x10 adds r0, r1 ldr r1, [r0] ldr r0, _0801C7CC ldr r1, [r1] bl strcpy ldr r2, _0801C7D0 ldr r0, [r5] ldr r3, [r0, 0x24] movs r4, 0 str r4, [sp] movs r0, 0x10 movs r1, 0 bl sub_8014FF0 ldr r3, [r5] ldr r1, [r3, 0x8] lsls r1, 2 adds r0, r3, 0 adds r0, 0x10 adds r0, r1 ldr r0, [r0] ldr r2, [r0, 0x4] ldr r3, [r3, 0x24] str r4, [sp] movs r0, 0x4 movs r1, 0x10 bl sub_8014FF0 ldr r0, [r5] ldr r0, [r0, 0x24] bl sub_80073E0 _0801C7C4: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0801C7CC: .4byte gUnknown_202DF98 _0801C7D0: .4byte gUnknown_80DBE30 thumb_func_end sub_801C6E4 thumb_func_start sub_801C7D4 sub_801C7D4: push {r4,lr} ldr r0, _0801C810 ldr r2, [r0] ldr r1, [r2, 0xC] adds r4, r0, 0 cmp r1, 0 beq _0801C7F8 ldr r0, [r2, 0x20] movs r1, 0x8 ands r0, r1 cmp r0, 0 beq _0801C7F0 bl sub_8013F84 _0801C7F0: ldr r1, [r4] ldr r0, [r1, 0x20] adds r0, 0x1 str r0, [r1, 0x20] _0801C7F8: ldr r1, [r4] adds r0, r1, 0 adds r0, 0x88 ldr r1, [r1, 0x24] bl sub_8012A64 cmp r0, 0x1 beq _0801C814 cmp r0, 0x2 beq _0801C836 b _0801C842 .align 2, 0 _0801C810: .4byte gUnknown_203B240 _0801C814: movs r0, 0 bl sub_80119D4 ldr r1, [r4] ldr r0, [r1, 0xC] cmp r0, 0 beq _0801C82E movs r0, 0 str r0, [r1, 0x8] movs r0, 0x1 bl sub_801C6D0 b _0801C842 _0801C82E: movs r0, 0x3 bl sub_801C6D0 b _0801C842 _0801C836: movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 bl sub_801C6D0 _0801C842: pop {r4} pop {r0} bx r0 thumb_func_end sub_801C7D4 thumb_func_start sub_801C848 sub_801C848: push {r4,lr} ldr r0, _0801C888 ldr r3, [r0] ldr r1, [r3, 0xC] subs r1, 0x1 ldr r2, [r3, 0x8] adds r4, r0, 0 cmp r2, r1 bge _0801C870 ldr r0, [r3, 0x20] movs r1, 0x8 ands r0, r1 cmp r0, 0 beq _0801C868 bl sub_8013F84 _0801C868: ldr r1, [r4] ldr r0, [r1, 0x20] adds r0, 0x1 str r0, [r1, 0x20] _0801C870: ldr r1, [r4] adds r0, r1, 0 adds r0, 0x88 ldr r1, [r1, 0x24] bl sub_8012A64 cmp r0, 0x1 beq _0801C88C cmp r0, 0x2 beq _0801C8B0 b _0801C8BC .align 2, 0 _0801C888: .4byte gUnknown_203B240 _0801C88C: movs r0, 0 bl sub_80119D4 ldr r0, [r4] ldr r1, [r0, 0x8] adds r1, 0x1 str r1, [r0, 0x8] ldr r0, [r0, 0xC] cmp r1, r0 bge _0801C8A8 movs r0, 0x1 bl sub_801C6D0 b _0801C8BC _0801C8A8: movs r0, 0 bl sub_801C6D0 b _0801C8BC _0801C8B0: movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 bl sub_801C6D0 _0801C8BC: pop {r4} pop {r0} bx r0 thumb_func_end sub_801C848 thumb_func_start sub_801C8C4 sub_801C8C4: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r4, r0, 0 adds r6, r1, 0 mov r9, r2 mov r10, r3 bl sub_801CF14 lsls r0, 24 cmp r0, 0 beq _0801C8E4 movs r0, 0 b _0801C9D0 _0801C8E4: ldr r5, _0801C9E0 ldr r0, [r5] cmp r0, 0 bne _0801C8F6 ldr r0, _0801C9E4 movs r1, 0x8 bl MemoryAlloc str r0, [r5] _0801C8F6: ldr r0, [r5] str r4, [r0] bl sub_801CF94 ldr r0, [r5] movs r4, 0x9D lsls r4, 3 adds r1, r0, r4 str r6, [r1] ldr r1, _0801C9E8 mov r8, r1 adds r2, r0, r1 lsls r1, r6, 1 adds r1, r6 lsls r1, 3 movs r7, 0x9E lsls r7, 3 adds r1, r7 adds r1, r0, r1 str r1, [r2] adds r0, r7 bl sub_8006518 ldr r1, [r5] adds r4, r1, r4 ldr r2, [r4] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, r7 ldr r0, _0801C9EC ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldr r2, [r5] mov r1, r8 adds r0, r2, r1 ldr r1, [r0] movs r3, 0xAA lsls r3, 3 adds r0, r2, r3 str r0, [r1, 0x14] mov r4, r9 cmp r4, 0 beq _0801C96C movs r1, 0x9D lsls r1, 3 adds r0, r2, r1 ldr r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 subs r3, 0x58 adds r1, r2, r3 adds r1, r0 ldr r0, [r4] str r0, [r1] _0801C96C: ldr r0, [r5] add r0, r8 ldr r0, [r0] mov r1, r10 bl sub_8012D08 bl sub_8004914 ldr r0, [r5] adds r0, r7 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, [r5] ldr r0, _0801C9F0 adds r4, r0 bl sub_801CE58 adds r1, r0, 0 adds r0, r4, 0 mov r2, r10 adds r3, r6, 0 bl sub_8013818 ldr r0, _0801C9F4 ldr r4, [r5] ldr r1, [r0] ldr r0, [r4] cmp r1, r0 bne _0801C9C6 ldr r0, _0801C9F8 ldrh r1, [r0] ldr r2, _0801C9FC adds r0, r4, r2 strh r1, [r0] ldr r0, _0801CA00 ldrh r1, [r0] ldr r3, _0801CA04 adds r0, r4, r3 strh r1, [r0] ldr r1, _0801C9F0 adds r0, r4, r1 bl sub_8013984 _0801C9C6: bl sub_801CC38 bl sub_801CCD8 movs r0, 0x1 _0801C9D0: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0801C9E0: .4byte gUnknown_203B244 _0801C9E4: .4byte 0x00000554 _0801C9E8: .4byte 0x000004ec _0801C9EC: .4byte gUnknown_80DBE54 _0801C9F0: .4byte 0x000004b4 _0801C9F4: .4byte gUnknown_203B248 _0801C9F8: .4byte gUnknown_203B24C _0801C9FC: .4byte 0x000004cc _0801CA00: .4byte gUnknown_203B24E _0801CA04: .4byte 0x000004d2 thumb_func_end sub_801C8C4 thumb_func_start sub_801CA08 sub_801CA08: push {r4-r6,lr} lsls r0, 24 cmp r0, 0 bne _0801CA28 ldr r0, _0801CA20 ldr r0, [r0] ldr r1, _0801CA24 adds r0, r1 bl sub_8013660 movs r0, 0 b _0801CB1E .align 2, 0 _0801CA20: .4byte gUnknown_203B244 _0801CA24: .4byte 0x000004b4 _0801CA28: ldr r0, _0801CA44 ldr r0, [r0] ldr r1, _0801CA48 adds r0, r1 bl GetKeyPress subs r0, 0x1 cmp r0, 0x5 bhi _0801CAF2 lsls r0, 2 ldr r1, _0801CA4C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0801CA44: .4byte gUnknown_203B244 _0801CA48: .4byte 0x000004b4 _0801CA4C: .4byte _0801CA50 .align 2, 0 _0801CA50: .4byte _0801CA72 .4byte _0801CA68 .4byte _0801CAF2 .4byte _0801CAE8 .4byte _0801CA7C .4byte _0801CA7C _0801CA68: movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 b _0801CB1E _0801CA72: movs r0, 0 bl sub_80119D4 movs r0, 0x3 b _0801CB1E _0801CA7C: ldr r0, _0801CAD8 ldr r0, [r0] ldr r0, [r0] cmp r0, 0x1 bne _0801CAF2 bl sub_801CB24 lsls r0, 24 lsrs r5, r0, 24 adds r0, r5, 0 bl sub_801CFE0 movs r6, 0 cmp r0, 0 bne _0801CAB0 bl sub_8090A34 adds r4, r0, 0 bl sub_801CFB8 adds r4, r0 cmp r4, 0x13 bgt _0801CAAC movs r6, 0x1 _0801CAAC: cmp r6, 0 beq _0801CAE0 _0801CAB0: movs r0, 0x6 bl sub_80119D4 ldr r0, _0801CAD8 ldr r0, [r0] lsls r1, r5, 2 adds r2, r0, 0 adds r2, 0xF4 adds r2, r1 ldr r1, [r2] movs r3, 0x1 eors r1, r3 str r1, [r2] ldr r1, _0801CADC adds r0, r1 movs r1, 0 bl sub_80138B8 b _0801CB18 .align 2, 0 _0801CAD8: .4byte gUnknown_203B244 _0801CADC: .4byte 0x000004b4 _0801CAE0: movs r0, 0x2 bl sub_80119D4 b _0801CAF2 _0801CAE8: movs r0, 0x4 bl sub_80119D4 movs r0, 0x4 b _0801CB1E _0801CAF2: ldr r0, _0801CB0C ldr r0, [r0] ldr r1, _0801CB10 adds r0, r1 movs r1, 0x1 bl sub_80138B8 lsls r0, 24 cmp r0, 0 bne _0801CB14 movs r0, 0 b _0801CB1E .align 2, 0 _0801CB0C: .4byte gUnknown_203B244 _0801CB10: .4byte 0x000004b4 _0801CB14: bl sub_801CC38 _0801CB18: bl sub_801CCD8 movs r0, 0x1 _0801CB1E: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_801CA08 thumb_func_start sub_801CB24 sub_801CB24: ldr r0, _0801CB50 ldr r0, [r0] ldr r2, _0801CB54 adds r1, r0, r2 movs r3, 0 ldrsh r2, [r1, r3] movs r3, 0x9A lsls r3, 3 adds r1, r0, r3 movs r3, 0 ldrsh r1, [r1, r3] muls r2, r1 ldr r3, _0801CB58 adds r1, r0, r3 movs r3, 0 ldrsh r1, [r1, r3] adds r2, r1 adds r0, 0x4 adds r0, r2 ldrb r0, [r0] bx lr .align 2, 0 _0801CB50: .4byte gUnknown_203B244 _0801CB54: .4byte 0x000004d2 _0801CB58: .4byte 0x000004cc thumb_func_end sub_801CB24 thumb_func_start sub_801CB5C sub_801CB5C: push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8004914 ldr r5, _0801CBAC ldr r0, [r5] movs r1, 0x9E lsls r1, 3 adds r0, r1 movs r1, 0 movs r2, 0 bl sub_800641C bl sub_801CE58 adds r2, r0, 0 ldr r0, [r5] ldr r3, _0801CBB0 adds r1, r0, r3 strh r2, [r1] ldr r1, _0801CBB4 adds r0, r1 bl sub_8013984 bl sub_801CC38 bl sub_801CCD8 cmp r4, 0 beq _0801CBA6 ldr r0, [r5] ldr r3, _0801CBB4 adds r0, r3 bl AddMenuCursorSprite _0801CBA6: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0801CBAC: .4byte gUnknown_203B244 _0801CBB0: .4byte 0x000004d6 _0801CBB4: .4byte 0x000004b4 thumb_func_end sub_801CB5C thumb_func_start sub_801CBB8 sub_801CBB8: push {r4-r6,lr} ldr r5, _0801CC1C ldr r2, [r5] cmp r2, 0 beq _0801CC16 ldr r1, _0801CC20 ldr r0, [r2] str r0, [r1] ldr r1, _0801CC24 ldr r3, _0801CC28 adds r0, r2, r3 ldrh r0, [r0] strh r0, [r1] ldr r1, _0801CC2C ldr r6, _0801CC30 adds r0, r2, r6 ldrh r0, [r0] strh r0, [r1] movs r1, 0x9D lsls r1, 3 adds r0, r2, r1 ldr r0, [r0] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 movs r4, 0x9E lsls r4, 3 adds r1, r4 ldr r0, _0801CC34 ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} bl sub_8004914 ldr r0, [r5] adds r0, r4 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r5] bl MemoryFree movs r0, 0 str r0, [r5] _0801CC16: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0801CC1C: .4byte gUnknown_203B244 _0801CC20: .4byte gUnknown_203B248 _0801CC24: .4byte gUnknown_203B24C _0801CC28: .4byte 0x000004cc _0801CC2C: .4byte gUnknown_203B24E _0801CC30: .4byte 0x000004d2 _0801CC34: .4byte gUnknown_80DBE3C thumb_func_end sub_801CBB8 thumb_func_start sub_801CC38 sub_801CC38: push {r4,r5,lr} ldr r4, _0801CCC4 ldr r0, [r4] movs r1, 0xAA lsls r1, 3 adds r0, r1 movs r2, 0 movs r1, 0x1 strb r1, [r0] ldr r0, [r4] ldr r1, _0801CCC8 adds r0, r1 strb r2, [r0] ldr r0, [r4] adds r1, 0x1 adds r0, r1 movs r1, 0xC strb r1, [r0] ldr r0, [r4] ldr r1, _0801CCCC adds r0, r1 strb r2, [r0] ldr r0, [r4] ldr r2, _0801CCD0 adds r0, r2 movs r1, 0 ldrsh r0, [r0, r1] movs r1, 0xC bl sub_80095E4 adds r0, 0x2 lsls r0, 16 ldr r3, [r4] movs r2, 0x9D lsls r2, 3 adds r5, r3, r2 ldr r2, [r5] lsls r1, r2, 1 adds r1, r2 lsls r1, 3 adds r1, r3, r1 ldr r2, _0801CCD4 adds r1, r2 asrs r2, r0, 16 lsrs r0, 16 strh r0, [r1] ldr r1, [r5] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r3, r0 adds r2, 0x2 movs r0, 0xA0 lsls r0, 3 adds r3, r0 strh r2, [r3] bl sub_8004914 ldr r0, [r4] movs r1, 0x9E lsls r1, 3 adds r0, r1 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0801CCC4: .4byte gUnknown_203B244 _0801CCC8: .4byte 0x00000551 _0801CCCC: .4byte 0x00000553 _0801CCD0: .4byte 0x000004ce _0801CCD4: .4byte 0x000004fe thumb_func_end sub_801CC38 thumb_func_start sub_801CCD8 sub_801CCD8: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x58 ldr r4, _0801CE38 ldr r0, [r4] movs r5, 0x9D lsls r5, 3 adds r0, r5 ldr r0, [r0] bl sub_8008C54 ldr r0, [r4] adds r0, r5 ldr r0, [r0] bl sub_80073B8 ldr r2, _0801CE3C ldr r0, [r4] adds r0, r5 ldr r3, [r0] movs r0, 0 str r0, [sp] movs r0, 0xA movs r1, 0 bl xxx_call_draw_string ldr r3, [r4] ldr r1, _0801CE40 adds r0, r3, r1 ldrb r0, [r0] lsls r0, 3 adds r0, 0x4 ldr r2, _0801CE44 adds r1, r3, r2 movs r6, 0 ldrsh r2, [r1, r6] adds r2, 0x1 movs r1, 0x7 str r1, [sp] adds r3, r5 ldr r1, [r3] str r1, [sp, 0x4] movs r1, 0 movs r3, 0x2 bl sub_8012BC4 movs r7, 0 ldr r0, [r4] ldr r1, _0801CE48 adds r0, r1 movs r2, 0 ldrsh r0, [r0, r2] cmp r7, r0 bge _0801CE1A adds r6, r4, 0 ldr r3, _0801CE4C mov r9, r3 mov r8, r5 _0801CD50: ldr r1, [r6] ldr r4, _0801CE44 adds r0, r1, r4 movs r3, 0 ldrsh r2, [r0, r3] subs r4, 0x2 adds r0, r1, r4 movs r3, 0 ldrsh r0, [r0, r3] muls r0, r2 adds r0, r7 adds r1, 0x4 adds r1, r0 ldrb r5, [r1] add r0, sp, 0x8 adds r1, r5, 0 movs r2, 0 bl sub_8090DC4 ldr r0, [r6] add r0, r9 adds r1, r7, 0 bl sub_8013800 adds r1, r0, 0 ldr r0, [r6] add r0, r8 ldr r3, [r0] movs r0, 0 str r0, [sp] movs r0, 0x8 add r2, sp, 0x8 bl xxx_call_draw_string ldr r0, [r6] add r0, r9 adds r1, r7, 0 bl sub_8013800 adds r1, r0, 0 ldr r4, [r6] ldr r2, _0801CE50 adds r0, r4, r2 ldr r0, [r0] movs r3, 0xC ldrsh r0, [r0, r3] lsls r0, 3 subs r0, 0x2 ldr r2, _0801CE54 ldr r2, [r2] lsls r3, r5, 1 adds r2, 0x50 adds r2, r3 ldrh r2, [r2] movs r3, 0x5 str r3, [sp] add r4, r8 ldr r3, [r4] str r3, [sp, 0x4] movs r3, 0x3 bl sub_8012BC4 adds r0, r5, 0 bl sub_801CFE0 movs r1, 0x1 ands r1, r0 cmp r1, 0 beq _0801CE0A ldr r0, [r6] ldr r4, _0801CE4C adds r0, r4 adds r1, r7, 0 bl sub_8013800 adds r2, r0, 0 ldr r1, [r6] movs r3, 0x9D lsls r3, 3 adds r0, r1, r3 ldr r0, [r0] adds r4, 0x38 adds r1, r4 ldr r1, [r1] movs r4, 0xC ldrsh r3, [r1, r4] subs r3, 0x1 lsls r3, 3 movs r1, 0xA str r1, [sp] movs r1, 0x8 bl sub_8007B7C _0801CE0A: adds r7, 0x1 ldr r0, [r6] ldr r1, _0801CE48 adds r0, r1 movs r2, 0 ldrsh r0, [r0, r2] cmp r7, r0 blt _0801CD50 _0801CE1A: ldr r0, _0801CE38 ldr r0, [r0] movs r3, 0x9D lsls r3, 3 adds r0, r3 ldr r0, [r0] bl sub_80073E0 add sp, 0x58 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0801CE38: .4byte gUnknown_203B244 _0801CE3C: .4byte gUnknown_80DBE6C _0801CE40: .4byte 0x00000552 _0801CE44: .4byte 0x000004d2 _0801CE48: .4byte 0x000004ce _0801CE4C: .4byte 0x000004b4 _0801CE50: .4byte 0x000004ec _0801CE54: .4byte gUnknown_203B460 thumb_func_end sub_801CCD8 thumb_func_start sub_801CE58 sub_801CE58: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 movs r3, 0 movs r6, 0x1 ldr r4, _0801CF0C _0801CE68: ldr r0, [r4] ldr r0, [r0] cmp r0, 0x2 beq _0801CE92 ldr r0, _0801CF10 ldr r0, [r0] lsls r1, r6, 1 adds r0, 0x50 adds r0, r1 ldrh r0, [r0] cmp r0, 0 beq _0801CE9C lsls r0, r6, 24 lsrs r0, 24 str r3, [sp] bl sub_8091524 lsls r0, 24 ldr r3, [sp] cmp r0, 0 beq _0801CE9C _0801CE92: ldr r0, [r4] adds r0, 0x4 adds r0, r3 strb r6, [r0] adds r3, 0x1 _0801CE9C: adds r6, 0x1 cmp r6, 0xEF ble _0801CE68 movs r6, 0 subs r0, r3, 0x1 mov r9, r0 cmp r6, r9 bge _0801CEFC _0801CEAC: adds r0, r6, 0x1 mov r8, r0 mov r5, r8 cmp r8, r3 bge _0801CEF6 ldr r7, _0801CF0C _0801CEB8: ldr r0, [r7] adds r0, 0x4 adds r0, r6 ldrb r0, [r0] str r3, [sp] bl sub_8090D44 adds r4, r0, 0 ldr r0, [r7] adds r0, 0x4 adds r0, r5 ldrb r0, [r0] bl sub_8090D44 ldr r3, [sp] cmp r4, r0 ble _0801CEF0 ldr r0, [r7] adds r0, 0x4 adds r1, r0, r6 ldrb r2, [r1] adds r0, r5 ldrb r0, [r0] strb r0, [r1] ldr r0, [r7] adds r0, 0x4 adds r0, r5 strb r2, [r0] _0801CEF0: adds r5, 0x1 cmp r5, r3 blt _0801CEB8 _0801CEF6: mov r6, r8 cmp r6, r9 blt _0801CEAC _0801CEFC: adds r0, r3, 0 add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0801CF0C: .4byte gUnknown_203B244 _0801CF10: .4byte gUnknown_203B460 thumb_func_end sub_801CE58 thumb_func_start sub_801CF14 sub_801CF14: push {r4,lr} cmp r0, 0x2 bne _0801CF1E _0801CF1A: movs r0, 0 b _0801CF46 _0801CF1E: movs r4, 0x1 _0801CF20: ldr r0, _0801CF4C ldr r0, [r0] lsls r1, r4, 1 adds r0, 0x50 adds r0, r1 ldrh r0, [r0] cmp r0, 0 beq _0801CF3E lsls r0, r4, 24 lsrs r0, 24 bl sub_8091524 lsls r0, 24 cmp r0, 0 bne _0801CF1A _0801CF3E: adds r4, 0x1 cmp r4, 0xEF ble _0801CF20 movs r0, 0x1 _0801CF46: pop {r4} pop {r1} bx r1 .align 2, 0 _0801CF4C: .4byte gUnknown_203B460 thumb_func_end sub_801CF14 thumb_func_start sub_801CF50 sub_801CF50: push {r4,r5,lr} cmp r0, 0x2 bne _0801CF5A _0801CF56: movs r0, 0 b _0801CF84 _0801CF5A: movs r4, 0x1 ldr r5, _0801CF8C _0801CF5E: lsls r0, r4, 24 lsrs r0, 24 bl sub_8091524 lsls r0, 24 cmp r0, 0 beq _0801CF7C ldr r0, _0801CF90 ldr r0, [r0] lsls r1, r4, 1 adds r0, 0x50 adds r0, r1 ldrh r0, [r0] cmp r0, r5 bls _0801CF56 _0801CF7C: adds r4, 0x1 cmp r4, 0xEF ble _0801CF5E movs r0, 0x1 _0801CF84: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0801CF8C: .4byte 0x000003e6 _0801CF90: .4byte gUnknown_203B460 thumb_func_end sub_801CF50 thumb_func_start sub_801CF94 sub_801CF94: push {r4,lr} movs r2, 0 ldr r4, _0801CFB4 movs r3, 0 _0801CF9C: ldr r0, [r4] lsls r1, r2, 2 adds r0, 0xF4 adds r0, r1 str r3, [r0] adds r2, 0x1 cmp r2, 0xEF ble _0801CF9C pop {r4} pop {r0} bx r0 .align 2, 0 _0801CFB4: .4byte gUnknown_203B244 thumb_func_end sub_801CF94 thumb_func_start sub_801CFB8 sub_801CFB8: push {lr} movs r3, 0 ldr r0, _0801CFDC ldr r0, [r0] adds r1, r0, 0 adds r1, 0xF4 movs r2, 0xEF _0801CFC6: ldr r0, [r1] cmp r0, 0 beq _0801CFCE adds r3, 0x1 _0801CFCE: adds r1, 0x4 subs r2, 0x1 cmp r2, 0 bge _0801CFC6 adds r0, r3, 0 pop {r1} bx r1 .align 2, 0 _0801CFDC: .4byte gUnknown_203B244 thumb_func_end sub_801CFB8 thumb_func_start sub_801CFE0 sub_801CFE0: lsls r0, 24 ldr r1, _0801CFF0 ldr r1, [r1] lsrs r0, 22 adds r1, 0xF4 adds r1, r0 ldr r0, [r1] bx lr .align 2, 0 _0801CFF0: .4byte gUnknown_203B244 thumb_func_end sub_801CFE0 thumb_func_start sub_801CFF4 sub_801CFF4: lsls r0, 24 ldr r2, _0801D004 ldr r2, [r2] lsrs r0, 22 adds r2, 0xF4 adds r2, r0 str r1, [r2] bx lr .align 2, 0 _0801D004: .4byte gUnknown_203B244 thumb_func_end sub_801CFF4 thumb_func_start sub_801D008 sub_801D008: ldr r0, _0801D010 ldr r0, [r0] bx lr .align 2, 0 _0801D010: .4byte gUnknown_203B244 thumb_func_end sub_801D008 thumb_func_start sub_801D014 sub_801D014: push {r4,r5,lr} adds r5, r0, 0 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, _0801D054 movs r0, 0x8C lsls r0, 1 movs r1, 0x8 bl MemoryAlloc adds r2, r0, 0 str r2, [r4] ldr r0, _0801D058 ldr r0, [r0] str r0, [r2, 0x14] str r5, [r2] cmp r5, 0 beq _0801D088 movs r3, 0 ldr r0, _0801D05C ldr r1, [r0] adds r4, r0, 0 cmp r5, r1 bne _0801D060 strh r3, [r2, 0x4] b _0801D08C .align 2, 0 _0801D054: .4byte gUnknown_203B250 _0801D058: .4byte gUnknown_203B254 _0801D05C: .4byte gUnknown_203B45C _0801D060: adds r3, 0x1 movs r0, 0xCE lsls r0, 1 cmp r3, r0 bgt _0801D08C ldr r0, _0801D084 ldr r2, [r0] lsls r0, r3, 16 asrs r0, 16 movs r1, 0x58 muls r1, r0 ldr r0, [r4] adds r0, r1 ldr r1, [r2] cmp r1, r0 bne _0801D060 strh r3, [r2, 0x4] b _0801D08C .align 2, 0 _0801D084: .4byte gUnknown_203B250 _0801D088: ldr r0, _0801D0C4 strh r0, [r2, 0x4] _0801D08C: bl sub_80A5728 lsls r0, 16 asrs r0, 16 bl sub_8002658 ldr r4, _0801D0C8 ldr r1, [r4] movs r5, 0 strb r0, [r1, 0x6] ldr r0, [r4] strb r5, [r0, 0x8] ldr r0, [r4] strb r5, [r0, 0x9] bl sub_808D33C ldr r1, [r4] str r0, [r1, 0xC] strb r5, [r1, 0x7] ldr r0, [r4] ldr r0, [r0] cmp r0, 0 beq _0801D0CC movs r0, 0x5 bl sub_801D208 b _0801D0D2 .align 2, 0 _0801D0C4: .4byte 0x0000019d _0801D0C8: .4byte gUnknown_203B250 _0801D0CC: movs r0, 0 bl sub_801D208 _0801D0D2: movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_801D014 thumb_func_start sub_801D0DC sub_801D0DC: push {lr} ldr r0, _0801D0F4 ldr r0, [r0] ldr r0, [r0, 0x10] cmp r0, 0xC bhi _0801D16C lsls r0, 2 ldr r1, _0801D0F8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0801D0F4: .4byte gUnknown_203B250 _0801D0F8: .4byte _0801D0FC .align 2, 0 _0801D0FC: .4byte _0801D130 .4byte _0801D130 .4byte _0801D16C .4byte _0801D136 .4byte _0801D13C .4byte _0801D142 .4byte _0801D148 .4byte _0801D148 .4byte _0801D14E .4byte _0801D154 .4byte _0801D15A .4byte _0801D160 .4byte _0801D166 _0801D130: bl sub_801D680 b _0801D170 _0801D136: bl sub_801D760 b _0801D170 _0801D13C: bl sub_801D77C b _0801D170 _0801D142: bl sub_801D798 b _0801D170 _0801D148: bl sub_801D7CC b _0801D170 _0801D14E: bl sub_801D808 b _0801D170 _0801D154: bl sub_801D824 b _0801D170 _0801D15A: bl sub_801D840 b _0801D170 _0801D160: bl sub_801D85C b _0801D170 _0801D166: bl sub_801D878 b _0801D170 _0801D16C: movs r0, 0x3 b _0801D172 _0801D170: movs r0, 0 _0801D172: pop {r1} bx r1 thumb_func_end sub_801D0DC thumb_func_start sub_801D178 sub_801D178: push {r4,lr} ldr r0, _0801D188 ldr r4, [r0] ldrb r0, [r4, 0x9] cmp r0, 0 beq _0801D18C movs r0, 0x2 b _0801D1CC .align 2, 0 _0801D188: .4byte gUnknown_203B250 _0801D18C: ldrb r0, [r4, 0x7] cmp r0, 0 beq _0801D196 movs r0, 0x3 b _0801D1CC _0801D196: ldrb r0, [r4, 0x8] cmp r0, 0 beq _0801D1A0 movs r0, 0x1 b _0801D1CC _0801D1A0: bl sub_808D33C ldr r1, [r4, 0xC] cmp r1, r0 bne _0801D1C6 movs r0, 0x7 bl sub_80A7AE8 lsls r0, 16 cmp r0, 0 blt _0801D1CA bl sub_808D3F8 ldrh r0, [r0] lsrs r0, 1 movs r1, 0x1 ands r0, r1 cmp r0, 0 bne _0801D1CA _0801D1C6: movs r0, 0x4 b _0801D1CC _0801D1CA: movs r0, 0 _0801D1CC: pop {r4} pop {r1} bx r1 thumb_func_end sub_801D178 thumb_func_start sub_801D1D4 sub_801D1D4: ldr r0, _0801D1DC ldr r0, [r0] ldrb r0, [r0, 0x7] bx lr .align 2, 0 _0801D1DC: .4byte gUnknown_203B250 thumb_func_end sub_801D1D4 thumb_func_start sub_801D1E0 sub_801D1E0: push {r4,lr} ldr r4, _0801D200 ldr r2, [r4] cmp r2, 0 beq _0801D1FA ldr r0, _0801D204 ldr r1, [r2, 0x14] str r1, [r0] adds r0, r2, 0 bl MemoryFree movs r0, 0 str r0, [r4] _0801D1FA: pop {r4} pop {r0} bx r0 .align 2, 0 _0801D200: .4byte gUnknown_203B250 _0801D204: .4byte gUnknown_203B254 thumb_func_end sub_801D1E0 thumb_func_start sub_801D208 sub_801D208: push {lr} ldr r1, _0801D21C ldr r1, [r1] str r0, [r1, 0x10] bl sub_801D220 bl sub_801D3A8 pop {r0} bx r0 .align 2, 0 _0801D21C: .4byte gUnknown_203B250 thumb_func_end sub_801D208 thumb_func_start sub_801D220 sub_801D220: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r4, _0801D248 ldr r0, [r4] adds r0, 0xB8 bl sub_8006518 ldr r0, [r4] ldr r0, [r0, 0x10] cmp r0, 0 beq _0801D250 cmp r0, 0x1 beq _0801D2C0 movs r2, 0 adds r7, r4, 0 ldr r3, _0801D24C b _0801D368 .align 2, 0 _0801D248: .4byte gUnknown_203B250 _0801D24C: .4byte gUnknown_80DBE7C _0801D250: bl sub_801D4C0 ldr r0, [r4] ldr r0, [r0] cmp r0, 0 beq _0801D290 adds r7, r4, 0 ldr r0, _0801D288 mov r9, r0 mov r12, r7 ldr r2, _0801D28C mov r8, r2 movs r3, 0 movs r2, 0x3 _0801D26C: mov r4, r12 ldr r1, [r4] adds r1, r3 adds r1, 0xB8 mov r0, r8 ldm r0!, {r4-r6} stm r1!, {r4-r6} ldm r0!, {r4-r6} stm r1!, {r4-r6} adds r3, 0x18 subs r2, 0x1 cmp r2, 0 bge _0801D26C b _0801D2F6 .align 2, 0 _0801D288: .4byte gUnknown_80DBE98 _0801D28C: .4byte gUnknown_80DBE7C _0801D290: adds r7, r4, 0 mov r8, r7 ldr r6, _0801D2BC mov r9, r6 movs r3, 0 movs r2, 0x3 _0801D29C: mov r0, r8 ldr r1, [r0] adds r1, r3 adds r1, 0xB8 mov r0, r9 ldm r0!, {r4-r6} stm r1!, {r4-r6} ldm r0!, {r4-r6} stm r1!, {r4-r6} movs r0, 0x18 add r9, r0 adds r3, 0x18 subs r2, 0x1 cmp r2, 0 bge _0801D29C b _0801D34E .align 2, 0 _0801D2BC: .4byte gUnknown_80DBEB0 _0801D2C0: bl sub_801D4C0 ldr r0, [r4] ldr r0, [r0] cmp r0, 0 beq _0801D324 adds r7, r4, 0 ldr r2, _0801D31C mov r9, r2 mov r8, r7 ldr r3, _0801D320 mov r12, r3 movs r3, 0 movs r2, 0x3 _0801D2DC: mov r4, r8 ldr r1, [r4] adds r1, r3 adds r1, 0xB8 mov r0, r12 ldm r0!, {r4-r6} stm r1!, {r4-r6} ldm r0!, {r4-r6} stm r1!, {r4-r6} adds r3, 0x18 subs r2, 0x1 cmp r2, 0 bge _0801D2DC _0801D2F6: ldr r1, [r7] adds r1, 0xB8 mov r0, r9 ldm r0!, {r2,r5,r6} stm r1!, {r2,r5,r6} ldm r0!, {r3-r5} stm r1!, {r3-r5} ldr r1, [r7] adds r0, r1, 0 adds r0, 0xB8 adds r1, 0x68 bl sub_8012CAC ldr r0, [r7] adds r0, 0xC4 movs r1, 0x9 strh r1, [r0] b _0801D384 .align 2, 0 _0801D31C: .4byte gUnknown_80DBE98 _0801D320: .4byte gUnknown_80DBE7C _0801D324: adds r7, r4, 0 mov r8, r7 ldr r6, _0801D364 mov r9, r6 movs r3, 0 movs r2, 0x3 _0801D330: mov r0, r8 ldr r1, [r0] adds r1, r3 adds r1, 0xB8 mov r0, r9 ldm r0!, {r4-r6} stm r1!, {r4-r6} ldm r0!, {r4-r6} stm r1!, {r4-r6} movs r0, 0x18 add r9, r0 adds r3, 0x18 subs r2, 0x1 cmp r2, 0 bge _0801D330 _0801D34E: ldr r1, [r7] adds r0, r1, 0 adds r0, 0xB8 adds r1, 0x68 bl sub_8012CAC ldr r0, [r7] adds r0, 0xC4 movs r1, 0x8 strh r1, [r0] b _0801D384 .align 2, 0 _0801D364: .4byte gUnknown_80DBEB0 _0801D368: ldr r0, [r7] lsls r1, r2, 1 adds r1, r2 lsls r1, 3 adds r0, r1 adds r0, 0xB8 adds r1, r3, 0 ldm r1!, {r4-r6} stm r0!, {r4-r6} ldm r1!, {r4-r6} stm r0!, {r4-r6} adds r2, 0x1 cmp r2, 0x3 ble _0801D368 _0801D384: bl sub_8004914 ldr r0, _0801D3A4 ldr r0, [r0] adds r0, 0xB8 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0801D3A4: .4byte gUnknown_203B250 thumb_func_end sub_801D220 thumb_func_start sub_801D3A8 sub_801D3A8: push {r4-r6,lr} sub sp, 0x8 ldr r1, _0801D3C4 ldr r0, [r1] ldr r0, [r0, 0x10] adds r6, r1, 0 cmp r0, 0xC bls _0801D3BA b _0801D4B6 _0801D3BA: lsls r0, 2 ldr r1, _0801D3C8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0801D3C4: .4byte gUnknown_203B250 _0801D3C8: .4byte _0801D3CC .align 2, 0 _0801D3CC: .4byte _0801D400 .4byte _0801D400 .4byte _0801D4B6 .4byte _0801D458 .4byte _0801D462 .4byte _0801D468 .4byte _0801D472 .4byte _0801D47A .4byte _0801D482 .4byte _0801D490 .4byte _0801D49C .4byte _0801D4AA .4byte _0801D4B2 _0801D400: ldr r0, [r6] ldr r5, [r0] cmp r5, 0 beq _0801D438 ldr r4, _0801D434 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x7 bl sub_808D9AC ldr r2, [r6] str r4, [r2, 0x18] adds r0, r2, 0 adds r0, 0x18 adds r1, r2, 0 adds r1, 0x68 adds r3, r2, 0 adds r3, 0xA8 ldr r2, [r2, 0x14] str r2, [sp] movs r2, 0 str r2, [sp, 0x4] bl sub_8012D60 b _0801D4B6 .align 2, 0 _0801D434: .4byte gUnknown_202DF98 _0801D438: bl sub_801D894 ldr r2, [r6] adds r0, r2, 0 adds r0, 0x18 adds r1, r2, 0 adds r1, 0x68 adds r3, r2, 0 adds r3, 0xA8 ldr r2, [r2, 0x14] str r2, [sp] str r5, [sp, 0x4] movs r2, 0 bl sub_8012D60 b _0801D4B6 _0801D458: ldr r0, [r6] ldr r0, [r0] bl sub_80227B8 b _0801D4B6 _0801D462: bl sub_8027074 b _0801D4B6 _0801D468: ldr r0, [r6] ldr r0, [r0] bl sub_8025EF4 b _0801D4B6 _0801D472: movs r0, 0 bl sub_80252F0 b _0801D4B6 _0801D47A: movs r0, 0x1 bl sub_80252F0 b _0801D4B6 _0801D482: ldr r0, [r6] movs r1, 0x4 ldrsh r0, [r0, r1] movs r1, 0x2 bl sub_8024458 b _0801D4B6 _0801D490: ldr r0, [r6] movs r1, 0x4 ldrsh r0, [r0, r1] bl sub_801BEEC b _0801D4B6 _0801D49C: ldr r0, [r6] ldrb r0, [r0, 0x6] movs r1, 0x1 movs r2, 0x2 bl sub_8021774 b _0801D4B6 _0801D4AA: movs r0, 0 bl sub_802C860 b _0801D4B6 _0801D4B2: bl sub_801DCC4 _0801D4B6: add sp, 0x8 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_801D3A8 thumb_func_start sub_801D4C0 sub_801D4C0: push {r4-r7,lr} movs r6, 0 ldr r4, _0801D554 ldr r0, [r4] adds r0, 0xA8 movs r1, 0 movs r2, 0x10 bl MemoryFill16 ldr r0, [r4] ldrb r0, [r0, 0x6] cmp r0, 0 bne _0801D568 bl sub_8096E2C lsls r0, 24 cmp r0, 0 beq _0801D534 ldr r1, [r4] movs r0, 0x2 str r0, [r1, 0x6C] ldr r0, _0801D558 str r0, [r1, 0x68] bl sub_8090A34 cmp r0, 0 bne _0801D4FE ldr r0, [r4] adds r0, 0xA8 movs r1, 0x1 strh r1, [r0] _0801D4FE: ldr r1, [r4] ldr r0, _0801D55C str r0, [r1, 0x70] movs r0, 0x4 str r0, [r1, 0x74] movs r6, 0x2 movs r0, 0x2 bl sub_80023E4 lsls r0, 24 cmp r0, 0 beq _0801D534 ldr r1, [r4] ldr r0, _0801D560 str r0, [r1, 0x78] movs r0, 0x9 str r0, [r1, 0x7C] bl sub_802C83C lsls r0, 24 cmp r0, 0 beq _0801D532 ldr r0, [r4] adds r0, 0xAC movs r1, 0x1 strh r1, [r0] _0801D532: movs r6, 0x3 _0801D534: ldr r4, _0801D554 ldr r2, [r4] lsls r3, r6, 3 adds r0, r2, 0 adds r0, 0x68 adds r0, r3 ldr r1, _0801D564 str r1, [r0] adds r2, 0x6C adds r2, r3 movs r0, 0xB str r0, [r2] adds r6, 0x1 adds r7, r4, 0 b _0801D5E6 .align 2, 0 _0801D554: .4byte gUnknown_203B250 _0801D558: .4byte gUnknown_80DBF10 _0801D55C: .4byte gUnknown_80DBF18 _0801D560: .4byte gUnknown_80DBF20 _0801D564: .4byte gUnknown_80DBF2C _0801D568: ldr r0, _0801D63C ldr r1, _0801D640 bl strcpy bl sub_8096E2C lsls r0, 24 cmp r0, 0 beq _0801D5B6 ldr r1, [r4] ldr r0, _0801D644 ldr r0, [r0] str r0, [r1, 0x68] movs r0, 0x5 str r0, [r1, 0x6C] movs r0, 0x4 bl sub_8024108 lsls r0, 24 cmp r0, 0 beq _0801D59A ldr r0, [r4] adds r0, 0xA8 movs r1, 0x1 strh r1, [r0] _0801D59A: movs r6, 0x1 ldr r1, [r4] movs r0, 0x2 str r0, [r1, 0x74] ldr r0, _0801D648 str r0, [r1, 0x70] bl sub_8090A34 cmp r0, 0 bne _0801D5B4 ldr r0, [r4] adds r0, 0xAA strh r6, [r0] _0801D5B4: movs r6, 0x2 _0801D5B6: ldr r5, _0801D64C ldr r1, [r5] lsls r2, r6, 3 adds r3, r1, 0 adds r3, 0x68 adds r4, r3, r2 ldr r0, _0801D650 ldr r0, [r0] str r0, [r4] adds r1, 0x6C adds r2, r1, r2 movs r0, 0x8 str r0, [r2] adds r6, 0x1 lsls r2, r6, 3 adds r3, r2 ldr r0, _0801D654 ldr r0, [r0] str r0, [r3] adds r1, r2 movs r0, 0xA str r0, [r1] adds r6, 0x1 adds r7, r5, 0 _0801D5E6: ldr r4, [r7] lsls r2, r6, 3 adds r0, r4, 0 adds r0, 0x68 adds r0, r2 movs r1, 0 str r1, [r0] adds r1, r4, 0 adds r1, 0x6C adds r2, r1, r2 movs r0, 0x1 str r0, [r2] movs r3, 0 cmp r3, r6 bge _0801D622 adds r5, r4, 0 adds r4, 0xA8 adds r2, r1, 0 _0801D60A: ldrh r0, [r4] cmp r0, 0 bne _0801D618 ldr r1, [r2] ldr r0, [r5, 0x14] cmp r1, r0 beq _0801D67A _0801D618: adds r4, 0x2 adds r2, 0x8 adds r3, 0x1 cmp r3, r6 blt _0801D60A _0801D622: movs r3, 0 cmp r3, r6 bge _0801D67A ldr r1, [r7] adds r0, r1, 0 adds r0, 0xA8 ldrh r0, [r0] cmp r0, 0 bne _0801D658 ldr r0, [r1, 0x6C] str r0, [r1, 0x14] b _0801D67A .align 2, 0 _0801D63C: .4byte gUnknown_202DF98 _0801D640: .4byte gUnknown_80DBF34 _0801D644: .4byte gUnknown_80D49A8 _0801D648: .4byte gUnknown_80DBF10 _0801D64C: .4byte gUnknown_203B250 _0801D650: .4byte gUnknown_80D4970 _0801D654: .4byte gUnknown_80D49B4 _0801D658: adds r3, 0x1 cmp r3, r6 bge _0801D67A ldr r2, [r7] lsls r0, r3, 1 adds r1, r2, 0 adds r1, 0xA8 adds r1, r0 ldrh r0, [r1] cmp r0, 0 bne _0801D658 lsls r0, r3, 3 adds r1, r2, 0 adds r1, 0x6C adds r1, r0 ldr r0, [r1] str r0, [r2, 0x14] _0801D67A: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_801D4C0 thumb_func_start sub_801D680 sub_801D680: push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] ldr r4, _0801D6C0 ldr r0, [r4] adds r0, 0x18 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _0801D6AC ldr r0, [r4] adds r0, 0x18 mov r1, sp bl sub_8013114 ldr r1, [sp] cmp r1, 0x1 beq _0801D6AC ldr r0, [r4] str r1, [r0, 0x14] _0801D6AC: ldr r0, [sp] subs r0, 0x1 cmp r0, 0xA bhi _0801D756 lsls r0, 2 ldr r1, _0801D6C4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0801D6C0: .4byte gUnknown_203B250 _0801D6C4: .4byte _0801D6C8 .align 2, 0 _0801D6C8: .4byte _0801D750 .4byte _0801D6F4 .4byte _0801D704 .4byte _0801D6FC .4byte _0801D70C .4byte _0801D714 .4byte _0801D71C .4byte _0801D724 .4byte _0801D72C .4byte _0801D734 .4byte _0801D748 _0801D6F4: movs r0, 0x3 bl sub_801D208 b _0801D756 _0801D6FC: movs r0, 0x6 bl sub_801D208 b _0801D756 _0801D704: movs r0, 0x4 bl sub_801D208 b _0801D756 _0801D70C: movs r0, 0x7 bl sub_801D208 b _0801D756 _0801D714: movs r0, 0x8 bl sub_801D208 b _0801D756 _0801D71C: movs r0, 0x9 bl sub_801D208 b _0801D756 _0801D724: movs r0, 0xA bl sub_801D208 b _0801D756 _0801D72C: movs r0, 0xB bl sub_801D208 b _0801D756 _0801D734: ldr r0, _0801D744 ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0x9] movs r0, 0x2 bl sub_801D208 b _0801D756 .align 2, 0 _0801D744: .4byte gUnknown_203B250 _0801D748: movs r0, 0xC bl sub_801D208 b _0801D756 _0801D750: movs r0, 0x2 bl sub_801D208 _0801D756: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_801D680 thumb_func_start sub_801D760 sub_801D760: push {lr} bl sub_8022860 cmp r0, 0x1 bls _0801D778 cmp r0, 0x3 bhi _0801D778 bl sub_8022908 movs r0, 0x1 bl sub_801D208 _0801D778: pop {r0} bx r0 thumb_func_end sub_801D760 thumb_func_start sub_801D77C sub_801D77C: push {lr} bl sub_80270A4 cmp r0, 0x1 bls _0801D794 cmp r0, 0x3 bhi _0801D794 bl sub_8027168 movs r0, 0x1 bl sub_801D208 _0801D794: pop {r0} bx r0 thumb_func_end sub_801D77C thumb_func_start sub_801D798 sub_801D798: push {lr} bl sub_8025F68 cmp r0, 0x1 bls _0801D7C2 cmp r0, 0x3 bhi _0801D7C2 bl sub_802604C lsls r0, 24 cmp r0, 0 beq _0801D7B8 ldr r0, _0801D7C8 ldr r1, [r0] ldrb r0, [r1, 0x6] strb r0, [r1, 0x7] _0801D7B8: bl sub_8026058 movs r0, 0x2 bl sub_801D208 _0801D7C2: pop {r0} bx r0 .align 2, 0 _0801D7C8: .4byte gUnknown_203B250 thumb_func_end sub_801D798 thumb_func_start sub_801D7CC sub_801D7CC: push {r4,lr} bl sub_8025354 cmp r0, 0x1 bls _0801D802 cmp r0, 0x3 bhi _0801D802 bl sub_802540C ldr r4, _0801D7F8 ldr r1, [r4] strb r0, [r1, 0x7] bl sub_8025418 ldr r0, [r4] ldrb r0, [r0, 0x7] cmp r0, 0 beq _0801D7FC movs r0, 0x2 bl sub_801D208 b _0801D802 .align 2, 0 _0801D7F8: .4byte gUnknown_203B250 _0801D7FC: movs r0, 0x1 bl sub_801D208 _0801D802: pop {r4} pop {r0} bx r0 thumb_func_end sub_801D7CC thumb_func_start sub_801D808 sub_801D808: push {lr} bl sub_80244E4 cmp r0, 0x1 bls _0801D820 cmp r0, 0x3 bhi _0801D820 bl sub_802453C movs r0, 0x1 bl sub_801D208 _0801D820: pop {r0} bx r0 thumb_func_end sub_801D808 thumb_func_start sub_801D824 sub_801D824: push {lr} bl sub_801BF48 cmp r0, 0x1 bls _0801D83C cmp r0, 0x3 bhi _0801D83C bl sub_801BF98 movs r0, 0x1 bl sub_801D208 _0801D83C: pop {r0} bx r0 thumb_func_end sub_801D824 thumb_func_start sub_801D840 sub_801D840: push {lr} bl sub_80217EC cmp r0, 0x1 bls _0801D858 cmp r0, 0x3 bhi _0801D858 bl sub_8021830 movs r0, 0x1 bl sub_801D208 _0801D858: pop {r0} bx r0 thumb_func_end sub_801D840 thumb_func_start sub_801D85C sub_801D85C: push {lr} bl sub_802C898 cmp r0, 0x1 bls _0801D874 cmp r0, 0x3 bhi _0801D874 bl sub_802C8F4 movs r0, 0x1 bl sub_801D208 _0801D874: pop {r0} bx r0 thumb_func_end sub_801D85C thumb_func_start sub_801D878 sub_801D878: push {lr} bl sub_801DCE8 cmp r0, 0x1 bls _0801D890 cmp r0, 0x3 bhi _0801D890 bl sub_801DD50 movs r0, 0x1 bl sub_801D208 _0801D890: pop {r0} bx r0 thumb_func_end sub_801D878 thumb_func_start sub_801D894 sub_801D894: push {r4-r6,lr} sub sp, 0x68 ldr r0, _0801D8A8 ldr r1, [r0] ldrb r0, [r1, 0x6] cmp r0, 0 bne _0801D8AC bl sub_8098FB4 b _0801D8B2 .align 2, 0 _0801D8A8: .4byte gUnknown_203B250 _0801D8AC: ldrb r0, [r1, 0x6] bl sub_8092524 _0801D8B2: add r2, sp, 0x68 add r1, sp, 0x4 movs r3, 0 bl xxx_format_string add r0, sp, 0x4 bl sub_8008ED0 movs r4, 0x80 subs r4, r0 lsrs r0, r4, 31 adds r4, r0 asrs r4, 1 movs r0, 0x1 bl sub_8008C54 movs r0, 0x1 bl sub_80073B8 movs r6, 0 str r6, [sp] adds r0, r4, 0 movs r1, 0x4 add r2, sp, 0x4 movs r3, 0x1 bl xxx_call_draw_string movs r0, 0x1 bl sub_80073E0 movs r0, 0x2 bl sub_8008C54 movs r0, 0x2 bl sub_80073B8 movs r0, 0x2 movs r1, 0x8 movs r2, 0x6 bl sub_801D970 ldr r5, _0801D964 bl sub_8092178 lsls r0, 24 lsrs r0, 24 bl sub_80921A8 adds r4, r0, 0 bl sub_8092110 adds r3, r0, 0 add r0, sp, 0x4 adds r1, r5, 0 adds r2, r4, 0 bl sub_800D158 str r6, [sp] movs r0, 0x20 movs r1, 0x4 add r2, sp, 0x4 movs r3, 0x2 bl xxx_call_draw_string ldr r1, _0801D968 ldr r0, _0801D96C ldr r0, [r0] movs r2, 0x98 lsls r2, 2 adds r0, r2 ldr r2, [r0] add r0, sp, 0x4 bl sub_800D158 str r6, [sp] movs r0, 0x20 movs r1, 0x12 add r2, sp, 0x4 movs r3, 0x2 bl xxx_call_draw_string movs r0, 0x2 bl sub_80073E0 add sp, 0x68 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0801D964: .4byte gUnknown_80DBF3C _0801D968: .4byte gUnknown_80DBF4C _0801D96C: .4byte gUnknown_203B460 thumb_func_end sub_801D894 thumb_func_start sub_801D970 sub_801D970: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC mov r8, r0 mov r9, r1 mov r10, r2 ldr r0, _0801D9DC ldr r1, _0801D9E0 bl OpenFileAndGetFileDataPtr adds r7, r0, 0 ldr r0, [r7, 0x4] ldr r6, [r0] ldr r5, [r0, 0x4] movs r4, 0 _0801D994: adds r0, r4, 0 adds r0, 0xE0 adds r1, r5, 0 bl SetBGPaletteBufferColorArray adds r5, 0x4 adds r4, 0x1 cmp r4, 0xF ble _0801D994 bl sub_8092178 lsls r0, 24 lsrs r0, 17 adds r6, r0 movs r0, 0x10 str r0, [sp] str r6, [sp, 0x4] movs r0, 0xE str r0, [sp, 0x8] mov r0, r8 mov r1, r9 mov r2, r10 movs r3, 0x10 bl sub_8007E20 adds r0, r7, 0 bl CloseFile add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0801D9DC: .4byte gUnknown_80DBF60 _0801D9E0: .4byte gUnknown_8380000 thumb_func_end sub_801D970 thumb_func_start sub_801D9E4 sub_801D9E4: push {r4,r5,lr} ldr r4, _0801DA50 movs r0, 0xA0 movs r1, 0x8 bl MemoryAlloc str r0, [r4] movs r1, 0x3 str r1, [r0, 0x34] adds r1, r0, 0 adds r1, 0x84 str r1, [r0, 0x38] adds r0, 0x3C bl sub_8006518 ldr r1, [r4] ldr r2, [r1, 0x34] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, 0x3C ldr r0, _0801DA54 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldr r0, [r4] ldr r1, [r0, 0x38] adds r0, 0x9C str r0, [r1, 0x14] bl sub_8004914 ldr r0, [r4] adds r0, 0x3C movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] ldr r3, [r0, 0x34] movs r1, 0xE5 movs r2, 0xA bl sub_8013818 bl sub_801DB54 bl sub_801DBD4 movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0801DA50: .4byte gUnknown_203B258 _0801DA54: .4byte gUnknown_80DBF88 thumb_func_end sub_801D9E4 thumb_func_start sub_801DA58 sub_801DA58: push {lr} adds r1, r0, 0 lsls r1, 16 asrs r1, 16 ldr r0, _0801DA74 ldr r0, [r0] bl sub_8013878 bl sub_801DB54 bl sub_801DBD4 pop {r0} bx r0 .align 2, 0 _0801DA74: .4byte gUnknown_203B258 thumb_func_end sub_801DA58 thumb_func_start sub_801DA78 sub_801DA78: push {r4,lr} ldr r4, _0801DA94 ldr r0, [r4] bl GetKeyPress cmp r0, 0x1 beq _0801DA98 cmp r0, 0x2 bne _0801DA9C movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 b _0801DAB8 .align 2, 0 _0801DA94: .4byte gUnknown_203B258 _0801DA98: movs r0, 0x3 b _0801DAB8 _0801DA9C: ldr r0, [r4] movs r1, 0x1 bl sub_80138B8 lsls r0, 24 cmp r0, 0 bne _0801DAAE movs r0, 0 b _0801DAB8 _0801DAAE: bl sub_801DB54 bl sub_801DBD4 movs r0, 0x1 _0801DAB8: pop {r4} pop {r1} bx r1 thumb_func_end sub_801DA78 thumb_func_start sub_801DAC0 sub_801DAC0: ldr r0, _0801DAD8 ldr r1, [r0] ldrh r2, [r1, 0x1E] ldrh r0, [r1, 0x1C] adds r3, r0, 0 muls r3, r2 adds r0, r3, 0 ldrh r1, [r1, 0x18] adds r0, r1 lsls r0, 16 asrs r0, 16 bx lr .align 2, 0 _0801DAD8: .4byte gUnknown_203B258 thumb_func_end sub_801DAC0 thumb_func_start sub_801DADC sub_801DADC: push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r5, _0801DB08 ldr r0, [r5] movs r1, 0xE5 strh r1, [r0, 0x22] bl sub_8013984 bl sub_801DB54 bl sub_801DBD4 cmp r4, 0 beq _0801DB02 ldr r0, [r5] bl AddMenuCursorSprite _0801DB02: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0801DB08: .4byte gUnknown_203B258 thumb_func_end sub_801DADC thumb_func_start sub_801DB0C sub_801DB0C: push {r4,r5,lr} ldr r4, _0801DB4C ldr r2, [r4] cmp r2, 0 beq _0801DB46 ldr r0, [r2, 0x34] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 adds r1, 0x3C ldr r0, _0801DB50 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} bl sub_8004914 ldr r0, [r4] adds r0, 0x3C movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _0801DB46: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0801DB4C: .4byte gUnknown_203B258 _0801DB50: .4byte gUnknown_80DBF70 thumb_func_end sub_801DB0C thumb_func_start sub_801DB54 sub_801DB54: push {r4,lr} ldr r4, _0801DBD0 ldr r0, [r4] adds r0, 0x9C movs r2, 0 movs r1, 0x1 strb r1, [r0] ldr r0, [r4] adds r0, 0x9D strb r2, [r0] ldr r0, [r4] adds r0, 0x9E movs r1, 0x8 strb r1, [r0] ldr r0, [r4] adds r0, 0x9F strb r2, [r0] bl sub_8004914 ldr r0, [r4] adds r0, 0x3C movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] movs r1, 0x1A ldrsh r0, [r0, r1] movs r1, 0xC bl sub_80095E4 adds r0, 0x2 lsls r0, 16 ldr r2, [r4] ldr r3, [r2, 0x34] lsls r1, r3, 1 adds r1, r3 lsls r1, 3 adds r1, r2, r1 adds r1, 0x4A asrs r3, r0, 16 lsrs r0, 16 strh r0, [r1] ldr r1, [r2, 0x34] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r2, r0 adds r3, 0x2 adds r2, 0x4C strh r3, [r2] bl sub_8004914 ldr r0, [r4] adds r0, 0x3C movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4} pop {r0} bx r0 .align 2, 0 _0801DBD0: .4byte gUnknown_203B258 thumb_func_end sub_801DB54 thumb_func_start sub_801DBD4 sub_801DBD4: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 ldr r5, _0801DCB4 ldr r0, [r5] ldr r0, [r0, 0x34] bl sub_8008C54 ldr r0, [r5] ldr r0, [r0, 0x34] bl sub_80073B8 ldr r2, _0801DCB8 ldr r0, [r5] ldr r3, [r0, 0x34] movs r0, 0 str r0, [sp] movs r0, 0xA movs r1, 0 bl xxx_call_draw_string ldr r1, [r5] adds r0, r1, 0 adds r0, 0x9E ldrb r4, [r0] lsls r4, 3 subs r4, 0x2 movs r0, 0x1E ldrsh r2, [r1, r0] adds r2, 0x1 movs r0, 0x7 str r0, [sp] ldr r0, [r1, 0x34] str r0, [sp, 0x4] adds r0, r4, 0 movs r1, 0 movs r3, 0x2 bl sub_8012BC4 movs r6, 0 ldr r0, [r5] movs r1, 0x1A ldrsh r0, [r0, r1] cmp r6, r0 bge _0801DC9C adds r7, r5, 0 mov r8, r6 _0801DC34: ldr r0, [r7] ldrh r2, [r0, 0x1E] ldrh r1, [r0, 0x1C] adds r3, r2, 0 muls r3, r1 adds r1, r3, 0 adds r1, r6 lsls r1, 16 asrs r1, 16 lsls r5, r1, 1 adds r5, r1 lsls r5, 2 ldr r1, _0801DCBC adds r5, r1 movs r2, 0x4 ldrsh r1, [r5, r2] lsls r4, r1, 3 subs r4, r1 lsls r4, 2 ldr r1, _0801DCC0 adds r4, r1 adds r1, r6, 0 bl sub_8013800 adds r1, r0, 0 ldr r2, [r4] ldr r0, [r7] ldr r3, [r0, 0x34] mov r0, r8 str r0, [sp] movs r0, 0x8 bl xxx_call_draw_string ldr r0, [r7] adds r1, r6, 0 bl sub_8013800 adds r1, r0, 0 ldr r2, [r5, 0x8] ldr r0, [r7] ldr r3, [r0, 0x34] mov r0, r8 str r0, [sp] movs r0, 0x3E bl xxx_call_draw_string adds r6, 0x1 ldr r0, [r7] movs r1, 0x1A ldrsh r0, [r0, r1] cmp r6, r0 blt _0801DC34 _0801DC9C: ldr r0, _0801DCB4 ldr r0, [r0] ldr r0, [r0, 0x34] bl sub_80073E0 add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0801DCB4: .4byte gUnknown_203B258 _0801DCB8: .4byte gUnknown_80DBFA0 _0801DCBC: .4byte gUnknown_811BAF4 _0801DCC0: .4byte gUnknown_81188F0 thumb_func_end sub_801DBD4 thumb_func_start sub_801DCC4 sub_801DCC4: push {r4,lr} ldr r4, _0801DCE4 movs r0, 0x8E lsls r0, 1 movs r1, 0x8 bl MemoryAlloc str r0, [r4] movs r0, 0 bl sub_801DD6C movs r0, 0x1 pop {r4} pop {r1} bx r1 .align 2, 0 _0801DCE4: .4byte gUnknown_203B25C thumb_func_end sub_801DCC4 thumb_func_start sub_801DCE8 sub_801DCE8: push {lr} ldr r0, _0801DD00 ldr r0, [r0] ldr r0, [r0] cmp r0, 0x7 bhi _0801DD48 lsls r0, 2 ldr r1, _0801DD04 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0801DD00: .4byte gUnknown_203B25C _0801DD04: .4byte _0801DD08 .align 2, 0 _0801DD08: .4byte _0801DD2C .4byte _0801DD2C .4byte _0801DD28 .4byte _0801DD32 .4byte _0801DD32 .4byte _0801DD38 .4byte _0801DD3E .4byte _0801DD44 _0801DD28: movs r0, 0x3 b _0801DD4A _0801DD2C: bl sub_801E028 b _0801DD48 _0801DD32: bl sub_801E088 b _0801DD48 _0801DD38: bl sub_801E0E0 b _0801DD48 _0801DD3E: bl sub_801E0FC b _0801DD48 _0801DD44: bl sub_801E138 _0801DD48: movs r0, 0 _0801DD4A: pop {r1} bx r1 thumb_func_end sub_801DCE8 thumb_func_start sub_801DD50 sub_801DD50: push {r4,lr} ldr r4, _0801DD68 ldr r0, [r4] cmp r0, 0 beq _0801DD62 bl MemoryFree movs r0, 0 str r0, [r4] _0801DD62: pop {r4} pop {r0} bx r0 .align 2, 0 _0801DD68: .4byte gUnknown_203B25C thumb_func_end sub_801DD50 thumb_func_start sub_801DD6C sub_801DD6C: push {lr} ldr r1, _0801DD80 ldr r1, [r1] str r0, [r1] bl sub_801DD84 bl sub_801DED0 pop {r0} bx r0 .align 2, 0 _0801DD80: .4byte gUnknown_203B25C thumb_func_end sub_801DD6C thumb_func_start sub_801DD84 sub_801DD84: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r4, _0801DDAC ldr r0, [r4] adds r0, 0xBC bl sub_8006518 ldr r0, [r4] ldr r0, [r0] cmp r0, 0 beq _0801DDB4 cmp r0, 0x1 beq _0801DE38 movs r3, 0 adds r7, r4, 0 ldr r2, _0801DDB0 b _0801DE90 .align 2, 0 _0801DDAC: .4byte gUnknown_203B25C _0801DDB0: .4byte gUnknown_80DBFB0 _0801DDB4: bl sub_801DFA4 movs r3, 0 ldr r1, [r4] adds r0, r1, 0 adds r0, 0xAC ldrh r0, [r0] cmp r0, 0 bne _0801DDCE ldr r0, [r1, 0x70] str r0, [r1, 0x18] adds r7, r4, 0 b _0801DDF2 _0801DDCE: adds r3, 0x1 ldr r7, _0801DE2C cmp r3, 0x7 bgt _0801DDF2 ldr r2, [r7] lsls r0, r3, 1 adds r1, r2, 0 adds r1, 0xAC adds r1, r0 ldrh r0, [r1] cmp r0, 0 bne _0801DDCE lsls r0, r3, 3 adds r1, r2, 0 adds r1, 0x70 adds r1, r0 ldr r0, [r1] str r0, [r2, 0x18] _0801DDF2: ldr r0, _0801DE30 mov r9, r0 ldr r2, _0801DE2C mov r12, r2 ldr r3, _0801DE34 mov r8, r3 movs r2, 0 movs r3, 0x3 _0801DE02: mov r4, r12 ldr r1, [r4] adds r1, r2 adds r1, 0xBC mov r0, r8 ldm r0!, {r4-r6} stm r1!, {r4-r6} ldm r0!, {r4-r6} stm r1!, {r4-r6} adds r2, 0x18 subs r3, 0x1 cmp r3, 0 bge _0801DE02 ldr r1, [r7] adds r1, 0xBC mov r0, r9 ldm r0!, {r2,r5,r6} stm r1!, {r2,r5,r6} ldm r0!, {r3-r5} stm r1!, {r3-r5} b _0801DE70 .align 2, 0 _0801DE2C: .4byte gUnknown_203B25C _0801DE30: .4byte gUnknown_80DBFCC _0801DE34: .4byte gUnknown_80DBFB0 _0801DE38: bl sub_801DFA4 mov r8, r4 ldr r6, _0801DE88 mov r12, r6 mov r7, r8 movs r2, 0 movs r3, 0x3 _0801DE48: mov r0, r8 ldr r1, [r0] adds r1, r2 adds r1, 0xBC mov r0, r12 ldm r0!, {r4-r6} stm r1!, {r4-r6} ldm r0!, {r4-r6} stm r1!, {r4-r6} adds r2, 0x18 subs r3, 0x1 cmp r3, 0 bge _0801DE48 ldr r1, [r7] adds r1, 0xBC ldr r0, _0801DE8C ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2,r5,r6} stm r1!, {r2,r5,r6} _0801DE70: ldr r1, [r7] adds r0, r1, 0 adds r0, 0xBC adds r1, 0x6C bl sub_8012CAC ldr r0, [r7] adds r0, 0xC8 movs r1, 0xA strh r1, [r0] b _0801DEAC .align 2, 0 _0801DE88: .4byte gUnknown_80DBFB0 _0801DE8C: .4byte gUnknown_80DBFCC _0801DE90: ldr r0, [r7] lsls r1, r3, 1 adds r1, r3 lsls r1, 3 adds r0, r1 adds r0, 0xBC adds r1, r2, 0 ldm r1!, {r4-r6} stm r0!, {r4-r6} ldm r1!, {r4-r6} stm r0!, {r4-r6} adds r3, 0x1 cmp r3, 0x3 ble _0801DE90 _0801DEAC: bl sub_8004914 ldr r0, _0801DECC ldr r0, [r0] adds r0, 0xBC movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0801DECC: .4byte gUnknown_203B25C thumb_func_end sub_801DD84 thumb_func_start sub_801DED0 sub_801DED0: push {r4,r5,lr} sub sp, 0x14 ldr r1, _0801DEEC ldr r0, [r1] ldr r0, [r0] adds r3, r1, 0 cmp r0, 0x7 bhi _0801DF94 lsls r0, 2 ldr r1, _0801DEF0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0801DEEC: .4byte gUnknown_203B25C _0801DEF0: .4byte _0801DEF4 .align 2, 0 _0801DEF4: .4byte _0801DF14 .4byte _0801DF14 .4byte _0801DF94 .4byte _0801DF38 .4byte _0801DF40 .4byte _0801DF48 .4byte _0801DF52 .4byte _0801DF70 _0801DF14: ldr r2, [r3] ldr r0, _0801DF34 str r0, [r2, 0x1C] adds r0, r2, 0 adds r0, 0x1C adds r1, r2, 0 adds r1, 0x6C adds r3, r2, 0 adds r3, 0xAC ldr r2, [r2, 0x18] str r2, [sp] movs r2, 0 str r2, [sp, 0x4] bl sub_8012D60 b _0801DF94 .align 2, 0 _0801DF34: .4byte gUnknown_80DBFE4 _0801DF38: movs r0, 0 bl sub_801E3F0 b _0801DF94 _0801DF40: movs r0, 0x1 bl sub_801E510 b _0801DF94 _0801DF48: ldr r0, [r3] ldr r0, [r0, 0x4] bl sub_801E658 b _0801DF94 _0801DF52: ldr r1, [r3] ldr r0, _0801DF6C adds r1, 0x8 ldr r0, [r0] ldm r0!, {r2,r4,r5} stm r1!, {r2,r4,r5} ldr r0, [r0] str r0, [r1] ldr r0, [r3] adds r0, 0x8 bl sub_801E198 b _0801DF94 .align 2, 0 _0801DF6C: .4byte gUnknown_203B46C _0801DF70: bl sub_801DFE4 ldr r0, _0801DF9C ldr r1, _0801DFA0 ldr r3, [r1] adds r3, 0x6C movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] movs r1, 0x20 str r1, [sp, 0x10] movs r1, 0 movs r2, 0x4 bl sub_8014248 _0801DF94: add sp, 0x14 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0801DF9C: .4byte gUnknown_80DBFEC _0801DFA0: .4byte gUnknown_203B25C thumb_func_end sub_801DED0 thumb_func_start sub_801DFA4 sub_801DFA4: push {r4,lr} ldr r4, _0801DFD8 ldr r0, [r4] adds r0, 0xAC movs r1, 0 movs r2, 0x10 bl MemoryFill16 ldr r0, [r4] movs r3, 0 ldr r1, _0801DFDC str r1, [r0, 0x6C] movs r1, 0x3 str r1, [r0, 0x70] movs r2, 0x1 ldr r1, _0801DFE0 str r1, [r0, 0x74] movs r1, 0x2 str r1, [r0, 0x78] str r3, [r0, 0x7C] adds r0, 0x80 str r2, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _0801DFD8: .4byte gUnknown_203B25C _0801DFDC: .4byte gUnknown_80DC000 _0801DFE0: .4byte gUnknown_80DC010 thumb_func_end sub_801DFA4 thumb_func_start sub_801DFE4 sub_801DFE4: push {r4,lr} ldr r4, _0801E01C ldr r0, [r4] adds r0, 0xAC movs r1, 0 movs r2, 0x10 bl MemoryFill16 ldr r1, [r4] movs r3, 0 ldr r0, _0801E020 ldr r0, [r0] str r0, [r1, 0x6C] movs r0, 0x4 str r0, [r1, 0x70] movs r2, 0x1 ldr r0, _0801E024 ldr r0, [r0] str r0, [r1, 0x74] movs r0, 0x5 str r0, [r1, 0x78] str r3, [r1, 0x7C] adds r1, 0x80 str r2, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _0801E01C: .4byte gUnknown_203B25C _0801E020: .4byte gUnknown_80D4920 _0801E024: .4byte gUnknown_80D4928 thumb_func_end sub_801DFE4 thumb_func_start sub_801E028 sub_801E028: push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] ldr r4, _0801E060 ldr r0, [r4] adds r0, 0x1C bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _0801E050 ldr r0, [r4] adds r0, 0x1C mov r1, sp bl sub_8013114 ldr r1, [r4] ldr r0, [sp] str r0, [r1, 0x18] _0801E050: ldr r0, [sp] cmp r0, 0x2 beq _0801E06A cmp r0, 0x2 bgt _0801E064 cmp r0, 0x1 beq _0801E07A b _0801E080 .align 2, 0 _0801E060: .4byte gUnknown_203B25C _0801E064: cmp r0, 0x3 beq _0801E072 b _0801E080 _0801E06A: movs r0, 0x3 bl sub_801DD6C b _0801E080 _0801E072: movs r0, 0x6 bl sub_801DD6C b _0801E080 _0801E07A: movs r0, 0x2 bl sub_801DD6C _0801E080: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_801E028 thumb_func_start sub_801E088 sub_801E088: push {lr} movs r0, 0x1 bl sub_801E474 cmp r0, 0x4 bhi _0801E0DA lsls r0, 2 ldr r1, _0801E0A0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0801E0A0: .4byte _0801E0A4 .align 2, 0 _0801E0A4: .4byte _0801E0DA .4byte _0801E0DA .4byte _0801E0D0 .4byte _0801E0B8 .4byte _0801E0B8 _0801E0B8: bl sub_801E4F4 ldr r1, _0801E0CC ldr r1, [r1] str r0, [r1, 0x4] movs r0, 0x5 bl sub_801DD6C b _0801E0DA .align 2, 0 _0801E0CC: .4byte gUnknown_203B25C _0801E0D0: bl sub_801E54C movs r0, 0x1 bl sub_801DD6C _0801E0DA: pop {r0} bx r0 thumb_func_end sub_801E088 thumb_func_start sub_801E0E0 sub_801E0E0: push {lr} bl sub_801E6CC cmp r0, 0x1 bls _0801E0F8 cmp r0, 0x3 bhi _0801E0F8 bl sub_801E724 movs r0, 0x4 bl sub_801DD6C _0801E0F8: pop {r0} bx r0 thumb_func_end sub_801E0E0 thumb_func_start sub_801E0FC sub_801E0FC: push {lr} bl sub_801E218 cmp r0, 0x1 bls _0801E132 cmp r0, 0x3 bhi _0801E132 bl sub_801E2C4 ldr r0, _0801E128 ldr r0, [r0] adds r0, 0x8 bl sub_80949DC lsls r0, 24 cmp r0, 0 beq _0801E12C movs r0, 0x1 bl sub_801DD6C b _0801E132 .align 2, 0 _0801E128: .4byte gUnknown_203B25C _0801E12C: movs r0, 0x7 bl sub_801DD6C _0801E132: pop {r0} bx r0 thumb_func_end sub_801E0FC thumb_func_start sub_801E138 sub_801E138: push {r4,lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0801E18E ldr r0, [sp] cmp r0, 0x4 beq _0801E15C cmp r0, 0x4 bgt _0801E156 cmp r0, 0x1 beq _0801E188 b _0801E18E _0801E156: cmp r0, 0x5 beq _0801E188 b _0801E18E _0801E15C: ldr r1, _0801E180 ldr r0, _0801E184 ldr r0, [r0] ldr r1, [r1] adds r0, 0x8 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldr r0, [r0] str r0, [r1] bl sub_8094C14 movs r0, 0 bl sub_8099690 movs r0, 0x1 bl sub_801DD6C b _0801E18E .align 2, 0 _0801E180: .4byte gUnknown_203B46C _0801E184: .4byte gUnknown_203B25C _0801E188: movs r0, 0x1 bl sub_801DD6C _0801E18E: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_801E138 thumb_func_start sub_801E198 sub_801E198: push {r4,r5,lr} adds r5, r0, 0 ldr r4, _0801E210 movs r0, 0xAC movs r1, 0x8 bl MemoryAlloc str r0, [r4] stm r0!, {r5} bl sub_801317C ldr r1, [r4] movs r0, 0 str r0, [r1, 0x44] adds r0, r1, 0 adds r0, 0x4C str r0, [r1, 0x48] bl sub_8006518 ldr r1, [r4] ldr r2, [r1, 0x44] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, 0x4C ldr r0, _0801E214 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldr r0, [r4] ldr r0, [r0, 0x48] movs r1, 0x1 bl sub_8012D08 bl sub_8004914 ldr r0, [r4] adds r0, 0x4C movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r1, [r4] adds r0, r1, 0 adds r0, 0x10 ldr r3, [r1, 0x44] movs r1, 0x1 movs r2, 0x1 bl sub_8013818 bl nullsub_38 bl sub_801E310 movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0801E210: .4byte gUnknown_203B260 _0801E214: .4byte gUnknown_80DC03C thumb_func_end sub_801E198 thumb_func_start sub_801E218 sub_801E218: push {r4,lr} movs r4, 0 bl sub_8012AE8 cmp r0, 0x2 beq _0801E238 cmp r0, 0x2 bgt _0801E22E cmp r0, 0x1 beq _0801E242 b _0801E294 _0801E22E: cmp r0, 0x9 beq _0801E24C cmp r0, 0xA beq _0801E26C b _0801E294 _0801E238: movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 b _0801E2BE _0801E242: movs r0, 0 bl sub_80119D4 movs r0, 0x3 b _0801E2BE _0801E24C: ldr r0, _0801E264 ldr r1, [r0] movs r2, 0x28 ldrsh r0, [r1, r2] cmp r0, 0 bne _0801E294 ldr r1, [r1] ldrb r0, [r1, 0x8] cmp r0, 0 bne _0801E268 movs r0, 0x2 b _0801E28A .align 2, 0 _0801E264: .4byte gUnknown_203B260 _0801E268: subs r0, 0x1 b _0801E28A _0801E26C: ldr r0, _0801E284 ldr r1, [r0] movs r2, 0x28 ldrsh r0, [r1, r2] cmp r0, 0 bne _0801E294 ldr r1, [r1] ldrb r0, [r1, 0x8] cmp r0, 0x1 bls _0801E288 strb r4, [r1, 0x8] b _0801E28C .align 2, 0 _0801E284: .4byte gUnknown_203B260 _0801E288: adds r0, 0x1 _0801E28A: strb r0, [r1, 0x8] _0801E28C: movs r0, 0x3 bl sub_80119D4 movs r4, 0x1 _0801E294: ldr r0, _0801E2B8 ldr r0, [r0] adds r0, 0x10 movs r1, 0x1 bl sub_80138B8 lsls r0, 24 cmp r0, 0 bne _0801E2AA cmp r4, 0x1 bne _0801E2BC _0801E2AA: bl nullsub_38 bl sub_801E310 movs r0, 0x1 b _0801E2BE .align 2, 0 _0801E2B8: .4byte gUnknown_203B260 _0801E2BC: movs r0, 0 _0801E2BE: pop {r4} pop {r1} bx r1 thumb_func_end sub_801E218 thumb_func_start sub_801E2C4 sub_801E2C4: push {r4,r5,lr} ldr r4, _0801E304 ldr r2, [r4] cmp r2, 0 beq _0801E2FE ldr r0, [r2, 0x44] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 adds r1, 0x4C ldr r0, _0801E308 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} bl sub_8004914 ldr r0, [r4] adds r0, 0x4C movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _0801E2FE: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0801E304: .4byte gUnknown_203B260 _0801E308: .4byte gUnknown_80DC020 thumb_func_end sub_801E2C4 thumb_func_start nullsub_38 nullsub_38: bx lr thumb_func_end nullsub_38 thumb_func_start sub_801E310 sub_801E310: push {r4-r6,lr} sub sp, 0x4 ldr r5, _0801E368 ldr r0, [r5] ldr r0, [r0, 0x44] bl sub_8008C54 ldr r0, [r5] ldr r0, [r0, 0x44] bl sub_80073B8 ldr r2, _0801E36C ldr r0, [r5] ldr r3, [r0, 0x44] movs r4, 0 str r4, [sp] movs r0, 0x10 movs r1, 0 bl xxx_call_draw_string ldr r0, [r5] adds r0, 0x10 movs r1, 0 bl sub_8013800 adds r6, r0, 0 ldr r2, _0801E370 ldr r0, [r5] ldr r3, [r0, 0x44] str r4, [sp] movs r0, 0x8 adds r1, r6, 0 bl xxx_call_draw_string ldr r0, [r5] ldr r0, [r0] ldrb r0, [r0, 0x8] cmp r0, 0x1 beq _0801E384 cmp r0, 0x1 bgt _0801E374 cmp r0, 0 beq _0801E37A b _0801E3D6 .align 2, 0 _0801E368: .4byte gUnknown_203B260 _0801E36C: .4byte gUnknown_80DC054 _0801E370: .4byte gUnknown_80DC064 _0801E374: cmp r0, 0x2 beq _0801E3B0 b _0801E3D6 _0801E37A: ldr r0, _0801E380 b _0801E386 .align 2, 0 _0801E380: .4byte gUnknown_80DC084 _0801E384: ldr r0, _0801E3AC _0801E386: bl sub_8008ED0 adds r4, r0, 0 ldr r1, [r5] ldr r0, [r1, 0x44] ldr r1, [r1] ldrb r2, [r1, 0x8] lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, 0x50 adds r2, r6, 0 adds r2, 0xA movs r3, 0x7 str r3, [sp] adds r3, r4, 0 bl sub_80078A4 b _0801E3D6 .align 2, 0 _0801E3AC: .4byte gUnknown_80DC08C _0801E3B0: ldr r0, _0801E3E8 bl sub_8008ED0 adds r4, r0, 0 ldr r1, [r5] ldr r0, [r1, 0x44] ldr r1, [r1] ldrb r2, [r1, 0x8] lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, 0x50 adds r2, r6, 0 adds r2, 0xA movs r3, 0x7 str r3, [sp] adds r3, r4, 0 bl sub_80078A4 _0801E3D6: ldr r0, _0801E3EC ldr r0, [r0] ldr r0, [r0, 0x44] bl sub_80073E0 add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0801E3E8: .4byte gUnknown_80DC090 _0801E3EC: .4byte gUnknown_203B260 thumb_func_end sub_801E310 thumb_func_start sub_801E3F0 sub_801E3F0: push {r4-r6,lr} adds r5, r0, 0 ldr r4, _0801E46C ldr r0, [r4] cmp r0, 0 bne _0801E406 movs r0, 0x9C movs r1, 0x8 bl MemoryAlloc str r0, [r4] _0801E406: ldr r0, [r4] str r5, [r0, 0x34] lsls r1, r5, 1 adds r1, r5 lsls r1, 3 adds r1, 0x3C adds r1, r0, r1 str r1, [r0, 0x38] adds r0, 0x3C bl sub_8006518 ldr r1, [r4] ldr r2, [r1, 0x34] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, 0x3C ldr r0, _0801E470 ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldr r0, [r4] ldr r0, [r0, 0x38] movs r1, 0xA bl sub_8012D08 bl sub_8004914 ldr r0, [r4] adds r0, 0x3C movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] movs r1, 0x5 movs r2, 0xA adds r3, r5, 0 bl sub_8013818 bl sub_801E594 bl sub_801E5E8 movs r0, 0x1 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0801E46C: .4byte gUnknown_203B264 _0801E470: .4byte gUnknown_80DC0BC thumb_func_end sub_801E3F0 thumb_func_start sub_801E474 sub_801E474: push {lr} lsls r0, 24 cmp r0, 0 bne _0801E48C ldr r0, _0801E488 ldr r0, [r0] bl sub_8013660 movs r0, 0 b _0801E4EE .align 2, 0 _0801E488: .4byte gUnknown_203B264 _0801E48C: ldr r0, _0801E4A4 ldr r0, [r0] bl GetKeyPress cmp r0, 0x2 beq _0801E4AE cmp r0, 0x2 bgt _0801E4A8 cmp r0, 0x1 beq _0801E4B8 b _0801E4CC .align 2, 0 _0801E4A4: .4byte gUnknown_203B264 _0801E4A8: cmp r0, 0x4 beq _0801E4C2 b _0801E4CC _0801E4AE: movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 b _0801E4EE _0801E4B8: movs r0, 0 bl sub_80119D4 movs r0, 0x3 b _0801E4EE _0801E4C2: movs r0, 0x4 bl sub_80119D4 movs r0, 0x4 b _0801E4EE _0801E4CC: ldr r0, _0801E4E0 ldr r0, [r0] movs r1, 0x1 bl sub_80138B8 lsls r0, 24 cmp r0, 0 bne _0801E4E4 movs r0, 0 b _0801E4EE .align 2, 0 _0801E4E0: .4byte gUnknown_203B264 _0801E4E4: bl sub_801E594 bl sub_801E5E8 movs r0, 0x1 _0801E4EE: pop {r1} bx r1 thumb_func_end sub_801E474 thumb_func_start sub_801E4F4 sub_801E4F4: ldr r0, _0801E50C ldr r1, [r0] movs r0, 0x1E ldrsh r2, [r1, r0] movs r3, 0x1C ldrsh r0, [r1, r3] muls r0, r2 movs r2, 0x18 ldrsh r1, [r1, r2] adds r0, r1 bx lr .align 2, 0 _0801E50C: .4byte gUnknown_203B264 thumb_func_end sub_801E4F4 thumb_func_start sub_801E510 sub_801E510: push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8004914 ldr r5, _0801E548 ldr r0, [r5] adds r0, 0x3C movs r1, 0 movs r2, 0 bl sub_800641C ldr r0, [r5] bl sub_8013984 bl sub_801E594 bl sub_801E5E8 cmp r4, 0 beq _0801E542 ldr r0, [r5] bl AddMenuCursorSprite _0801E542: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0801E548: .4byte gUnknown_203B264 thumb_func_end sub_801E510 thumb_func_start sub_801E54C sub_801E54C: push {r4,r5,lr} ldr r4, _0801E58C ldr r2, [r4] cmp r2, 0 beq _0801E586 ldr r0, [r2, 0x34] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 adds r1, 0x3C ldr r0, _0801E590 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} bl sub_8004914 ldr r0, [r4] adds r0, 0x3C movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _0801E586: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0801E58C: .4byte gUnknown_203B264 _0801E590: .4byte gUnknown_80DC0A0 thumb_func_end sub_801E54C thumb_func_start sub_801E594 sub_801E594: push {r4,lr} ldr r4, _0801E5E4 ldr r0, [r4] movs r1, 0x1A ldrsh r0, [r0, r1] movs r1, 0xC bl sub_80095E4 adds r0, 0x2 lsls r0, 16 ldr r2, [r4] ldr r3, [r2, 0x34] lsls r1, r3, 1 adds r1, r3 lsls r1, 3 adds r1, r2, r1 adds r1, 0x4A asrs r3, r0, 16 lsrs r0, 16 strh r0, [r1] ldr r1, [r2, 0x34] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r2, r0 adds r3, 0x2 adds r2, 0x4C strh r3, [r2] bl sub_8004914 ldr r0, [r4] adds r0, 0x3C movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4} pop {r0} bx r0 .align 2, 0 _0801E5E4: .4byte gUnknown_203B264 thumb_func_end sub_801E594 thumb_func_start sub_801E5E8 sub_801E5E8: push {r4-r6,lr} sub sp, 0x4 ldr r4, _0801E64C ldr r0, [r4] ldr r0, [r0, 0x34] bl sub_8008C54 ldr r0, [r4] ldr r0, [r0, 0x34] bl sub_80073B8 ldr r2, _0801E650 ldr r0, [r4] ldr r3, [r0, 0x34] movs r0, 0 str r0, [sp] movs r0, 0x10 movs r1, 0 bl xxx_call_draw_string movs r5, 0 adds r6, r4, 0 ldr r4, _0801E654 _0801E616: ldr r0, [r6] adds r1, r5, 0 bl sub_8013800 adds r1, r0, 0 ldr r2, [r4] ldr r0, [r6] ldr r3, [r0, 0x34] movs r0, 0 str r0, [sp] movs r0, 0xA bl xxx_call_draw_string adds r4, 0x8 adds r5, 0x1 cmp r5, 0x4 ble _0801E616 ldr r0, _0801E64C ldr r0, [r0] ldr r0, [r0, 0x34] bl sub_80073E0 add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0801E64C: .4byte gUnknown_203B264 _0801E650: .4byte gUnknown_80DC0D4 _0801E654: .4byte gUnknown_80DAA98 thumb_func_end sub_801E5E8 thumb_func_start sub_801E658 sub_801E658: push {r4-r6,lr} adds r5, r0, 0 ldr r4, _0801E6C4 movs r0, 0xA0 movs r1, 0x8 bl MemoryAlloc str r0, [r4] movs r1, 0 str r1, [r0, 0x34] adds r1, r0, 0 adds r1, 0x3C str r1, [r0, 0x38] adds r0, r1, 0 bl sub_8006518 ldr r1, [r4] ldr r2, [r1, 0x34] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, 0x3C ldr r0, _0801E6C8 ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldr r0, [r4] ldr r1, [r0, 0x38] adds r0, 0x9C str r0, [r1, 0x14] bl sub_8004914 ldr r0, [r4] adds r0, 0x3C movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] ldr r3, [r0, 0x34] movs r1, 0x5 movs r2, 0x1 bl sub_8013818 ldr r0, [r4] strh r5, [r0, 0x1E] bl sub_801E714 movs r0, 0x1 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0801E6C4: .4byte gUnknown_203B268 _0801E6C8: .4byte gUnknown_80DC0FC thumb_func_end sub_801E658 thumb_func_start sub_801E6CC sub_801E6CC: push {r4,lr} ldr r4, _0801E6E8 ldr r0, [r4] bl GetKeyPress cmp r0, 0x1 beq _0801E6EC cmp r0, 0x2 bne _0801E6F6 movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 b _0801E70C .align 2, 0 _0801E6E8: .4byte gUnknown_203B268 _0801E6EC: movs r0, 0 bl sub_80119D4 movs r0, 0x3 b _0801E70C _0801E6F6: ldr r0, [r4] bl sub_8013938 lsls r0, 24 cmp r0, 0 bne _0801E706 movs r0, 0 b _0801E70C _0801E706: bl sub_801E714 movs r0, 0x1 _0801E70C: pop {r4} pop {r1} bx r1 thumb_func_end sub_801E6CC thumb_func_start sub_801E714 sub_801E714: push {lr} bl sub_801E76C bl sub_801E7AC pop {r0} bx r0 thumb_func_end sub_801E714 thumb_func_start sub_801E724 sub_801E724: push {r4,r5,lr} ldr r4, _0801E764 ldr r2, [r4] cmp r2, 0 beq _0801E75E ldr r0, [r2, 0x34] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 adds r1, 0x3C ldr r0, _0801E768 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} bl sub_8004914 ldr r0, [r4] adds r0, 0x3C movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _0801E75E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0801E764: .4byte gUnknown_203B268 _0801E768: .4byte gUnknown_80DC0E4 thumb_func_end sub_801E724 thumb_func_start sub_801E76C sub_801E76C: push {r4,lr} ldr r4, _0801E7A8 ldr r0, [r4] ldrh r1, [r0, 0x20] adds r0, 0x9C movs r2, 0 strb r1, [r0] ldr r0, [r4] ldrh r1, [r0, 0x1E] adds r0, 0x9D strb r1, [r0] ldr r0, [r4] adds r0, 0x9E movs r1, 0xF strb r1, [r0] ldr r0, [r4] adds r0, 0x9F strb r2, [r0] bl sub_8004914 ldr r0, [r4] adds r0, 0x3C movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4} pop {r0} bx r0 .align 2, 0 _0801E7A8: .4byte gUnknown_203B268 thumb_func_end sub_801E76C thumb_func_start sub_801E7AC sub_801E7AC: push {r4-r6,lr} sub sp, 0x4 ldr r5, _0801E804 ldr r0, [r5] ldr r0, [r0, 0x34] bl sub_80073B8 ldr r3, [r5] movs r0, 0x1E ldrsh r1, [r3, r0] lsls r1, 3 adds r0, r1, 0 adds r0, 0x10 ldr r4, _0801E808 adds r1, r4 ldr r2, [r1] ldr r3, [r3, 0x34] movs r6, 0 str r6, [sp] movs r1, 0 bl xxx_call_draw_string ldr r1, [r5] movs r2, 0x1E ldrsh r0, [r1, r2] lsls r0, 3 adds r4, 0x4 adds r0, r4 ldr r2, [r0] ldr r3, [r1, 0x34] str r6, [sp] movs r0, 0xA movs r1, 0x14 bl xxx_call_draw_string ldr r0, [r5] ldr r0, [r0, 0x34] bl sub_80073E0 add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0801E804: .4byte gUnknown_203B268 _0801E808: .4byte gUnknown_80DAA98 thumb_func_end sub_801E7AC thumb_func_start sub_801E80C sub_801E80C: push {r4-r6,lr} mov r6, r8 push {r6} mov r8, r0 adds r4, r1, 0 adds r6, r2, 0 lsls r4, 16 asrs r4, 16 ldr r5, _0801E84C movs r0, 0xC6 lsls r0, 1 movs r1, 0x8 bl MemoryAlloc adds r2, r0, 0 str r2, [r5] mov r0, r8 str r0, [r2] strh r4, [r2, 0xC] str r6, [r2, 0x10] ldrh r0, [r6, 0x22] strh r0, [r2, 0x1C] mov r1, r8 cmp r1, 0 bne _0801E850 movs r3, 0x94 lsls r3, 1 adds r1, r2, r3 movs r4, 0x8C lsls r4, 1 adds r0, r2, r4 b _0801E858 .align 2, 0 _0801E84C: .4byte gUnknown_203B26C _0801E850: movs r0, 0x94 lsls r0, 1 adds r1, r2, r0 movs r0, 0 _0801E858: str r0, [r1] ldr r0, _0801E8B4 bl sub_808DDD0 ldr r2, _0801E8B8 ldr r3, [r2] movs r4, 0x8C lsls r4, 1 adds r1, r3, r4 str r0, [r1] adds r4, 0x4 adds r1, r3, r4 ldr r0, [r0, 0x4] str r0, [r1] movs r1, 0x92 lsls r1, 1 adds r0, r3, r1 movs r1, 0 strb r1, [r0] ldr r0, [r2] ldr r3, _0801E8BC adds r0, r3 strb r1, [r0] ldr r0, [r2] adds r4, 0xA adds r0, r4 strb r1, [r0] ldr r2, [r2] movs r0, 0x90 lsls r0, 1 adds r1, r2, r0 movs r0, 0x2 strh r0, [r1] subs r3, 0x3 adds r1, r2, r3 movs r0, 0x8 strh r0, [r1] movs r0, 0 bl sub_801E968 movs r0, 0x1 pop {r3} mov r8, r3 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0801E8B4: .4byte 0x00000155 _0801E8B8: .4byte gUnknown_203B26C _0801E8BC: .4byte 0x00000125 thumb_func_end sub_801E80C thumb_func_start sub_801E8C0 sub_801E8C0: push {lr} ldr r0, _0801E8D8 ldr r0, [r0] ldr r0, [r0, 0x4] cmp r0, 0x6 bhi _0801E928 lsls r0, 2 ldr r1, _0801E8DC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0801E8D8: .4byte gUnknown_203B26C _0801E8DC: .4byte _0801E8E0 .align 2, 0 _0801E8E0: .4byte _0801E8FC .4byte _0801E8FC .4byte _0801E902 .4byte _0801E908 .4byte _0801E90E .4byte _0801E91C .4byte _0801E924 _0801E8FC: bl sub_801ECBC b _0801E928 _0801E902: bl sub_801ED28 b _0801E928 _0801E908: bl sub_801EDA4 b _0801E928 _0801E90E: bl sub_801EDC0 ldr r0, _0801E920 ldr r0, [r0] ldr r0, [r0, 0x4] cmp r0, 0x5 bne _0801E928 _0801E91C: movs r0, 0x3 b _0801E92A .align 2, 0 _0801E920: .4byte gUnknown_203B26C _0801E924: movs r0, 0x2 b _0801E92A _0801E928: movs r0, 0 _0801E92A: pop {r1} bx r1 thumb_func_end sub_801E8C0 thumb_func_start sub_801E930 sub_801E930: ldr r0, _0801E938 ldr r0, [r0] ldrb r0, [r0, 0xE] bx lr .align 2, 0 _0801E938: .4byte gUnknown_203B26C thumb_func_end sub_801E930 thumb_func_start sub_801E93C sub_801E93C: push {r4,lr} ldr r4, _0801E964 ldr r0, [r4] cmp r0, 0 beq _0801E95C movs r1, 0x8C lsls r1, 1 adds r0, r1 ldr r0, [r0] bl CloseFile ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _0801E95C: pop {r4} pop {r0} bx r0 .align 2, 0 _0801E964: .4byte gUnknown_203B26C thumb_func_end sub_801E93C thumb_func_start sub_801E968 sub_801E968: push {lr} ldr r1, _0801E97C ldr r1, [r1] str r0, [r1, 0x4] bl sub_801E980 bl sub_801EA28 pop {r0} bx r0 .align 2, 0 _0801E97C: .4byte gUnknown_203B26C thumb_func_end sub_801E968 thumb_func_start sub_801E980 sub_801E980: push {r4-r7,lr} mov r7, r8 push {r7} ldr r4, _0801E9D0 ldr r0, [r4] movs r5, 0x96 lsls r5, 1 adds r0, r5 bl sub_8006518 ldr r0, [r4] ldr r0, [r0, 0x4] cmp r0, 0x2 bne _0801E9DC bl sub_801EBC4 ldr r1, [r4] movs r0, 0xA2 lsls r0, 1 adds r1, r0 ldr r0, _0801E9D4 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r6,r7} stm r1!, {r2,r6,r7} ldr r2, [r4] movs r0, 0xAE lsls r0, 1 adds r2, r0 ldr r1, _0801E9D8 ldm r1!, {r3,r5,r6} stm r2!, {r3,r5,r6} ldm r1!, {r3,r5,r7} stm r2!, {r3,r5,r7} ldr r1, [r4] adds r0, r1, r0 adds r1, 0x28 bl sub_8012CAC b _0801EA00 .align 2, 0 _0801E9D0: .4byte gUnknown_203B26C _0801E9D4: .4byte gUnknown_80DC11C _0801E9D8: .4byte gUnknown_80DC134 _0801E9DC: mov r12, r4 mov r8, r5 ldr r4, _0801EA20 movs r2, 0 movs r3, 0x3 _0801E9E6: mov r6, r12 ldr r1, [r6] adds r1, r2 add r1, r8 adds r0, r4, 0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} adds r2, 0x18 subs r3, 0x1 cmp r3, 0 bge _0801E9E6 _0801EA00: bl sub_8004914 ldr r0, _0801EA24 ldr r0, [r0] movs r7, 0x96 lsls r7, 1 adds r0, r7 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0801EA20: .4byte gUnknown_80DC11C _0801EA24: .4byte gUnknown_203B26C thumb_func_end sub_801E980 thumb_func_start sub_801EA28 sub_801EA28: push {r4,r5,lr} sub sp, 0x14 ldr r1, _0801EA44 ldr r0, [r1] ldr r0, [r0, 0x4] adds r4, r1, 0 cmp r0, 0x4 bls _0801EA3A b _0801EBB8 _0801EA3A: lsls r0, 2 ldr r1, _0801EA48 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0801EA44: .4byte gUnknown_203B26C _0801EA48: .4byte _0801EA4C .align 2, 0 _0801EA4C: .4byte _0801EA60 .4byte _0801EA80 .4byte _0801EA8A .4byte _0801EAB4 .4byte _0801EACA _0801EA60: ldr r0, [r4] movs r2, 0xC ldrsh r1, [r0, r2] ldr r2, [r0, 0x10] ldr r0, _0801EA7C str r0, [sp] movs r0, 0 str r0, [sp, 0x4] movs r0, 0x2 movs r3, 0 bl sub_801EE10 b _0801EBB8 .align 2, 0 _0801EA7C: .4byte gUnknown_80DC164 _0801EA80: movs r0, 0x1 movs r1, 0 bl sub_801F1B0 b _0801EBB8 _0801EA8A: movs r0, 0 bl sub_801F280 ldr r0, _0801EAB0 ldr r2, [r0] adds r0, r2, 0 adds r0, 0x78 adds r1, r2, 0 adds r1, 0x28 adds r3, r2, 0 adds r3, 0x68 ldr r2, [r2, 0x24] str r2, [sp] movs r2, 0x2 str r2, [sp, 0x4] movs r2, 0 bl sub_8012D60 b _0801EBB8 .align 2, 0 _0801EAB0: .4byte gUnknown_203B26C _0801EAB4: ldr r2, [r4] ldr r0, [r2, 0x20] ldr r1, [r2, 0x10] adds r2, 0x14 bl sub_8093560 ldr r0, [r4] adds r0, 0x14 bl sub_801F808 b _0801EBB8 _0801EACA: bl sub_801EC7C ldr r4, _0801EAF8 ldr r5, _0801EAFC ldr r0, [r5] ldrh r1, [r0, 0x1C] adds r0, r4, 0 bl sub_8092C84 adds r4, 0x50 ldr r0, [r5] ldrh r1, [r0, 0x1E] adds r0, r4, 0 bl sub_8092C84 ldr r2, [r5] ldr r3, [r2] cmp r3, 0x1 bls _0801EB00 cmp r3, 0x2 beq _0801EB68 b _0801EBB8 .align 2, 0 _0801EAF8: .4byte gUnknown_202DF98 _0801EAFC: .4byte gUnknown_203B26C _0801EB00: ldrb r4, [r2, 0xE] cmp r4, 0 beq _0801EB38 ldr r1, _0801EB34 movs r0, 0x64 muls r0, r3 adds r1, 0x30 adds r0, r1 ldr r0, [r0] adds r3, r2, 0 adds r3, 0x28 adds r1, r2, 0 adds r1, 0x68 str r1, [sp] movs r1, 0x4 str r1, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] movs r4, 0x94 lsls r4, 1 adds r1, r2, r4 ldr r1, [r1] str r1, [sp, 0xC] movs r1, 0xC b _0801EB86 .align 2, 0 _0801EB34: .4byte gUnknown_80D8888 _0801EB38: ldr r1, _0801EB64 movs r0, 0x64 muls r0, r3 adds r1, 0x2C adds r0, r1 ldr r0, [r0] adds r3, r2, 0 adds r3, 0x28 adds r1, r2, 0 adds r1, 0x68 str r1, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r4, [sp, 0x8] movs r4, 0x94 lsls r4, 1 adds r1, r2, r4 ldr r1, [r1] str r1, [sp, 0xC] movs r1, 0xC b _0801EB86 .align 2, 0 _0801EB64: .4byte gUnknown_80D8888 _0801EB68: ldrb r4, [r2, 0xE] cmp r4, 0 beq _0801EB98 ldr r0, _0801EB94 adds r3, r2, 0 adds r3, 0x28 adds r1, r2, 0 adds r1, 0x68 str r1, [sp] movs r1, 0x4 str r1, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] str r1, [sp, 0xC] movs r1, 0x20 _0801EB86: str r1, [sp, 0x10] movs r1, 0 movs r2, 0x5 bl sub_8014248 b _0801EBB8 .align 2, 0 _0801EB94: .4byte gUnknown_80DC1A0 _0801EB98: ldr r0, _0801EBC0 adds r3, r2, 0 adds r3, 0x28 adds r1, r2, 0 adds r1, 0x68 str r1, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r4, [sp, 0x8] str r4, [sp, 0xC] movs r1, 0x20 str r1, [sp, 0x10] movs r1, 0 movs r2, 0x5 bl sub_8014248 _0801EBB8: add sp, 0x14 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0801EBC0: .4byte gUnknown_80DC1FC thumb_func_end sub_801EA28 thumb_func_start sub_801EBC4 sub_801EBC4: push {r4,r5,lr} movs r5, 0 ldr r4, _0801EC48 ldr r0, [r4] adds r0, 0x68 movs r1, 0 movs r2, 0x10 bl MemoryFill16 ldr r1, [r4] ldr r0, _0801EC4C str r0, [r1, 0x28] movs r0, 0x2 str r0, [r1, 0x2C] ldrh r0, [r1, 0x1E] ldr r1, [r1, 0x10] bl sub_80933A0 lsls r0, 24 cmp r0, 0 beq _0801EBF6 ldr r0, [r4] ldr r0, [r0, 0x20] cmp r0, 0x3 ble _0801EBFE _0801EBF6: ldr r0, [r4] adds r0, 0x68 movs r1, 0x1 strh r1, [r0] _0801EBFE: adds r5, 0x1 ldr r4, _0801EC48 ldr r0, [r4] mov r12, r0 lsls r1, r5, 3 mov r3, r12 adds r3, 0x28 adds r2, r3, r1 ldr r0, _0801EC50 ldr r0, [r0] str r0, [r2] mov r2, r12 adds r2, 0x2C adds r1, r2, r1 movs r0, 0x3 str r0, [r1] adds r5, 0x1 lsls r1, r5, 3 adds r3, r1 movs r0, 0 str r0, [r3] adds r2, r1 movs r0, 0x1 str r0, [r2] movs r3, 0 cmp r3, r5 bge _0801EC76 mov r0, r12 adds r0, 0x68 ldrh r0, [r0] cmp r0, 0 bne _0801EC54 mov r1, r12 ldr r0, [r1, 0x2C] str r0, [r1, 0x24] b _0801EC76 .align 2, 0 _0801EC48: .4byte gUnknown_203B26C _0801EC4C: .4byte gUnknown_80DC230 _0801EC50: .4byte gUnknown_80D4970 _0801EC54: adds r3, 0x1 cmp r3, r5 bge _0801EC76 ldr r2, [r4] lsls r0, r3, 1 adds r1, r2, 0 adds r1, 0x68 adds r1, r0 ldrh r0, [r1] cmp r0, 0 bne _0801EC54 lsls r0, r3, 3 adds r1, r2, 0 adds r1, 0x2C adds r1, r0 ldr r0, [r1] str r0, [r2, 0x24] _0801EC76: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_801EBC4 thumb_func_start sub_801EC7C sub_801EC7C: push {r4,lr} ldr r4, _0801ECB0 ldr r0, [r4] adds r0, 0x68 movs r1, 0 movs r2, 0x10 bl MemoryFill16 ldr r1, [r4] movs r3, 0 ldr r0, _0801ECB4 ldr r0, [r0] str r0, [r1, 0x28] movs r0, 0x4 str r0, [r1, 0x2C] movs r2, 0x1 ldr r0, _0801ECB8 ldr r0, [r0] str r0, [r1, 0x30] movs r0, 0x5 str r0, [r1, 0x34] str r3, [r1, 0x38] str r2, [r1, 0x3C] pop {r4} pop {r0} bx r0 .align 2, 0 _0801ECB0: .4byte gUnknown_203B26C _0801ECB4: .4byte gUnknown_80D4920 _0801ECB8: .4byte gUnknown_80D4928 thumb_func_end sub_801EC7C thumb_func_start sub_801ECBC sub_801ECBC: push {lr} movs r0, 0x1 bl sub_801EF38 cmp r0, 0x3 beq _0801ECD8 cmp r0, 0x3 bhi _0801ECD2 cmp r0, 0x2 beq _0801ED18 b _0801ED22 _0801ECD2: cmp r0, 0x4 beq _0801ECF8 b _0801ED22 _0801ECD8: bl sub_801F194 ldr r1, _0801ECF4 ldr r2, [r1] str r0, [r2, 0x20] ldr r1, [r2, 0x10] lsls r0, 3 adds r1, r0 ldrh r0, [r1, 0x2] strh r0, [r2, 0x1E] movs r0, 0x2 bl sub_801E968 b _0801ED22 .align 2, 0 _0801ECF4: .4byte gUnknown_203B26C _0801ECF8: bl sub_801F194 ldr r1, _0801ED14 ldr r2, [r1] str r0, [r2, 0x20] ldr r1, [r2, 0x10] lsls r0, 3 adds r1, r0 ldrh r0, [r1, 0x2] strh r0, [r2, 0x1E] movs r0, 0x3 bl sub_801E968 b _0801ED22 .align 2, 0 _0801ED14: .4byte gUnknown_203B26C _0801ED18: bl sub_801F214 movs r0, 0x6 bl sub_801E968 _0801ED22: pop {r0} bx r0 thumb_func_end sub_801ECBC thumb_func_start sub_801ED28 sub_801ED28: push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] bl sub_801EF38 ldr r4, _0801ED60 ldr r0, [r4] adds r0, 0x78 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _0801ED4E ldr r0, [r4] adds r0, 0x78 mov r1, sp bl sub_8013114 _0801ED4E: ldr r0, [sp] cmp r0, 0x2 beq _0801ED74 cmp r0, 0x2 bgt _0801ED64 cmp r0, 0x1 beq _0801ED6C b _0801ED9A .align 2, 0 _0801ED60: .4byte gUnknown_203B26C _0801ED64: cmp r0, 0x3 beq _0801ED94 cmp r0, 0x5 bne _0801ED9A _0801ED6C: movs r0, 0x1 bl sub_801E968 b _0801ED9A _0801ED74: ldr r0, _0801ED90 bl sub_8011988 ldr r1, [r4] ldr r0, [r1, 0x20] ldr r1, [r1, 0x10] bl sub_80934B0 ldr r1, [r4] strb r0, [r1, 0xE] movs r0, 0x4 bl sub_801E968 b _0801ED9A .align 2, 0 _0801ED90: .4byte 0x00000133 _0801ED94: movs r0, 0x3 bl sub_801E968 _0801ED9A: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_801ED28 thumb_func_start sub_801EDA4 sub_801EDA4: push {lr} bl sub_801F890 cmp r0, 0x1 bls _0801EDBC cmp r0, 0x3 bhi _0801EDBC bl sub_801F8D0 movs r0, 0x1 bl sub_801E968 _0801EDBC: pop {r0} bx r0 thumb_func_end sub_801EDA4 thumb_func_start sub_801EDC0 sub_801EDC0: push {r4,lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0801EE06 ldr r0, [sp] cmp r0, 0x4 beq _0801EDE4 cmp r0, 0x4 bgt _0801EDDE cmp r0, 0x1 beq _0801EE00 b _0801EE06 _0801EDDE: cmp r0, 0x5 beq _0801EE00 b _0801EE06 _0801EDE4: bl sub_801F214 ldr r4, _0801EDFC ldr r1, [r4] ldr r0, [r1, 0x10] ldr r1, [r1, 0x20] bl sub_8093CF8 ldr r1, [r4] movs r0, 0x5 str r0, [r1, 0x4] b _0801EE06 .align 2, 0 _0801EDFC: .4byte gUnknown_203B26C _0801EE00: movs r0, 0x1 bl sub_801E968 _0801EE06: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_801EDC0 thumb_func_start sub_801EE10 sub_801EE10: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r6, r0, 0 mov r9, r2 adds r4, r3, 0 ldr r0, [sp, 0x20] mov r8, r0 lsls r1, 16 asrs r7, r1, 16 lsls r4, 24 lsrs r4, 24 ldr r5, _0801EF28 movs r0, 0xBC movs r1, 0x8 bl MemoryAlloc str r0, [r5] movs r2, 0 strb r4, [r0, 0x4] ldr r0, [r5] movs r1, 0x1 strb r1, [r0, 0x5] ldr r0, [r5] strb r1, [r0, 0x6] ldr r0, [r5] strb r1, [r0, 0x7] ldr r0, [r5] str r6, [r0] cmp r6, 0x1 bls _0801EE5E cmp r6, 0x3 bhi _0801EE5E strb r2, [r0, 0x5] ldr r0, [r5] strb r2, [r0, 0x6] ldr r0, [r5] strb r2, [r0, 0x7] _0801EE5E: ldr r4, _0801EF28 ldr r3, [r4] ldr r2, _0801EF2C movs r0, 0x58 adds r1, r7, 0 muls r1, r0 ldr r0, [r2] adds r0, r1 str r0, [r3, 0x8] ldrb r0, [r0, 0x2] strb r0, [r3, 0xC] ldr r0, [r4] mov r1, r9 str r1, [r0, 0x10] adds r0, 0xB8 ldr r1, [sp, 0x1C] str r1, [r0] bl sub_801F3F8 adds r5, r0, 0 adds r6, r5, 0 cmp r5, 0x4 bge _0801EE8E movs r6, 0x4 _0801EE8E: ldr r0, [r4] adds r0, 0x58 bl sub_8006518 ldr r1, [r4] mov r2, r8 str r2, [r1, 0x50] lsls r0, r2, 1 add r0, r8 lsls r0, 3 adds r1, r0 adds r1, 0x58 ldr r0, _0801EF30 ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldr r0, [r4] adds r0, 0xB8 ldr r0, [r0] cmp r0, 0 beq _0801EED8 mov r0, r8 bl sub_8006544 ldr r1, [r4] str r0, [r1, 0x54] lsls r2, r0, 1 adds r2, r0 lsls r2, 3 adds r1, r2 adds r1, 0x58 ldr r0, _0801EF34 ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} _0801EED8: ldr r0, [r4] ldr r2, [r0, 0x50] lsls r1, r2, 1 adds r1, r2 lsls r1, 3 adds r1, 0x58 adds r0, r1 adds r1, r6, 0 bl sub_8012D08 bl sub_8004914 ldr r0, [r4] adds r0, 0x58 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] adds r0, 0x1C adds r1, r5, 0 adds r2, r5, 0 mov r3, r8 bl sub_8013818 ldr r0, [r4] adds r0, 0x1C movs r1, 0 bl sub_8013780 movs r0, 0x1 bl sub_801F280 movs r0, 0x1 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0801EF28: .4byte gUnknown_203B270 _0801EF2C: .4byte gUnknown_203B45C _0801EF30: .4byte gUnknown_80DC25C _0801EF34: .4byte gUnknown_80DC274 thumb_func_end sub_801EE10 thumb_func_start sub_801EF38 sub_801EF38: push {r4-r7,lr} lsls r0, 24 movs r7, 0 cmp r0, 0 bne _0801EF54 ldr r0, _0801EF50 ldr r0, [r0] adds r0, 0x1C bl sub_8013660 b _0801F18C .align 2, 0 _0801EF50: .4byte gUnknown_203B270 _0801EF54: ldr r0, _0801EF70 ldr r0, [r0] adds r0, 0x1C bl GetKeyPress subs r0, 0x1 cmp r0, 0xC bls _0801EF66 b _0801F12E _0801EF66: lsls r0, 2 ldr r1, _0801EF74 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0801EF70: .4byte gUnknown_203B270 _0801EF74: .4byte _0801EF78 .align 2, 0 _0801EF78: .4byte _0801EFB6 .4byte _0801EFAC .4byte _0801F0E4 .4byte _0801EFC0 .4byte _0801F12E .4byte _0801F12E .4byte _0801EFE4 .4byte _0801EFCA .4byte _0801F12E .4byte _0801F12E .4byte _0801F074 .4byte _0801F04C .4byte _0801F018 _0801EFAC: movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 b _0801F18E _0801EFB6: movs r0, 0 bl sub_80119D4 movs r0, 0x3 b _0801F18E _0801EFC0: movs r0, 0x4 bl sub_80119D4 movs r0, 0x4 b _0801F18E _0801EFCA: ldr r5, _0801EFE0 ldr r0, [r5] movs r1, 0x34 ldrsh r6, [r0, r1] adds r4, r0, 0 adds r4, 0x1C ldr r0, [r0, 0x10] adds r1, r6, 0 bl sub_8092E54 b _0801EFF8 .align 2, 0 _0801EFE0: .4byte gUnknown_203B270 _0801EFE4: ldr r5, _0801F014 ldr r0, [r5] movs r1, 0x34 ldrsh r6, [r0, r1] adds r4, r0, 0 adds r4, 0x1C ldr r0, [r0, 0x10] adds r1, r6, 0 bl sub_8092EEC _0801EFF8: adds r1, r0, 0 adds r0, r4, 0 bl sub_8013780 ldr r0, [r5] movs r2, 0x34 ldrsh r0, [r0, r2] cmp r6, r0 bne _0801F00C b _0801F12E _0801F00C: movs r0, 0x3 bl sub_80119D4 b _0801F12E .align 2, 0 _0801F014: .4byte gUnknown_203B270 _0801F018: ldr r0, _0801F048 ldr r2, [r0] ldrb r1, [r2, 0x5] adds r5, r0, 0 cmp r1, 0 bne _0801F026 b _0801F12E _0801F026: movs r0, 0x34 ldrsh r4, [r2, r0] ldr r0, [r2, 0x10] adds r1, r4, 0 bl sub_809309C _0801F032: ldr r1, [r5] strh r0, [r1, 0x34] lsls r0, 16 asrs r0, 16 cmp r4, r0 beq _0801F06C movs r0, 0x3 bl sub_80119D4 b _0801F182 .align 2, 0 _0801F048: .4byte gUnknown_203B270 _0801F04C: ldr r0, _0801F068 ldr r2, [r0] ldrb r1, [r2, 0x5] adds r5, r0, 0 cmp r1, 0 beq _0801F12E movs r1, 0x34 ldrsh r4, [r2, r1] ldr r0, [r2, 0x10] adds r1, r4, 0 bl sub_809324C b _0801F032 .align 2, 0 _0801F068: .4byte gUnknown_203B270 _0801F06C: movs r0, 0x2 bl sub_80119D4 b _0801F182 _0801F074: ldr r0, _0801F0C8 ldr r2, [r0] ldrb r1, [r2, 0x6] adds r5, r0, 0 cmp r1, 0 beq _0801F12E ldr r0, _0801F0CC ldr r0, [r0] movs r1, 0x98 lsls r1, 2 adds r0, r1 ldr r0, [r0] cmp r0, 0x95 ble _0801F0D0 movs r1, 0x34 ldrsh r0, [r2, r1] ldr r1, [r2, 0x10] bl sub_8093318 lsls r0, 24 cmp r0, 0 beq _0801F0D0 ldr r1, [r5] movs r2, 0x34 ldrsh r0, [r1, r2] ldr r1, [r1, 0x10] bl sub_8093400 movs r0, 0x6 bl sub_80119D4 movs r7, 0x1 ldr r1, [r5] ldrb r0, [r1, 0x4] cmp r0, 0 bne _0801F12E strb r7, [r1, 0x4] movs r0, 0xA6 lsls r0, 1 bl sub_8011988 b _0801F12E .align 2, 0 _0801F0C8: .4byte gUnknown_203B270 _0801F0CC: .4byte gUnknown_203B460 _0801F0D0: ldr r0, _0801F0E0 ldr r1, [r0] movs r2, 0x34 ldrsh r0, [r1, r2] ldr r1, [r1, 0x10] bl sub_8093468 b _0801F0FE .align 2, 0 _0801F0E0: .4byte gUnknown_203B270 _0801F0E4: ldr r0, _0801F10C ldr r1, [r0] ldrb r0, [r1, 0x7] cmp r0, 0 beq _0801F12E ldrb r0, [r1, 0xC] cmp r0, 0 beq _0801F110 movs r2, 0x34 ldrsh r0, [r1, r2] ldr r1, [r1, 0x10] bl sub_80934DC _0801F0FE: lsls r0, 24 cmp r0, 0 bne _0801F120 movs r0, 0x2 bl sub_80119D4 b _0801F12E .align 2, 0 _0801F10C: .4byte gUnknown_203B270 _0801F110: movs r2, 0x34 ldrsh r0, [r1, r2] ldr r1, [r1, 0x10] bl sub_8093544 lsls r0, 24 cmp r0, 0 beq _0801F128 _0801F120: movs r0, 0x6 bl sub_80119D4 b _0801F182 _0801F128: movs r0, 0x2 bl sub_80119D4 _0801F12E: cmp r7, 0 bne _0801F182 movs r3, 0 ldr r5, _0801F160 movs r4, 0x1 _0801F138: ldr r2, [r5] lsls r0, r3, 3 ldr r1, [r2, 0x10] adds r1, r0 ldrb r1, [r1] adds r0, r4, 0 ands r0, r1 cmp r0, 0 beq _0801F16C movs r0, 0x2 ands r0, r1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 beq _0801F164 adds r0, r2, 0 adds r0, 0x14 adds r0, r3 strb r4, [r0] b _0801F16C .align 2, 0 _0801F160: .4byte gUnknown_203B270 _0801F164: adds r0, r2, 0 adds r0, 0x14 adds r0, r3 strb r1, [r0] _0801F16C: adds r3, 0x1 cmp r3, 0x7 ble _0801F138 ldr r1, [r5] adds r0, r1, 0 adds r0, 0x1C adds r1, 0x14 bl AddMenuCursorSprite_ cmp r7, 0 beq _0801F18C _0801F182: movs r0, 0x1 bl sub_801F280 movs r0, 0x1 b _0801F18E _0801F18C: movs r0, 0 _0801F18E: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_801EF38 thumb_func_start sub_801F194 sub_801F194: ldr r0, _0801F1A0 ldr r0, [r0] movs r1, 0x34 ldrsh r0, [r0, r1] bx lr .align 2, 0 _0801F1A0: .4byte gUnknown_203B270 thumb_func_end sub_801F194 thumb_func_start sub_801F1A4 sub_801F1A4: ldr r0, _0801F1AC ldr r0, [r0] ldrb r0, [r0, 0x4] bx lr .align 2, 0 _0801F1AC: .4byte gUnknown_203B270 thumb_func_end sub_801F1A4 thumb_func_start sub_801F1B0 sub_801F1B0: push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r1, 24 lsrs r1, 24 ldr r4, _0801F210 ldr r2, [r4] ldrb r0, [r2, 0x4] cmp r0, 0 bne _0801F1C6 strb r1, [r2, 0x4] _0801F1C6: bl sub_8004914 ldr r0, [r4] adds r0, 0x58 movs r1, 0x1 movs r2, 0x1 bl sub_800641C bl sub_801F3F8 adds r1, r0, 0 ldr r0, [r4] strh r1, [r0, 0x3E] adds r0, 0x1C bl sub_8013984 ldr r1, [r4] ldr r0, [r1, 0x10] movs r2, 0x34 ldrsh r1, [r1, r2] bl sub_8092F4C ldr r1, [r4] strh r0, [r1, 0x34] movs r0, 0x1 bl sub_801F280 cmp r5, 0 beq _0801F208 ldr r0, [r4] adds r0, 0x1C bl AddMenuCursorSprite _0801F208: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0801F210: .4byte gUnknown_203B270 thumb_func_end sub_801F1B0 thumb_func_start sub_801F214 sub_801F214: push {r4-r6,lr} ldr r4, _0801F278 ldr r2, [r4] cmp r2, 0 beq _0801F272 ldr r0, [r2, 0x50] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 ldr r3, _0801F27C adds r1, 0x58 adds r0, r3, 0 ldm r0!, {r2,r5,r6} stm r1!, {r2,r5,r6} ldm r0!, {r2,r5,r6} stm r1!, {r2,r5,r6} ldr r2, [r4] adds r0, r2, 0 adds r0, 0xB8 ldr r0, [r0] cmp r0, 0 beq _0801F258 ldr r0, [r2, 0x54] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 adds r1, 0x58 adds r0, r3, 0 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} _0801F258: bl sub_8004914 ldr r0, [r4] adds r0, 0x58 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _0801F272: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0801F278: .4byte gUnknown_203B270 _0801F27C: .4byte gUnknown_80DC240 thumb_func_end sub_801F214 thumb_func_start sub_801F280 sub_801F280: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x28 lsls r0, 24 lsrs r0, 24 mov r10, r0 ldr r4, _0801F30C ldr r0, [r4] ldr r0, [r0, 0x50] bl sub_8008C54 ldr r0, [r4] ldr r0, [r0, 0x50] bl sub_80073B8 ldr r0, [r4] ldr r1, [r0, 0x8] adds r1, 0x4C add r0, sp, 0x4 movs r2, 0xA bl sub_80922B4 ldr r0, _0801F310 add r1, sp, 0x4 bl strcpy ldr r2, _0801F314 ldr r0, [r4] ldr r3, [r0, 0x50] movs r0, 0 str r0, [sp] movs r0, 0xC movs r1, 0 bl sub_8014FF0 movs r7, 0 ldr r0, [r4] movs r1, 0x36 ldrsh r0, [r0, r1] cmp r7, r0 bge _0801F394 add r5, sp, 0x18 mov r8, r4 movs r0, 0x1 mov r9, r0 _0801F2E0: adds r0, r5, 0 movs r1, 0 movs r2, 0xC bl memset movs r0, 0x6A str r0, [r5, 0x4] mov r1, r8 ldr r2, [r1] lsls r1, r7, 3 ldr r0, [r2, 0x10] adds r4, r0, r1 ldrb r1, [r4] mov r0, r9 ands r0, r1 cmp r0, 0 beq _0801F386 ldrb r0, [r2, 0xC] cmp r0, 0 beq _0801F318 movs r0, 0x2 b _0801F31A .align 2, 0 _0801F30C: .4byte gUnknown_203B270 _0801F310: .4byte gUnknown_202DF98 _0801F314: .4byte gUnknown_80DC28C _0801F318: movs r0, 0x4 _0801F31A: str r0, [sp, 0x18] mov r1, r8 ldr r0, [r1] ldrb r0, [r0, 0x6] cmp r0, 0 beq _0801F328 mov r0, r9 _0801F328: strb r0, [r5, 0x9] cmp r7, 0x3 ble _0801F332 mov r1, r9 strb r1, [r5, 0x8] _0801F332: ldr r0, _0801F3EC adds r1, r4, 0 adds r2, r5, 0 bl sub_80928A0 ldr r2, _0801F3F0 ldr r0, [r2] adds r0, 0x1C adds r1, r7, 0 str r2, [sp, 0x24] bl sub_8013800 adds r6, r0, 0 ldrb r1, [r4] movs r0, 0x2 ands r0, r1 movs r4, 0xD ldr r2, [sp, 0x24] cmp r0, 0 bne _0801F372 movs r4, 0x8 cmp r7, 0 beq _0801F372 ldr r0, [r2] ldr r0, [r0, 0x50] subs r2, r6, 0x2 movs r1, 0x7 str r1, [sp] movs r1, 0xC movs r3, 0x78 bl sub_800792C _0801F372: mov r1, r8 ldr r0, [r1] ldr r3, [r0, 0x50] movs r0, 0 str r0, [sp] adds r0, r4, 0 adds r1, r6, 0 ldr r2, _0801F3F4 bl sub_8014FF0 _0801F386: adds r7, 0x1 mov r1, r8 ldr r0, [r1] movs r1, 0x36 ldrsh r0, [r0, r1] cmp r7, r0 blt _0801F2E0 _0801F394: ldr r4, _0801F3F0 ldr r0, [r4] ldr r0, [r0, 0x50] bl sub_80073E0 ldr r1, [r4] adds r0, r1, 0 adds r0, 0xB8 ldr r0, [r0] cmp r0, 0 beq _0801F3DC mov r0, r10 cmp r0, 0 beq _0801F3DC ldr r0, [r1, 0x54] bl sub_8008C54 ldr r0, [r4] ldr r0, [r0, 0x54] bl sub_80073B8 ldr r1, [r4] adds r0, r1, 0 adds r0, 0xB8 ldr r2, [r0] ldr r3, [r1, 0x54] movs r0, 0 str r0, [sp] movs r0, 0x8 movs r1, 0 bl sub_8014FF0 ldr r0, [r4] ldr r0, [r0, 0x54] bl sub_80073E0 _0801F3DC: add sp, 0x28 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0801F3EC: .4byte gUnknown_202DE58 _0801F3F0: .4byte gUnknown_203B270 _0801F3F4: .4byte gUnknown_80DC2A0 thumb_func_end sub_801F280 thumb_func_start sub_801F3F8 sub_801F3F8: push {r4,r5,lr} movs r4, 0 ldr r0, _0801F424 ldr r0, [r0] movs r5, 0x1 ldr r2, [r0, 0x10] movs r3, 0x7 _0801F406: ldrb r1, [r2] adds r0, r5, 0 ands r0, r1 cmp r0, 0 beq _0801F412 adds r4, 0x1 _0801F412: adds r2, 0x8 subs r3, 0x1 cmp r3, 0 bge _0801F406 adds r0, r4, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0801F424: .4byte gUnknown_203B270 thumb_func_end sub_801F3F8 thumb_func_start sub_801F428 sub_801F428: push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} adds r4, r0, 0 mov r9, r1 lsls r4, 16 asrs r4, 16 ldr r5, _0801F50C movs r0, 0xFA lsls r0, 2 movs r1, 0x8 bl MemoryAlloc str r0, [r5] ldr r3, _0801F510 movs r1, 0x58 adds r2, r4, 0 muls r2, r1 ldr r1, [r3] adds r1, r2 str r1, [r0] adds r1, r0, 0 adds r1, 0x8 str r1, [r0, 0x4] movs r4, 0xDF lsls r4, 2 adds r1, r0, r4 mov r2, r9 str r2, [r1] movs r6, 0xE0 lsls r6, 2 adds r2, r0, r6 mov r3, r9 lsls r1, r3, 1 add r1, r9 lsls r1, 3 movs r3, 0xE1 lsls r3, 2 mov r8, r3 add r1, r8 adds r1, r0, r1 str r1, [r2] add r0, r8 bl sub_8006518 ldr r1, [r5] adds r4, r1, r4 ldr r2, [r4] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 add r1, r8 ldr r0, _0801F514 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldr r1, [r5] adds r6, r1, r6 ldr r0, [r6] movs r4, 0xF9 lsls r4, 2 adds r1, r4 str r1, [r0, 0x14] movs r2, 0 movs r0, 0x1 strb r0, [r1] ldr r0, [r5] ldr r1, _0801F518 adds r0, r1 strb r2, [r0] ldr r0, [r5] ldr r3, _0801F51C adds r0, r3 movs r1, 0xC strb r1, [r0] ldr r0, [r5] adds r4, 0x3 adds r0, r4 strb r2, [r0] bl sub_8004914 ldr r0, [r5] add r0, r8 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, [r5] movs r0, 0xD2 lsls r0, 2 adds r4, r0 bl sub_801F7E4 adds r1, r0, 0 adds r0, r4, 0 movs r2, 0x4 mov r3, r9 bl sub_8013818 bl sub_801F690 bl sub_801F700 movs r0, 0x1 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0801F50C: .4byte gUnknown_203B274 _0801F510: .4byte gUnknown_203B45C _0801F514: .4byte gUnknown_80DC2C4 _0801F518: .4byte 0x000003e5 _0801F51C: .4byte 0x000003e6 thumb_func_end sub_801F428 thumb_func_start sub_801F520 sub_801F520: push {lr} lsls r0, 24 cmp r0, 0 bne _0801F540 ldr r0, _0801F53C ldr r0, [r0] movs r1, 0xD2 lsls r1, 2 adds r0, r1 bl sub_8013660 movs r0, 0 b _0801F5AE .align 2, 0 _0801F53C: .4byte gUnknown_203B274 _0801F540: ldr r0, _0801F55C ldr r0, [r0] movs r1, 0xD2 lsls r1, 2 adds r0, r1 bl GetKeyPress cmp r0, 0x2 beq _0801F566 cmp r0, 0x2 bgt _0801F560 cmp r0, 0x1 beq _0801F570 b _0801F584 .align 2, 0 _0801F55C: .4byte gUnknown_203B274 _0801F560: cmp r0, 0x4 beq _0801F57A b _0801F584 _0801F566: movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 b _0801F5AE _0801F570: movs r0, 0 bl sub_80119D4 movs r0, 0x3 b _0801F5AE _0801F57A: movs r0, 0x4 bl sub_80119D4 movs r0, 0x4 b _0801F5AE _0801F584: ldr r0, _0801F5A0 ldr r0, [r0] movs r1, 0xD2 lsls r1, 2 adds r0, r1 movs r1, 0x1 bl sub_80138B8 lsls r0, 24 cmp r0, 0 bne _0801F5A4 movs r0, 0 b _0801F5AE .align 2, 0 _0801F5A0: .4byte gUnknown_203B274 _0801F5A4: bl sub_801F690 bl sub_801F700 movs r0, 0x1 _0801F5AE: pop {r1} bx r1 thumb_func_end sub_801F520 thumb_func_start sub_801F5B4 sub_801F5B4: push {r4,lr} ldr r0, _0801F5E8 ldr r1, [r0] ldr r2, [r1, 0x4] ldr r3, _0801F5EC adds r0, r1, r3 movs r4, 0 ldrsh r3, [r0, r4] movs r4, 0xD9 lsls r4, 2 adds r0, r1, r4 movs r4, 0 ldrsh r0, [r0, r4] muls r0, r3 movs r3, 0xD8 lsls r3, 2 adds r1, r3 movs r4, 0 ldrsh r1, [r1, r4] adds r0, r1 lsls r0, 1 adds r2, r0 ldrh r0, [r2] pop {r4} pop {r1} bx r1 .align 2, 0 _0801F5E8: .4byte gUnknown_203B274 _0801F5EC: .4byte 0x00000366 thumb_func_end sub_801F5B4 thumb_func_start sub_801F5F0 sub_801F5F0: push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8004914 ldr r5, _0801F638 ldr r0, [r5] movs r1, 0xE1 lsls r1, 2 adds r0, r1 movs r1, 0 movs r2, 0 bl sub_800641C ldr r0, [r5] movs r1, 0xD2 lsls r1, 2 adds r0, r1 bl sub_8013984 bl sub_801F690 bl sub_801F700 cmp r4, 0 beq _0801F632 ldr r0, [r5] movs r1, 0xD2 lsls r1, 2 adds r0, r1 bl AddMenuCursorSprite _0801F632: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0801F638: .4byte gUnknown_203B274 thumb_func_end sub_801F5F0 thumb_func_start sub_801F63C sub_801F63C: push {r4-r6,lr} ldr r5, _0801F688 ldr r2, [r5] cmp r2, 0 beq _0801F680 movs r1, 0xDF lsls r1, 2 adds r0, r2, r1 ldr r0, [r0] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 movs r4, 0xE1 lsls r4, 2 adds r1, r4 ldr r0, _0801F68C ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} bl sub_8004914 ldr r0, [r5] adds r0, r4 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r5] bl MemoryFree movs r0, 0 str r0, [r5] _0801F680: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0801F688: .4byte gUnknown_203B274 _0801F68C: .4byte gUnknown_80DC2AC thumb_func_end sub_801F63C thumb_func_start sub_801F690 sub_801F690: push {r4,r5,lr} ldr r5, _0801F6F4 ldr r0, [r5] ldr r1, _0801F6F8 adds r0, r1 movs r2, 0 ldrsh r0, [r0, r2] movs r1, 0xC bl sub_80095E4 adds r0, 0x2 lsls r0, 16 ldr r3, [r5] movs r1, 0xDF lsls r1, 2 adds r4, r3, r1 ldr r2, [r4] lsls r1, r2, 1 adds r1, r2 lsls r1, 3 adds r1, r3, r1 ldr r2, _0801F6FC adds r1, r2 asrs r2, r0, 16 lsrs r0, 16 strh r0, [r1] ldr r1, [r4] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r3, r0 adds r2, 0x2 movs r0, 0xE5 lsls r0, 2 adds r3, r0 strh r2, [r3] bl sub_8004914 ldr r0, [r5] movs r1, 0xE1 lsls r1, 2 adds r0, r1 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0801F6F4: .4byte gUnknown_203B274 _0801F6F8: .4byte 0x00000362 _0801F6FC: .4byte 0x00000392 thumb_func_end sub_801F690 thumb_func_start sub_801F700 sub_801F700: push {r4-r7,lr} sub sp, 0xB4 ldr r6, _0801F7D4 ldr r0, [r6] movs r4, 0xDF lsls r4, 2 adds r0, r4 ldr r0, [r0] bl sub_8008C54 ldr r0, [r6] adds r0, r4 ldr r0, [r0] bl sub_80073B8 add r5, sp, 0x34 ldr r1, _0801F7D8 ldr r0, [r6] ldr r3, _0801F7DC adds r2, r0, r3 movs r7, 0 ldrsh r2, [r2, r7] adds r2, 0x1 adds r3, 0x2 adds r0, r3 movs r7, 0 ldrsh r3, [r0, r7] adds r0, r5, 0 bl sub_800D158 ldr r0, [r6] adds r0, r4 ldr r3, [r0] movs r0, 0 str r0, [sp] movs r0, 0x10 movs r1, 0 adds r2, r5, 0 bl xxx_call_draw_string movs r4, 0 ldr r0, [r6] ldr r1, _0801F7E0 adds r0, r1 movs r2, 0 ldrsh r0, [r0, r2] cmp r4, r0 bge _0801F7BC adds r5, r6, 0 _0801F762: ldr r1, [r5] ldr r2, [r1, 0x4] ldr r3, _0801F7DC adds r0, r1, r3 movs r6, 0 ldrsh r3, [r0, r6] movs r7, 0xD9 lsls r7, 2 adds r1, r7 movs r6, 0 ldrsh r0, [r1, r6] muls r0, r3 adds r0, r4 lsls r0, 1 adds r2, r0 ldrh r1, [r2] add r0, sp, 0x4 bl sub_8092C84 ldr r0, [r5] subs r7, 0x1C adds r0, r7 adds r1, r4, 0 bl sub_8013800 adds r1, r0, 0 ldr r0, [r5] movs r2, 0xDF lsls r2, 2 adds r0, r2 ldr r3, [r0] movs r0, 0 str r0, [sp] movs r0, 0x8 add r2, sp, 0x4 bl xxx_call_draw_string adds r4, 0x1 ldr r0, [r5] ldr r3, _0801F7E0 adds r0, r3 movs r6, 0 ldrsh r0, [r0, r6] cmp r4, r0 blt _0801F762 _0801F7BC: ldr r0, _0801F7D4 ldr r0, [r0] movs r7, 0xDF lsls r7, 2 adds r0, r7 ldr r0, [r0] bl sub_80073E0 add sp, 0xB4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0801F7D4: .4byte gUnknown_203B274 _0801F7D8: .4byte gUnknown_80DC2DC _0801F7DC: .4byte 0x00000366 _0801F7E0: .4byte 0x00000362 thumb_func_end sub_801F700 thumb_func_start sub_801F7E4 sub_801F7E4: push {r4,lr} ldr r4, _0801F804 ldr r1, [r4] ldr r0, [r1, 0x4] ldr r1, [r1] bl sub_808E218 ldr r0, [r4] ldr r0, [r0, 0x4] movs r1, 0xCF lsls r1, 2 adds r0, r1 ldr r0, [r0] pop {r4} pop {r1} bx r1 .align 2, 0 _0801F804: .4byte gUnknown_203B274 thumb_func_end sub_801F7E4 thumb_func_start sub_801F808 sub_801F808: push {r4,r5,lr} adds r4, r0, 0 movs r0, 0x1 bl sub_8004D8C ldr r5, _0801F88C movs r0, 0xD4 movs r1, 0x8 bl MemoryAlloc str r0, [r5] movs r1, 0 str r1, [r0, 0x5C] adds r1, r0, 0 adds r1, 0x64 str r1, [r0, 0x60] adds r0, r1, 0 bl sub_80140B4 bl sub_8004914 ldr r0, [r5] adds r0, 0x64 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r5] str r4, [r0, 0x4] movs r2, 0x4 ldrh r0, [r4, 0x6] cmp r0, 0 bne _0801F862 adds r3, r5, 0 _0801F84C: subs r2, 0x1 cmp r2, 0x1 ble _0801F862 ldr r0, [r3] ldr r1, [r0, 0x4] lsls r0, r2, 1 adds r0, r1 subs r0, 0x2 ldrh r0, [r0] cmp r0, 0 beq _0801F84C _0801F862: ldr r4, _0801F88C ldr r1, [r4] adds r0, r1, 0 adds r0, 0x28 ldr r3, [r1, 0x5C] adds r1, r2, 0 movs r2, 0x1 bl sub_8013818 ldr r0, [r4] adds r0, 0xC8 bl sub_801317C movs r0, 0 bl sub_801F918 movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0801F88C: .4byte gUnknown_203B278 thumb_func_end sub_801F808 thumb_func_start sub_801F890 sub_801F890: push {lr} ldr r0, _0801F8A8 ldr r0, [r0] ldr r0, [r0] cmp r0, 0x1 beq _0801F8BC cmp r0, 0x1 bgt _0801F8AC cmp r0, 0 beq _0801F8B6 b _0801F8C6 .align 2, 0 _0801F8A8: .4byte gUnknown_203B278 _0801F8AC: cmp r0, 0x2 beq _0801F8C6 cmp r0, 0x3 beq _0801F8C2 b _0801F8C6 _0801F8B6: bl sub_801FA58 b _0801F8CA _0801F8BC: bl sub_801FAD4 b _0801F8CA _0801F8C2: movs r0, 0x3 b _0801F8CC _0801F8C6: movs r0, 0x2 b _0801F8CC _0801F8CA: movs r0, 0 _0801F8CC: pop {r1} bx r1 thumb_func_end sub_801F890 thumb_func_start sub_801F8D0 sub_801F8D0: push {r4,r5,lr} ldr r4, _0801F910 ldr r2, [r4] cmp r2, 0 beq _0801F90A ldr r0, [r2, 0x5C] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 adds r1, 0x64 ldr r0, _0801F914 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} bl sub_8004914 ldr r0, [r4] adds r0, 0x64 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _0801F90A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0801F910: .4byte gUnknown_203B278 _0801F914: .4byte gUnknown_80DC2F8 thumb_func_end sub_801F8D0 thumb_func_start sub_801F918 sub_801F918: push {lr} ldr r1, _0801F92C ldr r1, [r1] str r0, [r1] bl sub_801F930 bl sub_801F9A4 pop {r0} bx r0 .align 2, 0 _0801F92C: .4byte gUnknown_203B278 thumb_func_end sub_801F918 thumb_func_start sub_801F930 sub_801F930: push {r4,lr} ldr r4, _0801F94C ldr r0, [r4] adds r0, 0x64 bl sub_80140B4 ldr r2, [r4] ldr r3, [r2] cmp r3, 0 beq _0801F950 cmp r3, 0x1 beq _0801F98C b _0801F99C .align 2, 0 _0801F94C: .4byte gUnknown_203B278 _0801F950: ldr r0, [r2, 0x60] adds r1, r2, 0 adds r1, 0xC4 str r1, [r0, 0x14] adds r0, r2, 0 adds r0, 0x48 ldrh r0, [r0] strb r0, [r1] ldr r0, [r4] adds r1, r0, 0 adds r1, 0x46 ldrh r1, [r1] adds r0, 0xC5 strb r1, [r0] ldr r0, [r4] adds r0, 0xC6 movs r1, 0x10 strb r1, [r0] ldr r0, [r4] adds r0, 0xC7 strb r3, [r0] bl sub_8004914 ldr r0, [r4] adds r0, 0x64 movs r1, 0x1 movs r2, 0x1 bl sub_800641C b _0801F99C _0801F98C: bl sub_8004914 ldr r0, [r4] adds r0, 0x64 movs r1, 0x1 movs r2, 0x1 bl sub_800641C _0801F99C: pop {r4} pop {r0} bx r0 thumb_func_end sub_801F930 thumb_func_start sub_801F9A4 sub_801F9A4: push {r4,r5,lr} sub sp, 0x4 ldr r5, _0801F9EC ldr r0, [r5] ldr r4, [r0] cmp r4, 0x1 beq _0801F9F0 cmp r4, 0x1 bgt _0801FA48 cmp r4, 0 bne _0801FA48 ldr r0, [r0, 0x5C] bl sub_8008C54 ldr r3, [r5] adds r2, r3, 0 adds r2, 0x46 movs r1, 0 ldrsh r0, [r2, r1] ldr r1, [r3, 0x4] lsls r0, 1 adds r0, r1 ldrh r0, [r0] strh r0, [r3, 0x8] movs r1, 0 ldrsh r0, [r2, r1] ldrh r1, [r3, 0x8] ldr r2, [r3, 0x5C] adds r3, 0x14 bl sub_8093D9C ldr r1, [r5] str r0, [r1, 0x10] str r4, [r1, 0x24] b _0801FA48 .align 2, 0 _0801F9EC: .4byte gUnknown_203B278 _0801F9F0: ldr r0, [r0, 0x5C] bl sub_8008C54 ldr r0, [r5] ldr r0, [r0, 0x5C] bl sub_80073B8 ldr r0, [r5] ldr r1, [r0, 0xC] lsls r1, 2 adds r0, 0x14 adds r0, r1 ldr r1, [r0] ldr r0, _0801FA50 ldr r1, [r1] bl strcpy ldr r2, _0801FA54 ldr r0, [r5] ldr r3, [r0, 0x5C] movs r4, 0 str r4, [sp] movs r0, 0x10 movs r1, 0 bl sub_8014FF0 ldr r3, [r5] ldr r1, [r3, 0xC] lsls r1, 2 adds r0, r3, 0 adds r0, 0x14 adds r0, r1 ldr r0, [r0] ldr r2, [r0, 0x4] ldr r3, [r3, 0x5C] str r4, [sp] movs r0, 0x4 movs r1, 0x10 bl sub_8014FF0 ldr r0, [r5] ldr r0, [r0, 0x5C] bl sub_80073E0 _0801FA48: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0801FA50: .4byte gUnknown_202DF98 _0801FA54: .4byte gUnknown_80DC310 thumb_func_end sub_801F9A4 thumb_func_start sub_801FA58 sub_801FA58: push {r4,lr} ldr r0, _0801FAA4 ldr r2, [r0] ldr r1, [r2, 0x10] adds r4, r0, 0 cmp r1, 0 beq _0801FA7C ldr r0, [r2, 0x24] movs r1, 0x8 ands r0, r1 cmp r0, 0 beq _0801FA74 bl sub_8013F84 _0801FA74: ldr r1, [r4] ldr r0, [r1, 0x24] adds r0, 0x1 str r0, [r1, 0x24] _0801FA7C: ldr r1, [r4] adds r0, r1, 0 adds r0, 0xC8 ldr r1, [r1, 0x5C] bl sub_8012A64 cmp r0, 0x1 beq _0801FAA8 cmp r0, 0x2 beq _0801FAC2 ldr r0, [r4] adds r0, 0x28 bl sub_8013938 lsls r0, 24 cmp r0, 0 beq _0801FACE movs r0, 0 b _0801FACA .align 2, 0 _0801FAA4: .4byte gUnknown_203B278 _0801FAA8: movs r0, 0 bl sub_80119D4 ldr r1, [r4] ldr r0, [r1, 0x10] cmp r0, 0 beq _0801FABE movs r0, 0 str r0, [r1, 0xC] movs r0, 0x1 b _0801FACA _0801FABE: movs r0, 0x3 b _0801FACA _0801FAC2: movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 _0801FACA: bl sub_801F918 _0801FACE: pop {r4} pop {r0} bx r0 thumb_func_end sub_801FA58 thumb_func_start sub_801FAD4 sub_801FAD4: push {r4,lr} ldr r0, _0801FB14 ldr r3, [r0] ldr r1, [r3, 0x10] subs r1, 0x1 ldr r2, [r3, 0xC] adds r4, r0, 0 cmp r2, r1 bge _0801FAFC ldr r0, [r3, 0x24] movs r1, 0x8 ands r0, r1 cmp r0, 0 beq _0801FAF4 bl sub_8013F84 _0801FAF4: ldr r1, [r4] ldr r0, [r1, 0x24] adds r0, 0x1 str r0, [r1, 0x24] _0801FAFC: ldr r1, [r4] adds r0, r1, 0 adds r0, 0xC8 ldr r1, [r1, 0x5C] bl sub_8012A64 cmp r0, 0x1 beq _0801FB18 cmp r0, 0x2 beq _0801FB3C b _0801FB48 .align 2, 0 _0801FB14: .4byte gUnknown_203B278 _0801FB18: movs r0, 0 bl sub_80119D4 ldr r0, [r4] ldr r1, [r0, 0xC] adds r1, 0x1 str r1, [r0, 0xC] ldr r0, [r0, 0x10] cmp r1, r0 bge _0801FB34 movs r0, 0x1 bl sub_801F918 b _0801FB48 _0801FB34: movs r0, 0 bl sub_801F918 b _0801FB48 _0801FB3C: movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 bl sub_801F918 _0801FB48: pop {r4} pop {r0} bx r0 thumb_func_end sub_801FAD4 thumb_func_start sub_801FB50 sub_801FB50: push {r4-r7,lr} adds r4, r0, 0 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r6, _0801FBC0 movs r0, 0xF0 lsls r0, 1 movs r1, 0x8 bl MemoryAlloc str r0, [r6] movs r7, 0 str r7, [r0, 0x70] str r7, [r0, 0x74] str r7, [r0, 0x78] str r4, [r0] strb r7, [r0, 0x15] ldr r0, _0801FBC4 ldr r4, _0801FBC8 adds r1, r4, 0 bl sub_808D8E0 ldr r5, _0801FBCC adds r0, r5, 0 adds r1, r4, 0 bl sub_808D8E0 adds r0, r4, 0 bl sub_808D994 adds r1, r0, 0 adds r0, r5, 0 subs r0, 0x50 bl strcpy subs r5, 0xF0 bl sub_808D33C adds r1, r0, 0 adds r0, r5, 0 bl sub_808DA34 ldr r2, [r6] ldr r0, [r2] cmp r0, 0x1 bne _0801FBD0 movs r1, 0xBE lsls r1, 1 adds r0, r2, r1 str r7, [r0] b _0801FBDE .align 2, 0 _0801FBC0: .4byte gUnknown_203B27C _0801FBC4: .4byte gUnknown_202E5D8 _0801FBC8: .4byte 0x00000155 _0801FBCC: .4byte gUnknown_202E1C8 _0801FBD0: movs r3, 0xBE lsls r3, 1 adds r1, r2, r3 movs r4, 0xB6 lsls r4, 1 adds r0, r2, r4 str r0, [r1] _0801FBDE: ldr r0, _0801FC34 bl sub_808DDD0 ldr r2, _0801FC38 ldr r3, [r2] movs r4, 0xB6 lsls r4, 1 adds r1, r3, r4 str r0, [r1] adds r4, 0x4 adds r1, r3, r4 ldr r0, [r0, 0x4] str r0, [r1] movs r1, 0xBC lsls r1, 1 adds r0, r3, r1 movs r1, 0 strb r1, [r0] ldr r0, [r2] ldr r3, _0801FC3C adds r0, r3 strb r1, [r0] ldr r0, [r2] adds r4, 0xA adds r0, r4 strb r1, [r0] ldr r2, [r2] movs r0, 0xBA lsls r0, 1 adds r1, r2, r0 movs r0, 0x2 strh r0, [r1] subs r3, 0x3 adds r1, r2, r3 movs r0, 0x8 strh r0, [r1] movs r0, 0 bl sub_801FDA8 movs r0, 0x1 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0801FC34: .4byte 0x00000155 _0801FC38: .4byte gUnknown_203B27C _0801FC3C: .4byte 0x00000179 thumb_func_end sub_801FB50 thumb_func_start sub_801FC40 sub_801FC40: push {lr} ldr r1, _0801FC5C ldr r0, [r1] ldr r0, [r0, 0x4] adds r2, r1, 0 cmp r0, 0x22 bls _0801FC50 b _0801FD70 _0801FC50: lsls r0, 2 ldr r1, _0801FC60 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0801FC5C: .4byte gUnknown_203B27C _0801FC60: .4byte _0801FC64 .align 2, 0 _0801FC64: .4byte _0801FCF0 .4byte _0801FCF0 .4byte _0801FCF6 .4byte _0801FD70 .4byte _0801FD70 .4byte _0801FD70 .4byte _0801FD70 .4byte _0801FCFC .4byte _0801FD02 .4byte _0801FD70 .4byte _0801FD70 .4byte _0801FD70 .4byte _0801FD70 .4byte _0801FD50 .4byte _0801FD70 .4byte _0801FD08 .4byte _0801FD08 .4byte _0801FD0E .4byte _0801FD14 .4byte _0801FD1A .4byte _0801FD70 .4byte _0801FD20 .4byte _0801FD20 .4byte _0801FD26 .4byte _0801FD2C .4byte _0801FD70 .4byte _0801FD70 .4byte _0801FD70 .4byte _0801FD70 .4byte _0801FD32 .4byte _0801FD38 .4byte _0801FD38 .4byte _0801FD3E .4byte _0801FD44 .4byte _0801FD4A _0801FCF0: bl sub_8021154 b _0801FD74 _0801FCF6: bl sub_80209AC b _0801FD74 _0801FCFC: bl sub_80209FC b _0801FD74 _0801FD02: bl sub_8020A34 b _0801FD74 _0801FD08: bl sub_8020A80 b _0801FD74 _0801FD0E: bl sub_8020B38 b _0801FD74 _0801FD14: bl sub_8020C2C b _0801FD74 _0801FD1A: bl sub_8020C48 b _0801FD74 _0801FD20: bl sub_8020C64 b _0801FD74 _0801FD26: bl sub_8020CC0 b _0801FD74 _0801FD2C: bl sub_8020D74 b _0801FD74 _0801FD32: bl sub_8020D90 b _0801FD74 _0801FD38: bl sub_8020DCC b _0801FD74 _0801FD3E: bl sub_8020EB4 b _0801FD74 _0801FD44: bl sub_80210C8 b _0801FD74 _0801FD4A: bl sub_80210E4 b _0801FD74 _0801FD50: ldr r0, [r2] ldrb r0, [r0, 0x15] cmp r0, 0x1 bne _0801FD68 ldr r0, _0801FD6C ldr r1, [r0] movs r0, 0x98 lsls r0, 2 adds r1, r0 ldr r0, [r1] subs r0, 0x96 str r0, [r1] _0801FD68: movs r0, 0x3 b _0801FD76 .align 2, 0 _0801FD6C: .4byte gUnknown_203B460 _0801FD70: bl sub_8021130 _0801FD74: movs r0, 0 _0801FD76: pop {r1} bx r1 thumb_func_end sub_801FC40 thumb_func_start sub_801FD7C sub_801FD7C: push {r4,lr} ldr r4, _0801FDA4 ldr r0, [r4] cmp r0, 0 beq _0801FD9C movs r1, 0xB6 lsls r1, 1 adds r0, r1 ldr r0, [r0] bl CloseFile ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _0801FD9C: pop {r4} pop {r0} bx r0 .align 2, 0 _0801FDA4: .4byte gUnknown_203B27C thumb_func_end sub_801FD7C thumb_func_start sub_801FDA8 sub_801FDA8: push {lr} ldr r1, _0801FDBC ldr r1, [r1] str r0, [r1, 0x4] bl sub_801FDC0 bl sub_801FF28 pop {r0} bx r0 .align 2, 0 _0801FDBC: .4byte gUnknown_203B27C thumb_func_end sub_801FDA8 thumb_func_start sub_801FDC0 sub_801FDC0: push {r4-r7,lr} mov r7, r8 push {r7} ldr r4, _0801FDE8 ldr r0, [r4] movs r5, 0xC0 lsls r5, 1 adds r0, r5 bl sub_8006518 ldr r0, [r4] ldr r1, [r0, 0x4] cmp r1, 0x11 beq _0801FE38 cmp r1, 0x11 bgt _0801FDEC cmp r1, 0x2 beq _0801FDF6 b _0801FED4 .align 2, 0 _0801FDE8: .4byte gUnknown_203B27C _0801FDEC: cmp r1, 0x17 beq _0801FE6C cmp r1, 0x20 beq _0801FE88 b _0801FED4 _0801FDF6: adds r0, r5 movs r1, 0x80 strb r1, [r0] ldr r0, [r4] movs r2, 0xCC lsls r2, 1 adds r0, r2 strb r1, [r0] ldr r0, [r4] movs r3, 0xD8 lsls r3, 1 adds r0, r3 strb r1, [r0] ldr r1, [r4] movs r6, 0xE4 lsls r6, 1 adds r1, r6 ldr r0, _0801FE34 ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldm r0!, {r2,r6,r7} stm r1!, {r2,r6,r7} bl sub_8004914 ldr r0, [r4] adds r0, r5 movs r1, 0x1 movs r2, 0 bl sub_800641C b _0801FF14 .align 2, 0 _0801FE34: .4byte gUnknown_80DC37C _0801FE38: bl sub_80205D0 ldr r2, [r4] movs r0, 0xD8 lsls r0, 1 adds r2, r0 ldr r1, _0801FE68 ldm r1!, {r3,r5,r6} stm r2!, {r3,r5,r6} ldm r1!, {r3,r5,r7} stm r2!, {r3,r5,r7} ldr r1, [r4] adds r0, r1, r0 adds r1, 0x7C bl sub_8012CAC bl sub_8004914 ldr r0, [r4] movs r6, 0xC0 lsls r6, 1 adds r0, r6 b _0801FEC2 .align 2, 0 _0801FE68: .4byte gUnknown_80DC334 _0801FE6C: bl sub_802069C ldr r2, [r4] movs r0, 0xD8 lsls r0, 1 adds r2, r0 ldr r1, _0801FE84 ldm r1!, {r3,r6,r7} stm r2!, {r3,r6,r7} ldm r1!, {r3,r6,r7} stm r2!, {r3,r6,r7} b _0801FEB0 .align 2, 0 _0801FE84: .4byte gUnknown_80DC334 _0801FE88: bl sub_802074C ldr r1, [r4] movs r7, 0xCC lsls r7, 1 adds r1, r7 ldr r0, _0801FECC ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldr r2, [r4] movs r0, 0xD8 lsls r0, 1 adds r2, r0 ldr r1, _0801FED0 ldm r1!, {r3,r6,r7} stm r2!, {r3,r6,r7} ldm r1!, {r3,r6,r7} stm r2!, {r3,r6,r7} _0801FEB0: ldr r1, [r4] adds r0, r1, r0 adds r1, 0x7C bl sub_8012CAC bl sub_8004914 ldr r0, [r4] adds r0, r5 _0801FEC2: movs r1, 0x1 movs r2, 0x1 bl sub_800641C b _0801FF14 .align 2, 0 _0801FECC: .4byte gUnknown_80DC31C _0801FED0: .4byte gUnknown_80DC34C _0801FED4: ldr r5, _0801FF20 mov r12, r5 movs r6, 0xC0 lsls r6, 1 mov r8, r6 ldr r4, _0801FF24 movs r3, 0 movs r2, 0x3 _0801FEE4: mov r7, r12 ldr r1, [r7] adds r1, r3 add r1, r8 adds r0, r4, 0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} adds r3, 0x18 subs r2, 0x1 cmp r2, 0 bge _0801FEE4 bl sub_8004914 ldr r0, _0801FF20 ldr r0, [r0] movs r1, 0xC0 lsls r1, 1 adds r0, r1 movs r1, 0x1 movs r2, 0x1 bl sub_800641C _0801FF14: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0801FF20: .4byte gUnknown_203B27C _0801FF24: .4byte gUnknown_80DC31C thumb_func_end sub_801FDC0 thumb_func_start sub_801FF28 sub_801FF28: push {r4,r5,lr} sub sp, 0x14 ldr r1, _0801FF44 ldr r0, [r1] ldr r0, [r0, 0x4] adds r5, r1, 0 cmp r0, 0x23 bls _0801FF3A b _08020562 _0801FF3A: lsls r0, 2 ldr r1, _0801FF48 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0801FF44: .4byte gUnknown_203B27C _0801FF48: .4byte _0801FF4C .align 2, 0 _0801FF4C: .4byte _0801FFDC .4byte _08020018 .4byte _08020064 .4byte _0802006C .4byte _08020090 .4byte _080200B4 .4byte _080200D8 .4byte _080200FC .4byte _08020144 .4byte _0802018C .4byte _080201B0 .4byte _080201D4 .4byte _080201F8 .4byte _08020562 .4byte _0802021C .4byte _08020240 .4byte _0802024E .4byte _08020256 .4byte _08020274 .4byte _08020282 .4byte _0802028E .4byte _080202B0 .4byte _080202BE .4byte _080202C6 .4byte _080202E4 .4byte _08020304 .4byte _08020344 .4byte _080203B0 .4byte _080203D4 .4byte _0802038C .4byte _080203F8 .4byte _08020428 .4byte _08020434 .4byte _08020460 .4byte _08020478 .4byte _08020500 _0801FFDC: ldr r0, [r5] movs r4, 0x2 str r4, [r0, 0x6C] bl sub_8020574 ldr r5, [r5] str r4, [r5, 0x8] ldr r2, _08020014 ldr r1, [r5] movs r0, 0x64 muls r0, r1 adds r0, r2 ldr r0, [r0] ldr r2, [r5, 0x6C] adds r3, r5, 0 adds r3, 0x7C adds r1, r5, 0 adds r1, 0xBC str r1, [sp] movs r1, 0x4 str r1, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] movs r4, 0xBE lsls r4, 1 adds r1, r5, r4 b _0802004C .align 2, 0 _08020014: .4byte gUnknown_80D8888 _08020018: bl sub_8020574 ldr r0, _0802005C ldr r4, [r0] movs r0, 0x2 str r0, [r4, 0x8] ldr r1, _08020060 ldr r2, [r4] movs r0, 0x64 muls r0, r2 adds r1, 0x4 adds r0, r1 ldr r0, [r0] ldr r2, [r4, 0x6C] adds r3, r4, 0 adds r3, 0x7C adds r1, r4, 0 adds r1, 0xBC str r1, [sp] movs r1, 0x4 str r1, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] movs r5, 0xBE lsls r5, 1 adds r1, r4, r5 _0802004C: ldr r1, [r1] str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 bl sub_8014248 b _08020562 .align 2, 0 _0802005C: .4byte gUnknown_203B27C _08020060: .4byte gUnknown_80D8888 _08020064: movs r0, 0x3 bl sub_8016C40 b _08020562 _0802006C: ldr r2, [r5] movs r0, 0x1F str r0, [r2, 0x8] ldr r1, _0802008C ldr r3, [r2] movs r0, 0x64 muls r0, r3 adds r1, 0x8 adds r0, r1 ldr r0, [r0] movs r1, 0xBE lsls r1, 1 adds r2, r1 ldr r2, [r2] b _0802052C .align 2, 0 _0802008C: .4byte gUnknown_80D8888 _08020090: ldr r2, [r5] movs r0, 0x1F str r0, [r2, 0x8] ldr r1, _080200B0 ldr r3, [r2] movs r0, 0x64 muls r0, r3 adds r1, 0xC adds r0, r1 ldr r0, [r0] movs r4, 0xBE lsls r4, 1 adds r2, r4 ldr r2, [r2] b _0802052C .align 2, 0 _080200B0: .4byte gUnknown_80D8888 _080200B4: ldr r2, [r5] movs r0, 0x1F str r0, [r2, 0x8] ldr r1, _080200D4 ldr r3, [r2] movs r0, 0x64 muls r0, r3 adds r1, 0x10 adds r0, r1 ldr r0, [r0] movs r5, 0xBE lsls r5, 1 adds r2, r5 ldr r2, [r2] b _0802052C .align 2, 0 _080200D4: .4byte gUnknown_80D8888 _080200D8: ldr r2, [r5] movs r0, 0x1F str r0, [r2, 0x8] ldr r1, _080200F8 ldr r3, [r2] movs r0, 0x64 muls r0, r3 adds r1, 0x14 adds r0, r1 ldr r0, [r0] movs r1, 0xBE lsls r1, 1 adds r2, r1 ldr r2, [r2] b _0802052C .align 2, 0 _080200F8: .4byte gUnknown_80D8888 _080200FC: bl sub_8020900 ldr r1, _0802013C ldr r0, _08020140 ldr r4, [r0] ldr r2, [r4] movs r0, 0x64 muls r0, r2 adds r1, 0x18 adds r0, r1 ldr r0, [r0] adds r3, r4, 0 adds r3, 0x7C adds r1, r4, 0 adds r1, 0xBC str r1, [sp] movs r1, 0x4 str r1, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] movs r2, 0xBE lsls r2, 1 adds r1, r4, r2 ldr r1, [r1] str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 movs r2, 0x10 bl sub_8014248 b _08020562 .align 2, 0 _0802013C: .4byte gUnknown_80D8888 _08020140: .4byte gUnknown_203B27C _08020144: bl sub_8020950 ldr r1, _08020184 ldr r0, _08020188 ldr r4, [r0] ldr r2, [r4] movs r0, 0x64 muls r0, r2 adds r1, 0x54 adds r0, r1 ldr r0, [r0] adds r3, r4, 0 adds r3, 0x7C adds r1, r4, 0 adds r1, 0xBC str r1, [sp] movs r1, 0x4 str r1, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] movs r5, 0xBE lsls r5, 1 adds r1, r4, r5 ldr r1, [r1] str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 movs r2, 0xD bl sub_8014248 b _08020562 .align 2, 0 _08020184: .4byte gUnknown_80D8888 _08020188: .4byte gUnknown_203B27C _0802018C: ldr r2, [r5] movs r0, 0x1 str r0, [r2, 0x8] ldr r1, _080201AC ldr r3, [r2] movs r0, 0x64 muls r0, r3 adds r1, 0x58 adds r0, r1 ldr r0, [r0] movs r1, 0xBE lsls r1, 1 adds r2, r1 ldr r2, [r2] b _0802052C .align 2, 0 _080201AC: .4byte gUnknown_80D8888 _080201B0: ldr r2, [r5] movs r0, 0x1 str r0, [r2, 0x8] ldr r1, _080201D0 ldr r3, [r2] movs r0, 0x64 muls r0, r3 adds r1, 0x5C adds r0, r1 ldr r0, [r0] movs r4, 0xBE lsls r4, 1 adds r2, r4 ldr r2, [r2] b _0802052C .align 2, 0 _080201D0: .4byte gUnknown_80D8888 _080201D4: ldr r2, [r5] movs r0, 0x1 str r0, [r2, 0x8] ldr r1, _080201F4 ldr r3, [r2] movs r0, 0x64 muls r0, r3 adds r1, 0x60 adds r0, r1 ldr r0, [r0] movs r5, 0xBE lsls r5, 1 adds r2, r5 ldr r2, [r2] b _0802052C .align 2, 0 _080201F4: .4byte gUnknown_80D8888 _080201F8: ldr r2, [r5] movs r0, 0xD str r0, [r2, 0x8] ldr r1, _08020218 ldr r3, [r2] movs r0, 0x64 muls r0, r3 adds r1, 0x1C adds r0, r1 ldr r0, [r0] movs r1, 0xBE lsls r1, 1 adds r2, r1 ldr r2, [r2] b _0802052C .align 2, 0 _08020218: .4byte gUnknown_80D8888 _0802021C: ldr r2, [r5] movs r0, 0xF str r0, [r2, 0x8] ldr r1, _0802023C ldr r3, [r2] movs r0, 0x64 muls r0, r3 adds r1, 0x20 adds r0, r1 ldr r0, [r0] movs r4, 0xBE lsls r4, 1 adds r2, r4 ldr r2, [r2] b _0802052C .align 2, 0 _0802023C: .4byte gUnknown_80D8888 _08020240: movs r0, 0x2 movs r1, 0 movs r2, 0 movs r3, 0xA bl sub_8023868 b _08020562 _0802024E: movs r0, 0x1 bl sub_8023B7C b _08020562 _08020256: bl sub_8023DA4 ldr r0, _08020270 ldr r2, [r0] adds r0, r2, 0 adds r0, 0xCC adds r1, r2, 0 adds r1, 0x7C adds r3, r2, 0 adds r3, 0xBC ldr r2, [r2, 0x70] b _0802044C .align 2, 0 _08020270: .4byte gUnknown_203B27C _08020274: ldr r0, [r5] movs r5, 0xC ldrsh r0, [r0, r5] movs r1, 0x2 bl sub_8024458 b _08020562 _08020282: ldr r0, [r5] movs r1, 0xC ldrsh r0, [r0, r1] bl sub_801BEEC b _08020562 _0802028E: ldr r2, [r5] movs r0, 0x15 str r0, [r2, 0x8] ldr r1, _080202AC ldr r3, [r2] movs r0, 0x64 muls r0, r3 adds r1, 0x24 adds r0, r1 ldr r0, [r0] movs r4, 0xBE lsls r4, 1 adds r2, r4 ldr r2, [r2] b _0802052C .align 2, 0 _080202AC: .4byte gUnknown_80D8888 _080202B0: ldr r0, [r5] movs r5, 0xC ldrsh r0, [r0, r5] movs r1, 0 bl sub_801F428 b _08020562 _080202BE: movs r0, 0x1 bl sub_801F5F0 b _08020562 _080202C6: bl sub_801F700 ldr r0, _080202E0 ldr r2, [r0] adds r0, r2, 0 adds r0, 0xCC adds r1, r2, 0 adds r1, 0x7C adds r3, r2, 0 adds r3, 0xBC ldr r2, [r2, 0x74] b _0802044C .align 2, 0 _080202E0: .4byte gUnknown_203B27C _080202E4: ldr r0, [r5] ldrh r1, [r0, 0x1C] adds r0, 0x64 strh r1, [r0] movs r2, 0x1 adds r4, r5, 0 movs r3, 0 _080202F2: ldr r0, [r4] lsls r1, r2, 1 adds r0, 0x64 adds r0, r1 strh r3, [r0] adds r2, 0x1 cmp r2, 0x3 ble _080202F2 b _0802046E _08020304: ldr r1, [r5] adds r0, r1, 0 adds r0, 0x24 ldr r1, [r1, 0x10] adds r1, 0x2C bl sub_8094060 ldr r1, [r5] movs r0, 0x10 str r0, [r1, 0x8] ldr r0, _0802033C ldrh r1, [r1, 0x1E] bl sub_8092C84 ldr r1, _08020340 ldr r2, [r5] ldr r3, [r2] movs r0, 0x64 muls r0, r3 adds r1, 0x28 adds r0, r1 ldr r0, [r0] movs r1, 0xBE lsls r1, 1 adds r2, r1 ldr r2, [r2] b _0802052C .align 2, 0 _0802033C: .4byte gUnknown_202DF98 _08020340: .4byte gUnknown_80D8888 _08020344: ldr r1, [r5] adds r0, r1, 0 adds r0, 0x24 ldr r1, [r1, 0x10] adds r1, 0x2C bl sub_8094060 ldr r3, [r5] movs r0, 0x10 str r0, [r3, 0x8] ldrb r0, [r3, 0x14] cmp r0, 0 beq _08020370 ldr r1, _0802036C ldr r2, [r3] movs r0, 0x64 muls r0, r2 adds r1, 0x38 b _08020520 .align 2, 0 _0802036C: .4byte gUnknown_80D8888 _08020370: ldr r1, _08020388 ldr r2, [r3] movs r0, 0x64 muls r0, r2 adds r1, 0x34 adds r0, r1 ldr r0, [r0] movs r4, 0xBE lsls r4, 1 adds r1, r3, r4 b _0802052A .align 2, 0 _08020388: .4byte gUnknown_80D8888 _0802038C: ldr r2, [r5] ldr r0, [r2] cmp r0, 0 bne _080203A2 movs r5, 0xC ldrsh r1, [r2, r5] adds r2, 0x24 movs r0, 0 bl sub_801E80C b _08020562 _080203A2: movs r0, 0xC ldrsh r1, [r2, r0] adds r2, 0x24 movs r0, 0x1 bl sub_801E80C b _08020562 _080203B0: ldr r2, [r5] movs r0, 0x10 str r0, [r2, 0x8] ldr r1, _080203D0 ldr r3, [r2] movs r0, 0x64 muls r0, r3 adds r1, 0x3C adds r0, r1 ldr r0, [r0] movs r1, 0xBE lsls r1, 1 adds r2, r1 ldr r2, [r2] b _0802052C .align 2, 0 _080203D0: .4byte gUnknown_80D8888 _080203D4: ldr r2, [r5] movs r0, 0x10 str r0, [r2, 0x8] ldr r1, _080203F4 ldr r3, [r2] movs r0, 0x64 muls r0, r3 adds r1, 0x40 adds r0, r1 ldr r0, [r0] movs r4, 0xBE lsls r4, 1 adds r2, r4 ldr r2, [r2] b _0802052C .align 2, 0 _080203F4: .4byte gUnknown_80D8888 _080203F8: ldr r1, [r5] adds r0, r1, 0 adds r0, 0x24 ldr r1, [r1, 0x10] adds r1, 0x2C bl sub_809401C ldr r0, [r5] movs r5, 0xC ldrsh r1, [r0, r5] adds r2, r0, 0 adds r2, 0x24 ldrb r3, [r0, 0x15] ldr r0, _08020424 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] movs r0, 0x1 bl sub_801EE10 b _08020562 .align 2, 0 _08020424: .4byte gUnknown_80DC394 _08020428: ldr r0, [r5] ldrb r1, [r0, 0x15] movs r0, 0x1 bl sub_801F1B0 b _08020562 _08020434: movs r0, 0 bl sub_801F280 ldr r0, _0802045C ldr r2, [r0] adds r0, r2, 0 adds r0, 0xCC adds r1, r2, 0 adds r1, 0x7C adds r3, r2, 0 adds r3, 0xBC ldr r2, [r2, 0x78] _0802044C: str r2, [sp] movs r2, 0x2 str r2, [sp, 0x4] movs r2, 0 bl sub_8012D60 b _08020562 .align 2, 0 _0802045C: .4byte gUnknown_203B27C _08020460: ldr r2, [r5] ldr r0, [r2, 0x18] adds r1, r2, 0 adds r1, 0x24 adds r2, 0x64 bl sub_8093560 _0802046E: ldr r0, [r5] adds r0, 0x64 bl sub_801F808 b _08020562 _08020478: bl sub_80208B0 ldr r0, _080204B8 ldr r4, _080204BC ldr r1, [r4] ldrh r1, [r1, 0x20] bl sub_8092C84 ldr r4, [r4] ldrb r5, [r4, 0x14] cmp r5, 0 beq _080204C4 ldr r1, _080204C0 ldr r2, [r4] movs r0, 0x64 muls r0, r2 adds r1, 0x48 adds r0, r1 ldr r0, [r0] adds r3, r4, 0 adds r3, 0x7C adds r1, r4, 0 adds r1, 0xBC str r1, [sp] movs r1, 0x4 str r1, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] movs r2, 0xBE lsls r2, 1 adds r1, r4, r2 b _080204E8 .align 2, 0 _080204B8: .4byte gUnknown_202DFE8 _080204BC: .4byte gUnknown_203B27C _080204C0: .4byte gUnknown_80D8888 _080204C4: ldr r1, _080204FC ldr r2, [r4] movs r0, 0x64 muls r0, r2 adds r1, 0x44 adds r0, r1 ldr r0, [r0] adds r3, r4, 0 adds r3, 0x7C adds r1, r4, 0 adds r1, 0xBC str r1, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r5, [sp, 0x8] movs r5, 0xBE lsls r5, 1 adds r1, r4, r5 _080204E8: ldr r1, [r1] str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 movs r2, 0x11 bl sub_8014248 b _08020562 .align 2, 0 _080204FC: .4byte gUnknown_80D8888 _08020500: ldr r1, [r5] movs r0, 0x1F str r0, [r1, 0x8] ldr r0, _08020538 ldrh r1, [r1, 0x20] bl sub_8092C84 ldr r3, [r5] ldrb r0, [r3, 0x14] cmp r0, 0 beq _08020544 ldr r1, _0802053C ldr r2, [r3] movs r0, 0x64 muls r0, r2 adds r1, 0x50 _08020520: adds r0, r1 ldr r0, [r0] movs r2, 0xBE lsls r2, 1 adds r1, r3, r2 _0802052A: ldr r2, [r1] _0802052C: ldr r3, _08020540 movs r1, 0 bl sub_80141B4 b _08020562 .align 2, 0 _08020538: .4byte gUnknown_202DFE8 _0802053C: .4byte gUnknown_80D8888 _08020540: .4byte 0x0000010d _08020544: ldr r1, _0802056C ldr r2, [r3] movs r0, 0x64 muls r0, r2 adds r1, 0x4C adds r0, r1 ldr r0, [r0] movs r4, 0xBE lsls r4, 1 adds r1, r3, r4 ldr r2, [r1] ldr r3, _08020570 movs r1, 0 bl sub_80141B4 _08020562: add sp, 0x14 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802056C: .4byte gUnknown_80D8888 _08020570: .4byte 0x0000010d thumb_func_end sub_801FF28 thumb_func_start sub_8020574 sub_8020574: push {r4,lr} ldr r4, _080205C0 ldr r0, [r4] adds r0, 0xBC movs r1, 0 movs r2, 0x10 bl MemoryFill16 ldr r4, [r4] movs r3, 0 ldr r0, _080205C4 str r0, [r4, 0x7C] adds r1, r4, 0 adds r1, 0x80 movs r0, 0x2 str r0, [r1] movs r2, 0x1 adds r1, 0x4 ldr r0, _080205C8 str r0, [r1] adds r1, 0x4 movs r0, 0xB str r0, [r1] adds r1, 0x4 ldr r0, _080205CC ldr r0, [r0] str r0, [r1] adds r0, r4, 0 adds r0, 0x90 str r2, [r0] adds r0, 0x4 str r3, [r0] adds r0, 0x4 str r2, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _080205C0: .4byte gUnknown_203B27C _080205C4: .4byte gUnknown_80DC3C4 _080205C8: .4byte gUnknown_80DC3CC _080205CC: .4byte gUnknown_80D4934 thumb_func_end sub_8020574 thumb_func_start sub_80205D0 sub_80205D0: push {r4-r7,lr} ldr r4, _08020660 ldr r0, [r4] adds r0, 0xBC movs r1, 0 movs r2, 0x10 bl MemoryFill16 ldr r0, [r4] mov r12, r0 movs r5, 0 ldr r0, _08020664 mov r1, r12 str r0, [r1, 0x7C] mov r2, r12 adds r2, 0x80 movs r0, 0x4 str r0, [r2] movs r3, 0x1 adds r1, 0x84 ldr r0, _08020668 str r0, [r1] adds r1, 0x4 movs r0, 0xB str r0, [r1] adds r1, 0x4 ldr r0, _0802066C str r0, [r1] adds r1, 0x4 movs r0, 0xC str r0, [r1] movs r6, 0x3 adds r1, 0x4 ldr r0, _08020670 str r0, [r1] mov r0, r12 adds r0, 0x98 str r6, [r0] movs r6, 0x4 adds r0, 0x4 str r5, [r0] adds r0, 0x4 str r3, [r0] mov r3, r12 adds r3, 0xBC _0802062A: ldrh r0, [r3] cmp r0, 0 bne _0802063A ldr r1, [r2] mov r7, r12 ldr r0, [r7, 0x70] cmp r1, r0 beq _08020696 _0802063A: adds r2, 0x8 adds r3, 0x2 adds r5, 0x1 cmp r5, r6 blt _0802062A movs r5, 0 cmp r5, r6 bge _08020696 ldr r1, [r4] adds r0, r1, 0 adds r0, 0xBC ldrh r0, [r0] cmp r0, 0 bne _08020674 adds r0, r1, 0 adds r0, 0x80 ldr r0, [r0] str r0, [r1, 0x70] b _08020696 .align 2, 0 _08020660: .4byte gUnknown_203B27C _08020664: .4byte gUnknown_80DC3D8 _08020668: .4byte gUnknown_80DC3E0 _0802066C: .4byte gUnknown_80DC3E8 _08020670: .4byte gUnknown_80DC3F4 _08020674: adds r5, 0x1 cmp r5, r6 bge _08020696 ldr r2, [r4] lsls r0, r5, 1 adds r1, r2, 0 adds r1, 0xBC adds r1, r0 ldrh r0, [r1] cmp r0, 0 bne _08020674 lsls r0, r5, 3 adds r1, r2, 0 adds r1, 0x80 adds r1, r0 ldr r0, [r1] str r0, [r2, 0x70] _08020696: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80205D0 thumb_func_start sub_802069C sub_802069C: push {r4-r7,lr} ldr r4, _08020718 ldr r0, [r4] adds r0, 0xBC movs r1, 0 movs r2, 0x10 bl MemoryFill16 ldr r0, [r4] mov r12, r0 movs r5, 0 ldr r0, _0802071C mov r1, r12 str r0, [r1, 0x7C] mov r3, r12 adds r3, 0x80 movs r0, 0x3 str r0, [r3] movs r2, 0x1 adds r1, 0x84 ldr r0, _08020720 ldr r0, [r0] str r0, [r1] adds r1, 0x4 movs r0, 0xB str r0, [r1] movs r6, 0x2 mov r0, r12 adds r0, 0x8C str r5, [r0] adds r0, 0x4 str r2, [r0] mov r2, r12 adds r2, 0xBC _080206E0: ldrh r0, [r2] cmp r0, 0 bne _080206F0 ldr r1, [r3] mov r7, r12 ldr r0, [r7, 0x74] cmp r1, r0 beq _08020746 _080206F0: adds r3, 0x8 adds r2, 0x2 adds r5, 0x1 cmp r5, r6 blt _080206E0 movs r5, 0 cmp r5, r6 bge _08020746 ldr r1, [r4] adds r0, r1, 0 adds r0, 0xBC ldrh r0, [r0] cmp r0, 0 bne _08020724 adds r0, r1, 0 adds r0, 0x80 ldr r0, [r0] str r0, [r1, 0x74] b _08020746 .align 2, 0 _08020718: .4byte gUnknown_203B27C _0802071C: .4byte gUnknown_80DC3F4 _08020720: .4byte gUnknown_80D4970 _08020724: adds r5, 0x1 cmp r5, r6 bge _08020746 ldr r2, [r4] lsls r0, r5, 1 adds r1, r2, 0 adds r1, 0xBC adds r1, r0 ldrh r0, [r1] cmp r0, 0 bne _08020724 lsls r0, r5, 3 adds r1, r2, 0 adds r1, 0x80 adds r1, r0 ldr r0, [r1] str r0, [r2, 0x74] _08020746: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_802069C thumb_func_start sub_802074C sub_802074C: push {r4-r7,lr} movs r7, 0 ldr r4, _08020780 ldr r0, [r4] adds r0, 0xBC movs r1, 0 movs r2, 0x10 bl MemoryFill16 ldr r1, [r4] ldrb r0, [r1, 0x16] cmp r0, 0 beq _0802079C ldr r0, [r1, 0x18] adds r1, 0x24 bl sub_80932E0 lsls r0, 24 cmp r0, 0 beq _08020788 ldr r0, [r4] ldr r1, _08020784 str r1, [r0, 0x7C] adds r0, 0x80 movs r1, 0x6 b _08020792 .align 2, 0 _08020780: .4byte gUnknown_203B27C _08020784: .4byte gUnknown_80DC400 _08020788: ldr r0, [r4] ldr r1, _08020798 str r1, [r0, 0x7C] adds r0, 0x80 movs r1, 0x5 _08020792: str r1, [r0] mov r12, r4 b _080207CA .align 2, 0 _08020798: .4byte gUnknown_80DC40C _0802079C: ldr r0, [r1, 0x18] adds r1, 0x24 bl sub_80932FC lsls r0, 24 cmp r0, 0 beq _080207B4 ldr r1, [r4] ldr r0, _080207B0 b _080207B8 .align 2, 0 _080207B0: .4byte gUnknown_80DC400 _080207B4: ldr r1, [r4] ldr r0, _0802086C _080207B8: str r0, [r1, 0x7C] ldr r2, _08020870 ldr r0, [r2] lsls r1, r7, 3 adds r0, 0x80 adds r0, r1 movs r1, 0x7 str r1, [r0] mov r12, r2 _080207CA: adds r7, 0x1 mov r0, r12 ldr r4, [r0] lsls r1, r7, 3 adds r3, r4, 0 adds r3, 0x7C adds r2, r3, r1 ldr r0, _08020874 str r0, [r2] adds r6, r4, 0 adds r6, 0x80 adds r1, r6, r1 movs r0, 0x8 str r0, [r1] adds r7, 0x1 lsls r1, r7, 3 adds r2, r3, r1 ldr r0, _08020878 str r0, [r2] adds r1, r6, r1 movs r0, 0x9 str r0, [r1] adds r7, 0x1 lsls r1, r7, 3 adds r2, r3, r1 ldr r0, _0802087C str r0, [r2] adds r1, r6, r1 movs r0, 0xA str r0, [r1] adds r7, 0x1 lsls r1, r7, 3 adds r2, r3, r1 ldr r0, _08020880 ldr r0, [r0] str r0, [r2] adds r1, r6, r1 movs r0, 0xB str r0, [r1] adds r7, 0x1 lsls r1, r7, 3 adds r3, r1 movs r0, 0 str r0, [r3] adds r1, r6, r1 movs r0, 0x1 str r0, [r1] movs r3, 0 cmp r3, r7 bge _0802084C adds r5, r4, 0 adds r4, 0xBC adds r2, r6, 0 _08020834: ldrh r0, [r4] cmp r0, 0 bne _08020842 ldr r1, [r2] ldr r0, [r5, 0x78] cmp r1, r0 beq _080208A8 _08020842: adds r4, 0x2 adds r2, 0x8 adds r3, 0x1 cmp r3, r7 blt _08020834 _0802084C: movs r3, 0 cmp r3, r7 bge _080208A8 mov r0, r12 ldr r1, [r0] adds r0, r1, 0 adds r0, 0xBC ldrh r0, [r0] cmp r0, 0 bne _08020884 adds r0, r1, 0 adds r0, 0x80 ldr r0, [r0] str r0, [r1, 0x78] b _080208A8 .align 2, 0 _0802086C: .4byte gUnknown_80DC40C _08020870: .4byte gUnknown_203B27C _08020874: .4byte gUnknown_80DC410 _08020878: .4byte gUnknown_80DC418 _0802087C: .4byte gUnknown_80DC420 _08020880: .4byte gUnknown_80D4970 _08020884: adds r3, 0x1 cmp r3, r7 bge _080208A8 mov r0, r12 ldr r2, [r0] lsls r0, r3, 1 adds r1, r2, 0 adds r1, 0xBC adds r1, r0 ldrh r0, [r1] cmp r0, 0 bne _08020884 lsls r0, r3, 3 adds r1, r2, 0 adds r1, 0x80 adds r1, r0 ldr r0, [r1] str r0, [r2, 0x78] _080208A8: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_802074C thumb_func_start sub_80208B0 sub_80208B0: push {r4,lr} ldr r4, _080208F4 ldr r0, [r4] adds r0, 0xBC movs r1, 0 movs r2, 0x10 bl MemoryFill16 ldr r4, [r4] movs r3, 0 ldr r0, _080208F8 ldr r0, [r0] str r0, [r4, 0x7C] adds r1, r4, 0 adds r1, 0x80 movs r0, 0x10 str r0, [r1] movs r2, 0x1 adds r1, 0x4 ldr r0, _080208FC ldr r0, [r0] str r0, [r1] adds r1, 0x4 movs r0, 0x11 str r0, [r1] adds r0, r4, 0 adds r0, 0x8C str r3, [r0] adds r0, 0x4 str r2, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _080208F4: .4byte gUnknown_203B27C _080208F8: .4byte gUnknown_80D4920 _080208FC: .4byte gUnknown_80D4928 thumb_func_end sub_80208B0 thumb_func_start sub_8020900 sub_8020900: push {r4,lr} ldr r4, _08020944 ldr r0, [r4] adds r0, 0xBC movs r1, 0 movs r2, 0x10 bl MemoryFill16 ldr r3, [r4] movs r2, 0 ldr r0, _08020948 ldr r0, [r0] str r0, [r3, 0x7C] adds r1, r3, 0 adds r1, 0x80 movs r0, 0x10 str r0, [r1] adds r1, 0x4 ldr r0, _0802094C ldr r0, [r0] str r0, [r1] adds r1, 0x4 movs r0, 0x11 str r0, [r1] adds r0, r3, 0 adds r0, 0x8C str r2, [r0] adds r1, 0x8 movs r0, 0x1 negs r0, r0 str r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _08020944: .4byte gUnknown_203B27C _08020948: .4byte gUnknown_80D4920 _0802094C: .4byte gUnknown_80D4928 thumb_func_end sub_8020900 thumb_func_start sub_8020950 sub_8020950: push {r4,lr} ldr r4, _0802099C ldr r0, [r4] adds r0, 0xBC movs r1, 0 movs r2, 0x10 bl MemoryFill16 ldr r4, [r4] movs r3, 0 ldr r0, _080209A0 str r0, [r4, 0x7C] adds r1, r4, 0 adds r1, 0x80 movs r0, 0xD str r0, [r1] movs r2, 0x1 adds r1, 0x4 ldr r0, _080209A4 str r0, [r1] adds r1, 0x4 movs r0, 0xE str r0, [r1] adds r1, 0x4 ldr r0, _080209A8 str r0, [r1] adds r1, 0x4 movs r0, 0xF str r0, [r1] adds r0, r4, 0 adds r0, 0x94 str r3, [r0] adds r0, 0x4 str r2, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _0802099C: .4byte gUnknown_203B27C _080209A0: .4byte gUnknown_80DC428 _080209A4: .4byte gUnknown_80DC438 _080209A8: .4byte gUnknown_80DC448 thumb_func_end sub_8020950 thumb_func_start sub_80209AC sub_80209AC: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080209F4 ldr r0, _080209D4 ldr r1, [r0] ldr r0, [sp] str r0, [r1, 0x6C] ldr r0, [sp] cmp r0, 0x2 beq _080209DE cmp r0, 0x2 bgt _080209D8 cmp r0, 0x1 beq _080209EE b _080209F4 .align 2, 0 _080209D4: .4byte gUnknown_203B27C _080209D8: cmp r0, 0xB beq _080209E6 b _080209F4 _080209DE: movs r0, 0xE bl sub_801FDA8 b _080209F4 _080209E6: movs r0, 0x8 bl sub_801FDA8 b _080209F4 _080209EE: movs r0, 0xC bl sub_801FDA8 _080209F4: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80209AC thumb_func_start sub_80209FC sub_80209FC: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08020A2E ldr r0, [sp] cmp r0, 0x10 beq _08020A20 cmp r0, 0x10 bgt _08020A1A cmp r0, 0x1 beq _08020A28 b _08020A2E _08020A1A: cmp r0, 0x11 beq _08020A28 b _08020A2E _08020A20: movs r0, 0xE bl sub_801FDA8 b _08020A2E _08020A28: movs r0, 0xC bl sub_801FDA8 _08020A2E: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80209FC thumb_func_start sub_8020A34 sub_8020A34: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08020A7A ldr r0, [sp] cmp r0, 0xD beq _08020A5C cmp r0, 0xD bgt _08020A52 cmp r0, 0x1 beq _08020A74 b _08020A7A _08020A52: cmp r0, 0xE beq _08020A64 cmp r0, 0xF beq _08020A6C b _08020A7A _08020A5C: movs r0, 0x9 bl sub_801FDA8 b _08020A7A _08020A64: movs r0, 0xA bl sub_801FDA8 b _08020A7A _08020A6C: movs r0, 0xB bl sub_801FDA8 b _08020A7A _08020A74: movs r0, 0x1 bl sub_801FDA8 _08020A7A: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8020A34 thumb_func_start sub_8020A80 sub_8020A80: push {r4,lr} movs r0, 0x1 bl sub_8023A94 cmp r0, 0x4 bhi _08020B32 lsls r0, 2 ldr r1, _08020A98 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08020A98: .4byte _08020A9C .align 2, 0 _08020A9C: .4byte _08020B32 .4byte _08020B32 .4byte _08020B28 .4byte _08020AB0 .4byte _08020AEC _08020AB0: bl sub_8023B44 ldr r4, _08020AE0 ldr r1, [r4] strh r0, [r1, 0xC] ldr r3, _08020AE4 movs r0, 0xC ldrsh r2, [r1, r0] movs r0, 0x58 muls r2, r0 ldr r0, [r3] adds r0, r2 str r0, [r1, 0x10] ldrb r0, [r0, 0x2] strb r0, [r1, 0x16] ldr r0, _08020AE8 ldr r1, [r4] ldr r1, [r1, 0x10] bl sub_808DA34 movs r0, 0x11 bl sub_801FDA8 b _08020B32 .align 2, 0 _08020AE0: .4byte gUnknown_203B27C _08020AE4: .4byte gUnknown_203B45C _08020AE8: .4byte gUnknown_202E128 _08020AEC: bl sub_8023B44 ldr r4, _08020B1C ldr r1, [r4] strh r0, [r1, 0xC] ldr r3, _08020B20 movs r0, 0xC ldrsh r2, [r1, r0] movs r0, 0x58 muls r2, r0 ldr r0, [r3] adds r0, r2 str r0, [r1, 0x10] ldrb r0, [r0, 0x2] strb r0, [r1, 0x16] ldr r0, _08020B24 ldr r1, [r4] ldr r1, [r1, 0x10] bl sub_808DA34 movs r0, 0x12 bl sub_801FDA8 b _08020B32 .align 2, 0 _08020B1C: .4byte gUnknown_203B27C _08020B20: .4byte gUnknown_203B45C _08020B24: .4byte gUnknown_202E128 _08020B28: bl sub_8023C60 movs r0, 0x7 bl sub_801FDA8 _08020B32: pop {r4} pop {r0} bx r0 thumb_func_end sub_8020A80 thumb_func_start sub_8020B38 sub_8020B38: push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] bl sub_8023A94 ldr r4, _08020B7C ldr r0, [r4] adds r0, 0xCC bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _08020B68 ldr r0, [r4] adds r0, 0xCC mov r1, sp bl sub_8013114 ldr r1, [sp] cmp r1, 0x1 beq _08020B68 ldr r0, [r4] str r1, [r0, 0x70] _08020B68: ldr r0, [sp] subs r0, 0x1 cmp r0, 0x10 bhi _08020C24 lsls r0, 2 ldr r1, _08020B80 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08020B7C: .4byte gUnknown_203B27C _08020B80: .4byte _08020B84 .align 2, 0 _08020B84: .4byte _08020BC8 .4byte _08020C24 .4byte _08020BD0 .4byte _08020C0E .4byte _08020C24 .4byte _08020C24 .4byte _08020C24 .4byte _08020C24 .4byte _08020C24 .4byte _08020C24 .4byte _08020C16 .4byte _08020C1E .4byte _08020C24 .4byte _08020C24 .4byte _08020C24 .4byte _08020C24 .4byte _08020BC8 _08020BC8: movs r0, 0x10 bl sub_801FDA8 b _08020C24 _08020BD0: ldr r0, _08020BF0 ldr r0, [r0] ldr r0, [r0, 0x10] movs r1, 0x8 ldrsh r0, [r0, r1] bl sub_808E858 lsls r0, 16 movs r1, 0xCF lsls r1, 17 cmp r0, r1 bne _08020BF4 movs r0, 0x1C bl sub_801FDA8 b _08020C24 .align 2, 0 _08020BF0: .4byte gUnknown_203B27C _08020BF4: bl sub_8021178 lsls r0, 24 cmp r0, 0 beq _08020C06 movs r0, 0x1B bl sub_801FDA8 b _08020C24 _08020C06: movs r0, 0x14 bl sub_801FDA8 b _08020C24 _08020C0E: movs r0, 0x1E bl sub_801FDA8 b _08020C24 _08020C16: movs r0, 0x12 bl sub_801FDA8 b _08020C24 _08020C1E: movs r0, 0x13 bl sub_801FDA8 _08020C24: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_8020B38 thumb_func_start sub_8020C2C sub_8020C2C: push {lr} bl sub_80244E4 cmp r0, 0x1 bls _08020C44 cmp r0, 0x3 bhi _08020C44 bl sub_802453C movs r0, 0x10 bl sub_801FDA8 _08020C44: pop {r0} bx r0 thumb_func_end sub_8020C2C thumb_func_start sub_8020C48 sub_8020C48: push {lr} bl sub_801BF48 cmp r0, 0x1 bls _08020C60 cmp r0, 0x3 bhi _08020C60 bl sub_801BF98 movs r0, 0x10 bl sub_801FDA8 _08020C60: pop {r0} bx r0 thumb_func_end sub_8020C48 thumb_func_start sub_8020C64 sub_8020C64: push {lr} movs r0, 0x1 bl sub_801F520 cmp r0, 0x3 beq _08020C80 cmp r0, 0x3 bhi _08020C7A cmp r0, 0x2 beq _08020CB0 b _08020CBA _08020C7A: cmp r0, 0x4 beq _08020C98 b _08020CBA _08020C80: bl sub_801F5B4 ldr r1, _08020C94 ldr r1, [r1] strh r0, [r1, 0x1C] strh r0, [r1, 0x1E] movs r0, 0x17 bl sub_801FDA8 b _08020CBA .align 2, 0 _08020C94: .4byte gUnknown_203B27C _08020C98: bl sub_801F5B4 ldr r1, _08020CAC ldr r1, [r1] strh r0, [r1, 0x1C] strh r0, [r1, 0x1E] movs r0, 0x18 bl sub_801FDA8 b _08020CBA .align 2, 0 _08020CAC: .4byte gUnknown_203B27C _08020CB0: bl sub_801F63C movs r0, 0x10 bl sub_801FDA8 _08020CBA: pop {r0} bx r0 thumb_func_end sub_8020C64 thumb_func_start sub_8020CC0 sub_8020CC0: push {r4-r6,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] bl sub_801F520 ldr r4, _08020D00 ldr r0, [r4] adds r0, 0xCC bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _08020CF0 ldr r0, [r4] adds r0, 0xCC mov r1, sp bl sub_8013114 ldr r1, [sp] cmp r1, 0x1 beq _08020CF0 ldr r0, [r4] str r1, [r0, 0x74] _08020CF0: ldr r0, [sp] cmp r0, 0x3 beq _08020D14 cmp r0, 0x3 bgt _08020D04 cmp r0, 0x1 beq _08020D0C b _08020D6C .align 2, 0 _08020D00: .4byte gUnknown_203B27C _08020D04: cmp r0, 0xB beq _08020D66 cmp r0, 0x11 bne _08020D6C _08020D0C: movs r0, 0x16 bl sub_801FDA8 b _08020D6C _08020D14: bl sub_801F63C ldr r4, _08020D30 ldr r1, [r4] adds r0, r1, 0 adds r0, 0x24 ldr r1, [r1, 0x10] adds r1, 0x2C bl sub_809401C movs r5, 0 adds r6, r4, 0 movs r4, 0x24 b _08020D38 .align 2, 0 _08020D30: .4byte gUnknown_203B27C _08020D34: adds r4, 0x8 adds r5, 0x1 _08020D38: cmp r5, 0x7 bgt _08020D52 ldr r3, [r6] adds r2, r3, r4 ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08020D34 ldrh r1, [r3, 0x1E] adds r0, r2, 0 bl sub_8092AD4 _08020D52: cmp r5, 0x3 ble _08020D5E movs r0, 0x1D bl sub_801FDA8 b _08020D6C _08020D5E: movs r0, 0x19 bl sub_801FDA8 b _08020D6C _08020D66: movs r0, 0x18 bl sub_801FDA8 _08020D6C: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8020CC0 thumb_func_start sub_8020D74 sub_8020D74: push {lr} bl sub_801F890 cmp r0, 0x1 bls _08020D8C cmp r0, 0x3 bhi _08020D8C bl sub_801F8D0 movs r0, 0x16 bl sub_801FDA8 _08020D8C: pop {r0} bx r0 thumb_func_end sub_8020D74 thumb_func_start sub_8020D90 sub_8020D90: push {lr} bl sub_801E8C0 cmp r0, 0x2 beq _08020DBC cmp r0, 0x2 bcc _08020DC6 cmp r0, 0x3 bne _08020DC6 bl sub_801E930 ldr r1, _08020DB8 ldr r1, [r1] strb r0, [r1, 0x14] bl sub_801E93C movs r0, 0x1A bl sub_801FDA8 b _08020DC6 .align 2, 0 _08020DB8: .4byte gUnknown_203B27C _08020DBC: bl sub_801E93C movs r0, 0x10 bl sub_801FDA8 _08020DC6: pop {r0} bx r0 thumb_func_end sub_8020D90 thumb_func_start sub_8020DCC sub_8020DCC: push {lr} movs r0, 0x1 bl sub_801EF38 cmp r0, 0x4 bhi _08020EAA lsls r0, 2 ldr r1, _08020DE4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08020DE4: .4byte _08020DE8 .align 2, 0 _08020DE8: .4byte _08020EAA .4byte _08020E98 .4byte _08020E64 .4byte _08020DFC .4byte _08020E30 _08020DFC: bl sub_801F1A4 lsls r0, 24 cmp r0, 0 beq _08020E0E ldr r0, _08020E2C ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0x15] _08020E0E: bl sub_801F194 ldr r1, _08020E2C ldr r2, [r1] str r0, [r2, 0x18] lsls r0, 3 adds r0, r2, r0 ldrh r1, [r0, 0x26] strh r1, [r2, 0x1C] ldrh r0, [r0, 0x26] strh r0, [r2, 0x20] movs r0, 0x20 bl sub_801FDA8 b _08020EAA .align 2, 0 _08020E2C: .4byte gUnknown_203B27C _08020E30: bl sub_801F1A4 lsls r0, 24 cmp r0, 0 beq _08020E42 ldr r0, _08020E60 ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0x15] _08020E42: bl sub_801F194 ldr r1, _08020E60 ldr r2, [r1] str r0, [r2, 0x18] lsls r0, 3 adds r0, r2, r0 ldrh r1, [r0, 0x26] strh r1, [r2, 0x1C] ldrh r0, [r0, 0x26] strh r0, [r2, 0x20] movs r0, 0x21 bl sub_801FDA8 b _08020EAA .align 2, 0 _08020E60: .4byte gUnknown_203B27C _08020E64: bl sub_801F1A4 lsls r0, 24 cmp r0, 0 beq _08020E76 ldr r0, _08020E94 ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0x15] _08020E76: bl sub_801F214 ldr r0, _08020E94 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x24 ldr r1, [r1, 0x10] adds r1, 0x2C bl sub_8094060 movs r0, 0x10 bl sub_801FDA8 b _08020EAA .align 2, 0 _08020E94: .4byte gUnknown_203B27C _08020E98: bl sub_801F1A4 lsls r0, 24 cmp r0, 0 beq _08020EAA ldr r0, _08020EB0 ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0x15] _08020EAA: pop {r0} bx r0 .align 2, 0 _08020EB0: .4byte gUnknown_203B27C thumb_func_end sub_8020DCC thumb_func_start sub_8020EB4 sub_8020EB4: push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] bl sub_801EF38 ldr r4, _08020EF8 ldr r0, [r4] adds r0, 0xCC bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _08020EE4 ldr r0, [r4] adds r0, 0xCC mov r1, sp bl sub_8013114 ldr r1, [sp] cmp r1, 0x1 beq _08020EE4 ldr r0, [r4] str r1, [r0, 0x78] _08020EE4: ldr r0, [sp] subs r0, 0x1 cmp r0, 0x10 bls _08020EEE b _080210BE _08020EEE: lsls r0, 2 ldr r1, _08020EFC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08020EF8: .4byte gUnknown_203B27C _08020EFC: .4byte _08020F00 .align 2, 0 _08020F00: .4byte _08021068 .4byte _080210BE .4byte _080210BE .4byte _080210BE .4byte _08020F44 .4byte _08020F70 .4byte _08020F8C .4byte _08020FB8 .4byte _08021034 .4byte _08021074 .4byte _080210B8 .4byte _080210BE .4byte _080210BE .4byte _080210BE .4byte _080210BE .4byte _080210BE .4byte _08021068 _08020F44: ldr r0, _08020F60 ldr r1, [r0] ldr r0, [r1, 0x18] adds r1, 0x24 bl sub_80934DC lsls r0, 24 cmp r0, 0 beq _08020F68 ldr r0, _08020F64 bl sub_8011988 b _08021068 .align 2, 0 _08020F60: .4byte gUnknown_203B27C _08020F64: .4byte 0x00000133 _08020F68: movs r0, 0x2 bl sub_80119D4 b _08021068 _08020F70: ldr r0, _08020F84 bl sub_8011988 ldr r0, _08020F88 ldr r1, [r0] ldr r0, [r1, 0x18] adds r1, 0x24 bl sub_809352C b _08021068 .align 2, 0 _08020F84: .4byte 0x00000133 _08020F88: .4byte gUnknown_203B27C _08020F8C: ldr r0, _08020FA8 ldr r1, [r0] ldr r0, [r1, 0x18] adds r1, 0x24 bl sub_8093544 lsls r0, 24 cmp r0, 0 beq _08020FB0 ldr r0, _08020FAC bl sub_8011988 b _08021068 .align 2, 0 _08020FA8: .4byte gUnknown_203B27C _08020FAC: .4byte 0x00000133 _08020FB0: movs r0, 0x2 bl sub_80119D4 b _08021068 _08020FB8: ldr r0, _08020FD8 ldr r0, [r0] movs r1, 0x98 lsls r1, 2 adds r0, r1 ldr r0, [r0] cmp r0, 0x95 bgt _08020FDC movs r0, 0x2 bl sub_80119D4 movs r0, 0x3 bl sub_801FDA8 b _080210BE .align 2, 0 _08020FD8: .4byte gUnknown_203B460 _08020FDC: ldr r4, _08020FFC ldr r1, [r4] ldr r0, [r1, 0x18] adds r1, 0x24 bl sub_8093318 lsls r0, 24 cmp r0, 0 bne _08021000 movs r0, 0x2 bl sub_80119D4 movs r0, 0x4 bl sub_801FDA8 b _080210BE .align 2, 0 _08020FFC: .4byte gUnknown_203B27C _08021000: ldr r1, [r4] ldrb r0, [r1, 0x15] cmp r0, 0 bne _08021016 movs r0, 0x1 strb r0, [r1, 0x15] movs r0, 0xA6 lsls r0, 1 bl sub_8011988 b _0802101C _08021016: ldr r0, _0802102C bl sub_8011988 _0802101C: ldr r0, _08021030 ldr r1, [r0] ldr r0, [r1, 0x18] adds r1, 0x24 bl sub_8093400 b _08021068 .align 2, 0 _0802102C: .4byte 0x00000133 _08021030: .4byte gUnknown_203B27C _08021034: ldr r4, _08021054 ldr r1, [r4] ldr r0, [r1, 0x18] adds r1, 0x24 bl sub_809333C lsls r0, 24 cmp r0, 0 bne _08021058 movs r0, 0x2 bl sub_80119D4 movs r0, 0x5 bl sub_801FDA8 b _080210BE .align 2, 0 _08021054: .4byte gUnknown_203B27C _08021058: ldr r0, _08021070 bl sub_8011988 ldr r1, [r4] ldr r0, [r1, 0x18] adds r1, 0x24 bl sub_8093468 _08021068: movs r0, 0x1F bl sub_801FDA8 b _080210BE .align 2, 0 _08021070: .4byte 0x00000133 _08021074: ldr r4, _08021094 ldr r1, [r4] ldr r0, [r1, 0x18] adds r1, 0x24 bl sub_80933A0 lsls r0, 24 cmp r0, 0 bne _08021098 movs r0, 0x2 bl sub_80119D4 movs r0, 0x6 bl sub_801FDA8 b _080210BE .align 2, 0 _08021094: .4byte gUnknown_203B27C _08021098: ldr r0, _080210B4 bl sub_8011988 ldr r1, [r4] ldr r0, [r1, 0x18] adds r1, 0x24 bl sub_80934B0 ldr r1, [r4] strb r0, [r1, 0x14] movs r0, 0x22 bl sub_801FDA8 b _080210BE .align 2, 0 _080210B4: .4byte 0x00000133 _080210B8: movs r0, 0x21 bl sub_801FDA8 _080210BE: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_8020EB4 thumb_func_start sub_80210C8 sub_80210C8: push {lr} bl sub_801F890 cmp r0, 0x1 bls _080210E0 cmp r0, 0x3 bhi _080210E0 bl sub_801F8D0 movs r0, 0x1F bl sub_801FDA8 _080210E0: pop {r0} bx r0 thumb_func_end sub_80210C8 thumb_func_start sub_80210E4 sub_80210E4: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802112A ldr r0, [sp] cmp r0, 0x10 beq _08021108 cmp r0, 0x10 bgt _08021102 cmp r0, 0x1 beq _08021124 b _0802112A _08021102: cmp r0, 0x11 beq _08021124 b _0802112A _08021108: ldr r0, _08021120 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x24 ldr r1, [r1, 0x18] bl sub_8093CF8 movs r0, 0x23 bl sub_801FDA8 b _0802112A .align 2, 0 _08021120: .4byte gUnknown_203B27C _08021124: movs r0, 0x1F bl sub_801FDA8 _0802112A: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80210E4 thumb_func_start sub_8021130 sub_8021130: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08021148 ldr r0, _08021150 ldr r0, [r0] ldr r0, [r0, 0x8] bl sub_801FDA8 _08021148: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _08021150: .4byte gUnknown_203B27C thumb_func_end sub_8021130 thumb_func_start sub_8021154 sub_8021154: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0x4 bne _0802116C ldr r0, _08021174 ldr r0, [r0] ldr r0, [r0, 0x8] bl sub_801FDA8 _0802116C: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _08021174: .4byte gUnknown_203B27C thumb_func_end sub_8021154 thumb_func_start sub_8021178 sub_8021178: push {lr} mov r12, r4 ldr r4, _08021198 add sp, r4 mov r4, r12 ldr r0, _0802119C ldr r0, [r0] ldr r1, [r0, 0x10] mov r0, sp bl sub_808E218 cmp r0, 0 beq _080211A0 movs r0, 0 b _080211A2 .align 2, 0 _08021198: .4byte 0xfffffcc0 _0802119C: .4byte gUnknown_203B27C _080211A0: movs r0, 0x1 _080211A2: movs r3, 0xD0 lsls r3, 2 add sp, r3 pop {r1} bx r1 thumb_func_end sub_8021178 thumb_func_start sub_80211AC sub_80211AC: push {r4-r6,lr} adds r4, r0, 0 adds r6, r1, 0 bl sub_8021700 lsls r0, 24 cmp r0, 0 beq _080211C0 movs r0, 0 b _08021258 _080211C0: ldr r5, _08021260 movs r0, 0xE0 movs r1, 0x8 bl MemoryAlloc str r0, [r5] str r4, [r0, 0x3C] str r6, [r0, 0x74] lsls r1, r6, 1 adds r1, r6 lsls r1, 3 adds r1, 0x7C adds r1, r0, r1 str r1, [r0, 0x78] adds r0, 0x7C bl sub_8006518 ldr r1, [r5] ldr r2, [r1, 0x74] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, 0x7C ldr r0, _08021264 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldr r0, [r5] ldr r1, [r0, 0x78] adds r0, 0xDC str r0, [r1, 0x14] bl sub_8004914 ldr r0, [r5] adds r0, 0x7C movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, [r5] adds r4, 0x40 bl sub_8021664 adds r1, r0, 0 adds r0, r4, 0 movs r2, 0xA adds r3, r6, 0 bl sub_8013818 ldr r0, _08021268 ldr r2, [r5] ldr r1, [r0] ldr r0, [r2, 0x3C] cmp r1, r0 bne _0802124E ldr r0, _0802126C ldrh r1, [r0] adds r0, r2, 0 adds r0, 0x58 strh r1, [r0] ldr r0, _08021270 ldrh r0, [r0] adds r1, r2, 0 adds r1, 0x5E strh r0, [r1] adds r0, r2, 0 adds r0, 0x40 bl sub_8013984 _0802124E: bl sub_8021410 bl sub_8021494 movs r0, 0x1 _08021258: pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08021260: .4byte gUnknown_203B280 _08021264: .4byte gUnknown_80DC47C _08021268: .4byte gUnknown_203B284 _0802126C: .4byte gUnknown_203B288 _08021270: .4byte gUnknown_203B28A thumb_func_end sub_80211AC thumb_func_start sub_8021274 sub_8021274: push {r4,lr} lsls r0, 24 cmp r0, 0 bne _08021290 ldr r0, _0802128C ldr r0, [r0] adds r0, 0x40 bl sub_8013660 movs r0, 0 b _08021326 .align 2, 0 _0802128C: .4byte gUnknown_203B280 _08021290: ldr r4, _080212A8 ldr r0, [r4] adds r0, 0x40 bl GetKeyPress cmp r0, 0x2 beq _080212B2 cmp r0, 0x2 bgt _080212AC cmp r0, 0x1 beq _080212BC b _08021300 .align 2, 0 _080212A8: .4byte gUnknown_203B280 _080212AC: cmp r0, 0x4 beq _080212F6 b _08021300 _080212B2: movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 b _08021326 _080212BC: ldr r0, [r4] ldr r0, [r0, 0x3C] cmp r0, 0x2 bne _080212EC bl sub_802132C lsls r0, 24 lsrs r0, 24 bl sub_8092544 ldr r1, _080212E8 ldr r1, [r1] movs r2, 0x98 lsls r2, 2 adds r1, r2 ldr r1, [r1] cmp r0, r1 ble _080212EC movs r0, 0x2 bl sub_80119D4 b _080212F2 .align 2, 0 _080212E8: .4byte gUnknown_203B460 _080212EC: movs r0, 0 bl sub_80119D4 _080212F2: movs r0, 0x3 b _08021326 _080212F6: movs r0, 0x4 bl sub_80119D4 movs r0, 0x4 b _08021326 _08021300: ldr r0, _08021318 ldr r0, [r0] adds r0, 0x40 movs r1, 0x1 bl sub_80138B8 lsls r0, 24 cmp r0, 0 bne _0802131C movs r0, 0 b _08021326 .align 2, 0 _08021318: .4byte gUnknown_203B280 _0802131C: bl sub_8021410 bl sub_8021494 movs r0, 0x1 _08021326: pop {r4} pop {r1} bx r1 thumb_func_end sub_8021274 thumb_func_start sub_802132C sub_802132C: ldr r0, _08021350 ldr r2, [r0] adds r0, r2, 0 adds r0, 0x5E movs r3, 0 ldrsh r1, [r0, r3] subs r0, 0x2 movs r3, 0 ldrsh r0, [r0, r3] muls r0, r1 adds r1, r2, 0 adds r1, 0x58 movs r3, 0 ldrsh r1, [r1, r3] adds r0, r1 adds r0, r2, r0 ldrb r0, [r0] bx lr .align 2, 0 _08021350: .4byte gUnknown_203B280 thumb_func_end sub_802132C thumb_func_start sub_8021354 sub_8021354: push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8004914 ldr r5, _0802139C ldr r0, [r5] adds r0, 0x7C movs r1, 0 movs r2, 0 bl sub_800641C bl sub_8021664 adds r1, r0, 0 ldr r0, [r5] adds r2, r0, 0 adds r2, 0x62 strh r1, [r2] adds r0, 0x40 bl sub_8013984 bl sub_8021410 bl sub_8021494 cmp r4, 0 beq _08021396 ldr r0, [r5] adds r0, 0x40 bl AddMenuCursorSprite _08021396: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802139C: .4byte gUnknown_203B280 thumb_func_end sub_8021354 thumb_func_start sub_80213A0 sub_80213A0: push {r4,r5,lr} ldr r4, _080213FC ldr r2, [r4] cmp r2, 0 beq _080213F4 ldr r1, _08021400 ldr r0, [r2, 0x3C] str r0, [r1] ldr r1, _08021404 adds r0, r2, 0 adds r0, 0x58 ldrh r0, [r0] strh r0, [r1] ldr r1, _08021408 adds r0, r2, 0 adds r0, 0x5E ldrh r0, [r0] strh r0, [r1] ldr r0, [r2, 0x74] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 adds r1, 0x7C ldr r0, _0802140C ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} bl sub_8004914 ldr r0, [r4] adds r0, 0x7C movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _080213F4: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080213FC: .4byte gUnknown_203B280 _08021400: .4byte gUnknown_203B284 _08021404: .4byte gUnknown_203B288 _08021408: .4byte gUnknown_203B28A _0802140C: .4byte gUnknown_80DC464 thumb_func_end sub_80213A0 thumb_func_start sub_8021410 sub_8021410: push {r4,lr} ldr r4, _08021490 ldr r0, [r4] adds r0, 0xDC movs r2, 0 movs r1, 0x1 strb r1, [r0] ldr r0, [r4] adds r0, 0xDD strb r2, [r0] ldr r0, [r4] adds r0, 0xDE movs r1, 0xC strb r1, [r0] ldr r0, [r4] adds r0, 0xDF strb r2, [r0] bl sub_8004914 ldr r0, [r4] adds r0, 0x7C movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] adds r0, 0x5A movs r1, 0 ldrsh r0, [r0, r1] movs r1, 0xC bl sub_80095E4 adds r0, 0x2 lsls r0, 16 ldr r2, [r4] ldr r3, [r2, 0x74] lsls r1, r3, 1 adds r1, r3 lsls r1, 3 adds r1, r2, r1 adds r1, 0x8A asrs r3, r0, 16 lsrs r0, 16 strh r0, [r1] ldr r1, [r2, 0x74] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r2, r0 adds r3, 0x2 adds r2, 0x8C strh r3, [r2] bl sub_8004914 ldr r0, [r4] adds r0, 0x7C movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4} pop {r0} bx r0 .align 2, 0 _08021490: .4byte gUnknown_203B280 thumb_func_end sub_8021410 thumb_func_start sub_8021494 sub_8021494: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xA8 ldr r4, _08021568 ldr r0, [r4] ldr r0, [r0, 0x74] bl sub_8008C54 ldr r0, [r4] ldr r0, [r0, 0x74] bl sub_80073B8 ldr r2, _0802156C ldr r0, [r4] ldr r3, [r0, 0x74] movs r0, 0 str r0, [sp] movs r0, 0xA movs r1, 0 bl xxx_call_draw_string ldr r3, [r4] adds r0, r3, 0 adds r0, 0xDE ldrb r0, [r0] lsls r0, 3 adds r0, 0x4 adds r1, r3, 0 adds r1, 0x5E movs r5, 0 ldrsh r2, [r1, r5] adds r2, 0x1 movs r1, 0x7 str r1, [sp] ldr r1, [r3, 0x74] str r1, [sp, 0x4] movs r1, 0 movs r3, 0x1 bl sub_8012BC4 movs r0, 0 mov r9, r0 ldr r0, [r4] adds r0, 0x5A movs r1, 0 ldrsh r0, [r0, r1] cmp r9, r0 blt _080214FC b _08021646 _080214FC: mov r8, r4 add r2, sp, 0x58 mov r10, r2 _08021502: mov r3, r8 ldr r2, [r3] adds r0, r2, 0 adds r0, 0x5E movs r5, 0 ldrsh r1, [r0, r5] subs r0, 0x2 movs r3, 0 ldrsh r0, [r0, r3] muls r0, r1 add r0, r9 adds r0, r2, r0 ldrb r5, [r0] adds r7, r5, 0 ldr r6, [r2, 0x3C] cmp r6, 0x2 bne _0802159C add r0, sp, 0x8 adds r1, r5, 0 movs r2, 0x1 bl sub_8092578 adds r0, r5, 0 bl sub_8092544 ldr r1, _08021570 ldr r1, [r1] movs r5, 0x98 lsls r5, 2 adds r1, r5 ldr r1, [r1] cmp r0, r1 bgt _08021574 mov r1, r8 ldr r0, [r1] adds r0, 0x40 mov r1, r9 bl sub_8013800 adds r1, r0, 0 mov r2, r8 ldr r0, [r2] ldr r3, [r0, 0x74] movs r0, 0 str r0, [sp] movs r0, 0x8 add r2, sp, 0x8 bl xxx_call_draw_string b _08021632 .align 2, 0 _08021568: .4byte gUnknown_203B280 _0802156C: .4byte gUnknown_80DC494 _08021570: .4byte gUnknown_203B460 _08021574: mov r0, r10 ldr r1, _08021598 add r2, sp, 0x8 bl sub_800D158 mov r3, r8 ldr r0, [r3] adds r0, 0x40 mov r1, r9 bl sub_8013800 adds r1, r0, 0 mov r5, r8 ldr r0, [r5] ldr r3, [r0, 0x74] movs r0, 0 str r0, [sp] b _080215FE .align 2, 0 _08021598: .4byte gUnknown_80DC4A4 _0802159C: cmp r6, 0 bne _0802160C ldr r0, _080215D4 ldr r0, [r0] adds r0, r5 ldrb r0, [r0] cmp r0, 0x1 bne _080215D8 adds r0, r2, 0 adds r0, 0x40 mov r1, r9 bl sub_8013800 adds r4, r0, 0 adds r0, r5, 0 bl sub_8092524 adds r2, r0, 0 mov r1, r8 ldr r0, [r1] ldr r3, [r0, 0x74] str r6, [sp] movs r0, 0x8 adds r1, r4, 0 bl xxx_call_draw_string b _08021632 .align 2, 0 _080215D4: .4byte gUnknown_203B468 _080215D8: adds r0, r5, 0 bl sub_8092524 adds r2, r0, 0 mov r0, r10 ldr r1, _08021608 bl sub_800D158 mov r2, r8 ldr r0, [r2] adds r0, 0x40 mov r1, r9 bl sub_8013800 adds r1, r0, 0 mov r3, r8 ldr r0, [r3] ldr r3, [r0, 0x74] str r6, [sp] _080215FE: movs r0, 0x8 mov r2, r10 bl xxx_call_draw_string b _08021632 .align 2, 0 _08021608: .4byte gUnknown_80DC4AC _0802160C: adds r0, r2, 0 adds r0, 0x40 mov r1, r9 bl sub_8013800 adds r4, r0, 0 adds r0, r7, 0 bl sub_8092524 adds r2, r0, 0 mov r5, r8 ldr r0, [r5] ldr r3, [r0, 0x74] movs r0, 0 str r0, [sp] movs r0, 0x8 adds r1, r4, 0 bl xxx_call_draw_string _08021632: movs r0, 0x1 add r9, r0 mov r1, r8 ldr r0, [r1] adds r0, 0x5A movs r2, 0 ldrsh r0, [r0, r2] cmp r9, r0 bge _08021646 b _08021502 _08021646: ldr r0, _08021660 ldr r0, [r0] ldr r0, [r0, 0x74] bl sub_80073E0 add sp, 0xA8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08021660: .4byte gUnknown_203B280 thumb_func_end sub_8021494 thumb_func_start sub_8021664 sub_8021664: push {r4-r6,lr} movs r5, 0 ldr r1, _0802167C ldr r0, [r1] ldr r0, [r0, 0x3C] cmp r0, 0x1 beq _08021692 cmp r0, 0x1 bcc _08021680 cmp r0, 0x2 beq _080216B4 b _080216F2 .align 2, 0 _0802167C: .4byte gUnknown_203B280 _08021680: movs r4, 0x1 _08021682: ldr r0, [r1] adds r0, r5 strb r4, [r0] adds r5, 0x1 adds r4, 0x1 cmp r4, 0x39 ble _08021682 b _080216F2 _08021692: movs r4, 0x1 ldr r2, _080216B0 _08021696: ldr r0, [r2] adds r0, r4 ldrb r0, [r0] cmp r0, 0 beq _080216A8 ldr r0, [r1] adds r0, r5 strb r4, [r0] adds r5, 0x1 _080216A8: adds r4, 0x1 cmp r4, 0x39 ble _08021696 b _080216F2 .align 2, 0 _080216B0: .4byte gUnknown_203B468 _080216B4: movs r4, 0x1 adds r6, r1, 0 _080216B8: ldr r0, _080216FC ldr r0, [r0] adds r0, r4 ldrb r0, [r0] cmp r0, 0 bne _080216EC lsls r0, r4, 24 lsrs r0, 24 bl sub_8092534 lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _080216E4 cmp r0, 0x1 bne _080216EC movs r0, 0x6 bl sub_80023E4 lsls r0, 24 cmp r0, 0 beq _080216EC _080216E4: ldr r0, [r6] adds r0, r5 strb r4, [r0] adds r5, 0x1 _080216EC: adds r4, 0x1 cmp r4, 0x39 ble _080216B8 _080216F2: adds r0, r5, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _080216FC: .4byte gUnknown_203B468 thumb_func_end sub_8021664 thumb_func_start sub_8021700 sub_8021700: push {r4,lr} cmp r0, 0x1 beq _08021710 cmp r0, 0x1 bcc _08021754 cmp r0, 0x2 beq _0802172C b _0802176A _08021710: movs r4, 0x1 ldr r0, _08021728 ldr r1, [r0] _08021716: adds r0, r1, r4 ldrb r0, [r0] cmp r0, 0 bne _08021754 adds r4, 0x1 cmp r4, 0x39 ble _08021716 b _0802176A .align 2, 0 _08021728: .4byte gUnknown_203B468 _0802172C: movs r4, 0x1 _0802172E: ldr r0, _08021750 ldr r0, [r0] adds r0, r4 ldrb r0, [r0] cmp r0, 0 bne _08021764 lsls r0, r4, 24 lsrs r0, 24 bl sub_8092534 lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _08021754 cmp r0, 0x1 beq _08021758 b _08021764 .align 2, 0 _08021750: .4byte gUnknown_203B468 _08021754: movs r0, 0 b _0802176C _08021758: movs r0, 0x6 bl sub_80023E4 lsls r0, 24 cmp r0, 0 bne _08021754 _08021764: adds r4, 0x1 cmp r4, 0x39 ble _0802172E _0802176A: movs r0, 0x1 _0802176C: pop {r4} pop {r1} bx r1 thumb_func_end sub_8021700 thumb_func_start sub_8021774 sub_8021774: push {r4-r6,lr} mov r6, r8 push {r6} adds r4, r0, 0 adds r5, r1, 0 mov r8, r2 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 ldr r6, _080217E4 movs r0, 0xE0 movs r1, 0x8 bl MemoryAlloc str r0, [r6] strb r4, [r0, 0xC] ldr r0, [r6] strb r5, [r0, 0xD] ldr r0, [r6] bl sub_801317C bl sub_8021A60 ldr r0, [r6] mov r1, r8 str r1, [r0, 0x74] lsls r1, 1 add r1, r8 lsls r1, 3 adds r1, 0x7C adds r1, r0, r1 str r1, [r0, 0x78] adds r0, 0x7C bl sub_8006518 ldr r1, [r6] ldr r2, [r1, 0x74] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, 0x7C ldr r0, _080217E8 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} bl sub_8021820 movs r0, 0x1 pop {r3} mov r8, r3 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _080217E4: .4byte gUnknown_203B28C _080217E8: .4byte gUnknown_80DC4D8 thumb_func_end sub_8021774 thumb_func_start sub_80217EC sub_80217EC: push {lr} ldr r0, _0802180C ldr r0, [r0] ldr r1, [r0, 0x74] bl sub_8012A64 cmp r0, 0x1 beq _08021810 cmp r0, 0x2 bne _0802181A movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 b _0802181C .align 2, 0 _0802180C: .4byte gUnknown_203B28C _08021810: movs r0, 0 bl sub_80119D4 movs r0, 0x3 b _0802181C _0802181A: movs r0, 0 _0802181C: pop {r1} bx r1 thumb_func_end sub_80217EC thumb_func_start sub_8021820 sub_8021820: push {lr} bl sub_8021878 bl sub_8021894 pop {r0} bx r0 thumb_func_end sub_8021820 thumb_func_start sub_8021830 sub_8021830: push {r4,r5,lr} ldr r4, _08021870 ldr r2, [r4] cmp r2, 0 beq _0802186A ldr r0, [r2, 0x74] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 adds r1, 0x7C ldr r0, _08021874 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} bl sub_8004914 ldr r0, [r4] adds r0, 0x7C movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _0802186A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08021870: .4byte gUnknown_203B28C _08021874: .4byte gUnknown_80DC4BC thumb_func_end sub_8021830 thumb_func_start sub_8021878 sub_8021878: push {lr} bl sub_8004914 ldr r0, _08021890 ldr r0, [r0] adds r0, 0x7C movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r0} bx r0 .align 2, 0 _08021890: .4byte gUnknown_203B28C thumb_func_end sub_8021878 thumb_func_start sub_8021894 sub_8021894: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x168 ldr r4, _080218F8 ldr r0, [r4] ldr r0, [r0, 0x74] bl sub_80073B8 ldr r0, [r4] ldrb r1, [r0, 0xC] add r0, sp, 0x4 movs r2, 0 bl sub_8092578 ldr r0, [r4] ldr r3, [r0, 0x74] movs r5, 0 str r5, [sp] movs r0, 0x14 movs r1, 0 add r2, sp, 0x4 bl xxx_call_draw_string ldr r0, [r4] ldrb r0, [r0, 0xC] bl sub_80925DC adds r2, r0, 0 ldr r0, [r4] ldr r3, [r0, 0x74] str r5, [sp] movs r0, 0xA movs r1, 0x14 bl xxx_call_draw_string ldr r4, [r4] ldrb r0, [r4, 0xD] cmp r0, 0 beq _08021900 ldr r2, _080218FC ldr r3, [r4, 0x74] str r5, [sp] movs r0, 0x20 movs r1, 0x3C bl xxx_call_draw_string b _0802190E .align 2, 0 _080218F8: .4byte gUnknown_203B28C _080218FC: .4byte gUnknown_80DC4F0 _08021900: ldr r2, _0802193C ldr r3, [r4, 0x74] str r0, [sp] movs r0, 0x20 movs r1, 0x3C bl xxx_call_draw_string _0802190E: ldr r4, _08021940 ldr r0, [r4] ldr r0, [r0, 0x74] movs r5, 0x4 str r5, [sp] movs r1, 0x4 movs r2, 0x40 movs r3, 0x14 bl sub_800792C ldr r4, [r4] ldrb r0, [r4, 0xD] cmp r0, 0 beq _08021944 ldr r0, [r4, 0x74] str r5, [sp] movs r1, 0xB8 movs r2, 0x40 movs r3, 0x14 bl sub_800792C b _08021952 .align 2, 0 _0802193C: .4byte gUnknown_80DC518 _08021940: .4byte gUnknown_203B28C _08021944: ldr r0, [r4, 0x74] str r5, [sp] movs r1, 0x5E movs r2, 0x40 movs r3, 0x6E bl sub_800792C _08021952: ldr r5, _080219E8 ldr r0, [r5] ldr r0, [r0, 0x74] movs r4, 0x4 str r4, [sp] movs r1, 0x4 movs r2, 0x82 movs r3, 0xC8 bl sub_800792C ldr r0, [r5] ldr r0, [r0, 0x74] str r4, [sp] movs r1, 0x3 movs r2, 0x40 movs r3, 0x43 bl sub_8007A78 ldr r0, [r5] ldr r0, [r0, 0x74] str r4, [sp] movs r1, 0xCC movs r2, 0x40 movs r3, 0x43 bl sub_8007A78 movs r6, 0 ldr r0, [r5] ldr r0, [r0, 0x70] cmp r6, r0 bge _08021A40 add r7, sp, 0x104 mov r8, r5 mov r9, r6 _08021996: adds r0, r6, 0 movs r1, 0x3 bl __modsi3 lsls r1, r0, 6 subs r1, r0 adds r5, r1, 0x7 adds r0, r6, 0 movs r1, 0x3 bl __divsi3 lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r4, r1, 0 adds r4, 0x47 mov r1, r8 ldr r0, [r1] lsls r1, r6, 1 adds r0, 0xE adds r0, r1 movs r2, 0 ldrsh r1, [r0, r2] adds r0, r7, 0 bl sub_808D930 mov r0, r8 ldr r3, [r0] lsls r1, r6, 2 adds r0, r3, 0 adds r0, 0x30 adds r0, r1 ldr r0, [r0] cmp r0, 0x1 beq _08021A04 cmp r0, 0x1 bcc _080219EC cmp r0, 0x2 beq _08021A16 b _08021A34 .align 2, 0 _080219E8: .4byte gUnknown_203B28C _080219EC: ldr r0, _08021A00 ldr r2, [r0] ldr r3, [r3, 0x74] mov r1, r9 str r1, [sp] adds r0, r5, 0 adds r1, r4, 0 bl xxx_call_draw_string b _08021A34 .align 2, 0 _08021A00: .4byte gUnknown_80D49BC _08021A04: ldr r3, [r3, 0x74] mov r2, r9 str r2, [sp] adds r0, r5, 0 adds r1, r4, 0 adds r2, r7, 0 bl xxx_call_draw_string b _08021A34 _08021A16: add r0, sp, 0x4 ldr r1, _08021A58 adds r2, r7, 0 bl sub_800D158 mov r1, r8 ldr r0, [r1] ldr r3, [r0, 0x74] mov r2, r9 str r2, [sp] adds r0, r5, 0 adds r1, r4, 0 add r2, sp, 0x4 bl xxx_call_draw_string _08021A34: adds r6, 0x1 mov r1, r8 ldr r0, [r1] ldr r0, [r0, 0x70] cmp r6, r0 blt _08021996 _08021A40: ldr r0, _08021A5C ldr r0, [r0] ldr r0, [r0, 0x74] bl sub_80073E0 add sp, 0x168 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08021A58: .4byte gUnknown_80DC524 _08021A5C: .4byte gUnknown_203B28C thumb_func_end sub_8021894 thumb_func_start sub_8021A60 sub_8021A60: push {r4-r7,lr} ldr r2, _08021B4C ldr r1, [r2] movs r0, 0 str r0, [r1, 0x70] movs r6, 0 adds r4, r2, 0 movs r3, 0 _08021A70: ldr r1, [r4] lsls r2, r6, 1 adds r0, r1, 0 adds r0, 0xE adds r0, r2 strh r3, [r0] lsls r0, r6, 2 adds r1, 0x30 adds r1, r0 str r3, [r1] adds r6, 0x1 cmp r6, 0xF ble _08021A70 movs r6, 0 ldr r7, _08021B4C _08021A8E: lsls r0, r6, 16 asrs r5, r0, 16 ldr r4, [r7] adds r0, r5, 0 bl sub_808DBA8 ldrb r1, [r4, 0xC] lsls r0, 24 lsrs r0, 24 cmp r1, r0 bne _08021AC4 adds r0, r5, 0 bl sub_808E858 lsls r0, 16 asrs r0, 16 cmp r5, r0 bne _08021AC4 ldr r3, [r7] ldr r1, [r3, 0x70] lsls r2, r1, 1 adds r0, r3, 0 adds r0, 0xE adds r0, r2 strh r5, [r0] adds r1, 0x1 str r1, [r3, 0x70] _08021AC4: adds r6, 0x1 ldr r0, _08021B50 cmp r6, r0 ble _08021A8E movs r6, 0 _08021ACE: lsls r0, r6, 16 asrs r4, r0, 16 adds r0, r4, 0 bl sub_8098134 lsls r0, 24 cmp r0, 0 beq _08021AFC adds r0, r4, 0 bl sub_8021B58 adds r2, r0, 0 movs r0, 0x1 negs r0, r0 cmp r2, r0 beq _08021AFC ldr r0, _08021B4C ldr r1, [r0] lsls r0, r2, 2 adds r1, 0x30 adds r1, r0 movs r0, 0x1 str r0, [r1] _08021AFC: adds r6, 0x1 ldr r0, _08021B50 cmp r6, r0 ble _08021ACE movs r6, 0 ldr r4, _08021B54 _08021B08: movs r0, 0x58 adds r1, r6, 0 muls r1, r0 ldr r0, [r4] adds r2, r0, r1 ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08021B3C movs r1, 0x8 ldrsh r0, [r2, r1] bl sub_8021B58 adds r2, r0, 0 movs r0, 0x1 negs r0, r0 cmp r2, r0 beq _08021B3C ldr r0, _08021B4C ldr r1, [r0] lsls r0, r2, 2 adds r1, 0x30 adds r1, r0 movs r0, 0x2 str r0, [r1] _08021B3C: adds r6, 0x1 movs r0, 0xCE lsls r0, 1 cmp r6, r0 ble _08021B08 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08021B4C: .4byte gUnknown_203B28C _08021B50: .4byte 0x000001a7 _08021B54: .4byte gUnknown_203B45C thumb_func_end sub_8021A60 thumb_func_start sub_8021B58 sub_8021B58: push {r4,r5,lr} lsls r0, 16 asrs r0, 16 bl sub_808E858 lsls r0, 16 asrs r4, r0, 16 movs r2, 0 ldr r0, _08021B84 ldr r0, [r0] ldr r1, [r0, 0x70] cmp r2, r1 bge _08021B90 adds r3, r1, 0 adds r1, r0, 0 adds r1, 0xE _08021B78: movs r5, 0 ldrsh r0, [r1, r5] cmp r4, r0 bne _08021B88 adds r0, r2, 0 b _08021B94 .align 2, 0 _08021B84: .4byte gUnknown_203B28C _08021B88: adds r1, 0x2 adds r2, 0x1 cmp r2, r3 blt _08021B78 _08021B90: movs r0, 0x1 negs r0, r0 _08021B94: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8021B58 thumb_func_start sub_8021B9C sub_8021B9C: push {r4-r6,lr} adds r4, r0, 0 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r5, _08021BF8 movs r0, 0x9C lsls r0, 1 movs r1, 0x8 bl MemoryAlloc str r0, [r5] movs r6, 0 str r6, [r0, 0x14] str r6, [r0, 0x18] str r4, [r0] ldr r0, _08021BFC movs r1, 0x28 bl sub_808D8E0 ldr r4, _08021C00 adds r0, r4, 0 movs r1, 0x28 bl sub_808D8E0 movs r0, 0x28 bl sub_808D994 adds r1, r0, 0 subs r4, 0x50 adds r0, r4, 0 bl strcpy ldr r5, [r5] ldr r0, [r5] cmp r0, 0x1 bne _08021C04 adds r0, r5, 0 adds r0, 0xCC str r6, [r0] b _08021C0E .align 2, 0 _08021BF8: .4byte gUnknown_203B290 _08021BFC: .4byte gUnknown_202E5D8 _08021C00: .4byte gUnknown_202E1C8 _08021C04: adds r1, r5, 0 adds r1, 0xCC adds r0, r5, 0 adds r0, 0xBC str r0, [r1] _08021C0E: movs r0, 0x28 bl sub_808DDD0 ldr r2, _08021C58 ldr r3, [r2] adds r1, r3, 0 adds r1, 0xBC str r0, [r1] adds r1, 0x4 ldr r0, [r0, 0x4] str r0, [r1] adds r0, r3, 0 adds r0, 0xC8 movs r1, 0 strb r1, [r0] ldr r0, [r2] adds r0, 0xC9 strb r1, [r0] ldr r0, [r2] adds r0, 0xCA strb r1, [r0] ldr r1, [r2] adds r2, r1, 0 adds r2, 0xC4 movs r0, 0x2 strh r0, [r2] adds r1, 0xC6 movs r0, 0x8 strh r0, [r1] movs r0, 0 bl sub_8021D44 movs r0, 0x1 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08021C58: .4byte gUnknown_203B290 thumb_func_end sub_8021B9C thumb_func_start sub_8021C5C sub_8021C5C: push {lr} ldr r0, _08021C74 ldr r0, [r0] ldr r0, [r0, 0x4] cmp r0, 0x17 bhi _08021D10 lsls r0, 2 ldr r1, _08021C78 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08021C74: .4byte gUnknown_203B290 _08021C78: .4byte _08021C7C .align 2, 0 _08021C7C: .4byte _08021CDC .4byte _08021CDC .4byte _08021D10 .4byte _08021D10 .4byte _08021D0C .4byte _08021D10 .4byte _08021D10 .4byte _08021D10 .4byte _08021D10 .4byte _08021CE2 .4byte _08021CE2 .4byte _08021CE8 .4byte _08021D10 .4byte _08021CF4 .4byte _08021CFA .4byte _08021D10 .4byte _08021D00 .4byte _08021CEE .4byte _08021D10 .4byte _08021D10 .4byte _08021D10 .4byte _08021D10 .4byte _08021D06 .4byte _08021D06 _08021CDC: bl sub_8022460 b _08021D14 _08021CE2: bl sub_8022538 b _08021D14 _08021CE8: bl sub_80225C8 b _08021D14 _08021CEE: bl sub_80224D4 b _08021D14 _08021CF4: bl sub_80226F0 b _08021D14 _08021CFA: bl sub_8022790 b _08021D14 _08021D00: bl sub_8022668 b _08021D14 _08021D06: bl sub_8022684 b _08021D14 _08021D0C: movs r0, 0x3 b _08021D16 _08021D10: bl sub_80226CC _08021D14: movs r0, 0 _08021D16: pop {r1} bx r1 thumb_func_end sub_8021C5C thumb_func_start sub_8021D1C sub_8021D1C: push {r4,lr} ldr r4, _08021D40 ldr r0, [r4] cmp r0, 0 beq _08021D38 adds r0, 0xBC ldr r0, [r0] bl CloseFile ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _08021D38: pop {r4} pop {r0} bx r0 .align 2, 0 _08021D40: .4byte gUnknown_203B290 thumb_func_end sub_8021D1C thumb_func_start sub_8021D44 sub_8021D44: push {lr} ldr r1, _08021D58 ldr r1, [r1] str r0, [r1, 0x4] bl sub_8021D5C bl sub_8021E0C pop {r0} bx r0 .align 2, 0 _08021D58: .4byte gUnknown_203B290 thumb_func_end sub_8021D44 thumb_func_start sub_8021D5C sub_8021D5C: push {r4-r7,lr} ldr r4, _08021D7C ldr r0, [r4] adds r0, 0xD0 bl sub_8006518 ldr r1, [r4] ldr r0, [r1, 0x4] cmp r0, 0x9 blt _08021DC8 cmp r0, 0xA ble _08021D80 cmp r0, 0xB beq _08021DB0 b _08021DC8 .align 2, 0 _08021D7C: .4byte gUnknown_203B290 _08021D80: ldr r2, _08021DA8 adds r1, 0xD0 adds r0, r2, 0 ldm r0!, {r3,r5,r6} stm r1!, {r3,r5,r6} ldm r0!, {r3,r5,r7} stm r1!, {r3,r5,r7} ldr r0, [r4] movs r6, 0x80 lsls r6, 1 adds r0, r6 ldm r2!, {r1,r3,r7} stm r0!, {r1,r3,r7} ldm r2!, {r5-r7} stm r0!, {r5-r7} ldr r1, [r4] adds r1, 0xE8 ldr r0, _08021DAC b _08021DB8 .align 2, 0 _08021DA8: .4byte gUnknown_80DC534 _08021DAC: .4byte gUnknown_80DC564 _08021DB0: movs r0, 0x80 lsls r0, 1 adds r1, r0 ldr r0, _08021DC4 _08021DB8: ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r5-r7} stm r1!, {r5-r7} b _08021DEC .align 2, 0 _08021DC4: .4byte gUnknown_80DC54C _08021DC8: ldr r0, _08021E04 mov r12, r0 ldr r4, _08021E08 movs r3, 0 movs r2, 0x3 _08021DD2: mov r5, r12 ldr r1, [r5] adds r1, r3 adds r1, 0xD0 adds r0, r4, 0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} adds r3, 0x18 subs r2, 0x1 cmp r2, 0 bge _08021DD2 _08021DEC: bl sub_8004914 ldr r0, _08021E04 ldr r0, [r0] adds r0, 0xD0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08021E04: .4byte gUnknown_203B290 _08021E08: .4byte gUnknown_80DC534 thumb_func_end sub_8021D5C thumb_func_start sub_8021E0C sub_8021E0C: push {r4,lr} sub sp, 0x20 ldr r1, _08021E28 ldr r0, [r1] ldr r0, [r0, 0x4] adds r4, r1, 0 cmp r0, 0x1C bls _08021E1E b _080222B6 _08021E1E: lsls r0, 2 ldr r1, _08021E2C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08021E28: .4byte gUnknown_203B290 _08021E2C: .4byte _08021E30 .align 2, 0 _08021E30: .4byte _08021EA4 .4byte _08021EC0 .4byte _08021F38 .4byte _08021F50 .4byte _080222B6 .4byte _08021F78 .4byte _08021F90 .4byte _08021F08 .4byte _08021F20 .4byte _08021FD8 .4byte _08021FE2 .4byte _08021FF0 .4byte _0802208E .4byte _080220B8 .4byte _080220D8 .4byte _080220EA .4byte _08022080 .4byte _08022024 .4byte _08021FA8 .4byte _08021FC0 .4byte _08022138 .4byte _08022150 .4byte _08022168 .4byte _08022176 .4byte _0802217E .4byte _08022238 .4byte _08022250 .4byte _08022268 .4byte _08022294 _08021EA4: bl sub_80222C8 ldr r2, _08021EB8 ldr r0, _08021EBC ldr r4, [r0] ldr r1, [r4] lsls r0, r1, 2 adds r0, r1 lsls r0, 4 b _08021ED4 .align 2, 0 _08021EB8: .4byte gUnknown_80D79A4 _08021EBC: .4byte gUnknown_203B290 _08021EC0: bl sub_80222C8 ldr r2, _08021F00 ldr r0, _08021F04 ldr r4, [r0] ldr r1, [r4] lsls r0, r1, 2 adds r0, r1 lsls r0, 4 adds r2, 0x4 _08021ED4: adds r0, r2 ldr r0, [r0] ldr r2, [r4, 0x14] adds r3, r4, 0 adds r3, 0x1C adds r1, r4, 0 adds r1, 0x5C str r1, [sp] movs r1, 0x4 str r1, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] adds r1, r4, 0 adds r1, 0xCC ldr r1, [r1] str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 bl sub_8014248 b _080222B6 .align 2, 0 _08021F00: .4byte gUnknown_80D79A4 _08021F04: .4byte gUnknown_203B290 _08021F08: ldr r3, [r4] movs r0, 0x9 str r0, [r3, 0x8] ldr r2, _08021F1C ldr r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 4 adds r2, 0xC b _0802227A .align 2, 0 _08021F1C: .4byte gUnknown_80D79A4 _08021F20: ldr r3, [r4] movs r0, 0xA str r0, [r3, 0x8] ldr r2, _08021F34 ldr r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 4 adds r2, 0x10 b _0802227A .align 2, 0 _08021F34: .4byte gUnknown_80D79A4 _08021F38: ldr r3, [r4] movs r0, 0x1 str r0, [r3, 0x8] ldr r2, _08021F4C ldr r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 4 adds r2, 0x4C b _0802227A .align 2, 0 _08021F4C: .4byte gUnknown_80D79A4 _08021F50: ldr r3, [r4] movs r0, 0x4 str r0, [r3, 0x8] ldr r2, _08021F70 ldr r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 4 adds r2, 0x8 adds r0, r2 ldr r0, [r0] adds r3, 0xCC ldr r2, [r3] ldr r3, _08021F74 b _08022284 .align 2, 0 _08021F70: .4byte gUnknown_80D79A4 _08021F74: .4byte 0x0000030d _08021F78: ldr r3, [r4] movs r0, 0x3 str r0, [r3, 0x8] ldr r2, _08021F8C ldr r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 4 adds r2, 0x20 b _0802227A .align 2, 0 _08021F8C: .4byte gUnknown_80D79A4 _08021F90: ldr r3, [r4] movs r0, 0xA str r0, [r3, 0x8] ldr r2, _08021FA4 ldr r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 4 adds r2, 0x24 b _0802227A .align 2, 0 _08021FA4: .4byte gUnknown_80D79A4 _08021FA8: ldr r3, [r4] movs r0, 0x3 str r0, [r3, 0x8] ldr r2, _08021FBC ldr r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 4 adds r2, 0x28 b _0802227A .align 2, 0 _08021FBC: .4byte gUnknown_80D79A4 _08021FC0: ldr r3, [r4] movs r0, 0xA str r0, [r3, 0x8] ldr r2, _08021FD4 ldr r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 4 adds r2, 0x2C b _0802227A .align 2, 0 _08021FD4: .4byte gUnknown_80D79A4 _08021FD8: movs r0, 0x2 movs r1, 0x3 bl sub_80211AC b _08021FE8 _08021FE2: movs r0, 0x1 bl sub_8021354 _08021FE8: movs r0, 0x1 bl sub_8016C40 b _080222B6 _08021FF0: bl sub_8021494 movs r0, 0x1 bl sub_8016C40 bl sub_8022380 ldr r0, _08022020 ldr r2, [r0] adds r0, r2, 0 adds r0, 0x6C adds r1, r2, 0 adds r1, 0x1C adds r3, r2, 0 adds r3, 0x5C ldr r2, [r2, 0x18] str r2, [sp] movs r2, 0x2 str r2, [sp, 0x4] movs r2, 0 bl sub_8012D60 b _080222B6 .align 2, 0 _08022020: .4byte gUnknown_203B290 _08022024: bl sub_8022420 ldr r0, _08022070 ldr r4, _08022074 ldr r1, [r4] ldrb r1, [r1, 0x10] movs r2, 0 bl sub_8092578 ldr r1, _08022078 ldr r4, [r4] ldr r0, [r4, 0xC] str r0, [r1] ldr r2, _0802207C ldr r1, [r4] lsls r0, r1, 2 adds r0, r1 lsls r0, 4 adds r2, 0x14 adds r0, r2 ldr r0, [r0] adds r3, r4, 0 adds r3, 0x1C movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] adds r4, 0xCC ldr r1, [r4] str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 movs r2, 0x5 bl sub_8014248 b _080222B6 .align 2, 0 _08022070: .4byte gUnknown_202E628 _08022074: .4byte gUnknown_203B290 _08022078: .4byte gUnknown_202DE30 _0802207C: .4byte gUnknown_80D79A4 _08022080: ldr r0, [r4] ldrb r0, [r0, 0x10] movs r1, 0 movs r2, 0x2 bl sub_8021774 b _080222B6 _0802208E: ldr r1, [r4] movs r0, 0xD str r0, [r1, 0x8] ldr r0, _080220B0 ldrb r1, [r1, 0x10] movs r2, 0 bl sub_8092578 ldr r2, _080220B4 ldr r3, [r4] ldr r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 4 adds r2, 0x18 b _0802227A .align 2, 0 _080220B0: .4byte gUnknown_202E628 _080220B4: .4byte gUnknown_80D79A4 _080220B8: ldr r1, [r4] movs r0, 0xE str r0, [r1, 0x8] ldr r0, _080220D4 bl sub_8011988 ldr r0, [r4] movs r1, 0x98 lsls r1, 1 adds r0, r1 movs r1, 0x1 str r1, [r0] b _080222B6 .align 2, 0 _080220D4: .4byte 0x0000025b _080220D8: ldr r0, [r4] movs r1, 0xF str r1, [r0, 0x8] movs r1, 0x9A lsls r1, 1 adds r0, r1 movs r1, 0x1E str r1, [r0] b _080222B6 _080220EA: movs r0, 0x2 bl sub_8021700 lsls r0, 24 cmp r0, 0 beq _08022108 bl sub_80213A0 ldr r0, _08022104 ldr r1, [r0] movs r0, 0x12 b _0802210E .align 2, 0 _08022104: .4byte gUnknown_203B290 _08022108: ldr r0, _08022130 ldr r1, [r0] movs r0, 0x8 _0802210E: str r0, [r1, 0x8] movs r0, 0xCE bl sub_8011988 ldr r3, _08022134 ldr r0, _08022130 ldr r2, [r0] ldr r1, [r2] lsls r0, r1, 2 adds r0, r1 lsls r0, 4 adds r3, 0x1C adds r0, r3 ldr r0, [r0] adds r2, 0xCC ldr r2, [r2] b _08022282 .align 2, 0 _08022130: .4byte gUnknown_203B290 _08022134: .4byte gUnknown_80D79A4 _08022138: ldr r3, [r4] movs r0, 0x16 str r0, [r3, 0x8] ldr r2, _0802214C ldr r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 4 adds r2, 0x30 b _0802227A .align 2, 0 _0802214C: .4byte gUnknown_80D79A4 _08022150: ldr r3, [r4] movs r0, 0x17 str r0, [r3, 0x8] ldr r2, _08022164 ldr r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 4 adds r2, 0x34 b _0802227A .align 2, 0 _08022164: .4byte gUnknown_80D79A4 _08022168: movs r0, 0 movs r1, 0x3 movs r2, 0 movs r3, 0xA bl sub_8023144 b _080222B6 _08022176: movs r0, 0x1 bl sub_8023354 b _080222B6 _0802217E: ldr r4, _080221A0 ldr r0, [r4] ldrb r0, [r0, 0x10] add r1, sp, 0x14 movs r2, 0 movs r3, 0 bl sub_8092638 add r0, sp, 0x14 ldrb r0, [r0, 0x4] cmp r0, 0 beq _080221A4 ldr r1, [r4] movs r0, 0x19 str r0, [r1, 0x8] b _080221FA .align 2, 0 _080221A0: .4byte gUnknown_203B290 _080221A4: ldr r0, [r4] ldrb r0, [r0, 0x10] bl sub_8092534 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 beq _080221E0 cmp r0, 0x2 bgt _080221BE cmp r0, 0x1 beq _080221C4 b _080221F0 _080221BE: cmp r0, 0x3 beq _080221E8 b _080221F0 _080221C4: movs r0, 0x6 bl sub_80023E4 lsls r0, 24 cmp r0, 0 beq _080221D8 ldr r1, [r4] movs r0, 0x15 str r0, [r1, 0x8] b _080221FA _080221D8: ldr r1, [r4] movs r0, 0x1A str r0, [r1, 0x8] b _080221FA _080221E0: ldr r1, [r4] movs r0, 0x1B str r0, [r1, 0x8] b _080221FA _080221E8: ldr r1, [r4] movs r0, 0x1C str r0, [r1, 0x8] b _080221FA _080221F0: ldr r2, _08022228 ldr r1, [r2] movs r0, 0x15 str r0, [r1, 0x8] adds r4, r2, 0 _080221FA: ldr r0, [r4] movs r1, 0x12 ldrsh r0, [r0, r1] bl sub_808D994 adds r1, r0, 0 ldr r0, _0802222C bl strcpy ldr r0, _08022230 ldr r1, [r4] ldrb r1, [r1, 0x10] movs r2, 0 bl sub_8092578 ldr r2, _08022234 ldr r3, [r4] ldr r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 4 adds r2, 0x38 b _0802227A .align 2, 0 _08022228: .4byte gUnknown_203B290 _0802222C: .4byte gUnknown_202DF98 _08022230: .4byte gUnknown_202E628 _08022234: .4byte gUnknown_80D79A4 _08022238: ldr r3, [r4] movs r0, 0x15 str r0, [r3, 0x8] ldr r2, _0802224C ldr r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 4 adds r2, 0x3C b _0802227A .align 2, 0 _0802224C: .4byte gUnknown_80D79A4 _08022250: ldr r3, [r4] movs r0, 0x15 str r0, [r3, 0x8] ldr r2, _08022264 ldr r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 4 adds r2, 0x40 b _0802227A .align 2, 0 _08022264: .4byte gUnknown_80D79A4 _08022268: ldr r3, [r4] movs r0, 0x15 str r0, [r3, 0x8] ldr r2, _0802228C ldr r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 4 adds r2, 0x44 _0802227A: adds r0, r2 ldr r0, [r0] adds r3, 0xCC ldr r2, [r3] _08022282: ldr r3, _08022290 _08022284: movs r1, 0 bl sub_80141B4 b _080222B6 .align 2, 0 _0802228C: .4byte gUnknown_80D79A4 _08022290: .4byte 0x0000010d _08022294: ldr r3, [r4] movs r0, 0x15 str r0, [r3, 0x8] ldr r2, _080222C0 ldr r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 4 adds r2, 0x48 adds r0, r2 ldr r0, [r0] adds r3, 0xCC ldr r2, [r3] ldr r3, _080222C4 movs r1, 0 bl sub_80141B4 _080222B6: add sp, 0x20 pop {r4} pop {r0} bx r0 .align 2, 0 _080222C0: .4byte gUnknown_80D79A4 _080222C4: .4byte 0x0000010d thumb_func_end sub_8021E0C thumb_func_start sub_80222C8 sub_80222C8: push {r4-r7,lr} ldr r4, _08022344 ldr r0, [r4] adds r0, 0x5C movs r1, 0 movs r2, 0x10 bl MemoryFill16 ldr r1, [r4] movs r5, 0 ldr r0, _08022348 ldr r0, [r0] str r0, [r1, 0x1C] adds r3, r1, 0 adds r3, 0x20 movs r0, 0x2 str r0, [r1, 0x20] movs r2, 0x1 ldr r0, _0802234C ldr r0, [r0] str r0, [r1, 0x24] movs r0, 0x3 str r0, [r1, 0x28] ldr r0, _08022350 ldr r0, [r0] str r0, [r1, 0x2C] movs r0, 0x4 str r0, [r1, 0x30] ldr r0, _08022354 ldr r0, [r0] str r0, [r1, 0x34] str r2, [r1, 0x38] movs r7, 0x4 str r5, [r1, 0x3C] str r2, [r3, 0x20] adds r6, r1, 0 adds r2, r6, 0 adds r2, 0x5C _08022314: ldrh r0, [r2] cmp r0, 0 bne _08022322 ldr r1, [r3] ldr r0, [r6, 0x14] cmp r1, r0 beq _0802237A _08022322: adds r3, 0x8 adds r2, 0x2 adds r5, 0x1 cmp r5, r7 blt _08022314 movs r5, 0 cmp r5, r7 bge _0802237A ldr r1, [r4] adds r0, r1, 0 adds r0, 0x5C ldrh r0, [r0] cmp r0, 0 bne _08022358 ldr r0, [r1, 0x20] str r0, [r1, 0x14] b _0802237A .align 2, 0 _08022344: .4byte gUnknown_203B290 _08022348: .4byte gUnknown_80D4978 _0802234C: .4byte gUnknown_80D499C _08022350: .4byte gUnknown_80D4970 _08022354: .4byte gUnknown_80D4934 _08022358: adds r5, 0x1 cmp r5, r7 bge _0802237A ldr r2, [r4] lsls r0, r5, 1 adds r1, r2, 0 adds r1, 0x5C adds r1, r0 ldrh r0, [r1] cmp r0, 0 bne _08022358 lsls r0, r5, 3 adds r1, r2, 0 adds r1, 0x20 adds r1, r0 ldr r0, [r1] str r0, [r2, 0x14] _0802237A: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80222C8 thumb_func_start sub_8022380 sub_8022380: push {r4-r7,lr} ldr r4, _080223EC ldr r0, [r4] adds r0, 0x5C movs r1, 0 movs r2, 0x10 bl MemoryFill16 ldr r3, [r4] movs r2, 0 ldr r0, _080223F0 ldr r0, [r0] str r0, [r3, 0x1C] movs r0, 0x2 str r0, [r3, 0x20] movs r1, 0x1 ldr r0, _080223F4 ldr r0, [r0] str r0, [r3, 0x24] movs r0, 0x4 str r0, [r3, 0x28] movs r6, 0x2 str r2, [r3, 0x2C] str r1, [r3, 0x30] movs r5, 0 mov r12, r3 adds r3, 0x20 mov r2, r12 adds r2, 0x5C _080223BA: ldrh r0, [r2] cmp r0, 0 bne _080223CA ldr r1, [r3] mov r7, r12 ldr r0, [r7, 0x18] cmp r1, r0 beq _0802241A _080223CA: adds r3, 0x8 adds r2, 0x2 adds r5, 0x1 cmp r5, r6 blt _080223BA movs r5, 0 cmp r5, r6 bge _0802241A ldr r1, [r4] adds r0, r1, 0 adds r0, 0x5C ldrh r0, [r0] cmp r0, 0 bne _080223F8 ldr r0, [r1, 0x20] str r0, [r1, 0x18] b _0802241A .align 2, 0 _080223EC: .4byte gUnknown_203B290 _080223F0: .4byte gUnknown_80D4978 _080223F4: .4byte gUnknown_80D4970 _080223F8: adds r5, 0x1 cmp r5, r6 bge _0802241A ldr r2, [r4] lsls r0, r5, 1 adds r1, r2, 0 adds r1, 0x5C adds r1, r0 ldrh r0, [r1] cmp r0, 0 bne _080223F8 lsls r0, r5, 3 adds r1, r2, 0 adds r1, 0x20 adds r1, r0 ldr r0, [r1] str r0, [r2, 0x18] _0802241A: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8022380 thumb_func_start sub_8022420 sub_8022420: push {r4,lr} ldr r4, _08022454 ldr r0, [r4] adds r0, 0x5C movs r1, 0 movs r2, 0x10 bl MemoryFill16 ldr r1, [r4] movs r3, 0 ldr r0, _08022458 ldr r0, [r0] str r0, [r1, 0x1C] movs r0, 0x5 str r0, [r1, 0x20] movs r2, 0x1 ldr r0, _0802245C ldr r0, [r0] str r0, [r1, 0x24] movs r0, 0x6 str r0, [r1, 0x28] str r3, [r1, 0x2C] str r2, [r1, 0x30] pop {r4} pop {r0} bx r0 .align 2, 0 _08022454: .4byte gUnknown_203B290 _08022458: .4byte gUnknown_80D4920 _0802245C: .4byte gUnknown_80D4928 thumb_func_end sub_8022420 thumb_func_start sub_8022460 sub_8022460: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080224CC ldr r1, [sp] cmp r1, 0x1 beq _0802247A ldr r0, _0802248C ldr r0, [r0] str r1, [r0, 0x14] _0802247A: ldr r0, [sp] cmp r0, 0x2 beq _0802249A cmp r0, 0x2 bgt _08022490 cmp r0, 0x1 beq _080224C6 b _080224CC .align 2, 0 _0802248C: .4byte gUnknown_203B290 _08022490: cmp r0, 0x3 beq _080224B6 cmp r0, 0x4 beq _080224BE b _080224CC _0802249A: movs r0, 0x2 bl sub_8021700 lsls r0, 24 cmp r0, 0 beq _080224AE movs r0, 0x5 bl sub_8021D44 b _080224CC _080224AE: movs r0, 0x7 bl sub_8021D44 b _080224CC _080224B6: movs r0, 0x14 bl sub_8021D44 b _080224CC _080224BE: movs r0, 0x2 bl sub_8021D44 b _080224CC _080224C6: movs r0, 0x3 bl sub_8021D44 _080224CC: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8022460 thumb_func_start sub_80224D4 sub_80224D4: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08022532 ldr r0, [sp] cmp r0, 0x5 beq _080224F8 cmp r0, 0x5 bgt _080224F2 cmp r0, 0x1 beq _0802252C b _08022532 _080224F2: cmp r0, 0x6 beq _0802252C b _08022532 _080224F8: ldr r0, _08022524 ldr r2, [r0] movs r0, 0x98 lsls r0, 2 adds r2, r0 ldr r0, _08022528 ldr r3, [r0] ldr r0, [r2] ldr r1, [r3, 0xC] subs r0, r1 str r0, [r2] ldrb r0, [r3, 0x10] bl sub_80925EC movs r0, 0xA6 lsls r0, 1 bl sub_8011988 movs r0, 0xC bl sub_8021D44 b _08022532 .align 2, 0 _08022524: .4byte gUnknown_203B460 _08022528: .4byte gUnknown_203B290 _0802252C: movs r0, 0xA bl sub_8021D44 _08022532: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80224D4 thumb_func_start sub_8022538 sub_8022538: push {r4,lr} movs r0, 0x1 bl sub_8021274 cmp r0, 0x4 bhi _080225BC lsls r0, 2 ldr r1, _08022550 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08022550: .4byte _08022554 .align 2, 0 _08022554: .4byte _080225C2 .4byte _080225BC .4byte _080225B0 .4byte _08022568 .4byte _0802258C _08022568: bl sub_802132C ldr r4, _08022588 ldr r1, [r4] strb r0, [r1, 0x10] ldr r0, [r4] ldrb r0, [r0, 0x10] bl sub_8092544 ldr r1, [r4] str r0, [r1, 0xC] movs r0, 0xB bl sub_8021D44 b _080225C2 .align 2, 0 _08022588: .4byte gUnknown_203B290 _0802258C: bl sub_802132C ldr r4, _080225AC ldr r1, [r4] strb r0, [r1, 0x10] ldr r0, [r4] ldrb r0, [r0, 0x10] bl sub_8092544 ldr r1, [r4] str r0, [r1, 0xC] movs r0, 0x10 bl sub_8021D44 b _080225C2 .align 2, 0 _080225AC: .4byte gUnknown_203B290 _080225B0: bl sub_80213A0 movs r0, 0x1 bl sub_8021D44 b _080225C2 _080225BC: movs r0, 0x1 bl sub_8016C40 _080225C2: pop {r4} pop {r0} bx r0 thumb_func_end sub_8022538 thumb_func_start sub_80225C8 sub_80225C8: push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] bl sub_8021274 ldr r4, _08022608 ldr r0, [r4] adds r0, 0x6C bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _080225F8 ldr r0, [r4] adds r0, 0x6C mov r1, sp bl sub_8013114 ldr r1, [sp] cmp r1, 0x1 beq _080225F8 ldr r0, [r4] str r1, [r0, 0x18] _080225F8: ldr r0, [sp] cmp r0, 0x2 beq _08022612 cmp r0, 0x2 bgt _0802260C cmp r0, 0x1 beq _08022658 b _0802265E .align 2, 0 _08022608: .4byte gUnknown_203B290 _0802260C: cmp r0, 0x4 beq _08022650 b _0802265E _08022612: ldr r0, _0802262C ldr r0, [r0] movs r1, 0x98 lsls r1, 2 adds r0, r1 ldr r1, [r0] cmp r1, 0 bne _08022630 movs r0, 0x6 bl sub_8021D44 b _0802265E .align 2, 0 _0802262C: .4byte gUnknown_203B460 _08022630: ldr r0, _08022644 ldr r0, [r0] ldr r0, [r0, 0xC] cmp r0, r1 ble _08022648 movs r0, 0x13 bl sub_8021D44 b _0802265E .align 2, 0 _08022644: .4byte gUnknown_203B290 _08022648: movs r0, 0x11 bl sub_8021D44 b _0802265E _08022650: movs r0, 0x10 bl sub_8021D44 b _0802265E _08022658: movs r0, 0xA bl sub_8021D44 _0802265E: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_80225C8 thumb_func_start sub_8022668 sub_8022668: push {lr} bl sub_80217EC cmp r0, 0x1 bls _08022680 cmp r0, 0x3 bhi _08022680 bl sub_8021830 movs r0, 0xA bl sub_8021D44 _08022680: pop {r0} bx r0 thumb_func_end sub_8022668 thumb_func_start sub_8022684 sub_8022684: push {r4,lr} movs r0, 0x1 bl sub_8023278 cmp r0, 0x2 beq _080226BC cmp r0, 0x2 bcc _080226C6 cmp r0, 0x3 bne _080226C6 bl sub_802331C ldr r4, _080226B8 ldr r1, [r4] strh r0, [r1, 0x12] movs r2, 0x12 ldrsh r0, [r1, r2] bl sub_808DBA8 ldr r1, [r4] strb r0, [r1, 0x10] movs r0, 0x18 bl sub_8021D44 b _080226C6 .align 2, 0 _080226B8: .4byte gUnknown_203B290 _080226BC: bl sub_80233A0 movs r0, 0x1 bl sub_8021D44 _080226C6: pop {r4} pop {r0} bx r0 thumb_func_end sub_8022684 thumb_func_start sub_80226CC sub_80226CC: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080226E4 ldr r0, _080226EC ldr r0, [r0] ldr r0, [r0, 0x8] bl sub_8021D44 _080226E4: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080226EC: .4byte gUnknown_203B290 thumb_func_end sub_80226CC thumb_func_start sub_80226F0 sub_80226F0: push {r4,lr} sub sp, 0x4 mov r1, sp movs r2, 0 movs r0, 0x80 strb r0, [r1] strb r0, [r1, 0x1] movs r0, 0x10 strb r0, [r1, 0x2] strb r2, [r1, 0x3] bl sub_8099B94 lsls r0, 24 cmp r0, 0 bne _08022782 ldr r0, _08022728 ldr r0, [r0] movs r1, 0x98 lsls r1, 1 adds r0, r1 ldr r0, [r0] cmp r0, 0x4 bhi _0802275C lsls r0, 2 ldr r1, _0802272C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08022728: .4byte gUnknown_203B290 _0802272C: .4byte _08022730 .align 2, 0 _08022730: .4byte _0802275C .4byte _08022744 .4byte _08022750 .4byte _08022744 .4byte _08022750 _08022744: movs r0, 0x5 movs r1, 0x2 ldr r2, [sp] bl sub_8099AFC b _08022772 _08022750: movs r0, 0x5 movs r1, 0x2 ldr r2, [sp] bl sub_8099A5C b _08022772 _0802275C: ldr r4, _0802278C ldr r0, [r4] ldr r0, [r0, 0x8] bl sub_8021D44 ldr r0, [r4] movs r1, 0x98 lsls r1, 1 adds r0, r1 movs r1, 0 str r1, [r0] _08022772: ldr r0, _0802278C ldr r1, [r0] movs r0, 0x98 lsls r0, 1 adds r1, r0 ldr r0, [r1] adds r0, 0x1 str r0, [r1] _08022782: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0802278C: .4byte gUnknown_203B290 thumb_func_end sub_80226F0 thumb_func_start sub_8022790 sub_8022790: push {lr} ldr r0, _080227A8 ldr r2, [r0] movs r0, 0x9A lsls r0, 1 adds r1, r2, r0 ldr r0, [r1] cmp r0, 0 beq _080227AC subs r0, 0x1 str r0, [r1] b _080227B2 .align 2, 0 _080227A8: .4byte gUnknown_203B290 _080227AC: ldr r0, [r2, 0x8] bl sub_8021D44 _080227B2: pop {r0} bx r0 thumb_func_end sub_8022790 thumb_func_start sub_80227B8 sub_80227B8: push {r4,r5,lr} adds r5, r0, 0 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, _08022810 movs r0, 0xD4 lsls r0, 1 movs r1, 0x8 bl MemoryAlloc str r0, [r4] adds r2, r0, 0 adds r2, 0xF4 movs r1, 0 str r1, [r2] str r5, [r0, 0x48] cmp r5, 0 beq _08022820 ldr r4, _08022814 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x7 bl sub_808D9AC adds r4, 0x50 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x6 bl sub_808D9AC bl sub_809177C lsls r0, 24 cmp r0, 0 beq _08022818 movs r0, 0 bl sub_8022924 b _08022856 .align 2, 0 _08022810: .4byte gUnknown_203B294 _08022814: .4byte gUnknown_202DF98 _08022818: movs r0, 0x11 bl sub_8022924 b _08022856 _08022820: ldr r4, _08022848 ldr r5, _0802284C adds r0, r4, 0 adds r1, r5, 0 bl strcpy adds r4, 0x50 adds r0, r4, 0 adds r1, r5, 0 bl strcpy bl sub_8090A34 cmp r0, 0 bne _08022850 movs r0, 0x12 bl sub_8022924 b _08022856 .align 2, 0 _08022848: .4byte gUnknown_202DF98 _0802284C: .4byte gUnknown_80DC5EC _08022850: movs r0, 0 bl sub_8022924 _08022856: movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80227B8 thumb_func_start sub_8022860 sub_8022860: push {lr} ldr r0, _08022878 ldr r0, [r0] ldr r0, [r0] cmp r0, 0x16 bhi _080228FE lsls r0, 2 ldr r1, _0802287C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08022878: .4byte gUnknown_203B294 _0802287C: .4byte _08022880 .align 2, 0 _08022880: .4byte _080228DC .4byte _080228DC .4byte _080228E2 .4byte _080228E8 .4byte _080228EE .4byte _080228FE .4byte _080228FE .4byte _080228FE .4byte _080228FE .4byte _080228FE .4byte _080228FE .4byte _080228FE .4byte _080228FE .4byte _080228FE .4byte _080228FE .4byte _080228FE .4byte _080228FE .4byte _080228FE .4byte _080228FE .4byte _080228FE .4byte _080228FE .4byte _080228F4 .4byte _080228FA _080228DC: bl sub_8022E78 b _08022902 _080228E2: bl sub_8022EF4 b _08022902 _080228E8: bl sub_8023068 b _08022902 _080228EE: bl sub_80230E8 b _08022902 _080228F4: bl sub_8023104 b _08022902 _080228FA: movs r0, 0x3 b _08022904 _080228FE: bl sub_8023120 _08022902: movs r0, 0 _08022904: pop {r1} bx r1 thumb_func_end sub_8022860 thumb_func_start sub_8022908 sub_8022908: push {r4,lr} ldr r4, _08022920 ldr r0, [r4] cmp r0, 0 beq _0802291A bl MemoryFree movs r0, 0 str r0, [r4] _0802291A: pop {r4} pop {r0} bx r0 .align 2, 0 _08022920: .4byte gUnknown_203B294 thumb_func_end sub_8022908 thumb_func_start sub_8022924 sub_8022924: push {lr} ldr r1, _08022938 ldr r1, [r1] str r0, [r1] bl sub_802293C bl sub_8022A10 pop {r0} bx r0 .align 2, 0 _08022938: .4byte gUnknown_203B294 thumb_func_end sub_8022924 thumb_func_start sub_802293C sub_802293C: push {r4-r7,lr} mov r7, r8 push {r7} ldr r4, _08022964 ldr r0, [r4] movs r1, 0xA4 lsls r1, 1 adds r0, r1 bl sub_8006518 ldr r1, [r4] ldr r0, [r1] cmp r0, 0x3 beq _080229A4 cmp r0, 0x3 bgt _08022968 cmp r0, 0x2 beq _08022972 b _080229BC .align 2, 0 _08022964: .4byte gUnknown_203B294 _08022968: cmp r0, 0x10 bgt _080229BC cmp r0, 0xA blt _080229BC b _080229E6 _08022972: bl sub_8022D2C ldr r2, [r4] movs r0, 0xBC lsls r0, 1 adds r2, r0 ldr r1, _080229A0 ldm r1!, {r3,r5,r6} stm r2!, {r3,r5,r6} ldm r1!, {r3,r5,r7} stm r2!, {r3,r5,r7} ldr r1, [r4] adds r0, r1, r0 adds r1, 0xF8 bl sub_8012CAC ldr r0, [r4] movs r6, 0xC2 lsls r6, 1 adds r0, r6 movs r1, 0x6 strh r1, [r0] b _080229E6 .align 2, 0 _080229A0: .4byte gUnknown_80DC5BC _080229A4: movs r7, 0xB0 lsls r7, 1 adds r1, r7 ldr r0, _080229B8 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r5-r7} stm r1!, {r5-r7} b _080229E6 .align 2, 0 _080229B8: .4byte gUnknown_80DC5D4 _080229BC: ldr r0, _08022A08 mov r12, r0 movs r1, 0xA4 lsls r1, 1 mov r8, r1 ldr r4, _08022A0C movs r3, 0 movs r2, 0x3 _080229CC: mov r5, r12 ldr r1, [r5] adds r1, r3 add r1, r8 adds r0, r4, 0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} adds r3, 0x18 subs r2, 0x1 cmp r2, 0 bge _080229CC _080229E6: bl sub_8004914 ldr r0, _08022A08 ldr r0, [r0] movs r6, 0xA4 lsls r6, 1 adds r0, r6 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08022A08: .4byte gUnknown_203B294 _08022A0C: .4byte gUnknown_80DC5A4 thumb_func_end sub_802293C thumb_func_start sub_8022A10 sub_8022A10: push {r4-r7,lr} sub sp, 0x8 ldr r1, _08022A2C ldr r0, [r1] ldr r0, [r0] adds r4, r1, 0 cmp r0, 0x16 bls _08022A22 b _08022D1E _08022A22: lsls r0, 2 ldr r1, _08022A30 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08022A2C: .4byte gUnknown_203B294 _08022A30: .4byte _08022A34 .align 2, 0 _08022A34: .4byte _08022A90 .4byte _08022AAA .4byte _08022AB2 .4byte _08022AE0 .4byte _08022B10 .4byte _08022B1A .4byte _08022B24 .4byte _08022B34 .4byte _08022B44 .4byte _08022B54 .4byte _08022B64 .4byte _08022C28 .4byte _08022CA0 .4byte _08022CA8 .4byte _08022CB0 .4byte _08022CB8 .4byte _08022CC0 .4byte _08022CC8 .4byte _08022CD8 .4byte _08022CE8 .4byte _08022CF8 .4byte _08022D14 .4byte _08022D1E _08022A90: ldr r0, [r4] ldr r0, [r0, 0x48] cmp r0, 0 beq _08022A9C movs r0, 0x5 b _08022A9E _08022A9C: movs r0, 0x1 _08022A9E: movs r1, 0x3 movs r2, 0 movs r3, 0xA bl sub_801A5D8 b _08022D22 _08022AAA: movs r0, 0x1 bl sub_801A8D0 b _08022D22 _08022AB2: bl sub_801A9E0 ldr r0, _08022ADC ldr r2, [r0] adds r0, r2, 0 adds r0, 0x54 adds r1, r2, 0 adds r1, 0xF8 movs r4, 0x9C lsls r4, 1 adds r3, r2, r4 adds r2, 0xF4 ldr r2, [r2] str r2, [sp] movs r2, 0x2 str r2, [sp, 0x4] movs r2, 0 bl sub_8012D60 b _08022D22 .align 2, 0 _08022ADC: .4byte gUnknown_203B294 _08022AE0: bl sub_801A9E0 ldr r4, _08022B08 ldr r0, [r4] adds r0, 0x54 movs r1, 0 bl sub_8012EA4 ldr r0, [r4] adds r0, 0xA4 ldr r1, _08022B0C movs r2, 0x3 str r2, [sp] movs r2, 0x1 str r2, [sp, 0x4] movs r2, 0 movs r3, 0 bl sub_8012D60 b _08022D22 .align 2, 0 _08022B08: .4byte gUnknown_203B294 _08022B0C: .4byte gUnknown_80DC584 _08022B10: ldr r0, [r4] adds r0, 0x50 bl sub_801B3C0 b _08022D22 _08022B1A: ldr r0, _08022B20 b _08022D00 .align 2, 0 _08022B20: .4byte gUnknown_80DC5F4 _08022B24: ldr r0, _08022B2C ldr r3, _08022B30 b _08022D02 .align 2, 0 _08022B2C: .4byte gUnknown_80DC618 _08022B30: .4byte 0x00000101 _08022B34: ldr r0, _08022B3C ldr r3, _08022B40 b _08022D02 .align 2, 0 _08022B3C: .4byte gUnknown_80DC674 _08022B40: .4byte 0x00000101 _08022B44: ldr r0, _08022B4C ldr r3, _08022B50 b _08022D02 .align 2, 0 _08022B4C: .4byte gUnknown_80DC6CC _08022B50: .4byte 0x00000101 _08022B54: ldr r0, _08022B5C ldr r3, _08022B60 b _08022D02 .align 2, 0 _08022B5C: .4byte gUnknown_80DC728 _08022B60: .4byte 0x00000101 _08022B64: ldr r7, _08022B68 b _08022B78 .align 2, 0 _08022B68: .4byte gUnknown_203B294 _08022B6C: ldr r1, [r4] ldr r0, [r1, 0x40] adds r0, 0x1 str r0, [r1, 0x40] cmp r0, 0x17 bgt _08022C10 _08022B78: movs r5, 0 movs r6, 0 movs r3, 0 ldr r2, [r4] ldr r0, [r2, 0x38] cmp r5, r0 bge _08022BA4 ldrb r1, [r2, 0x8] b _08022B9C _08022B8A: adds r3, 0x1 ldr r2, [r4] ldr r0, [r2, 0x38] cmp r3, r0 bge _08022BA4 adds r0, r2, 0 adds r0, 0x8 adds r0, r3 ldrb r1, [r0] _08022B9C: ldr r0, [r2, 0x40] cmp r1, r0 bne _08022B8A movs r5, 0x1 _08022BA4: movs r3, 0 ldr r2, [r4] ldr r0, [r2, 0x3C] cmp r3, r0 bge _08022BCE adds r0, r2, 0 adds r0, 0x20 b _08022BC4 _08022BB4: adds r3, 0x1 ldr r2, [r4] ldr r0, [r2, 0x3C] cmp r3, r0 bge _08022BCE adds r0, r2, 0 adds r0, 0x20 adds r0, r3 _08022BC4: ldrb r1, [r0] ldr r0, [r2, 0x40] cmp r1, r0 bne _08022BB4 movs r6, 0x1 _08022BCE: cmp r5, r6 beq _08022B6C ldr r1, [r7] movs r0, 0xA str r0, [r1, 0x4] ldr r0, [r1, 0x40] lsls r0, 24 lsrs r0, 24 bl sub_808EAB0 adds r1, r0, 0 ldr r0, _08022C18 bl strcpy movs r0, 0xCB bl sub_8011988 ldr r0, _08022C1C movs r1, 0 movs r2, 0 ldr r3, _08022C20 bl sub_80141B4 ldr r1, [r7] ldr r0, [r1, 0x40] adds r0, 0x1 str r0, [r1, 0x40] ldr r0, _08022C24 ldr r0, [r0] ldr r0, [r0, 0x40] cmp r0, 0x17 bgt _08022C10 b _08022D22 _08022C10: movs r0, 0xB bl sub_8022924 b _08022D22 .align 2, 0 _08022C18: .4byte gUnknown_202DEA8 _08022C1C: .4byte gUnknown_80DC788 _08022C20: .4byte 0x00000101 _08022C24: .4byte gUnknown_203B294 _08022C28: ldr r1, [r4] movs r0, 0x16 str r0, [r1, 0x4] bl nullsub_104 ldr r0, [r4] adds r0, 0x46 ldrh r0, [r0] cmp r0, 0x8 bhi _08022C98 lsls r0, 2 ldr r1, _08022C48 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08022C48: .4byte _08022C4C .align 2, 0 _08022C4C: .4byte _08022C70 .4byte _08022C78 .4byte _08022C80 .4byte _08022C98 .4byte _08022C88 .4byte _08022C98 .4byte _08022C98 .4byte _08022C98 .4byte _08022C90 _08022C70: movs r0, 0x16 bl sub_8022924 b _08022D22 _08022C78: movs r0, 0xD bl sub_8022924 b _08022D22 _08022C80: movs r0, 0xE bl sub_8022924 b _08022D22 _08022C88: movs r0, 0xF bl sub_8022924 b _08022D22 _08022C90: movs r0, 0x10 bl sub_8022924 b _08022D22 _08022C98: movs r0, 0xC bl sub_8022924 b _08022D22 _08022CA0: ldr r0, _08022CA4 b _08022D00 .align 2, 0 _08022CA4: .4byte gUnknown_80DC7B4 _08022CA8: ldr r0, _08022CAC b _08022D00 .align 2, 0 _08022CAC: .4byte gUnknown_80DC7FC _08022CB0: ldr r0, _08022CB4 b _08022D00 .align 2, 0 _08022CB4: .4byte gUnknown_80DC81C _08022CB8: ldr r0, _08022CBC b _08022D00 .align 2, 0 _08022CBC: .4byte gUnknown_80DC844 _08022CC0: ldr r0, _08022CC4 b _08022D00 .align 2, 0 _08022CC4: .4byte gUnknown_80DC864 _08022CC8: ldr r1, [r4] movs r0, 0x16 str r0, [r1, 0x4] ldr r0, _08022CD4 b _08022D00 .align 2, 0 _08022CD4: .4byte gUnknown_80DC88C _08022CD8: ldr r1, [r4] movs r0, 0x16 str r0, [r1, 0x4] ldr r0, _08022CE4 b _08022D00 .align 2, 0 _08022CE4: .4byte gUnknown_80DC8AC _08022CE8: ldr r1, [r4] movs r0, 0x16 str r0, [r1, 0x4] ldr r0, _08022CF4 b _08022D00 .align 2, 0 _08022CF4: .4byte gUnknown_80DC8C8 _08022CF8: ldr r1, [r4] movs r0, 0x16 str r0, [r1, 0x4] ldr r0, _08022D0C _08022D00: ldr r3, _08022D10 _08022D02: movs r1, 0 movs r2, 0 bl sub_80141B4 b _08022D22 .align 2, 0 _08022D0C: .4byte gUnknown_80DC8DC _08022D10: .4byte 0x00000301 _08022D14: ldr r0, [r4] ldr r0, [r0, 0x4C] bl sub_801AFA4 b _08022D22 _08022D1E: bl sub_801A928 _08022D22: add sp, 0x8 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8022A10 thumb_func_start sub_8022D2C sub_8022D2C: push {r4-r7,lr} movs r6, 0 ldr r4, _08022D78 ldr r0, [r4] movs r1, 0x9C lsls r1, 1 adds r0, r1 movs r1, 0 movs r2, 0x10 bl MemoryFill16 ldr r2, [r4] ldr r0, [r2, 0x48] cmp r0, 0 beq _08022D80 adds r1, r2, 0 adds r1, 0xF8 ldr r0, _08022D7C str r0, [r1] adds r1, 0x4 movs r0, 0x5 str r0, [r1] adds r0, r2, 0 adds r0, 0x52 ldrb r0, [r0] bl sub_8091764 lsls r0, 24 cmp r0, 0 bne _08022D74 ldr r0, [r4] movs r2, 0x9C lsls r2, 1 adds r0, r2 movs r1, 0x1 strh r1, [r0] _08022D74: movs r6, 0x1 b _08022DBE .align 2, 0 _08022D78: .4byte gUnknown_203B294 _08022D7C: .4byte gUnknown_80DC8F0 _08022D80: adds r0, r2, 0 adds r0, 0x52 ldrb r0, [r0] bl sub_8090BD0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x5 bne _08022DA4 ldr r1, [r4] adds r2, r1, 0 adds r2, 0xF8 ldr r0, _08022E38 str r0, [r2] adds r1, 0xFC movs r0, 0x6 str r0, [r1] movs r6, 0x1 _08022DA4: ldr r2, [r4] lsls r3, r6, 3 adds r0, r2, 0 adds r0, 0xF8 adds r0, r3 ldr r1, _08022E3C ldr r1, [r1] str r1, [r0] adds r2, 0xFC adds r2, r3 movs r0, 0x4 str r0, [r2] adds r6, 0x1 _08022DBE: ldr r4, _08022E40 ldr r0, [r4] mov r12, r0 lsls r1, r6, 3 mov r2, r12 adds r2, 0xF8 adds r3, r2, r1 ldr r0, _08022E44 ldr r0, [r0] str r0, [r3] mov r3, r12 adds r3, 0xFC adds r1, r3, r1 movs r0, 0x7 str r0, [r1] adds r6, 0x1 lsls r1, r6, 3 adds r2, r1 movs r0, 0 str r0, [r2] adds r1, r3, r1 movs r0, 0x1 str r0, [r1] movs r5, 0 adds r7, r4, 0 cmp r5, r6 bge _08022E16 mov r4, r12 adds r4, 0xF4 movs r2, 0x9C lsls r2, 1 add r2, r12 _08022DFE: ldrh r0, [r2] cmp r0, 0 bne _08022E0C ldr r1, [r3] ldr r0, [r4] cmp r1, r0 beq _08022E70 _08022E0C: adds r2, 0x2 adds r3, 0x8 adds r5, 0x1 cmp r5, r6 blt _08022DFE _08022E16: movs r5, 0 cmp r5, r6 bge _08022E70 ldr r1, [r7] movs r2, 0x9C lsls r2, 1 adds r0, r1, r2 ldrh r0, [r0] cmp r0, 0 bne _08022E48 adds r0, r1, 0 adds r0, 0xF4 adds r1, 0xFC ldr r1, [r1] str r1, [r0] b _08022E70 .align 2, 0 _08022E38: .4byte gUnknown_80DC8F8 _08022E3C: .4byte gUnknown_80D4940 _08022E40: .4byte gUnknown_203B294 _08022E44: .4byte gUnknown_80D4970 _08022E48: adds r5, 0x1 cmp r5, r6 bge _08022E70 ldr r3, [r7] lsls r0, r5, 1 movs r2, 0x9C lsls r2, 1 adds r1, r3, r2 adds r1, r0 ldrh r0, [r1] cmp r0, 0 bne _08022E48 adds r2, r3, 0 adds r2, 0xF4 lsls r1, r5, 3 adds r0, r3, 0 adds r0, 0xFC adds r0, r1 ldr r0, [r0] str r0, [r2] _08022E70: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8022D2C thumb_func_start sub_8022E78 sub_8022E78: push {lr} movs r0, 0x1 bl sub_801A6E8 cmp r0, 0x3 beq _08022E94 cmp r0, 0x3 bhi _08022E8E cmp r0, 0x2 beq _08022EE8 b _08022EEE _08022E8E: cmp r0, 0x4 beq _08022EBC b _08022EEE _08022E94: bl sub_801A8AC ldr r1, _08022EB4 ldr r2, [r1] str r0, [r2, 0x4C] ldr r1, _08022EB8 ldr r1, [r1] lsls r0, 2 adds r1, r0 ldr r0, [r1] str r0, [r2, 0x50] movs r0, 0x2 bl sub_8022924 b _08022EEE .align 2, 0 _08022EB4: .4byte gUnknown_203B294 _08022EB8: .4byte gUnknown_203B460 _08022EBC: bl sub_801A8AC ldr r1, _08022EE0 ldr r2, [r1] str r0, [r2, 0x4C] ldr r1, _08022EE4 ldr r1, [r1] lsls r0, 2 adds r1, r0 ldr r0, [r1] str r0, [r2, 0x50] movs r0, 0 bl sub_8099690 movs r0, 0x4 bl sub_8022924 b _08022EEE .align 2, 0 _08022EE0: .4byte gUnknown_203B294 _08022EE4: .4byte gUnknown_203B460 _08022EE8: movs r0, 0x16 bl sub_8022924 _08022EEE: pop {r0} bx r0 thumb_func_end sub_8022E78 thumb_func_start sub_8022EF4 sub_8022EF4: push {r4,r5,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] bl sub_801A6E8 ldr r4, _08022F3C ldr r0, [r4] adds r0, 0x54 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _08022F26 ldr r0, [r4] adds r0, 0x54 mov r1, sp bl sub_8013114 ldr r1, [sp] cmp r1, 0x1 beq _08022F26 ldr r0, [r4] adds r0, 0xF4 str r1, [r0] _08022F26: ldr r0, [sp] subs r0, 0x1 cmp r0, 0x6 bls _08022F30 b _08023060 _08022F30: lsls r0, 2 ldr r1, _08022F40 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08022F3C: .4byte gUnknown_203B294 _08022F40: .4byte _08022F44 .align 2, 0 _08022F44: .4byte _08022F60 .4byte _08023060 .4byte _08023060 .4byte _0802304C .4byte _08022F68 .4byte _08023044 .4byte _08023054 _08022F60: movs r0, 0x1 bl sub_8022924 b _08023060 _08022F68: ldr r4, _08022FEC ldr r1, [r4] adds r0, r1, 0 adds r0, 0x8 ldr r1, [r1, 0x48] movs r2, 0x14 ldrsh r1, [r1, r2] bl sub_808EBA8 ldr r3, [r4] str r0, [r3, 0x38] ldr r0, [r3, 0x48] adds r1, r3, 0 adds r1, 0x52 ldrb r1, [r1] adds r3, 0x44 movs r2, 0 bl sub_80915F4 ldr r1, [r4] adds r0, r1, 0 adds r0, 0x20 ldr r1, [r1, 0x48] movs r2, 0x14 ldrsh r1, [r1, r2] bl sub_808EBA8 ldr r1, [r4] str r0, [r1, 0x3C] movs r0, 0x1 str r0, [r1, 0x40] adds r0, r1, 0 adds r0, 0x44 movs r2, 0 ldrsh r5, [r0, r2] ldr r0, _08022FF0 ldr r3, _08022FF4 ldr r2, [r1, 0x4C] lsls r2, 2 ldr r1, [r3] adds r1, r2 movs r2, 0 bl sub_8090E14 movs r0, 0x1 negs r0, r0 cmp r5, r0 beq _08022FD0 ldr r0, [r4] ldr r0, [r0, 0x4C] bl sub_80911F8 _08022FD0: movs r0, 0 bl sub_8099690 ldr r1, [r4] movs r0, 0xA str r0, [r1, 0x4] adds r0, r5, 0x1 cmp r0, 0x4 bhi _08023030 lsls r0, 2 ldr r1, _08022FF8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08022FEC: .4byte gUnknown_203B294 _08022FF0: .4byte gUnknown_202DE58 _08022FF4: .4byte gUnknown_203B460 _08022FF8: .4byte _08022FFC .align 2, 0 _08022FFC: .4byte _08023030 .4byte _08023010 .4byte _08023018 .4byte _08023020 .4byte _08023028 _08023010: movs r0, 0x6 bl sub_8022924 b _08023060 _08023018: movs r0, 0x7 bl sub_8022924 b _08023060 _08023020: movs r0, 0x8 bl sub_8022924 b _08023060 _08023028: movs r0, 0x9 bl sub_8022924 b _08023060 _08023030: ldr r0, _08023040 ldr r1, [r0] movs r0, 0x16 str r0, [r1, 0x4] movs r0, 0x5 bl sub_8022924 b _08023060 .align 2, 0 _08023040: .4byte gUnknown_203B294 _08023044: movs r0, 0x15 bl sub_8022924 b _08023060 _0802304C: movs r0, 0x3 bl sub_8022924 b _08023060 _08023054: movs r0, 0 bl sub_8099690 movs r0, 0x4 bl sub_8022924 _08023060: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8022EF4 thumb_func_start sub_8023068 sub_8023068: push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] bl sub_801A6E8 ldr r4, _080230A8 ldr r0, [r4] adds r0, 0x54 bl sub_8012FD8 ldr r0, [r4] adds r0, 0xA4 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _08023096 ldr r0, [r4] adds r0, 0xA4 mov r1, sp bl sub_8013114 _08023096: ldr r0, [sp] cmp r0, 0x2 beq _080230B8 cmp r0, 0x2 bgt _080230AC cmp r0, 0x1 beq _080230B0 b _080230E0 .align 2, 0 _080230A8: .4byte gUnknown_203B294 _080230AC: cmp r0, 0x3 bne _080230E0 _080230B0: movs r0, 0x1 bl sub_8022924 b _080230E0 _080230B8: ldr r0, [r4] ldr r0, [r0, 0x4C] bl sub_80911F8 bl sub_8090A34 cmp r0, 0 bne _080230DA movs r0, 0 bl sub_8099690 bl sub_801A928 movs r0, 0x14 bl sub_8022924 b _080230E0 _080230DA: movs r0, 0x1 bl sub_8022924 _080230E0: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_8023068 thumb_func_start sub_80230E8 sub_80230E8: push {lr} bl sub_801B410 cmp r0, 0x1 bls _08023100 cmp r0, 0x3 bhi _08023100 bl sub_801B450 movs r0, 0x1 bl sub_8022924 _08023100: pop {r0} bx r0 thumb_func_end sub_80230E8 thumb_func_start sub_8023104 sub_8023104: push {lr} bl sub_801B00C cmp r0, 0x1 bls _0802311C cmp r0, 0x3 bhi _0802311C bl sub_801B048 movs r0, 0x1 bl sub_8022924 _0802311C: pop {r0} bx r0 thumb_func_end sub_8023104 thumb_func_start sub_8023120 sub_8023120: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08023138 ldr r0, _08023140 ldr r0, [r0] ldr r0, [r0, 0x4] bl sub_8022924 _08023138: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _08023140: .4byte gUnknown_203B294 thumb_func_end sub_8023120 thumb_func_start sub_8023144 sub_8023144: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r7, r1, 0 mov r9, r2 mov r10, r3 lsls r0, 24 lsrs r0, 24 adds r4, r0, 0 bl sub_8023704 lsls r0, 24 cmp r0, 0 beq _08023168 movs r0, 0 b _08023252 _08023168: ldr r6, _08023260 ldr r0, [r6] cmp r0, 0 bne _0802317C movs r0, 0xFF lsls r0, 2 movs r1, 0x8 bl MemoryAlloc str r0, [r6] _0802317C: ldr r0, [r6] strb r4, [r0] ldr r0, [r6] ldr r1, _08023264 ldr r1, [r1] str r1, [r0, 0x4] movs r4, 0xE4 lsls r4, 2 adds r1, r0, r4 str r7, [r1] movs r1, 0xE5 lsls r1, 2 mov r8, r1 adds r2, r0, r1 lsls r1, r7, 1 adds r1, r7 lsls r1, 3 movs r5, 0xE6 lsls r5, 2 adds r1, r5 adds r1, r0, r1 str r1, [r2] adds r0, r5 bl sub_8006518 ldr r1, [r6] adds r4, r1, r4 ldr r2, [r4] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, r5 ldr r0, _08023268 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldr r2, [r6] mov r1, r8 adds r0, r2, r1 ldr r1, [r0] movs r3, 0xFE lsls r3, 2 adds r0, r2, r3 str r0, [r1, 0x14] mov r4, r9 cmp r4, 0 beq _080231F6 movs r1, 0xE4 lsls r1, 2 adds r0, r2, r1 ldr r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 subs r3, 0x58 adds r1, r2, r3 adds r1, r0 ldr r0, [r4] str r0, [r1] _080231F6: ldr r0, [r6] add r0, r8 ldr r0, [r0] mov r1, r10 bl sub_8012D08 bl sub_8004914 ldr r0, [r6] adds r0, r5 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, [r6] movs r5, 0xD7 lsls r5, 2 adds r4, r5 bl sub_80236A4 adds r1, r0, 0 adds r0, r4, 0 mov r2, r10 adds r3, r7, 0 bl sub_8013818 ldr r0, [r6] ldr r1, _0802326C ldrh r2, [r1] movs r4, 0xDD lsls r4, 2 adds r1, r0, r4 strh r2, [r1] ldr r1, _08023270 ldrh r2, [r1] ldr r3, _08023274 adds r1, r0, r3 strh r2, [r1] adds r0, r5 bl sub_8013984 bl sub_8023420 bl sub_80234BC movs r0, 0x1 _08023252: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08023260: .4byte gUnknown_3001B5C _08023264: .4byte gUnknown_203B298 _08023268: .4byte gUnknown_80DC91C _0802326C: .4byte gUnknown_203B29C _08023270: .4byte gUnknown_203B29E _08023274: .4byte 0x0000037a thumb_func_end sub_8023144 thumb_func_start sub_8023278 sub_8023278: push {r4,lr} lsls r0, 24 cmp r0, 0 bne _08023298 ldr r0, _08023294 ldr r0, [r0] movs r1, 0xD7 lsls r1, 2 adds r0, r1 bl sub_8013660 movs r0, 0 b _08023316 .align 2, 0 _08023294: .4byte gUnknown_3001B5C _08023298: ldr r4, _080232B4 ldr r0, [r4] movs r1, 0xD7 lsls r1, 2 adds r0, r1 bl GetKeyPress cmp r0, 0x2 beq _080232BE cmp r0, 0x2 bgt _080232B8 cmp r0, 0x1 beq _080232C8 b _080232EC .align 2, 0 _080232B4: .4byte gUnknown_3001B5C _080232B8: cmp r0, 0x3 beq _080232D2 b _080232EC _080232BE: movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 b _08023316 _080232C8: movs r0, 0 bl sub_80119D4 movs r0, 0x3 b _08023316 _080232D2: movs r0, 0x5 bl sub_80119D4 ldr r0, [r4] ldr r1, [r0, 0x4] movs r2, 0x1 cmp r1, 0x1 bhi _080232E4 adds r2, r1, 0x1 _080232E4: str r2, [r0, 0x4] bl sub_80236A4 b _0802330C _080232EC: ldr r0, _08023308 ldr r0, [r0] movs r1, 0xD7 lsls r1, 2 adds r0, r1 movs r1, 0x1 bl sub_80138B8 lsls r0, 24 cmp r0, 0 bne _0802330C movs r0, 0 b _08023316 .align 2, 0 _08023308: .4byte gUnknown_3001B5C _0802330C: bl sub_8023420 bl sub_80234BC movs r0, 0x1 _08023316: pop {r4} pop {r1} bx r1 thumb_func_end sub_8023278 thumb_func_start sub_802331C sub_802331C: ldr r0, _0802334C ldr r0, [r0] ldr r2, _08023350 adds r1, r0, r2 movs r3, 0 ldrsh r2, [r1, r3] movs r3, 0xDE lsls r3, 2 adds r1, r0, r3 movs r3, 0 ldrsh r1, [r1, r3] muls r1, r2 movs r3, 0xDD lsls r3, 2 adds r2, r0, r3 movs r3, 0 ldrsh r2, [r2, r3] adds r1, r2 lsls r1, 1 adds r0, 0xC adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] bx lr .align 2, 0 _0802334C: .4byte gUnknown_3001B5C _08023350: .4byte 0x0000037a thumb_func_end sub_802331C thumb_func_start sub_8023354 sub_8023354: push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8004914 ldr r5, _0802339C ldr r0, [r5] movs r1, 0xE6 lsls r1, 2 adds r0, r1 movs r1, 0 movs r2, 0 bl sub_800641C ldr r0, [r5] movs r1, 0xD7 lsls r1, 2 adds r0, r1 bl sub_8013984 bl sub_8023420 bl sub_80234BC cmp r4, 0 beq _08023396 ldr r0, [r5] movs r1, 0xD7 lsls r1, 2 adds r0, r1 bl AddMenuCursorSprite _08023396: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802339C: .4byte gUnknown_3001B5C thumb_func_end sub_8023354 thumb_func_start sub_80233A0 sub_80233A0: push {r4-r6,lr} ldr r5, _08023408 ldr r2, [r5] cmp r2, 0 beq _08023400 ldr r1, _0802340C ldr r0, [r2, 0x4] str r0, [r1] ldr r1, _08023410 movs r3, 0xDD lsls r3, 2 adds r0, r2, r3 ldrh r0, [r0] strh r0, [r1] ldr r1, _08023414 ldr r6, _08023418 adds r0, r2, r6 ldrh r0, [r0] strh r0, [r1] movs r1, 0xE4 lsls r1, 2 adds r0, r2, r1 ldr r0, [r0] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 movs r4, 0xE6 lsls r4, 2 adds r1, r4 ldr r0, _0802341C ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} bl sub_8004914 ldr r0, [r5] adds r0, r4 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r5] bl MemoryFree movs r0, 0 str r0, [r5] _08023400: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08023408: .4byte gUnknown_3001B5C _0802340C: .4byte gUnknown_203B298 _08023410: .4byte gUnknown_203B29C _08023414: .4byte gUnknown_203B29E _08023418: .4byte 0x0000037a _0802341C: .4byte gUnknown_80DC904 thumb_func_end sub_80233A0 thumb_func_start sub_8023420 sub_8023420: push {r4,r5,lr} ldr r4, _080234A8 ldr r0, [r4] movs r1, 0xFE lsls r1, 2 adds r0, r1 movs r2, 0 movs r1, 0x1 strb r1, [r0] ldr r0, [r4] ldr r1, _080234AC adds r0, r1 strb r2, [r0] ldr r0, [r4] adds r1, 0x1 adds r0, r1 movs r1, 0xC strb r1, [r0] ldr r0, [r4] ldr r1, _080234B0 adds r0, r1 strb r2, [r0] ldr r0, [r4] ldr r2, _080234B4 adds r0, r2 movs r1, 0 ldrsh r0, [r0, r1] movs r1, 0xC bl sub_80095E4 adds r0, 0x2 ldr r3, [r4] movs r2, 0xE4 lsls r2, 2 adds r5, r3, r2 ldr r2, [r5] lsls r1, r2, 1 adds r1, r2 lsls r1, 3 adds r1, r3, r1 ldr r2, _080234B8 adds r1, r2 lsls r0, 16 lsrs r0, 16 strh r0, [r1] ldr r2, [r5] lsls r1, r2, 1 adds r1, r2 lsls r1, 3 adds r3, r1 movs r1, 0xEA lsls r1, 2 adds r3, r1 strh r0, [r3] bl sub_8004914 ldr r0, [r4] movs r2, 0xE6 lsls r2, 2 adds r0, r2 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080234A8: .4byte gUnknown_3001B5C _080234AC: .4byte 0x000003f9 _080234B0: .4byte 0x000003fb _080234B4: .4byte 0x00000376 _080234B8: .4byte 0x000003a6 thumb_func_end sub_8023420 thumb_func_start sub_80234BC sub_80234BC: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x178 ldr r5, _0802368C ldr r0, [r5] movs r4, 0xE4 lsls r4, 2 adds r0, r4 ldr r0, [r0] bl sub_8008C54 ldr r0, [r5] adds r0, r4 ldr r0, [r0] bl sub_80073B8 ldr r2, _08023690 ldr r0, [r5] adds r0, r4 ldr r3, [r0] movs r0, 0 str r0, [sp] movs r0, 0xA movs r1, 0 bl xxx_call_draw_string ldr r3, [r5] ldr r1, _08023694 adds r0, r3, r1 ldrb r0, [r0] lsls r0, 3 adds r0, 0x4 ldr r2, _08023698 adds r1, r3, r2 movs r6, 0 ldrsh r2, [r1, r6] adds r2, 0x1 movs r1, 0x7 str r1, [sp] adds r3, r4 ldr r1, [r3] str r1, [sp, 0x4] movs r1, 0 movs r3, 0x2 bl sub_8012BC4 movs r0, 0 mov r10, r0 ldr r0, [r5] ldr r1, _0802369C adds r0, r1 movs r2, 0 ldrsh r0, [r0, r2] cmp r10, r0 blt _08023532 b _0802366C _08023532: ldr r3, _0802368C ldr r0, [r3] movs r6, 0xD7 lsls r6, 2 adds r0, r6 mov r1, r10 bl sub_8013800 mov r8, r0 ldr r0, _0802368C ldr r1, [r0] ldr r2, _08023698 adds r0, r1, r2 movs r3, 0 ldrsh r2, [r0, r3] adds r6, 0x1C adds r0, r1, r6 movs r3, 0 ldrsh r0, [r0, r3] muls r0, r2 add r0, r10 lsls r0, 1 adds r1, 0xC adds r1, r0 movs r6, 0 ldrsh r5, [r1, r6] adds r0, r5, 0 bl sub_808DBA8 lsls r0, 24 lsrs r0, 24 add r4, sp, 0x16C adds r1, r4, 0 movs r2, 0 movs r3, 0 bl sub_8092638 movs r7, 0x7 ldrb r0, [r4, 0x4] cmp r0, 0 beq _08023594 adds r0, r5, 0 bl sub_808E734 lsls r0, 24 movs r7, 0x4 cmp r0, 0 beq _08023594 movs r7, 0x5 _08023594: adds r0, r5, 0 movs r1, 0 bl sub_808DCA0 lsls r0, 16 asrs r4, r0, 16 adds r0, r4, 0 movs r1, 0xA bl __modsi3 adds r2, r0, 0 adds r2, 0x30 lsls r2, 24 lsrs r2, 24 ldr r6, _0802368C ldr r0, [r6] movs r1, 0xE4 lsls r1, 2 mov r9, r1 add r0, r9 ldr r0, [r0] str r0, [sp] movs r0, 0x14 mov r1, r8 adds r3, r7, 0 bl sub_8012C60 cmp r4, 0x9 ble _08023628 adds r0, r4, 0 movs r1, 0xA bl __divsi3 adds r4, r0, 0 movs r1, 0xA bl __modsi3 adds r2, r0, 0 adds r2, 0x30 lsls r2, 24 lsrs r2, 24 ldr r0, [r6] movs r3, 0xE4 lsls r3, 2 adds r0, r3 ldr r0, [r0] str r0, [sp] movs r0, 0xD mov r1, r8 adds r3, r7, 0 bl sub_8012C60 cmp r4, 0x9 ble _08023628 adds r0, r4, 0 movs r1, 0xA bl __divsi3 movs r1, 0xA bl __modsi3 adds r2, r0, 0 adds r2, 0x30 lsls r2, 24 lsrs r2, 24 ldr r0, [r6] add r0, r9 ldr r0, [r0] str r0, [sp] movs r0, 0x6 mov r1, r8 adds r3, r7, 0 bl sub_8012C60 _08023628: add r4, sp, 0x108 adds r0, r4, 0 adds r1, r5, 0 bl sub_808D930 add r0, sp, 0x8 ldr r1, _080236A0 adds r2, r7, 0 adds r3, r4, 0 bl sub_800D158 ldr r6, _0802368C ldr r0, [r6] movs r1, 0xE4 lsls r1, 2 adds r0, r1 ldr r3, [r0] movs r0, 0 str r0, [sp] movs r0, 0x24 mov r1, r8 add r2, sp, 0x8 bl xxx_call_draw_string movs r2, 0x1 add r10, r2 ldr r0, [r6] ldr r3, _0802369C adds r0, r3 movs r6, 0 ldrsh r0, [r0, r6] cmp r10, r0 bge _0802366C b _08023532 _0802366C: ldr r0, _0802368C ldr r0, [r0] movs r1, 0xE4 lsls r1, 2 adds r0, r1 ldr r0, [r0] bl sub_80073E0 add sp, 0x178 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802368C: .4byte gUnknown_3001B5C _08023690: .4byte gUnknown_80DC934 _08023694: .4byte 0x000003fa _08023698: .4byte 0x0000037a _0802369C: .4byte 0x00000376 _080236A0: .4byte gUnknown_80DC93C thumb_func_end sub_80234BC thumb_func_start sub_80236A4 sub_80236A4: push {r4,r5,lr} ldr r0, _080236FC ldr r1, [r0] movs r0, 0 str r0, [r1, 0x8] movs r5, 0 _080236B0: lsls r0, r5, 16 asrs r4, r0, 16 adds r0, r4, 0 bl sub_8098134 lsls r0, 24 cmp r0, 0 beq _080236E2 adds r0, r4, 0 bl sub_808E858 lsls r0, 16 asrs r0, 16 cmp r4, r0 bne _080236E2 ldr r0, _080236FC ldr r3, [r0] ldr r1, [r3, 0x8] lsls r2, r1, 1 adds r0, r3, 0 adds r0, 0xC adds r0, r2 strh r5, [r0] adds r1, 0x1 str r1, [r3, 0x8] _080236E2: adds r5, 0x1 ldr r0, _08023700 cmp r5, r0 ble _080236B0 bl sub_8023730 ldr r0, _080236FC ldr r0, [r0] ldr r0, [r0, 0x8] pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080236FC: .4byte gUnknown_3001B5C _08023700: .4byte 0x000001a7 thumb_func_end sub_80236A4 thumb_func_start sub_8023704 sub_8023704: push {r4,lr} movs r4, 0 _08023708: lsls r0, r4, 16 asrs r0, 16 bl sub_8098134 lsls r0, 24 cmp r0, 0 beq _0802371A movs r0, 0 b _08023724 _0802371A: adds r4, 0x1 ldr r0, _0802372C cmp r4, r0 ble _08023708 movs r0, 0x1 _08023724: pop {r4} pop {r1} bx r1 .align 2, 0 _0802372C: .4byte 0x000001a7 thumb_func_end sub_8023704 thumb_func_start sub_8023730 sub_8023730: push {lr} ldr r0, _08023744 ldr r0, [r0] ldr r0, [r0, 0x4] cmp r0, 0x1 beq _08023748 cmp r0, 0x2 beq _0802374E b _08023752 .align 2, 0 _08023744: .4byte gUnknown_3001B5C _08023748: bl sub_8023758 b _08023752 _0802374E: bl sub_80237E0 _08023752: pop {r0} bx r0 thumb_func_end sub_8023730 thumb_func_start sub_8023758 sub_8023758: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 ldr r3, _080237DC ldr r2, [r3] ldr r1, [r2, 0x8] lsls r0, r1, 1 adds r0, 0xA adds r2, r0 mov r9, r2 movs r2, 0 subs r1, 0x1 cmp r2, r1 bge _080237CC _08023778: mov r5, r9 ldr r0, [r3] ldr r0, [r0, 0x8] subs r7, r0, 0x1 adds r0, r2, 0x1 mov r8, r0 cmp r7, r2 ble _080237BE _08023788: subs r6, r5, 0x2 movs r1, 0 ldrsh r0, [r6, r1] movs r1, 0x1 str r2, [sp] bl sub_808DCDC adds r4, r0, 0 movs r1, 0 ldrsh r0, [r5, r1] movs r1, 0x1 bl sub_808DCDC lsls r4, 16 lsls r0, 16 ldr r2, [sp] cmp r4, r0 ble _080237B6 movs r0, 0 ldrsh r1, [r5, r0] ldrh r0, [r6] strh r0, [r5] strh r1, [r6] _080237B6: adds r5, r6, 0 subs r7, 0x1 cmp r7, r2 bgt _08023788 _080237BE: mov r2, r8 ldr r3, _080237DC ldr r0, [r3] ldr r0, [r0, 0x8] subs r0, 0x1 cmp r2, r0 blt _08023778 _080237CC: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080237DC: .4byte gUnknown_3001B5C thumb_func_end sub_8023758 thumb_func_start sub_80237E0 sub_80237E0: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 ldr r3, _08023864 ldr r2, [r3] ldr r1, [r2, 0x8] lsls r0, r1, 1 adds r0, 0xA adds r2, r0 mov r9, r2 movs r2, 0 subs r1, 0x1 cmp r2, r1 bge _08023854 _08023800: mov r5, r9 ldr r0, [r3] ldr r0, [r0, 0x8] subs r7, r0, 0x1 adds r0, r2, 0x1 mov r8, r0 cmp r7, r2 ble _08023846 _08023810: subs r6, r5, 0x2 movs r1, 0 ldrsh r0, [r6, r1] movs r1, 0 str r2, [sp] bl sub_808DCDC adds r4, r0, 0 movs r1, 0 ldrsh r0, [r5, r1] movs r1, 0 bl sub_808DCDC lsls r4, 16 lsls r0, 16 ldr r2, [sp] cmp r4, r0 ble _0802383E movs r0, 0 ldrsh r1, [r5, r0] ldrh r0, [r6] strh r0, [r5] strh r1, [r6] _0802383E: adds r5, r6, 0 subs r7, 0x1 cmp r7, r2 bgt _08023810 _08023846: mov r2, r8 ldr r3, _08023864 ldr r0, [r3] ldr r0, [r0, 0x8] subs r0, 0x1 cmp r2, r0 blt _08023800 _08023854: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08023864: .4byte gUnknown_3001B5C thumb_func_end sub_80237E0 thumb_func_start sub_8023868 sub_8023868: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r5, r0, 0 mov r8, r1 mov r9, r2 mov r10, r3 bl sub_8024108 lsls r0, 24 cmp r0, 0 beq _08023888 movs r0, 0 b _08023A6E _08023888: ldr r4, _080238AC ldr r0, [r4] cmp r0, 0 bne _0802389C movs r0, 0xFE lsls r0, 2 movs r1, 0x8 bl MemoryAlloc str r0, [r4] _0802389C: ldr r1, [r4] str r5, [r1] ldr r0, _080238B0 ldr r0, [r0] cmp r0, r5 beq _080238B4 movs r0, 0x1 b _080238B8 .align 2, 0 _080238AC: .4byte gUnknown_3001B60 _080238B0: .4byte gUnknown_203B2A0 _080238B4: ldr r0, _080238E4 ldr r0, [r0] _080238B8: str r0, [r1, 0x4] ldr r2, _080238E8 ldr r0, [r2] movs r1, 0 strb r1, [r0, 0x14] ldr r0, [r2] strb r1, [r0, 0x15] ldr r0, [r2] strb r1, [r0, 0x16] ldr r0, [r2] strb r1, [r0, 0x17] ldr r0, [r2] strb r1, [r0, 0x18] ldr r0, [r2] ldr r0, [r0] cmp r0, 0x4 bhi _08023980 lsls r0, 2 ldr r1, _080238EC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080238E4: .4byte gUnknown_203B2A4 _080238E8: .4byte gUnknown_3001B60 _080238EC: .4byte _080238F0 .align 2, 0 _080238F0: .4byte _08023958 .4byte _08023904 .4byte _08023914 .4byte _08023924 .4byte _0802393C _08023904: ldr r0, _08023910 ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0x18] b _08023958 .align 2, 0 _08023910: .4byte gUnknown_3001B60 _08023914: ldr r0, _08023920 ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0x14] b _08023958 .align 2, 0 _08023920: .4byte gUnknown_3001B60 _08023924: ldr r2, _08023938 ldr r0, [r2] movs r1, 0x1 strb r1, [r0, 0x17] ldr r0, [r2] strb r1, [r0, 0x15] ldr r0, [r2] strb r1, [r0, 0x16] b _08023958 .align 2, 0 _08023938: .4byte gUnknown_3001B60 _0802393C: ldr r5, _0802397C ldr r0, [r5] movs r4, 0x1 strb r4, [r0, 0x18] ldr r0, [r5] strb r4, [r0, 0x15] movs r0, 0x9 bl sub_80023E4 lsls r0, 24 cmp r0, 0 bne _08023958 ldr r0, [r5] strb r4, [r0, 0x16] _08023958: ldr r4, _0802397C ldr r0, [r4] ldr r0, [r0] cmp r0, 0x4 bne _08023980 bl sub_80A5728 lsls r0, 16 asrs r0, 16 bl sub_8002658 ldr r1, [r4] movs r2, 0xD5 lsls r2, 2 adds r1, r2 strb r0, [r1] b _0802398E .align 2, 0 _0802397C: .4byte gUnknown_3001B60 _08023980: ldr r0, _08023A7C ldr r0, [r0] movs r3, 0xD5 lsls r3, 2 adds r0, r3 movs r1, 0 strb r1, [r0] _0802398E: ldr r5, _08023A7C ldr r0, [r5] movs r4, 0xE3 lsls r4, 2 adds r1, r0, r4 mov r2, r8 str r2, [r1] movs r7, 0xE4 lsls r7, 2 adds r2, r0, r7 mov r3, r8 lsls r1, r3, 1 add r1, r8 lsls r1, 3 movs r6, 0xE5 lsls r6, 2 adds r1, r6 adds r1, r0, r1 str r1, [r2] adds r0, r6 bl sub_8006518 ldr r1, [r5] adds r4, r1, r4 ldr r2, [r4] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, r6 ldr r0, _08023A80 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldr r2, [r5] adds r0, r2, r7 ldr r1, [r0] movs r4, 0xFD lsls r4, 2 adds r0, r2, r4 str r0, [r1, 0x14] mov r0, r9 cmp r0, 0 beq _08023A04 movs r1, 0xE3 lsls r1, 2 adds r0, r2, r1 ldr r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 movs r3, 0xE7 lsls r3, 2 adds r1, r2, r3 adds r1, r0 mov r4, r9 ldr r0, [r4] str r0, [r1] _08023A04: ldr r0, [r5] adds r0, r7 ldr r0, [r0] mov r1, r10 bl sub_8012D08 bl sub_8004914 ldr r0, [r5] adds r0, r6 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, [r5] movs r0, 0xD6 lsls r0, 2 adds r4, r0 bl sub_8023F8C adds r1, r0, 0 adds r0, r4, 0 mov r2, r10 mov r3, r8 bl sub_8013818 ldr r0, _08023A84 ldr r4, [r5] ldr r1, [r0] ldr r0, [r4] cmp r1, r0 bne _08023A64 ldr r0, _08023A88 ldrh r1, [r0] movs r2, 0xDC lsls r2, 2 adds r0, r4, r2 strh r1, [r0] ldr r0, _08023A8C ldrh r1, [r0] ldr r3, _08023A90 adds r0, r4, r3 strh r1, [r0] movs r1, 0xD6 lsls r1, 2 adds r0, r4, r1 bl sub_8013984 _08023A64: bl sub_8023CF4 bl sub_8023DA4 movs r0, 0x1 _08023A6E: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08023A7C: .4byte gUnknown_3001B60 _08023A80: .4byte gUnknown_80DC968 _08023A84: .4byte gUnknown_203B2A0 _08023A88: .4byte gUnknown_203B2A8 _08023A8C: .4byte gUnknown_203B2AA _08023A90: .4byte 0x00000376 thumb_func_end sub_8023868 thumb_func_start sub_8023A94 sub_8023A94: push {r4,lr} lsls r0, 24 cmp r0, 0 bne _08023AB4 ldr r0, _08023AB0 ldr r0, [r0] movs r1, 0xD6 lsls r1, 2 adds r0, r1 bl sub_8013660 movs r0, 0 b _08023B3E .align 2, 0 _08023AB0: .4byte gUnknown_3001B60 _08023AB4: ldr r4, _08023AD0 ldr r0, [r4] movs r1, 0xD6 lsls r1, 2 adds r0, r1 bl GetKeyPress cmp r0, 0x2 beq _08023ADE cmp r0, 0x2 bgt _08023AD4 cmp r0, 0x1 beq _08023AF2 b _08023B16 .align 2, 0 _08023AD0: .4byte gUnknown_3001B60 _08023AD4: cmp r0, 0x3 beq _08023AFC cmp r0, 0x4 beq _08023AE8 b _08023B16 _08023ADE: movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 b _08023B3E _08023AE8: movs r0, 0x4 bl sub_80119D4 movs r0, 0x4 b _08023B3E _08023AF2: movs r0, 0 bl sub_80119D4 movs r0, 0x3 b _08023B3E _08023AFC: movs r0, 0x5 bl sub_80119D4 ldr r0, [r4] ldr r1, [r0, 0x4] movs r2, 0x1 cmp r1, 0x2 bhi _08023B0E adds r2, r1, 0x1 _08023B0E: str r2, [r0, 0x4] bl sub_8023F8C b _08023B34 _08023B16: ldr r0, _08023B30 ldr r0, [r0] movs r1, 0xD6 lsls r1, 2 adds r0, r1 movs r1, 0x1 bl sub_80138B8 lsls r0, 24 cmp r0, 0 bne _08023B34 movs r0, 0 b _08023B3E .align 2, 0 _08023B30: .4byte gUnknown_3001B60 _08023B34: bl sub_8023CF4 bl sub_8023DA4 movs r0, 0x1 _08023B3E: pop {r4} pop {r1} bx r1 thumb_func_end sub_8023A94 thumb_func_start sub_8023B44 sub_8023B44: ldr r0, _08023B74 ldr r0, [r0] ldr r2, _08023B78 adds r1, r0, r2 movs r3, 0 ldrsh r2, [r1, r3] movs r3, 0xDD lsls r3, 2 adds r1, r0, r3 movs r3, 0 ldrsh r1, [r1, r3] muls r1, r2 movs r3, 0xDC lsls r3, 2 adds r2, r0, r3 movs r3, 0 ldrsh r2, [r2, r3] adds r1, r2 lsls r1, 1 adds r0, 0x1A adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] bx lr .align 2, 0 _08023B74: .4byte gUnknown_3001B60 _08023B78: .4byte 0x00000376 thumb_func_end sub_8023B44 thumb_func_start sub_8023B7C sub_8023B7C: push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8004914 ldr r5, _08023BD0 ldr r0, [r5] movs r1, 0xE5 lsls r1, 2 adds r0, r1 movs r1, 0 movs r2, 0 bl sub_800641C bl sub_8023BD8 adds r2, r0, 0 ldr r0, [r5] ldr r3, _08023BD4 adds r1, r0, r3 strh r2, [r1] movs r1, 0xD6 lsls r1, 2 adds r0, r1 bl sub_8013984 bl sub_8023CF4 bl sub_8023DA4 cmp r4, 0 beq _08023BCA ldr r0, [r5] movs r3, 0xD6 lsls r3, 2 adds r0, r3 bl AddMenuCursorSprite _08023BCA: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08023BD0: .4byte gUnknown_3001B60 _08023BD4: .4byte 0x0000037a thumb_func_end sub_8023B7C thumb_func_start sub_8023BD8 sub_8023BD8: push {r4-r7,lr} mov r7, r8 push {r7} movs r3, 0 ldr r1, _08023C58 ldr r0, [r1] ldr r0, [r0, 0x8] adds r7, r1, 0 cmp r3, r0 bge _08023C4A ldr r0, _08023C5C mov r8, r0 mov r12, r7 _08023BF2: ldr r2, [r1] lsls r4, r3, 1 adds r0, r2, 0 adds r0, 0x1A adds r0, r4 movs r5, 0 ldrsh r1, [r0, r5] movs r0, 0x58 muls r0, r1 mov r5, r8 ldr r1, [r5] adds r0, r1 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 adds r6, r3, 0x1 cmp r0, 0 bne _08023C3E ldr r0, [r2, 0x8] subs r0, 0x1 str r0, [r2, 0x8] cmp r3, r0 bge _08023C3E mov r5, r12 adds r4, 0x2 _08023C24: ldr r2, [r5] lsls r1, r3, 1 adds r0, r2, 0 adds r0, 0x1A adds r1, r0, r1 adds r0, r4 ldrh r0, [r0] strh r0, [r1] adds r4, 0x2 adds r3, 0x1 ldr r0, [r2, 0x8] cmp r3, r0 blt _08023C24 _08023C3E: adds r3, r6, 0 adds r1, r7, 0 ldr r0, [r7] ldr r0, [r0, 0x8] cmp r3, r0 blt _08023BF2 _08023C4A: ldr r0, [r7] ldr r0, [r0, 0x8] pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08023C58: .4byte gUnknown_3001B60 _08023C5C: .4byte gUnknown_203B45C thumb_func_end sub_8023BD8 thumb_func_start sub_8023C60 sub_8023C60: push {r4-r6,lr} ldr r5, _08023CCC ldr r2, [r5] cmp r2, 0 beq _08023CC6 ldr r1, _08023CD0 ldr r0, [r2] str r0, [r1] ldr r1, _08023CD4 ldr r0, [r2, 0x4] str r0, [r1] ldr r1, _08023CD8 movs r3, 0xDC lsls r3, 2 adds r0, r2, r3 ldrh r0, [r0] strh r0, [r1] ldr r1, _08023CDC ldr r6, _08023CE0 adds r0, r2, r6 ldrh r0, [r0] strh r0, [r1] movs r1, 0xE3 lsls r1, 2 adds r0, r2, r1 ldr r0, [r0] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 movs r4, 0xE5 lsls r4, 2 adds r1, r4 ldr r0, _08023CE4 ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} bl sub_8004914 ldr r0, [r5] adds r0, r4 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r5] bl MemoryFree movs r0, 0 str r0, [r5] _08023CC6: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08023CCC: .4byte gUnknown_3001B60 _08023CD0: .4byte gUnknown_203B2A0 _08023CD4: .4byte gUnknown_203B2A4 _08023CD8: .4byte gUnknown_203B2A8 _08023CDC: .4byte gUnknown_203B2AA _08023CE0: .4byte 0x00000376 _08023CE4: .4byte gUnknown_80DC950 thumb_func_end sub_8023C60 thumb_func_start sub_8023CE8 sub_8023CE8: ldr r0, _08023CF0 ldr r0, [r0] bx lr .align 2, 0 _08023CF0: .4byte gUnknown_3001B60 thumb_func_end sub_8023CE8 thumb_func_start sub_8023CF4 sub_8023CF4: push {r4,r5,lr} ldr r2, _08023D28 ldr r0, [r2] movs r1, 0xFD lsls r1, 2 adds r0, r1 movs r3, 0 movs r1, 0x1 strb r1, [r0] ldr r0, [r2] ldr r1, _08023D2C adds r0, r1 strb r3, [r0] ldr r0, [r2] adds r1, 0x2 adds r0, r1 strb r3, [r0] ldr r1, [r2] ldr r0, [r1] adds r5, r2, 0 cmp r0, 0x2 bne _08023D34 ldr r0, _08023D30 adds r1, r0 b _08023D38 .align 2, 0 _08023D28: .4byte gUnknown_3001B60 _08023D2C: .4byte 0x000003f5 _08023D30: .4byte 0x000003f6 _08023D34: ldr r2, _08023D98 adds r1, r2 _08023D38: movs r0, 0xC strb r0, [r1] ldr r0, [r5] ldr r1, _08023D9C adds r0, r1 movs r2, 0 ldrsh r0, [r0, r2] movs r1, 0xC bl sub_80095E4 adds r0, 0x2 ldr r3, [r5] movs r1, 0xE3 lsls r1, 2 adds r4, r3, r1 ldr r2, [r4] lsls r1, r2, 1 adds r1, r2 lsls r1, 3 adds r1, r3, r1 ldr r2, _08023DA0 adds r1, r2 lsls r0, 16 lsrs r0, 16 strh r0, [r1] ldr r2, [r4] lsls r1, r2, 1 adds r1, r2 lsls r1, 3 adds r3, r1 movs r1, 0xE9 lsls r1, 2 adds r3, r1 strh r0, [r3] bl sub_8004914 ldr r0, [r5] movs r2, 0xE5 lsls r2, 2 adds r0, r2 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08023D98: .4byte 0x000003f6 _08023D9C: .4byte 0x00000372 _08023DA0: .4byte 0x000003a2 thumb_func_end sub_8023CF4 thumb_func_start sub_8023DA4 sub_8023DA4: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x58 ldr r4, _08023DD8 ldr r0, [r4] movs r5, 0xE3 lsls r5, 2 adds r0, r5 ldr r0, [r0] bl sub_8008C54 ldr r0, [r4] adds r0, r5 ldr r0, [r0] bl sub_80073B8 ldr r0, [r4] ldr r1, [r0] cmp r1, 0x2 beq _08023DE0 cmp r1, 0x4 beq _08023E00 ldr r2, _08023DDC b _08023E02 .align 2, 0 _08023DD8: .4byte gUnknown_3001B60 _08023DDC: .4byte gUnknown_80DC988 _08023DE0: add r0, sp, 0x8 bl sub_80920D8 ldr r0, [r4] movs r1, 0xE3 lsls r1, 2 adds r0, r1 ldr r3, [r0] movs r0, 0 str r0, [sp] movs r0, 0xA movs r1, 0 add r2, sp, 0x8 bl xxx_call_draw_string b _08023E3C _08023E00: ldr r2, _08023EBC _08023E02: adds r0, r5 ldr r3, [r0] movs r0, 0 str r0, [sp] movs r0, 0xA movs r1, 0 bl xxx_call_draw_string ldr r1, [r4] ldr r2, _08023EC0 adds r0, r1, r2 ldrb r0, [r0] lsls r0, 3 adds r3, r0, 0x4 ldr r4, _08023EC4 adds r0, r1, r4 movs r4, 0 ldrsh r2, [r0, r4] adds r2, 0x1 movs r0, 0x7 str r0, [sp] adds r1, r5 ldr r0, [r1] str r0, [sp, 0x4] adds r0, r3, 0 movs r1, 0 movs r3, 0x2 bl sub_8012BC4 _08023E3C: movs r7, 0 ldr r1, _08023EC8 ldr r0, [r1] ldr r2, _08023ECC adds r0, r2 movs r4, 0 ldrsh r0, [r0, r4] cmp r7, r0 blt _08023E50 b _08023F62 _08023E50: mov r8, r1 add r0, sp, 0x30 mov r9, r0 _08023E56: ldr r3, [r1] ldr r1, _08023EC4 adds r0, r3, r1 movs r2, 0 ldrsh r1, [r0, r2] movs r4, 0xDD lsls r4, 2 adds r0, r3, r4 movs r2, 0 ldrsh r0, [r0, r2] muls r1, r0 adds r1, r7 lsls r1, 1 adds r0, r3, 0 adds r0, 0x1A adds r0, r1 movs r4, 0 ldrsh r5, [r0, r4] ldr r2, _08023ED0 movs r0, 0x58 adds r1, r5, 0 muls r1, r0 ldr r0, [r2] adds r4, r0, r1 movs r6, 0x7 ldrh r0, [r4] lsrs r0, 1 movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _08023ED4 movs r0, 0 ldrb r1, [r4, 0x4] cmp r1, 0x41 bne _08023E9E movs r0, 0x1 _08023E9E: cmp r0, 0 beq _08023EA4 movs r6, 0x6 _08023EA4: movs r0, 0 cmp r1, 0x40 bne _08023EAC movs r0, 0x1 _08023EAC: cmp r0, 0 beq _08023EB2 movs r6, 0x6 _08023EB2: ldrb r0, [r4, 0x2] cmp r0, 0 beq _08023EEA movs r6, 0x5 b _08023EEA .align 2, 0 _08023EBC: .4byte gUnknown_80DC980 _08023EC0: .4byte 0x000003f6 _08023EC4: .4byte 0x00000376 _08023EC8: .4byte gUnknown_3001B60 _08023ECC: .4byte 0x00000372 _08023ED0: .4byte gUnknown_203B45C _08023ED4: ldrb r0, [r3, 0x18] cmp r0, 0 beq _08023EEA adds r0, r5, 0 bl sub_808D750 lsls r0, 24 movs r6, 0x2 cmp r0, 0 beq _08023EEA movs r6, 0x4 _08023EEA: mov r0, r8 ldr r1, [r0] ldr r0, [r1] cmp r0, 0x4 bne _08023F02 movs r2, 0xD5 lsls r2, 2 adds r0, r1, r2 ldrb r1, [r0] adds r0, r4, 0 bl sub_8024184 _08023F02: adds r1, r4, 0 adds r1, 0x4C mov r0, r9 movs r2, 0xA bl sub_80922B4 movs r0, 0x8 ldrsh r1, [r4, r0] add r0, sp, 0x44 bl sub_808D930 add r0, sp, 0x8 ldr r1, _08023F80 adds r2, r6, 0 mov r3, r9 bl sub_800D158 mov r1, r8 ldr r0, [r1] movs r2, 0xD6 lsls r2, 2 adds r0, r2 adds r1, r7, 0 bl sub_8013800 adds r1, r0, 0 mov r4, r8 ldr r0, [r4] movs r2, 0xE3 lsls r2, 2 adds r0, r2 ldr r3, [r0] movs r0, 0 str r0, [sp] movs r0, 0x8 add r2, sp, 0x8 bl xxx_call_draw_string adds r7, 0x1 mov r1, r8 ldr r0, [r4] ldr r4, _08023F84 adds r0, r4 movs r2, 0 ldrsh r0, [r0, r2] cmp r7, r0 bge _08023F62 b _08023E56 _08023F62: ldr r0, _08023F88 ldr r0, [r0] movs r4, 0xE3 lsls r4, 2 adds r0, r4 ldr r0, [r0] bl sub_80073E0 add sp, 0x58 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08023F80: .4byte gUnknown_80DC998 _08023F84: .4byte 0x00000372 _08023F88: .4byte gUnknown_3001B60 thumb_func_end sub_8023DA4 thumb_func_start sub_8023F8C sub_8023F8C: push {r4-r7,lr} ldr r2, _08023FD0 ldr r1, [r2] movs r0, 0 str r0, [r1, 0x8] ldrb r0, [r1, 0x15] adds r6, r2, 0 cmp r0, 0 bne _08023FE2 movs r4, 0 ldr r2, _08023FD4 _08023FA2: movs r0, 0x58 adds r1, r4, 0 muls r1, r0 ldr r0, [r2] adds r1, r0, r1 ldrb r0, [r1, 0x2] cmp r0, 0 beq _08023FD8 ldrb r1, [r1] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08023FD8 ldr r3, [r6] ldr r1, [r3, 0x8] lsls r2, r1, 1 adds r0, r3, 0 adds r0, 0x1A adds r0, r2 strh r4, [r0] adds r1, 0x1 str r1, [r3, 0x8] b _08023FE2 .align 2, 0 _08023FD0: .4byte gUnknown_3001B60 _08023FD4: .4byte gUnknown_203B45C _08023FD8: adds r4, 0x1 movs r0, 0xCE lsls r0, 1 cmp r4, r0 ble _08023FA2 _08023FE2: ldr r0, [r6] ldrb r0, [r0, 0x16] cmp r0, 0 bne _08024042 movs r4, 0 ldr r3, _08024034 _08023FEE: movs r0, 0x58 adds r1, r4, 0 muls r1, r0 ldr r0, [r3] adds r1, r0, r1 movs r2, 0 ldrb r0, [r1, 0x4] cmp r0, 0x41 bne _08024002 movs r2, 0x1 _08024002: cmp r2, 0 beq _08024038 ldrb r0, [r1, 0x2] cmp r0, 0 bne _08024038 ldrh r1, [r1] lsrs r0, r1, 1 movs r2, 0x1 ands r0, r2 cmp r0, 0 beq _08024038 adds r0, r2, 0 ands r0, r1 cmp r0, 0 beq _08024038 ldr r3, [r6] ldr r1, [r3, 0x8] lsls r2, r1, 1 adds r0, r3, 0 adds r0, 0x1A adds r0, r2 strh r4, [r0] adds r1, 0x1 str r1, [r3, 0x8] b _08024042 .align 2, 0 _08024034: .4byte gUnknown_203B45C _08024038: adds r4, 0x1 movs r0, 0xCE lsls r0, 1 cmp r4, r0 ble _08023FEE _08024042: ldr r0, [r6] ldr r1, [r0, 0x8] str r1, [r0, 0xC] ldrb r0, [r0, 0x17] cmp r0, 0 bne _080240A4 movs r4, 0 ldr r7, _08024100 movs r5, 0x1 _08024054: movs r0, 0x58 adds r1, r4, 0 muls r1, r0 ldr r0, [r7] adds r1, r0, r1 ldrh r2, [r1] lsrs r0, r2, 1 ands r0, r5 cmp r0, 0 beq _0802409A adds r0, r5, 0 ands r0, r2 cmp r0, 0 beq _0802409A ldrb r0, [r1, 0x2] cmp r0, 0 bne _0802409A movs r2, 0 ldrb r0, [r1, 0x4] cmp r0, 0x41 bne _08024080 movs r2, 0x1 _08024080: cmp r2, 0 bne _0802409A ldr r3, [r6] ldr r1, [r3, 0x8] lsls r2, r1, 1 adds r0, r3, 0 adds r0, 0x1A adds r0, r2 strh r4, [r0] adds r1, 0x1 str r1, [r3, 0x8] cmp r1, 0x3 bgt _080240A4 _0802409A: adds r4, 0x1 movs r0, 0xCE lsls r0, 1 cmp r4, r0 ble _08024054 _080240A4: ldr r0, [r6] ldr r1, [r0, 0x8] str r1, [r0, 0x10] ldrb r0, [r0, 0x14] cmp r0, 0 bne _080240EE movs r4, 0 ldr r7, _08024100 movs r5, 0x1 _080240B6: movs r0, 0x58 adds r1, r4, 0 muls r1, r0 ldr r0, [r7] adds r1, r0, r1 ldrh r1, [r1] adds r0, r5, 0 ands r0, r1 cmp r0, 0 beq _080240E4 lsrs r0, r1, 1 ands r0, r5 cmp r0, 0 bne _080240E4 ldr r3, [r6] ldr r1, [r3, 0x8] lsls r2, r1, 1 adds r0, r3, 0 adds r0, 0x1A adds r0, r2 strh r4, [r0] adds r1, 0x1 str r1, [r3, 0x8] _080240E4: adds r4, 0x1 movs r0, 0xCE lsls r0, 1 cmp r4, r0 ble _080240B6 _080240EE: bl sub_80241A8 ldr r0, _08024104 ldr r0, [r0] ldr r0, [r0, 0x8] pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08024100: .4byte gUnknown_203B45C _08024104: .4byte gUnknown_3001B60 thumb_func_end sub_8023F8C thumb_func_start sub_8024108 sub_8024108: push {r4-r7,lr} adds r5, r0, 0 movs r7, 0 movs r6, 0x1 _08024110: ldr r2, _08024134 movs r0, 0x58 adds r1, r7, 0 muls r1, r0 ldr r0, [r2] adds r4, r0, r1 ldrh r1, [r4] adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _08024172 cmp r5, 0x2 bne _08024138 lsrs r0, r1, 1 ands r0, r6 cmp r0, 0 beq _08024172 b _0802416E .align 2, 0 _08024134: .4byte gUnknown_203B45C _08024138: cmp r5, 0x3 bne _08024140 lsrs r0, r1, 1 b _08024168 _08024140: cmp r5, 0x4 bne _0802416E ldrb r0, [r4, 0x2] cmp r0, 0 bne _08024172 movs r0, 0x9 bl sub_80023E4 lsls r0, 24 cmp r0, 0 bne _0802416E movs r1, 0 ldrb r0, [r4, 0x4] cmp r0, 0x41 bne _08024160 movs r1, 0x1 _08024160: cmp r1, 0 beq _0802416E ldrh r0, [r4] lsrs r0, 1 _08024168: ands r0, r6 cmp r0, 0 bne _08024172 _0802416E: movs r0, 0 b _0802417E _08024172: adds r7, 0x1 movs r0, 0xCE lsls r0, 1 cmp r7, r0 ble _08024110 movs r0, 0x1 _0802417E: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8024108 thumb_func_start sub_8024184 sub_8024184: push {r4,lr} lsls r4, r1, 24 lsrs r4, 24 movs r1, 0x8 ldrsh r0, [r0, r1] bl sub_808DBA8 lsls r0, 24 lsrs r0, 24 cmp r4, r0 beq _0802419E movs r0, 0 b _080241A0 _0802419E: movs r0, 0x1 _080241A0: pop {r4} pop {r1} bx r1 thumb_func_end sub_8024184 thumb_func_start sub_80241A8 sub_80241A8: push {r4,lr} ldr r4, _080241C0 ldr r1, [r4] ldr r0, [r1, 0x4] cmp r0, 0x2 beq _080241CA cmp r0, 0x2 bhi _080241C4 cmp r0, 0x1 beq _08024206 b _08024222 .align 2, 0 _080241C0: .4byte gUnknown_3001B60 _080241C4: cmp r0, 0x3 beq _080241E8 b _08024222 _080241CA: ldr r0, [r1, 0xC] ldr r1, [r1, 0x10] cmp r0, r1 beq _080241D6 bl sub_80242D0 _080241D6: ldr r0, [r4] ldr r2, [r0, 0x10] ldr r1, [r0, 0x8] cmp r2, r1 beq _08024222 adds r0, r2, 0 bl sub_80242D0 b _08024222 _080241E8: ldr r0, [r1, 0xC] ldr r1, [r1, 0x10] cmp r0, r1 beq _080241F4 bl sub_802437C _080241F4: ldr r0, [r4] ldr r2, [r0, 0x10] ldr r1, [r0, 0x8] cmp r2, r1 beq _08024222 adds r0, r2, 0 bl sub_802437C b _08024222 _08024206: ldr r0, [r1, 0xC] ldr r1, [r1, 0x10] cmp r0, r1 beq _08024212 bl sub_8024228 _08024212: ldr r0, [r4] ldr r2, [r0, 0x10] ldr r1, [r0, 0x8] cmp r2, r1 beq _08024222 adds r0, r2, 0 bl sub_8024228 _08024222: pop {r4} pop {r0} bx r0 thumb_func_end sub_80241A8 thumb_func_start sub_8024228 sub_8024228: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC ldr r3, _080242C8 lsls r2, r1, 1 adds r2, 0x18 ldr r3, [r3] adds r3, r2 str r3, [sp] adds r2, r0, 0 subs r1, 0x1 cmp r2, r1 bge _080242B8 str r1, [sp, 0x4] _0802424A: ldr r5, [sp] adds r7, r1, 0 adds r0, r2, 0x1 mov r10, r0 cmp r7, r2 ble _080242B0 ldr r3, _080242CC mov r9, r3 movs r0, 0x58 mov r8, r0 _0802425E: mov r3, r9 ldr r1, [r3] subs r6, r5, 0x2 movs r3, 0 ldrsh r0, [r6, r3] mov r3, r8 muls r3, r0 adds r0, r3, 0 adds r1, r0 movs r3, 0x8 ldrsh r0, [r1, r3] str r2, [sp, 0x8] bl sub_808DCFC adds r4, r0, 0 mov r0, r9 ldr r1, [r0] movs r3, 0 ldrsh r0, [r5, r3] mov r3, r8 muls r3, r0 adds r0, r3, 0 adds r1, r0 movs r3, 0x8 ldrsh r0, [r1, r3] bl sub_808DCFC lsls r4, 16 lsls r0, 16 ldr r2, [sp, 0x8] cmp r4, r0 ble _080242A8 movs r0, 0 ldrsh r1, [r5, r0] ldrh r0, [r6] strh r0, [r5] strh r1, [r6] _080242A8: adds r5, r6, 0 subs r7, 0x1 cmp r7, r2 bgt _0802425E _080242B0: mov r2, r10 ldr r1, [sp, 0x4] cmp r2, r1 blt _0802424A _080242B8: add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080242C8: .4byte gUnknown_3001B60 _080242CC: .4byte gUnknown_203B45C thumb_func_end sub_8024228 thumb_func_start sub_80242D0 sub_80242D0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC ldr r3, _08024374 lsls r2, r1, 1 adds r2, 0x18 ldr r3, [r3] adds r3, r2 str r3, [sp] adds r2, r0, 0 subs r1, 0x1 cmp r2, r1 bge _08024364 str r1, [sp, 0x4] _080242F2: ldr r5, [sp] adds r7, r1, 0 adds r0, r2, 0x1 mov r10, r0 cmp r7, r2 ble _0802435C ldr r3, _08024378 mov r9, r3 movs r0, 0x58 mov r8, r0 _08024306: mov r3, r9 ldr r1, [r3] subs r6, r5, 0x2 movs r3, 0 ldrsh r0, [r6, r3] mov r3, r8 muls r3, r0 adds r0, r3, 0 adds r1, r0 movs r3, 0x8 ldrsh r0, [r1, r3] movs r1, 0 str r2, [sp, 0x8] bl sub_808DCDC adds r4, r0, 0 mov r0, r9 ldr r1, [r0] movs r3, 0 ldrsh r0, [r5, r3] mov r3, r8 muls r3, r0 adds r0, r3, 0 adds r1, r0 movs r3, 0x8 ldrsh r0, [r1, r3] movs r1, 0 bl sub_808DCDC lsls r4, 16 lsls r0, 16 ldr r2, [sp, 0x8] cmp r4, r0 ble _08024354 movs r0, 0 ldrsh r1, [r5, r0] ldrh r0, [r6] strh r0, [r5] strh r1, [r6] _08024354: adds r5, r6, 0 subs r7, 0x1 cmp r7, r2 bgt _08024306 _0802435C: mov r2, r10 ldr r1, [sp, 0x4] cmp r2, r1 blt _080242F2 _08024364: add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08024374: .4byte gUnknown_3001B60 _08024378: .4byte gUnknown_203B45C thumb_func_end sub_80242D0 thumb_func_start sub_802437C sub_802437C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r3, _080243E4 lsls r2, r1, 1 adds r2, 0x18 ldr r3, [r3] adds r3, r2 mov r10, r3 adds r7, r0, 0 subs r1, 0x1 cmp r7, r1 bge _080243D6 mov r9, r1 _0802439C: mov r4, r10 adds r6, r1, 0 adds r0, r7, 0x1 mov r8, r0 cmp r6, r7 ble _080243CE _080243A8: subs r5, r4, 0x2 movs r1, 0 ldrsh r0, [r5, r1] movs r2, 0 ldrsh r1, [r4, r2] bl sub_808D864 lsls r0, 24 cmp r0, 0 beq _080243C6 movs r0, 0 ldrsh r1, [r4, r0] ldrh r0, [r5] strh r0, [r4] strh r1, [r5] _080243C6: adds r4, r5, 0 subs r6, 0x1 cmp r6, r7 bgt _080243A8 _080243CE: mov r7, r8 mov r1, r9 cmp r7, r1 blt _0802439C _080243D6: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080243E4: .4byte gUnknown_3001B60 thumb_func_end sub_802437C thumb_func_start sub_80243E8 sub_80243E8: push {r4,r5,lr} sub sp, 0x3C ldr r3, _08024448 ldr r0, _0802444C ldr r0, [r0] ldr r2, _08024450 adds r1, r0, r2 movs r4, 0 ldrsh r2, [r1, r4] movs r4, 0xDD lsls r4, 2 adds r1, r0, r4 movs r4, 0 ldrsh r1, [r1, r4] muls r1, r2 movs r4, 0xDC lsls r4, 2 adds r2, r0, r4 movs r4, 0 ldrsh r2, [r2, r4] adds r1, r2 lsls r1, 1 adds r0, 0x1A adds r0, r1 movs r2, 0 ldrsh r1, [r0, r2] movs r0, 0x58 muls r0, r1 ldr r4, [r3] adds r4, r0 add r5, sp, 0x28 adds r1, r4, 0 adds r1, 0x4C adds r0, r5, 0 movs r2, 0xA bl sub_80922B4 ldr r1, _08024454 mov r0, sp adds r2, r5, 0 bl sub_800D158 adds r0, r4, 0 add sp, 0x3C pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08024448: .4byte gUnknown_203B45C _0802444C: .4byte gUnknown_3001B60 _08024450: .4byte 0x00000376 _08024454: .4byte gUnknown_80DC9A4 thumb_func_end sub_80243E8 thumb_func_start sub_8024458 sub_8024458: push {r4-r6,lr} adds r4, r0, 0 adds r5, r1, 0 lsls r4, 16 asrs r4, 16 ldr r6, _080244DC movs r0, 0xA6 lsls r0, 1 movs r1, 0x8 bl MemoryAlloc str r0, [r6] adds r1, r0, 0 adds r1, 0x48 strh r4, [r1] adds r1, 0x98 str r5, [r1] adds r2, r0, 0 adds r2, 0xE4 lsls r1, r5, 1 adds r1, r5 lsls r1, 3 adds r1, 0xE8 adds r1, r0, r1 str r1, [r2] adds r0, 0xE8 bl sub_8006518 ldr r1, [r6] adds r0, r1, 0 adds r0, 0xE0 ldr r2, [r0] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, 0xE8 ldr r0, _080244E0 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldr r2, [r6] adds r0, r2, 0 adds r0, 0xE4 ldr r1, [r0] movs r3, 0xA4 lsls r3, 1 adds r0, r2, r3 str r0, [r1, 0x14] movs r4, 0xA5 lsls r4, 1 adds r1, r2, r4 movs r0, 0xA strb r0, [r1] bl sub_8024604 bl sub_802452C ldr r0, [r6] bl sub_8013984 movs r0, 0x1 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _080244DC: .4byte gUnknown_203B2AC _080244E0: .4byte gUnknown_80DC9C8 thumb_func_end sub_8024458 thumb_func_start sub_80244E4 sub_80244E4: push {r4,lr} ldr r4, _08024500 ldr r0, [r4] bl GetKeyPress cmp r0, 0x1 beq _08024504 cmp r0, 0x2 bne _0802450E movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 b _08024524 .align 2, 0 _08024500: .4byte gUnknown_203B2AC _08024504: movs r0, 0 bl sub_80119D4 movs r0, 0x3 b _08024524 _0802450E: ldr r0, [r4] bl sub_8013938 lsls r0, 24 cmp r0, 0 bne _0802451E movs r0, 0 b _08024524 _0802451E: bl sub_802452C movs r0, 0x1 _08024524: pop {r4} pop {r1} bx r1 thumb_func_end sub_80244E4 thumb_func_start sub_802452C sub_802452C: push {lr} bl sub_8024588 bl sub_80245D0 pop {r0} bx r0 thumb_func_end sub_802452C thumb_func_start sub_802453C sub_802453C: push {r4,r5,lr} ldr r4, _08024580 ldr r2, [r4] cmp r2, 0 beq _0802457A adds r0, r2, 0 adds r0, 0xE0 ldr r0, [r0] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 adds r1, 0xE8 ldr r0, _08024584 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} bl sub_8004914 ldr r0, [r4] adds r0, 0xE8 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _0802457A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08024580: .4byte gUnknown_203B2AC _08024584: .4byte gUnknown_80DC9B0 thumb_func_end sub_802453C thumb_func_start sub_8024588 sub_8024588: push {r4,lr} ldr r4, _080245C4 ldr r0, [r4] ldrh r1, [r0, 0x20] movs r2, 0xA4 lsls r2, 1 adds r0, r2 movs r2, 0 strb r1, [r0] ldr r0, [r4] ldrh r1, [r0, 0x1E] ldr r3, _080245C8 adds r0, r3 strb r1, [r0] ldr r0, [r4] ldr r1, _080245CC adds r0, r1 strb r2, [r0] bl sub_8004914 ldr r0, [r4] adds r0, 0xE8 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4} pop {r0} bx r0 .align 2, 0 _080245C4: .4byte gUnknown_203B2AC _080245C8: .4byte 0x00000149 _080245CC: .4byte 0x0000014b thumb_func_end sub_8024588 thumb_func_start sub_80245D0 sub_80245D0: push {r4,lr} sub sp, 0x4 ldr r0, _08024600 ldr r4, [r0] movs r0, 0x1E ldrsh r1, [r4, r0] lsls r2, r1, 2 adds r0, r4, 0 adds r0, 0x34 adds r0, r2 ldr r0, [r0] adds r2, r4, 0 adds r2, 0x4C adds r3, r4, 0 adds r3, 0xB0 adds r4, 0xE0 ldr r4, [r4] str r4, [sp] bl sub_808F844 add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08024600: .4byte gUnknown_203B2AC thumb_func_end sub_80245D0 thumb_func_start sub_8024604 sub_8024604: push {r4,r5,lr} ldr r4, _08024654 ldr r0, [r4] movs r1, 0x2 str r1, [r0, 0x34] movs r1, 0x3 str r1, [r0, 0x38] movs r1, 0x5 str r1, [r0, 0x3C] adds r1, r0, 0 adds r1, 0xE0 ldr r3, [r1] movs r1, 0x3 movs r2, 0x1 bl sub_8013818 ldr r0, [r4] adds r5, r0, 0 adds r5, 0x4C ldr r2, _08024658 adds r0, 0x48 movs r3, 0 ldrsh r1, [r0, r3] movs r0, 0x58 muls r0, r1 ldr r4, [r2] adds r4, r0 movs r0, 0x7 bl sub_80023E4 adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r5, 0 adds r1, r4, 0 bl sub_808FF20 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08024654: .4byte gUnknown_203B2AC _08024658: .4byte gUnknown_203B45C thumb_func_end sub_8024604 thumb_func_start sub_802465C sub_802465C: push {r4,r5,lr} bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r5, _080246E8 movs r0, 0xBA lsls r0, 1 movs r1, 0x8 bl MemoryAlloc str r0, [r5] movs r4, 0 str r4, [r0, 0x28] str r4, [r0, 0x2C] str r4, [r0, 0x30] bl sub_808D33C ldr r1, [r5] str r0, [r1, 0xC] bl sub_808D824 ldr r1, [r5] strb r0, [r1, 0x10] ldr r0, [r5] strb r4, [r0] ldr r0, _080246EC bl sub_808DDD0 ldr r2, [r5] movs r3, 0x82 lsls r3, 1 adds r1, r2, r3 str r0, [r1] adds r3, 0x4 adds r1, r2, r3 ldr r0, [r0, 0x4] str r0, [r1] movs r1, 0x88 lsls r1, 1 adds r0, r2, r1 strb r4, [r0] ldr r0, [r5] adds r3, 0x9 adds r0, r3 strb r4, [r0] ldr r0, [r5] adds r1, 0x2 adds r0, r1 strb r4, [r0] ldr r2, [r5] subs r3, 0x5 adds r1, r2, r3 movs r0, 0x2 strh r0, [r1] movs r0, 0x87 lsls r0, 1 adds r1, r2, r0 movs r0, 0x8 strh r0, [r1] movs r0, 0 bl sub_80247EC movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080246E8: .4byte gUnknown_203B2B0 _080246EC: .4byte 0x00000155 thumb_func_end sub_802465C thumb_func_start sub_80246F0 sub_80246F0: push {lr} ldr r0, _08024708 ldr r0, [r0] ldr r0, [r0, 0x20] cmp r0, 0x15 bhi _080247A8 lsls r0, 2 ldr r1, _0802470C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08024708: .4byte gUnknown_203B2B0 _0802470C: .4byte _08024710 .align 2, 0 _08024710: .4byte _08024768 .4byte _08024768 .4byte _080247A8 .4byte _080247A8 .4byte _080247A4 .4byte _0802476E .4byte _08024774 .4byte _08024774 .4byte _0802477A .4byte _08024780 .4byte _08024786 .4byte _0802478C .4byte _0802478C .4byte _08024792 .4byte _08024798 .4byte _080247A8 .4byte _080247A8 .4byte _080247A8 .4byte _080247A8 .4byte _080247A8 .4byte _080247A8 .4byte _0802479E _08024768: bl sub_8024E9C b _080247AC _0802476E: bl sub_8024F00 b _080247AC _08024774: bl sub_8024FD4 b _080247AC _0802477A: bl sub_80250EC b _080247AC _08024780: bl sub_80251CC b _080247AC _08024786: bl sub_8024F70 b _080247AC _0802478C: bl sub_8025058 b _080247AC _08024792: bl sub_802515C b _080247AC _08024798: bl sub_80251E8 b _080247AC _0802479E: bl sub_8025204 b _080247AC _080247A4: movs r0, 0x3 b _080247AE _080247A8: bl sub_8025230 _080247AC: movs r0, 0 _080247AE: pop {r1} bx r1 thumb_func_end sub_80246F0 thumb_func_start sub_80247B4 sub_80247B4: ldr r0, _080247BC ldr r0, [r0] ldrb r0, [r0] bx lr .align 2, 0 _080247BC: .4byte gUnknown_203B2B0 thumb_func_end sub_80247B4 thumb_func_start sub_80247C0 sub_80247C0: push {r4,lr} ldr r4, _080247E8 ldr r0, [r4] cmp r0, 0 beq _080247E0 movs r1, 0x82 lsls r1, 1 adds r0, r1 ldr r0, [r0] bl CloseFile ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _080247E0: pop {r4} pop {r0} bx r0 .align 2, 0 _080247E8: .4byte gUnknown_203B2B0 thumb_func_end sub_80247C0 thumb_func_start sub_80247EC sub_80247EC: push {lr} ldr r1, _08024800 ldr r1, [r1] str r0, [r1, 0x20] bl sub_8024804 bl sub_80248FC pop {r0} bx r0 .align 2, 0 _08024800: .4byte gUnknown_203B2B0 thumb_func_end sub_80247EC thumb_func_start sub_8024804 sub_8024804: push {r4-r7,lr} mov r7, r8 push {r7} ldr r4, _0802482C ldr r0, [r4] movs r1, 0x8A lsls r1, 1 adds r0, r1 bl sub_8006518 ldr r0, [r4] ldr r0, [r0, 0x20] subs r0, 0x8 cmp r0, 0x14 bhi _080248A8 lsls r0, 2 ldr r1, _08024830 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802482C: .4byte gUnknown_203B2B0 _08024830: .4byte _08024834 .align 2, 0 _08024834: .4byte _08024888 .4byte _080248A8 .4byte _080248A8 .4byte _080248A8 .4byte _080248A8 .4byte _08024888 .4byte _080248A8 .4byte _080248A8 .4byte _080248A8 .4byte _080248D2 .4byte _080248D2 .4byte _080248D2 .4byte _080248A8 .4byte _080248A8 .4byte _080248D2 .4byte _080248D2 .4byte _080248D2 .4byte _080248D2 .4byte _080248D2 .4byte _080248D2 .4byte _080248D2 _08024888: ldr r0, _080248A0 ldr r1, [r0] movs r2, 0xA2 lsls r2, 1 adds r1, r2 ldr r0, _080248A4 ldm r0!, {r3-r5} stm r1!, {r3-r5} ldm r0!, {r2,r6,r7} stm r1!, {r2,r6,r7} b _080248D2 .align 2, 0 _080248A0: .4byte gUnknown_203B2B0 _080248A4: .4byte gUnknown_80DCA00 _080248A8: ldr r3, _080248F4 mov r12, r3 movs r4, 0x8A lsls r4, 1 mov r8, r4 ldr r4, _080248F8 movs r3, 0 movs r2, 0x3 _080248B8: mov r5, r12 ldr r1, [r5] adds r1, r3 add r1, r8 adds r0, r4, 0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} adds r3, 0x18 subs r2, 0x1 cmp r2, 0 bge _080248B8 _080248D2: bl sub_8004914 ldr r0, _080248F4 ldr r0, [r0] movs r6, 0x8A lsls r6, 1 adds r0, r6 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080248F4: .4byte gUnknown_203B2B0 _080248F8: .4byte gUnknown_80DC9E8 thumb_func_end sub_8024804 thumb_func_start sub_80248FC sub_80248FC: push {r4,r5,lr} sub sp, 0x14 ldr r1, _08024918 ldr r0, [r1] ldr r0, [r0, 0x20] adds r5, r1, 0 cmp r0, 0x1D bls _0802490E b _08024CF4 _0802490E: lsls r0, 2 ldr r1, _0802491C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08024918: .4byte gUnknown_203B2B0 _0802491C: .4byte _08024920 .align 2, 0 _08024920: .4byte _08024998 .4byte _080249D0 .4byte _080249E8 .4byte _080249F8 .4byte _08024CF4 .4byte _08024A14 .4byte _08024A20 .4byte _08024A2E .4byte _08024A94 .4byte _08024AC0 .4byte _08024A36 .4byte _08024A68 .4byte _08024A76 .4byte _08024A94 .4byte _08024AC0 .4byte _08024ACA .4byte _08024AD8 .4byte _08024AE8 .4byte _08024B4C .4byte _08024B74 .4byte _08024C9C .4byte _08024CC8 .4byte _08024C1C .4byte _08024C2C .4byte _08024C3C .4byte _08024C4C .4byte _08024C5C .4byte _08024C6C .4byte _08024C7C .4byte _08024C8C _08024998: bl sub_80252B8 lsls r0, 24 cmp r0, 0 beq _080249B0 ldr r0, _080249AC ldr r1, [r0] movs r0, 0x3 b _080249B6 .align 2, 0 _080249AC: .4byte gUnknown_203B2B0 _080249B0: ldr r0, _080249C8 ldr r1, [r0] movs r0, 0x1 _080249B6: str r0, [r1, 0x28] bl sub_8024CFC ldr r0, _080249CC ldr r1, _080249C8 ldr r1, [r1] ldr r2, [r1, 0x28] b _08024A42 .align 2, 0 _080249C8: .4byte gUnknown_203B2B0 _080249CC: .4byte gUnknown_80DCA34 _080249D0: bl sub_8024CFC ldr r0, _080249E0 ldr r1, _080249E4 ldr r1, [r1] ldr r2, [r1, 0x28] b _08024A42 .align 2, 0 _080249E0: .4byte gUnknown_80DCAB8 _080249E4: .4byte gUnknown_203B2B0 _080249E8: ldr r1, [r5] movs r0, 0x1 str r0, [r1, 0x24] ldr r0, _080249F4 b _08024CAE .align 2, 0 _080249F4: .4byte gUnknown_80DCAD0 _080249F8: ldr r1, [r5] movs r0, 0x4 str r0, [r1, 0x24] movs r0, 0x8 movs r1, 0x3C bl sub_8011900 ldr r0, _08024A0C ldr r3, _08024A10 b _08024CB0 .align 2, 0 _08024A0C: .4byte gUnknown_80DCD5C _08024A10: .4byte 0x00000305 _08024A14: bl sub_8024D48 ldr r0, _08024A1C b _08024A3C .align 2, 0 _08024A1C: .4byte gUnknown_80DCD90 _08024A20: movs r0, 0x2 movs r1, 0x3 movs r2, 0 movs r3, 0xA bl sub_801A5D8 b _08024CF4 _08024A2E: movs r0, 0x1 bl sub_801A8D0 b _08024CF4 _08024A36: bl sub_8024DBC ldr r0, _08024A60 _08024A3C: ldr r1, _08024A64 ldr r1, [r1] ldr r2, [r1, 0x2C] _08024A42: adds r3, r1, 0 adds r3, 0x34 adds r1, 0x74 str r1, [sp] movs r1, 0x4 str r1, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] str r1, [sp, 0xC] movs r1, 0x5 str r1, [sp, 0x10] movs r1, 0 bl sub_8014248 b _08024CF4 .align 2, 0 _08024A60: .4byte gUnknown_80DCDB8 _08024A64: .4byte gUnknown_203B2B0 _08024A68: movs r0, 0x2 movs r1, 0x3 movs r2, 0 movs r3, 0xA bl sub_801A5D8 b _08024A7C _08024A76: movs r0, 0x1 bl sub_801A8D0 _08024A7C: ldr r0, _08024A90 ldr r0, [r0] ldr r0, [r0, 0x14] movs r1, 0x1 bl sub_801AEE4 bl sub_801A9E0 b _08024CF4 .align 2, 0 _08024A90: .4byte gUnknown_203B2B0 _08024A94: bl sub_801A9E0 bl sub_8024E30 ldr r0, _08024ABC ldr r2, [r0] adds r0, r2, 0 adds r0, 0x84 adds r1, r2, 0 adds r1, 0x34 adds r3, r2, 0 adds r3, 0x74 ldr r2, [r2, 0x30] str r2, [sp] movs r2, 0x2 str r2, [sp, 0x4] movs r2, 0 bl sub_8012D60 b _08024CF4 .align 2, 0 _08024ABC: .4byte gUnknown_203B2B0 _08024AC0: ldr r0, [r5] adds r0, 0x1C bl sub_801B3C0 b _08024CF4 _08024ACA: ldr r1, [r5] movs r0, 0x5 str r0, [r1, 0x24] ldr r0, _08024AD4 b _08024CAE .align 2, 0 _08024AD4: .4byte gUnknown_80DCDDC _08024AD8: ldr r1, [r5] movs r0, 0xA str r0, [r1, 0x24] ldr r0, _08024AE4 b _08024CAE .align 2, 0 _08024AE4: .4byte gUnknown_80DCE18 _08024AE8: bl sub_8025254 ldr r0, _08024B00 ldr r1, [r0] ldrh r2, [r1, 0x8] movs r0, 0x1 ands r0, r2 cmp r0, 0 beq _08024B04 movs r0, 0x12 b _08024B3A .align 2, 0 _08024B00: .4byte gUnknown_203B2B0 _08024B04: lsls r0, r2, 16 lsrs r0, 16 cmp r0, 0x4 bne _08024B10 movs r0, 0x18 b _08024B3A _08024B10: cmp r0, 0x2 bne _08024B18 movs r0, 0x17 b _08024B3A _08024B18: cmp r0, 0x10 bne _08024B20 movs r0, 0x1B b _08024B3A _08024B20: cmp r0, 0x20 bne _08024B28 movs r0, 0x19 b _08024B3A _08024B28: cmp r0, 0x40 bne _08024B30 movs r0, 0x1A b _08024B3A _08024B30: cmp r0, 0x8 bne _08024B38 movs r0, 0x1C b _08024B3A _08024B38: movs r0, 0x1D _08024B3A: str r0, [r1, 0x24] movs r0, 0x3C bl sub_8011930 ldr r0, _08024B48 b _08024CAE .align 2, 0 _08024B48: .4byte gUnknown_80DCE38 _08024B4C: ldr r0, _08024B68 ldr r1, [r5] ldr r1, [r1, 0xC] movs r2, 0x5 bl sub_808D9AC ldr r0, _08024B6C bl sub_8011988 ldr r1, [r5] movs r0, 0x13 str r0, [r1, 0x24] ldr r0, _08024B70 b _08024CAE .align 2, 0 _08024B68: .4byte gUnknown_202E2B8 _08024B6C: .4byte 0x000001ff _08024B70: .4byte gUnknown_80DCE68 _08024B74: ldr r0, [r5] ldr r0, [r0, 0xC] movs r1, 0x8 ldrsh r0, [r0, r1] bl sub_808D994 adds r1, r0, 0 ldr r4, _08024C10 adds r0, r4, 0 bl strcpy ldr r0, [r5] movs r2, 0xA ldrsh r0, [r0, r2] bl sub_808D994 adds r1, r0, 0 adds r4, 0x50 adds r0, r4, 0 bl strcpy ldr r1, [r5] movs r0, 0x1 strb r0, [r1] bl sub_80977D0 ldr r1, [r5] ldr r0, [r1, 0xC] movs r2, 0xA ldrsh r1, [r1, r2] bl sub_808F734 bl nullsub_104 bl sub_808D33C ldr r1, [r5] str r0, [r1, 0xC] ldr r0, [r1, 0x14] cmp r0, 0x14 beq _08024BCA bl sub_8091234 _08024BCA: ldr r0, [r5] ldr r0, [r0, 0x18] cmp r0, 0x14 beq _08024BD6 bl sub_8091234 _08024BD6: bl sub_80910B4 ldr r0, _08024C14 bl sub_801199C movs r0, 0xD2 bl sub_8011988 ldr r1, [r5] ldrb r0, [r1, 0x10] cmp r0, 0 beq _08024C06 ldr r0, [r1, 0xC] adds r4, r0, 0 adds r4, 0x4C movs r1, 0x8 ldrsh r0, [r0, r1] bl sub_808D994 adds r1, r0, 0 adds r0, r4, 0 movs r2, 0xA bl sub_8092310 _08024C06: ldr r1, [r5] movs r0, 0x3 str r0, [r1, 0x24] ldr r0, _08024C18 b _08024CAE .align 2, 0 _08024C10: .4byte gUnknown_202DF98 _08024C14: .4byte 0x000001ff _08024C18: .4byte gUnknown_80DCEB0 _08024C1C: ldr r1, [r5] movs r0, 0x3 str r0, [r1, 0x24] ldr r0, _08024C28 b _08024CAE .align 2, 0 _08024C28: .4byte gUnknown_80DCEDC _08024C2C: ldr r1, [r5] movs r0, 0x3 str r0, [r1, 0x24] ldr r0, _08024C38 b _08024CAE .align 2, 0 _08024C38: .4byte gUnknown_80DCF44 _08024C3C: ldr r1, [r5] movs r0, 0x3 str r0, [r1, 0x24] ldr r0, _08024C48 b _08024CAE .align 2, 0 _08024C48: .4byte gUnknown_80DCF88 _08024C4C: ldr r1, [r5] movs r0, 0x3 str r0, [r1, 0x24] ldr r0, _08024C58 b _08024CAE .align 2, 0 _08024C58: .4byte gUnknown_80DCFAC _08024C5C: ldr r1, [r5] movs r0, 0x3 str r0, [r1, 0x24] ldr r0, _08024C68 b _08024CAE .align 2, 0 _08024C68: .4byte gUnknown_80DCFF4 _08024C6C: ldr r1, [r5] movs r0, 0x3 str r0, [r1, 0x24] ldr r0, _08024C78 b _08024CAE .align 2, 0 _08024C78: .4byte gUnknown_80DD054 _08024C7C: ldr r1, [r5] movs r0, 0x3 str r0, [r1, 0x24] ldr r0, _08024C88 b _08024CAE .align 2, 0 _08024C88: .4byte gUnknown_80DD098 _08024C8C: ldr r1, [r5] movs r0, 0x3 str r0, [r1, 0x24] ldr r0, _08024C98 b _08024CAE .align 2, 0 _08024C98: .4byte gUnknown_80DD0E0 _08024C9C: movs r0, 0x8 movs r1, 0x3C bl sub_8011900 ldr r0, _08024CBC ldr r1, [r0] movs r0, 0x15 str r0, [r1, 0x24] ldr r0, _08024CC0 _08024CAE: ldr r3, _08024CC4 _08024CB0: movs r1, 0 movs r2, 0 bl sub_80141B4 b _08024CF4 .align 2, 0 _08024CBC: .4byte gUnknown_203B2B0 _08024CC0: .4byte gUnknown_80DD104 _08024CC4: .4byte 0x00000105 _08024CC8: ldr r1, [r5] ldrb r0, [r1, 0x10] cmp r0, 0 beq _08024CE8 ldr r0, [r1, 0xC] adds r4, r0, 0 adds r4, 0x4C movs r2, 0x8 ldrsh r0, [r0, r2] bl sub_808D994 adds r1, r0, 0 adds r0, r4, 0 movs r2, 0xA bl sub_8092310 _08024CE8: ldr r0, [r5] ldr r1, [r0, 0xC] adds r1, 0x4C movs r0, 0 bl sub_801602C _08024CF4: add sp, 0x14 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80248FC thumb_func_start sub_8024CFC sub_8024CFC: push {r4,lr} ldr r4, _08024D38 ldr r0, [r4] adds r0, 0x74 movs r1, 0 movs r2, 0x10 bl MemoryFill16 ldr r1, [r4] movs r3, 0 ldr r0, _08024D3C str r0, [r1, 0x34] movs r0, 0x3 str r0, [r1, 0x38] movs r2, 0x1 ldr r0, _08024D40 ldr r0, [r0] str r0, [r1, 0x3C] movs r0, 0x2 str r0, [r1, 0x40] ldr r0, _08024D44 ldr r0, [r0] str r0, [r1, 0x44] str r2, [r1, 0x48] str r3, [r1, 0x4C] str r2, [r1, 0x50] pop {r4} pop {r0} bx r0 .align 2, 0 _08024D38: .4byte gUnknown_203B2B0 _08024D3C: .4byte gUnknown_80DCA18 _08024D40: .4byte gUnknown_80D4970 _08024D44: .4byte gUnknown_80D4934 thumb_func_end sub_8024CFC thumb_func_start sub_8024D48 sub_8024D48: push {r4-r7,lr} ldr r4, _08024DAC ldr r0, [r4] adds r0, 0x74 movs r1, 0 movs r2, 0x10 bl MemoryFill16 ldr r3, [r4] movs r2, 0 ldr r0, _08024DB0 str r0, [r3, 0x34] movs r0, 0x4 str r0, [r3, 0x38] movs r1, 0x1 ldr r0, _08024DB4 str r0, [r3, 0x3C] movs r0, 0x5 str r0, [r3, 0x40] ldr r0, _08024DB8 ldr r0, [r0] str r0, [r3, 0x44] str r1, [r3, 0x48] movs r6, 0x3 str r2, [r3, 0x4C] str r1, [r3, 0x50] movs r5, 0 mov r12, r3 adds r3, 0x38 mov r2, r12 adds r2, 0x74 _08024D86: ldrh r0, [r2] cmp r0, 0 bne _08024D96 ldr r1, [r3] mov r7, r12 ldr r0, [r7, 0x2C] cmp r1, r0 beq _08024DA6 _08024D96: adds r3, 0x8 adds r2, 0x2 adds r5, 0x1 cmp r5, r6 blt _08024D86 ldr r1, [r4] movs r0, 0x4 str r0, [r1, 0x2C] _08024DA6: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08024DAC: .4byte gUnknown_203B2B0 _08024DB0: .4byte gUnknown_80DCA24 _08024DB4: .4byte gUnknown_80DCA2C _08024DB8: .4byte gUnknown_80D4934 thumb_func_end sub_8024D48 thumb_func_start sub_8024DBC sub_8024DBC: push {r4-r7,lr} ldr r4, _08024E20 ldr r0, [r4] adds r0, 0x74 movs r1, 0 movs r2, 0x10 bl MemoryFill16 ldr r3, [r4] movs r2, 0 ldr r0, _08024E24 str r0, [r3, 0x34] movs r0, 0x4 str r0, [r3, 0x38] movs r1, 0x1 ldr r0, _08024E28 str r0, [r3, 0x3C] movs r0, 0x5 str r0, [r3, 0x40] ldr r0, _08024E2C ldr r0, [r0] str r0, [r3, 0x44] str r1, [r3, 0x48] movs r6, 0x3 str r2, [r3, 0x4C] str r1, [r3, 0x50] movs r5, 0 mov r12, r3 adds r3, 0x38 mov r2, r12 adds r2, 0x74 _08024DFA: ldrh r0, [r2] cmp r0, 0 bne _08024E0A ldr r1, [r3] mov r7, r12 ldr r0, [r7, 0x2C] cmp r1, r0 beq _08024E1A _08024E0A: adds r3, 0x8 adds r2, 0x2 adds r5, 0x1 cmp r5, r6 blt _08024DFA ldr r1, [r4] movs r0, 0x4 str r0, [r1, 0x2C] _08024E1A: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08024E20: .4byte gUnknown_203B2B0 _08024E24: .4byte gUnknown_80DCA24 _08024E28: .4byte gUnknown_80DCA2C _08024E2C: .4byte gUnknown_80D4934 thumb_func_end sub_8024DBC thumb_func_start sub_8024E30 sub_8024E30: push {r4-r7,lr} ldr r4, _08024E90 ldr r0, [r4] adds r0, 0x74 movs r1, 0 movs r2, 0x10 bl MemoryFill16 ldr r3, [r4] movs r2, 0 ldr r0, _08024E94 str r0, [r3, 0x34] movs r0, 0x5 str r0, [r3, 0x38] movs r1, 0x1 ldr r0, _08024E98 ldr r0, [r0] str r0, [r3, 0x3C] movs r0, 0x2 str r0, [r3, 0x40] movs r6, 0x2 str r2, [r3, 0x44] str r1, [r3, 0x48] movs r5, 0 mov r12, r3 adds r3, 0x38 mov r2, r12 adds r2, 0x74 _08024E68: ldrh r0, [r2] cmp r0, 0 bne _08024E78 ldr r1, [r3] mov r7, r12 ldr r0, [r7, 0x30] cmp r1, r0 beq _08024E88 _08024E78: adds r3, 0x8 adds r2, 0x2 adds r5, 0x1 cmp r5, r6 blt _08024E68 ldr r1, [r4] movs r0, 0x5 str r0, [r1, 0x30] _08024E88: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08024E90: .4byte gUnknown_203B2B0 _08024E94: .4byte gUnknown_80DCA2C _08024E98: .4byte gUnknown_80D4970 thumb_func_end sub_8024E30 thumb_func_start sub_8024E9C sub_8024E9C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08024EF8 ldr r1, [sp] cmp r1, 0x1 beq _08024EB6 ldr r0, _08024EC8 ldr r0, [r0] str r1, [r0, 0x28] _08024EB6: ldr r0, [sp] cmp r0, 0x2 beq _08024EEA cmp r0, 0x2 bgt _08024ECC cmp r0, 0x1 beq _08024EF2 b _08024EF8 .align 2, 0 _08024EC8: .4byte gUnknown_203B2B0 _08024ECC: cmp r0, 0x3 bne _08024EF8 bl sub_80252B8 lsls r0, 24 cmp r0, 0 beq _08024EE2 movs r0, 0x5 bl sub_80247EC b _08024EF8 _08024EE2: movs r0, 0x16 bl sub_80247EC b _08024EF8 _08024EEA: movs r0, 0x2 bl sub_80247EC b _08024EF8 _08024EF2: movs r0, 0x3 bl sub_80247EC _08024EF8: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8024E9C thumb_func_start sub_8024F00 sub_8024F00: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08024F6A ldr r1, [sp] cmp r1, 0x1 beq _08024F1A ldr r0, _08024F2C ldr r0, [r0] str r1, [r0, 0x2C] _08024F1A: ldr r0, [sp] cmp r0, 0x4 beq _08024F36 cmp r0, 0x4 bgt _08024F30 cmp r0, 0x1 beq _08024F64 b _08024F6A .align 2, 0 _08024F2C: .4byte gUnknown_203B2B0 _08024F30: cmp r0, 0x5 beq _08024F4C b _08024F6A _08024F36: ldr r0, _08024F48 ldr r1, [r0] movs r0, 0x14 str r0, [r1, 0x14] str r0, [r1, 0x18] movs r0, 0x11 bl sub_80247EC b _08024F6A .align 2, 0 _08024F48: .4byte gUnknown_203B2B0 _08024F4C: bl sub_8090A34 cmp r0, 0 bne _08024F5C movs r0, 0xF bl sub_80247EC b _08024F6A _08024F5C: movs r0, 0x6 bl sub_80247EC b _08024F6A _08024F64: movs r0, 0x1 bl sub_80247EC _08024F6A: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8024F00 thumb_func_start sub_8024F70 sub_8024F70: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08024FCC ldr r1, [sp] cmp r1, 0x1 beq _08024F8A ldr r0, _08024F9C ldr r0, [r0] str r1, [r0, 0x2C] _08024F8A: ldr r0, [sp] cmp r0, 0x4 beq _08024FA6 cmp r0, 0x4 bgt _08024FA0 cmp r0, 0x1 beq _08024FC6 b _08024FCC .align 2, 0 _08024F9C: .4byte gUnknown_203B2B0 _08024FA0: cmp r0, 0x5 beq _08024FAE b _08024FCC _08024FA6: movs r0, 0x11 bl sub_80247EC b _08024FCC _08024FAE: bl sub_8090A34 cmp r0, 0x1 bgt _08024FBE movs r0, 0x10 bl sub_80247EC b _08024FCC _08024FBE: movs r0, 0xB bl sub_80247EC b _08024FCC _08024FC6: movs r0, 0x1 bl sub_80247EC _08024FCC: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8024F70 thumb_func_start sub_8024FD4 sub_8024FD4: push {lr} movs r0, 0x1 bl sub_801A6E8 cmp r0, 0x3 beq _08024FF0 cmp r0, 0x3 bhi _08024FEA cmp r0, 0x2 beq _08025048 b _08025052 _08024FEA: cmp r0, 0x4 beq _0802501C b _08025052 _08024FF0: bl sub_801A8AC ldr r1, _08025014 ldr r2, [r1] str r0, [r2, 0x14] movs r1, 0x14 str r1, [r2, 0x18] ldr r1, _08025018 ldr r1, [r1] lsls r0, 2 adds r1, r0 ldr r0, [r1] str r0, [r2, 0x1C] movs r0, 0x8 bl sub_80247EC b _08025052 .align 2, 0 _08025014: .4byte gUnknown_203B2B0 _08025018: .4byte gUnknown_203B460 _0802501C: bl sub_801A8AC ldr r1, _08025040 ldr r2, [r1] ldr r1, _08025044 ldr r1, [r1] lsls r0, 2 adds r1, r0 ldr r0, [r1] str r0, [r2, 0x1C] movs r0, 0 bl sub_8099690 movs r0, 0x9 bl sub_80247EC b _08025052 .align 2, 0 _08025040: .4byte gUnknown_203B2B0 _08025044: .4byte gUnknown_203B460 _08025048: bl sub_801A928 movs r0, 0x5 bl sub_80247EC _08025052: pop {r0} bx r0 thumb_func_end sub_8024FD4 thumb_func_start sub_8025058 sub_8025058: push {r4,r5,lr} movs r0, 0x1 bl sub_801A6E8 cmp r0, 0x3 beq _08025074 cmp r0, 0x3 bhi _0802506E cmp r0, 0x2 beq _080250DC b _080250E6 _0802506E: cmp r0, 0x4 beq _080250B0 b _080250E6 _08025074: ldr r5, _080250A0 ldr r4, [r5] bl sub_801A8AC ldr r1, [r4, 0x14] cmp r1, r0 beq _080250A8 bl sub_801A8AC ldr r2, [r5] str r0, [r2, 0x18] ldr r1, _080250A4 ldr r1, [r1] lsls r0, 2 adds r1, r0 ldr r0, [r1] str r0, [r2, 0x1C] movs r0, 0xD bl sub_80247EC b _080250E6 .align 2, 0 _080250A0: .4byte gUnknown_203B2B0 _080250A4: .4byte gUnknown_203B460 _080250A8: movs r0, 0x2 bl sub_80119D4 b _080250E6 _080250B0: bl sub_801A8AC ldr r1, _080250D4 ldr r2, [r1] ldr r1, _080250D8 ldr r1, [r1] lsls r0, 2 adds r1, r0 ldr r0, [r1] str r0, [r2, 0x1C] movs r0, 0 bl sub_8099690 movs r0, 0xE bl sub_80247EC b _080250E6 .align 2, 0 _080250D4: .4byte gUnknown_203B2B0 _080250D8: .4byte gUnknown_203B460 _080250DC: bl sub_801A928 movs r0, 0xA bl sub_80247EC _080250E6: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8025058 thumb_func_start sub_80250EC sub_80250EC: push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] bl sub_801A6E8 ldr r4, _0802512C ldr r0, [r4] adds r0, 0x84 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _0802511C ldr r0, [r4] adds r0, 0x84 mov r1, sp bl sub_8013114 ldr r1, [sp] cmp r1, 0x1 beq _0802511C ldr r0, [r4] str r1, [r0, 0x30] _0802511C: ldr r0, [sp] cmp r0, 0x2 beq _08025140 cmp r0, 0x2 bgt _08025130 cmp r0, 0x1 beq _0802514E b _08025154 .align 2, 0 _0802512C: .4byte gUnknown_203B2B0 _08025130: cmp r0, 0x5 bne _08025154 bl sub_801A928 movs r0, 0xA bl sub_80247EC b _08025154 _08025140: movs r0, 0 bl sub_8099690 movs r0, 0x9 bl sub_80247EC b _08025154 _0802514E: movs r0, 0x7 bl sub_80247EC _08025154: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_80250EC thumb_func_start sub_802515C sub_802515C: push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] bl sub_801A6E8 ldr r4, _0802519C ldr r0, [r4] adds r0, 0x84 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _0802518C ldr r0, [r4] adds r0, 0x84 mov r1, sp bl sub_8013114 ldr r1, [sp] cmp r1, 0x1 beq _0802518C ldr r0, [r4] str r1, [r0, 0x30] _0802518C: ldr r0, [sp] cmp r0, 0x2 beq _080251B0 cmp r0, 0x2 bgt _080251A0 cmp r0, 0x1 beq _080251BE b _080251C4 .align 2, 0 _0802519C: .4byte gUnknown_203B2B0 _080251A0: cmp r0, 0x5 bne _080251C4 bl sub_801A928 movs r0, 0x11 bl sub_80247EC b _080251C4 _080251B0: movs r0, 0 bl sub_8099690 movs r0, 0xE bl sub_80247EC b _080251C4 _080251BE: movs r0, 0xC bl sub_80247EC _080251C4: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_802515C thumb_func_start sub_80251CC sub_80251CC: push {lr} bl sub_801B410 cmp r0, 0x1 bls _080251E4 cmp r0, 0x3 bhi _080251E4 bl sub_801B450 movs r0, 0x7 bl sub_80247EC _080251E4: pop {r0} bx r0 thumb_func_end sub_80251CC thumb_func_start sub_80251E8 sub_80251E8: push {lr} bl sub_801B410 cmp r0, 0x1 bls _08025200 cmp r0, 0x3 bhi _08025200 bl sub_801B450 movs r0, 0xC bl sub_80247EC _08025200: pop {r0} bx r0 thumb_func_end sub_80251E8 thumb_func_start sub_8025204 sub_8025204: push {r4,lr} bl sub_8016080 cmp r0, 0x3 bne _08025226 bl sub_80160D8 ldr r4, _0802522C ldr r0, [r4] ldr r0, [r0, 0xC] bl sub_808D824 ldr r1, [r4] strb r0, [r1, 0x10] movs r0, 0x3 bl sub_80247EC _08025226: pop {r4} pop {r0} bx r0 .align 2, 0 _0802522C: .4byte gUnknown_203B2B0 thumb_func_end sub_8025204 thumb_func_start sub_8025230 sub_8025230: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08025248 ldr r0, _08025250 ldr r0, [r0] ldr r0, [r0, 0x24] bl sub_80247EC _08025248: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _08025250: .4byte gUnknown_203B2B0 thumb_func_end sub_8025230 thumb_func_start sub_8025254 sub_8025254: push {lr} ldr r0, _08025268 ldr r2, [r0] ldr r1, [r2, 0x14] adds r3, r0, 0 cmp r1, 0x14 bne _0802526C movs r0, 0 b _08025276 .align 2, 0 _08025268: .4byte gUnknown_203B2B0 _0802526C: ldr r0, _08025284 ldr r0, [r0] lsls r1, 2 adds r0, r1 ldrb r0, [r0, 0x2] _08025276: strb r0, [r2, 0x4] ldr r2, [r3] ldr r1, [r2, 0x18] cmp r1, 0x14 bne _08025288 movs r0, 0 b _08025292 .align 2, 0 _08025284: .4byte gUnknown_203B460 _08025288: ldr r0, _080252B0 ldr r0, [r0] lsls r1, 2 adds r0, r1 ldrb r0, [r0, 0x2] _08025292: strb r0, [r2, 0x5] movs r0, 0xFF bl RandomCapped ldr r2, _080252B4 ldr r1, [r2] strb r0, [r1, 0x6] ldr r1, [r2] ldr r0, [r1, 0xC] adds r1, 0x4 movs r2, 0x1 bl sub_808F468 pop {r0} bx r0 .align 2, 0 _080252B0: .4byte gUnknown_203B460 _080252B4: .4byte gUnknown_203B2B0 thumb_func_end sub_8025254 thumb_func_start sub_80252B8 sub_80252B8: push {r4,lr} ldr r0, _080252E0 ldr r1, [r0] movs r3, 0 movs r4, 0x1 ldr r2, _080252E4 _080252C4: ldrh r0, [r1] lsrs r0, 1 ands r0, r4 cmp r0, 0 beq _080252D0 adds r3, 0x1 _080252D0: subs r2, 0x1 adds r1, 0x58 cmp r2, 0 bne _080252C4 cmp r3, 0x1 beq _080252E8 movs r0, 0 b _080252EA .align 2, 0 _080252E0: .4byte gUnknown_203B45C _080252E4: .4byte 0x0000019d _080252E8: movs r0, 0x1 _080252EA: pop {r4} pop {r1} bx r1 thumb_func_end sub_80252B8 thumb_func_start sub_80252F0 sub_80252F0: push {r4-r6,lr} adds r6, r0, 0 cmp r6, 0x2 bne _08025308 movs r0, 0x4 bl sub_8024108 lsls r0, 24 cmp r0, 0 beq _08025308 movs r0, 0 b _0802534C _08025308: ldr r4, _08025340 movs r0, 0xBC lsls r0, 1 movs r1, 0x8 bl MemoryAlloc str r0, [r4] movs r5, 0 str r5, [r0, 0x70] str r6, [r0] bl sub_80A5728 lsls r0, 16 asrs r0, 16 bl sub_8002658 ldr r1, [r4] strb r0, [r1, 0xC] ldr r0, [r4] strb r5, [r0, 0xD] ldr r0, [r4] ldr r0, [r0] cmp r0, 0x2 bne _08025344 movs r0, 0 bl sub_8025434 b _0802534A .align 2, 0 _08025340: .4byte gUnknown_203B2B4 _08025344: movs r0, 0x1 bl sub_8025434 _0802534A: movs r0, 0x1 _0802534C: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80252F0 thumb_func_start sub_8025354 sub_8025354: push {lr} ldr r0, _0802536C ldr r0, [r0] ldr r0, [r0, 0x4] subs r0, 0x1 cmp r0, 0x12 bhi _08025400 lsls r0, 2 ldr r1, _08025370 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802536C: .4byte gUnknown_203B2B4 _08025370: .4byte _08025374 .align 2, 0 _08025374: .4byte _080253C4 .4byte _080253C4 .4byte _080253CA .4byte _080253D0 .4byte _080253D6 .4byte _08025400 .4byte _08025400 .4byte _08025400 .4byte _08025400 .4byte _08025400 .4byte _080253DC .4byte _080253DC .4byte _080253E2 .4byte _080253E8 .4byte _080253EE .4byte _080253EE .4byte _080253F4 .4byte _080253FA .4byte _080253C0 _080253C0: movs r0, 0x3 b _08025406 _080253C4: bl sub_80259F0 b _08025404 _080253CA: bl sub_8025A84 b _08025404 _080253D0: bl sub_8025BCC b _08025404 _080253D6: bl sub_8025BE8 b _08025404 _080253DC: bl sub_8025C04 b _08025404 _080253E2: bl sub_8025CB4 b _08025404 _080253E8: bl sub_8025D90 b _08025404 _080253EE: bl sub_8025DAC b _08025404 _080253F4: bl sub_8025E08 b _08025404 _080253FA: bl sub_8025E24 b _08025404 _08025400: bl sub_8025E44 _08025404: movs r0, 0 _08025406: pop {r1} bx r1 thumb_func_end sub_8025354 thumb_func_start sub_802540C sub_802540C: ldr r0, _08025414 ldr r0, [r0] ldrb r0, [r0, 0xD] bx lr .align 2, 0 _08025414: .4byte gUnknown_203B2B4 thumb_func_end sub_802540C thumb_func_start sub_8025418 sub_8025418: push {r4,lr} ldr r4, _08025430 ldr r0, [r4] cmp r0, 0 beq _0802542A bl MemoryFree movs r0, 0 str r0, [r4] _0802542A: pop {r4} pop {r0} bx r0 .align 2, 0 _08025430: .4byte gUnknown_203B2B4 thumb_func_end sub_8025418 thumb_func_start sub_8025434 sub_8025434: push {lr} ldr r1, _08025448 ldr r1, [r1] str r0, [r1, 0x4] bl sub_802544C bl sub_8025518 pop {r0} bx r0 .align 2, 0 _08025448: .4byte gUnknown_203B2B4 thumb_func_end sub_8025434 thumb_func_start sub_802544C sub_802544C: push {r4-r7,lr} ldr r4, _08025470 ldr r0, [r4] movs r1, 0x8C lsls r1, 1 adds r0, r1 bl sub_8006518 ldr r1, [r4] ldr r0, [r1, 0x4] cmp r0, 0x3 beq _08025478 cmp r0, 0xD beq _080254B0 movs r2, 0 ldr r3, _08025474 b _080254D8 .align 2, 0 _08025470: .4byte gUnknown_203B2B4 _08025474: .4byte gUnknown_80DD148 _08025478: ldr r0, [r1] cmp r0, 0 bne _0802548E movs r2, 0xB0 lsls r2, 1 adds r1, r2 ldr r0, _080254A8 ldm r0!, {r3,r5,r6} stm r1!, {r3,r5,r6} ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} _0802548E: bl sub_8025728 ldr r2, [r4] movs r0, 0xA4 lsls r0, 1 adds r2, r0 ldr r1, _080254AC ldm r1!, {r5-r7} stm r2!, {r5-r7} ldm r1!, {r3,r5,r6} stm r2!, {r3,r5,r6} b _080254C6 .align 2, 0 _080254A8: .4byte gUnknown_80DD190 _080254AC: .4byte gUnknown_80DD160 _080254B0: bl sub_802591C ldr r2, [r4] movs r0, 0xA4 lsls r0, 1 adds r2, r0 ldr r1, _080254D4 ldm r1!, {r3,r5,r7} stm r2!, {r3,r5,r7} ldm r1!, {r3,r6,r7} stm r2!, {r3,r6,r7} _080254C6: ldr r1, [r4] adds r0, r1, r0 adds r1, 0xC8 bl sub_8012CAC b _080254F8 .align 2, 0 _080254D4: .4byte gUnknown_80DD178 _080254D8: ldr r0, [r4] lsls r1, r2, 1 adds r1, r2 lsls r1, 3 adds r0, r1 movs r5, 0x8C lsls r5, 1 adds r0, r5 adds r1, r3, 0 ldm r1!, {r5-r7} stm r0!, {r5-r7} ldm r1!, {r5-r7} stm r0!, {r5-r7} adds r2, 0x1 cmp r2, 0x3 ble _080254D8 _080254F8: bl sub_8004914 ldr r0, _08025514 ldr r0, [r0] movs r6, 0x8C lsls r6, 1 adds r0, r6 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08025514: .4byte gUnknown_203B2B4 thumb_func_end sub_802544C thumb_func_start sub_8025518 sub_8025518: push {r4,r5,lr} sub sp, 0xC ldr r1, _08025534 ldr r0, [r1] ldr r0, [r0, 0x4] adds r5, r1, 0 cmp r0, 0x13 bls _0802552A b _08025720 _0802552A: lsls r0, 2 ldr r1, _08025538 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08025534: .4byte gUnknown_203B2B4 _08025538: .4byte _0802553C .align 2, 0 _0802553C: .4byte _0802558C .4byte _080255A0 .4byte _080255BA .4byte _080255C2 .4byte _0802560C .4byte _0802561A .4byte _08025720 .4byte _080256A8 .4byte _0802567A .4byte _08025688 .4byte _08025698 .4byte _08025626 .4byte _08025634 .4byte _0802563C .4byte _08025668 .4byte _080256CC .4byte _080256F2 .4byte _080256FC .4byte _08025714 .4byte _08025720 _0802558C: ldr r1, [r5] movs r0, 0x1 str r0, [r1, 0x8] ldr r0, _08025598 ldr r3, _0802559C b _080256B8 .align 2, 0 _08025598: .4byte gUnknown_80DD1A8 _0802559C: .4byte 0x00000301 _080255A0: movs r1, 0x4 ldr r0, [r5] ldr r0, [r0] cmp r0, 0 bne _080255AC movs r1, 0x2 _080255AC: adds r0, r1, 0 movs r1, 0 movs r2, 0 movs r3, 0xA bl sub_8023868 b _08025720 _080255BA: movs r0, 0x1 bl sub_8023B7C b _08025720 _080255C2: ldr r1, [r5] ldr r0, [r1] cmp r0, 0 bne _080255D2 adds r1, 0x18 movs r0, 0x3 bl sub_8025E68 _080255D2: bl sub_8023DA4 ldr r4, _08025608 ldr r0, [r5] ldr r1, [r0, 0x1C] adds r0, r4, 0 movs r2, 0x7 bl sub_808D9AC adds r4, 0x50 ldr r0, [r5] ldr r1, [r0, 0x1C] adds r0, r4, 0 movs r2, 0x6 bl sub_808D9AC ldr r2, [r5] adds r0, r2, 0 adds r0, 0x78 adds r1, r2, 0 adds r1, 0xC8 movs r4, 0x84 lsls r4, 1 adds r3, r2, r4 ldr r2, [r2, 0x70] b _08025654 .align 2, 0 _08025608: .4byte gUnknown_202DF98 _0802560C: ldr r0, [r5] movs r1, 0xE ldrsh r0, [r0, r1] movs r1, 0x2 bl sub_8024458 b _08025720 _0802561A: ldr r0, [r5] movs r4, 0xE ldrsh r0, [r0, r4] bl sub_801BEEC b _08025720 _08025626: movs r0, 0x1 movs r1, 0 movs r2, 0 movs r3, 0xA bl sub_801A5D8 b _08025720 _08025634: movs r0, 0x1 bl sub_801A8D0 b _08025720 _0802563C: bl sub_801A9E0 ldr r0, _08025664 ldr r2, [r0] adds r0, r2, 0 adds r0, 0x78 adds r1, r2, 0 adds r1, 0xC8 movs r4, 0x84 lsls r4, 1 adds r3, r2, r4 ldr r2, [r2, 0x74] _08025654: str r2, [sp] movs r2, 0x2 str r2, [sp, 0x4] movs r2, 0 bl sub_8012D60 b _08025720 .align 2, 0 _08025664: .4byte gUnknown_203B2B4 _08025668: ldr r1, [r5] adds r1, 0x14 add r0, sp, 0x8 bl sub_8090B64 add r0, sp, 0x8 bl sub_801B3C0 b _08025720 _0802567A: ldr r1, [r5] movs r0, 0x2 str r0, [r1, 0x8] ldr r0, _08025684 b _080256B6 .align 2, 0 _08025684: .4byte gUnknown_80DD1C8 _08025688: ldr r1, [r5] movs r0, 0x2 str r0, [r1, 0x8] ldr r0, _08025694 b _080256B6 .align 2, 0 _08025694: .4byte gUnknown_80DD1EC _08025698: ldr r1, [r5] movs r0, 0x2 str r0, [r1, 0x8] ldr r0, _080256A4 b _080256B6 .align 2, 0 _080256A4: .4byte gUnknown_80DD240 _080256A8: ldr r1, [r5] movs r0, 0x1 str r0, [r1, 0x8] movs r0, 0xCF bl sub_8011988 ldr r0, _080256C4 _080256B6: ldr r3, _080256C8 _080256B8: movs r1, 0 movs r2, 0 bl sub_80141B4 b _08025720 .align 2, 0 _080256C4: .4byte gUnknown_80DD270 _080256C8: .4byte 0x00000101 _080256CC: ldr r1, [r5] adds r0, r1, 0 adds r0, 0x28 ldr r1, [r1, 0x1C] adds r1, 0x2C bl sub_809401C ldr r2, [r5] movs r0, 0xE ldrsh r1, [r2, r0] adds r2, 0x28 movs r0, 0 str r0, [sp] str r0, [sp, 0x4] movs r0, 0x3 movs r3, 0 bl sub_801EE10 b _08025720 _080256F2: movs r0, 0x1 movs r1, 0 bl sub_801F1B0 b _08025720 _080256FC: ldr r2, [r5] ldr r0, [r2, 0x20] adds r1, r2, 0 adds r1, 0x28 adds r2, 0x68 bl sub_8093560 ldr r0, [r5] adds r0, 0x68 bl sub_801F808 b _08025720 _08025714: ldr r0, [r5] ldr r1, [r0, 0x1C] adds r1, 0x4C movs r0, 0x2 bl sub_801602C _08025720: add sp, 0xC pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8025518 thumb_func_start sub_8025728 sub_8025728: push {r4-r7,lr} ldr r3, _080257CC ldr r5, _080257D0 ldr r0, [r5] movs r1, 0xE ldrsh r2, [r0, r1] movs r1, 0x58 muls r2, r1 ldr r1, [r3] adds r7, r1, r2 movs r2, 0x84 lsls r2, 1 adds r0, r2 movs r1, 0 movs r2, 0x10 bl MemoryFill16 ldr r4, [r5] ldr r0, [r4] cmp r0, 0 bne _080257E0 adds r1, r4, 0 adds r1, 0xC8 ldr r0, _080257D4 str r0, [r1] adds r1, 0x4 movs r0, 0xA str r0, [r1] bl sub_8090A34 cmp r0, 0 bne _08025774 ldr r0, [r5] movs r4, 0x84 lsls r4, 1 adds r0, r4 movs r1, 0x1 strh r1, [r0] _08025774: movs r6, 0x1 ldr r1, [r5] adds r2, r1, 0 adds r2, 0xD0 ldr r0, _080257D8 str r0, [r2] adds r1, 0xD4 movs r0, 0xB str r0, [r1] bl sub_8090A34 cmp r0, 0x13 bgt _08025796 ldr r0, [r5] ldrb r0, [r0, 0x18] cmp r0, 0 bne _080257A0 _08025796: ldr r0, [r5] movs r1, 0x85 lsls r1, 1 adds r0, r1 strh r6, [r0] _080257A0: adds r6, 0x1 adds r0, r7, 0 bl sub_8025EC4 lsls r0, 24 cmp r0, 0 beq _08025810 ldr r0, _080257D0 ldr r2, [r0] lsls r3, r6, 3 adds r0, r2, 0 adds r0, 0xC8 adds r0, r3 ldr r1, _080257DC str r1, [r0] adds r2, 0xCC adds r2, r3 movs r0, 0x9 str r0, [r2] adds r6, 0x1 b _08025810 .align 2, 0 _080257CC: .4byte gUnknown_203B45C _080257D0: .4byte gUnknown_203B2B4 _080257D4: .4byte gUnknown_80DD2B0 _080257D8: .4byte gUnknown_80DD2B8 _080257DC: .4byte gUnknown_80DD2C0 _080257E0: adds r1, r4, 0 adds r1, 0xC8 ldr r0, _080258D4 str r0, [r1] adds r1, 0x4 movs r0, 0x7 str r0, [r1] ldr r0, [r4, 0x1C] movs r2, 0x8 ldrsh r0, [r0, r2] bl sub_808DBA8 ldrb r1, [r4, 0xC] lsls r0, 24 lsrs r0, 24 cmp r1, r0 bne _0802580E ldr r0, [r5] movs r4, 0x84 lsls r4, 1 adds r0, r4 movs r1, 0x1 strh r1, [r0] _0802580E: movs r6, 0x1 _08025810: movs r0, 0x8 ldrsh r1, [r7, r0] ldr r0, _080258D8 cmp r1, r0 bne _08025840 adds r0, r7, 0 bl sub_808D824 lsls r0, 24 cmp r0, 0 beq _08025840 ldr r0, _080258DC ldr r2, [r0] lsls r3, r6, 3 adds r0, r2, 0 adds r0, 0xC8 adds r0, r3 ldr r1, _080258E0 str r1, [r0] adds r2, 0xCC adds r2, r3 movs r0, 0x8 str r0, [r2] adds r6, 0x1 _08025840: ldr r4, _080258DC ldr r5, [r4] lsls r1, r6, 3 adds r3, r5, 0 adds r3, 0xC8 adds r2, r3, r1 ldr r0, _080258E4 str r0, [r2] adds r7, r5, 0 adds r7, 0xCC adds r1, r7, r1 movs r0, 0x4 str r0, [r1] adds r6, 0x1 lsls r1, r6, 3 adds r2, r3, r1 ldr r0, _080258E8 str r0, [r2] adds r1, r7, r1 movs r0, 0x6 str r0, [r1] adds r6, 0x1 lsls r1, r6, 3 adds r2, r3, r1 ldr r0, _080258EC str r0, [r2] adds r1, r7, r1 movs r0, 0x5 str r0, [r1] adds r6, 0x1 lsls r1, r6, 3 adds r3, r1 movs r0, 0 str r0, [r3] adds r1, r7, r1 movs r0, 0x1 str r0, [r1] movs r3, 0 mov r12, r4 cmp r3, r6 bge _080258B2 movs r1, 0x84 lsls r1, 1 adds r4, r5, r1 adds r2, r7, 0 _0802589A: ldrh r0, [r4] cmp r0, 0 bne _080258A8 ldr r1, [r2] ldr r0, [r5, 0x70] cmp r1, r0 beq _08025916 _080258A8: adds r4, 0x2 adds r2, 0x8 adds r3, 0x1 cmp r3, r6 blt _0802589A _080258B2: movs r3, 0 cmp r3, r6 bge _08025916 mov r2, r12 ldr r1, [r2] movs r4, 0x84 lsls r4, 1 adds r0, r1, r4 ldrh r0, [r0] cmp r0, 0 bne _080258F0 adds r0, r1, 0 adds r0, 0xCC ldr r0, [r0] str r0, [r1, 0x70] b _08025916 .align 2, 0 _080258D4: .4byte gUnknown_80DD2CC _080258D8: .4byte 0x0000013d _080258DC: .4byte gUnknown_203B2B4 _080258E0: .4byte gUnknown_80DD2D4 _080258E4: .4byte gUnknown_80DD2DC _080258E8: .4byte gUnknown_80DD2E4 _080258EC: .4byte gUnknown_80DD2EC _080258F0: adds r3, 0x1 cmp r3, r6 bge _08025916 mov r0, r12 ldr r2, [r0] lsls r0, r3, 1 movs r4, 0x84 lsls r4, 1 adds r1, r2, r4 adds r1, r0 ldrh r0, [r1] cmp r0, 0 bne _080258F0 lsls r0, r3, 3 adds r1, r2, 0 adds r1, 0xCC adds r1, r0 ldr r0, [r1] str r0, [r2, 0x70] _08025916: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8025728 thumb_func_start sub_802591C sub_802591C: push {r4-r7,lr} ldr r5, _080259B8 ldr r0, [r5] movs r7, 0x84 lsls r7, 1 adds r0, r7 movs r1, 0 movs r2, 0x10 bl MemoryFill16 ldr r1, [r5] adds r2, r1, 0 adds r2, 0xC8 ldr r0, _080259BC str r0, [r2] adds r1, 0xCC movs r0, 0xA str r0, [r1] bl sub_8090A34 cmp r0, 0 bne _08025952 ldr r0, [r5] adds r1, r7, 0 adds r0, r1 movs r1, 0x1 strh r1, [r0] _08025952: ldr r4, [r5] movs r2, 0x1 adds r1, r4, 0 adds r1, 0xD0 ldr r0, _080259C0 ldr r0, [r0] str r0, [r1] adds r1, 0x4 movs r0, 0x4 str r0, [r1] movs r6, 0x2 adds r1, 0x4 movs r0, 0 str r0, [r1] adds r0, r4, 0 adds r0, 0xDC str r2, [r0] movs r3, 0 mov r12, r4 adds r4, r7 mov r2, r12 adds r2, 0xCC _0802597E: ldrh r0, [r4] cmp r0, 0 bne _0802598E ldr r1, [r2] mov r7, r12 ldr r0, [r7, 0x74] cmp r1, r0 beq _080259E8 _0802598E: adds r4, 0x2 adds r2, 0x8 adds r3, 0x1 cmp r3, r6 blt _0802597E movs r3, 0 cmp r3, r6 bge _080259E8 ldr r1, [r5] movs r2, 0x84 lsls r2, 1 adds r0, r1, r2 ldrh r0, [r0] cmp r0, 0 bne _080259C4 adds r0, r1, 0 adds r0, 0xCC ldr r0, [r0] str r0, [r1, 0x74] b _080259E8 .align 2, 0 _080259B8: .4byte gUnknown_203B2B4 _080259BC: .4byte gUnknown_80DD2B0 _080259C0: .4byte gUnknown_80D4970 _080259C4: adds r3, 0x1 cmp r3, r6 bge _080259E8 ldr r2, [r5] lsls r0, r3, 1 movs r4, 0x84 lsls r4, 1 adds r1, r2, r4 adds r1, r0 ldrh r0, [r1] cmp r0, 0 bne _080259C4 lsls r0, r3, 3 adds r1, r2, 0 adds r1, 0xCC adds r1, r0 ldr r0, [r1] str r0, [r2, 0x74] _080259E8: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_802591C thumb_func_start sub_80259F0 sub_80259F0: push {lr} movs r0, 0x1 bl sub_8023A94 cmp r0, 0x3 beq _08025A0C cmp r0, 0x3 bhi _08025A06 cmp r0, 0x2 beq _08025A74 b _08025A7E _08025A06: cmp r0, 0x4 beq _08025A40 b _08025A7E _08025A0C: bl sub_8023B44 ldr r1, _08025A38 ldr r1, [r1] strh r0, [r1, 0xE] ldr r3, _08025A3C movs r0, 0xE ldrsh r2, [r1, r0] movs r0, 0x58 muls r2, r0 ldr r0, [r3] adds r0, r2 str r0, [r1, 0x1C] movs r2, 0xE ldrsh r0, [r1, r2] adds r1, 0x18 bl sub_808D7DC movs r0, 0x3 bl sub_8025434 b _08025A7E .align 2, 0 _08025A38: .4byte gUnknown_203B2B4 _08025A3C: .4byte gUnknown_203B45C _08025A40: bl sub_8023B44 ldr r1, _08025A6C ldr r1, [r1] strh r0, [r1, 0xE] ldr r3, _08025A70 movs r0, 0xE ldrsh r2, [r1, r0] movs r0, 0x58 muls r2, r0 ldr r0, [r3] adds r0, r2 str r0, [r1, 0x1C] movs r2, 0xE ldrsh r0, [r1, r2] adds r1, 0x18 bl sub_808D7DC movs r0, 0x4 bl sub_8025434 b _08025A7E .align 2, 0 _08025A6C: .4byte gUnknown_203B2B4 _08025A70: .4byte gUnknown_203B45C _08025A74: bl sub_8023C60 movs r0, 0x13 bl sub_8025434 _08025A7E: pop {r0} bx r0 thumb_func_end sub_80259F0 thumb_func_start sub_8025A84 sub_8025A84: push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] bl sub_8023A94 ldr r4, _08025AC8 ldr r0, [r4] adds r0, 0x78 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _08025AB4 ldr r0, [r4] adds r0, 0x78 mov r1, sp bl sub_8013114 ldr r1, [sp] cmp r1, 0x1 beq _08025AB4 ldr r0, [r4] str r1, [r0, 0x70] _08025AB4: ldr r0, [sp] subs r0, 0x1 cmp r0, 0xA bls _08025ABE b _08025BC2 _08025ABE: lsls r0, 2 ldr r1, _08025ACC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08025AC8: .4byte gUnknown_203B2B4 _08025ACC: .4byte _08025AD0 .align 2, 0 _08025AD0: .4byte _08025BBC .4byte _08025BC2 .4byte _08025BC2 .4byte _08025BAC .4byte _08025BB4 .4byte _08025B9C .4byte _08025AFC .4byte _08025BA4 .4byte _08025B70 .4byte _08025B20 .4byte _08025B28 _08025AFC: ldr r4, _08025B1C ldr r0, [r4] ldr r0, [r0, 0x1C] movs r1, 0x8 ldrsh r0, [r0, r1] bl sub_808DBA8 ldr r1, [r4] strb r0, [r1, 0xD] bl sub_8023C60 movs r0, 0x13 bl sub_8025434 b _08025BC2 .align 2, 0 _08025B1C: .4byte gUnknown_203B2B4 _08025B20: movs r0, 0xB bl sub_8025434 b _08025BC2 _08025B28: ldr r0, _08025B68 bl sub_8011988 ldr r4, _08025B6C ldr r1, [r4] ldrb r0, [r1, 0x18] cmp r0, 0 beq _08025B40 adds r0, r1, 0 adds r0, 0x18 bl sub_8091274 _08025B40: bl sub_80910B4 ldr r0, [r4] movs r1, 0 strb r1, [r0, 0x18] ldr r0, [r4] strb r1, [r0, 0x19] ldr r1, [r4] movs r2, 0xE ldrsh r0, [r1, r2] adds r1, 0x18 bl sub_808D800 bl nullsub_104 movs r0, 0xA bl sub_8025434 b _08025BC2 .align 2, 0 _08025B68: .4byte 0x0000014d _08025B6C: .4byte gUnknown_203B2B4 _08025B70: ldr r0, _08025B94 ldr r0, [r0] ldr r2, [r0, 0x1C] ldrh r1, [r2] ldr r0, _08025B98 ands r0, r1 strh r0, [r2] bl nullsub_104 bl sub_808ED00 bl sub_8023C60 movs r0, 0x7 bl sub_8025434 b _08025BC2 .align 2, 0 _08025B94: .4byte gUnknown_203B2B4 _08025B98: .4byte 0x0000fffd _08025B9C: movs r0, 0xF bl sub_8025434 b _08025BC2 _08025BA4: movs r0, 0x12 bl sub_8025434 b _08025BC2 _08025BAC: movs r0, 0x4 bl sub_8025434 b _08025BC2 _08025BB4: movs r0, 0x5 bl sub_8025434 b _08025BC2 _08025BBC: movs r0, 0x2 bl sub_8025434 _08025BC2: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_8025A84 thumb_func_start sub_8025BCC sub_8025BCC: push {lr} bl sub_80244E4 cmp r0, 0x1 bls _08025BE4 cmp r0, 0x3 bhi _08025BE4 bl sub_802453C movs r0, 0x2 bl sub_8025434 _08025BE4: pop {r0} bx r0 thumb_func_end sub_8025BCC thumb_func_start sub_8025BE8 sub_8025BE8: push {lr} bl sub_801BF48 cmp r0, 0x1 bls _08025C00 cmp r0, 0x3 bhi _08025C00 bl sub_801BF98 movs r0, 0x2 bl sub_8025434 _08025C00: pop {r0} bx r0 thumb_func_end sub_8025BE8 thumb_func_start sub_8025C04 sub_8025C04: push {r4,lr} movs r0, 0x1 bl sub_801A6E8 cmp r0, 0x4 bhi _08025CAE lsls r0, 2 ldr r1, _08025C1C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08025C1C: .4byte _08025C20 .align 2, 0 _08025C20: .4byte _08025CAE .4byte _08025CAE .4byte _08025CA4 .4byte _08025C34 .4byte _08025C68 _08025C34: bl sub_801A8AC ldr r4, _08025C60 ldr r2, [r4] str r0, [r2, 0x10] ldr r3, _08025C64 ldr r1, [r3] lsls r0, 2 adds r1, r0 ldrb r0, [r1, 0x2] strb r0, [r2, 0x14] ldr r2, [r4] ldr r1, [r3] ldr r0, [r2, 0x10] lsls r0, 2 adds r1, r0 ldrb r0, [r1, 0x1] strb r0, [r2, 0x15] movs r0, 0xD bl sub_8025434 b _08025CAE .align 2, 0 _08025C60: .4byte gUnknown_203B2B4 _08025C64: .4byte gUnknown_203B460 _08025C68: bl sub_801A8AC ldr r4, _08025C9C ldr r2, [r4] str r0, [r2, 0x10] ldr r3, _08025CA0 ldr r1, [r3] lsls r0, 2 adds r1, r0 ldrb r0, [r1, 0x2] strb r0, [r2, 0x14] ldr r2, [r4] ldr r1, [r3] ldr r0, [r2, 0x10] lsls r0, 2 adds r1, r0 ldrb r0, [r1, 0x1] strb r0, [r2, 0x15] movs r0, 0 bl sub_8099690 movs r0, 0xE bl sub_8025434 b _08025CAE .align 2, 0 _08025C9C: .4byte gUnknown_203B2B4 _08025CA0: .4byte gUnknown_203B460 _08025CA4: bl sub_801A928 movs r0, 0x2 bl sub_8025434 _08025CAE: pop {r4} pop {r0} bx r0 thumb_func_end sub_8025C04 thumb_func_start sub_8025CB4 sub_8025CB4: push {r4-r6,lr} sub sp, 0x14 movs r0, 0 str r0, [sp, 0xC] bl sub_801A6E8 ldr r4, _08025CF4 ldr r0, [r4] adds r0, 0x78 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _08025CE4 ldr r0, [r4] adds r0, 0x78 add r1, sp, 0xC bl sub_8013114 ldr r1, [sp, 0xC] cmp r1, 0x1 beq _08025CE4 ldr r0, [r4] str r1, [r0, 0x74] _08025CE4: ldr r0, [sp, 0xC] cmp r0, 0x4 beq _08025D74 cmp r0, 0x4 bgt _08025CF8 cmp r0, 0x1 beq _08025D82 b _08025D88 .align 2, 0 _08025CF4: .4byte gUnknown_203B2B4 _08025CF8: cmp r0, 0xA bne _08025D88 movs r6, 0x8 ldr r0, _08025D68 bl sub_8011988 ldr r5, _08025D6C ldr r0, [r5] ldr r0, [r0, 0x10] bl sub_80911F8 bl sub_80910B4 ldr r1, [r5] ldrb r0, [r1, 0x18] cmp r0, 0 beq _08025D24 adds r0, r1, 0 adds r0, 0x18 bl sub_8091274 movs r6, 0x9 _08025D24: add r4, sp, 0x10 ldr r1, [r5] adds r1, 0x14 adds r0, r4, 0 bl sub_8090B64 movs r1, 0 str r1, [sp] mov r0, sp strb r1, [r0, 0x4] mov r1, sp movs r0, 0x1 strb r0, [r1, 0x8] strb r0, [r4] ldr r0, _08025D70 adds r1, r4, 0 mov r2, sp bl sub_8090E14 ldr r1, [r5] movs r2, 0xE ldrsh r0, [r1, r2] adds r1, 0x14 bl sub_808D800 bl sub_801A928 bl nullsub_104 adds r0, r6, 0 bl sub_8025434 b _08025D88 .align 2, 0 _08025D68: .4byte 0x0000014d _08025D6C: .4byte gUnknown_203B2B4 _08025D70: .4byte gUnknown_202DEA8 _08025D74: movs r0, 0 bl sub_8099690 movs r0, 0xE bl sub_8025434 b _08025D88 _08025D82: movs r0, 0xC bl sub_8025434 _08025D88: add sp, 0x14 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8025CB4 thumb_func_start sub_8025D90 sub_8025D90: push {lr} bl sub_801B410 cmp r0, 0x1 bls _08025DA8 cmp r0, 0x3 bhi _08025DA8 bl sub_801B450 movs r0, 0xC bl sub_8025434 _08025DA8: pop {r0} bx r0 thumb_func_end sub_8025D90 thumb_func_start sub_8025DAC sub_8025DAC: push {lr} movs r0, 0x1 bl sub_801EF38 cmp r0, 0x3 beq _08025DC6 cmp r0, 0x3 bhi _08025DC2 cmp r0, 0x2 beq _08025DE4 b _08025DFE _08025DC2: cmp r0, 0x4 bne _08025DFE _08025DC6: bl sub_801F194 ldr r1, _08025DE0 ldr r1, [r1] str r0, [r1, 0x20] lsls r0, 3 adds r0, r1, r0 ldrh r0, [r0, 0x2A] strh r0, [r1, 0x24] movs r0, 0x11 bl sub_8025434 b _08025DFE .align 2, 0 _08025DE0: .4byte gUnknown_203B2B4 _08025DE4: bl sub_801F214 ldr r0, _08025E04 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x28 ldr r1, [r1, 0x1C] adds r1, 0x2C bl sub_8094060 movs r0, 0x2 bl sub_8025434 _08025DFE: pop {r0} bx r0 .align 2, 0 _08025E04: .4byte gUnknown_203B2B4 thumb_func_end sub_8025DAC thumb_func_start sub_8025E08 sub_8025E08: push {lr} bl sub_801F890 cmp r0, 0x1 bls _08025E20 cmp r0, 0x3 bhi _08025E20 bl sub_801F8D0 movs r0, 0x10 bl sub_8025434 _08025E20: pop {r0} bx r0 thumb_func_end sub_8025E08 thumb_func_start sub_8025E24 sub_8025E24: push {lr} bl sub_8016080 cmp r0, 0x3 bhi _08025E40 cmp r0, 0x2 bcc _08025E40 bl sub_80160D8 bl nullsub_104 movs r0, 0x2 bl sub_8025434 _08025E40: pop {r0} bx r0 thumb_func_end sub_8025E24 thumb_func_start sub_8025E44 sub_8025E44: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08025E5C ldr r0, _08025E64 ldr r0, [r0] ldr r0, [r0, 0x8] bl sub_8025434 _08025E5C: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _08025E64: .4byte gUnknown_203B2B4 thumb_func_end sub_8025E44 thumb_func_start sub_8025E68 sub_8025E68: push {r4-r6,lr} sub sp, 0x14 adds r6, r0, 0 adds r5, r1, 0 bl sub_8008C54 adds r0, r6, 0 bl sub_80073B8 add r4, sp, 0x10 adds r0, r4, 0 adds r1, r5, 0 bl sub_8090B64 movs r5, 0 str r5, [sp, 0x4] add r0, sp, 0x4 strb r5, [r0, 0x4] adds r1, r0, 0 movs r0, 0x1 strb r0, [r1, 0x8] strb r0, [r4] ldr r0, _08025EBC adds r1, r4, 0 add r2, sp, 0x4 bl sub_8090E14 ldr r2, _08025EC0 str r5, [sp] movs r0, 0x4 movs r1, 0x3 adds r3, r6, 0 bl sub_8014FF0 adds r0, r6, 0 bl sub_80073E0 add sp, 0x14 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08025EBC: .4byte gUnknown_202DE58 _08025EC0: .4byte gUnknown_80DD2F8 thumb_func_end sub_8025E68 thumb_func_start sub_8025EC4 sub_8025EC4: push {lr} adds r1, r0, 0 ldrb r0, [r1, 0x2] cmp r0, 0 bne _08025EE8 movs r2, 0 ldrb r0, [r1, 0x4] cmp r0, 0x41 bne _08025ED8 movs r2, 0x1 _08025ED8: cmp r2, 0 beq _08025EEC movs r0, 0x8 bl sub_80023E4 lsls r0, 24 cmp r0, 0 bne _08025EEC _08025EE8: movs r0, 0 b _08025EEE _08025EEC: movs r0, 0x1 _08025EEE: pop {r1} bx r1 thumb_func_end sub_8025EC4 thumb_func_start sub_8025EF4 sub_8025EF4: push {r4-r6,lr} adds r4, r0, 0 ldr r6, _08025F1C movs r0, 0xA0 lsls r0, 2 movs r1, 0x8 bl MemoryAlloc adds r1, r0, 0 str r1, [r6] str r4, [r1, 0x18] movs r5, 0 ldr r0, _08025F20 ldr r0, [r0] cmp r4, r0 bne _08025F24 strh r5, [r1, 0xA] adds r4, r6, 0 b _08025F48 .align 2, 0 _08025F1C: .4byte gUnknown_203B2B8 _08025F20: .4byte gUnknown_203B45C _08025F24: adds r5, 0x1 movs r0, 0xCE lsls r0, 1 ldr r4, _08025F60 cmp r5, r0 bgt _08025F48 ldr r3, [r4] ldr r2, _08025F64 lsls r0, r5, 16 asrs r0, 16 movs r1, 0x58 muls r1, r0 ldr r0, [r2] adds r0, r1 ldr r1, [r3, 0x18] cmp r1, r0 bne _08025F24 strh r5, [r3, 0xA] _08025F48: ldr r1, [r4] movs r0, 0 str r0, [r1, 0x70] str r0, [r1, 0x74] str r0, [r1, 0x78] strb r0, [r1, 0x8] bl sub_8026074 movs r0, 0x1 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08025F60: .4byte gUnknown_203B2B8 _08025F64: .4byte gUnknown_203B45C thumb_func_end sub_8025EF4 thumb_func_start sub_8025F68 sub_8025F68: push {lr} ldr r0, _08025F80 ldr r0, [r0] ldr r0, [r0] cmp r0, 0x19 bhi _0802603A lsls r0, 2 ldr r1, _08025F84 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08025F80: .4byte gUnknown_203B2B8 _08025F84: .4byte _08025F88 .align 2, 0 _08025F88: .4byte _08025FF0 .4byte _08025FF8 .4byte _08025FF8 .4byte _08025FFE .4byte _08026004 .4byte _0802603A .4byte _0802603A .4byte _0802603A .4byte _0802603A .4byte _0802603A .4byte _0802603A .4byte _0802603A .4byte _0802600A .4byte _08026010 .4byte _08026016 .4byte _0802603A .4byte _0802603A .4byte _0802603A .4byte _0802601C .4byte _0802601C .4byte _08026022 .4byte _08026028 .4byte _0802602E .4byte _0802602E .4byte _08026034 .4byte _08026040 _08025FF0: movs r0, 0x1 bl sub_8026074 b _08026044 _08025FF8: bl sub_80268CC b _08026044 _08025FFE: bl sub_8026A78 b _08026044 _08026004: bl sub_8026A94 b _08026044 _0802600A: bl sub_8026AB0 b _08026044 _08026010: bl sub_8026B10 b _08026044 _08026016: bl sub_8026B48 b _08026044 _0802601C: bl sub_8026B64 b _08026044 _08026022: bl sub_8026C14 b _08026044 _08026028: bl sub_8026CF0 b _08026044 _0802602E: bl sub_8026D0C b _08026044 _08026034: bl sub_8026D6C b _08026044 _0802603A: bl sub_8026D88 b _08026044 _08026040: movs r0, 0x3 b _08026046 _08026044: movs r0, 0 _08026046: pop {r1} bx r1 thumb_func_end sub_8025F68 thumb_func_start sub_802604C sub_802604C: ldr r0, _08026054 ldr r0, [r0] ldrb r0, [r0, 0x8] bx lr .align 2, 0 _08026054: .4byte gUnknown_203B2B8 thumb_func_end sub_802604C thumb_func_start sub_8026058 sub_8026058: push {r4,lr} ldr r4, _08026070 ldr r0, [r4] cmp r0, 0 beq _0802606A bl MemoryFree movs r0, 0 str r0, [r4] _0802606A: pop {r4} pop {r0} bx r0 .align 2, 0 _08026070: .4byte gUnknown_203B2B8 thumb_func_end sub_8026058 thumb_func_start sub_8026074 sub_8026074: push {lr} ldr r1, _08026088 ldr r1, [r1] str r0, [r1] bl sub_802608C bl sub_80261D0 pop {r0} bx r0 .align 2, 0 _08026088: .4byte gUnknown_203B2B8 thumb_func_end sub_8026074 thumb_func_start sub_802608C sub_802608C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r4, _080260B8 ldr r0, [r4] movs r5, 0x88 lsls r5, 2 adds r0, r5 bl sub_8006518 ldr r0, [r4] ldr r0, [r0] cmp r0, 0x1 blt _08026178 cmp r0, 0x2 ble _080260BC cmp r0, 0x14 beq _0802614C b _08026178 .align 2, 0 _080260B8: .4byte gUnknown_203B2B8 _080260BC: ldr r0, _0802613C mov r12, r0 ldr r1, _08026140 mov r8, r1 mov r9, r4 mov r10, r5 movs r3, 0 movs r2, 0x3 _080260CC: mov r5, r9 ldr r1, [r5] adds r1, r3 add r1, r10 ldr r0, _08026144 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} adds r3, 0x18 subs r2, 0x1 cmp r2, 0 bge _080260CC ldr r1, [r4] movs r6, 0x88 lsls r6, 2 adds r1, r6 mov r0, r12 ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} ldr r1, [r4] movs r0, 0x9A lsls r0, 2 adds r1, r0 mov r0, r8 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r6,r7} stm r1!, {r2,r6,r7} bl sub_80264CC ldr r2, [r4] movs r0, 0x94 lsls r0, 2 adds r2, r0 ldr r1, _08026148 ldm r1!, {r3,r5,r6} stm r2!, {r3,r5,r6} ldm r1!, {r3,r5,r7} stm r2!, {r3,r5,r7} ldr r1, [r4] adds r0, r1, r0 movs r6, 0xB6 lsls r6, 1 adds r1, r6 bl sub_8012CAC ldr r0, [r4] movs r7, 0x97 lsls r7, 2 adds r0, r7 movs r1, 0x9 strh r1, [r0] b _080261A2 .align 2, 0 _0802613C: .4byte gUnknown_80DD358 _08026140: .4byte gUnknown_80DD370 _08026144: .4byte gUnknown_80DD310 _08026148: .4byte gUnknown_80DD328 _0802614C: bl sub_802678C ldr r2, [r4] movs r0, 0x94 lsls r0, 2 adds r2, r0 ldr r1, _08026174 ldm r1!, {r3,r5,r6} stm r2!, {r3,r5,r6} ldm r1!, {r3,r5,r7} stm r2!, {r3,r5,r7} ldr r1, [r4] adds r0, r1, r0 movs r6, 0xB6 lsls r6, 1 adds r1, r6 bl sub_8012CAC b _080261A2 .align 2, 0 _08026174: .4byte gUnknown_80DD340 _08026178: ldr r7, _080261C8 mov r8, r7 movs r0, 0x88 lsls r0, 2 mov r9, r0 ldr r4, _080261CC movs r3, 0 movs r2, 0x3 _08026188: mov r5, r8 ldr r1, [r5] adds r1, r3 add r1, r9 adds r0, r4, 0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} adds r3, 0x18 subs r2, 0x1 cmp r2, 0 bge _08026188 _080261A2: bl sub_8004914 ldr r0, _080261C8 ldr r0, [r0] movs r6, 0x88 lsls r6, 2 adds r0, r6 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080261C8: .4byte gUnknown_203B2B8 _080261CC: .4byte gUnknown_80DD310 thumb_func_end sub_802608C thumb_func_start sub_80261D0 sub_80261D0: push {r4,r5,lr} sub sp, 0x18 ldr r1, _080261EC ldr r0, [r1] ldr r0, [r0] adds r4, r1, 0 cmp r0, 0x19 bls _080261E2 b _080264BA _080261E2: lsls r0, 2 ldr r1, _080261F0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080261EC: .4byte gUnknown_203B2B8 _080261F0: .4byte _080261F4 .align 2, 0 _080261F4: .4byte _080264BA .4byte _0802625C .4byte _080262A8 .4byte _080262EC .4byte _080262FA .4byte _080263F8 .4byte _0802640C .4byte _08026420 .4byte _08026434 .4byte _08026448 .4byte _0802648A .4byte _080264A8 .4byte _08026392 .4byte _080263AC .4byte _08026306 .4byte _08026464 .4byte _08026474 .4byte _08026484 .4byte _08026310 .4byte _0802631E .4byte _08026326 .4byte _08026350 .4byte _08026362 .4byte _08026388 .4byte _080263E0 .4byte _080264BA _0802625C: movs r0, 0x3 bl sub_8026E08 ldr r5, _080262A0 ldr r1, [r5] adds r1, 0x14 movs r0, 0 bl sub_8026DAC ldr r4, _080262A4 ldr r0, [r5] ldr r1, [r0, 0x18] adds r0, r4, 0 movs r2, 0x7 bl sub_808D9AC adds r4, 0x50 ldr r0, [r5] ldr r1, [r0, 0x18] adds r0, r4, 0 movs r2, 0x6 bl sub_808D9AC ldr r2, [r5] adds r0, r2, 0 adds r0, 0x7C movs r3, 0xB6 lsls r3, 1 adds r1, r2, r3 movs r4, 0x83 lsls r4, 2 adds r3, r2, r4 ldr r2, [r2, 0x70] b _0802633E .align 2, 0 _080262A0: .4byte gUnknown_203B2B8 _080262A4: .4byte gUnknown_202DF98 _080262A8: movs r0, 0x3 bl sub_8026E08 ldr r5, _080262E4 ldr r1, [r5] adds r1, 0x14 movs r0, 0 bl sub_8026DAC ldr r4, _080262E8 ldr r0, [r5] ldr r1, [r0, 0x18] adds r0, r4, 0 movs r2, 0x7 bl sub_808D9AC adds r4, 0x50 ldr r0, [r5] ldr r1, [r0, 0x18] adds r0, r4, 0 movs r2, 0x6 bl sub_808D9AC ldr r0, [r5] adds r0, 0x7C movs r1, 0x1 bl sub_8012EA4 b _080264BA .align 2, 0 _080262E4: .4byte gUnknown_203B2B8 _080262E8: .4byte gUnknown_202DF98 _080262EC: ldr r0, [r4] movs r1, 0xA ldrsh r0, [r0, r1] movs r1, 0x2 bl sub_8024458 b _080264BA _080262FA: ldr r0, [r4] movs r3, 0xA ldrsh r0, [r0, r3] bl sub_801BEEC b _080264BA _08026306: ldr r0, [r4] ldr r0, [r0, 0x18] bl sub_80227B8 b _080264BA _08026310: movs r0, 0x1 movs r1, 0 movs r2, 0 movs r3, 0xA bl sub_801A5D8 b _080264BA _0802631E: movs r0, 0x1 bl sub_801A8D0 b _080264BA _08026326: bl sub_801A9E0 ldr r0, _0802634C ldr r2, [r0] adds r0, r2, 0 adds r0, 0xCC movs r4, 0xB6 lsls r4, 1 adds r1, r2, r4 adds r4, 0xA0 adds r3, r2, r4 ldr r2, [r2, 0x74] _0802633E: str r2, [sp] movs r2, 0x2 str r2, [sp, 0x4] movs r2, 0 bl sub_8012D60 b _080264BA .align 2, 0 _0802634C: .4byte gUnknown_203B2B8 _08026350: ldr r1, [r4] adds r1, 0x10 add r0, sp, 0x14 bl sub_8090B64 add r0, sp, 0x14 bl sub_801B3C0 b _080264BA _08026362: ldr r1, [r4] adds r0, r1, 0 adds r0, 0x28 ldr r1, [r1, 0x18] adds r1, 0x2C bl sub_809401C ldr r2, [r4] movs r0, 0xA ldrsh r1, [r2, r0] adds r2, 0x28 movs r0, 0 str r0, [sp] str r0, [sp, 0x4] movs r0, 0x3 movs r3, 0 bl sub_801EE10 b _080264BA _08026388: movs r0, 0x1 movs r1, 0 bl sub_801F1B0 b _080264BA _08026392: bl sub_8026878 ldr r0, _080263A4 ldr r1, _080263A8 ldr r3, [r1] movs r1, 0xDE lsls r1, 1 adds r3, r1 b _080263BC .align 2, 0 _080263A4: .4byte gUnknown_80DD388 _080263A8: .4byte gUnknown_203B2B8 _080263AC: bl sub_8026878 ldr r0, _080263D8 ldr r1, _080263DC ldr r3, [r1] movs r4, 0xDE lsls r4, 1 adds r3, r4 _080263BC: movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] adds r1, 0xFD str r1, [sp, 0x10] movs r1, 0 movs r2, 0x3 bl sub_8014248 b _080264BA .align 2, 0 _080263D8: .4byte gUnknown_80DD420 _080263DC: .4byte gUnknown_203B2B8 _080263E0: ldr r2, [r4] ldr r0, [r2, 0x20] adds r1, r2, 0 adds r1, 0x28 adds r2, 0x68 bl sub_8093560 ldr r0, [r4] adds r0, 0x68 bl sub_801F808 b _080264BA _080263F8: ldr r1, [r4] movs r0, 0x19 str r0, [r1, 0x4] movs r0, 0xCF bl sub_8011988 ldr r0, _08026408 b _08026492 .align 2, 0 _08026408: .4byte gUnknown_80DD4C4 _0802640C: ldr r1, [r4] movs r0, 0x19 str r0, [r1, 0x4] movs r0, 0xCF bl sub_8011988 ldr r0, _0802641C b _08026492 .align 2, 0 _0802641C: .4byte gUnknown_80DD4F4 _08026420: ldr r1, [r4] movs r0, 0x19 str r0, [r1, 0x4] movs r0, 0xCC bl sub_8011988 ldr r0, _08026430 b _08026492 .align 2, 0 _08026430: .4byte gUnknown_80DD534 _08026434: ldr r1, [r4] movs r0, 0x9 str r0, [r1, 0x4] movs r0, 0xCA bl sub_8011988 ldr r0, _08026444 b _08026492 .align 2, 0 _08026444: .4byte gUnknown_80DD564 _08026448: bl sub_8026FA4 ldr r4, _08026460 ldr r0, [r4] ldr r0, [r0, 0x18] bl sub_808D31C ldr r1, [r4] movs r0, 0x1 strb r0, [r1, 0x8] b _080264BA .align 2, 0 _08026460: .4byte gUnknown_203B2B8 _08026464: ldr r1, [r4] movs r0, 0x2 str r0, [r1, 0x4] ldr r0, _08026470 b _08026492 .align 2, 0 _08026470: .4byte gUnknown_80DD594 _08026474: ldr r1, [r4] movs r0, 0x2 str r0, [r1, 0x4] ldr r0, _08026480 b _08026492 .align 2, 0 _08026480: .4byte gUnknown_80DD5B8 _08026484: ldr r1, [r4] movs r0, 0x2 b _0802648E _0802648A: ldr r1, [r4] movs r0, 0x19 _0802648E: str r0, [r1, 0x4] ldr r0, _080264A0 _08026492: ldr r3, _080264A4 movs r1, 0 movs r2, 0 bl sub_80141B4 b _080264BA .align 2, 0 _080264A0: .4byte gUnknown_80DD60C _080264A4: .4byte 0x00000101 _080264A8: ldr r1, [r4] movs r0, 0x19 str r0, [r1, 0x4] ldr r0, _080264C4 ldr r3, _080264C8 movs r1, 0 movs r2, 0 bl sub_80141B4 _080264BA: add sp, 0x18 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080264C4: .4byte gUnknown_80DD63C _080264C8: .4byte 0x00000101 thumb_func_end sub_80261D0 thumb_func_start sub_80264CC sub_80264CC: push {r4-r7,lr} mov r7, r8 push {r7} ldr r3, _08026574 ldr r4, _08026578 ldr r0, [r4] movs r1, 0xA ldrsh r2, [r0, r1] movs r1, 0x58 muls r2, r1 ldr r1, [r3] adds r1, r2 mov r8, r1 movs r2, 0x83 lsls r2, 2 adds r0, r2 movs r1, 0 movs r2, 0x14 bl MemoryFill16 ldr r1, [r4] ldr r0, [r1, 0x18] ldrb r0, [r0, 0x2] strb r0, [r1, 0x1C] ldr r1, [r4] movs r3, 0xA ldrsh r0, [r1, r3] adds r1, 0x14 bl sub_808D7DC mov r1, r8 ldrh r0, [r1] lsrs r0, 1 movs r5, 0x1 ands r0, r5 cmp r0, 0 beq _08026584 ldr r2, [r4] movs r3, 0xB6 lsls r3, 1 adds r1, r2, r3 ldr r0, _0802657C str r0, [r1] movs r0, 0xB8 lsls r0, 1 adds r1, r2, r0 movs r0, 0x7 str r0, [r1] mov r0, r8 bl sub_8026E88 lsls r0, 24 cmp r0, 0 bne _08026542 ldr r0, [r4] movs r1, 0x83 lsls r1, 2 adds r0, r1 strh r5, [r0] _08026542: movs r6, 0x1 movs r0, 0x8 bl sub_80023E4 lsls r0, 24 cmp r0, 0 beq _080265B4 mov r2, r8 ldrb r0, [r2, 0x2] cmp r0, 0 bne _080265B4 ldr r3, [r4] movs r2, 0x8 movs r4, 0xBA lsls r4, 1 adds r1, r3, r4 ldr r0, _08026580 str r0, [r1] movs r1, 0xBC lsls r1, 1 adds r0, r3, r1 str r2, [r0] movs r6, 0x2 b _080265B4 .align 2, 0 _08026574: .4byte gUnknown_203B45C _08026578: .4byte gUnknown_203B2B8 _0802657C: .4byte gUnknown_80DD664 _08026580: .4byte gUnknown_80DD670 _08026584: ldr r2, [r4] movs r3, 0xB6 lsls r3, 1 adds r1, r2, r3 ldr r0, _08026734 str r0, [r1] movs r0, 0xB8 lsls r0, 1 adds r1, r2, r0 movs r0, 0x6 str r0, [r1] movs r1, 0xA ldrsh r0, [r2, r1] bl sub_808D750 lsls r0, 24 cmp r0, 0 bne _080265B2 ldr r0, [r4] movs r2, 0x83 lsls r2, 2 adds r0, r2 strh r5, [r0] _080265B2: movs r6, 0x1 _080265B4: ldr r4, _08026738 ldr r2, [r4] lsls r3, r6, 3 movs r7, 0xB6 lsls r7, 1 adds r0, r2, r7 adds r0, r3 ldr r1, _0802673C str r1, [r0] movs r5, 0xB8 lsls r5, 1 adds r2, r5 adds r2, r3 movs r0, 0xA str r0, [r2] bl sub_809177C lsls r0, 24 cmp r0, 0 bne _080265EC ldr r0, [r4] lsls r1, r6, 1 movs r3, 0x83 lsls r3, 2 adds r0, r3 adds r0, r1 movs r1, 0x1 strh r1, [r0] _080265EC: adds r6, 0x1 ldr r2, [r4] lsls r3, r6, 3 adds r0, r2, r7 adds r0, r3 ldr r1, _08026740 str r1, [r0] adds r2, r5 adds r2, r3 movs r0, 0xB str r0, [r2] bl sub_8090A34 cmp r0, 0 bne _0802661A ldr r0, [r4] lsls r1, r6, 1 movs r2, 0x83 lsls r2, 2 adds r0, r2 adds r0, r1 movs r1, 0x1 strh r1, [r0] _0802661A: adds r6, 0x1 ldr r2, [r4] lsls r3, r6, 3 adds r0, r2, r7 adds r0, r3 ldr r1, _08026744 str r1, [r0] adds r2, r5 adds r2, r3 movs r0, 0xC str r0, [r2] bl sub_8090A34 cmp r0, 0x13 bgt _08026640 ldr r0, [r4] ldrb r0, [r0, 0x14] cmp r0, 0 bne _08026650 _08026640: ldr r0, [r4] lsls r1, r6, 1 movs r3, 0x83 lsls r3, 2 adds r0, r3 adds r0, r1 movs r1, 0x1 strh r1, [r0] _08026650: adds r6, 0x1 mov r4, r8 ldrh r0, [r4] lsrs r0, 1 movs r5, 0x1 ands r0, r5 cmp r0, 0 bne _0802669A ldr r4, _08026738 ldr r3, [r4] lsls r2, r6, 3 movs r1, 0xB6 lsls r1, 1 adds r0, r3, r1 adds r0, r2 ldr r1, _08026748 str r1, [r0] movs r1, 0xB8 lsls r1, 1 adds r0, r3, r1 adds r0, r2 movs r1, 0x9 str r1, [r0] mov r0, r8 bl sub_8026EB8 lsls r0, 24 cmp r0, 0 bne _08026698 ldr r0, [r4] lsls r1, r6, 1 movs r2, 0x83 lsls r2, 2 adds r0, r2 adds r0, r1 strh r5, [r0] _08026698: adds r6, 0x1 _0802669A: ldr r4, _08026738 ldr r5, [r4] lsls r1, r6, 3 movs r0, 0xB6 lsls r0, 1 adds r3, r5, r0 adds r2, r3, r1 ldr r0, _0802674C str r0, [r2] movs r2, 0xB8 lsls r2, 1 adds r7, r5, r2 adds r1, r7, r1 movs r0, 0x4 str r0, [r1] adds r6, 0x1 lsls r1, r6, 3 adds r2, r3, r1 ldr r0, _08026750 str r0, [r2] adds r1, r7, r1 movs r0, 0xD str r0, [r1] adds r6, 0x1 lsls r1, r6, 3 adds r2, r3, r1 ldr r0, _08026754 str r0, [r2] adds r1, r7, r1 movs r0, 0x5 str r0, [r1] adds r6, 0x1 lsls r1, r6, 3 adds r3, r1 movs r0, 0 str r0, [r3] adds r1, r7, r1 movs r0, 0x1 str r0, [r1] movs r3, 0 mov r12, r4 cmp r3, r6 bge _08026710 adds r4, r7, 0 movs r0, 0x83 lsls r0, 2 adds r2, r5, r0 _080266F8: ldrh r0, [r2] cmp r0, 0 bne _08026706 ldr r1, [r4] ldr r0, [r5, 0x70] cmp r1, r0 beq _08026780 _08026706: adds r4, 0x8 adds r2, 0x2 adds r3, 0x1 cmp r3, r6 blt _080266F8 _08026710: movs r3, 0 cmp r3, r6 bge _08026780 mov r2, r12 ldr r1, [r2] movs r4, 0x83 lsls r4, 2 adds r0, r1, r4 ldrh r0, [r0] cmp r0, 0 bne _08026758 movs r2, 0xB8 lsls r2, 1 adds r0, r1, r2 ldr r0, [r0] str r0, [r1, 0x70] b _08026780 .align 2, 0 _08026734: .4byte gUnknown_80DD67C _08026738: .4byte gUnknown_203B2B8 _0802673C: .4byte gUnknown_80DD688 _08026740: .4byte gUnknown_80DD694 _08026744: .4byte gUnknown_80DD69C _08026748: .4byte gUnknown_80DD6A4 _0802674C: .4byte gUnknown_80DD6B4 _08026750: .4byte gUnknown_80DD6BC _08026754: .4byte gUnknown_80DD6C4 _08026758: adds r3, 0x1 cmp r3, r6 bge _08026780 mov r4, r12 ldr r2, [r4] lsls r0, r3, 1 movs r4, 0x83 lsls r4, 2 adds r1, r2, r4 adds r1, r0 ldrh r0, [r1] cmp r0, 0 bne _08026758 lsls r0, r3, 3 movs r3, 0xB8 lsls r3, 1 adds r1, r2, r3 adds r1, r0 ldr r0, [r1] str r0, [r2, 0x70] _08026780: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80264CC thumb_func_start sub_802678C sub_802678C: push {r4-r7,lr} ldr r5, _08026840 ldr r0, [r5] movs r7, 0x83 lsls r7, 2 adds r0, r7 movs r1, 0 movs r2, 0x14 bl MemoryFill16 ldr r2, [r5] movs r0, 0xB6 lsls r0, 1 adds r1, r2, r0 ldr r0, _08026844 str r0, [r1] movs r3, 0xB8 lsls r3, 1 adds r1, r2, r3 movs r0, 0xB str r0, [r1] bl sub_8090A34 cmp r0, 0 bne _080267C8 ldr r0, [r5] adds r4, r7, 0 adds r0, r4 movs r1, 0x1 strh r1, [r0] _080267C8: ldr r4, [r5] movs r2, 0x1 movs r0, 0xBA lsls r0, 1 adds r1, r4, r0 ldr r0, _08026848 ldr r0, [r0] str r0, [r1] movs r3, 0xBC lsls r3, 1 adds r1, r4, r3 movs r0, 0x4 str r0, [r1] movs r6, 0x2 movs r0, 0xBE lsls r0, 1 adds r1, r4, r0 movs r0, 0 str r0, [r1] movs r1, 0xC0 lsls r1, 1 adds r0, r4, r1 str r2, [r0] movs r3, 0 mov r12, r4 movs r4, 0xB8 lsls r4, 1 add r4, r12 mov r0, r12 adds r2, r0, r7 _08026804: ldrh r0, [r2] cmp r0, 0 bne _08026814 ldr r1, [r4] mov r7, r12 ldr r0, [r7, 0x74] cmp r1, r0 beq _08026872 _08026814: adds r4, 0x8 adds r2, 0x2 adds r3, 0x1 cmp r3, r6 blt _08026804 movs r3, 0 cmp r3, r6 bge _08026872 ldr r1, [r5] movs r2, 0x83 lsls r2, 2 adds r0, r1, r2 ldrh r0, [r0] cmp r0, 0 bne _0802684C movs r3, 0xB8 lsls r3, 1 adds r0, r1, r3 ldr r0, [r0] str r0, [r1, 0x74] b _08026872 .align 2, 0 _08026840: .4byte gUnknown_203B2B8 _08026844: .4byte gUnknown_80DD694 _08026848: .4byte gUnknown_80D4970 _0802684C: adds r3, 0x1 cmp r3, r6 bge _08026872 ldr r2, [r5] lsls r0, r3, 1 movs r4, 0x83 lsls r4, 2 adds r1, r2, r4 adds r1, r0 ldrh r0, [r1] cmp r0, 0 bne _0802684C lsls r0, r3, 3 movs r7, 0xB8 lsls r7, 1 adds r1, r2, r7 adds r1, r0 ldr r0, [r1] str r0, [r2, 0x74] _08026872: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_802678C thumb_func_start sub_8026878 sub_8026878: ldr r0, _080268C0 ldr r0, [r0] mov r12, r0 movs r3, 0 movs r1, 0xDE lsls r1, 1 add r1, r12 ldr r0, _080268C4 ldr r0, [r0] str r0, [r1] movs r1, 0xE0 lsls r1, 1 add r1, r12 movs r0, 0x2 str r0, [r1] movs r2, 0x1 movs r1, 0xE2 lsls r1, 1 add r1, r12 ldr r0, _080268C8 ldr r0, [r0] str r0, [r1] movs r1, 0xE4 lsls r1, 1 add r1, r12 movs r0, 0x3 str r0, [r1] movs r0, 0xE6 lsls r0, 1 add r0, r12 str r3, [r0] movs r0, 0xE8 lsls r0, 1 add r0, r12 str r2, [r0] bx lr .align 2, 0 _080268C0: .4byte gUnknown_203B2B8 _080268C4: .4byte gUnknown_80D4920 _080268C8: .4byte gUnknown_80D4928 thumb_func_end sub_8026878 thumb_func_start sub_80268CC sub_80268CC: push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] ldr r4, _0802690C ldr r0, [r4] adds r0, 0x7C bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _080268F8 ldr r0, [r4] adds r0, 0x7C mov r1, sp bl sub_8013114 ldr r1, [sp] cmp r1, 0x1 beq _080268F8 ldr r0, [r4] str r1, [r0, 0x70] _080268F8: ldr r0, [sp] subs r0, 0x1 cmp r0, 0xC bls _08026902 b _08026A6E _08026902: lsls r0, 2 ldr r1, _08026910 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802690C: .4byte gUnknown_203B2B8 _08026910: .4byte _08026914 .align 2, 0 _08026914: .4byte _08026A68 .4byte _08026A6E .4byte _08026A6E .4byte _08026A58 .4byte _08026A60 .4byte _08026948 .4byte _0802698C .4byte _080269B4 .4byte _080269F0 .4byte _08026A00 .4byte _08026A08 .4byte _08026A10 .4byte _080269F8 _08026948: ldr r4, _08026984 ldr r0, [r4] movs r1, 0xA ldrsh r0, [r0, r1] bl sub_808D750 lsls r0, 24 cmp r0, 0 beq _08026976 ldr r0, [r4] movs r2, 0xA ldrsh r1, [r0, r2] movs r0, 0x58 muls r1, r0 ldr r0, _08026988 ldr r0, [r0] adds r1, r0 ldrh r2, [r1] movs r0, 0x2 orrs r0, r2 strh r0, [r1] bl nullsub_104 _08026976: bl sub_808ED00 movs r0, 0x5 bl sub_8026074 b _08026A6E .align 2, 0 _08026984: .4byte gUnknown_203B2B8 _08026988: .4byte gUnknown_203B45C _0802698C: ldr r0, _080269AC ldr r0, [r0] ldr r2, [r0, 0x18] ldrh r1, [r2] ldr r0, _080269B0 ands r0, r1 strh r0, [r2] bl nullsub_104 bl sub_808ED00 movs r0, 0x6 bl sub_8026074 b _08026A6E .align 2, 0 _080269AC: .4byte gUnknown_203B2B8 _080269B0: .4byte 0x0000fffd _080269B4: ldr r2, _080269E8 ldr r0, _080269EC ldr r0, [r0] movs r3, 0xA ldrsh r1, [r0, r3] movs r0, 0x58 muls r1, r0 ldr r0, [r2] adds r4, r0, r1 bl sub_808D33C ldrb r1, [r4, 0x2] cmp r1, 0 bne _080269DA strb r1, [r0, 0x2] movs r0, 0x1 strb r0, [r4, 0x2] bl nullsub_104 _080269DA: bl sub_808ED00 movs r0, 0x7 bl sub_8026074 b _08026A6E .align 2, 0 _080269E8: .4byte gUnknown_203B45C _080269EC: .4byte gUnknown_203B2B8 _080269F0: movs r0, 0xC bl sub_8026074 b _08026A6E _080269F8: movs r0, 0x16 bl sub_8026074 b _08026A6E _08026A00: movs r0, 0xE bl sub_8026074 b _08026A6E _08026A08: movs r0, 0x12 bl sub_8026074 b _08026A6E _08026A10: ldr r0, _08026A50 bl sub_8011988 ldr r4, _08026A54 ldr r1, [r4] ldrb r0, [r1, 0x14] cmp r0, 0 beq _08026A28 adds r0, r1, 0 adds r0, 0x14 bl sub_8091274 _08026A28: bl sub_80910B4 ldr r0, [r4] movs r1, 0 strb r1, [r0, 0x14] ldr r0, [r4] strb r1, [r0, 0x15] ldr r1, [r4] movs r2, 0xA ldrsh r0, [r1, r2] adds r1, 0x14 bl sub_808D800 bl nullsub_104 movs r0, 0x11 bl sub_8026074 b _08026A6E .align 2, 0 _08026A50: .4byte 0x0000014d _08026A54: .4byte gUnknown_203B2B8 _08026A58: movs r0, 0x3 bl sub_8026074 b _08026A6E _08026A60: movs r0, 0x4 bl sub_8026074 b _08026A6E _08026A68: movs r0, 0x19 bl sub_8026074 _08026A6E: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_80268CC thumb_func_start sub_8026A78 sub_8026A78: push {lr} bl sub_80244E4 cmp r0, 0x1 bls _08026A90 cmp r0, 0x3 bhi _08026A90 bl sub_802453C movs r0, 0x2 bl sub_8026074 _08026A90: pop {r0} bx r0 thumb_func_end sub_8026A78 thumb_func_start sub_8026A94 sub_8026A94: push {lr} bl sub_801BF48 cmp r0, 0x1 bls _08026AAC cmp r0, 0x3 bhi _08026AAC bl sub_801BF98 movs r0, 0x2 bl sub_8026074 _08026AAC: pop {r0} bx r0 thumb_func_end sub_8026A94 thumb_func_start sub_8026AB0 sub_8026AB0: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08026B08 ldr r0, [sp] cmp r0, 0x2 beq _08026ADA cmp r0, 0x2 bgt _08026ACE cmp r0, 0x1 beq _08026AD2 b _08026B08 _08026ACE: cmp r0, 0x3 bne _08026B08 _08026AD2: movs r0, 0x2 bl sub_8026074 b _08026B08 _08026ADA: ldr r0, _08026AF0 ldr r0, [r0] ldr r0, [r0, 0x18] ldrb r0, [r0, 0x4] subs r0, 0x44 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _08026AF4 movs r0, 0x1 b _08026AF6 .align 2, 0 _08026AF0: .4byte gUnknown_203B2B8 _08026AF4: movs r0, 0 _08026AF6: cmp r0, 0 beq _08026B02 movs r0, 0xD bl sub_8026074 b _08026B08 _08026B02: movs r0, 0x8 bl sub_8026074 _08026B08: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8026AB0 thumb_func_start sub_8026B10 sub_8026B10: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08026B40 ldr r0, [sp] cmp r0, 0x2 beq _08026B3A cmp r0, 0x2 bgt _08026B2E cmp r0, 0x1 beq _08026B32 b _08026B40 _08026B2E: cmp r0, 0x3 bne _08026B40 _08026B32: movs r0, 0x2 bl sub_8026074 b _08026B40 _08026B3A: movs r0, 0x8 bl sub_8026074 _08026B40: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8026B10 thumb_func_start sub_8026B48 sub_8026B48: push {lr} bl sub_8022860 cmp r0, 0x1 bls _08026B60 cmp r0, 0x3 bhi _08026B60 bl sub_8022908 movs r0, 0x2 bl sub_8026074 _08026B60: pop {r0} bx r0 thumb_func_end sub_8026B48 thumb_func_start sub_8026B64 sub_8026B64: push {r4,lr} movs r0, 0x1 bl sub_801A6E8 cmp r0, 0x4 bhi _08026C0E lsls r0, 2 ldr r1, _08026B7C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08026B7C: .4byte _08026B80 .align 2, 0 _08026B80: .4byte _08026C0E .4byte _08026C0E .4byte _08026C04 .4byte _08026B94 .4byte _08026BC8 _08026B94: bl sub_801A8AC ldr r4, _08026BC0 ldr r2, [r4] str r0, [r2, 0xC] ldr r3, _08026BC4 ldr r1, [r3] lsls r0, 2 adds r1, r0 ldrb r0, [r1, 0x2] strb r0, [r2, 0x10] ldr r2, [r4] ldr r1, [r3] ldr r0, [r2, 0xC] lsls r0, 2 adds r1, r0 ldrb r0, [r1, 0x1] strb r0, [r2, 0x11] movs r0, 0x14 bl sub_8026074 b _08026C0E .align 2, 0 _08026BC0: .4byte gUnknown_203B2B8 _08026BC4: .4byte gUnknown_203B460 _08026BC8: bl sub_801A8AC ldr r4, _08026BFC ldr r2, [r4] str r0, [r2, 0xC] ldr r3, _08026C00 ldr r1, [r3] lsls r0, 2 adds r1, r0 ldrb r0, [r1, 0x2] strb r0, [r2, 0x10] ldr r2, [r4] ldr r1, [r3] ldr r0, [r2, 0xC] lsls r0, 2 adds r1, r0 ldrb r0, [r1, 0x1] strb r0, [r2, 0x11] movs r0, 0 bl sub_8099690 movs r0, 0x15 bl sub_8026074 b _08026C0E .align 2, 0 _08026BFC: .4byte gUnknown_203B2B8 _08026C00: .4byte gUnknown_203B460 _08026C04: bl sub_801A928 movs r0, 0x2 bl sub_8026074 _08026C0E: pop {r4} pop {r0} bx r0 thumb_func_end sub_8026B64 thumb_func_start sub_8026C14 sub_8026C14: push {r4-r6,lr} sub sp, 0x14 movs r0, 0 str r0, [sp, 0xC] bl sub_801A6E8 ldr r4, _08026C54 ldr r0, [r4] adds r0, 0xCC bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _08026C44 ldr r0, [r4] adds r0, 0xCC add r1, sp, 0xC bl sub_8013114 ldr r1, [sp, 0xC] cmp r1, 0x1 beq _08026C44 ldr r0, [r4] str r1, [r0, 0x74] _08026C44: ldr r0, [sp, 0xC] cmp r0, 0x4 beq _08026CD4 cmp r0, 0x4 bgt _08026C58 cmp r0, 0x1 beq _08026CE2 b _08026CE8 .align 2, 0 _08026C54: .4byte gUnknown_203B2B8 _08026C58: cmp r0, 0xB bne _08026CE8 movs r6, 0xF ldr r0, _08026CC8 bl sub_8011988 ldr r5, _08026CCC ldr r0, [r5] ldr r0, [r0, 0xC] bl sub_80911F8 bl sub_80910B4 ldr r1, [r5] ldrb r0, [r1, 0x14] cmp r0, 0 beq _08026C84 adds r0, r1, 0 adds r0, 0x14 bl sub_8091274 movs r6, 0x10 _08026C84: add r4, sp, 0x10 ldr r1, [r5] adds r1, 0x10 adds r0, r4, 0 bl sub_8090B64 movs r1, 0 str r1, [sp] mov r0, sp strb r1, [r0, 0x4] mov r1, sp movs r0, 0x1 strb r0, [r1, 0x8] strb r0, [r4] ldr r0, _08026CD0 adds r1, r4, 0 mov r2, sp bl sub_8090E14 ldr r1, [r5] movs r2, 0xA ldrsh r0, [r1, r2] adds r1, 0x10 bl sub_808D800 bl sub_801A928 bl nullsub_104 adds r0, r6, 0 bl sub_8026074 b _08026CE8 .align 2, 0 _08026CC8: .4byte 0x0000014d _08026CCC: .4byte gUnknown_203B2B8 _08026CD0: .4byte gUnknown_202DEA8 _08026CD4: movs r0, 0 bl sub_8099690 movs r0, 0x15 bl sub_8026074 b _08026CE8 _08026CE2: movs r0, 0x13 bl sub_8026074 _08026CE8: add sp, 0x14 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8026C14 thumb_func_start sub_8026CF0 sub_8026CF0: push {lr} bl sub_801B410 cmp r0, 0x1 bls _08026D08 cmp r0, 0x3 bhi _08026D08 bl sub_801B450 movs r0, 0x13 bl sub_8026074 _08026D08: pop {r0} bx r0 thumb_func_end sub_8026CF0 thumb_func_start sub_8026D0C sub_8026D0C: push {lr} movs r0, 0x1 bl sub_801EF38 cmp r0, 0x4 bhi _08026D66 lsls r0, 2 ldr r1, _08026D24 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08026D24: .4byte _08026D28 .align 2, 0 _08026D28: .4byte _08026D66 .4byte _08026D66 .4byte _08026D5C .4byte _08026D3C .4byte _08026D3C _08026D3C: bl sub_801F194 ldr r1, _08026D58 ldr r1, [r1] str r0, [r1, 0x20] lsls r0, 3 adds r0, r1, r0 ldrh r0, [r0, 0x2A] strh r0, [r1, 0x24] movs r0, 0x18 bl sub_8026074 b _08026D66 .align 2, 0 _08026D58: .4byte gUnknown_203B2B8 _08026D5C: bl sub_801F214 movs r0, 0x2 bl sub_8026074 _08026D66: pop {r0} bx r0 thumb_func_end sub_8026D0C thumb_func_start sub_8026D6C sub_8026D6C: push {lr} bl sub_801F890 cmp r0, 0x1 bls _08026D84 cmp r0, 0x3 bhi _08026D84 bl sub_801F8D0 movs r0, 0x17 bl sub_8026074 _08026D84: pop {r0} bx r0 thumb_func_end sub_8026D6C thumb_func_start sub_8026D88 sub_8026D88: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08026DA0 ldr r0, _08026DA8 ldr r0, [r0] ldr r0, [r0, 0x4] bl sub_8026074 _08026DA0: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _08026DA8: .4byte gUnknown_203B2B8 thumb_func_end sub_8026D88 thumb_func_start sub_8026DAC sub_8026DAC: push {r4-r6,lr} sub sp, 0x14 adds r6, r0, 0 adds r5, r1, 0 bl sub_8008C54 adds r0, r6, 0 bl sub_80073B8 add r4, sp, 0x10 adds r0, r4, 0 adds r1, r5, 0 bl sub_8090B64 movs r5, 0 str r5, [sp, 0x4] add r0, sp, 0x4 strb r5, [r0, 0x4] adds r1, r0, 0 movs r0, 0x1 strb r0, [r1, 0x8] strb r0, [r4] ldr r0, _08026E00 adds r1, r4, 0 add r2, sp, 0x4 bl sub_8090E14 ldr r2, _08026E04 str r5, [sp] movs r0, 0x4 movs r1, 0x3 adds r3, r6, 0 bl sub_8014FF0 adds r0, r6, 0 bl sub_80073E0 add sp, 0x14 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08026E00: .4byte gUnknown_202DE58 _08026E04: .4byte gUnknown_80DD6D0 thumb_func_end sub_8026DAC thumb_func_start sub_8026E08 sub_8026E08: push {r4-r6,lr} sub sp, 0x40 adds r5, r0, 0 bl sub_8008C54 adds r0, r5, 0 bl sub_80073B8 ldr r6, _08026E78 ldr r4, _08026E7C ldr r0, [r4] ldr r1, [r0, 0x18] adds r1, 0x4C adds r0, r6, 0 movs r2, 0xA bl sub_80922B4 add r0, sp, 0x2C ldr r1, [r4] ldr r1, [r1, 0x18] movs r2, 0x8 ldrsh r1, [r1, r2] bl sub_808D930 ldr r1, _08026E80 add r0, sp, 0x4 adds r2, r6, 0 bl sub_800D158 add r0, sp, 0x4 bl sub_8008ED0 adds r1, r0, 0 ldr r0, _08026E84 movs r2, 0xC ldrsh r0, [r0, r2] lsls r0, 3 subs r0, r1 lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 movs r1, 0 str r1, [sp] movs r1, 0x3 add r2, sp, 0x4 adds r3, r5, 0 bl xxx_call_draw_string adds r0, r5, 0 bl sub_80073E0 add sp, 0x40 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08026E78: .4byte gUnknown_202DF98 _08026E7C: .4byte gUnknown_203B2B8 _08026E80: .4byte gUnknown_80DD6E0 _08026E84: .4byte gUnknown_80DD370 thumb_func_end sub_8026E08 thumb_func_start sub_8026E88 sub_8026E88: push {lr} adds r1, r0, 0 ldrb r0, [r1, 0x2] cmp r0, 0 bne _08026EAC movs r2, 0 ldrb r0, [r1, 0x4] cmp r0, 0x41 bne _08026E9C movs r2, 0x1 _08026E9C: cmp r2, 0 beq _08026EB0 movs r0, 0x8 bl sub_80023E4 lsls r0, 24 cmp r0, 0 bne _08026EB0 _08026EAC: movs r0, 0 b _08026EB2 _08026EB0: movs r0, 0x1 _08026EB2: pop {r1} bx r1 thumb_func_end sub_8026E88 thumb_func_start sub_8026EB8 sub_8026EB8: push {r4,lr} adds r4, r0, 0 bl sub_808D3BC cmp r0, r4 beq _08026EFA bl sub_808D3F8 cmp r0, r4 beq _08026EFA ldrb r0, [r4, 0x2] cmp r0, 0 bne _08026EFA movs r1, 0 ldrb r0, [r4, 0x4] cmp r0, 0x41 bne _08026EDC movs r1, 0x1 _08026EDC: cmp r1, 0 beq _08026EEC movs r0, 0x8 bl sub_80023E4 lsls r0, 24 cmp r0, 0 beq _08026EFA _08026EEC: adds r0, r4, 0 bl sub_8026F04 cmp r0, 0x3 beq _08026EFA movs r0, 0x1 b _08026EFC _08026EFA: movs r0, 0 _08026EFC: pop {r4} pop {r1} bx r1 thumb_func_end sub_8026EB8 thumb_func_start sub_8026F04 sub_8026F04: push {r4,lr} adds r4, r0, 0 adds r0, 0x28 ldrb r0, [r0] cmp r0, 0 bne _08026F14 movs r0, 0 b _08026F32 _08026F14: bl sub_8090A34 cmp r0, 0x13 bgt _08026F20 movs r0, 0x1 b _08026F32 _08026F20: adds r0, r4, 0 bl sub_8026F38 lsls r0, 24 cmp r0, 0 bne _08026F30 movs r0, 0x3 b _08026F32 _08026F30: movs r0, 0x2 _08026F32: pop {r4} pop {r1} bx r1 thumb_func_end sub_8026F04 thumb_func_start sub_8026F38 sub_8026F38: push {r4,r5,lr} adds r5, r0, 0 adds r4, r5, 0 adds r4, 0x28 ldrb r0, [r4] bl sub_8091524 lsls r0, 24 cmp r0, 0 beq _08026F74 ldrb r0, [r4] bl sub_8090A60 lsls r0, 24 cmp r0, 0 beq _08026F80 ldr r0, _08026F78 ldr r1, [r0] ldrb r0, [r4] lsls r0, 1 adds r1, 0x50 adds r1, r0 ldrh r1, [r1] adds r0, r5, 0 adds r0, 0x29 ldrb r0, [r0] adds r1, r0 ldr r0, _08026F7C cmp r1, r0 ble _08026F94 _08026F74: movs r0, 0 b _08026F96 .align 2, 0 _08026F78: .4byte gUnknown_203B460 _08026F7C: .4byte 0x000003e7 _08026F80: ldr r0, _08026F9C ldr r1, [r0] ldrb r0, [r4] lsls r0, 1 adds r1, 0x50 adds r1, r0 ldrh r1, [r1] ldr r0, _08026FA0 cmp r1, r0 bhi _08026F74 _08026F94: movs r0, 0x1 _08026F96: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08026F9C: .4byte gUnknown_203B460 _08026FA0: .4byte 0x000003e6 thumb_func_end sub_8026F38 thumb_func_start sub_8026FA4 sub_8026FA4: push {r4,lr} ldr r4, _08026FC0 ldr r0, [r4] ldr r0, [r0, 0x18] bl sub_8026F04 cmp r0, 0x1 beq _08026FC4 cmp r0, 0x1 bcc _08027068 cmp r0, 0x2 beq _08026FF8 b _08027068 .align 2, 0 _08026FC0: .4byte gUnknown_203B2B8 _08026FC4: ldr r0, _08026FF4 bl sub_8011988 ldr r0, [r4] adds r0, 0x14 bl sub_8091274 bl sub_80910B4 ldr r0, [r4] movs r1, 0 strb r1, [r0, 0x14] ldr r0, [r4] strb r1, [r0, 0x15] ldr r1, [r4] movs r2, 0xA ldrsh r0, [r1, r2] adds r1, 0x14 bl sub_808D800 movs r0, 0xA bl sub_8026074 b _0802706E .align 2, 0 _08026FF4: .4byte 0x0000014d _08026FF8: ldr r0, _08027024 bl sub_8011988 ldr r0, [r4] ldrb r0, [r0, 0x14] bl sub_8090A60 lsls r0, 24 cmp r0, 0 beq _0802702C ldr r0, _08027028 ldr r1, [r0] ldr r2, [r4] ldrb r0, [r2, 0x14] lsls r0, 1 adds r1, 0x50 adds r1, r0 ldrh r0, [r1] ldrb r2, [r2, 0x15] adds r0, r2 b _0802703E .align 2, 0 _08027024: .4byte 0x0000014d _08027028: .4byte gUnknown_203B460 _0802702C: ldr r0, _08027060 ldr r1, [r0] ldr r0, [r4] ldrb r0, [r0, 0x14] lsls r0, 1 adds r1, 0x50 adds r1, r0 ldrh r0, [r1] adds r0, 0x1 _0802703E: strh r0, [r1] ldr r1, _08027064 ldr r0, [r1] movs r2, 0 strb r2, [r0, 0x14] ldr r0, [r1] strb r2, [r0, 0x15] ldr r1, [r1] movs r2, 0xA ldrsh r0, [r1, r2] adds r1, 0x14 bl sub_808D800 movs r0, 0xB bl sub_8026074 b _0802706E .align 2, 0 _08027060: .4byte gUnknown_203B460 _08027064: .4byte gUnknown_203B2B8 _08027068: movs r0, 0x19 bl sub_8026074 _0802706E: pop {r4} pop {r0} bx r0 thumb_func_end sub_8026FA4 thumb_func_start sub_8027074 sub_8027074: push {r4,lr} movs r0, 0 bl sub_8004D8C ldr r4, _080270A0 movs r0, 0xF0 lsls r0, 1 movs r1, 0x8 bl MemoryAlloc str r0, [r4] movs r1, 0 str r1, [r0, 0x70] str r1, [r0, 0x74] str r1, [r0, 0x78] movs r0, 0 bl sub_8027184 movs r0, 0x1 pop {r4} pop {r1} bx r1 .align 2, 0 _080270A0: .4byte gUnknown_203B2BC thumb_func_end sub_8027074 thumb_func_start sub_80270A4 sub_80270A4: push {lr} ldr r0, _080270BC ldr r0, [r0] ldr r0, [r0] cmp r0, 0x11 bhi _08027156 lsls r0, 2 ldr r1, _080270C0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080270BC: .4byte gUnknown_203B2BC _080270C0: .4byte _080270C4 .align 2, 0 _080270C4: .4byte _0802710C .4byte _08027114 .4byte _08027114 .4byte _0802711A .4byte _08027120 .4byte _08027126 .4byte _08027156 .4byte _08027156 .4byte _0802712C .4byte _08027132 .4byte _08027138 .4byte _08027138 .4byte _0802713E .4byte _08027144 .4byte _0802714A .4byte _0802714A .4byte _08027150 .4byte _0802715C _0802710C: movs r0, 0x1 bl sub_8027184 b _08027160 _08027114: bl sub_80277FC b _08027160 _0802711A: bl sub_80278B4 b _08027160 _08027120: bl sub_8027A40 b _08027160 _08027126: bl sub_8027A5C b _08027160 _0802712C: bl sub_8027A78 b _08027160 _08027132: bl sub_8027AE4 b _08027160 _08027138: bl sub_8027B28 b _08027160 _0802713E: bl sub_8027BD8 b _08027160 _08027144: bl sub_8027C84 b _08027160 _0802714A: bl sub_8027CA0 b _08027160 _08027150: bl sub_8027D00 b _08027160 _08027156: bl sub_8027D1C b _08027160 _0802715C: movs r0, 0x3 b _08027162 _08027160: movs r0, 0 _08027162: pop {r1} bx r1 thumb_func_end sub_80270A4 thumb_func_start sub_8027168 sub_8027168: push {r4,lr} ldr r4, _08027180 ldr r0, [r4] cmp r0, 0 beq _0802717A bl MemoryFree movs r0, 0 str r0, [r4] _0802717A: pop {r4} pop {r0} bx r0 .align 2, 0 _08027180: .4byte gUnknown_203B2BC thumb_func_end sub_8027168 thumb_func_start sub_8027184 sub_8027184: push {lr} ldr r1, _08027198 ldr r1, [r1] str r0, [r1] bl sub_802719C bl sub_8027274 pop {r0} bx r0 .align 2, 0 _08027198: .4byte gUnknown_203B2BC thumb_func_end sub_8027184 thumb_func_start sub_802719C sub_802719C: push {r4-r7,lr} ldr r4, _080271C0 ldr r0, [r4] movs r1, 0xC0 lsls r1, 1 adds r0, r1 bl sub_8006518 ldr r1, [r4] ldr r0, [r1] cmp r0, 0x3 beq _080271C8 cmp r0, 0xC beq _08027208 movs r2, 0 ldr r3, _080271C4 b _08027234 .align 2, 0 _080271C0: .4byte gUnknown_203B2BC _080271C4: .4byte gUnknown_80DD6EC _080271C8: movs r2, 0xE4 lsls r2, 1 adds r1, r2 ldr r0, _08027200 ldm r0!, {r3,r5,r6} stm r1!, {r3,r5,r6} ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} bl sub_802745C ldr r2, [r4] movs r0, 0xD8 lsls r0, 1 adds r2, r0 ldr r1, _08027204 ldm r1!, {r5-r7} stm r2!, {r5-r7} ldm r1!, {r3,r5,r6} stm r2!, {r3,r5,r6} ldr r1, [r4] adds r0, r1, r0 movs r7, 0x8E lsls r7, 1 adds r1, r7 bl sub_8012CAC b _08027254 .align 2, 0 _08027200: .4byte gUnknown_80DD74C _08027204: .4byte gUnknown_80DD704 _08027208: bl sub_80276A8 ldr r2, [r4] movs r0, 0xD8 lsls r0, 1 adds r2, r0 ldr r1, _08027230 ldm r1!, {r3,r5,r6} stm r2!, {r3,r5,r6} ldm r1!, {r3,r5,r7} stm r2!, {r3,r5,r7} ldr r1, [r4] adds r0, r1, r0 movs r6, 0x8E lsls r6, 1 adds r1, r6 bl sub_8012CAC b _08027254 .align 2, 0 _08027230: .4byte gUnknown_80DD71C _08027234: ldr r0, [r4] lsls r1, r2, 1 adds r1, r2 lsls r1, 3 adds r0, r1 movs r7, 0xC0 lsls r7, 1 adds r0, r7 adds r1, r3, 0 ldm r1!, {r5-r7} stm r0!, {r5-r7} ldm r1!, {r5-r7} stm r0!, {r5-r7} adds r2, 0x1 cmp r2, 0x3 ble _08027234 _08027254: bl sub_8004914 ldr r0, _08027270 ldr r0, [r0] movs r1, 0xC0 lsls r1, 1 adds r0, r1 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08027270: .4byte gUnknown_203B2BC thumb_func_end sub_802719C thumb_func_start sub_8027274 sub_8027274: push {r4,lr} sub sp, 0x18 ldr r1, _08027290 ldr r0, [r1] ldr r0, [r0] adds r4, r1, 0 cmp r0, 0x11 bls _08027286 b _0802744A _08027286: lsls r0, 2 ldr r1, _08027294 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08027290: .4byte gUnknown_203B2BC _08027294: .4byte _08027298 .align 2, 0 _08027298: .4byte _0802744A .4byte _080272E0 .4byte _080272EE .4byte _080272F6 .4byte _0802731A .4byte _08027328 .4byte _0802741C .4byte _08027438 .4byte _080273B6 .4byte _080273D0 .4byte _08027334 .4byte _08027342 .4byte _0802734A .4byte _08027374 .4byte _08027386 .4byte _080273AC .4byte _08027404 .4byte _0802744A _080272E0: movs r0, 0x1 movs r1, 0 movs r2, 0 movs r3, 0x7 bl sub_8023868 b _0802744A _080272EE: movs r0, 0x1 bl sub_8023B7C b _0802744A _080272F6: ldr r1, [r4] adds r1, 0x14 movs r0, 0x3 bl sub_8027D40 bl sub_8023DA4 ldr r2, [r4] adds r0, r2, 0 adds r0, 0x7C movs r3, 0x8E lsls r3, 1 adds r1, r2, r3 movs r4, 0xB6 lsls r4, 1 adds r3, r2, r4 ldr r2, [r2, 0x70] b _08027362 _0802731A: ldr r0, [r4] movs r1, 0x8 ldrsh r0, [r0, r1] movs r1, 0x2 bl sub_8024458 b _0802744A _08027328: ldr r0, [r4] movs r3, 0x8 ldrsh r0, [r0, r3] bl sub_801BEEC b _0802744A _08027334: movs r0, 0x1 movs r1, 0 movs r2, 0 movs r3, 0xA bl sub_801A5D8 b _0802744A _08027342: movs r0, 0x1 bl sub_801A8D0 b _0802744A _0802734A: bl sub_801A9E0 ldr r0, _08027370 ldr r2, [r0] adds r0, r2, 0 adds r0, 0x7C movs r4, 0x8E lsls r4, 1 adds r1, r2, r4 adds r4, 0x50 adds r3, r2, r4 ldr r2, [r2, 0x74] _08027362: str r2, [sp] movs r2, 0x2 str r2, [sp, 0x4] movs r2, 0 bl sub_8012D60 b _0802744A .align 2, 0 _08027370: .4byte gUnknown_203B2BC _08027374: ldr r1, [r4] adds r1, 0x10 add r0, sp, 0x14 bl sub_8090B64 add r0, sp, 0x14 bl sub_801B3C0 b _0802744A _08027386: ldr r1, [r4] adds r0, r1, 0 adds r0, 0x28 ldr r1, [r1, 0x18] adds r1, 0x2C bl sub_809401C ldr r2, [r4] movs r0, 0x8 ldrsh r1, [r2, r0] adds r2, 0x28 movs r0, 0 str r0, [sp] str r0, [sp, 0x4] movs r0, 0x3 movs r3, 0 bl sub_801EE10 b _0802744A _080273AC: movs r0, 0x1 movs r1, 0 bl sub_801F1B0 b _0802744A _080273B6: bl sub_8027794 ldr r0, _080273C8 ldr r1, _080273CC ldr r3, [r1] movs r1, 0x8E lsls r1, 1 adds r3, r1 b _080273E0 .align 2, 0 _080273C8: .4byte gUnknown_80DD764 _080273CC: .4byte gUnknown_203B2BC _080273D0: bl sub_8027794 ldr r0, _080273FC ldr r1, _08027400 ldr r3, [r1] movs r4, 0x8E lsls r4, 1 adds r3, r4 _080273E0: movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] adds r1, 0xFD str r1, [sp, 0x10] movs r1, 0 movs r2, 0x3 bl sub_8014248 b _0802744A .align 2, 0 _080273FC: .4byte gUnknown_80DD7FC _08027400: .4byte gUnknown_203B2BC _08027404: ldr r2, [r4] ldr r0, [r2, 0x20] adds r1, r2, 0 adds r1, 0x28 adds r2, 0x68 bl sub_8093560 ldr r0, [r4] adds r0, 0x68 bl sub_801F808 b _0802744A _0802741C: ldr r1, [r4] movs r0, 0x2 str r0, [r1, 0x4] ldr r0, _08027430 ldr r3, _08027434 movs r1, 0 movs r2, 0 bl sub_80141B4 b _0802744A .align 2, 0 _08027430: .4byte gUnknown_80DD8A0 _08027434: .4byte 0x00000101 _08027438: ldr r1, [r4] movs r0, 0x2 str r0, [r1, 0x4] ldr r0, _08027454 ldr r3, _08027458 movs r1, 0 movs r2, 0 bl sub_80141B4 _0802744A: add sp, 0x18 pop {r4} pop {r0} bx r0 .align 2, 0 _08027454: .4byte gUnknown_80DD8D0 _08027458: .4byte 0x00000101 thumb_func_end sub_8027274 thumb_func_start sub_802745C sub_802745C: push {r4-r7,lr} ldr r3, _080274E4 ldr r4, _080274E8 ldr r0, [r4] movs r1, 0x8 ldrsh r2, [r0, r1] movs r1, 0x58 muls r2, r1 ldr r1, [r3] adds r5, r1, r2 movs r2, 0xB6 lsls r2, 1 adds r0, r2 movs r1, 0 movs r2, 0x14 bl MemoryFill16 ldrh r0, [r5] lsrs r0, 1 movs r6, 0x1 ands r0, r6 cmp r0, 0 beq _080274F4 ldr r2, [r4] movs r3, 0x8E lsls r3, 1 adds r1, r2, r3 ldr r0, _080274EC str r0, [r1] movs r0, 0x90 lsls r0, 1 adds r1, r2, r0 movs r0, 0x7 str r0, [r1] adds r0, r5, 0 bl sub_8027D9C lsls r0, 24 cmp r0, 0 bne _080274B6 ldr r0, [r4] movs r1, 0xB6 lsls r1, 1 adds r0, r1 strh r6, [r0] _080274B6: movs r7, 0x1 movs r0, 0x8 bl sub_80023E4 lsls r0, 24 cmp r0, 0 beq _08027552 ldrb r0, [r5, 0x2] cmp r0, 0 bne _08027552 ldr r3, [r4] movs r2, 0x8 movs r4, 0x92 lsls r4, 1 adds r1, r3, r4 ldr r0, _080274F0 str r0, [r1] movs r1, 0x94 lsls r1, 1 adds r0, r3, r1 str r2, [r0] b _08027550 .align 2, 0 _080274E4: .4byte gUnknown_203B45C _080274E8: .4byte gUnknown_203B2BC _080274EC: .4byte gUnknown_80DD8F8 _080274F0: .4byte gUnknown_80DD904 _080274F4: ldr r2, [r4] movs r3, 0x8E lsls r3, 1 adds r1, r2, r3 ldr r0, _08027658 str r0, [r1] movs r0, 0x90 lsls r0, 1 adds r1, r2, r0 movs r0, 0x6 str r0, [r1] movs r1, 0x8 ldrsh r0, [r2, r1] bl sub_808D750 lsls r0, 24 cmp r0, 0 bne _08027522 ldr r0, [r4] movs r2, 0xB6 lsls r2, 1 adds r0, r2 strh r6, [r0] _08027522: movs r7, 0x1 ldr r2, [r4] movs r3, 0x92 lsls r3, 1 adds r1, r2, r3 ldr r0, _0802765C str r0, [r1] movs r0, 0x94 lsls r0, 1 adds r1, r2, r0 movs r0, 0x9 str r0, [r1] adds r0, r5, 0 bl sub_8027DCC lsls r0, 24 cmp r0, 0 bne _08027550 ldr r0, [r4] movs r1, 0xB7 lsls r1, 1 adds r0, r1 strh r7, [r0] _08027550: movs r7, 0x2 _08027552: ldr r4, _08027660 ldr r2, [r4] lsls r3, r7, 3 movs r6, 0x8E lsls r6, 1 adds r0, r2, r6 adds r0, r3 ldr r1, _08027664 str r1, [r0] movs r5, 0x90 lsls r5, 1 adds r2, r5 adds r2, r3 movs r0, 0xA str r0, [r2] bl sub_8090A34 cmp r0, 0 bne _08027588 ldr r0, [r4] lsls r1, r7, 1 movs r2, 0xB6 lsls r2, 1 adds r0, r2 adds r0, r1 movs r1, 0x1 strh r1, [r0] _08027588: adds r7, 0x1 ldr r2, [r4] lsls r3, r7, 3 adds r0, r2, r6 adds r0, r3 ldr r1, _08027668 str r1, [r0] adds r2, r5 adds r2, r3 movs r0, 0xB str r0, [r2] bl sub_8090A34 cmp r0, 0x13 bgt _080275AE ldr r0, [r4] ldrb r0, [r0, 0x14] cmp r0, 0 bne _080275BE _080275AE: ldr r0, [r4] lsls r1, r7, 1 movs r3, 0xB6 lsls r3, 1 adds r0, r3 adds r0, r1 movs r1, 0x1 strh r1, [r0] _080275BE: adds r7, 0x1 ldr r4, _08027660 ldr r5, [r4] lsls r1, r7, 3 movs r0, 0x8E lsls r0, 1 adds r3, r5, r0 adds r2, r3, r1 ldr r0, _0802766C str r0, [r2] movs r2, 0x90 lsls r2, 1 adds r6, r5, r2 adds r1, r6, r1 movs r0, 0x4 str r0, [r1] adds r7, 0x1 lsls r1, r7, 3 adds r2, r3, r1 ldr r0, _08027670 str r0, [r2] adds r1, r6, r1 movs r0, 0xC str r0, [r1] adds r7, 0x1 lsls r1, r7, 3 adds r2, r3, r1 ldr r0, _08027674 str r0, [r2] adds r1, r6, r1 movs r0, 0x5 str r0, [r1] adds r7, 0x1 lsls r1, r7, 3 adds r3, r1 movs r0, 0 str r0, [r3] adds r1, r6, r1 movs r0, 0x1 str r0, [r1] movs r3, 0 mov r12, r4 cmp r3, r7 bge _08027636 adds r4, r6, 0 movs r0, 0xB6 lsls r0, 1 adds r2, r5, r0 _0802761E: ldrh r0, [r2] cmp r0, 0 bne _0802762C ldr r1, [r4] ldr r0, [r5, 0x70] cmp r1, r0 beq _080276A0 _0802762C: adds r4, 0x8 adds r2, 0x2 adds r3, 0x1 cmp r3, r7 blt _0802761E _08027636: movs r3, 0 cmp r3, r7 bge _080276A0 mov r2, r12 ldr r1, [r2] movs r4, 0xB6 lsls r4, 1 adds r0, r1, r4 ldrh r0, [r0] cmp r0, 0 bne _08027678 movs r2, 0x90 lsls r2, 1 adds r0, r1, r2 ldr r0, [r0] str r0, [r1, 0x70] b _080276A0 .align 2, 0 _08027658: .4byte gUnknown_80DD910 _0802765C: .4byte gUnknown_80DD91C _08027660: .4byte gUnknown_203B2BC _08027664: .4byte gUnknown_80DD92C _08027668: .4byte gUnknown_80DD934 _0802766C: .4byte gUnknown_80DD93C _08027670: .4byte gUnknown_80DD944 _08027674: .4byte gUnknown_80DD94C _08027678: adds r3, 0x1 cmp r3, r7 bge _080276A0 mov r4, r12 ldr r2, [r4] lsls r0, r3, 1 movs r4, 0xB6 lsls r4, 1 adds r1, r2, r4 adds r1, r0 ldrh r0, [r1] cmp r0, 0 bne _08027678 lsls r0, r3, 3 movs r3, 0x90 lsls r3, 1 adds r1, r2, r3 adds r1, r0 ldr r0, [r1] str r0, [r2, 0x70] _080276A0: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_802745C thumb_func_start sub_80276A8 sub_80276A8: push {r4-r7,lr} ldr r5, _0802775C ldr r0, [r5] movs r7, 0xB6 lsls r7, 1 adds r0, r7 movs r1, 0 movs r2, 0x14 bl MemoryFill16 ldr r2, [r5] movs r0, 0x8E lsls r0, 1 adds r1, r2, r0 ldr r0, _08027760 str r0, [r1] movs r3, 0x90 lsls r3, 1 adds r1, r2, r3 movs r0, 0xA str r0, [r1] bl sub_8090A34 cmp r0, 0 bne _080276E4 ldr r0, [r5] adds r4, r7, 0 adds r0, r4 movs r1, 0x1 strh r1, [r0] _080276E4: ldr r4, [r5] movs r2, 0x1 movs r0, 0x92 lsls r0, 1 adds r1, r4, r0 ldr r0, _08027764 ldr r0, [r0] str r0, [r1] movs r3, 0x94 lsls r3, 1 adds r1, r4, r3 movs r0, 0x4 str r0, [r1] movs r6, 0x2 movs r0, 0x96 lsls r0, 1 adds r1, r4, r0 movs r0, 0 str r0, [r1] movs r1, 0x98 lsls r1, 1 adds r0, r4, r1 str r2, [r0] movs r3, 0 mov r12, r4 movs r4, 0x90 lsls r4, 1 add r4, r12 mov r0, r12 adds r2, r0, r7 _08027720: ldrh r0, [r2] cmp r0, 0 bne _08027730 ldr r1, [r4] mov r7, r12 ldr r0, [r7, 0x74] cmp r1, r0 beq _0802778E _08027730: adds r4, 0x8 adds r2, 0x2 adds r3, 0x1 cmp r3, r6 blt _08027720 movs r3, 0 cmp r3, r6 bge _0802778E ldr r1, [r5] movs r2, 0xB6 lsls r2, 1 adds r0, r1, r2 ldrh r0, [r0] cmp r0, 0 bne _08027768 movs r3, 0x90 lsls r3, 1 adds r0, r1, r3 ldr r0, [r0] str r0, [r1, 0x74] b _0802778E .align 2, 0 _0802775C: .4byte gUnknown_203B2BC _08027760: .4byte gUnknown_80DD92C _08027764: .4byte gUnknown_80D4970 _08027768: adds r3, 0x1 cmp r3, r6 bge _0802778E ldr r2, [r5] lsls r0, r3, 1 movs r4, 0xB6 lsls r4, 1 adds r1, r2, r4 adds r1, r0 ldrh r0, [r1] cmp r0, 0 bne _08027768 lsls r0, r3, 3 movs r7, 0x90 lsls r7, 1 adds r1, r2, r7 adds r1, r0 ldr r0, [r1] str r0, [r2, 0x74] _0802778E: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80276A8 thumb_func_start sub_8027794 sub_8027794: push {r4,lr} ldr r4, _080277F0 ldr r0, [r4] movs r1, 0xB6 lsls r1, 1 adds r0, r1 movs r1, 0 movs r2, 0x14 bl MemoryFill16 ldr r4, [r4] movs r3, 0 movs r0, 0x8E lsls r0, 1 adds r1, r4, r0 ldr r0, _080277F4 ldr r0, [r0] str r0, [r1] movs r0, 0x90 lsls r0, 1 adds r1, r4, r0 movs r0, 0x2 str r0, [r1] movs r2, 0x1 movs r0, 0x92 lsls r0, 1 adds r1, r4, r0 ldr r0, _080277F8 ldr r0, [r0] str r0, [r1] movs r0, 0x94 lsls r0, 1 adds r1, r4, r0 movs r0, 0x3 str r0, [r1] movs r1, 0x96 lsls r1, 1 adds r0, r4, r1 str r3, [r0] adds r1, 0x4 adds r0, r4, r1 str r2, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _080277F0: .4byte gUnknown_203B2BC _080277F4: .4byte gUnknown_80D4920 _080277F8: .4byte gUnknown_80D4928 thumb_func_end sub_8027794 thumb_func_start sub_80277FC sub_80277FC: push {r4,lr} movs r0, 0x1 bl sub_8023A94 cmp r0, 0x4 bhi _080278AE lsls r0, 2 ldr r1, _08027814 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08027814: .4byte _08027818 .align 2, 0 _08027818: .4byte _080278AE .4byte _080278AE .4byte _080278A4 .4byte _0802782C .4byte _08027868 _0802782C: bl sub_8023B44 ldr r4, _08027860 ldr r1, [r4] strh r0, [r1, 0x8] ldr r3, _08027864 movs r0, 0x8 ldrsh r2, [r1, r0] movs r0, 0x58 muls r2, r0 ldr r0, [r3] adds r0, r2 str r0, [r1, 0x18] ldrb r0, [r0, 0x2] strb r0, [r1, 0x1C] ldr r1, [r4] movs r2, 0x8 ldrsh r0, [r1, r2] adds r1, 0x14 bl sub_808D7DC movs r0, 0x3 bl sub_8027184 b _080278AE .align 2, 0 _08027860: .4byte gUnknown_203B2BC _08027864: .4byte gUnknown_203B45C _08027868: bl sub_8023B44 ldr r4, _0802789C ldr r1, [r4] strh r0, [r1, 0x8] ldr r3, _080278A0 movs r0, 0x8 ldrsh r2, [r1, r0] movs r0, 0x58 muls r2, r0 ldr r0, [r3] adds r0, r2 str r0, [r1, 0x18] ldrb r0, [r0, 0x2] strb r0, [r1, 0x1C] ldr r1, [r4] movs r2, 0x8 ldrsh r0, [r1, r2] adds r1, 0x14 bl sub_808D7DC movs r0, 0x4 bl sub_8027184 b _080278AE .align 2, 0 _0802789C: .4byte gUnknown_203B2BC _080278A0: .4byte gUnknown_203B45C _080278A4: bl sub_8023C60 movs r0, 0x11 bl sub_8027184 _080278AE: pop {r4} pop {r0} bx r0 thumb_func_end sub_80277FC thumb_func_start sub_80278B4 sub_80278B4: push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] bl sub_8023A94 ldr r4, _080278F8 ldr r0, [r4] adds r0, 0x7C bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _080278E4 ldr r0, [r4] adds r0, 0x7C mov r1, sp bl sub_8013114 ldr r1, [sp] cmp r1, 0x1 beq _080278E4 ldr r0, [r4] str r1, [r0, 0x70] _080278E4: ldr r0, [sp] subs r0, 0x1 cmp r0, 0xB bls _080278EE b _08027A36 _080278EE: lsls r0, 2 ldr r1, _080278FC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080278F8: .4byte gUnknown_203B2BC _080278FC: .4byte _08027900 .align 2, 0 _08027900: .4byte _08027A30 .4byte _08027A36 .4byte _08027A36 .4byte _08027A20 .4byte _08027A28 .4byte _08027930 .4byte _0802796C .4byte _0802798C .4byte _080279C0 .4byte _080279D0 .4byte _080279D8 .4byte _080279C8 _08027930: ldr r4, _08027964 ldr r0, [r4] movs r1, 0x8 ldrsh r0, [r0, r1] bl sub_808D750 lsls r0, 24 cmp r0, 0 beq _0802795E ldr r0, [r4] movs r2, 0x8 ldrsh r1, [r0, r2] movs r0, 0x58 muls r1, r0 ldr r0, _08027968 ldr r0, [r0] adds r1, r0 ldrh r2, [r1] movs r0, 0x2 orrs r0, r2 strh r0, [r1] bl nullsub_104 _0802795E: bl sub_808ED00 b _08027A0E .align 2, 0 _08027964: .4byte gUnknown_203B2BC _08027968: .4byte gUnknown_203B45C _0802796C: ldr r0, _08027984 ldr r0, [r0] ldr r2, [r0, 0x18] ldrh r1, [r2] ldr r0, _08027988 ands r0, r1 strh r0, [r2] bl nullsub_104 bl sub_808ED00 b _08027A0E .align 2, 0 _08027984: .4byte gUnknown_203B2BC _08027988: .4byte 0x0000fffd _0802798C: ldr r2, _080279B8 ldr r0, _080279BC ldr r0, [r0] movs r3, 0x8 ldrsh r1, [r0, r3] movs r0, 0x58 muls r1, r0 ldr r0, [r2] adds r4, r0, r1 bl sub_808D33C ldrb r1, [r4, 0x2] cmp r1, 0 bne _080279B2 strb r1, [r0, 0x2] movs r0, 0x1 strb r0, [r4, 0x2] bl nullsub_104 _080279B2: bl sub_808ED00 b _08027A0E .align 2, 0 _080279B8: .4byte gUnknown_203B45C _080279BC: .4byte gUnknown_203B2BC _080279C0: movs r0, 0x8 bl sub_8027184 b _08027A36 _080279C8: movs r0, 0xE bl sub_8027184 b _08027A36 _080279D0: movs r0, 0xA bl sub_8027184 b _08027A36 _080279D8: ldr r0, _08027A18 bl sub_8011988 ldr r4, _08027A1C ldr r1, [r4] ldrb r0, [r1, 0x14] cmp r0, 0 beq _080279F0 adds r0, r1, 0 adds r0, 0x14 bl sub_8091274 _080279F0: bl sub_80910B4 ldr r0, [r4] movs r1, 0 strb r1, [r0, 0x14] ldr r0, [r4] strb r1, [r0, 0x15] ldr r1, [r4] movs r2, 0x8 ldrsh r0, [r1, r2] adds r1, 0x14 bl sub_808D800 bl nullsub_104 _08027A0E: movs r0, 0x2 bl sub_8027184 b _08027A36 .align 2, 0 _08027A18: .4byte 0x0000014d _08027A1C: .4byte gUnknown_203B2BC _08027A20: movs r0, 0x4 bl sub_8027184 b _08027A36 _08027A28: movs r0, 0x5 bl sub_8027184 b _08027A36 _08027A30: movs r0, 0x2 bl sub_8027184 _08027A36: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_80278B4 thumb_func_start sub_8027A40 sub_8027A40: push {lr} bl sub_80244E4 cmp r0, 0x1 bls _08027A58 cmp r0, 0x3 bhi _08027A58 bl sub_802453C movs r0, 0x2 bl sub_8027184 _08027A58: pop {r0} bx r0 thumb_func_end sub_8027A40 thumb_func_start sub_8027A5C sub_8027A5C: push {lr} bl sub_801BF48 cmp r0, 0x1 bls _08027A74 cmp r0, 0x3 bhi _08027A74 bl sub_801BF98 movs r0, 0x2 bl sub_8027184 _08027A74: pop {r0} bx r0 thumb_func_end sub_8027A5C thumb_func_start sub_8027A78 sub_8027A78: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08027AD8 ldr r0, [sp] cmp r0, 0x2 beq _08027AA2 cmp r0, 0x2 bgt _08027A96 cmp r0, 0x1 beq _08027A9A b _08027AD8 _08027A96: cmp r0, 0x3 bne _08027AD8 _08027A9A: movs r0, 0x2 bl sub_8027184 b _08027AD8 _08027AA2: ldr r0, _08027AB8 ldr r0, [r0] ldr r0, [r0, 0x18] ldrb r0, [r0, 0x4] subs r0, 0x44 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _08027ABC movs r0, 0x1 b _08027ABE .align 2, 0 _08027AB8: .4byte gUnknown_203B2BC _08027ABC: movs r0, 0 _08027ABE: cmp r0, 0 beq _08027ACA movs r0, 0x9 bl sub_8027184 b _08027AD8 _08027ACA: bl sub_8027EB8 ldr r0, _08027AE0 ldr r0, [r0] ldr r0, [r0, 0x18] bl sub_808D31C _08027AD8: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _08027AE0: .4byte gUnknown_203B2BC thumb_func_end sub_8027A78 thumb_func_start sub_8027AE4 sub_8027AE4: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08027B1C ldr r0, [sp] cmp r0, 0x2 beq _08027B0E cmp r0, 0x2 bgt _08027B02 cmp r0, 0x1 beq _08027B06 b _08027B1C _08027B02: cmp r0, 0x3 bne _08027B1C _08027B06: movs r0, 0x2 bl sub_8027184 b _08027B1C _08027B0E: bl sub_8027EB8 ldr r0, _08027B24 ldr r0, [r0] ldr r0, [r0, 0x18] bl sub_808D31C _08027B1C: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _08027B24: .4byte gUnknown_203B2BC thumb_func_end sub_8027AE4 thumb_func_start sub_8027B28 sub_8027B28: push {r4,lr} movs r0, 0x1 bl sub_801A6E8 cmp r0, 0x4 bhi _08027BD2 lsls r0, 2 ldr r1, _08027B40 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08027B40: .4byte _08027B44 .align 2, 0 _08027B44: .4byte _08027BD2 .4byte _08027BD2 .4byte _08027BC8 .4byte _08027B58 .4byte _08027B8C _08027B58: bl sub_801A8AC ldr r4, _08027B84 ldr r2, [r4] str r0, [r2, 0xC] ldr r3, _08027B88 ldr r1, [r3] lsls r0, 2 adds r1, r0 ldrb r0, [r1, 0x2] strb r0, [r2, 0x10] ldr r2, [r4] ldr r1, [r3] ldr r0, [r2, 0xC] lsls r0, 2 adds r1, r0 ldrb r0, [r1, 0x1] strb r0, [r2, 0x11] movs r0, 0xC bl sub_8027184 b _08027BD2 .align 2, 0 _08027B84: .4byte gUnknown_203B2BC _08027B88: .4byte gUnknown_203B460 _08027B8C: bl sub_801A8AC ldr r4, _08027BC0 ldr r2, [r4] str r0, [r2, 0xC] ldr r3, _08027BC4 ldr r1, [r3] lsls r0, 2 adds r1, r0 ldrb r0, [r1, 0x2] strb r0, [r2, 0x10] ldr r2, [r4] ldr r1, [r3] ldr r0, [r2, 0xC] lsls r0, 2 adds r1, r0 ldrb r0, [r1, 0x1] strb r0, [r2, 0x11] movs r0, 0 bl sub_8099690 movs r0, 0xD bl sub_8027184 b _08027BD2 .align 2, 0 _08027BC0: .4byte gUnknown_203B2BC _08027BC4: .4byte gUnknown_203B460 _08027BC8: bl sub_801A928 movs r0, 0x2 bl sub_8027184 _08027BD2: pop {r4} pop {r0} bx r0 thumb_func_end sub_8027B28 thumb_func_start sub_8027BD8 sub_8027BD8: push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] bl sub_801A6E8 ldr r4, _08027C18 ldr r0, [r4] adds r0, 0x7C bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _08027C08 ldr r0, [r4] adds r0, 0x7C mov r1, sp bl sub_8013114 ldr r1, [sp] cmp r1, 0x1 beq _08027C08 ldr r0, [r4] str r1, [r0, 0x74] _08027C08: ldr r0, [sp] cmp r0, 0x4 beq _08027C68 cmp r0, 0x4 bgt _08027C1C cmp r0, 0x1 beq _08027C76 b _08027C7C .align 2, 0 _08027C18: .4byte gUnknown_203B2BC _08027C1C: cmp r0, 0xA bne _08027C7C ldr r0, _08027C60 bl sub_8011988 ldr r4, _08027C64 ldr r0, [r4] ldr r0, [r0, 0xC] bl sub_80911F8 bl sub_80910B4 ldr r1, [r4] ldrb r0, [r1, 0x14] cmp r0, 0 beq _08027C44 adds r0, r1, 0 adds r0, 0x14 bl sub_8091274 _08027C44: ldr r1, [r4] movs r2, 0x8 ldrsh r0, [r1, r2] adds r1, 0x10 bl sub_808D800 bl sub_801A928 bl nullsub_104 movs r0, 0x2 bl sub_8027184 b _08027C7C .align 2, 0 _08027C60: .4byte 0x0000014d _08027C64: .4byte gUnknown_203B2BC _08027C68: movs r0, 0 bl sub_8099690 movs r0, 0xD bl sub_8027184 b _08027C7C _08027C76: movs r0, 0xB bl sub_8027184 _08027C7C: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_8027BD8 thumb_func_start sub_8027C84 sub_8027C84: push {lr} bl sub_801B410 cmp r0, 0x1 bls _08027C9C cmp r0, 0x3 bhi _08027C9C bl sub_801B450 movs r0, 0xB bl sub_8027184 _08027C9C: pop {r0} bx r0 thumb_func_end sub_8027C84 thumb_func_start sub_8027CA0 sub_8027CA0: push {lr} movs r0, 0x1 bl sub_801EF38 cmp r0, 0x4 bhi _08027CFA lsls r0, 2 ldr r1, _08027CB8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08027CB8: .4byte _08027CBC .align 2, 0 _08027CBC: .4byte _08027CFA .4byte _08027CFA .4byte _08027CF0 .4byte _08027CD0 .4byte _08027CD0 _08027CD0: bl sub_801F194 ldr r1, _08027CEC ldr r1, [r1] str r0, [r1, 0x20] lsls r0, 3 adds r0, r1, r0 ldrh r0, [r0, 0x2A] strh r0, [r1, 0x24] movs r0, 0x10 bl sub_8027184 b _08027CFA .align 2, 0 _08027CEC: .4byte gUnknown_203B2BC _08027CF0: bl sub_801F214 movs r0, 0x2 bl sub_8027184 _08027CFA: pop {r0} bx r0 thumb_func_end sub_8027CA0 thumb_func_start sub_8027D00 sub_8027D00: push {lr} bl sub_801F890 cmp r0, 0x1 bls _08027D18 cmp r0, 0x3 bhi _08027D18 bl sub_801F8D0 movs r0, 0xF bl sub_8027184 _08027D18: pop {r0} bx r0 thumb_func_end sub_8027D00 thumb_func_start sub_8027D1C sub_8027D1C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08027D34 ldr r0, _08027D3C ldr r0, [r0] ldr r0, [r0, 0x4] bl sub_8027184 _08027D34: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _08027D3C: .4byte gUnknown_203B2BC thumb_func_end sub_8027D1C thumb_func_start sub_8027D40 sub_8027D40: push {r4-r6,lr} sub sp, 0x14 adds r6, r0, 0 adds r5, r1, 0 bl sub_8008C54 adds r0, r6, 0 bl sub_80073B8 add r4, sp, 0x10 adds r0, r4, 0 adds r1, r5, 0 bl sub_8090B64 movs r5, 0 str r5, [sp, 0x4] add r0, sp, 0x4 strb r5, [r0, 0x4] adds r1, r0, 0 movs r0, 0x1 strb r0, [r1, 0x8] strb r0, [r4] ldr r0, _08027D94 adds r1, r4, 0 add r2, sp, 0x4 bl sub_8090E14 ldr r2, _08027D98 str r5, [sp] movs r0, 0x4 movs r1, 0x3 adds r3, r6, 0 bl sub_8014FF0 adds r0, r6, 0 bl sub_80073E0 add sp, 0x14 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08027D94: .4byte gUnknown_202DE58 _08027D98: .4byte gUnknown_80DD958 thumb_func_end sub_8027D40 thumb_func_start sub_8027D9C sub_8027D9C: push {lr} adds r1, r0, 0 ldrb r0, [r1, 0x2] cmp r0, 0 bne _08027DC0 movs r2, 0 ldrb r0, [r1, 0x4] cmp r0, 0x41 bne _08027DB0 movs r2, 0x1 _08027DB0: cmp r2, 0 beq _08027DC4 movs r0, 0x8 bl sub_80023E4 lsls r0, 24 cmp r0, 0 bne _08027DC4 _08027DC0: movs r0, 0 b _08027DC6 _08027DC4: movs r0, 0x1 _08027DC6: pop {r1} bx r1 thumb_func_end sub_8027D9C thumb_func_start sub_8027DCC sub_8027DCC: push {r4,lr} adds r4, r0, 0 bl sub_808D3BC cmp r0, r4 beq _08027E0E bl sub_808D3F8 cmp r0, r4 beq _08027E0E ldrb r0, [r4, 0x2] cmp r0, 0 bne _08027E0E movs r1, 0 ldrb r0, [r4, 0x4] cmp r0, 0x41 bne _08027DF0 movs r1, 0x1 _08027DF0: cmp r1, 0 beq _08027E00 movs r0, 0x8 bl sub_80023E4 lsls r0, 24 cmp r0, 0 beq _08027E0E _08027E00: adds r0, r4, 0 bl sub_8027E18 cmp r0, 0x3 beq _08027E0E movs r0, 0x1 b _08027E10 _08027E0E: movs r0, 0 _08027E10: pop {r4} pop {r1} bx r1 thumb_func_end sub_8027DCC thumb_func_start sub_8027E18 sub_8027E18: push {r4,lr} adds r4, r0, 0 adds r0, 0x28 ldrb r0, [r0] cmp r0, 0 bne _08027E28 movs r0, 0 b _08027E46 _08027E28: bl sub_8090A34 cmp r0, 0x13 bgt _08027E34 movs r0, 0x1 b _08027E46 _08027E34: adds r0, r4, 0 bl sub_8027E4C lsls r0, 24 cmp r0, 0 bne _08027E44 movs r0, 0x3 b _08027E46 _08027E44: movs r0, 0x2 _08027E46: pop {r4} pop {r1} bx r1 thumb_func_end sub_8027E18 thumb_func_start sub_8027E4C sub_8027E4C: push {r4,r5,lr} adds r5, r0, 0 adds r4, r5, 0 adds r4, 0x28 ldrb r0, [r4] bl sub_8091524 lsls r0, 24 cmp r0, 0 beq _08027E88 ldrb r0, [r4] bl sub_8090A60 lsls r0, 24 cmp r0, 0 beq _08027E94 ldr r0, _08027E8C ldr r1, [r0] ldrb r0, [r4] lsls r0, 1 adds r1, 0x50 adds r1, r0 ldrh r1, [r1] adds r0, r5, 0 adds r0, 0x29 ldrb r0, [r0] adds r1, r0 ldr r0, _08027E90 cmp r1, r0 ble _08027EA8 _08027E88: movs r0, 0 b _08027EAA .align 2, 0 _08027E8C: .4byte gUnknown_203B460 _08027E90: .4byte 0x000003e7 _08027E94: ldr r0, _08027EB0 ldr r1, [r0] ldrb r0, [r4] lsls r0, 1 adds r1, 0x50 adds r1, r0 ldrh r1, [r1] ldr r0, _08027EB4 cmp r1, r0 bhi _08027E88 _08027EA8: movs r0, 0x1 _08027EAA: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08027EB0: .4byte gUnknown_203B460 _08027EB4: .4byte 0x000003e6 thumb_func_end sub_8027E4C thumb_func_start sub_8027EB8 sub_8027EB8: push {r4,lr} ldr r4, _08027ED4 ldr r0, [r4] ldr r0, [r0, 0x18] bl sub_8027E18 cmp r0, 0x1 beq _08027ED8 cmp r0, 0x1 bcc _08027F7C cmp r0, 0x2 beq _08027F0C b _08027F7C .align 2, 0 _08027ED4: .4byte gUnknown_203B2BC _08027ED8: ldr r0, _08027F08 bl sub_8011988 ldr r0, [r4] adds r0, 0x14 bl sub_8091274 bl sub_80910B4 ldr r0, [r4] movs r1, 0 strb r1, [r0, 0x14] ldr r0, [r4] strb r1, [r0, 0x15] ldr r1, [r4] movs r2, 0x8 ldrsh r0, [r1, r2] adds r1, 0x14 bl sub_808D800 movs r0, 0x6 bl sub_8027184 b _08027F82 .align 2, 0 _08027F08: .4byte 0x0000014d _08027F0C: ldr r0, _08027F38 bl sub_8011988 ldr r0, [r4] ldrb r0, [r0, 0x14] bl sub_8090A60 lsls r0, 24 cmp r0, 0 beq _08027F40 ldr r0, _08027F3C ldr r1, [r0] ldr r2, [r4] ldrb r0, [r2, 0x14] lsls r0, 1 adds r1, 0x50 adds r1, r0 ldrh r0, [r1] ldrb r2, [r2, 0x15] adds r0, r2 b _08027F52 .align 2, 0 _08027F38: .4byte 0x0000014d _08027F3C: .4byte gUnknown_203B460 _08027F40: ldr r0, _08027F74 ldr r1, [r0] ldr r0, [r4] ldrb r0, [r0, 0x14] lsls r0, 1 adds r1, 0x50 adds r1, r0 ldrh r0, [r1] adds r0, 0x1 _08027F52: strh r0, [r1] ldr r1, _08027F78 ldr r0, [r1] movs r2, 0 strb r2, [r0, 0x14] ldr r0, [r1] strb r2, [r0, 0x15] ldr r1, [r1] movs r2, 0x8 ldrsh r0, [r1, r2] adds r1, 0x14 bl sub_808D800 movs r0, 0x7 bl sub_8027184 b _08027F82 .align 2, 0 _08027F74: .4byte gUnknown_203B460 _08027F78: .4byte gUnknown_203B2BC _08027F7C: movs r0, 0x2 bl sub_8027184 _08027F82: pop {r4} pop {r0} bx r0 thumb_func_end sub_8027EB8 thumb_func_start sub_8027F88 sub_8027F88: push {r4-r6,lr} bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r5, _08028050 movs r4, 0xA9 lsls r4, 3 adds r0, r4, 0 movs r1, 0x8 bl MemoryAlloc str r0, [r5] movs r1, 0 adds r2, r4, 0 bl MemoryFill8 ldr r1, [r5] ldr r2, _08028054 adds r0, r1, r2 movs r6, 0 str r6, [r0] movs r3, 0x86 lsls r3, 2 adds r1, r3 movs r0, 0xFF strb r0, [r1] ldr r0, [r5] ldr r1, _08028058 adds r0, r1 ldr r1, _0802805C strh r1, [r0] ldr r0, _08028060 movs r4, 0x98 lsls r4, 1 adds r1, r4, 0 bl sub_808D8E0 adds r0, r4, 0 bl sub_808D994 adds r1, r0, 0 ldr r0, _08028064 bl strcpy adds r0, r4, 0 bl sub_808DDD0 ldr r2, [r5] movs r3, 0x84 lsls r3, 3 adds r1, r2, r3 str r0, [r1] adds r3, 0x4 adds r1, r2, r3 ldr r0, [r0, 0x4] str r0, [r1] ldr r0, _08028068 adds r2, r0 strb r6, [r2] ldr r0, [r5] ldr r1, _0802806C adds r0, r1 strb r6, [r0] ldr r0, [r5] ldr r2, _08028070 adds r0, r2 strb r6, [r0] ldr r1, [r5] adds r3, 0x4 adds r2, r1, r3 movs r0, 0x2 strh r0, [r2] ldr r0, _08028074 adds r1, r0 movs r0, 0x8 strh r0, [r1] movs r2, 0 movs r3, 0 adds r1, r5, 0 _0802802E: ldr r0, [r5] adds r0, 0x8 adds r0, r2 strb r3, [r0] adds r2, 0x1 cmp r2, 0x35 ble _0802802E ldr r1, [r1] movs r0, 0x3D str r0, [r1] movs r0, 0 bl sub_8028B04 movs r0, 0x1 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08028050: .4byte gUnknown_203B2C0 _08028054: .4byte 0x0000053c _08028058: .4byte 0x00000544 _0802805C: .4byte 0x0000ffff _08028060: .4byte gUnknown_202E5D8 _08028064: .4byte gUnknown_202DF98 _08028068: .4byte 0x0000042c _0802806C: .4byte 0x0000042d _08028070: .4byte 0x0000042e _08028074: .4byte 0x0000042a thumb_func_end sub_8027F88 thumb_func_start sub_8028078 sub_8028078: push {lr} ldr r0, _08028090 ldr r0, [r0] ldr r0, [r0, 0x4] cmp r0, 0x3C bls _08028086 b _080282D4 _08028086: lsls r0, 2 ldr r1, _08028094 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08028090: .4byte gUnknown_203B2C0 _08028094: .4byte _08028098 .align 2, 0 _08028098: .4byte _080282C4 .4byte _080282C4 .4byte _080282CA .4byte _080282D0 .4byte _08028222 .4byte _08028234 .4byte _08028228 .4byte _0802822E .4byte _0802823A .4byte _080281FE .4byte _08028272 .4byte _08028278 .4byte _0802828C .4byte _0802827E .4byte _0802828C .4byte _0802827E .4byte _0802828C .4byte _08028286 .4byte _08028294 .4byte _0802829A .4byte _080282B2 .4byte _080282B8 .4byte _080282BE .4byte _080282A0 .4byte _080282A6 .4byte _080282AC .4byte _08028240 .4byte _08028248 .4byte _0802824E .4byte _0802824E .4byte _0802825A .4byte _0802826C .4byte _08028260 .4byte _08028266 .4byte _08028254 .4byte _08028204 .4byte _0802820A .4byte _080282CA .4byte _08028210 .4byte _08028216 .4byte _0802821C .4byte _080281E0 .4byte _080281F2 .4byte _080281E6 .4byte _080281EC .4byte _080281DA .4byte _080281D4 .4byte _080281F8 .4byte _080281CE .4byte _080281C2 .4byte _080281AA .4byte _080281B0 .4byte _080281B6 .4byte _080281BC .4byte _080281C8 .4byte _080281A4 .4byte _0802819E .4byte _080282CA .4byte _08028192 .4byte _08028198 .4byte _0802818C _0802818C: bl sub_8029B34 b _080282D4 _08028192: bl sub_8029AD8 b _080282D4 _08028198: bl sub_8029AF4 b _080282D4 _0802819E: bl sub_8029A88 b _080282D4 _080281A4: bl sub_8029AB0 b _080282D4 _080281AA: bl sub_80297B8 b _080282D4 _080281B0: bl sub_80297D4 b _080282D4 _080281B6: bl sub_8029884 b _080282D4 _080281BC: bl sub_8029944 b _080282D4 _080281C2: bl sub_80299AC b _080282D4 _080281C8: bl sub_80299D8 b _080282D4 _080281CE: bl sub_8029A6C b _080282D4 _080281D4: bl sub_8029A18 b _080282D4 _080281DA: bl sub_80295A8 b _080282D4 _080281E0: bl sub_8029668 b _080282D4 _080281E6: bl sub_8029684 b _080282D4 _080281EC: bl sub_8029740 b _080282D4 _080281F2: bl sub_80295D8 b _080282D4 _080281F8: bl sub_802979C b _080282D4 _080281FE: bl sub_8029358 b _080282D4 _08028204: bl sub_8029374 b _080282D4 _0802820A: bl sub_802939C b _080282D4 _08028210: bl sub_80293D8 b _080282D4 _08028216: bl sub_80293F4 b _080282D4 _0802821C: bl sub_802955C b _080282D4 _08028222: bl sub_80292A4 b _080282D4 _08028228: bl sub_80292EC b _080282D4 _0802822E: bl sub_802933C b _080282D4 _08028234: bl sub_802958C b _080282D4 _0802823A: bl sub_8029208 b _080282D4 _08028240: movs r0, 0x1 bl sub_8028DE8 b _080282D4 _08028248: bl sub_8028F80 b _080282D4 _0802824E: bl sub_8028FC0 b _080282D4 _08028254: bl sub_8028FDC b _080282D4 _0802825A: bl sub_80290D4 b _080282D4 _08028260: bl sub_80290F0 b _080282D4 _08028266: bl sub_80291AC b _080282D4 _0802826C: bl sub_8029044 b _080282D4 _08028272: bl sub_8028CFC b _080282D4 _08028278: bl sub_8028D4C b _080282D4 _0802827E: movs r0, 0xA bl sub_8028DE8 b _080282D4 _08028286: bl sub_8028E08 b _080282D4 _0802828C: movs r0, 0x19 bl sub_8028DE8 b _080282D4 _08028294: bl sub_8028E24 b _080282D4 _0802829A: bl sub_8028E54 b _080282D4 _080282A0: bl sub_8028E84 b _080282D4 _080282A6: bl sub_8028EAC b _080282D4 _080282AC: bl sub_8028ED4 b _080282D4 _080282B2: bl sub_8028F04 b _080282D4 _080282B8: bl sub_8028F30 b _080282D4 _080282BE: bl sub_8028F58 b _080282D4 _080282C4: bl sub_8028BF0 b _080282D4 _080282CA: bl sub_8028CE0 b _080282D4 _080282D0: movs r0, 0x3 b _080282D6 _080282D4: movs r0, 0 _080282D6: pop {r1} bx r1 thumb_func_end sub_8028078 thumb_func_start sub_80282DC sub_80282DC: ldr r1, _080282F4 ldr r1, [r1] movs r3, 0x86 lsls r3, 2 adds r2, r1, r3 ldrb r2, [r2] strb r2, [r0] ldr r0, _080282F8 adds r1, r0 ldr r0, [r1] bx lr .align 2, 0 _080282F4: .4byte gUnknown_203B2C0 _080282F8: .4byte 0x0000053c thumb_func_end sub_80282DC thumb_func_start sub_80282FC sub_80282FC: push {r4,lr} ldr r4, _08028340 ldr r0, [r4] cmp r0, 0 beq _08028338 movs r1, 0x84 lsls r1, 3 adds r0, r1 ldr r0, [r0] bl CloseFile ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] bl sub_8031E10 bl sub_8023C60 bl sub_803084C bl sub_80155F0 bl sub_80310B4 bl sub_8030DE4 bl sub_802453C _08028338: pop {r4} pop {r0} bx r0 .align 2, 0 _08028340: .4byte gUnknown_203B2C0 thumb_func_end sub_80282FC thumb_func_start nullsub_130 nullsub_130: bx lr thumb_func_end nullsub_130 thumb_func_start sub_8028348 sub_8028348: push {r4-r6,lr} sub sp, 0x14 ldr r1, _08028368 ldr r0, [r1] ldr r0, [r0, 0x4] adds r6, r1, 0 cmp r0, 0x3C bls _0802835C bl _08028AF2 _0802835C: lsls r0, 2 ldr r1, _0802836C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08028368: .4byte gUnknown_203B2C0 _0802836C: .4byte _08028370 .align 2, 0 _08028370: .4byte _08028A84 .4byte _08028AB4 .4byte _08028AE0 .4byte _08028AF2 .4byte _08028650 .4byte _08028660 .4byte _08028678 .4byte _08028AF2 .4byte _08028802 .4byte _08028640 .4byte _0802890C .4byte _08028948 .4byte _08028988 .4byte _08028978 .4byte _080289A0 .4byte _08028990 .4byte _080289B8 .4byte _080289B0 .4byte _080289C8 .4byte _080289E8 .4byte _08028A48 .4byte _08028A58 .4byte _08028A68 .4byte _080289F8 .4byte _08028A08 .4byte _08028A18 .4byte _08028850 .4byte _08028860 .4byte _08028868 .4byte _08028878 .4byte _08028890 .4byte _080288A0 .4byte _080288C6 .4byte _08028AF2 .4byte _08028888 .4byte _08028790 .4byte _08028AF2 .4byte _080287C4 .4byte _080287D4 .4byte _080287DC .4byte _08028AF2 .4byte _080285CC .4byte _080285DC .4byte _080288C6 .4byte _08028AF2 .4byte _080285AC .4byte _08028610 .4byte _080285F8 .4byte _08028600 .4byte _0802856C .4byte _080284F4 .4byte _0802850C .4byte _08028532 .4byte _08028AF2 .4byte _0802859C .4byte _080284B8 .4byte _080284A8 .4byte _080284EC .4byte _080284A0 .4byte _08028464 .4byte _08028490 _08028464: ldr r0, [r6] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r6] movs r2, 0x86 lsls r2, 2 adds r0, r2 ldrb r0, [r0] movs r1, 0 bl sub_8031D70 b _08028AF2 _08028490: ldr r0, _0802849C ldr r2, [r6] movs r3, 0x84 lsls r3, 3 adds r2, r3 b _08028A72 .align 2, 0 _0802849C: .4byte gUnknown_80DDBA8 _080284A0: ldr r0, _080284A4 b _08028A6A .align 2, 0 _080284A4: .4byte gUnknown_80DDBFC _080284A8: ldr r0, _080284B4 ldr r2, [r6] movs r1, 0x84 lsls r1, 3 adds r2, r1 b _08028A72 .align 2, 0 _080284B4: .4byte gUnknown_80DDC30 _080284B8: ldr r0, [r6] ldr r2, _080284D0 adds r0, r2 ldr r0, [r0] cmp r0, 0xE bne _080284C6 b _08028AF2 _080284C6: cmp r0, 0xE bhi _080284D4 cmp r0, 0xD beq _080284DA b _08028AF2 .align 2, 0 _080284D0: .4byte 0x00000534 _080284D4: cmp r0, 0x10 bls _080284DA b _08028AF2 _080284DA: ldr r0, _080284E8 ldr r2, [r6] movs r3, 0x84 lsls r3, 3 adds r2, r3 b _08028A72 .align 2, 0 _080284E8: .4byte gUnknown_80DDC70 _080284EC: ldr r0, _080284F0 b _08028A6A .align 2, 0 _080284F0: .4byte gUnknown_80DDC30 _080284F4: ldr r0, _08028504 ldr r3, _08028508 movs r1, 0 movs r2, 0 bl sub_80141B4 b _08028AF2 .align 2, 0 _08028504: .4byte gUnknown_80DDCBC _08028508: .4byte 0x00000101 _0802850C: bl sub_8023CE8 cmp r0, 0 beq _08028516 b _08028AF2 _08028516: bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x3 movs r1, 0 movs r2, 0 movs r3, 0x9 bl sub_8023868 b _08028AF2 _08028532: ldr r0, [r6] movs r4, 0xD7 lsls r4, 2 adds r0, r4 bl sub_8006518 ldr r1, [r6] movs r5, 0x87 lsls r5, 2 adds r0, r1, r5 adds r1, r4 ldr r3, _08028564 ldr r2, _08028568 str r2, [sp] movs r2, 0x1 str r2, [sp, 0x4] movs r2, 0 str r2, [sp, 0x8] str r2, [sp, 0xC] movs r2, 0x3 bl SetMenuItems bl sub_8023DA4 b _080288F6 .align 2, 0 _08028564: .4byte gUnknown_80DDAE4 _08028568: .4byte gUnknown_80DDAFC _0802856C: ldr r0, _08028594 ldr r3, _08028598 movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] ldr r1, [r6] movs r2, 0x84 lsls r2, 3 adds r1, r2 str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 movs r2, 0xA bl sub_8014248 b _08028AF2 .align 2, 0 _08028594: .4byte gUnknown_80DDD2C _08028598: .4byte gUnknown_80DDAA0 _0802859C: ldr r0, _080285A4 ldr r3, _080285A8 b _08028A1C .align 2, 0 _080285A4: .4byte gUnknown_80DDD88 _080285A8: .4byte gUnknown_80DDA80 _080285AC: ldr r0, _080285C4 ldr r3, _080285C8 movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] ldr r1, [r6] movs r2, 0x84 lsls r2, 3 adds r1, r2 b _08028A2E .align 2, 0 _080285C4: .4byte gUnknown_80DDDBC _080285C8: .4byte gUnknown_80DDA64 _080285CC: ldr r0, _080285D8 ldr r2, [r6] movs r3, 0x84 lsls r3, 3 adds r2, r3 b _08028A72 .align 2, 0 _080285D8: .4byte gUnknown_80DDDD8 _080285DC: bl sub_8030894 cmp r0, 0 beq _080285E6 b _08028AF2 _080285E6: bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x4 b _080288BA _080285F8: ldr r0, _080285FC b _08028A6A .align 2, 0 _080285FC: .4byte gUnknown_80DDE20 _08028600: ldr r0, _0802860C ldr r2, [r6] movs r1, 0x84 lsls r1, 3 adds r2, r1 b _08028A72 .align 2, 0 _0802860C: .4byte gUnknown_80DDE58 _08028610: ldr r0, _08028638 ldr r3, _0802863C movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] ldr r1, [r6] movs r2, 0x84 lsls r2, 3 adds r1, r2 str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 movs r2, 0x11 bl sub_8014248 b _08028AF2 .align 2, 0 _08028638: .4byte gUnknown_80DDEC0 _0802863C: .4byte gUnknown_80DDB60 _08028640: ldr r0, _0802864C ldr r2, [r6] movs r3, 0x84 lsls r3, 3 adds r2, r3 b _08028A72 .align 2, 0 _0802864C: .4byte gUnknown_80DDF2C _08028650: ldr r0, _08028658 ldr r3, _0802865C b _08028A1C .align 2, 0 _08028658: .4byte gUnknown_80DDFB8 _0802865C: .4byte gUnknown_80DDA48 _08028660: movs r0, 0 bl nullsub_23 ldr r0, _08028674 movs r1, 0 movs r2, 0 movs r3, 0 bl sub_80141B4 b _08028AF2 .align 2, 0 _08028674: .4byte gUnknown_80DE01C _08028678: ldr r1, [r6] movs r0, 0 str r0, [r1, 0x44] bl sub_8011830 ldr r0, [r6] ldr r0, [r0, 0x40] bl sub_8037B28 adds r4, r0, 0 ldr r0, [r6] str r4, [r0, 0x44] cmp r4, 0 bne _0802878A ldr r1, [r0, 0x40] cmp r1, 0x3 beq _080286A0 cmp r1, 0x4 beq _080286C2 b _08028748 _080286A0: adds r0, 0x48 movs r1, 0 movs r2, 0x30 bl MemoryFill8 ldr r0, [r6] adds r0, 0x78 movs r1, 0 movs r2, 0x30 bl MemoryFill8 ldr r2, [r6] ldr r0, [r2, 0x40] adds r1, r2, 0 adds r1, 0x48 adds r2, 0x78 b _08028740 _080286C2: adds r0, 0xA8 movs r1, 0 movs r2, 0x88 bl MemoryFill8 ldr r0, [r6] movs r5, 0x98 lsls r5, 1 adds r0, r5 movs r1, 0 movs r2, 0x88 bl MemoryFill8 ldr r1, [r6] adds r0, r1, 0 adds r0, 0xE0 strh r4, [r0] movs r2, 0xB4 lsls r2, 1 adds r0, r1, r2 strh r4, [r0] movs r3, 0x86 lsls r3, 2 adds r0, r1, r3 ldrb r0, [r0] bl sub_8095228 ldr r1, [r6] adds r1, 0xA8 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldr r2, [r6] ldr r4, _08028760 adds r3, r2, r4 movs r0, 0 ldrsh r1, [r3, r0] movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _08028736 adds r0, r2, 0 adds r0, 0xD8 ldr r1, _08028764 ldr r1, [r1] movs r2, 0 ldrsh r3, [r3, r2] movs r2, 0x58 muls r2, r3 adds r1, r2 movs r2, 0x58 bl memcpy _08028736: ldr r2, [r6] ldr r0, [r2, 0x40] adds r1, r2, 0 adds r1, 0xA8 adds r2, r5 _08028740: bl sub_8037D64 ldr r1, [r6] str r0, [r1, 0x44] _08028748: ldr r4, _08028768 ldr r2, [r4] ldr r0, [r2, 0x44] cmp r0, 0 bne _0802878A ldr r0, [r2, 0x40] cmp r0, 0x3 beq _0802876C cmp r0, 0x4 beq _08028776 b _0802878A .align 2, 0 _08028760: .4byte 0x00000544 _08028764: .4byte gUnknown_203B45C _08028768: .4byte gUnknown_203B2C0 _0802876C: adds r1, r2, 0 adds r1, 0x48 adds r2, 0x78 movs r0, 0x3 b _08028782 _08028776: adds r1, r2, 0 adds r1, 0xA8 movs r3, 0x98 lsls r3, 1 adds r2, r3 movs r0, 0x4 _08028782: bl sub_80381F4 ldr r1, [r4] str r0, [r1, 0x44] _0802878A: bl sub_8011854 b _08028AF2 _08028790: ldr r0, [r6] ldr r4, _080287A8 adds r0, r4 ldr r0, [r0] cmp r0, 0xE bne _0802879E b _08028AF2 _0802879E: cmp r0, 0xE bhi _080287AC cmp r0, 0xD beq _080287B2 b _08028AF2 .align 2, 0 _080287A8: .4byte 0x00000534 _080287AC: cmp r0, 0x10 bls _080287B2 b _08028AF2 _080287B2: ldr r0, _080287C0 ldr r2, [r6] movs r1, 0x84 lsls r1, 3 adds r2, r1 b _08028A72 .align 2, 0 _080287C0: .4byte gUnknown_80DE06C _080287C4: ldr r0, _080287D0 ldr r2, [r6] movs r3, 0x84 lsls r3, 3 adds r2, r3 b _08028A72 .align 2, 0 _080287D0: .4byte gUnknown_80DE0C0 _080287D4: ldr r0, _080287D8 b _08028A6A .align 2, 0 _080287D8: .4byte gUnknown_80DE124 _080287DC: ldr r0, [r6] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r1, [r6] adds r1, 0x8 movs r0, 0x4 bl sub_80151C0 b _08028AF2 _08028802: ldr r4, [r6] movs r2, 0xA7 lsls r2, 3 adds r0, r4, r2 ldr r2, [r0] cmp r2, 0 beq _08028816 cmp r2, 0x2 beq _08028824 b _08028AF2 _08028816: ldr r0, _0802881C ldr r3, _08028820 b _0802882A .align 2, 0 _0802881C: .4byte gUnknown_80DE178 _08028820: .4byte gUnknown_80DDB24 _08028824: ldr r0, _08028848 ldr r3, _0802884C movs r2, 0 _0802882A: str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] movs r2, 0x84 lsls r2, 3 adds r1, r4, r2 str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 movs r2, 0xD bl sub_8014248 b _08028AF2 .align 2, 0 _08028848: .4byte gUnknown_80DE1B4 _0802884C: .4byte gUnknown_80DDB24 _08028850: ldr r0, _0802885C ldr r2, [r6] movs r3, 0x84 lsls r3, 3 adds r2, r3 b _08028A72 .align 2, 0 _0802885C: .4byte gUnknown_80DE1E4 _08028860: ldr r0, _08028864 b _08028A6A .align 2, 0 _08028864: .4byte gUnknown_80DE280 _08028868: ldr r0, _08028874 ldr r2, [r6] movs r1, 0x84 lsls r1, 3 adds r2, r1 b _08028A72 .align 2, 0 _08028874: .4byte gUnknown_80DE2B0 _08028878: ldr r0, _08028884 ldr r2, [r6] movs r3, 0x84 lsls r3, 3 adds r2, r3 b _08028A72 .align 2, 0 _08028884: .4byte gUnknown_80DE368 _08028888: ldr r0, _0802888C b _08028A1A .align 2, 0 _0802888C: .4byte gUnknown_80DDDBC _08028890: ldr r0, _0802889C ldr r2, [r6] movs r1, 0x84 lsls r1, 3 adds r2, r1 b _08028A72 .align 2, 0 _0802889C: .4byte gUnknown_80DE430 _080288A0: bl sub_8030894 cmp r0, 0 beq _080288AA b _08028AF2 _080288AA: bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x2 _080288BA: movs r1, 0 movs r2, 0 movs r3, 0x6 bl sub_80306A8 b _08028AF2 _080288C6: ldr r0, [r6] movs r4, 0xD7 lsls r4, 2 adds r0, r4 bl sub_8006518 ldr r1, [r6] movs r5, 0x87 lsls r5, 2 adds r0, r1, r5 adds r1, r4 ldr r3, _08028904 ldr r2, _08028908 str r2, [sp] movs r2, 0x1 str r2, [sp, 0x4] movs r2, 0 str r2, [sp, 0x8] str r2, [sp, 0xC] movs r2, 0x3 bl SetMenuItems bl sub_803092C _080288F6: ldr r0, [r6] adds r0, r5 movs r1, 0x3 movs r2, 0x1 bl sub_8035CF4 b _08028AF2 .align 2, 0 _08028904: .4byte gUnknown_80DDACC _08028908: .4byte gUnknown_80DDAFC _0802890C: bl sub_8095350 ldr r1, _0802893C ldr r1, [r1] movs r3, 0xA8 lsls r3, 3 adds r2, r1, r3 str r0, [r2] movs r4, 0xA7 lsls r4, 3 adds r1, r4 ldr r1, [r1] cmp r1, 0x6 beq _08028940 cmp r1, 0x6 bls _0802892E b _08028AF2 _0802892E: cmp r1, 0x5 beq _08028934 b _08028AF2 _08028934: movs r0, 0x2 bl sub_8030F58 b _08028AF2 .align 2, 0 _0802893C: .4byte gUnknown_203B2C0 _08028940: movs r0, 0x4 bl sub_8030F58 b _08028AF2 _08028948: ldr r0, _08028970 ldr r3, _08028974 movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] ldr r1, [r6] movs r2, 0x84 lsls r2, 3 adds r1, r2 str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 movs r2, 0x5 bl sub_8014248 b _08028AF2 .align 2, 0 _08028970: .4byte gUnknown_80DE48C _08028974: .4byte gUnknown_80DD9EC _08028978: ldr r0, _08028984 ldr r2, [r6] movs r3, 0x84 lsls r3, 3 adds r2, r3 b _08028A72 .align 2, 0 _08028984: .4byte gUnknown_80DE4B8 _08028988: ldr r0, _0802898C b _08028A6A .align 2, 0 _0802898C: .4byte gUnknown_80DE4F0 _08028990: ldr r0, _0802899C ldr r2, [r6] movs r1, 0x84 lsls r1, 3 adds r2, r1 b _08028A72 .align 2, 0 _0802899C: .4byte gUnknown_80DE524 _080289A0: ldr r0, _080289AC ldr r2, [r6] movs r3, 0x84 lsls r3, 3 adds r2, r3 b _08028A72 .align 2, 0 _080289AC: .4byte gUnknown_80DE614 _080289B0: ldr r0, _080289B4 b _08028A6A .align 2, 0 _080289B4: .4byte gUnknown_80DE648 _080289B8: ldr r0, _080289C4 ldr r2, [r6] movs r1, 0x84 lsls r1, 3 adds r2, r1 b _08028A72 .align 2, 0 _080289C4: .4byte gUnknown_80DE694 _080289C8: ldr r0, _080289E0 ldr r3, _080289E4 movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] ldr r1, [r6] movs r2, 0x84 lsls r2, 3 adds r1, r2 b _08028A2E .align 2, 0 _080289E0: .4byte gUnknown_80DE6D4 _080289E4: .4byte gUnknown_80DDA48 _080289E8: ldr r0, _080289F0 ldr r3, _080289F4 b _08028A1C .align 2, 0 _080289F0: .4byte gUnknown_80DE754 _080289F4: .4byte gUnknown_80DDA48 _080289F8: ldr r0, _08028A04 ldr r2, [r6] movs r1, 0x84 lsls r1, 3 adds r2, r1 b _08028A72 .align 2, 0 _08028A04: .4byte gUnknown_80DE7B8 _08028A08: ldr r0, _08028A14 ldr r2, [r6] movs r3, 0x84 lsls r3, 3 adds r2, r3 b _08028A72 .align 2, 0 _08028A14: .4byte gUnknown_80DE7E8 _08028A18: ldr r0, _08028A40 _08028A1A: ldr r3, _08028A44 _08028A1C: movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] ldr r1, [r6] movs r4, 0x84 lsls r4, 3 adds r1, r4 _08028A2E: str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 movs r2, 0x8 bl sub_8014248 b _08028AF2 .align 2, 0 _08028A40: .4byte gUnknown_80DE808 _08028A44: .4byte gUnknown_80DDA64 _08028A48: ldr r0, _08028A54 ldr r2, [r6] movs r1, 0x84 lsls r1, 3 adds r2, r1 b _08028A72 .align 2, 0 _08028A54: .4byte gUnknown_80DE830 _08028A58: ldr r0, _08028A64 ldr r2, [r6] movs r3, 0x84 lsls r3, 3 adds r2, r3 b _08028A72 .align 2, 0 _08028A64: .4byte gUnknown_80DE864 _08028A68: ldr r0, _08028A7C _08028A6A: ldr r2, [r6] movs r4, 0x84 lsls r4, 3 adds r2, r4 _08028A72: ldr r3, _08028A80 movs r1, 0 bl sub_80141B4 b _08028AF2 .align 2, 0 _08028A7C: .4byte gUnknown_80DE7E8 _08028A80: .4byte 0x0000010d _08028A84: ldr r0, _08028AAC ldr r3, _08028AB0 movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] ldr r1, [r6] movs r2, 0x84 lsls r2, 3 adds r1, r2 str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 movs r2, 0 bl sub_8014248 b _08028AF2 .align 2, 0 _08028AAC: .4byte gUnknown_80DE8B4 _08028AB0: .4byte gUnknown_80DD970 _08028AB4: ldr r0, _08028AD8 ldr r3, _08028ADC movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] ldr r1, [r6] movs r4, 0x84 lsls r4, 3 adds r1, r4 str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 bl sub_8014248 b _08028AF2 .align 2, 0 _08028AD8: .4byte gUnknown_80DE918 _08028ADC: .4byte gUnknown_80DD970 _08028AE0: ldr r0, _08028AFC ldr r2, [r6] movs r1, 0x84 lsls r1, 3 adds r2, r1 ldr r3, _08028B00 movs r1, 0 bl sub_80141B4 _08028AF2: add sp, 0x14 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08028AFC: .4byte gUnknown_80DE93C _08028B00: .4byte 0x0000010d thumb_func_end sub_8028348 thumb_func_start sub_8028B04 sub_8028B04: push {lr} ldr r1, _08028B18 ldr r1, [r1] str r0, [r1, 0x4] bl nullsub_130 bl sub_8028348 pop {r0} bx r0 .align 2, 0 _08028B18: .4byte gUnknown_203B2C0 thumb_func_end sub_8028B04 thumb_func_start sub_8028B1C sub_8028B1C: push {lr} cmp r0, 0xF bhi _08028BE0 lsls r0, 2 ldr r1, _08028B2C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08028B2C: .4byte _08028B30 .align 2, 0 _08028B30: .4byte _08028BE0 .4byte _08028BA8 .4byte _08028BA8 .4byte _08028B70 .4byte _08028B78 .4byte _08028BA8 .4byte _08028B80 .4byte _08028B88 .4byte _08028BE0 .4byte _08028B90 .4byte _08028BE0 .4byte _08028B98 .4byte _08028BE0 .4byte _08028BA0 .4byte _08028BA8 .4byte _08028BCC _08028B70: ldr r0, _08028B74 b _08028BAA .align 2, 0 _08028B74: .4byte gUnknown_80DE98C _08028B78: ldr r0, _08028B7C b _08028BAA .align 2, 0 _08028B7C: .4byte gUnknown_80DE9F0 _08028B80: ldr r0, _08028B84 b _08028BAA .align 2, 0 _08028B84: .4byte gUnknown_80DEA58 _08028B88: ldr r0, _08028B8C b _08028BAA .align 2, 0 _08028B8C: .4byte gUnknown_80DEAB4 _08028B90: ldr r0, _08028B94 b _08028BAA .align 2, 0 _08028B94: .4byte gUnknown_80DEB18 _08028B98: ldr r0, _08028B9C b _08028BAA .align 2, 0 _08028B9C: .4byte gUnknown_80DEB18 _08028BA0: ldr r0, _08028BA4 b _08028BAA .align 2, 0 _08028BA4: .4byte gUnknown_80DEB54 _08028BA8: ldr r0, _08028BC0 _08028BAA: ldr r1, _08028BC4 ldr r2, [r1] movs r1, 0x84 lsls r1, 3 adds r2, r1 ldr r3, _08028BC8 movs r1, 0 bl sub_80141B4 b _08028BE0 .align 2, 0 _08028BC0: .4byte gUnknown_80DE954 _08028BC4: .4byte gUnknown_203B2C0 _08028BC8: .4byte 0x0000010d _08028BCC: ldr r0, _08028BE4 ldr r1, _08028BE8 ldr r2, [r1] movs r1, 0x84 lsls r1, 3 adds r2, r1 ldr r3, _08028BEC movs r1, 0 bl sub_80141B4 _08028BE0: pop {r0} bx r0 .align 2, 0 _08028BE4: .4byte gUnknown_80DEC00 _08028BE8: .4byte gUnknown_203B2C0 _08028BEC: .4byte 0x0000010d thumb_func_end sub_8028B1C thumb_func_start sub_8028BF0 sub_8028BF0: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08028CDA ldr r2, _08028C20 ldr r0, [r2] movs r1, 0x8 str r1, [r0, 0x40] ldr r1, _08028C24 adds r0, r1 ldr r1, _08028C28 strh r1, [r0] ldr r0, [sp] cmp r0, 0xA bhi _08028CDA lsls r0, 2 ldr r1, _08028C2C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08028C20: .4byte gUnknown_203B2C0 _08028C24: .4byte 0x00000544 _08028C28: .4byte 0x0000ffff _08028C2C: .4byte _08028C30 .align 2, 0 _08028C30: .4byte _08028C5C .4byte _08028C88 .4byte _08028CA2 .4byte _08028CCC .4byte _08028CDA .4byte _08028CDA .4byte _08028CDA .4byte _08028CDA .4byte _08028CDA .4byte _08028CDA .4byte _08028CD4 _08028C5C: ldr r0, [r2] movs r1, 0x3 str r1, [r0, 0x40] movs r1, 0xA7 lsls r1, 3 adds r0, r1 movs r1, 0 str r1, [r0] bl sub_8095190 movs r1, 0x1 negs r1, r1 cmp r0, r1 beq _08028C80 movs r0, 0x8 bl sub_8028B04 b _08028CDA _08028C80: movs r0, 0x9 bl sub_8028B04 b _08028CDA _08028C88: movs r0, 0x2 bl sub_8095324 cmp r0, 0 beq _08028C9A movs r0, 0x1E bl sub_8028B04 b _08028CDA _08028C9A: movs r0, 0x1A bl sub_8028B04 b _08028CDA _08028CA2: ldr r0, [r2] movs r1, 0x4 str r1, [r0, 0x40] movs r1, 0xA7 lsls r1, 3 adds r0, r1 movs r1, 0x2 str r1, [r0] movs r0, 0x4 bl sub_8095324 cmp r0, 0 beq _08028CC4 movs r0, 0x29 bl sub_8028B04 b _08028CDA _08028CC4: movs r0, 0x2F bl sub_8028B04 b _08028CDA _08028CCC: movs r0, 0xB bl sub_8028B04 b _08028CDA _08028CD4: movs r0, 0x2 bl sub_8028B04 _08028CDA: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8028BF0 thumb_func_start sub_8028CE0 sub_8028CE0: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08028CF4 movs r0, 0x3 bl sub_8028B04 _08028CF4: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8028CE0 thumb_func_start sub_8028CFC sub_8028CFC: push {r4,lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08028D42 bl sub_8031050 cmp r0, 0x3 bhi _08028D42 cmp r0, 0x2 bcc _08028D42 bl sub_8095350 adds r4, r0, 0 bl sub_80310B4 ldr r0, _08028D38 ldr r0, [r0] movs r1, 0xA8 lsls r1, 3 adds r0, r1 ldr r0, [r0] cmp r4, r0 beq _08028D3C movs r0, 0x17 bl sub_8028B04 b _08028D42 .align 2, 0 _08028D38: .4byte gUnknown_203B2C0 _08028D3C: movs r0, 0x19 bl sub_8028B04 _08028D42: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_8028CFC thumb_func_start sub_8028D4C sub_8028D4C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08028DE0 ldr r0, _08028D78 ldr r0, [r0] movs r1, 0xA7 lsls r1, 3 adds r0, r1 ldr r1, [sp] str r1, [r0] cmp r1, 0x6 beq _08028DA2 cmp r1, 0x6 bgt _08028D7C cmp r1, 0x5 beq _08028D86 b _08028DE0 .align 2, 0 _08028D78: .4byte gUnknown_203B2C0 _08028D7C: cmp r1, 0x7 beq _08028DBE cmp r1, 0xA beq _08028DDA b _08028DE0 _08028D86: movs r0, 0x2 bl sub_8030C20 lsls r0, 24 cmp r0, 0 beq _08028D9A movs r0, 0xC bl sub_8028B04 b _08028DE0 _08028D9A: movs r0, 0xD bl sub_8028B04 b _08028DE0 _08028DA2: movs r0, 0x4 bl sub_8030C20 lsls r0, 24 cmp r0, 0 beq _08028DB6 movs r0, 0xE bl sub_8028B04 b _08028DE0 _08028DB6: movs r0, 0xF bl sub_8028B04 b _08028DE0 _08028DBE: movs r0, 0 bl sub_8030C20 lsls r0, 24 cmp r0, 0 beq _08028DD2 movs r0, 0x10 bl sub_8028B04 b _08028DE0 _08028DD2: movs r0, 0x11 bl sub_8028B04 b _08028DE0 _08028DDA: movs r0, 0x1 bl sub_8028B04 _08028DE0: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8028D4C thumb_func_start sub_8028DE8 sub_8028DE8: push {r4,lr} sub sp, 0x4 adds r4, r0, 0 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08028DFE adds r0, r4, 0 bl sub_8028B04 _08028DFE: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_8028DE8 thumb_func_start sub_8028E08 sub_8028E08: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08028E1C movs r0, 0x12 bl sub_8028B04 _08028E1C: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8028E08 thumb_func_start sub_8028E24 sub_8028E24: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08028E4C ldr r0, [sp] cmp r0, 0x8 beq _08028E3E cmp r0, 0xA beq _08028E46 b _08028E4C _08028E3E: movs r0, 0x13 bl sub_8028B04 b _08028E4C _08028E46: movs r0, 0x1 bl sub_8028B04 _08028E4C: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8028E24 thumb_func_start sub_8028E54 sub_8028E54: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08028E7C ldr r0, [sp] cmp r0, 0x8 beq _08028E6E cmp r0, 0xA beq _08028E76 b _08028E7C _08028E6E: movs r0, 0x14 bl sub_8028B04 b _08028E7C _08028E76: movs r0, 0x1 bl sub_8028B04 _08028E7C: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8028E54 thumb_func_start sub_8028E84 sub_8028E84: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08028EA4 movs r0, 0x18 bl sub_8028B04 movs r0, 0x1 bl sub_8011C28 movs r0, 0 bl sub_8012574 _08028EA4: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8028E84 thumb_func_start sub_8028EAC sub_8028EAC: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08028ECE bl sub_8012600 lsls r0, 24 cmp r0, 0 bne _08028ECE bl sub_8012750 movs r0, 0x19 bl sub_8028B04 _08028ECE: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8028EAC thumb_func_start sub_8028ED4 sub_8028ED4: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08028EFE ldr r0, [sp] cmp r0, 0x8 bne _08028EF0 movs r0, 0xB bl sub_8028B04 b _08028EFE _08028EF0: cmp r0, 0x8 blt _08028EFE cmp r0, 0xA bgt _08028EFE movs r0, 0x2 bl sub_8028B04 _08028EFE: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8028ED4 thumb_func_start sub_8028F04 sub_8028F04: push {r4,lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08028F28 movs r4, 0 _08028F14: lsls r0, r4, 24 lsrs r0, 24 bl sub_8095240 adds r4, 0x1 cmp r4, 0x1F ble _08028F14 movs r0, 0x15 bl sub_8028B04 _08028F28: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_8028F04 thumb_func_start sub_8028F30 sub_8028F30: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08028F50 movs r0, 0x16 bl sub_8028B04 movs r0, 0x1 bl sub_8011C28 movs r0, 0 bl sub_8012574 _08028F50: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8028F30 thumb_func_start sub_8028F58 sub_8028F58: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08028F7A bl sub_8012600 lsls r0, 24 cmp r0, 0 bne _08028F7A bl sub_8012750 movs r0, 0x2 bl sub_8028B04 _08028F7A: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8028F58 thumb_func_start sub_8028F80 sub_8028F80: push {r4,lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08028FAE ldr r4, _08028FB8 ldr r0, [r4] movs r1, 0x86 lsls r1, 2 adds r0, r1 ldrb r0, [r0] bl sub_809927C ldr r0, [r4] ldr r1, _08028FBC adds r0, r1 movs r1, 0x1 str r1, [r0] movs r0, 0x3 bl sub_8028B04 _08028FAE: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08028FB8: .4byte gUnknown_203B2C0 _08028FBC: .4byte 0x0000053c thumb_func_end sub_8028F80 thumb_func_start sub_8028FC0 sub_8028FC0: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08028FD4 movs r0, 0x1 bl sub_8028B04 _08028FD4: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8028FC0 thumb_func_start sub_8028FDC sub_8028FDC: push {r4,lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802903C ldr r0, [sp] cmp r0, 0x8 beq _08028FFC cmp r0, 0x8 blt _0802903C cmp r0, 0xA bgt _0802903C movs r0, 0x1 b _08029038 _08028FFC: ldr r0, _08029020 ldr r0, [r0] movs r1, 0x86 lsls r1, 2 adds r0, r1 ldrb r0, [r0] bl sub_8095228 adds r4, r0, 0 ldrb r0, [r4, 0x4] bl sub_80A2824 lsls r0, 24 cmp r0, 0 bne _08029024 movs r0, 0x1C b _08029038 .align 2, 0 _08029020: .4byte gUnknown_203B2C0 _08029024: adds r0, r4, 0 adds r0, 0x2C ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0 bgt _08029036 movs r0, 0x1D b _08029038 _08029036: movs r0, 0x1B _08029038: bl sub_8028B04 _0802903C: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_8028FDC thumb_func_start sub_8029044 sub_8029044: push {r4,r5,lr} movs r0, 0x1 bl sub_8030768 cmp r0, 0x3 beq _0802906C cmp r0, 0x3 bhi _0802905A cmp r0, 0x2 beq _08029060 b _080290CA _0802905A: cmp r0, 0x4 beq _08029088 b _080290CA _08029060: bl sub_803084C movs r0, 0x1 bl sub_8028B04 b _080290CA _0802906C: bl sub_80307EC ldr r1, _08029084 ldr r1, [r1] movs r2, 0x86 lsls r2, 2 adds r1, r2 strb r0, [r1] movs r0, 0x20 bl sub_8028B04 b _080290CA .align 2, 0 _08029084: .4byte gUnknown_203B2C0 _08029088: ldr r4, _080290D0 ldr r1, [r4] movs r0, 0x1F str r0, [r1] bl sub_80307EC ldr r1, [r4] movs r5, 0x86 lsls r5, 2 adds r1, r5 strb r0, [r1] ldr r0, [r4] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] adds r0, r5 ldrb r0, [r0] movs r1, 0 bl sub_8030D40 movs r0, 0x21 bl sub_8028B04 _080290CA: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080290D0: .4byte gUnknown_203B2C0 thumb_func_end sub_8029044 thumb_func_start sub_80290D4 sub_80290D4: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080290E8 movs r0, 0x1F bl sub_8028B04 _080290E8: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80290D4 thumb_func_start sub_80290F0 sub_80290F0: push {r4,lr} sub sp, 0x4 movs r0, 0x1 negs r0, r0 str r0, [sp] movs r0, 0 bl sub_8030768 ldr r4, _08029134 ldr r0, [r4] movs r1, 0xC3 lsls r1, 2 adds r0, r1 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _08029122 ldr r0, [r4] movs r1, 0xC3 lsls r1, 2 adds r0, r1 mov r1, sp bl sub_8013114 _08029122: ldr r0, [sp] cmp r0, 0xA beq _08029184 cmp r0, 0xA bgt _08029138 cmp r0, 0x4 beq _08029184 b _080291A0 .align 2, 0 _08029134: .4byte gUnknown_203B2C0 _08029138: cmp r0, 0xB beq _08029142 cmp r0, 0xC beq _0802914E b _080291A0 _08029142: bl sub_803084C movs r0, 0x22 bl sub_8028B04 b _080291A0 _0802914E: ldr r0, [r4] movs r1, 0x3D str r1, [r0] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] movs r1, 0x86 lsls r1, 2 adds r0, r1 ldrb r0, [r0] movs r1, 0 bl sub_8030D40 movs r0, 0x21 bl sub_8028B04 b _080291A0 _08029184: ldr r0, _080291A8 ldr r0, [r0] movs r1, 0xD7 lsls r1, 2 adds r0, r1 movs r1, 0x2 bl sub_8035CC0 movs r0, 0x1 bl sub_8030810 movs r0, 0x1F bl sub_8028B04 _080291A0: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080291A8: .4byte gUnknown_203B2C0 thumb_func_end sub_80290F0 thumb_func_start sub_80291AC sub_80291AC: push {r4,lr} bl sub_8030DA0 cmp r0, 0x3 bhi _08029200 cmp r0, 0x2 bcc _08029200 bl sub_8030DE4 bl sub_8004914 ldr r4, _080291F8 ldr r0, [r4] movs r1, 0xEF lsls r1, 2 adds r0, r1 movs r1, 0x1 movs r2, 0x1 bl sub_800641C bl sub_803092C ldr r4, [r4] ldr r0, [r4] cmp r0, 0x3D bne _080291FC movs r1, 0x87 lsls r1, 2 adds r0, r4, r1 movs r1, 0x3 movs r2, 0x1 bl sub_8035CF4 movs r0, 0x20 bl sub_8028B04 b _08029200 .align 2, 0 _080291F8: .4byte gUnknown_203B2C0 _080291FC: bl sub_8028B04 _08029200: pop {r4} pop {r0} bx r0 thumb_func_end sub_80291AC thumb_func_start sub_8029208 sub_8029208: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802929E ldr r2, [sp] cmp r2, 0xE bgt _08029226 cmp r2, 0xD bge _0802922C cmp r2, 0xA beq _08029298 b _0802929E _08029226: cmp r2, 0xF beq _08029264 b _0802929E _0802922C: ldr r0, _0802924C ldr r0, [r0] ldr r1, _08029250 adds r2, r0, r1 movs r1, 0xD str r1, [r2] movs r3, 0xA7 lsls r3, 3 adds r0, r3 ldr r0, [r0] cmp r0, 0 beq _08029254 cmp r0, 0x2 beq _0802925C b _0802929E .align 2, 0 _0802924C: .4byte gUnknown_203B2C0 _08029250: .4byte 0x00000534 _08029254: movs r0, 0x4 bl sub_8028B04 b _0802929E _0802925C: movs r0, 0x30 bl sub_8028B04 b _0802929E _08029264: ldr r0, _08029280 ldr r0, [r0] ldr r3, _08029284 adds r1, r0, r3 str r2, [r1] movs r1, 0xA7 lsls r1, 3 adds r0, r1 ldr r0, [r0] cmp r0, 0 beq _08029288 cmp r0, 0x2 beq _08029290 b _0802929E .align 2, 0 _08029280: .4byte gUnknown_203B2C0 _08029284: .4byte 0x00000534 _08029288: movs r0, 0x26 bl sub_8028B04 b _0802929E _08029290: movs r0, 0x3A bl sub_8028B04 b _0802929E _08029298: movs r0, 0x1 bl sub_8028B04 _0802929E: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8029208 thumb_func_start sub_80292A4 sub_80292A4: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080292E6 ldr r0, [sp] cmp r0, 0x8 beq _080292BE cmp r0, 0xA beq _080292E0 b _080292E6 _080292BE: ldr r0, _080292DC ldr r0, [r0] movs r1, 0xA7 lsls r1, 3 adds r0, r1 ldr r0, [r0] cmp r0, 0 beq _080292D2 cmp r0, 0x2 bne _080292E6 _080292D2: movs r0, 0x5 bl sub_8028B04 b _080292E6 .align 2, 0 _080292DC: .4byte gUnknown_203B2C0 _080292E0: movs r0, 0x1 bl sub_8028B04 _080292E6: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80292A4 thumb_func_start sub_80292EC sub_80292EC: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08029336 ldr r0, _08029318 ldr r1, [r0] ldr r0, [r1, 0x44] cmp r0, 0 bne _0802932C movs r2, 0xA7 lsls r2, 3 adds r0, r1, r2 ldr r0, [r0] cmp r0, 0 beq _0802931C cmp r0, 0x2 beq _08029324 b _08029336 .align 2, 0 _08029318: .4byte gUnknown_203B2C0 _0802931C: movs r0, 0x23 bl sub_8028B04 b _08029336 _08029324: movs r0, 0x37 bl sub_8028B04 b _08029336 _0802932C: bl sub_8028B1C movs r0, 0x7 bl sub_8028B04 _08029336: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80292EC thumb_func_start sub_802933C sub_802933C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08029350 movs r0, 0x1 bl sub_8028B04 _08029350: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802933C thumb_func_start sub_8029358 sub_8029358: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802936C movs r0, 0x1 bl sub_8028B04 _0802936C: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8029358 thumb_func_start sub_8029374 sub_8029374: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08029394 movs r0, 0x24 bl sub_8028B04 movs r0, 0x1 bl sub_8011C28 movs r0, 0 bl sub_8012574 _08029394: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8029374 thumb_func_start sub_802939C sub_802939C: push {r4,lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080293D0 bl sub_8012600 lsls r0, 24 cmp r0, 0 bne _080293D0 bl sub_8012744 adds r4, r0, 0 bl sub_8012750 cmp r4, 0 bne _080293CA movs r0, 0x25 bl sub_8028B04 b _080293D0 _080293CA: movs r0, 0x2 bl sub_8028B04 _080293D0: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_802939C thumb_func_start sub_80293D8 sub_80293D8: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080293EC movs r0, 0x27 bl sub_8028B04 _080293EC: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80293D8 thumb_func_start sub_80293F4 sub_80293F4: push {r4,lr} sub sp, 0x44 bl sub_80154F0 adds r4, r0, 0 add r0, sp, 0x14 movs r1, 0 movs r2, 0x30 bl MemoryFill8 cmp r4, 0x2 bne _0802940E b _08029530 _0802940E: cmp r4, 0x3 beq _08029414 b _08029550 _08029414: ldr r0, _08029434 ldr r1, [r0] adds r1, 0x8 movs r0, 0x1C add r2, sp, 0x14 bl sub_8039068 subs r0, 0x7 cmp r0, 0x11 bls _0802942A b _0802951C _0802942A: lsls r0, 2 ldr r1, _08029438 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08029434: .4byte gUnknown_203B2C0 _08029438: .4byte _0802943C .align 2, 0 _0802943C: .4byte _080294C8 .4byte _0802951C .4byte _0802951C .4byte _0802951C .4byte _0802951C .4byte _0802951C .4byte _0802951C .4byte _0802951C .4byte _0802951C .4byte _0802951C .4byte _08029484 .4byte _080294C0 .4byte _0802951C .4byte _0802951C .4byte _0802951C .4byte _080294F0 .4byte _0802951C .4byte _0802951C _08029484: ldr r0, _080294B4 ldr r3, _080294B8 movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] ldr r1, _080294BC ldr r1, [r1] movs r2, 0x84 lsls r2, 3 adds r1, r2 str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 movs r2, 0x8 bl sub_8014248 movs r0, 0x28 bl sub_8028B04 b _0802951C .align 2, 0 _080294B4: .4byte gUnknown_80DEC70 _080294B8: .4byte gUnknown_80DDA48 _080294BC: .4byte gUnknown_203B2C0 _080294C0: ldr r0, _080294C4 b _080294CA .align 2, 0 _080294C4: .4byte gUnknown_80DECC0 _080294C8: ldr r0, _080294E4 _080294CA: ldr r1, _080294E8 ldr r2, [r1] movs r1, 0x84 lsls r1, 3 adds r2, r1 ldr r3, _080294EC movs r1, 0 bl sub_80141B4 movs r0, 0x7 bl sub_8028B04 b _0802951C .align 2, 0 _080294E4: .4byte gUnknown_80DEAB4 _080294E8: .4byte gUnknown_203B2C0 _080294EC: .4byte 0x0000010d _080294F0: ldr r0, [sp, 0x24] bl sub_8095274 add r1, sp, 0x14 movs r0, 0x2 strb r0, [r1] adds r0, r1, 0 bl sub_80951BC ldr r0, _08029524 ldr r1, _08029528 ldr r2, [r1] movs r1, 0x84 lsls r1, 3 adds r2, r1 ldr r3, _0802952C movs r1, 0 bl sub_80141B4 movs r0, 0x23 bl sub_8028B04 _0802951C: bl sub_80155F0 b _08029550 .align 2, 0 _08029524: .4byte gUnknown_80DECFC _08029528: .4byte gUnknown_203B2C0 _0802952C: .4byte 0x00000101 _08029530: bl sub_80155F0 bl sub_8004914 ldr r0, _08029558 ldr r0, [r0] movs r2, 0xEF lsls r2, 2 adds r0, r2 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x1 bl sub_8028B04 _08029550: add sp, 0x44 pop {r4} pop {r0} bx r0 .align 2, 0 _08029558: .4byte gUnknown_203B2C0 thumb_func_end sub_80293F4 thumb_func_start sub_802955C sub_802955C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08029584 ldr r0, [sp] cmp r0, 0x8 beq _08029576 cmp r0, 0xA beq _0802957E b _08029584 _08029576: movs r0, 0x26 bl sub_8028B04 b _08029584 _0802957E: movs r0, 0x1 bl sub_8028B04 _08029584: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802955C thumb_func_start sub_802958C sub_802958C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080295A0 movs r0, 0x6 bl sub_8028B04 _080295A0: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802958C thumb_func_start sub_80295A8 sub_80295A8: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080295D2 ldr r0, [sp] cmp r0, 0x8 bne _080295C4 movs r0, 0x8 bl sub_8028B04 b _080295D2 _080295C4: cmp r0, 0x8 blt _080295D2 cmp r0, 0xA bgt _080295D2 movs r0, 0x1 bl sub_8028B04 _080295D2: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80295A8 thumb_func_start sub_80295D8 sub_80295D8: push {r4,r5,lr} movs r0, 0x1 bl sub_8030768 cmp r0, 0x3 beq _08029600 cmp r0, 0x3 bhi _080295EE cmp r0, 0x2 beq _080295F4 b _0802965E _080295EE: cmp r0, 0x4 beq _0802961C b _0802965E _080295F4: bl sub_803084C movs r0, 0x1 bl sub_8028B04 b _0802965E _08029600: bl sub_80307EC ldr r1, _08029618 ldr r1, [r1] movs r2, 0x86 lsls r2, 2 adds r1, r2 strb r0, [r1] movs r0, 0x2B bl sub_8028B04 b _0802965E .align 2, 0 _08029618: .4byte gUnknown_203B2C0 _0802961C: ldr r4, _08029664 ldr r1, [r4] movs r0, 0x2A str r0, [r1] bl sub_80307EC ldr r1, [r4] movs r5, 0x86 lsls r5, 2 adds r1, r5 strb r0, [r1] ldr r0, [r4] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] adds r0, r5 ldrb r0, [r0] movs r1, 0 bl sub_8030D40 movs r0, 0x2C bl sub_8028B04 _0802965E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08029664: .4byte gUnknown_203B2C0 thumb_func_end sub_80295D8 thumb_func_start sub_8029668 sub_8029668: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802967C movs r0, 0x2A bl sub_8028B04 _0802967C: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8029668 thumb_func_start sub_8029684 sub_8029684: push {r4,lr} sub sp, 0x4 movs r0, 0x1 negs r0, r0 str r0, [sp] movs r0, 0 bl sub_8030768 ldr r4, _080296C8 ldr r0, [r4] movs r1, 0xC3 lsls r1, 2 adds r0, r1 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _080296B6 ldr r0, [r4] movs r1, 0xC3 lsls r1, 2 adds r0, r1 mov r1, sp bl sub_8013114 _080296B6: ldr r0, [sp] cmp r0, 0xA beq _08029718 cmp r0, 0xA bgt _080296CC cmp r0, 0x4 beq _08029718 b _08029734 .align 2, 0 _080296C8: .4byte gUnknown_203B2C0 _080296CC: cmp r0, 0xB beq _080296D6 cmp r0, 0xC beq _080296E2 b _08029734 _080296D6: bl sub_803084C movs r0, 0x2D bl sub_8028B04 b _08029734 _080296E2: ldr r0, [r4] movs r1, 0x3D str r1, [r0] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] movs r1, 0x86 lsls r1, 2 adds r0, r1 ldrb r0, [r0] movs r1, 0 bl sub_8030D40 movs r0, 0x2C bl sub_8028B04 b _08029734 _08029718: ldr r0, _0802973C ldr r0, [r0] movs r1, 0xD7 lsls r1, 2 adds r0, r1 movs r1, 0x2 bl sub_8035CC0 movs r0, 0x1 bl sub_8030810 movs r0, 0x2A bl sub_8028B04 _08029734: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0802973C: .4byte gUnknown_203B2C0 thumb_func_end sub_8029684 thumb_func_start sub_8029740 sub_8029740: push {r4,lr} bl sub_8030DA0 cmp r0, 0x3 bhi _08029794 cmp r0, 0x2 bcc _08029794 bl sub_8030DE4 bl sub_8004914 ldr r4, _0802978C ldr r0, [r4] movs r1, 0xEF lsls r1, 2 adds r0, r1 movs r1, 0x1 movs r2, 0x1 bl sub_800641C bl sub_803092C ldr r4, [r4] ldr r0, [r4] cmp r0, 0x3D bne _08029790 movs r1, 0x87 lsls r1, 2 adds r0, r4, r1 movs r1, 0x3 movs r2, 0x1 bl sub_8035CF4 movs r0, 0x2B bl sub_8028B04 b _08029794 .align 2, 0 _0802978C: .4byte gUnknown_203B2C0 _08029790: bl sub_8028B04 _08029794: pop {r4} pop {r0} bx r0 thumb_func_end sub_8029740 thumb_func_start sub_802979C sub_802979C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080297B0 movs r0, 0x1 bl sub_8028B04 _080297B0: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802979C thumb_func_start sub_80297B8 sub_80297B8: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080297CC movs r0, 0x33 bl sub_8028B04 _080297CC: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80297B8 thumb_func_start sub_80297D4 sub_80297D4: push {r4,r5,lr} movs r0, 0x1 bl sub_8023A94 cmp r0, 0x3 beq _08029814 cmp r0, 0x3 bhi _080297EA cmp r0, 0x2 beq _080297F0 b _08029876 _080297EA: cmp r0, 0x4 beq _08029834 b _08029876 _080297F0: bl sub_8023C60 movs r0, 0x1 bl sub_8028B04 ldr r0, _08029808 ldr r0, [r0] ldr r1, _0802980C adds r0, r1 ldr r1, _08029810 strh r1, [r0] b _08029876 .align 2, 0 _08029808: .4byte gUnknown_203B2C0 _0802980C: .4byte 0x00000544 _08029810: .4byte 0x0000ffff _08029814: bl sub_8023B44 ldr r1, _0802982C ldr r1, [r1] ldr r2, _08029830 adds r1, r2 strh r0, [r1] movs r0, 0x34 bl sub_8028B04 b _08029876 .align 2, 0 _0802982C: .4byte gUnknown_203B2C0 _08029830: .4byte 0x00000544 _08029834: ldr r4, _0802987C ldr r1, [r4] movs r0, 0x33 str r0, [r1] bl sub_8023B44 adds r2, r0, 0 ldr r0, [r4] ldr r5, _08029880 adds r1, r0, r5 strh r2, [r1] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] adds r0, r5 movs r2, 0 ldrsh r0, [r0, r2] movs r1, 0 bl sub_8024458 movs r0, 0x35 bl sub_8028B04 _08029876: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802987C: .4byte gUnknown_203B2C0 _08029880: .4byte 0x00000544 thumb_func_end sub_80297D4 thumb_func_start sub_8029884 sub_8029884: push {r4,lr} sub sp, 0x4 movs r0, 0x1 negs r0, r0 str r0, [sp] movs r0, 0 bl sub_8023A94 ldr r4, _080298C8 ldr r0, [r4] movs r1, 0xC3 lsls r1, 2 adds r0, r1 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _080298B6 ldr r0, [r4] movs r1, 0xC3 lsls r1, 2 adds r0, r1 mov r1, sp bl sub_8013114 _080298B6: ldr r0, [sp] cmp r0, 0xA beq _0802991C cmp r0, 0xA bgt _080298CC cmp r0, 0x4 beq _0802991C b _08029938 .align 2, 0 _080298C8: .4byte gUnknown_203B2C0 _080298CC: cmp r0, 0xB beq _080298D6 cmp r0, 0xC beq _080298E2 b _08029938 _080298D6: bl sub_8023C60 movs r0, 0x4 bl sub_8028B04 b _08029938 _080298E2: ldr r0, [r4] movs r1, 0x3D str r1, [r0] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] ldr r1, _08029918 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] movs r1, 0 bl sub_8024458 movs r0, 0x35 bl sub_8028B04 b _08029938 .align 2, 0 _08029918: .4byte 0x00000544 _0802991C: ldr r0, _08029940 ldr r0, [r0] movs r1, 0xD7 lsls r1, 2 adds r0, r1 movs r1, 0x3 bl sub_8035CC0 movs r0, 0x1 bl sub_8023B7C movs r0, 0x33 bl sub_8028B04 _08029938: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08029940: .4byte gUnknown_203B2C0 thumb_func_end sub_8029884 thumb_func_start sub_8029944 sub_8029944: push {r4,lr} bl sub_80244E4 cmp r0, 0x1 bne _08029954 bl sub_802452C b _080299A4 _08029954: cmp r0, 0x1 bcc _080299A4 cmp r0, 0x3 bhi _080299A4 bl sub_802453C bl sub_8004914 ldr r4, _0802999C ldr r0, [r4] movs r1, 0xEF lsls r1, 2 adds r0, r1 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x1 bl sub_8023B7C ldr r4, [r4] ldr r0, [r4] cmp r0, 0x3D bne _080299A0 movs r1, 0x87 lsls r1, 2 adds r0, r4, r1 movs r1, 0x3 movs r2, 0x1 bl sub_8035CF4 movs r0, 0x34 bl sub_8028B04 b _080299A4 .align 2, 0 _0802999C: .4byte gUnknown_203B2C0 _080299A0: bl sub_8028B04 _080299A4: pop {r4} pop {r0} bx r0 thumb_func_end sub_8029944 thumb_func_start sub_80299AC sub_80299AC: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080299D2 ldr r0, [sp] cmp r0, 0xA beq _080299CC cmp r0, 0x12 bne _080299D2 movs r0, 0x4 bl sub_8028B04 b _080299D2 _080299CC: movs r0, 0x1 bl sub_8028B04 _080299D2: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80299AC thumb_func_start sub_80299D8 sub_80299D8: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08029A12 ldr r0, [sp] cmp r0, 0x9 beq _08029A04 cmp r0, 0x9 bgt _080299F6 cmp r0, 0x8 beq _080299FC b _08029A12 _080299F6: cmp r0, 0xA beq _08029A0C b _08029A12 _080299FC: movs r0, 0x4 bl sub_8028B04 b _08029A12 _08029A04: movs r0, 0x32 bl sub_8028B04 b _08029A12 _08029A0C: movs r0, 0x1 bl sub_8028B04 _08029A12: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80299D8 thumb_func_start sub_8029A18 sub_8029A18: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08029A66 ldr r0, [sp] cmp r0, 0x11 beq _08029A3C cmp r0, 0x11 bgt _08029A36 cmp r0, 0xA beq _08029A60 b _08029A66 _08029A36: cmp r0, 0x12 beq _08029A58 b _08029A66 _08029A3C: movs r0, 0x3 bl sub_8024108 lsls r0, 24 cmp r0, 0 beq _08029A50 movs r0, 0x31 bl sub_8028B04 b _08029A66 _08029A50: movs r0, 0x32 bl sub_8028B04 b _08029A66 _08029A58: movs r0, 0x4 bl sub_8028B04 b _08029A66 _08029A60: movs r0, 0x1 bl sub_8028B04 _08029A66: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8029A18 thumb_func_start sub_8029A6C sub_8029A6C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08029A80 movs r0, 0x2E bl sub_8028B04 _08029A80: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8029A6C thumb_func_start sub_8029A88 sub_8029A88: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08029AAA bl sub_8012600 lsls r0, 24 cmp r0, 0 bne _08029AAA bl sub_8012750 movs r0, 0x39 bl sub_8028B04 _08029AAA: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8029A88 thumb_func_start sub_8029AB0 sub_8029AB0: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08029AD0 movs r0, 0x38 bl sub_8028B04 movs r0, 0x1 bl sub_8011C28 movs r0, 0 bl sub_8012574 _08029AD0: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8029AB0 thumb_func_start sub_8029AD8 sub_8029AD8: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08029AEC movs r0, 0x3B bl sub_8028B04 _08029AEC: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8029AD8 thumb_func_start sub_8029AF4 sub_8029AF4: push {lr} bl sub_8031DCC cmp r0, 0x1 beq _08029B2C cmp r0, 0x1 bcc _08029B30 cmp r0, 0x3 bhi _08029B30 bl sub_8031E10 bl sub_8004914 ldr r0, _08029B28 ldr r0, [r0] movs r1, 0xEF lsls r1, 2 adds r0, r1 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x3C bl sub_8028B04 b _08029B30 .align 2, 0 _08029B28: .4byte gUnknown_203B2C0 _08029B2C: bl sub_8031E00 _08029B30: pop {r0} bx r0 thumb_func_end sub_8029AF4 thumb_func_start sub_8029B34 sub_8029B34: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08029B48 movs r0, 0x3 bl sub_8028B04 _08029B48: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8029B34 thumb_func_start sub_8029B50 sub_8029B50: push {r4,r5,lr} bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r5, _08029C3C ldr r4, _08029C40 adds r0, r4, 0 movs r1, 0x8 bl MemoryAlloc str r0, [r5] movs r1, 0 adds r2, r4, 0 bl MemoryFill8 ldr r0, _08029C44 movs r4, 0x98 lsls r4, 1 adds r1, r4, 0 bl sub_808D8E0 adds r0, r4, 0 bl sub_808D994 adds r1, r0, 0 ldr r0, _08029C48 bl strcpy adds r0, r4, 0 bl sub_808DDD0 ldr r2, [r5] movs r3, 0x84 lsls r3, 3 adds r1, r2, r3 str r0, [r1] adds r3, 0x4 adds r1, r2, r3 ldr r0, [r0, 0x4] str r0, [r1] ldr r0, _08029C4C adds r2, r0 movs r1, 0 strb r1, [r2] ldr r0, [r5] ldr r2, _08029C50 adds r0, r2 strb r1, [r0] ldr r0, [r5] adds r3, 0xA adds r0, r3 strb r1, [r0] ldr r1, [r5] movs r0, 0x85 lsls r0, 3 adds r2, r1, r0 movs r0, 0x2 strh r0, [r2] ldr r2, _08029C54 adds r1, r2 movs r0, 0x8 strh r0, [r1] movs r1, 0 movs r2, 0 _08029BD8: ldr r0, [r5] adds r0, 0x8 adds r0, r1 strb r2, [r0] adds r1, 0x1 cmp r1, 0x35 ble _08029BD8 ldr r5, _08029C3C ldr r1, [r5] ldr r3, _08029C58 adds r2, r1, r3 movs r0, 0x3 str r0, [r2] movs r0, 0xA7 lsls r0, 3 adds r1, r0 movs r0, 0x1 str r0, [r1] movs r0, 0x6 bl sub_80953D4 adds r4, r0, 0 movs r0, 0x1 negs r0, r0 cmp r4, r0 beq _08029C60 lsls r0, r4, 24 lsrs r0, 24 bl sub_8095228 ldr r1, [r5] ldr r2, _08029C5C adds r3, r1, r2 ldr r2, [r0, 0x20] str r2, [r3] movs r3, 0x86 lsls r3, 2 adds r1, r3 strb r4, [r1] ldr r1, [r5] movs r2, 0x86 lsls r2, 3 adds r1, r2 ldr r0, [r0, 0x10] str r0, [r1] movs r0, 0x5 bl sub_802B2BC b _08029C7C .align 2, 0 _08029C3C: .4byte gUnknown_203B2C4 _08029C40: .4byte 0x00000564 _08029C44: .4byte gUnknown_202E5D8 _08029C48: .4byte gUnknown_202DF98 _08029C4C: .4byte 0x0000042c _08029C50: .4byte 0x0000042d _08029C54: .4byte 0x0000042a _08029C58: .4byte 0x00000534 _08029C5C: .4byte 0x0000041c _08029C60: ldr r1, [r5] ldr r3, _08029C8C adds r2, r1, r3 ldr r0, _08029C90 ldr r0, [r0] str r0, [r2] movs r0, 0x86 lsls r0, 2 adds r1, r0 movs r0, 0xFF strb r0, [r1] movs r0, 0 bl sub_802B2BC _08029C7C: ldr r0, _08029C94 ldr r1, [r0] movs r0, 0x2B str r0, [r1, 0x4] movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08029C8C: .4byte 0x0000041c _08029C90: .4byte gUnknown_80DED44 _08029C94: .4byte gUnknown_203B2C4 thumb_func_end sub_8029B50 thumb_func_start sub_8029C98 sub_8029C98: push {lr} ldr r0, _08029CB0 ldr r0, [r0] ldrb r0, [r0] cmp r0, 0x2A bls _08029CA6 b _08029E58 _08029CA6: lsls r0, 2 ldr r1, _08029CB4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08029CB0: .4byte gUnknown_203B2C4 _08029CB4: .4byte _08029CB8 .align 2, 0 _08029CB8: .4byte _08029E48 .4byte _08029E48 .4byte _08029E4E .4byte _08029E54 .4byte _08029E42 .4byte _08029D64 .4byte _08029E3C .4byte _08029E30 .4byte _08029E36 .4byte _08029E2A .4byte _08029E24 .4byte _08029E1E .4byte _08029E0C .4byte _08029E06 .4byte _08029D76 .4byte _08029D7C .4byte _08029D8E .4byte _08029D82 .4byte _08029D88 .4byte _08029D94 .4byte _08029D9A .4byte _08029DA0 .4byte _08029DE8 .4byte _08029DF4 .4byte _08029DEE .4byte _08029DB2 .4byte _08029DB8 .4byte _08029DAC .4byte _08029DA6 .4byte _08029DFA .4byte _08029D6A .4byte _08029D70 .4byte _08029E00 .4byte _08029DDC .4byte _08029DE2 .4byte _08029E58 .4byte _08029DD6 .4byte _08029DD0 .4byte _08029DC4 .4byte _08029DCA .4byte _08029DBE .4byte _08029E12 .4byte _08029E18 _08029D64: bl sub_802AB7C b _08029E58 _08029D6A: bl sub_8029F98 b _08029E58 _08029D70: bl sub_8029EA8 b _08029E58 _08029D76: bl sub_802A090 b _08029E58 _08029D7C: bl sub_802A158 b _08029E58 _08029D82: bl sub_802A174 b _08029E58 _08029D88: bl sub_802A230 b _08029E58 _08029D8E: bl sub_802A0C8 b _08029E58 _08029D94: bl sub_802A28C b _08029E58 _08029D9A: bl sub_802A39C b _08029E58 _08029DA0: bl sub_802A33C b _08029E58 _08029DA6: bl sub_802A458 b _08029E58 _08029DAC: bl sub_802A4AC b _08029E58 _08029DB2: bl sub_802A4D4 b _08029E58 _08029DB8: bl sub_802A050 b _08029E58 _08029DBE: bl sub_802A9FC b _08029E58 _08029DC4: bl sub_802A4F0 b _08029E58 _08029DCA: bl sub_802A50C b _08029E58 _08029DD0: bl sub_802A6B4 b _08029E58 _08029DD6: bl sub_802A718 b _08029E58 _08029DDC: bl sub_802AB60 b _08029E58 _08029DE2: bl sub_802AB98 b _08029E58 _08029DE8: bl sub_802A740 b _08029E58 _08029DEE: bl sub_802A68C b _08029E58 _08029DF4: bl sub_802A6F0 b _08029E58 _08029DFA: bl sub_802A75C b _08029E58 _08029E00: bl sub_802A490 b _08029E58 _08029E06: bl sub_802A474 b _08029E58 _08029E0C: bl sub_802A798 b _08029E58 _08029E12: bl sub_802A828 b _08029E58 _08029E18: bl sub_802A850 b _08029E58 _08029E1E: bl sub_802A8A0 b _08029E58 _08029E24: bl sub_802A8BC b _08029E58 _08029E2A: bl sub_802A910 b _08029E58 _08029E30: bl sub_802A98C b _08029E58 _08029E36: bl sub_802A9A8 b _08029E58 _08029E3C: bl sub_802AA28 b _08029E58 _08029E42: bl sub_802AAAC b _08029E58 _08029E48: bl sub_802AAE4 b _08029E58 _08029E4E: bl sub_802AAC8 b _08029E58 _08029E54: movs r0, 0x3 b _08029E5A _08029E58: movs r0, 0 _08029E5A: pop {r1} bx r1 thumb_func_end sub_8029C98 thumb_func_start sub_8029E60 sub_8029E60: push {r4,lr} ldr r4, _08029EA4 ldr r0, [r4] cmp r0, 0 beq _08029E9C movs r1, 0x84 lsls r1, 3 adds r0, r1 ldr r0, [r0] bl CloseFile ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] bl sub_8030DE4 bl sub_801B450 bl sub_803084C bl sub_801CBB8 bl sub_80155F0 bl sub_8031E10 bl sub_802F2C0 _08029E9C: pop {r4} pop {r0} bx r0 .align 2, 0 _08029EA4: .4byte gUnknown_203B2C4 thumb_func_end sub_8029E60 thumb_func_start sub_8029EA8 sub_8029EA8: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08029EBC movs r0, 0x1 bl sub_802B2BC _08029EBC: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8029EA8 thumb_func_start sub_8029EC4 sub_8029EC4: push {lr} cmp r0, 0xF bhi _08029F88 lsls r0, 2 ldr r1, _08029ED4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08029ED4: .4byte _08029ED8 .align 2, 0 _08029ED8: .4byte _08029F88 .4byte _08029F50 .4byte _08029F50 .4byte _08029F18 .4byte _08029F20 .4byte _08029F50 .4byte _08029F28 .4byte _08029F30 .4byte _08029F88 .4byte _08029F38 .4byte _08029F88 .4byte _08029F40 .4byte _08029F88 .4byte _08029F48 .4byte _08029F50 .4byte _08029F74 _08029F18: ldr r0, _08029F1C b _08029F52 .align 2, 0 _08029F1C: .4byte gUnknown_80DEF28 _08029F20: ldr r0, _08029F24 b _08029F52 .align 2, 0 _08029F24: .4byte gUnknown_80DEF80 _08029F28: ldr r0, _08029F2C b _08029F52 .align 2, 0 _08029F2C: .4byte gUnknown_80DEFDC _08029F30: ldr r0, _08029F34 b _08029F52 .align 2, 0 _08029F34: .4byte gUnknown_80DF044 _08029F38: ldr r0, _08029F3C b _08029F52 .align 2, 0 _08029F3C: .4byte gUnknown_80DF0A0 _08029F40: ldr r0, _08029F44 b _08029F52 .align 2, 0 _08029F44: .4byte gUnknown_80DF0A0 _08029F48: ldr r0, _08029F4C b _08029F52 .align 2, 0 _08029F4C: .4byte gUnknown_80DF0E0 _08029F50: ldr r0, _08029F68 _08029F52: ldr r1, _08029F6C ldr r2, [r1] movs r1, 0x84 lsls r1, 3 adds r2, r1 ldr r3, _08029F70 movs r1, 0 bl sub_80141B4 b _08029F88 .align 2, 0 _08029F68: .4byte gUnknown_80DEF04 _08029F6C: .4byte gUnknown_203B2C4 _08029F70: .4byte 0x0000010d _08029F74: ldr r0, _08029F8C ldr r1, _08029F90 ldr r2, [r1] movs r1, 0x84 lsls r1, 3 adds r2, r1 ldr r3, _08029F94 movs r1, 0 bl sub_80141B4 _08029F88: pop {r0} bx r0 .align 2, 0 _08029F8C: .4byte gUnknown_80DF138 _08029F90: .4byte gUnknown_203B2C4 _08029F94: .4byte 0x0000010d thumb_func_end sub_8029EC4 thumb_func_start sub_8029F98 sub_8029F98: push {r4-r6,lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 adds r6, r0, 0 cmp r6, 0 bne _0802A048 ldr r4, _08029FE4 ldr r0, [r4] ldr r5, _08029FE8 adds r0, r5 movs r1, 0 movs r2, 0x4 bl MemoryFill8 ldr r0, [r4] ldr r1, _08029FEC adds r0, r1 strb r6, [r0] ldr r0, [r4] subs r1, 0x1 adds r0, r1 movs r1, 0x1 strb r1, [r0] ldr r0, [r4] adds r0, r5 strb r6, [r0] ldr r0, [r4] ldr r1, [r0, 0x44] cmp r1, 0 bne _0802A03C ldr r1, [r0, 0x40] cmp r1, 0x6 beq _08029FF0 cmp r1, 0x7 beq _0802A034 b _0802A048 .align 2, 0 _08029FE4: .4byte gUnknown_203B2C4 _08029FE8: .4byte 0x0000041c _08029FEC: .4byte 0x0000041e _08029FF0: ldr r1, _0802A004 adds r0, r1 ldr r0, [r0] cmp r0, 0x4 beq _0802A020 cmp r0, 0x4 bgt _0802A008 cmp r0, 0x3 beq _0802A00C b _0802A020 .align 2, 0 _0802A004: .4byte 0x00000534 _0802A008: cmp r0, 0x6 bgt _0802A020 _0802A00C: ldr r0, _0802A028 ldr r1, _0802A02C ldr r2, [r1] movs r1, 0x84 lsls r1, 3 adds r2, r1 ldr r3, _0802A030 movs r1, 0 bl sub_80141B4 _0802A020: movs r0, 0xD bl sub_802B2BC b _0802A048 .align 2, 0 _0802A028: .4byte gUnknown_80DF194 _0802A02C: .4byte gUnknown_203B2C4 _0802A030: .4byte 0x0000010d _0802A034: movs r0, 0x21 bl sub_802B2BC b _0802A048 _0802A03C: adds r0, r1, 0 bl sub_8029EC4 movs r0, 0x1F bl sub_802B2BC _0802A048: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8029F98 thumb_func_start sub_802A050 sub_802A050: push {lr} bl sub_8031DCC cmp r0, 0x1 beq _0802A088 cmp r0, 0x1 bcc _0802A08C cmp r0, 0x3 bhi _0802A08C bl sub_8031E10 bl sub_8004914 ldr r0, _0802A084 ldr r0, [r0] movs r1, 0xEF lsls r1, 2 adds r0, r1 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x1B bl sub_802B2BC b _0802A08C .align 2, 0 _0802A084: .4byte gUnknown_203B2C4 _0802A088: bl sub_8031E00 _0802A08C: pop {r0} bx r0 thumb_func_end sub_802A050 thumb_func_start sub_802A090 sub_802A090: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802A0C2 ldr r0, [sp] cmp r0, 0x7 beq _0802A0B4 cmp r0, 0x7 bgt _0802A0AE cmp r0, 0 beq _0802A0BC b _0802A0C2 _0802A0AE: cmp r0, 0x8 beq _0802A0BC b _0802A0C2 _0802A0B4: movs r0, 0x6 bl sub_802B2BC b _0802A0C2 _0802A0BC: movs r0, 0x1 bl sub_802B2BC _0802A0C2: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802A090 thumb_func_start sub_802A0C8 sub_802A0C8: push {r4,r5,lr} movs r0, 0x1 bl sub_8030768 cmp r0, 0x3 beq _0802A0F0 cmp r0, 0x3 bhi _0802A0DE cmp r0, 0x2 beq _0802A0E4 b _0802A14E _0802A0DE: cmp r0, 0x4 beq _0802A10C b _0802A14E _0802A0E4: bl sub_803084C movs r0, 0x1 bl sub_802B2BC b _0802A14E _0802A0F0: bl sub_80307EC ldr r1, _0802A108 ldr r1, [r1] movs r2, 0x86 lsls r2, 2 adds r1, r2 strb r0, [r1] movs r0, 0x11 bl sub_802B2BC b _0802A14E .align 2, 0 _0802A108: .4byte gUnknown_203B2C4 _0802A10C: ldr r4, _0802A154 ldr r1, [r4] movs r0, 0x10 str r0, [r1, 0x4] bl sub_80307EC ldr r1, [r4] movs r5, 0x86 lsls r5, 2 adds r1, r5 strb r0, [r1] ldr r0, [r4] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] adds r0, r5 ldrb r0, [r0] movs r1, 0 bl sub_8030D40 movs r0, 0x12 bl sub_802B2BC _0802A14E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802A154: .4byte gUnknown_203B2C4 thumb_func_end sub_802A0C8 thumb_func_start sub_802A158 sub_802A158: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802A16C movs r0, 0x10 bl sub_802B2BC _0802A16C: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802A158 thumb_func_start sub_802A174 sub_802A174: push {r4,lr} sub sp, 0x4 movs r0, 0x1 negs r0, r0 str r0, [sp] movs r0, 0 bl sub_8030768 ldr r4, _0802A1B8 ldr r0, [r4] movs r1, 0xC3 lsls r1, 2 adds r0, r1 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _0802A1A6 ldr r0, [r4] movs r1, 0xC3 lsls r1, 2 adds r0, r1 mov r1, sp bl sub_8013114 _0802A1A6: ldr r0, [sp] cmp r0, 0xB beq _0802A1C6 cmp r0, 0xB bgt _0802A1BC cmp r0, 0 beq _0802A208 b _0802A224 .align 2, 0 _0802A1B8: .4byte gUnknown_203B2C4 _0802A1BC: cmp r0, 0xC beq _0802A1D2 cmp r0, 0xD beq _0802A208 b _0802A224 _0802A1C6: bl sub_803084C movs r0, 0xE bl sub_802B2BC b _0802A224 _0802A1D2: ldr r0, [r4] movs r1, 0x2B str r1, [r0, 0x4] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] movs r1, 0x86 lsls r1, 2 adds r0, r1 ldrb r0, [r0] movs r1, 0 bl sub_8030D40 movs r0, 0x12 bl sub_802B2BC b _0802A224 _0802A208: ldr r0, _0802A22C ldr r0, [r0] movs r1, 0xD7 lsls r1, 2 adds r0, r1 movs r1, 0x2 bl sub_8035CC0 movs r0, 0x1 bl sub_8030810 movs r0, 0x10 bl sub_802B2BC _0802A224: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0802A22C: .4byte gUnknown_203B2C4 thumb_func_end sub_802A174 thumb_func_start sub_802A230 sub_802A230: push {r4,lr} bl sub_8030DA0 cmp r0, 0x3 bhi _0802A284 cmp r0, 0x2 bcc _0802A284 bl sub_8030DE4 bl sub_8004914 ldr r4, _0802A27C ldr r0, [r4] movs r1, 0xEF lsls r1, 2 adds r0, r1 movs r1, 0x1 movs r2, 0x1 bl sub_800641C bl sub_803092C ldr r4, [r4] ldr r0, [r4, 0x4] cmp r0, 0x2B bne _0802A280 movs r1, 0x87 lsls r1, 2 adds r0, r4, r1 movs r1, 0x3 movs r2, 0x1 bl sub_8035CF4 movs r0, 0x11 bl sub_802B2BC b _0802A284 .align 2, 0 _0802A27C: .4byte gUnknown_203B2C4 _0802A280: bl sub_802B2BC _0802A284: pop {r4} pop {r0} bx r0 thumb_func_end sub_802A230 thumb_func_start sub_802A28C sub_802A28C: push {r4-r6,lr} ldr r4, _0802A2C0 ldr r0, [r4] ldr r5, _0802A2C4 adds r0, r5 movs r2, 0 strb r2, [r0] ldr r0, [r4] ldr r1, _0802A2C8 adds r0, r1 movs r1, 0x1 strb r1, [r0] ldr r0, [r4] ldr r6, _0802A2CC adds r0, r6 strb r2, [r0] movs r0, 0x1 bl sub_801CA08 cmp r0, 0x3 beq _0802A2E2 cmp r0, 0x3 bhi _0802A2D0 cmp r0, 0x2 beq _0802A2D6 b _0802A334 .align 2, 0 _0802A2C0: .4byte gUnknown_203B2C4 _0802A2C4: .4byte 0x0000041e _0802A2C8: .4byte 0x0000041d _0802A2CC: .4byte 0x0000041c _0802A2D0: cmp r0, 0x4 beq _0802A2FC b _0802A334 _0802A2D6: bl sub_801CBB8 movs r0, 0x1 bl sub_802B2BC b _0802A334 _0802A2E2: bl sub_801CB24 ldr r1, [r4] ldr r2, _0802A2F8 adds r1, r2 strb r0, [r1] movs r0, 0x14 bl sub_802B2BC b _0802A334 .align 2, 0 _0802A2F8: .4byte 0x0000041e _0802A2FC: ldr r1, [r4] movs r0, 0x13 str r0, [r1, 0x4] bl sub_801CB24 ldr r1, [r4] adds r1, r5 strb r0, [r1] ldr r0, [r4] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] adds r0, r6 bl sub_801B3C0 movs r0, 0x15 bl sub_802B2BC _0802A334: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_802A28C thumb_func_start sub_802A33C sub_802A33C: push {r4,lr} bl sub_801B410 cmp r0, 0x1 beq _0802A394 cmp r0, 0x1 bcc _0802A394 cmp r0, 0x3 bhi _0802A394 bl sub_801B450 bl sub_8004914 ldr r4, _0802A38C ldr r0, [r4] movs r1, 0xEF lsls r1, 2 adds r0, r1 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x1 bl sub_801CB5C ldr r4, [r4] ldr r0, [r4, 0x4] cmp r0, 0x2B bne _0802A390 movs r1, 0x87 lsls r1, 2 adds r0, r4, r1 movs r1, 0x3 movs r2, 0x1 bl sub_8035CF4 movs r0, 0x14 bl sub_802B2BC b _0802A394 .align 2, 0 _0802A38C: .4byte gUnknown_203B2C4 _0802A390: bl sub_802B2BC _0802A394: pop {r4} pop {r0} bx r0 thumb_func_end sub_802A33C thumb_func_start sub_802A39C sub_802A39C: push {r4,lr} sub sp, 0x4 movs r0, 0x1 negs r0, r0 str r0, [sp] movs r0, 0 bl sub_801CA08 ldr r4, _0802A3E0 ldr r0, [r4] movs r1, 0xC3 lsls r1, 2 adds r0, r1 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _0802A3CE ldr r0, [r4] movs r1, 0xC3 lsls r1, 2 adds r0, r1 mov r1, sp bl sub_8013114 _0802A3CE: ldr r0, [sp] cmp r0, 0xB beq _0802A3EE cmp r0, 0xB bgt _0802A3E4 cmp r0, 0 beq _0802A430 b _0802A44A .align 2, 0 _0802A3E0: .4byte gUnknown_203B2C4 _0802A3E4: cmp r0, 0xC beq _0802A3FA cmp r0, 0xD beq _0802A430 b _0802A44A _0802A3EE: bl sub_801CBB8 movs r0, 0xC bl sub_802B2BC b _0802A44A _0802A3FA: ldr r0, [r4] movs r1, 0x2B str r1, [r0, 0x4] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] ldr r1, _0802A42C adds r0, r1 bl sub_801B3C0 movs r0, 0x15 bl sub_802B2BC b _0802A44A .align 2, 0 _0802A42C: .4byte 0x0000041c _0802A430: ldr r0, _0802A454 ldr r0, [r0] movs r1, 0xD7 lsls r1, 2 adds r0, r1 movs r1, 0x3 bl sub_8035CC0 bl sub_801CCD8 movs r0, 0x13 bl sub_802B2BC _0802A44A: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0802A454: .4byte gUnknown_203B2C4 thumb_func_end sub_802A39C thumb_func_start sub_802A458 sub_802A458: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802A46C movs r0, 0xD bl sub_802B2BC _0802A46C: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802A458 thumb_func_start sub_802A474 sub_802A474: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802A488 movs r0, 0x3 bl sub_802B2BC _0802A488: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802A474 thumb_func_start sub_802A490 sub_802A490: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802A4A4 movs r0, 0x3 bl sub_802B2BC _0802A4A4: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802A490 thumb_func_start sub_802A4AC sub_802A4AC: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802A4CC movs r0, 0x18 bl sub_802B2BC movs r0, 0x1 bl sub_8011C28 movs r0, 0 bl sub_8012574 _0802A4CC: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802A4AC thumb_func_start sub_802A4D4 sub_802A4D4: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802A4E8 movs r0, 0x1A bl sub_802B2BC _0802A4E8: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802A4D4 thumb_func_start sub_802A4F0 sub_802A4F0: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802A504 movs r0, 0x27 bl sub_802B2BC _0802A504: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802A4F0 thumb_func_start sub_802A50C sub_802A50C: push {r4,r5,lr} sub sp, 0x44 bl sub_80154F0 adds r4, r0, 0 add r0, sp, 0x14 movs r1, 0 movs r2, 0x30 bl MemoryFill8 cmp r4, 0x2 bne _0802A526 b _0802A660 _0802A526: cmp r4, 0x3 beq _0802A52C b _0802A680 _0802A52C: ldr r0, _0802A54C ldr r1, [r0] adds r1, 0x8 movs r0, 0x20 add r2, sp, 0x14 bl sub_8039068 subs r0, 0x7 cmp r0, 0x11 bls _0802A542 b _0802A654 _0802A542: lsls r0, 2 ldr r1, _0802A550 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802A54C: .4byte gUnknown_203B2C4 _0802A550: .4byte _0802A554 .align 2, 0 _0802A554: .4byte _0802A654 .4byte _0802A654 .4byte _0802A654 .4byte _0802A654 .4byte _0802A5F0 .4byte _0802A654 .4byte _0802A654 .4byte _0802A654 .4byte _0802A654 .4byte _0802A654 .4byte _0802A59C .4byte _0802A654 .4byte _0802A654 .4byte _0802A5D8 .4byte _0802A654 .4byte _0802A654 .4byte _0802A654 .4byte _0802A618 _0802A59C: ldr r0, _0802A5CC ldr r3, _0802A5D0 movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] ldr r1, _0802A5D4 ldr r1, [r1] movs r2, 0x84 lsls r2, 3 adds r1, r2 str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 movs r2, 0x7 bl sub_8014248 movs r0, 0x28 bl sub_802B2BC b _0802A654 .align 2, 0 _0802A5CC: .4byte gUnknown_80DF1C0 _0802A5D0: .4byte gUnknown_80DEE44 _0802A5D4: .4byte gUnknown_203B2C4 _0802A5D8: ldr r0, _0802A5E8 ldr r1, _0802A5EC ldr r2, [r1] movs r3, 0x84 lsls r3, 3 adds r2, r3 b _0802A5FC .align 2, 0 _0802A5E8: .4byte gUnknown_80DF208 _0802A5EC: .4byte gUnknown_203B2C4 _0802A5F0: ldr r0, _0802A60C ldr r1, _0802A610 ldr r2, [r1] movs r4, 0x84 lsls r4, 3 adds r2, r4 _0802A5FC: ldr r3, _0802A614 movs r1, 0 bl sub_80141B4 movs r0, 0x1F bl sub_802B2BC b _0802A654 .align 2, 0 _0802A60C: .4byte gUnknown_80DF0A0 _0802A610: .4byte gUnknown_203B2C4 _0802A614: .4byte 0x0000010d _0802A618: ldr r1, [sp, 0x24] movs r0, 0x4 bl sub_809539C lsls r0, 24 lsrs r0, 24 bl sub_8095228 adds r2, r0, 0 add r1, sp, 0x14 ldm r1!, {r3-r5} stm r2!, {r3-r5} ldm r1!, {r3-r5} stm r2!, {r3-r5} ldm r1!, {r3-r5} stm r2!, {r3-r5} ldm r1!, {r3-r5} stm r2!, {r3-r5} movs r1, 0x6 strb r1, [r0] ldr r0, _0802A65C ldr r0, [r0] movs r5, 0x86 lsls r5, 3 adds r0, r5 ldr r1, [sp, 0x24] str r1, [r0] movs r0, 0x21 bl sub_802B2BC _0802A654: bl sub_80155F0 b _0802A680 .align 2, 0 _0802A65C: .4byte gUnknown_203B2C4 _0802A660: bl sub_80155F0 bl sub_8004914 ldr r0, _0802A688 ldr r0, [r0] movs r1, 0xEF lsls r1, 2 adds r0, r1 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x1 bl sub_802B2BC _0802A680: add sp, 0x44 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802A688: .4byte gUnknown_203B2C4 thumb_func_end sub_802A50C thumb_func_start sub_802A68C sub_802A68C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802A6AE bl sub_8012600 lsls r0, 24 cmp r0, 0 bne _0802A6AE bl sub_8012750 movs r0, 0xD bl sub_802B2BC _0802A6AE: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802A68C thumb_func_start sub_802A6B4 sub_802A6B4: push {r4,lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802A6E8 bl sub_8012600 lsls r0, 24 cmp r0, 0 bne _0802A6E8 bl sub_8012744 adds r4, r0, 0 bl sub_8012750 cmp r4, 0 bne _0802A6E2 movs r0, 0x20 bl sub_802B2BC b _0802A6E8 _0802A6E2: movs r0, 0x3 bl sub_802B2BC _0802A6E8: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_802A6B4 thumb_func_start sub_802A6F0 sub_802A6F0: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802A710 movs r0, 0x18 bl sub_802B2BC movs r0, 0x1 bl sub_8011C28 movs r0, 0 bl sub_8012574 _0802A710: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802A6F0 thumb_func_start sub_802A718 sub_802A718: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802A738 movs r0, 0x25 bl sub_802B2BC movs r0, 0x1 bl sub_8011C28 movs r0, 0 bl sub_8012574 _0802A738: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802A718 thumb_func_start sub_802A740 sub_802A740: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802A754 movs r0, 0x1E bl sub_802B2BC _0802A754: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802A740 thumb_func_start sub_802A75C sub_802A75C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802A792 ldr r0, [sp] cmp r0, 0 beq _0802A78C cmp r0, 0x7 bne _0802A792 ldr r0, _0802A788 ldr r0, [r0] movs r1, 0xA7 lsls r1, 3 adds r0, r1 ldr r0, [r0] movs r0, 0x16 bl sub_802B2BC b _0802A792 .align 2, 0 _0802A788: .4byte gUnknown_203B2C4 _0802A78C: movs r0, 0x1 bl sub_802B2BC _0802A792: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802A75C thumb_func_start sub_802A798 sub_802A798: push {r4,r5,lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802A81E ldr r0, [sp] cmp r0, 0x7 beq _0802A7BC cmp r0, 0x7 bgt _0802A7B6 cmp r0, 0 beq _0802A818 b _0802A81E _0802A7B6: cmp r0, 0x8 beq _0802A810 b _0802A81E _0802A7BC: ldr r4, _0802A800 ldr r0, [r4] movs r1, 0x86 lsls r1, 2 adds r0, r1 ldrb r0, [r0] bl sub_8095228 adds r2, r0, 0 ldr r1, [r4] ldr r3, _0802A804 adds r0, r1, r3 ldrb r0, [r0] cmp r0, 0 beq _0802A7E2 ldr r5, _0802A808 adds r0, r1, r5 ldr r0, [r0] str r0, [r2, 0x20] _0802A7E2: ldr r0, _0802A80C ldr r1, [r0] ldr r0, [r4] adds r0, r3 ldrb r0, [r0] lsls r0, 1 adds r1, 0x50 adds r1, r0 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] movs r0, 0x29 bl sub_802B2BC b _0802A81E .align 2, 0 _0802A800: .4byte gUnknown_203B2C4 _0802A804: .4byte 0x0000041e _0802A808: .4byte 0x0000041c _0802A80C: .4byte gUnknown_203B460 _0802A810: movs r0, 0xB bl sub_802B2BC b _0802A81E _0802A818: movs r0, 0x1 bl sub_802B2BC _0802A81E: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_802A798 thumb_func_start sub_802A828 sub_802A828: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802A848 movs r0, 0x2A bl sub_802B2BC movs r0, 0x1 bl sub_8011C28 movs r0, 0 bl sub_8012574 _0802A848: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802A828 thumb_func_start sub_802A850 sub_802A850: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802A89A bl sub_8012600 lsls r0, 24 cmp r0, 0 bne _0802A89A bl sub_8012750 ldr r0, _0802A884 ldr r0, [r0] ldr r1, _0802A888 adds r0, r1 ldr r0, [r0] cmp r0, 0x3 blt _0802A89A cmp r0, 0x4 ble _0802A88C cmp r0, 0x5 beq _0802A894 b _0802A89A .align 2, 0 _0802A884: .4byte gUnknown_203B2C4 _0802A888: .4byte 0x00000534 _0802A88C: movs r0, 0x1D bl sub_802B2BC b _0802A89A _0802A894: movs r0, 0x19 bl sub_802B2BC _0802A89A: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802A850 thumb_func_start sub_802A8A0 sub_802A8A0: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802A8B4 movs r0, 0x13 bl sub_802B2BC _0802A8B4: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802A8A0 thumb_func_start sub_802A8BC sub_802A8BC: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802A90A ldr r0, [sp] cmp r0, 0 beq _0802A904 cmp r0, 0xA bne _0802A90A ldr r0, _0802A8EC ldr r0, [r0] ldr r1, _0802A8F0 adds r0, r1 ldr r0, [r0] cmp r0, 0x3 blt _0802A90A cmp r0, 0x4 ble _0802A8F4 cmp r0, 0x5 beq _0802A8FC b _0802A90A .align 2, 0 _0802A8EC: .4byte gUnknown_203B2C4 _0802A8F0: .4byte 0x00000534 _0802A8F4: movs r0, 0x1D bl sub_802B2BC b _0802A90A _0802A8FC: movs r0, 0x19 bl sub_802B2BC b _0802A90A _0802A904: movs r0, 0x1 bl sub_802B2BC _0802A90A: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802A8BC thumb_func_start sub_802A910 sub_802A910: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802A986 ldr r0, [sp] cmp r0, 0x9 beq _0802A934 cmp r0, 0x9 bgt _0802A92E cmp r0, 0 beq _0802A980 b _0802A986 _0802A92E: cmp r0, 0xA beq _0802A950 b _0802A986 _0802A934: movs r0, 0 bl sub_801CF14 lsls r0, 24 cmp r0, 0 beq _0802A948 movs r0, 0xA bl sub_802B2BC b _0802A986 _0802A948: movs r0, 0xB bl sub_802B2BC b _0802A986 _0802A950: ldr r0, _0802A968 ldr r0, [r0] ldr r1, _0802A96C adds r0, r1 ldr r0, [r0] cmp r0, 0x3 blt _0802A986 cmp r0, 0x4 ble _0802A970 cmp r0, 0x5 beq _0802A978 b _0802A986 .align 2, 0 _0802A968: .4byte gUnknown_203B2C4 _0802A96C: .4byte 0x00000534 _0802A970: movs r0, 0x1D bl sub_802B2BC b _0802A986 _0802A978: movs r0, 0x19 bl sub_802B2BC b _0802A986 _0802A980: movs r0, 0x1 bl sub_802B2BC _0802A986: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802A910 thumb_func_start sub_802A98C sub_802A98C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802A9A0 movs r0, 0x8 bl sub_802B2BC _0802A9A0: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802A98C thumb_func_start sub_802A9A8 sub_802A9A8: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802A9F6 ldr r0, [sp] cmp r0, 0 beq _0802A9F0 cmp r0, 0x7 bne _0802A9F6 ldr r0, _0802A9D8 ldr r0, [r0] ldr r1, _0802A9DC adds r0, r1 ldr r0, [r0] cmp r0, 0x3 blt _0802A9F6 cmp r0, 0x4 ble _0802A9E0 cmp r0, 0x5 beq _0802A9E8 b _0802A9F6 .align 2, 0 _0802A9D8: .4byte gUnknown_203B2C4 _0802A9DC: .4byte 0x00000534 _0802A9E0: movs r0, 0x1D bl sub_802B2BC b _0802A9F6 _0802A9E8: movs r0, 0x19 bl sub_802B2BC b _0802A9F6 _0802A9F0: movs r0, 0x1 bl sub_802B2BC _0802A9F6: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802A9A8 thumb_func_start sub_802A9FC sub_802A9FC: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802AA22 ldr r0, [sp] cmp r0, 0 beq _0802AA1C cmp r0, 0x7 bne _0802AA22 movs r0, 0x26 bl sub_802B2BC b _0802AA22 _0802AA1C: movs r0, 0x1 bl sub_802B2BC _0802AA22: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802A9FC thumb_func_start sub_802AA28 sub_802AA28: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802AAA6 ldr r2, [sp] cmp r2, 0 beq _0802AAA0 cmp r2, 0 blt _0802AAA6 cmp r2, 0x5 bgt _0802AAA6 cmp r2, 0x3 blt _0802AAA6 ldr r0, _0802AA7C ldr r0, [r0] ldr r3, _0802AA80 adds r1, r0, r3 str r2, [r1] movs r1, 0xA7 lsls r1, 3 adds r0, r1 ldr r0, [r0] cmp r0, 0x1 bne _0802AA8C movs r0, 0x5 bl sub_80953D4 lsls r0, 24 lsrs r0, 24 bl sub_8095228 adds r0, 0x22 ldrb r0, [r0] cmp r0, 0 beq _0802AA84 movs r0, 0x7 bl sub_802B2BC b _0802AAA6 .align 2, 0 _0802AA7C: .4byte gUnknown_203B2C4 _0802AA80: .4byte 0x00000534 _0802AA84: movs r0, 0x9 bl sub_802B2BC b _0802AAA6 _0802AA8C: cmp r2, 0x5 bne _0802AA98 movs r0, 0x26 bl sub_802B2BC b _0802AAA6 _0802AA98: movs r0, 0x1D bl sub_802B2BC b _0802AAA6 _0802AAA0: movs r0, 0x1 bl sub_802B2BC _0802AAA6: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802AA28 thumb_func_start sub_802AAAC sub_802AAAC: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802AAC0 movs r0, 0x1 bl sub_802B2BC _0802AAC0: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802AAAC thumb_func_start sub_802AAC8 sub_802AAC8: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802AADC movs r0, 0x3 bl sub_802B2BC _0802AADC: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802AAC8 thumb_func_start sub_802AAE4 sub_802AAE4: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802AB5A ldr r2, [sp] cmp r2, 0x1 beq _0802AB08 cmp r2, 0x1 bgt _0802AB02 cmp r2, 0 beq _0802AB54 b _0802AB5A _0802AB02: cmp r2, 0x2 beq _0802AB38 b _0802AB5A _0802AB08: ldr r0, _0802AB2C ldr r0, [r0] movs r1, 0x6 str r1, [r0, 0x40] movs r1, 0xA7 lsls r1, 3 adds r0, r1 str r2, [r0] movs r0, 0x5 bl sub_8095324 cmp r0, 0 bne _0802AB30 movs r0, 0x4 bl sub_802B2BC b _0802AB5A .align 2, 0 _0802AB2C: .4byte gUnknown_203B2C4 _0802AB30: movs r0, 0xF bl sub_802B2BC b _0802AB5A _0802AB38: ldr r0, _0802AB50 ldr r0, [r0] movs r1, 0x7 str r1, [r0, 0x40] movs r1, 0xA7 lsls r1, 3 adds r0, r1 str r2, [r0] movs r0, 0x6 bl sub_802B2BC b _0802AB5A .align 2, 0 _0802AB50: .4byte gUnknown_203B2C4 _0802AB54: movs r0, 0x2 bl sub_802B2BC _0802AB5A: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802AAE4 thumb_func_start sub_802AB60 sub_802AB60: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802AB74 movs r0, 0x22 bl sub_802B2BC _0802AB74: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802AB60 thumb_func_start sub_802AB7C sub_802AB7C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802AB90 movs r0, 0x22 bl sub_802B2BC _0802AB90: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802AB7C thumb_func_start sub_802AB98 sub_802AB98: push {r4,lr} bl sub_802F298 cmp r0, 0x3 bne _0802ABE0 bl sub_802F2C0 ldr r0, _0802ABE8 movs r4, 0x98 lsls r4, 1 adds r1, r4, 0 bl sub_808D8E0 adds r0, r4, 0 bl sub_808D994 adds r1, r0, 0 ldr r0, _0802ABEC bl strcpy ldr r0, _0802ABF0 ldr r0, [r0] movs r1, 0x86 lsls r1, 3 adds r0, r1 ldr r1, [r0] movs r0, 0x6 bl sub_809539C lsls r0, 24 lsrs r0, 24 bl sub_8095240 movs r0, 0x24 bl sub_802B2BC _0802ABE0: pop {r4} pop {r0} bx r0 .align 2, 0 _0802ABE8: .4byte gUnknown_202E5D8 _0802ABEC: .4byte gUnknown_202DF98 _0802ABF0: .4byte gUnknown_203B2C4 thumb_func_end sub_802AB98 thumb_func_start nullsub_131 nullsub_131: bx lr thumb_func_end nullsub_131 thumb_func_start sub_802ABF8 sub_802ABF8: push {r4-r6,lr} sub sp, 0xB8 ldr r1, _0802AC14 ldr r0, [r1] ldrb r0, [r0] adds r6, r1, 0 cmp r0, 0x2A bls _0802AC0A b _0802B2AA _0802AC0A: lsls r0, 2 ldr r1, _0802AC18 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802AC14: .4byte gUnknown_203B2C4 _0802AC18: .4byte _0802AC1C .align 2, 0 _0802AC1C: .4byte _0802B1DC .4byte _0802B1FC .4byte _0802B22C .4byte _0802B2AA .4byte _0802B1D4 .4byte _0802ACC8 .4byte _0802B248 .4byte _0802B194 .4byte _0802B1A4 .4byte _0802B168 .4byte _0802B138 .4byte _0802B128 .4byte _0802B0F0 .4byte _0802B0AC .4byte _0802AD08 .4byte _0802AD18 .4byte _0802AD20 .4byte _0802AD46 .4byte _0802B2AA .4byte _0802AD80 .4byte _0802ADB0 .4byte _0802B2AA .4byte _0802B07C .4byte _0802B094 .4byte _0802B2AA .4byte _0802AF50 .4byte _0802AF1A .4byte _0802AF46 .4byte _0802B2AA .4byte _0802B0A4 .4byte _0802ADF8 .4byte _0802B2AA .4byte _0802AF70 .4byte _0802AF78 .4byte _0802AFAC .4byte _0802B2AA .4byte _0802AF60 .4byte _0802B2AA .4byte _0802AEEC .4byte _0802AEF4 .4byte _0802B2AA .4byte _0802B110 .4byte _0802B120 _0802ACC8: bl sub_808D33C adds r1, r0, 0 adds r1, 0x4C add r0, sp, 0x14 movs r2, 0xA bl sub_80922B4 ldr r5, _0802ACF8 ldr r0, [r5] ldr r4, _0802ACFC adds r0, r4 ldr r1, _0802AD00 add r2, sp, 0x14 bl sub_800D158 ldr r2, [r5] adds r4, r2, r4 movs r0, 0x84 lsls r0, 3 adds r2, r0 ldr r3, _0802AD04 adds r0, r4, 0 b _0802B238 .align 2, 0 _0802ACF8: .4byte gUnknown_203B2C4 _0802ACFC: .4byte 0x00000434 _0802AD00: .4byte gUnknown_80DF250 _0802AD04: .4byte 0x0000010d _0802AD08: ldr r0, _0802AD10 ldr r3, _0802AD14 b _0802B1A8 .align 2, 0 _0802AD10: .4byte gUnknown_80DF304 _0802AD14: .4byte gUnknown_80DEE60 _0802AD18: ldr r0, _0802AD1C b _0802B22E .align 2, 0 _0802AD1C: .4byte gUnknown_80DF330 _0802AD20: bl sub_8030894 cmp r0, 0 beq _0802AD2A b _0802B2AA _0802AD2A: bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x5 movs r1, 0 movs r2, 0 movs r3, 0x6 bl sub_80306A8 b _0802B2AA _0802AD46: ldr r0, [r6] movs r4, 0xD7 lsls r4, 2 adds r0, r4 bl sub_8006518 ldr r1, [r6] movs r5, 0x87 lsls r5, 2 adds r0, r1, r5 adds r1, r4 ldr r3, _0802AD78 ldr r2, _0802AD7C str r2, [sp] movs r2, 0x1 str r2, [sp, 0x4] movs r2, 0 str r2, [sp, 0x8] str r2, [sp, 0xC] movs r2, 0x3 bl SetMenuItems bl sub_803092C b _0802ADE0 .align 2, 0 _0802AD78: .4byte gUnknown_80DED60 _0802AD7C: .4byte gUnknown_80DED78 _0802AD80: bl sub_801D008 cmp r0, 0 beq _0802AD8A b _0802B2AA _0802AD8A: bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C add r2, sp, 0xB4 ldr r0, _0802ADAC str r0, [r2] movs r0, 0 movs r1, 0x1 movs r3, 0x9 bl sub_801C8C4 b _0802B2AA .align 2, 0 _0802ADAC: .4byte 0x00020003 _0802ADB0: ldr r0, [r6] movs r4, 0xD7 lsls r4, 2 adds r0, r4 bl sub_8006518 ldr r1, [r6] movs r5, 0x87 lsls r5, 2 adds r0, r1, r5 adds r1, r4 ldr r3, _0802ADF0 ldr r2, _0802ADF4 str r2, [sp] movs r2, 0x1 str r2, [sp, 0x4] movs r2, 0 str r2, [sp, 0x8] str r2, [sp, 0xC] movs r2, 0x3 bl SetMenuItems bl sub_801CCD8 _0802ADE0: ldr r0, [r6] adds r0, r5 movs r1, 0x3 movs r2, 0x1 bl sub_8035CF4 b _0802B2AA .align 2, 0 _0802ADF0: .4byte gUnknown_80DED48 _0802ADF4: .4byte gUnknown_80DED78 _0802ADF8: ldr r1, [r6] movs r0, 0 str r0, [r1, 0x44] bl sub_8011830 ldr r0, [r6] ldr r0, [r0, 0x40] bl sub_8037B28 ldr r1, [r6] str r0, [r1, 0x44] cmp r0, 0 bne _0802AEE6 ldr r0, [r1, 0x40] cmp r0, 0x6 beq _0802AE1E cmp r0, 0x7 beq _0802AE5C b _0802AE8C _0802AE1E: movs r4, 0xDC lsls r4, 1 adds r0, r1, r4 movs r1, 0 movs r2, 0x30 bl MemoryFill8 ldr r0, [r6] movs r5, 0x86 lsls r5, 2 adds r0, r5 ldrb r0, [r0] bl sub_8095228 ldr r1, [r6] adds r1, r4 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldr r2, [r6] ldr r0, [r2, 0x40] adds r4, r2, r4 movs r1, 0xF4 lsls r1, 1 adds r2, r1 b _0802AE82 _0802AE5C: movs r4, 0xDC lsls r4, 1 adds r0, r1, r4 movs r1, 0 movs r2, 0x30 bl MemoryFill8 ldr r0, [r6] movs r5, 0xF4 lsls r5, 1 adds r0, r5 movs r1, 0 movs r2, 0x30 bl MemoryFill8 ldr r2, [r6] ldr r0, [r2, 0x40] adds r4, r2, r4 adds r2, r5 _0802AE82: adds r1, r4, 0 bl sub_8037D64 ldr r1, [r6] str r0, [r1, 0x44] _0802AE8C: ldr r4, _0802AED0 ldr r2, [r4] ldr r0, [r2, 0x44] cmp r0, 0 bne _0802AEE6 ldr r0, [r2, 0x40] cmp r0, 0x7 bhi _0802AEE6 cmp r0, 0x6 bcc _0802AEE6 movs r3, 0xDC lsls r3, 1 adds r1, r2, r3 movs r5, 0xF4 lsls r5, 1 adds r2, r5 bl sub_80381F4 ldr r1, [r4] str r0, [r1, 0x44] bl sub_800D588 lsls r0, 24 cmp r0, 0 beq _0802AED4 ldr r0, [r4] movs r2, 0x86 lsls r2, 3 adds r1, r0, r2 movs r3, 0xFC lsls r3, 1 adds r0, r3 b _0802AEE2 .align 2, 0 _0802AED0: .4byte gUnknown_203B2C4 _0802AED4: ldr r0, [r4] movs r5, 0x86 lsls r5, 3 adds r1, r0, r5 movs r2, 0xE4 lsls r2, 1 adds r0, r2 _0802AEE2: ldr r0, [r0] str r0, [r1] _0802AEE6: bl sub_8011854 b _0802B2AA _0802AEEC: ldr r0, _0802AEF0 b _0802B22E .align 2, 0 _0802AEF0: .4byte gUnknown_80DF380 _0802AEF4: ldr r0, [r6] movs r5, 0xEF lsls r5, 2 adds r0, r5 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r1, [r6] adds r1, 0x8 movs r0, 0x4 bl sub_80151C0 b _0802B2AA _0802AF1A: ldr r0, [r6] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r6] movs r2, 0x86 lsls r2, 2 adds r0, r2 ldrb r0, [r0] movs r1, 0 bl sub_8031D70 b _0802B2AA _0802AF46: ldr r0, _0802AF4C b _0802B22E .align 2, 0 _0802AF4C: .4byte gUnknown_80DF3B4 _0802AF50: ldr r0, _0802AF5C ldr r2, [r6] movs r5, 0x84 lsls r5, 3 adds r2, r5 b _0802B236 .align 2, 0 _0802AF5C: .4byte gUnknown_80DF418 _0802AF60: ldr r0, _0802AF6C ldr r2, [r6] movs r1, 0x84 lsls r1, 3 adds r2, r1 b _0802B236 .align 2, 0 _0802AF6C: .4byte gUnknown_80DF44C _0802AF70: ldr r0, _0802AF74 b _0802B22E .align 2, 0 _0802AF74: .4byte gUnknown_80DF46C _0802AF78: ldr r0, [r6] ldr r5, _0802AF90 adds r0, r5 ldr r0, [r0] cmp r0, 0x4 bne _0802AF86 b _0802B2AA _0802AF86: cmp r0, 0x4 bgt _0802AF94 cmp r0, 0x3 beq _0802AF9A b _0802B2AA .align 2, 0 _0802AF90: .4byte 0x00000534 _0802AF94: cmp r0, 0x6 ble _0802AF9A b _0802B2AA _0802AF9A: ldr r0, _0802AFA8 ldr r2, [r6] movs r1, 0x84 lsls r1, 3 adds r2, r1 b _0802B236 .align 2, 0 _0802AFA8: .4byte gUnknown_80DF4F4 _0802AFAC: movs r4, 0x98 lsls r4, 1 adds r0, r4, 0 bl sub_808D994 adds r1, r0, 0 ldr r5, _0802B00C ldr r0, [r5] ldr r2, _0802B010 adds r0, r2 bl strcpy ldr r1, [r5] movs r3, 0xAA lsls r3, 3 adds r0, r1, r3 movs r2, 0 strh r4, [r0] ldr r0, _0802B014 adds r1, r0 movs r0, 0x2 strb r0, [r1] ldr r0, [r5] adds r3, 0x4 adds r1, r0, r3 str r2, [r1] movs r1, 0x86 lsls r1, 3 adds r0, r1 ldr r1, [r0] movs r0, 0x6 bl sub_809539C lsls r0, 24 lsrs r0, 24 bl sub_8095228 adds r2, r0, 0 adds r0, 0x22 ldrb r1, [r0] cmp r1, 0 beq _0802B018 ldr r0, [r5] movs r3, 0xAB lsls r3, 3 adds r0, r3 b _0802B022 .align 2, 0 _0802B00C: .4byte gUnknown_203B2C4 _0802B010: .4byte 0x0000053c _0802B014: .4byte 0x00000552 _0802B018: ldr r0, [r5] movs r5, 0xAB lsls r5, 3 adds r0, r5 movs r1, 0 _0802B022: strb r1, [r0] ldr r4, _0802B068 ldr r0, [r4] ldr r1, _0802B06C adds r0, r1 movs r5, 0 movs r1, 0x1 strb r1, [r0] adds r0, r2, 0x4 movs r1, 0 bl sub_803C200 ldr r1, [r4] movs r3, 0xAC lsls r3, 3 adds r2, r1, r3 str r0, [r2] ldr r0, _0802B070 adds r1, r0 strb r5, [r1] ldr r0, [r4] ldr r1, _0802B074 adds r0, r1 strb r5, [r0] ldr r0, [r4] ldr r2, _0802B078 adds r0, r2 strb r5, [r0] ldr r0, [r4] subs r3, 0x24 adds r0, r3 movs r1, 0 bl sub_802F204 b _0802B2AA .align 2, 0 _0802B068: .4byte gUnknown_203B2C4 _0802B06C: .4byte 0x0000055b _0802B070: .4byte 0x00000559 _0802B074: .4byte 0x0000055a _0802B078: .4byte 0x0000055c _0802B07C: movs r0, 0 bl nullsub_23 ldr r0, _0802B090 movs r1, 0 movs r2, 0 movs r3, 0 bl sub_80141B4 b _0802B2AA .align 2, 0 _0802B090: .4byte gUnknown_80DF544 _0802B094: ldr r0, _0802B0A0 ldr r2, [r6] movs r5, 0x84 lsls r5, 3 adds r2, r5 b _0802B236 .align 2, 0 _0802B0A0: .4byte gUnknown_80DF594 _0802B0A4: ldr r0, _0802B0A8 b _0802B1A6 .align 2, 0 _0802B0A8: .4byte gUnknown_80DF5E4 _0802B0AC: bl sub_808D33C adds r1, r0, 0 add r6, sp, 0x64 adds r1, 0x4C adds r0, r6, 0 movs r2, 0xA bl sub_80922B4 ldr r5, _0802B0E0 ldr r0, [r5] ldr r4, _0802B0E4 adds r0, r4 ldr r1, _0802B0E8 adds r2, r6, 0 bl sub_800D158 ldr r2, [r5] adds r4, r2, r4 movs r3, 0x84 lsls r3, 3 adds r2, r3 ldr r3, _0802B0EC adds r0, r4, 0 b _0802B238 .align 2, 0 _0802B0E0: .4byte gUnknown_203B2C4 _0802B0E4: .4byte 0x00000434 _0802B0E8: .4byte gUnknown_80DF63C _0802B0EC: .4byte 0x0000010d _0802B0F0: ldr r0, _0802B108 ldr r3, _0802B10C movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] ldr r1, [r6] movs r5, 0x84 lsls r5, 3 adds r1, r5 b _0802B1BA .align 2, 0 _0802B108: .4byte gUnknown_80DF694 _0802B10C: .4byte gUnknown_80DEEE4 _0802B110: ldr r0, _0802B11C ldr r2, [r6] movs r1, 0x84 lsls r1, 3 adds r2, r1 b _0802B236 .align 2, 0 _0802B11C: .4byte gUnknown_80DF44C _0802B120: ldr r0, _0802B124 b _0802B22E .align 2, 0 _0802B124: .4byte gUnknown_80DF6F0 _0802B128: ldr r0, _0802B134 ldr r2, [r6] movs r5, 0x84 lsls r5, 3 adds r2, r5 b _0802B236 .align 2, 0 _0802B134: .4byte gUnknown_80DF710 _0802B138: ldr r0, _0802B160 ldr r3, _0802B164 movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] ldr r1, [r6] movs r2, 0x84 lsls r2, 3 adds r1, r2 str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 movs r2, 0 bl sub_8014248 b _0802B2AA .align 2, 0 _0802B160: .4byte gUnknown_80DF73C _0802B164: .4byte gUnknown_80DEEBC _0802B168: ldr r0, _0802B18C ldr r3, _0802B190 movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] ldr r1, [r6] movs r5, 0x84 lsls r5, 3 adds r1, r5 str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 bl sub_8014248 b _0802B2AA .align 2, 0 _0802B18C: .4byte gUnknown_80DF77C _0802B190: .4byte gUnknown_80DEE7C _0802B194: ldr r0, _0802B1A0 ldr r2, [r6] movs r1, 0x84 lsls r1, 3 adds r2, r1 b _0802B236 .align 2, 0 _0802B1A0: .4byte gUnknown_80DF7D4 _0802B1A4: ldr r0, _0802B1CC _0802B1A6: ldr r3, _0802B1D0 _0802B1A8: movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] ldr r1, [r6] movs r2, 0x84 lsls r2, 3 adds r1, r2 _0802B1BA: str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 movs r2, 0x7 bl sub_8014248 b _0802B2AA .align 2, 0 _0802B1CC: .4byte gUnknown_80DF870 _0802B1D0: .4byte gUnknown_80DEE44 _0802B1D4: ldr r0, _0802B1D8 b _0802B22E .align 2, 0 _0802B1D8: .4byte gUnknown_80DF8B4 _0802B1DC: ldr r0, _0802B1F4 ldr r3, _0802B1F8 movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] ldr r1, [r6] movs r5, 0x84 lsls r5, 3 adds r1, r5 b _0802B212 .align 2, 0 _0802B1F4: .4byte gUnknown_80DF8EC _0802B1F8: .4byte gUnknown_80DEDB8 _0802B1FC: ldr r0, _0802B224 ldr r3, _0802B228 movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] ldr r1, [r6] movs r2, 0x84 lsls r2, 3 adds r1, r2 _0802B212: str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 movs r2, 0x1 bl sub_8014248 b _0802B2AA .align 2, 0 _0802B224: .4byte gUnknown_80DF928 _0802B228: .4byte gUnknown_80DEDB8 _0802B22C: ldr r0, _0802B240 _0802B22E: ldr r2, [r6] movs r3, 0x84 lsls r3, 3 adds r2, r3 _0802B236: ldr r3, _0802B244 _0802B238: movs r1, 0 bl sub_80141B4 b _0802B2AA .align 2, 0 _0802B240: .4byte gUnknown_80DF94C _0802B244: .4byte 0x0000010d _0802B248: ldr r4, [r6] movs r5, 0xA7 lsls r5, 3 adds r0, r4, r5 ldr r0, [r0] cmp r0, 0x1 beq _0802B25C cmp r0, 0x2 beq _0802B288 b _0802B2AA _0802B25C: ldr r0, _0802B280 ldr r3, _0802B284 movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] movs r2, 0x84 lsls r2, 3 adds r1, r4, r2 str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 movs r2, 0x3 bl sub_8014248 b _0802B2AA .align 2, 0 _0802B280: .4byte gUnknown_80DF96C _0802B284: .4byte gUnknown_80DEE08 _0802B288: ldr r0, _0802B2B4 ldr r3, _0802B2B8 movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] movs r5, 0x84 lsls r5, 3 adds r1, r4, r5 str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 movs r2, 0x3 bl sub_8014248 _0802B2AA: add sp, 0xB8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0802B2B4: .4byte gUnknown_80DF9A4 _0802B2B8: .4byte gUnknown_80DEE08 thumb_func_end sub_802ABF8 thumb_func_start sub_802B2BC sub_802B2BC: push {lr} ldr r1, _0802B2D0 ldr r1, [r1] strb r0, [r1] bl nullsub_131 bl sub_802ABF8 pop {r0} bx r0 .align 2, 0 _0802B2D0: .4byte gUnknown_203B2C4 thumb_func_end sub_802B2BC thumb_func_start sub_802B2D4 sub_802B2D4: push {r4,r5,lr} bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r5, _0802B348 movs r4, 0xA0 lsls r4, 1 adds r0, r4, 0 movs r1, 0x8 bl MemoryAlloc str r0, [r5] movs r1, 0 adds r2, r4, 0 bl MemoryFill8 ldr r1, [r5] movs r0, 0xFF strb r0, [r1, 0x1] ldr r0, _0802B34C subs r4, 0x10 adds r1, r4, 0 bl sub_808D8E0 adds r0, r4, 0 bl sub_808DDD0 ldr r1, [r5] str r0, [r1, 0x4] ldr r0, [r0, 0x4] str r0, [r1, 0x8] movs r2, 0 strb r2, [r1, 0x10] ldr r0, [r5] strb r2, [r0, 0x11] ldr r0, [r5] strb r2, [r0, 0x12] ldr r0, [r5] movs r1, 0x2 strh r1, [r0, 0xC] movs r1, 0x8 strh r1, [r0, 0xE] adds r0, 0x1 bl sub_8099394 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0802B350 movs r0, 0 bl sub_802B548 movs r0, 0x1 b _0802B352 .align 2, 0 _0802B348: .4byte gUnknown_203B2C8 _0802B34C: .4byte gUnknown_202E5D8 _0802B350: movs r0, 0 _0802B352: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_802B2D4 thumb_func_start sub_802B358 sub_802B358: push {lr} ldr r0, _0802B370 ldr r0, [r0] ldrb r0, [r0] cmp r0, 0x5 bhi _0802B3B2 lsls r0, 2 ldr r1, _0802B374 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802B370: .4byte gUnknown_203B2C8 _0802B374: .4byte _0802B378 .align 2, 0 _0802B378: .4byte _0802B390 .4byte _0802B396 .4byte _0802B39C .4byte _0802B3A2 .4byte _0802B3A8 .4byte _0802B3AE _0802B390: bl sub_802B560 b _0802B3B2 _0802B396: bl sub_802B57C b _0802B3B2 _0802B39C: bl sub_802B5B8 b _0802B3B2 _0802B3A2: bl sub_802B5FC b _0802B3B2 _0802B3A8: bl sub_802B624 b _0802B3B2 _0802B3AE: movs r0, 0x3 b _0802B3B4 _0802B3B2: movs r0, 0 _0802B3B4: pop {r1} bx r1 thumb_func_end sub_802B358 thumb_func_start sub_802B3B8 sub_802B3B8: push {r4,lr} ldr r4, _0802B3D8 ldr r0, [r4] cmp r0, 0 beq _0802B3D2 ldr r0, [r0, 0x4] bl CloseFile ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _0802B3D2: pop {r4} pop {r0} bx r0 .align 2, 0 _0802B3D8: .4byte gUnknown_203B2C8 thumb_func_end sub_802B3B8 thumb_func_start nullsub_132 nullsub_132: bx lr thumb_func_end nullsub_132 thumb_func_start sub_802B3E0 sub_802B3E0: push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x28 ldr r1, _0802B404 ldr r0, [r1] ldrb r0, [r0] adds r2, r1, 0 cmp r0, 0x5 bls _0802B3F8 b _0802B532 _0802B3F8: lsls r0, 2 ldr r1, _0802B408 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802B404: .4byte gUnknown_203B2C8 _0802B408: .4byte _0802B40C .align 2, 0 _0802B40C: .4byte _0802B424 .4byte _0802B464 .4byte _0802B50C .4byte _0802B532 .4byte _0802B524 .4byte _0802B532 _0802B424: movs r0, 0 bl sub_80023E4 lsls r0, 24 cmp r0, 0 beq _0802B438 mov r0, sp bl sub_80920D8 b _0802B440 _0802B438: ldr r1, _0802B458 mov r0, sp bl strcpy _0802B440: ldr r4, _0802B45C ldr r0, [r4] adds r0, 0x14 ldr r1, _0802B460 mov r2, sp bl sub_800D158 ldr r2, [r4] adds r0, r2, 0 adds r0, 0x14 b _0802B510 .align 2, 0 _0802B458: .4byte gUnknown_80DF9F0 _0802B45C: .4byte gUnknown_203B2C8 _0802B460: .4byte gUnknown_80DF9F8 _0802B464: movs r6, 0x98 lsls r6, 1 adds r0, r6, 0 bl sub_808D994 adds r1, r0, 0 ldr r5, _0802B500 ldr r0, [r5] movs r2, 0x8A lsls r2, 1 mov r9, r2 add r0, r9 bl strcpy ldr r2, [r5] movs r3, 0x94 lsls r3, 1 adds r0, r2, r3 movs r1, 0 mov r8, r1 movs r1, 0 strh r6, [r0] adds r3, 0x2 adds r2, r3 movs r0, 0x2 strb r0, [r2] ldr r0, [r5] movs r2, 0x96 lsls r2, 1 adds r0, r2 str r1, [r0] bl sub_8097790 ldr r0, [r5] ldrb r0, [r0, 0x1] bl sub_8095228 adds r4, r0, 0 adds r4, 0x4 ldr r2, [r5] adds r2, r6 adds r0, r4, 0 movs r1, 0 bl sub_803C37C adds r0, r4, 0 movs r1, 0 bl sub_803C200 ldr r2, [r5] movs r3, 0x9C lsls r3, 1 adds r1, r2, r3 str r0, [r1] ldr r1, _0802B504 adds r0, r2, r1 mov r2, r8 strb r2, [r0] ldr r0, [r5] subs r3, 0x6 adds r0, r3 strb r2, [r0] ldr r0, [r5] ldr r2, _0802B508 adds r1, r0, r2 movs r0, 0xA strb r0, [r1] ldr r0, [r5] adds r3, 0x2 adds r0, r3 mov r1, r8 strb r1, [r0] ldr r0, [r5] add r0, r9 movs r1, 0 bl sub_802F204 b _0802B532 .align 2, 0 _0802B500: .4byte gUnknown_203B2C8 _0802B504: .4byte 0x00000131 _0802B508: .4byte 0x00000133 _0802B50C: ldr r0, _0802B51C ldr r2, [r2] _0802B510: adds r2, 0x4 ldr r3, _0802B520 movs r1, 0 bl sub_80141B4 b _0802B532 .align 2, 0 _0802B51C: .4byte gUnknown_80DFAA8 _0802B520: .4byte 0x0000010d _0802B524: ldr r0, _0802B540 ldr r2, [r2] adds r2, 0x4 ldr r3, _0802B544 movs r1, 0 bl sub_80141B4 _0802B532: add sp, 0x28 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0802B540: .4byte gUnknown_80DFB14 _0802B544: .4byte 0x0000010d thumb_func_end sub_802B3E0 thumb_func_start sub_802B548 sub_802B548: push {lr} ldr r1, _0802B55C ldr r1, [r1] strb r0, [r1] bl nullsub_132 bl sub_802B3E0 pop {r0} bx r0 .align 2, 0 _0802B55C: .4byte gUnknown_203B2C8 thumb_func_end sub_802B548 thumb_func_start sub_802B560 sub_802B560: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802B574 movs r0, 0x1 bl sub_802B548 _0802B574: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802B560 thumb_func_start sub_802B57C sub_802B57C: push {r4,lr} bl sub_802F298 cmp r0, 0x3 bne _0802B5AA bl sub_802F2C0 ldr r0, _0802B5B0 movs r4, 0x98 lsls r4, 1 adds r1, r4, 0 bl sub_808D8E0 adds r0, r4, 0 bl sub_808D994 adds r1, r0, 0 ldr r0, _0802B5B4 bl strcpy movs r0, 0x2 bl sub_802B548 _0802B5AA: pop {r4} pop {r0} bx r0 .align 2, 0 _0802B5B0: .4byte gUnknown_202E5D8 _0802B5B4: .4byte gUnknown_202DF98 thumb_func_end sub_802B57C thumb_func_start sub_802B5B8 sub_802B5B8: push {r4,lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802B5EE bl sub_8011C34 adds r4, r0, 0 ldr r0, _0802B5F8 ldr r0, [r0] ldrb r0, [r0, 0x1] bl sub_8095228 movs r1, 0x4 strb r1, [r0] str r4, [r0, 0x28] movs r0, 0x3 bl sub_802B548 movs r0, 0x1 bl sub_8011C28 movs r0, 0 bl sub_8012574 _0802B5EE: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0802B5F8: .4byte gUnknown_203B2C8 thumb_func_end sub_802B5B8 thumb_func_start sub_802B5FC sub_802B5FC: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802B61E bl sub_8012600 lsls r0, 24 cmp r0, 0 bne _0802B61E bl sub_8012750 movs r0, 0x4 bl sub_802B548 _0802B61E: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802B5FC thumb_func_start sub_802B624 sub_802B624: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802B638 movs r0, 0x5 bl sub_802B548 _0802B638: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802B624 thumb_func_start sub_802B640 sub_802B640: push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 adds r4, r1, 0 mov r8, r2 bl sub_802B9D8 lsls r0, 24 cmp r0, 0 beq _0802B65A movs r0, 0 b _0802B706 _0802B65A: ldr r5, _0802B710 ldr r0, [r5] cmp r0, 0 bne _0802B66C movs r0, 0xD4 movs r1, 0x8 bl MemoryAlloc str r0, [r5] _0802B66C: ldr r0, [r5] str r6, [r0, 0x6C] lsls r1, r6, 1 adds r1, r6 lsls r1, 3 adds r1, 0x74 adds r1, r0, r1 str r1, [r0, 0x70] adds r0, 0x74 bl sub_8006518 ldr r1, [r5] ldr r2, [r1, 0x6C] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, 0x74 ldr r0, _0802B714 ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} cmp r4, 0 beq _0802B6B0 ldr r1, [r5] ldr r2, [r1, 0x6C] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, 0x7C adds r1, r0 ldr r0, [r4] str r0, [r1] _0802B6B0: ldr r0, [r5] ldr r0, [r0, 0x70] mov r1, r8 bl sub_8012D08 bl sub_8004914 ldr r0, [r5] adds r0, 0x74 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, [r5] adds r4, 0x38 bl sub_802B9A8 adds r1, r0, 0 adds r0, r4, 0 mov r2, r8 adds r3, r6, 0 bl sub_8013818 ldr r2, [r5] ldr r0, _0802B718 ldrh r1, [r0] adds r0, r2, 0 adds r0, 0x50 strh r1, [r0] ldr r0, _0802B71C ldrh r0, [r0] adds r1, r2, 0 adds r1, 0x56 strh r0, [r1] adds r0, r2, 0 adds r0, 0x38 bl sub_8013984 bl sub_802B880 bl sub_802B8D4 movs r0, 0x1 _0802B706: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0802B710: .4byte gUnknown_203B2CC _0802B714: .4byte gUnknown_80DFBEC _0802B718: .4byte gUnknown_203B2D0 _0802B71C: .4byte gUnknown_203B2D2 thumb_func_end sub_802B640 thumb_func_start sub_802B720 sub_802B720: push {lr} lsls r0, 24 cmp r0, 0 bne _0802B73C ldr r0, _0802B738 ldr r0, [r0] adds r0, 0x38 bl sub_8013660 movs r0, 0 b _0802B7A2 .align 2, 0 _0802B738: .4byte gUnknown_203B2CC _0802B73C: ldr r0, _0802B754 ldr r0, [r0] adds r0, 0x38 bl GetKeyPress cmp r0, 0x2 beq _0802B75E cmp r0, 0x2 bgt _0802B758 cmp r0, 0x1 beq _0802B768 b _0802B77C .align 2, 0 _0802B754: .4byte gUnknown_203B2CC _0802B758: cmp r0, 0x4 beq _0802B772 b _0802B77C _0802B75E: movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 b _0802B7A2 _0802B768: movs r0, 0 bl sub_80119D4 movs r0, 0x3 b _0802B7A2 _0802B772: movs r0, 0x4 bl sub_80119D4 movs r0, 0x4 b _0802B7A2 _0802B77C: ldr r0, _0802B794 ldr r0, [r0] adds r0, 0x38 movs r1, 0x1 bl sub_80138B8 lsls r0, 24 cmp r0, 0 bne _0802B798 movs r0, 0 b _0802B7A2 .align 2, 0 _0802B794: .4byte gUnknown_203B2CC _0802B798: bl sub_802B880 bl sub_802B8D4 movs r0, 0x1 _0802B7A2: pop {r1} bx r1 thumb_func_end sub_802B720 thumb_func_start sub_802B7A8 sub_802B7A8: ldr r0, _0802B7CC ldr r2, [r0] adds r0, r2, 0 adds r0, 0x56 movs r3, 0 ldrsh r1, [r0, r3] subs r0, 0x2 movs r3, 0 ldrsh r0, [r0, r3] muls r0, r1 adds r1, r2, 0 adds r1, 0x50 movs r3, 0 ldrsh r1, [r1, r3] adds r0, r1 adds r0, r2, r0 ldrb r0, [r0] bx lr .align 2, 0 _0802B7CC: .4byte gUnknown_203B2CC thumb_func_end sub_802B7A8 thumb_func_start sub_802B7D0 sub_802B7D0: push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8004914 ldr r5, _0802B818 ldr r0, [r5] adds r0, 0x74 movs r1, 0 movs r2, 0 bl sub_800641C bl sub_802B9A8 adds r1, r0, 0 ldr r0, [r5] adds r2, r0, 0 adds r2, 0x5A strh r1, [r2] adds r0, 0x38 bl sub_8013984 bl sub_802B880 bl sub_802B8D4 cmp r4, 0 beq _0802B812 ldr r0, [r5] adds r0, 0x38 bl AddMenuCursorSprite _0802B812: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802B818: .4byte gUnknown_203B2CC thumb_func_end sub_802B7D0 thumb_func_start sub_802B81C sub_802B81C: push {r4,r5,lr} ldr r4, _0802B870 ldr r2, [r4] cmp r2, 0 beq _0802B86A ldr r1, _0802B874 adds r0, r2, 0 adds r0, 0x50 ldrh r0, [r0] strh r0, [r1] ldr r1, _0802B878 adds r0, r2, 0 adds r0, 0x56 ldrh r0, [r0] strh r0, [r1] ldr r0, [r2, 0x6C] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 adds r1, 0x74 ldr r0, _0802B87C ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} bl sub_8004914 ldr r0, [r4] adds r0, 0x74 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _0802B86A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802B870: .4byte gUnknown_203B2CC _0802B874: .4byte gUnknown_203B2D0 _0802B878: .4byte gUnknown_203B2D2 _0802B87C: .4byte gUnknown_80DFBD0 thumb_func_end sub_802B81C thumb_func_start sub_802B880 sub_802B880: push {r4,lr} ldr r4, _0802B8D0 ldr r0, [r4] adds r0, 0x52 movs r1, 0 ldrsh r0, [r0, r1] movs r1, 0xC bl sub_80095E4 adds r0, 0x2 lsls r0, 16 ldr r2, [r4] ldr r3, [r2, 0x6C] lsls r1, r3, 1 adds r1, r3 lsls r1, 3 adds r1, r2, r1 adds r1, 0x82 asrs r3, r0, 16 lsrs r0, 16 strh r0, [r1] ldr r1, [r2, 0x6C] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r2, r0 adds r3, 0x2 adds r2, 0x84 strh r3, [r2] bl sub_8004914 ldr r0, [r4] adds r0, 0x74 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4} pop {r0} bx r0 .align 2, 0 _0802B8D0: .4byte gUnknown_203B2CC thumb_func_end sub_802B880 thumb_func_start sub_802B8D4 sub_802B8D4: push {r4-r7,lr} sub sp, 0x8 ldr r4, _0802B99C ldr r0, [r4] ldr r0, [r0, 0x6C] bl sub_8008C54 ldr r0, [r4] ldr r0, [r0, 0x6C] bl sub_80073B8 ldr r2, _0802B9A0 ldr r0, [r4] ldr r3, [r0, 0x6C] movs r0, 0 str r0, [sp] movs r0, 0xA movs r1, 0 bl xxx_call_draw_string ldr r0, _0802B9A4 ldrb r0, [r0, 0x2] lsls r0, 3 adds r0, 0x4 ldr r3, [r4] adds r1, r3, 0 adds r1, 0x56 movs r5, 0 ldrsh r2, [r1, r5] adds r2, 0x1 movs r1, 0x7 str r1, [sp] ldr r1, [r3, 0x6C] str r1, [sp, 0x4] movs r1, 0 movs r3, 0x2 bl sub_8012BC4 movs r6, 0 ldr r0, [r4] adds r0, 0x52 movs r1, 0 ldrsh r0, [r0, r1] cmp r6, r0 bge _0802B98A adds r7, r4, 0 _0802B930: ldr r0, [r7] adds r0, 0x38 adds r1, r6, 0 bl sub_8013800 adds r5, r0, 0 ldr r1, [r7] adds r0, r1, 0 adds r0, 0x56 movs r3, 0 ldrsh r2, [r0, r3] subs r0, 0x2 movs r3, 0 ldrsh r0, [r0, r3] muls r0, r2 adds r0, r6 adds r0, r1, r0 ldrb r4, [r0] ldr r3, [r1, 0x6C] movs r0, 0xA adds r1, r5, 0 movs r2, 0x6 bl sub_803B6B0 bl sub_802BC7C adds r0, r4, 0 bl sub_803C190 adds r2, r0, 0 ldr r0, [r7] ldr r3, [r0, 0x6C] movs r0, 0 str r0, [sp] movs r0, 0x15 adds r1, r5, 0 bl sub_8014FF0 adds r6, 0x1 ldr r0, [r7] adds r0, 0x52 movs r5, 0 ldrsh r0, [r0, r5] cmp r6, r0 blt _0802B930 _0802B98A: ldr r0, _0802B99C ldr r0, [r0] ldr r0, [r0, 0x6C] bl sub_80073E0 add sp, 0x8 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802B99C: .4byte gUnknown_203B2CC _0802B9A0: .4byte gUnknown_80DFC04 _0802B9A4: .4byte gUnknown_80DFBE8 thumb_func_end sub_802B8D4 thumb_func_start sub_802B9A8 sub_802B9A8: push {r4,r5,lr} movs r5, 0 movs r4, 0 _0802B9AE: lsls r0, r4, 24 lsrs r0, 24 bl sub_8096E14 lsls r0, 24 cmp r0, 0 beq _0802B9C6 ldr r0, _0802B9D4 ldr r0, [r0] adds r0, r5 strb r4, [r0] adds r5, 0x1 _0802B9C6: adds r4, 0x1 cmp r4, 0x37 ble _0802B9AE adds r0, r5, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0802B9D4: .4byte gUnknown_203B2CC thumb_func_end sub_802B9A8 thumb_func_start sub_802B9D8 sub_802B9D8: push {r4,lr} movs r4, 0 _0802B9DC: lsls r0, r4, 24 lsrs r0, 24 bl sub_8096E14 lsls r0, 24 cmp r0, 0 beq _0802B9EE movs r0, 0 b _0802B9F6 _0802B9EE: adds r4, 0x1 cmp r4, 0x37 ble _0802B9DC movs r0, 0x1 _0802B9F6: pop {r4} pop {r1} bx r1 thumb_func_end sub_802B9D8 thumb_func_start sub_802B9FC sub_802B9FC: push {r4-r7,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r5, _0802BA80 movs r0, 0x94 movs r1, 0x8 bl MemoryAlloc str r0, [r5] movs r6, 0 strb r4, [r0, 0x4] ldr r0, [r5] adds r0, 0x88 bl sub_801317C ldr r1, [r5] str r6, [r1, 0x24] adds r1, 0x28 ldr r0, _0802BA84 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldr r1, [r5] ldr r2, _0802BA88 adds r1, 0x40 adds r0, r2, 0 ldm r0!, {r3,r4,r7} stm r1!, {r3,r4,r7} ldm r0!, {r3,r4,r7} stm r1!, {r3,r4,r7} ldr r1, [r5] adds r1, 0x58 adds r0, r2, 0 ldm r0!, {r3,r4,r7} stm r1!, {r3,r4,r7} ldm r0!, {r3,r4,r7} stm r1!, {r3,r4,r7} ldr r0, [r5] adds r0, 0x70 ldm r2!, {r1,r4,r7} stm r0!, {r1,r4,r7} ldm r2!, {r3,r4,r7} stm r0!, {r3,r4,r7} bl sub_8004914 ldr r0, [r5] adds r0, 0x28 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r5] str r6, [r0, 0x8] bl sub_802BCC4 bl sub_802BC7C movs r0, 0 bl sub_802BB14 movs r0, 0x1 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0802BA80: .4byte gUnknown_203B2D4 _0802BA84: .4byte gUnknown_80DFC34 _0802BA88: .4byte gUnknown_80DFC18 thumb_func_end sub_802B9FC thumb_func_start sub_802BA8C sub_802BA8C: push {lr} ldr r0, _0802BAA4 ldr r0, [r0] ldr r0, [r0] cmp r0, 0x1 beq _0802BAB8 cmp r0, 0x1 bgt _0802BAA8 cmp r0, 0 beq _0802BAB2 b _0802BAC2 .align 2, 0 _0802BAA4: .4byte gUnknown_203B2D4 _0802BAA8: cmp r0, 0x2 beq _0802BAC2 cmp r0, 0x3 beq _0802BABE b _0802BAC2 _0802BAB2: bl sub_802BB98 b _0802BAC6 _0802BAB8: bl sub_802BC08 b _0802BAC6 _0802BABE: movs r0, 0x3 b _0802BAC8 _0802BAC2: movs r0, 0x2 b _0802BAC8 _0802BAC6: movs r0, 0 _0802BAC8: pop {r1} bx r1 thumb_func_end sub_802BA8C thumb_func_start sub_802BACC sub_802BACC: push {r4,r5,lr} ldr r4, _0802BB0C ldr r2, [r4] cmp r2, 0 beq _0802BB06 ldr r0, [r2, 0x24] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 adds r1, 0x28 ldr r0, _0802BB10 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} bl sub_8004914 ldr r0, [r4] adds r0, 0x28 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _0802BB06: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802BB0C: .4byte gUnknown_203B2D4 _0802BB10: .4byte gUnknown_80DFC18 thumb_func_end sub_802BACC thumb_func_start sub_802BB14 sub_802BB14: push {lr} ldr r1, _0802BB24 ldr r1, [r1] str r0, [r1] bl sub_802BB28 pop {r0} bx r0 .align 2, 0 _0802BB24: .4byte gUnknown_203B2D4 thumb_func_end sub_802BB14 thumb_func_start sub_802BB28 sub_802BB28: push {r4,r5,lr} sub sp, 0x4 ldr r5, _0802BB94 ldr r1, [r5] ldr r0, [r1] cmp r0, 0 blt _0802BB8C cmp r0, 0x1 bgt _0802BB8C ldr r0, [r1, 0x24] bl sub_8008C54 ldr r0, [r5] ldr r0, [r0, 0x24] bl sub_80073B8 ldr r0, [r5] ldrb r0, [r0, 0x4] bl sub_803C190 adds r2, r0, 0 ldr r0, [r5] ldr r3, [r0, 0x24] movs r4, 0 str r4, [sp] movs r0, 0xA movs r1, 0 bl sub_8014FF0 ldr r3, [r5] ldr r1, [r3, 0x8] lsls r1, 2 adds r0, r3, 0 adds r0, 0x10 adds r0, r1 ldr r2, [r0] ldr r3, [r3, 0x24] str r4, [sp] movs r0, 0x6 movs r1, 0x14 bl sub_8014FF0 ldr r0, [r5] ldr r0, [r0, 0x24] bl sub_80073E0 ldr r1, [r5] ldr r0, [r1, 0x8] adds r0, 0x1 str r0, [r1, 0x8] _0802BB8C: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802BB94: .4byte gUnknown_203B2D4 thumb_func_end sub_802BB28 thumb_func_start sub_802BB98 sub_802BB98: push {r4,lr} ldr r0, _0802BBD4 ldr r2, [r0] ldr r1, [r2, 0xC] adds r4, r0, 0 cmp r1, 0 beq _0802BBBC ldr r0, [r2, 0x20] movs r1, 0x8 ands r0, r1 cmp r0, 0 beq _0802BBB4 bl sub_8013E54 _0802BBB4: ldr r1, [r4] ldr r0, [r1, 0x20] adds r0, 0x1 str r0, [r1, 0x20] _0802BBBC: ldr r1, [r4] adds r0, r1, 0 adds r0, 0x88 ldr r1, [r1, 0x24] bl sub_8012A64 cmp r0, 0x1 beq _0802BBD8 cmp r0, 0x2 beq _0802BBF6 b _0802BC02 .align 2, 0 _0802BBD4: .4byte gUnknown_203B2D4 _0802BBD8: movs r0, 0 bl sub_80119D4 ldr r0, [r4] ldr r0, [r0, 0xC] cmp r0, 0 beq _0802BBEE movs r0, 0x1 bl sub_802BB14 b _0802BC02 _0802BBEE: movs r0, 0x3 bl sub_802BB14 b _0802BC02 _0802BBF6: movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 bl sub_802BB14 _0802BC02: pop {r4} pop {r0} bx r0 thumb_func_end sub_802BB98 thumb_func_start sub_802BC08 sub_802BC08: push {r4,lr} ldr r0, _0802BC44 ldr r3, [r0] ldr r2, [r3, 0x8] ldr r1, [r3, 0xC] adds r4, r0, 0 cmp r2, r1 bge _0802BC2E ldr r0, [r3, 0x20] movs r1, 0x8 ands r0, r1 cmp r0, 0 beq _0802BC26 bl sub_8013E54 _0802BC26: ldr r1, [r4] ldr r0, [r1, 0x20] adds r0, 0x1 str r0, [r1, 0x20] _0802BC2E: ldr r1, [r4] adds r0, r1, 0 adds r0, 0x88 ldr r1, [r1, 0x24] bl sub_8012A64 cmp r0, 0x1 beq _0802BC48 cmp r0, 0x2 beq _0802BC68 b _0802BC74 .align 2, 0 _0802BC44: .4byte gUnknown_203B2D4 _0802BC48: movs r0, 0 bl sub_80119D4 ldr r0, [r4] ldr r1, [r0, 0x8] ldr r0, [r0, 0xC] cmp r1, r0 bge _0802BC60 movs r0, 0x1 bl sub_802BB14 b _0802BC74 _0802BC60: movs r0, 0x3 bl sub_802BB14 b _0802BC74 _0802BC68: movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 bl sub_802BB14 _0802BC74: pop {r4} pop {r0} bx r0 thumb_func_end sub_802BC08 thumb_func_start sub_802BC7C sub_802BC7C: push {r4,lr} ldr r4, _0802BCA4 bl sub_808D3BC adds r1, r0, 0 adds r0, r4, 0 bl sub_808DA34 ldr r0, _0802BCA8 ldr r0, [r0] ldrb r0, [r0, 0xB] cmp r0, 0x1 bne _0802BCB0 adds r0, r4, 0 adds r0, 0x50 ldr r1, _0802BCAC bl strcpy b _0802BCBA .align 2, 0 _0802BCA4: .4byte gUnknown_202DF98 _0802BCA8: .4byte gUnknown_203B46C _0802BCAC: .4byte gUnknown_80DFC4C _0802BCB0: adds r0, r4, 0 adds r0, 0x50 ldr r1, _0802BCC0 bl strcpy _0802BCBA: pop {r4} pop {r0} bx r0 .align 2, 0 _0802BCC0: .4byte gUnknown_80DFC50 thumb_func_end sub_802BC7C thumb_func_start sub_802BCC4 sub_802BCC4: push {r4,lr} ldr r4, _0802BCDC ldr r0, [r4] ldrb r0, [r0, 0x4] bl sub_803C1A0 adds r3, r0, 0 ldr r1, [r4] movs r0, 0 str r0, [r1, 0xC] str r3, [r1, 0x10] b _0802BD08 .align 2, 0 _0802BCDC: .4byte gUnknown_203B2D4 _0802BCE0: cmp r0, 0x23 bne _0802BD06 ldrb r2, [r3, 0x1] cmp r2, 0x50 beq _0802BCF0 adds r1, r3, 0x2 cmp r2, 0x70 bne _0802BD02 _0802BCF0: ldr r0, [r4] ldr r1, [r0, 0xC] adds r1, 0x1 str r1, [r0, 0xC] lsls r1, 2 adds r0, 0x10 adds r0, r1 adds r1, r3, 0x2 str r1, [r0] _0802BD02: adds r3, r1, 0 b _0802BD08 _0802BD06: adds r3, 0x1 _0802BD08: ldrb r0, [r3] cmp r0, 0 bne _0802BCE0 pop {r4} pop {r0} bx r0 thumb_func_end sub_802BCC4 thumb_func_start sub_802BD14 sub_802BD14: push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 adds r4, r1, 0 mov r8, r2 bl sub_802C0E8 lsls r0, 24 cmp r0, 0 beq _0802BD2E movs r0, 0 b _0802BDD4 _0802BD2E: ldr r5, _0802BDE0 ldr r0, [r5] cmp r0, 0 bne _0802BD40 movs r0, 0xA4 movs r1, 0x8 bl MemoryAlloc str r0, [r5] _0802BD40: ldr r0, [r5] str r6, [r0, 0x38] lsls r1, r6, 1 adds r1, r6 lsls r1, 3 adds r1, 0x40 adds r1, r0, r1 str r1, [r0, 0x3C] adds r0, 0x40 bl sub_8006518 ldr r1, [r5] ldr r2, [r1, 0x38] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, 0x40 ldr r0, _0802BDE4 ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldr r2, [r5] ldr r1, [r2, 0x3C] adds r0, r2, 0 adds r0, 0xA0 str r0, [r1, 0x14] cmp r4, 0 beq _0802BD8E ldr r1, [r2, 0x38] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r1, r2, 0 adds r1, 0x48 adds r1, r0 ldr r0, [r4] str r0, [r1] _0802BD8E: ldr r0, [r5] ldr r0, [r0, 0x3C] mov r1, r8 bl sub_8012D34 bl sub_8004914 ldr r0, [r5] adds r0, 0x40 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, [r5] adds r4, 0x4 bl sub_802C0B8 adds r1, r0, 0 adds r0, r4, 0 mov r2, r8 adds r3, r6, 0 bl sub_8013848 ldr r0, [r5] ldr r1, _0802BDE8 ldrh r1, [r1] strh r1, [r0, 0x1C] adds r0, 0x4 bl sub_8013984 bl sub_802BF30 bl sub_802BFA0 movs r0, 0x1 _0802BDD4: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0802BDE0: .4byte gUnknown_203B2D8 _0802BDE4: .4byte gUnknown_80DFC74 _0802BDE8: .4byte gUnknown_203B2DC thumb_func_end sub_802BD14 thumb_func_start sub_802BDEC sub_802BDEC: push {lr} lsls r0, 24 cmp r0, 0 bne _0802BE08 ldr r0, _0802BE04 ldr r0, [r0] adds r0, 0x4 bl sub_8013660 movs r0, 0 b _0802BE6E .align 2, 0 _0802BE04: .4byte gUnknown_203B2D8 _0802BE08: ldr r0, _0802BE20 ldr r0, [r0] adds r0, 0x4 bl GetKeyPress cmp r0, 0x2 beq _0802BE2A cmp r0, 0x2 bgt _0802BE24 cmp r0, 0x1 beq _0802BE34 b _0802BE48 .align 2, 0 _0802BE20: .4byte gUnknown_203B2D8 _0802BE24: cmp r0, 0x4 beq _0802BE3E b _0802BE48 _0802BE2A: movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 b _0802BE6E _0802BE34: movs r0, 0 bl sub_80119D4 movs r0, 0x3 b _0802BE6E _0802BE3E: movs r0, 0x4 bl sub_80119D4 movs r0, 0x4 b _0802BE6E _0802BE48: ldr r0, _0802BE60 ldr r0, [r0] adds r0, 0x4 movs r1, 0x1 bl sub_80138B8 lsls r0, 24 cmp r0, 0 bne _0802BE64 movs r0, 0 b _0802BE6E .align 2, 0 _0802BE60: .4byte gUnknown_203B2D8 _0802BE64: bl sub_802BF30 bl sub_802BFA0 movs r0, 0x1 _0802BE6E: pop {r1} bx r1 thumb_func_end sub_802BDEC thumb_func_start sub_802BE74 sub_802BE74: ldr r0, _0802BE90 ldr r1, [r0] movs r0, 0x22 ldrsh r2, [r1, r0] movs r3, 0x20 ldrsh r0, [r1, r3] muls r0, r2 movs r3, 0x1C ldrsh r2, [r1, r3] adds r0, r2 adds r1, r0 ldrb r0, [r1] bx lr .align 2, 0 _0802BE90: .4byte gUnknown_203B2D8 thumb_func_end sub_802BE74 thumb_func_start sub_802BE94 sub_802BE94: push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8004914 ldr r5, _0802BED8 ldr r0, [r5] adds r0, 0x40 movs r1, 0 movs r2, 0 bl sub_800641C bl sub_802C0B8 adds r1, r0, 0 ldr r0, [r5] strh r1, [r0, 0x26] adds r0, 0x4 bl sub_8013984 bl sub_802BF30 bl sub_802BFA0 cmp r4, 0 beq _0802BED2 ldr r0, [r5] adds r0, 0x4 bl AddMenuCursorSprite _0802BED2: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802BED8: .4byte gUnknown_203B2D8 thumb_func_end sub_802BE94 thumb_func_start sub_802BEDC sub_802BEDC: push {r4,r5,lr} ldr r4, _0802BF24 ldr r2, [r4] cmp r2, 0 beq _0802BF1C ldr r1, _0802BF28 ldrh r0, [r2, 0x1C] strh r0, [r1] ldr r0, [r2, 0x38] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 adds r1, 0x40 ldr r0, _0802BF2C ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} bl sub_8004914 ldr r0, [r4] adds r0, 0x40 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _0802BF1C: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802BF24: .4byte gUnknown_203B2D8 _0802BF28: .4byte gUnknown_203B2DC _0802BF2C: .4byte gUnknown_80DFC5C thumb_func_end sub_802BEDC thumb_func_start sub_802BF30 sub_802BF30: push {r4,lr} ldr r4, _0802BF9C ldr r0, [r4] adds r0, 0xA0 movs r2, 0 movs r1, 0x1 strb r1, [r0] ldr r0, [r4] adds r0, 0xA1 strb r2, [r0] ldr r0, [r4] adds r0, 0xA2 movs r1, 0xC strb r1, [r0] ldr r0, [r4] adds r0, 0xA3 strb r2, [r0] ldr r0, [r4] movs r1, 0x1E ldrsh r0, [r0, r1] movs r1, 0x18 bl sub_8009614 adds r0, 0x2 lsls r0, 16 ldr r2, [r4] ldr r3, [r2, 0x38] lsls r1, r3, 1 adds r1, r3 lsls r1, 3 adds r1, r2, r1 adds r1, 0x4E asrs r3, r0, 16 lsrs r0, 16 strh r0, [r1] ldr r1, [r2, 0x38] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r2, r0 adds r3, 0x2 adds r2, 0x50 strh r3, [r2] bl sub_8004914 ldr r0, [r4] adds r0, 0x40 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4} pop {r0} bx r0 .align 2, 0 _0802BF9C: .4byte gUnknown_203B2D8 thumb_func_end sub_802BF30 thumb_func_start sub_802BFA0 sub_802BFA0: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0xDC ldr r4, _0802C060 ldr r0, [r4] ldr r0, [r0, 0x38] bl sub_8008C54 ldr r0, [r4] ldr r0, [r0, 0x38] bl sub_80073B8 ldr r1, [r4] movs r2, 0x22 ldrsh r0, [r1, r2] lsls r0, 3 adds r0, 0xA ldr r2, _0802C064 ldr r3, [r1, 0x38] movs r1, 0 str r1, [sp] bl xxx_call_draw_string movs r6, 0 ldr r0, [r4] movs r3, 0x1E ldrsh r0, [r0, r3] cmp r6, r0 bge _0802C09A adds r7, r4, 0 ldr r0, _0802C068 mov r9, r0 add r1, sp, 0x5C mov r8, r1 _0802BFE8: ldr r1, [r7] movs r3, 0x22 ldrsh r2, [r1, r3] movs r3, 0x20 ldrsh r0, [r1, r3] muls r0, r2 adds r0, r6 adds r1, r0 ldrb r0, [r1] bl sub_8095FE8 adds r5, r0, 0 ldr r0, [r7] ldr r1, [r0, 0x38] str r1, [sp, 0x4] adds r0, 0x4 adds r1, r6, 0 bl sub_8013800 str r0, [sp, 0x4C] ldrb r0, [r5] cmp r0, 0x1 bne _0802C06C ldr r0, [r7] adds r0, 0x4 adds r1, r6, 0 bl sub_8013800 adds r4, r0, 0 ldr r0, [r7] ldr r3, [r0, 0x38] movs r0, 0xA adds r1, r4, 0 movs r2, 0x6 bl sub_803B6B0 bl sub_808D33C adds r1, r0, 0 mov r0, r9 bl sub_808DA34 ldrb r0, [r5, 0x5] bl sub_803C190 adds r1, r0, 0 mov r0, r8 mov r2, r9 bl sub_800D158 ldr r0, [r7] ldr r3, [r0, 0x38] movs r0, 0 str r0, [sp] movs r0, 0x15 adds r1, r4, 0 mov r2, r8 bl xxx_call_draw_string b _0802C08E .align 2, 0 _0802C060: .4byte gUnknown_203B2D8 _0802C064: .4byte gUnknown_80DFC8C _0802C068: .4byte gUnknown_202DF98 _0802C06C: adds r0, r5, 0 add r1, sp, 0x4 bl sub_803B35C adds r0, r5, 0 bl sub_80968B0 lsls r0, 24 cmp r0, 0 beq _0802C088 mov r1, sp adds r1, 0x47 movs r0, 0x2 strb r0, [r1] _0802C088: add r0, sp, 0x4 bl sub_803B6D4 _0802C08E: adds r6, 0x1 ldr r0, [r7] movs r1, 0x1E ldrsh r0, [r0, r1] cmp r6, r0 blt _0802BFE8 _0802C09A: ldr r0, _0802C0B4 ldr r0, [r0] ldr r0, [r0, 0x38] bl sub_80073E0 add sp, 0xDC pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802C0B4: .4byte gUnknown_203B2D8 thumb_func_end sub_802BFA0 thumb_func_start sub_802C0B8 sub_802C0B8: push {r4,r5,lr} movs r5, 0 movs r4, 0 _0802C0BE: lsls r0, r4, 24 lsrs r0, 24 bl sub_8096000 lsls r0, 24 cmp r0, 0 bne _0802C0D6 ldr r0, _0802C0E4 ldr r0, [r0] adds r0, r5 strb r4, [r0] adds r5, 0x1 _0802C0D6: adds r4, 0x1 cmp r4, 0x3 ble _0802C0BE adds r0, r5, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0802C0E4: .4byte gUnknown_203B2D8 thumb_func_end sub_802C0B8 thumb_func_start sub_802C0E8 sub_802C0E8: push {r4,lr} movs r4, 0 _0802C0EC: lsls r0, r4, 24 lsrs r0, 24 bl sub_8096000 lsls r0, 24 cmp r0, 0 bne _0802C0FE movs r0, 0 b _0802C106 _0802C0FE: adds r4, 0x1 cmp r4, 0x3 ble _0802C0EC movs r0, 0x1 _0802C106: pop {r4} pop {r1} bx r1 thumb_func_end sub_802C0E8 thumb_func_start sub_802C10C sub_802C10C: push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 adds r4, r1, 0 mov r8, r2 bl sub_802C4A4 lsls r0, 24 cmp r0, 0 beq _0802C126 movs r0, 0 b _0802C1CC _0802C126: ldr r5, _0802C1D8 ldr r0, [r5] cmp r0, 0 bne _0802C138 movs r0, 0xA8 movs r1, 0x8 bl MemoryAlloc str r0, [r5] _0802C138: ldr r0, [r5] str r6, [r0, 0x3C] lsls r1, r6, 1 adds r1, r6 lsls r1, 3 adds r1, 0x44 adds r1, r0, r1 str r1, [r0, 0x40] adds r0, 0x44 bl sub_8006518 ldr r1, [r5] ldr r2, [r1, 0x3C] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, 0x44 ldr r0, _0802C1DC ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldr r2, [r5] ldr r1, [r2, 0x40] adds r0, r2, 0 adds r0, 0xA4 str r0, [r1, 0x14] cmp r4, 0 beq _0802C186 ldr r1, [r2, 0x3C] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r1, r2, 0 adds r1, 0x4C adds r1, r0 ldr r0, [r4] str r0, [r1] _0802C186: ldr r0, [r5] ldr r0, [r0, 0x40] mov r1, r8 bl sub_8012D34 bl sub_8004914 ldr r0, [r5] adds r0, 0x44 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, [r5] adds r4, 0x8 bl sub_802C474 adds r1, r0, 0 adds r0, r4, 0 mov r2, r8 adds r3, r6, 0 bl sub_8013848 ldr r0, [r5] ldr r1, _0802C1E0 ldrh r1, [r1] strh r1, [r0, 0x20] adds r0, 0x8 bl sub_8013984 bl sub_802C328 bl sub_802C39C movs r0, 0x1 _0802C1CC: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0802C1D8: .4byte gUnknown_203B2E0 _0802C1DC: .4byte gUnknown_80DFCB4 _0802C1E0: .4byte gUnknown_203B2E4 thumb_func_end sub_802C10C thumb_func_start sub_802C1E4 sub_802C1E4: push {lr} lsls r0, 24 cmp r0, 0 bne _0802C200 ldr r0, _0802C1FC ldr r0, [r0] adds r0, 0x8 bl sub_8013660 movs r0, 0 b _0802C266 .align 2, 0 _0802C1FC: .4byte gUnknown_203B2E0 _0802C200: ldr r0, _0802C218 ldr r0, [r0] adds r0, 0x8 bl GetKeyPress cmp r0, 0x2 beq _0802C222 cmp r0, 0x2 bgt _0802C21C cmp r0, 0x1 beq _0802C22C b _0802C240 .align 2, 0 _0802C218: .4byte gUnknown_203B2E0 _0802C21C: cmp r0, 0x4 beq _0802C236 b _0802C240 _0802C222: movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 b _0802C266 _0802C22C: movs r0, 0 bl sub_80119D4 movs r0, 0x3 b _0802C266 _0802C236: movs r0, 0x4 bl sub_80119D4 movs r0, 0x4 b _0802C266 _0802C240: ldr r0, _0802C258 ldr r0, [r0] adds r0, 0x8 movs r1, 0x1 bl sub_80138B8 lsls r0, 24 cmp r0, 0 bne _0802C25C movs r0, 0 b _0802C266 .align 2, 0 _0802C258: .4byte gUnknown_203B2E0 _0802C25C: bl sub_802C328 bl sub_802C39C movs r0, 0x1 _0802C266: pop {r1} bx r1 thumb_func_end sub_802C1E4 thumb_func_start sub_802C26C sub_802C26C: ldr r0, _0802C288 ldr r1, [r0] movs r0, 0x26 ldrsh r2, [r1, r0] movs r3, 0x24 ldrsh r0, [r1, r3] muls r0, r2 movs r3, 0x20 ldrsh r2, [r1, r3] adds r0, r2 adds r1, r0 ldrb r0, [r1] bx lr .align 2, 0 _0802C288: .4byte gUnknown_203B2E0 thumb_func_end sub_802C26C thumb_func_start sub_802C28C sub_802C28C: push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8004914 ldr r5, _0802C2D0 ldr r0, [r5] adds r0, 0x44 movs r1, 0 movs r2, 0 bl sub_800641C bl sub_802C474 adds r1, r0, 0 ldr r0, [r5] strh r1, [r0, 0x2A] adds r0, 0x8 bl sub_8013984 bl sub_802C328 bl sub_802C39C cmp r4, 0 beq _0802C2CA ldr r0, [r5] adds r0, 0x8 bl AddMenuCursorSprite _0802C2CA: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802C2D0: .4byte gUnknown_203B2E0 thumb_func_end sub_802C28C thumb_func_start sub_802C2D4 sub_802C2D4: push {r4,r5,lr} ldr r4, _0802C31C ldr r2, [r4] cmp r2, 0 beq _0802C314 ldr r1, _0802C320 ldrh r0, [r2, 0x20] strh r0, [r1] ldr r0, [r2, 0x3C] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 adds r1, 0x44 ldr r0, _0802C324 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} bl sub_8004914 ldr r0, [r4] adds r0, 0x44 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _0802C314: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802C31C: .4byte gUnknown_203B2E0 _0802C320: .4byte gUnknown_203B2E4 _0802C324: .4byte gUnknown_80DFC9C thumb_func_end sub_802C2D4 thumb_func_start sub_802C328 sub_802C328: push {r4,lr} ldr r4, _0802C398 ldr r0, [r4] ldrh r1, [r0, 0x28] adds r0, 0xA4 movs r2, 0 strb r1, [r0] ldr r0, [r4] ldrh r1, [r0, 0x26] adds r0, 0xA5 strb r1, [r0] ldr r0, [r4] adds r0, 0xA6 movs r1, 0xC strb r1, [r0] ldr r0, [r4] adds r0, 0xA7 strb r2, [r0] ldr r0, [r4] movs r1, 0x22 ldrsh r0, [r0, r1] movs r1, 0x18 bl sub_8009614 adds r0, 0x2 lsls r0, 16 ldr r2, [r4] ldr r3, [r2, 0x3C] lsls r1, r3, 1 adds r1, r3 lsls r1, 3 adds r1, r2, r1 adds r1, 0x52 asrs r3, r0, 16 lsrs r0, 16 strh r0, [r1] ldr r1, [r2, 0x3C] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r2, r0 adds r3, 0x2 adds r2, 0x54 strh r3, [r2] bl sub_8004914 ldr r0, [r4] adds r0, 0x44 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4} pop {r0} bx r0 .align 2, 0 _0802C398: .4byte gUnknown_203B2E0 thumb_func_end sub_802C328 thumb_func_start sub_802C39C sub_802C39C: push {r4-r7,lr} sub sp, 0x60 ldr r7, _0802C3F8 ldr r0, [r7] ldr r0, [r0, 0x3C] bl sub_8008C54 ldr r0, [r7] ldr r0, [r0, 0x3C] bl sub_80073B8 ldr r0, [r7] movs r1, 0x26 ldrsh r4, [r0, r1] lsls r4, 3 adds r5, r4, 0 adds r5, 0xA ldr r2, _0802C3FC ldr r3, [r0, 0x3C] movs r0, 0 str r0, [sp] adds r0, r5, 0 movs r1, 0 bl xxx_call_draw_string adds r4, 0x4 ldr r1, [r7] adds r0, r1, 0 adds r0, 0xA6 ldrb r0, [r0] lsls r0, 3 adds r5, r4, r0 movs r3, 0x26 ldrsh r2, [r1, r3] adds r2, 0x1 movs r0, 0x7 str r0, [sp] ldr r0, [r1, 0x3C] str r0, [sp, 0x4] adds r0, r5, 0 movs r1, 0 movs r3, 0x2 bl sub_8012BC4 movs r6, 0 b _0802C452 .align 2, 0 _0802C3F8: .4byte gUnknown_203B2E0 _0802C3FC: .4byte gUnknown_80DFCCC _0802C400: ldr r1, [r7] movs r3, 0x26 ldrsh r2, [r1, r3] movs r3, 0x24 ldrsh r0, [r1, r3] muls r0, r2 adds r0, r6 adds r1, r0 ldrb r5, [r1] adds r0, r5, 0 bl sub_8096574 adds r4, r0, 0 ldr r0, [r7] ldr r1, [r0, 0x3C] str r1, [sp, 0x8] adds r0, 0x8 adds r1, r6, 0 bl sub_8013800 str r0, [sp, 0x50] adds r0, r4, 0 add r1, sp, 0x8 bl sub_803B35C adds r0, r5, 0 bl sub_8096574 bl sub_80968B0 lsls r0, 24 cmp r0, 0 beq _0802C44A mov r1, sp adds r1, 0x4B movs r0, 0x2 strb r0, [r1] _0802C44A: add r0, sp, 0x8 bl sub_803B6D4 adds r6, 0x1 _0802C452: ldr r0, [r7] movs r1, 0x22 ldrsh r0, [r0, r1] cmp r6, r0 blt _0802C400 ldr r0, _0802C470 ldr r0, [r0] ldr r0, [r0, 0x3C] bl sub_80073E0 add sp, 0x60 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802C470: .4byte gUnknown_203B2E0 thumb_func_end sub_802C39C thumb_func_start sub_802C474 sub_802C474: push {r4,r5,lr} movs r5, 0 movs r4, 0 _0802C47A: lsls r0, r4, 24 lsrs r0, 24 bl sub_809658C lsls r0, 24 cmp r0, 0 bne _0802C492 ldr r0, _0802C4A0 ldr r0, [r0] adds r0, r5 strb r4, [r0] adds r5, 0x1 _0802C492: adds r4, 0x1 cmp r4, 0x7 ble _0802C47A adds r0, r5, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0802C4A0: .4byte gUnknown_203B2E0 thumb_func_end sub_802C474 thumb_func_start sub_802C4A4 sub_802C4A4: push {r4,lr} movs r4, 0 _0802C4A8: lsls r0, r4, 24 lsrs r0, 24 bl sub_809658C lsls r0, 24 cmp r0, 0 bne _0802C4BA movs r0, 0 b _0802C4C2 _0802C4BA: adds r4, 0x1 cmp r4, 0x7 ble _0802C4A8 movs r0, 0x1 _0802C4C2: pop {r4} pop {r1} bx r1 thumb_func_end sub_802C4A4 thumb_func_start sub_802C4C8 sub_802C4C8: push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 adds r4, r1, 0 mov r8, r2 bl sub_802C83C lsls r0, 24 cmp r0, 0 beq _0802C4E2 movs r0, 0 b _0802C580 _0802C4E2: ldr r5, _0802C58C movs r0, 0xA8 movs r1, 0x8 bl MemoryAlloc str r0, [r5] str r6, [r0, 0x3C] lsls r1, r6, 1 adds r1, r6 lsls r1, 3 adds r1, 0x44 adds r1, r0, r1 str r1, [r0, 0x40] adds r0, 0x44 bl sub_8006518 ldr r1, [r5] ldr r2, [r1, 0x3C] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, 0x44 ldr r0, _0802C590 ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldr r2, [r5] ldr r1, [r2, 0x40] adds r0, r2, 0 adds r0, 0xA4 str r0, [r1, 0x14] cmp r4, 0 beq _0802C53A ldr r1, [r2, 0x3C] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r1, r2, 0 adds r1, 0x4C adds r1, r0 ldr r0, [r4] str r0, [r1] _0802C53A: ldr r0, [r5] ldr r0, [r0, 0x40] mov r1, r8 bl sub_8012D34 bl sub_8004914 ldr r0, [r5] adds r0, 0x44 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, [r5] adds r4, 0x8 bl sub_802C80C adds r1, r0, 0 adds r0, r4, 0 mov r2, r8 adds r3, r6, 0 bl sub_8013848 ldr r0, [r5] ldr r1, _0802C594 ldrh r1, [r1] strh r1, [r0, 0x20] adds r0, 0x8 bl sub_8013984 bl sub_802C6DC bl sub_802C750 movs r0, 0x1 _0802C580: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0802C58C: .4byte gUnknown_203B2E8 _0802C590: .4byte gUnknown_80DFCFC _0802C594: .4byte gUnknown_203B2EC thumb_func_end sub_802C4C8 thumb_func_start sub_802C598 sub_802C598: push {lr} lsls r0, 24 cmp r0, 0 bne _0802C5B4 ldr r0, _0802C5B0 ldr r0, [r0] adds r0, 0x8 bl sub_8013660 movs r0, 0 b _0802C61A .align 2, 0 _0802C5B0: .4byte gUnknown_203B2E8 _0802C5B4: ldr r0, _0802C5CC ldr r0, [r0] adds r0, 0x8 bl GetKeyPress cmp r0, 0x2 beq _0802C5D6 cmp r0, 0x2 bgt _0802C5D0 cmp r0, 0x1 beq _0802C5E0 b _0802C5F4 .align 2, 0 _0802C5CC: .4byte gUnknown_203B2E8 _0802C5D0: cmp r0, 0x4 beq _0802C5EA b _0802C5F4 _0802C5D6: movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 b _0802C61A _0802C5E0: movs r0, 0 bl sub_80119D4 movs r0, 0x3 b _0802C61A _0802C5EA: movs r0, 0x4 bl sub_80119D4 movs r0, 0x4 b _0802C61A _0802C5F4: ldr r0, _0802C60C ldr r0, [r0] adds r0, 0x8 movs r1, 0x1 bl sub_80138B8 lsls r0, 24 cmp r0, 0 bne _0802C610 movs r0, 0 b _0802C61A .align 2, 0 _0802C60C: .4byte gUnknown_203B2E8 _0802C610: bl sub_802C6DC bl sub_802C750 movs r0, 0x1 _0802C61A: pop {r1} bx r1 thumb_func_end sub_802C598 thumb_func_start sub_802C620 sub_802C620: ldr r0, _0802C63C ldr r1, [r0] movs r0, 0x26 ldrsh r2, [r1, r0] movs r3, 0x24 ldrsh r0, [r1, r3] muls r0, r2 movs r3, 0x20 ldrsh r2, [r1, r3] adds r0, r2 adds r1, r0 ldrb r0, [r1] bx lr .align 2, 0 _0802C63C: .4byte gUnknown_203B2E8 thumb_func_end sub_802C620 thumb_func_start sub_802C640 sub_802C640: push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8004914 ldr r5, _0802C684 ldr r0, [r5] adds r0, 0x44 movs r1, 0 movs r2, 0 bl sub_800641C bl sub_802C80C adds r1, r0, 0 ldr r0, [r5] strh r1, [r0, 0x2A] adds r0, 0x8 bl sub_8013984 bl sub_802C6DC bl sub_802C750 cmp r4, 0 beq _0802C67E ldr r0, [r5] adds r0, 0x8 bl AddMenuCursorSprite _0802C67E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802C684: .4byte gUnknown_203B2E8 thumb_func_end sub_802C640 thumb_func_start sub_802C688 sub_802C688: push {r4,r5,lr} ldr r4, _0802C6D0 ldr r2, [r4] cmp r2, 0 beq _0802C6C8 ldr r1, _0802C6D4 ldrh r0, [r2, 0x20] strh r0, [r1] ldr r0, [r2, 0x3C] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 adds r1, 0x44 ldr r0, _0802C6D8 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} bl sub_8004914 ldr r0, [r4] adds r0, 0x44 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _0802C6C8: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802C6D0: .4byte gUnknown_203B2E8 _0802C6D4: .4byte gUnknown_203B2EC _0802C6D8: .4byte gUnknown_80DFCE4 thumb_func_end sub_802C688 thumb_func_start sub_802C6DC sub_802C6DC: push {r4,lr} ldr r4, _0802C74C ldr r0, [r4] ldrh r1, [r0, 0x28] adds r0, 0xA4 movs r2, 0 strb r1, [r0] ldr r0, [r4] ldrh r1, [r0, 0x26] adds r0, 0xA5 strb r1, [r0] ldr r0, [r4] adds r0, 0xA6 movs r1, 0xC strb r1, [r0] ldr r0, [r4] adds r0, 0xA7 strb r2, [r0] ldr r0, [r4] movs r1, 0x22 ldrsh r0, [r0, r1] movs r1, 0x18 bl sub_8009614 adds r0, 0x2 lsls r0, 16 ldr r2, [r4] ldr r3, [r2, 0x3C] lsls r1, r3, 1 adds r1, r3 lsls r1, 3 adds r1, r2, r1 adds r1, 0x52 asrs r3, r0, 16 lsrs r0, 16 strh r0, [r1] ldr r1, [r2, 0x3C] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r2, r0 adds r3, 0x2 adds r2, 0x54 strh r3, [r2] bl sub_8004914 ldr r0, [r4] adds r0, 0x44 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4} pop {r0} bx r0 .align 2, 0 _0802C74C: .4byte gUnknown_203B2E8 thumb_func_end sub_802C6DC thumb_func_start sub_802C750 sub_802C750: push {r4-r6,lr} sub sp, 0x60 ldr r6, _0802C7AC ldr r0, [r6] ldr r0, [r0, 0x3C] bl sub_8008C54 ldr r0, [r6] ldr r0, [r0, 0x3C] bl sub_80073B8 ldr r0, [r6] movs r1, 0x26 ldrsh r4, [r0, r1] lsls r4, 3 adds r5, r4, 0 adds r5, 0xA ldr r2, _0802C7B0 ldr r3, [r0, 0x3C] movs r0, 0 str r0, [sp] adds r0, r5, 0 movs r1, 0 bl xxx_call_draw_string adds r4, 0x4 ldr r1, [r6] adds r0, r1, 0 adds r0, 0xA6 ldrb r0, [r0] lsls r0, 3 adds r5, r4, r0 movs r3, 0x26 ldrsh r2, [r1, r3] adds r2, 0x1 movs r0, 0x7 str r0, [sp] ldr r0, [r1, 0x3C] str r0, [sp, 0x4] adds r0, r5, 0 movs r1, 0 movs r3, 0x2 bl sub_8012BC4 movs r5, 0 b _0802C7EC .align 2, 0 _0802C7AC: .4byte gUnknown_203B2E8 _0802C7B0: .4byte gUnknown_80DFD14 _0802C7B4: ldr r1, [r6] movs r3, 0x26 ldrsh r2, [r1, r3] movs r3, 0x24 ldrsh r0, [r1, r3] muls r0, r2 adds r0, r5 adds r1, r0 ldrb r0, [r1] bl sub_8096AB4 adds r4, r0, 0 ldr r0, [r6] ldr r1, [r0, 0x3C] str r1, [sp, 0x8] adds r0, 0x8 adds r1, r5, 0 bl sub_8013800 str r0, [sp, 0x50] adds r0, r4, 0 add r1, sp, 0x8 bl sub_803B35C add r0, sp, 0x8 bl sub_803B6D4 adds r5, 0x1 _0802C7EC: ldr r0, [r6] movs r1, 0x22 ldrsh r0, [r0, r1] cmp r5, r0 blt _0802C7B4 ldr r0, _0802C808 ldr r0, [r0] ldr r0, [r0, 0x3C] bl sub_80073E0 add sp, 0x60 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0802C808: .4byte gUnknown_203B2E8 thumb_func_end sub_802C750 thumb_func_start sub_802C80C sub_802C80C: push {r4,r5,lr} movs r5, 0 movs r4, 0 _0802C812: lsls r0, r4, 24 lsrs r0, 24 bl sub_8096ACC lsls r0, 24 cmp r0, 0 bne _0802C82A ldr r0, _0802C838 ldr r0, [r0] adds r0, r5 strb r4, [r0] adds r5, 0x1 _0802C82A: adds r4, 0x1 cmp r4, 0x7 ble _0802C812 adds r0, r5, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0802C838: .4byte gUnknown_203B2E8 thumb_func_end sub_802C80C thumb_func_start sub_802C83C sub_802C83C: push {r4,lr} movs r4, 0 _0802C840: lsls r0, r4, 24 lsrs r0, 24 bl sub_8096ACC lsls r0, 24 cmp r0, 0 bne _0802C852 movs r0, 0 b _0802C85A _0802C852: adds r4, 0x1 cmp r4, 0x7 ble _0802C840 movs r0, 0x1 _0802C85A: pop {r4} pop {r1} bx r1 thumb_func_end sub_802C83C thumb_func_start sub_802C860 sub_802C860: push {r4-r6,lr} adds r6, r0, 0 bl sub_802C83C lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _0802C890 ldr r4, _0802C88C movs r0, 0xFE lsls r0, 1 movs r1, 0x8 bl MemoryAlloc str r0, [r4] str r5, [r0, 0x68] str r6, [r0] movs r0, 0 bl sub_802C910 movs r0, 0x1 b _0802C892 .align 2, 0 _0802C88C: .4byte gUnknown_203B2F0 _0802C890: movs r0, 0 _0802C892: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_802C860 thumb_func_start sub_802C898 sub_802C898: push {lr} ldr r0, _0802C8B0 ldr r0, [r0] ldr r0, [r0, 0x4] cmp r0, 0x5 bhi _0802C8E8 lsls r0, 2 ldr r1, _0802C8B4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802C8B0: .4byte gUnknown_203B2F0 _0802C8B4: .4byte _0802C8B8 .align 2, 0 _0802C8B8: .4byte _0802C8D0 .4byte _0802C8D0 .4byte _0802C8D6 .4byte _0802C8DC .4byte _0802C8E2 .4byte _0802C8E8 _0802C8D0: bl sub_802CC00 b _0802C8EC _0802C8D6: bl sub_802CC70 b _0802C8EC _0802C8DC: bl sub_802CD38 b _0802C8EC _0802C8E2: bl sub_802CDB8 b _0802C8EC _0802C8E8: movs r0, 0x3 b _0802C8EE _0802C8EC: movs r0, 0 _0802C8EE: pop {r1} bx r1 thumb_func_end sub_802C898 thumb_func_start sub_802C8F4 sub_802C8F4: push {r4,lr} ldr r4, _0802C90C ldr r0, [r4] cmp r0, 0 beq _0802C906 bl MemoryFree movs r0, 0 str r0, [r4] _0802C906: pop {r4} pop {r0} bx r0 .align 2, 0 _0802C90C: .4byte gUnknown_203B2F0 thumb_func_end sub_802C8F4 thumb_func_start sub_802C910 sub_802C910: push {lr} ldr r1, _0802C924 ldr r1, [r1] str r0, [r1, 0x4] bl sub_802C928 bl sub_802C9D8 pop {r0} bx r0 .align 2, 0 _0802C924: .4byte gUnknown_203B2F0 thumb_func_end sub_802C910 thumb_func_start sub_802C928 sub_802C928: push {r4-r7,lr} ldr r4, _0802C94C ldr r0, [r4] movs r1, 0xCE lsls r1, 1 adds r0, r1 bl sub_8006518 ldr r1, [r4] ldr r0, [r1, 0x4] cmp r0, 0x2 beq _0802C954 cmp r0, 0x3 beq _0802C980 movs r2, 0 ldr r3, _0802C950 b _0802C998 .align 2, 0 _0802C94C: .4byte gUnknown_203B2F0 _0802C950: .4byte gUnknown_80DFD28 _0802C954: bl sub_802CAA4 ldr r2, [r4] movs r0, 0xE6 lsls r0, 1 adds r2, r0 ldr r1, _0802C97C ldm r1!, {r3,r5,r6} stm r2!, {r3,r5,r6} ldm r1!, {r3,r5,r7} stm r2!, {r3,r5,r7} ldr r1, [r4] adds r0, r1, r0 movs r6, 0x86 lsls r6, 1 adds r1, r6 bl sub_8012CAC b _0802C9B8 .align 2, 0 _0802C97C: .4byte gUnknown_80DFD40 _0802C980: movs r7, 0xF2 lsls r7, 1 adds r1, r7 ldr r0, _0802C994 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r5-r7} stm r1!, {r5-r7} b _0802C9B8 .align 2, 0 _0802C994: .4byte gUnknown_80DFD58 _0802C998: ldr r0, [r4] lsls r1, r2, 1 adds r1, r2 lsls r1, 3 adds r0, r1 movs r1, 0xCE lsls r1, 1 adds r0, r1 adds r1, r3, 0 ldm r1!, {r5-r7} stm r0!, {r5-r7} ldm r1!, {r5-r7} stm r0!, {r5-r7} adds r2, 0x1 cmp r2, 0x3 ble _0802C998 _0802C9B8: bl sub_8004914 ldr r0, _0802C9D4 ldr r0, [r0] movs r1, 0xCE lsls r1, 1 adds r0, r1 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802C9D4: .4byte gUnknown_203B2F0 thumb_func_end sub_802C928 thumb_func_start sub_802C9D8 sub_802C9D8: push {r4,lr} sub sp, 0x8 ldr r1, _0802C9F4 ldr r0, [r1] ldr r0, [r0, 0x4] adds r4, r1, 0 cmp r0, 0x5 bhi _0802CA9C lsls r0, 2 ldr r1, _0802C9F8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802C9F4: .4byte gUnknown_203B2F0 _0802C9F8: .4byte _0802C9FC .align 2, 0 _0802C9FC: .4byte _0802CA14 .4byte _0802CA20 .4byte _0802CA28 .4byte _0802CA48 .4byte _0802CA80 .4byte _0802CA9C _0802CA14: movs r0, 0 movs r1, 0 movs r2, 0x4 bl sub_802C4C8 b _0802CA9C _0802CA20: movs r0, 0x1 bl sub_802C640 b _0802CA9C _0802CA28: bl sub_802C750 ldr r0, _0802CA44 ldr r2, [r0] adds r0, r2, 0 adds r0, 0x6C movs r3, 0x86 lsls r3, 1 adds r1, r2, r3 ldr r2, [r2, 0x68] str r2, [sp] movs r2, 0x2 b _0802CA6E .align 2, 0 _0802CA44: .4byte gUnknown_203B2F0 _0802CA48: bl sub_802CBAC bl sub_802C750 ldr r4, _0802CA7C ldr r0, [r4] adds r0, 0x6C movs r1, 0 bl sub_8012EA4 ldr r1, [r4] adds r0, r1, 0 adds r0, 0xBC movs r2, 0xA6 lsls r2, 1 adds r1, r2 movs r2, 0x6 str r2, [sp] movs r2, 0x3 _0802CA6E: str r2, [sp, 0x4] movs r2, 0 movs r3, 0 bl sub_8012D60 b _0802CA9C .align 2, 0 _0802CA7C: .4byte gUnknown_203B2F0 _0802CA80: ldr r0, [r4] ldrb r0, [r0, 0xC] bl sub_8096AB4 ldr r1, [r4] adds r1, 0x10 bl sub_803B35C ldr r0, [r4] movs r1, 0x3 str r1, [r0, 0x10] adds r0, 0x10 bl sub_802DE84 _0802CA9C: add sp, 0x8 pop {r4} pop {r0} bx r0 thumb_func_end sub_802C9D8 thumb_func_start sub_802CAA4 sub_802CAA4: push {r4-r7,lr} movs r7, 0 ldr r5, _0802CAC8 ldr r0, [r5] ldrb r0, [r0, 0xC] bl sub_8096AB4 adds r4, r0, 0 ldr r2, [r5] ldr r0, [r2] cmp r0, 0 bne _0802CB26 ldrb r0, [r4] cmp r0, 0x5 beq _0802CACC cmp r0, 0x6 beq _0802CB10 b _0802CB26 .align 2, 0 _0802CAC8: .4byte gUnknown_203B2F0 _0802CACC: movs r0, 0x86 lsls r0, 1 adds r1, r2, r0 ldr r0, _0802CAFC str r0, [r1] adds r0, r4, 0 bl sub_809693C lsls r0, 24 cmp r0, 0 bne _0802CAEE ldrb r0, [r4, 0x4] bl sub_80A2824 lsls r0, 24 cmp r0, 0 bne _0802CB00 _0802CAEE: ldr r0, [r5] movs r1, 0x88 lsls r1, 1 adds r0, r1 movs r1, 0x1 negs r1, r1 b _0802CB0A .align 2, 0 _0802CAFC: .4byte gUnknown_80DFD70 _0802CB00: ldr r0, [r5] movs r1, 0x88 lsls r1, 1 adds r0, r1 movs r1, 0x2 _0802CB0A: str r1, [r0] adds r7, 0x1 b _0802CB26 _0802CB10: movs r0, 0x86 lsls r0, 1 adds r1, r2, r0 ldr r0, _0802CB9C str r0, [r1] movs r0, 0x88 lsls r0, 1 adds r1, r2, r0 movs r0, 0x3 str r0, [r1] movs r7, 0x1 _0802CB26: ldr r4, _0802CBA0 ldr r6, [r4] lsls r1, r7, 3 movs r0, 0x86 lsls r0, 1 adds r3, r6, r0 adds r2, r3, r1 ldr r0, _0802CBA4 ldr r0, [r0] str r0, [r2] movs r0, 0x88 lsls r0, 1 adds r5, r6, r0 adds r1, r5, r1 movs r0, 0x4 str r0, [r1] adds r7, 0x1 lsls r1, r7, 3 adds r2, r3, r1 ldr r0, _0802CBA8 ldr r0, [r0] str r0, [r2] adds r1, r5, r1 movs r0, 0x7 str r0, [r1] adds r7, 0x1 lsls r1, r7, 3 adds r3, r1 movs r0, 0 str r0, [r3] adds r1, r5, r1 movs r0, 0x1 str r0, [r1] movs r3, 0 mov r12, r4 cmp r3, r7 bge _0802CB8C adds r4, r6, 0 adds r1, r5, 0 movs r5, 0x1 negs r5, r5 _0802CB78: ldr r2, [r1] cmp r2, r5 beq _0802CB84 ldr r0, [r4, 0x68] cmp r2, r0 beq _0802CB94 _0802CB84: adds r1, 0x8 adds r3, 0x1 cmp r3, r7 blt _0802CB78 _0802CB8C: mov r0, r12 ldr r1, [r0] movs r0, 0x7 str r0, [r1, 0x68] _0802CB94: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802CB9C: .4byte gUnknown_80DFD7C _0802CBA0: .4byte gUnknown_203B2F0 _0802CBA4: .4byte gUnknown_80D494C _0802CBA8: .4byte gUnknown_80D4970 thumb_func_end sub_802CAA4 thumb_func_start sub_802CBAC sub_802CBAC: ldr r0, _0802CBF4 ldr r0, [r0] mov r12, r0 movs r3, 0 movs r1, 0xA6 lsls r1, 1 add r1, r12 ldr r0, _0802CBF8 ldr r0, [r0] str r0, [r1] movs r1, 0xA8 lsls r1, 1 add r1, r12 movs r0, 0x5 str r0, [r1] movs r2, 0x1 movs r1, 0xAA lsls r1, 1 add r1, r12 ldr r0, _0802CBFC ldr r0, [r0] str r0, [r1] movs r1, 0xAC lsls r1, 1 add r1, r12 movs r0, 0x6 str r0, [r1] movs r0, 0xAE lsls r0, 1 add r0, r12 str r3, [r0] movs r0, 0xB0 lsls r0, 1 add r0, r12 str r2, [r0] bx lr .align 2, 0 _0802CBF4: .4byte gUnknown_203B2F0 _0802CBF8: .4byte gUnknown_80D4920 _0802CBFC: .4byte gUnknown_80D4928 thumb_func_end sub_802CBAC thumb_func_start sub_802CC00 sub_802CC00: push {lr} movs r0, 0x1 bl sub_802C598 cmp r0, 0x4 bhi _0802CC6A lsls r0, 2 ldr r1, _0802CC18 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802CC18: .4byte _0802CC1C .align 2, 0 _0802CC1C: .4byte _0802CC6A .4byte _0802CC6A .4byte _0802CC60 .4byte _0802CC30 .4byte _0802CC48 _0802CC30: bl sub_802C620 ldr r1, _0802CC44 ldr r1, [r1] strb r0, [r1, 0xC] movs r0, 0x2 bl sub_802C910 b _0802CC6A .align 2, 0 _0802CC44: .4byte gUnknown_203B2F0 _0802CC48: bl sub_802C620 ldr r1, _0802CC5C ldr r1, [r1] strb r0, [r1, 0xC] movs r0, 0x4 bl sub_802C910 b _0802CC6A .align 2, 0 _0802CC5C: .4byte gUnknown_203B2F0 _0802CC60: bl sub_802C688 movs r0, 0x5 bl sub_802C910 _0802CC6A: pop {r0} bx r0 thumb_func_end sub_802CC00 thumb_func_start sub_802CC70 sub_802CC70: push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] bl sub_802C598 ldr r4, _0802CCB4 ldr r0, [r4] adds r0, 0x6C bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _0802CCA0 ldr r0, [r4] adds r0, 0x6C mov r1, sp bl sub_8013114 ldr r1, [sp] cmp r1, 0x1 beq _0802CCA0 ldr r0, [r4] str r1, [r0, 0x68] _0802CCA0: ldr r0, [sp] subs r0, 0x1 cmp r0, 0x6 bhi _0802CD2E lsls r0, 2 ldr r1, _0802CCB8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802CCB4: .4byte gUnknown_203B2F0 _0802CCB8: .4byte _0802CCBC .align 2, 0 _0802CCBC: .4byte _0802CD28 .4byte _0802CCD8 .4byte _0802CCF4 .4byte _0802CD18 .4byte _0802CD2E .4byte _0802CD2E .4byte _0802CD20 _0802CCD8: ldr r0, _0802CCEC bl sub_8011988 ldr r0, _0802CCF0 ldr r0, [r0] ldrb r0, [r0, 0xC] bl sub_8096AB4 movs r1, 0x6 b _0802CD06 .align 2, 0 _0802CCEC: .4byte 0x00000133 _0802CCF0: .4byte gUnknown_203B2F0 _0802CCF4: ldr r0, _0802CD10 bl sub_8011988 ldr r0, _0802CD14 ldr r0, [r0] ldrb r0, [r0, 0xC] bl sub_8096AB4 movs r1, 0x5 _0802CD06: strb r1, [r0] movs r0, 0x1 bl sub_802C910 b _0802CD2E .align 2, 0 _0802CD10: .4byte 0x00000133 _0802CD14: .4byte gUnknown_203B2F0 _0802CD18: movs r0, 0x3 bl sub_802C910 b _0802CD2E _0802CD20: movs r0, 0x4 bl sub_802C910 b _0802CD2E _0802CD28: movs r0, 0x1 bl sub_802C910 _0802CD2E: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_802CC70 thumb_func_start sub_802CD38 sub_802CD38: push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] bl sub_802C598 ldr r4, _0802CD78 ldr r0, [r4] adds r0, 0x6C bl sub_8012FD8 ldr r0, [r4] adds r0, 0xBC bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _0802CD66 ldr r0, [r4] adds r0, 0xBC mov r1, sp bl sub_8013114 _0802CD66: ldr r0, [sp] cmp r0, 0x5 beq _0802CD88 cmp r0, 0x5 bgt _0802CD7C cmp r0, 0x1 beq _0802CD80 b _0802CDB0 .align 2, 0 _0802CD78: .4byte gUnknown_203B2F0 _0802CD7C: cmp r0, 0x6 bne _0802CDB0 _0802CD80: movs r0, 0x1 bl sub_802C910 b _0802CDB0 _0802CD88: ldr r0, [r4] ldrb r0, [r0, 0xC] bl sub_8096C3C bl sub_8096C80 bl sub_802C83C lsls r0, 24 cmp r0, 0 beq _0802CDAA bl sub_802C688 movs r0, 0x5 bl sub_802C910 b _0802CDB0 _0802CDAA: movs r0, 0x1 bl sub_802C910 _0802CDB0: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_802CD38 thumb_func_start sub_802CDB8 sub_802CDB8: push {lr} bl sub_802DEE0 cmp r0, 0x1 bls _0802CDD0 cmp r0, 0x3 bhi _0802CDD0 bl sub_802DF24 movs r0, 0x1 bl sub_802C910 _0802CDD0: pop {r0} bx r0 thumb_func_end sub_802CDB8 thumb_func_start sub_802CDD4 sub_802CDD4: push {r4-r6,lr} adds r5, r0, 0 ldr r4, _0802CE54 ldr r0, [r4] cmp r0, 0 bne _0802CDEA movs r0, 0xA0 movs r1, 0x8 bl MemoryAlloc str r0, [r4] _0802CDEA: ldr r0, [r4] str r5, [r0, 0x34] lsls r1, r5, 1 adds r1, r5 lsls r1, 3 adds r1, 0x3C adds r1, r0, r1 str r1, [r0, 0x38] adds r0, 0x3C bl sub_8006518 ldr r1, [r4] ldr r2, [r1, 0x34] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, 0x3C ldr r0, _0802CE58 ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldr r1, [r4] ldr r0, [r1, 0x38] adds r1, 0x9C str r1, [r0, 0x14] movs r1, 0x4 bl sub_8012D34 bl sub_8004914 ldr r0, [r4] adds r0, 0x3C movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] movs r1, 0x5 movs r2, 0x4 adds r3, r5, 0 bl sub_8013848 bl sub_802CF5C bl sub_802CFD0 movs r0, 0x1 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0802CE54: .4byte gUnknown_203B2F4 _0802CE58: .4byte gUnknown_80DFDA4 thumb_func_end sub_802CDD4 thumb_func_start sub_802CE5C sub_802CE5C: push {r4,lr} lsls r0, 24 cmp r0, 0 bne _0802CE74 ldr r0, _0802CE70 ldr r0, [r0] bl sub_8013660 movs r0, 0 b _0802CEB4 .align 2, 0 _0802CE70: .4byte gUnknown_203B2F4 _0802CE74: ldr r4, _0802CE90 ldr r0, [r4] bl GetKeyPress cmp r0, 0x1 beq _0802CE94 cmp r0, 0x2 bne _0802CE98 movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 b _0802CEB4 .align 2, 0 _0802CE90: .4byte gUnknown_203B2F4 _0802CE94: movs r0, 0x3 b _0802CEB4 _0802CE98: ldr r0, [r4] movs r1, 0x1 bl sub_80138B8 lsls r0, 24 cmp r0, 0 bne _0802CEAA movs r0, 0 b _0802CEB4 _0802CEAA: bl sub_802CF5C bl sub_802CFD0 movs r0, 0x1 _0802CEB4: pop {r4} pop {r1} bx r1 thumb_func_end sub_802CE5C thumb_func_start sub_802CEBC sub_802CEBC: ldr r0, _0802CED4 ldr r1, [r0] movs r0, 0x1E ldrsh r2, [r1, r0] movs r3, 0x1C ldrsh r0, [r1, r3] muls r0, r2 ldrb r1, [r1, 0x18] adds r0, r1 lsls r0, 24 lsrs r0, 24 bx lr .align 2, 0 _0802CED4: .4byte gUnknown_203B2F4 thumb_func_end sub_802CEBC thumb_func_start sub_802CED8 sub_802CED8: push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8004914 ldr r5, _0802CF10 ldr r0, [r5] adds r0, 0x3C movs r1, 0 movs r2, 0 bl sub_800641C ldr r0, [r5] bl sub_8013984 bl sub_802CF5C bl sub_802CFD0 cmp r4, 0 beq _0802CF0A ldr r0, [r5] bl AddMenuCursorSprite _0802CF0A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802CF10: .4byte gUnknown_203B2F4 thumb_func_end sub_802CED8 thumb_func_start sub_802CF14 sub_802CF14: push {r4,r5,lr} ldr r4, _0802CF54 ldr r2, [r4] cmp r2, 0 beq _0802CF4E ldr r0, [r2, 0x34] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 adds r1, 0x3C ldr r0, _0802CF58 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} bl sub_8004914 ldr r0, [r4] adds r0, 0x3C movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _0802CF4E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802CF54: .4byte gUnknown_203B2F4 _0802CF58: .4byte gUnknown_80DFD8C thumb_func_end sub_802CF14 thumb_func_start sub_802CF5C sub_802CF5C: push {r4,lr} ldr r4, _0802CFCC ldr r0, [r4] ldrh r1, [r0, 0x20] adds r0, 0x9C movs r2, 0 strb r1, [r0] ldr r0, [r4] ldrh r1, [r0, 0x1E] adds r0, 0x9D strb r1, [r0] ldr r0, [r4] adds r0, 0x9E movs r1, 0xC strb r1, [r0] ldr r0, [r4] adds r0, 0x9F strb r2, [r0] ldr r0, [r4] movs r1, 0x1A ldrsh r0, [r0, r1] movs r1, 0x18 bl sub_8009614 adds r0, 0x2 lsls r0, 16 ldr r2, [r4] ldr r3, [r2, 0x34] lsls r1, r3, 1 adds r1, r3 lsls r1, 3 adds r1, r2, r1 adds r1, 0x4A asrs r3, r0, 16 lsrs r0, 16 strh r0, [r1] ldr r1, [r2, 0x34] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r2, r0 adds r3, 0x2 adds r2, 0x4C strh r3, [r2] bl sub_8004914 ldr r0, [r4] adds r0, 0x3C movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4} pop {r0} bx r0 .align 2, 0 _0802CFCC: .4byte gUnknown_203B2F4 thumb_func_end sub_802CF5C thumb_func_start sub_802CFD0 sub_802CFD0: push {r4-r6,lr} sub sp, 0x60 ldr r6, _0802D02C ldr r0, [r6] ldr r0, [r0, 0x34] bl sub_8008C54 ldr r0, [r6] ldr r0, [r0, 0x34] bl sub_80073B8 ldr r0, [r6] movs r1, 0x1E ldrsh r4, [r0, r1] lsls r4, 3 adds r5, r4, 0 adds r5, 0xA ldr r2, _0802D030 ldr r3, [r0, 0x34] movs r0, 0 str r0, [sp] adds r0, r5, 0 movs r1, 0 bl xxx_call_draw_string adds r4, 0x4 ldr r1, [r6] adds r0, r1, 0 adds r0, 0x9E ldrb r0, [r0] lsls r0, 3 adds r5, r4, r0 movs r0, 0x1E ldrsh r2, [r1, r0] adds r2, 0x1 movs r0, 0x7 str r0, [sp] ldr r0, [r1, 0x34] str r0, [sp, 0x4] adds r0, r5, 0 movs r1, 0 movs r3, 0x2 bl sub_8012BC4 movs r5, 0 b _0802D076 .align 2, 0 _0802D02C: .4byte gUnknown_203B2F4 _0802D030: .4byte gUnknown_80DFDBC _0802D034: ldr r0, [r6] movs r2, 0x1E ldrsh r1, [r0, r2] movs r2, 0x1C ldrsh r0, [r0, r2] muls r0, r1 adds r0, r5 lsls r0, 24 lsrs r0, 24 bl sub_803B344 adds r4, r0, 0 ldr r0, [r6] ldr r1, [r0, 0x34] str r1, [sp, 0x8] adds r1, r5, 0 bl sub_8013800 str r0, [sp, 0x50] adds r0, r4, 0 add r1, sp, 0x8 bl sub_803B35C mov r1, sp adds r1, 0x4B movs r0, 0x1 strb r0, [r1] ldr r0, [r4, 0x14] str r0, [sp, 0x54] add r0, sp, 0x8 bl sub_803B6D4 adds r5, 0x1 _0802D076: ldr r0, [r6] movs r1, 0x1A ldrsh r0, [r0, r1] cmp r5, r0 blt _0802D034 ldr r0, _0802D094 ldr r0, [r0] ldr r0, [r0, 0x34] bl sub_80073E0 add sp, 0x60 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0802D094: .4byte gUnknown_203B2F4 thumb_func_end sub_802CFD0 thumb_func_start sub_802D098 sub_802D098: push {r4-r6,lr} adds r4, r0, 0 ldr r6, _0802D0DC movs r0, 0x82 lsls r0, 2 movs r1, 0x8 bl MemoryAlloc str r0, [r6] movs r5, 0 str r5, [r0, 0x6C] str r5, [r0, 0x70] str r5, [r0, 0x74] str r4, [r0, 0xC] strb r5, [r0, 0x8] ldr r0, [r6] adds r0, 0xA bl sub_8099328 ldr r1, [r6] strb r0, [r1, 0x9] bl sub_8011C1C cmp r0, 0x2 beq _0802D0CE ldr r0, [r6] strb r5, [r0, 0x9] _0802D0CE: movs r0, 0 bl sub_802D1A0 movs r0, 0x1 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0802D0DC: .4byte gUnknown_203B2F8 thumb_func_end sub_802D098 thumb_func_start sub_802D0E0 sub_802D0E0: push {lr} ldr r0, _0802D0F8 ldr r0, [r0] ldr r0, [r0] cmp r0, 0x10 bhi _0802D16C lsls r0, 2 ldr r1, _0802D0FC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802D0F8: .4byte gUnknown_203B2F8 _0802D0FC: .4byte _0802D100 .align 2, 0 _0802D100: .4byte _0802D170 .4byte _0802D144 .4byte _0802D168 .4byte _0802D16C .4byte _0802D16C .4byte _0802D16C .4byte _0802D16C .4byte _0802D16C .4byte _0802D16C .4byte _0802D162 .4byte _0802D16C .4byte _0802D14A .4byte _0802D14A .4byte _0802D150 .4byte _0802D156 .4byte _0802D15C .4byte _0802D15C _0802D144: bl sub_802D7D0 b _0802D170 _0802D14A: bl sub_802D8CC b _0802D170 _0802D150: bl sub_802D940 b _0802D170 _0802D156: bl sub_802D9F0 b _0802D170 _0802D15C: bl sub_802DA60 b _0802D170 _0802D162: bl sub_802D82C b _0802D170 _0802D168: movs r0, 0x3 b _0802D172 _0802D16C: bl sub_802DA84 _0802D170: movs r0, 0 _0802D172: pop {r1} bx r1 thumb_func_end sub_802D0E0 thumb_func_start sub_802D178 sub_802D178: ldr r0, _0802D180 ldr r0, [r0] ldrb r0, [r0, 0x8] bx lr .align 2, 0 _0802D180: .4byte gUnknown_203B2F8 thumb_func_end sub_802D178 thumb_func_start sub_802D184 sub_802D184: push {r4,lr} ldr r4, _0802D19C ldr r0, [r4] cmp r0, 0 beq _0802D196 bl MemoryFree movs r0, 0 str r0, [r4] _0802D196: pop {r4} pop {r0} bx r0 .align 2, 0 _0802D19C: .4byte gUnknown_203B2F8 thumb_func_end sub_802D184 thumb_func_start sub_802D1A0 sub_802D1A0: push {lr} ldr r1, _0802D1B4 ldr r1, [r1] str r0, [r1] bl sub_802D1B8 bl sub_802D2A8 pop {r0} bx r0 .align 2, 0 _0802D1B4: .4byte gUnknown_203B2F8 thumb_func_end sub_802D1A0 thumb_func_start sub_802D1B8 sub_802D1B8: push {r4-r7,lr} mov r7, r8 push {r7} ldr r4, _0802D1E0 ldr r0, [r4] movs r1, 0xD4 lsls r1, 1 adds r0, r1 bl sub_8006518 ldr r0, [r4] ldr r0, [r0] cmp r0, 0xD beq _0802D1EA cmp r0, 0xD bgt _0802D1E4 cmp r0, 0x2 beq _0802D27E b _0802D254 .align 2, 0 _0802D1E0: .4byte gUnknown_203B2F8 _0802D1E4: cmp r0, 0xE beq _0802D21C b _0802D254 _0802D1EA: bl sub_802D5A4 ldr r2, [r4] movs r0, 0xEC lsls r0, 1 adds r2, r0 ldr r1, _0802D218 ldm r1!, {r3,r5,r6} stm r2!, {r3,r5,r6} ldm r1!, {r3,r5,r7} stm r2!, {r3,r5,r7} ldr r1, [r4] adds r0, r1, r0 movs r6, 0x8C lsls r6, 1 adds r1, r6 bl sub_8012CAC ldr r0, [r4] movs r7, 0xF2 lsls r7, 1 b _0802D246 .align 2, 0 _0802D218: .4byte gUnknown_80DFE04 _0802D21C: bl sub_802D63C ldr r2, [r4] movs r0, 0xF8 lsls r0, 1 adds r2, r0 ldr r1, _0802D250 ldm r1!, {r3,r5,r6} stm r2!, {r3,r5,r6} ldm r1!, {r3,r5,r7} stm r2!, {r3,r5,r7} ldr r1, [r4] adds r0, r1, r0 movs r6, 0xAC lsls r6, 1 adds r1, r6 bl sub_8012CAC ldr r0, [r4] movs r7, 0xFE lsls r7, 1 _0802D246: adds r0, r7 movs r1, 0x6 strh r1, [r0] b _0802D27E .align 2, 0 _0802D250: .4byte gUnknown_80DFE1C _0802D254: ldr r0, _0802D2A0 mov r12, r0 movs r1, 0xD4 lsls r1, 1 mov r8, r1 ldr r4, _0802D2A4 movs r3, 0 movs r2, 0x3 _0802D264: mov r5, r12 ldr r1, [r5] adds r1, r3 add r1, r8 adds r0, r4, 0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} adds r3, 0x18 subs r2, 0x1 cmp r2, 0 bge _0802D264 _0802D27E: bl sub_8004914 ldr r0, _0802D2A0 ldr r0, [r0] movs r6, 0xD4 lsls r6, 1 adds r0, r6 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802D2A0: .4byte gUnknown_203B2F8 _0802D2A4: .4byte gUnknown_80DFDD4 thumb_func_end sub_802D1B8 thumb_func_start sub_802D2A8 sub_802D2A8: push {r4,lr} sub sp, 0x14 ldr r1, _0802D2C4 ldr r0, [r1] ldr r0, [r0] adds r4, r1, 0 cmp r0, 0x10 bls _0802D2BA b _0802D59A _0802D2BA: lsls r0, 2 ldr r1, _0802D2C8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802D2C4: .4byte gUnknown_203B2F8 _0802D2C8: .4byte _0802D2CC .align 2, 0 _0802D2CC: .4byte _0802D310 .4byte _0802D398 .4byte _0802D59A .4byte _0802D3B4 .4byte _0802D3C4 .4byte _0802D3D4 .4byte _0802D3E4 .4byte _0802D3F4 .4byte _0802D404 .4byte _0802D498 .4byte _0802D4C8 .4byte _0802D4E4 .4byte _0802D4F0 .4byte _0802D4F8 .4byte _0802D524 .4byte _0802D558 .4byte _0802D576 _0802D310: ldr r0, [r4] ldr r0, [r0, 0xC] bl sub_80968B0 lsls r0, 24 cmp r0, 0 beq _0802D326 movs r0, 0x3 bl sub_802D1A0 b _0802D59A _0802D326: ldr r0, [r4] ldr r0, [r0, 0xC] bl sub_8096F50 lsls r0, 24 cmp r0, 0 beq _0802D33C movs r0, 0x4 bl sub_802D1A0 b _0802D59A _0802D33C: ldr r1, [r4] ldr r0, [r1, 0xC] ldrb r0, [r0, 0x2] cmp r0, 0x4 bne _0802D36E adds r0, r1, 0 adds r0, 0x10 bl sub_8096C08 lsls r0, 24 cmp r0, 0 beq _0802D36E bl sub_802DAA8 lsls r0, 24 cmp r0, 0 beq _0802D366 movs r0, 0x9 bl sub_802D1A0 b _0802D59A _0802D366: movs r0, 0x5 bl sub_802D1A0 b _0802D59A _0802D36E: bl sub_80969AC cmp r0, 0x7 ble _0802D390 bl sub_802DADC lsls r0, 24 cmp r0, 0 beq _0802D388 movs r0, 0xA bl sub_802D1A0 b _0802D59A _0802D388: movs r0, 0x6 bl sub_802D1A0 b _0802D59A _0802D390: movs r0, 0x8 bl sub_802D1A0 b _0802D59A _0802D398: bl sub_802D73C ldr r0, _0802D3AC ldr r1, _0802D3B0 ldr r3, [r1] ldr r2, [r3, 0x70] movs r1, 0xAC lsls r1, 1 adds r3, r1 b _0802D4AA .align 2, 0 _0802D3AC: .4byte gUnknown_80DFE4C _0802D3B0: .4byte gUnknown_203B2F8 _0802D3B4: ldr r1, [r4] movs r0, 0x2 str r0, [r1, 0x4] ldr r0, _0802D3C0 b _0802D4D0 .align 2, 0 _0802D3C0: .4byte gUnknown_80DFE9C _0802D3C4: ldr r1, [r4] movs r0, 0x2 str r0, [r1, 0x4] ldr r0, _0802D3D0 b _0802D4D0 .align 2, 0 _0802D3D0: .4byte gUnknown_80DFED0 _0802D3D4: ldr r1, [r4] movs r0, 0x2 str r0, [r1, 0x4] ldr r0, _0802D3E0 b _0802D4D0 .align 2, 0 _0802D3E0: .4byte gUnknown_80DFF2C _0802D3E4: ldr r1, [r4] movs r0, 0x2 str r0, [r1, 0x4] ldr r0, _0802D3F0 b _0802D4D0 .align 2, 0 _0802D3F0: .4byte gUnknown_80DFFA4 _0802D3F4: ldr r1, [r4] movs r0, 0xC str r0, [r1, 0x4] ldr r0, _0802D400 b _0802D4D0 .align 2, 0 _0802D400: .4byte gUnknown_80E0010 _0802D404: ldr r4, _0802D45C ldr r1, [r4] movs r0, 0x1 strb r0, [r1, 0x8] ldr r0, [r4] ldr r0, [r0, 0xC] bl sub_8096A78 bl sub_8096C80 bl sub_8096D24 ldr r0, [r4] ldr r0, [r0, 0xC] ldrb r0, [r0, 0x2] cmp r0, 0x4 bne _0802D446 bl sub_8096DD8 ldr r1, [r4] ldr r1, [r1, 0xC] ldr r1, [r1, 0x14] movs r2, 0x28 bl MemoryCopy8 bl sub_8096DE8 ldr r1, [r4] ldr r1, [r1, 0xC] ldr r1, [r1, 0x18] movs r2, 0x78 bl MemoryCopy8 _0802D446: ldr r0, [r4] ldr r0, [r0, 0xC] ldrb r0, [r0, 0x4] cmp r0, 0x2C beq _0802D46E cmp r0, 0x2C bgt _0802D460 cmp r0, 0x2B beq _0802D46A b _0802D484 .align 2, 0 _0802D45C: .4byte gUnknown_203B2F8 _0802D460: cmp r0, 0x2D beq _0802D472 cmp r0, 0x2E beq _0802D47C b _0802D484 _0802D46A: movs r0, 0x2A b _0802D474 _0802D46E: movs r0, 0x2B b _0802D474 _0802D472: movs r0, 0x2C _0802D474: movs r1, 0x1 bl sub_8097418 b _0802D484 _0802D47C: movs r0, 0x2D movs r1, 0x1 bl sub_8097418 _0802D484: ldr r0, _0802D490 ldr r1, [r0] movs r0, 0x2 str r0, [r1, 0x4] ldr r0, _0802D494 b _0802D4D0 .align 2, 0 _0802D490: .4byte gUnknown_203B2F8 _0802D494: .4byte gUnknown_80E0074 _0802D498: bl sub_802D690 ldr r0, _0802D4C0 ldr r1, _0802D4C4 ldr r3, [r1] ldr r2, [r3, 0x74] movs r4, 0xAC lsls r4, 1 adds r3, r4 _0802D4AA: movs r4, 0 str r4, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r4, [sp, 0x8] str r4, [sp, 0xC] str r4, [sp, 0x10] movs r1, 0 bl sub_8014248 b _0802D59A .align 2, 0 _0802D4C0: .4byte gUnknown_80E0094 _0802D4C4: .4byte gUnknown_203B2F8 _0802D4C8: ldr r1, [r4] movs r0, 0xB str r0, [r1, 0x4] ldr r0, _0802D4DC _0802D4D0: ldr r3, _0802D4E0 movs r1, 0 movs r2, 0 bl sub_80141B4 b _0802D59A .align 2, 0 _0802D4DC: .4byte gUnknown_80E0108 _0802D4E0: .4byte 0x00000101 _0802D4E4: movs r0, 0 movs r1, 0 movs r2, 0x4 bl sub_802C4C8 b _0802D59A _0802D4F0: movs r0, 0x1 bl sub_802C640 b _0802D59A _0802D4F8: bl sub_802C750 ldr r0, _0802D520 ldr r2, [r0] adds r0, r2, 0 adds r0, 0x78 movs r3, 0x8C lsls r3, 1 adds r1, r2, r3 movs r4, 0xCC lsls r4, 1 adds r3, r2, r4 ldr r2, [r2, 0x6C] str r2, [sp] movs r2, 0x2 str r2, [sp, 0x4] movs r2, 0 bl sub_8012D60 b _0802D59A .align 2, 0 _0802D520: .4byte gUnknown_203B2F8 _0802D524: bl sub_802C750 ldr r4, _0802D554 ldr r0, [r4] adds r0, 0x78 movs r1, 0 bl sub_8012EA4 ldr r1, [r4] adds r0, r1, 0 adds r0, 0xC8 movs r2, 0xAC lsls r2, 1 adds r1, r2 movs r2, 0x4 str r2, [sp] movs r2, 0x3 str r2, [sp, 0x4] movs r2, 0 movs r3, 0 bl sub_8012D60 b _0802D59A .align 2, 0 _0802D554: .4byte gUnknown_203B2F8 _0802D558: ldr r0, [r4] ldrb r0, [r0, 0x10] bl sub_8096AB4 ldr r1, [r4] adds r1, 0x14 bl sub_803B35C ldr r0, [r4] movs r1, 0x3 str r1, [r0, 0x14] adds r0, 0x14 bl sub_802DE84 b _0802D59A _0802D576: ldr r1, [r4] ldr r0, [r1, 0xC] adds r1, 0x14 bl sub_803B35C ldr r0, [r4] movs r1, 0x3 str r1, [r0, 0x14] adds r0, 0x58 movs r1, 0 strb r1, [r0] ldr r0, [r4] ldr r1, [r0, 0xC] ldr r1, [r1, 0x18] str r1, [r0, 0x64] adds r0, 0x14 bl sub_802DE84 _0802D59A: add sp, 0x14 pop {r4} pop {r0} bx r0 thumb_func_end sub_802D2A8 thumb_func_start sub_802D5A4 sub_802D5A4: push {r4-r7,lr} ldr r4, _0802D630 ldr r0, [r4] movs r5, 0xCC lsls r5, 1 adds r0, r5 movs r1, 0 movs r2, 0x10 bl MemoryFill16 ldr r0, [r4] mov r12, r0 movs r3, 0 movs r1, 0x8C lsls r1, 1 add r1, r12 ldr r0, _0802D634 ldr r0, [r0] str r0, [r1] movs r1, 0x8E lsls r1, 1 add r1, r12 movs r0, 0x2 str r0, [r1] movs r2, 0x1 movs r1, 0x90 lsls r1, 1 add r1, r12 ldr r0, _0802D638 ldr r0, [r0] str r0, [r1] movs r1, 0x92 lsls r1, 1 add r1, r12 movs r0, 0x5 str r0, [r1] movs r7, 0x2 movs r0, 0x94 lsls r0, 1 add r0, r12 str r3, [r0] movs r0, 0x96 lsls r0, 1 add r0, r12 str r2, [r0] movs r6, 0 movs r3, 0x8E lsls r3, 1 add r3, r12 mov r0, r12 adds r2, r0, r5 _0802D60A: ldrh r0, [r2] cmp r0, 0 bne _0802D61A ldr r1, [r3] mov r5, r12 ldr r0, [r5, 0x6C] cmp r1, r0 beq _0802D62A _0802D61A: adds r3, 0x8 adds r2, 0x2 adds r6, 0x1 cmp r6, r7 blt _0802D60A ldr r1, [r4] movs r0, 0x2 str r0, [r1, 0x6C] _0802D62A: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802D630: .4byte gUnknown_203B2F8 _0802D634: .4byte gUnknown_80D494C _0802D638: .4byte gUnknown_80D4970 thumb_func_end sub_802D5A4 thumb_func_start sub_802D63C sub_802D63C: ldr r0, _0802D684 ldr r0, [r0] mov r12, r0 movs r3, 0 movs r1, 0xAC lsls r1, 1 add r1, r12 ldr r0, _0802D688 ldr r0, [r0] str r0, [r1] movs r1, 0xAE lsls r1, 1 add r1, r12 movs r0, 0x3 str r0, [r1] movs r2, 0x1 movs r1, 0xB0 lsls r1, 1 add r1, r12 ldr r0, _0802D68C ldr r0, [r0] str r0, [r1] movs r1, 0xB2 lsls r1, 1 add r1, r12 movs r0, 0x4 str r0, [r1] movs r0, 0xB4 lsls r0, 1 add r0, r12 str r3, [r0] movs r0, 0xB6 lsls r0, 1 add r0, r12 str r2, [r0] bx lr .align 2, 0 _0802D684: .4byte gUnknown_203B2F8 _0802D688: .4byte gUnknown_80D4920 _0802D68C: .4byte gUnknown_80D4928 thumb_func_end sub_802D63C thumb_func_start sub_802D690 sub_802D690: push {r4,r5,lr} ldr r2, _0802D728 ldr r0, [r2] mov r12, r0 movs r4, 0 movs r1, 0xAC lsls r1, 1 add r1, r12 ldr r0, _0802D72C ldr r0, [r0] str r0, [r1] movs r1, 0xAE lsls r1, 1 add r1, r12 movs r0, 0x3 str r0, [r1] movs r3, 0x1 movs r1, 0xB0 lsls r1, 1 add r1, r12 ldr r0, _0802D730 ldr r0, [r0] str r0, [r1] movs r1, 0xB2 lsls r1, 1 add r1, r12 movs r0, 0x4 str r0, [r1] movs r1, 0xB4 lsls r1, 1 add r1, r12 ldr r0, _0802D734 str r0, [r1] movs r1, 0xB6 lsls r1, 1 add r1, r12 movs r0, 0x6 str r0, [r1] movs r1, 0xB8 lsls r1, 1 add r1, r12 ldr r0, _0802D738 str r0, [r1] movs r1, 0xBA lsls r1, 1 add r1, r12 movs r0, 0x7 str r0, [r1] movs r5, 0x4 movs r0, 0xBC lsls r0, 1 add r0, r12 str r4, [r0] movs r0, 0xBE lsls r0, 1 add r0, r12 str r3, [r0] movs r3, 0 mov r0, r12 ldr r4, [r0, 0x74] movs r1, 0xAE lsls r1, 1 add r1, r12 _0802D70E: ldr r0, [r1] cmp r0, r4 beq _0802D722 adds r1, 0x8 adds r3, 0x1 cmp r3, r5 blt _0802D70E ldr r1, [r2] movs r0, 0x4 str r0, [r1, 0x74] _0802D722: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802D728: .4byte gUnknown_203B2F8 _0802D72C: .4byte gUnknown_80D4920 _0802D730: .4byte gUnknown_80D4928 _0802D734: .4byte gUnknown_80E014C _0802D738: .4byte gUnknown_80E0158 thumb_func_end sub_802D690 thumb_func_start sub_802D73C sub_802D73C: push {r4,r5,lr} ldr r3, _0802D7C0 ldr r0, [r3] mov r12, r0 movs r4, 0 movs r1, 0xAC lsls r1, 1 add r1, r12 ldr r0, _0802D7C4 ldr r0, [r0] str r0, [r1] movs r1, 0xAE lsls r1, 1 add r1, r12 movs r0, 0x3 str r0, [r1] movs r2, 0x1 movs r1, 0xB0 lsls r1, 1 add r1, r12 ldr r0, _0802D7C8 ldr r0, [r0] str r0, [r1] movs r1, 0xB2 lsls r1, 1 add r1, r12 movs r0, 0x4 str r0, [r1] movs r1, 0xB4 lsls r1, 1 add r1, r12 ldr r0, _0802D7CC str r0, [r1] movs r1, 0xB6 lsls r1, 1 add r1, r12 movs r0, 0x6 str r0, [r1] movs r5, 0x3 movs r0, 0xB8 lsls r0, 1 add r0, r12 str r4, [r0] movs r0, 0xBA lsls r0, 1 add r0, r12 str r2, [r0] movs r2, 0 mov r0, r12 ldr r4, [r0, 0x70] movs r1, 0xAE lsls r1, 1 add r1, r12 _0802D7A6: ldr r0, [r1] cmp r0, r4 beq _0802D7BA adds r1, 0x8 adds r2, 0x1 cmp r2, r5 blt _0802D7A6 ldr r1, [r3] movs r0, 0x4 str r0, [r1, 0x70] _0802D7BA: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802D7C0: .4byte gUnknown_203B2F8 _0802D7C4: .4byte gUnknown_80D4920 _0802D7C8: .4byte gUnknown_80D4928 _0802D7CC: .4byte gUnknown_80E014C thumb_func_end sub_802D73C thumb_func_start sub_802D7D0 sub_802D7D0: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802D826 ldr r1, [sp] cmp r1, 0x1 beq _0802D7EA ldr r0, _0802D800 ldr r0, [r0] str r1, [r0, 0x70] _0802D7EA: ldr r0, [sp] cmp r0, 0x3 beq _0802D804 cmp r0, 0x3 ble _0802D820 cmp r0, 0x4 beq _0802D820 cmp r0, 0x6 beq _0802D80C b _0802D820 .align 2, 0 _0802D800: .4byte gUnknown_203B2F8 _0802D804: movs r0, 0x2 bl sub_802D1A0 b _0802D826 _0802D80C: ldr r0, _0802D81C ldr r1, [r0] movs r0, 0x1 str r0, [r1, 0x4] movs r0, 0x10 bl sub_802D1A0 b _0802D826 .align 2, 0 _0802D81C: .4byte gUnknown_203B2F8 _0802D820: movs r0, 0 bl sub_802D1A0 _0802D826: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802D7D0 thumb_func_start sub_802D82C sub_802D82C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802D8C6 ldr r1, [sp] cmp r1, 0x1 beq _0802D846 ldr r0, _0802D858 ldr r0, [r0] str r1, [r0, 0x74] _0802D846: ldr r0, [sp] subs r0, 0x1 cmp r0, 0x6 bhi _0802D8C0 lsls r0, 2 ldr r1, _0802D85C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802D858: .4byte gUnknown_203B2F8 _0802D85C: .4byte _0802D860 .align 2, 0 _0802D860: .4byte _0802D8C0 .4byte _0802D8C0 .4byte _0802D87C .4byte _0802D8C0 .4byte _0802D8C0 .4byte _0802D898 .4byte _0802D8AC _0802D87C: ldr r0, _0802D894 ldr r0, [r0] ldrb r0, [r0, 0x10] bl sub_8096C3C bl sub_8096C80 movs r0, 0x8 bl sub_802D1A0 b _0802D8C6 .align 2, 0 _0802D894: .4byte gUnknown_203B2F8 _0802D898: ldr r0, _0802D8A8 ldr r1, [r0] movs r0, 0x9 str r0, [r1, 0x4] movs r0, 0x10 bl sub_802D1A0 b _0802D8C6 .align 2, 0 _0802D8A8: .4byte gUnknown_203B2F8 _0802D8AC: ldr r0, _0802D8BC ldr r1, [r0] movs r0, 0x9 str r0, [r1, 0x4] movs r0, 0xF bl sub_802D1A0 b _0802D8C6 .align 2, 0 _0802D8BC: .4byte gUnknown_203B2F8 _0802D8C0: movs r0, 0x1 bl sub_802D1A0 _0802D8C6: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802D82C thumb_func_start sub_802D8CC sub_802D8CC: push {lr} movs r0, 0x1 bl sub_802C598 cmp r0, 0x4 bhi _0802D93A lsls r0, 2 ldr r1, _0802D8E4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802D8E4: .4byte _0802D8E8 .align 2, 0 _0802D8E8: .4byte _0802D93A .4byte _0802D93A .4byte _0802D930 .4byte _0802D8FC .4byte _0802D914 _0802D8FC: bl sub_802C620 ldr r1, _0802D910 ldr r1, [r1] strb r0, [r1, 0x10] movs r0, 0xD bl sub_802D1A0 b _0802D93A .align 2, 0 _0802D910: .4byte gUnknown_203B2F8 _0802D914: bl sub_802C620 ldr r2, _0802D92C ldr r1, [r2] strb r0, [r1, 0x10] ldr r1, [r2] movs r0, 0xC str r0, [r1, 0x4] movs r0, 0xF bl sub_802D1A0 b _0802D93A .align 2, 0 _0802D92C: .4byte gUnknown_203B2F8 _0802D930: bl sub_802C688 movs r0, 0x1 bl sub_802D1A0 _0802D93A: pop {r0} bx r0 thumb_func_end sub_802D8CC thumb_func_start sub_802D940 sub_802D940: push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] bl sub_802C598 ldr r4, _0802D980 ldr r0, [r4] adds r0, 0x78 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _0802D970 ldr r0, [r4] adds r0, 0x78 mov r1, sp bl sub_8013114 ldr r1, [sp] cmp r1, 0x1 beq _0802D970 ldr r0, [r4] str r1, [r0, 0x6C] _0802D970: ldr r0, [sp] cmp r0, 0x2 beq _0802D98A cmp r0, 0x2 bgt _0802D984 cmp r0, 0x1 beq _0802D9E0 b _0802D9E6 .align 2, 0 _0802D980: .4byte gUnknown_203B2F8 _0802D984: cmp r0, 0x5 beq _0802D9CC b _0802D9E6 _0802D98A: ldr r0, _0802D9BC ldr r3, [r0] ldrb r0, [r3, 0x9] cmp r0, 0 beq _0802D9C4 ldr r2, _0802D9C0 ldrb r1, [r3, 0x10] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r0, 0xF0 ldr r1, [r2] adds r1, r0 ldrb r0, [r1] cmp r0, 0x5 bls _0802D9C4 ldrb r0, [r3, 0xA] ldrb r1, [r1, 0x4] cmp r0, r1 bne _0802D9C4 movs r0, 0x7 bl sub_802D1A0 b _0802D9E6 .align 2, 0 _0802D9BC: .4byte gUnknown_203B2F8 _0802D9C0: .4byte gUnknown_203B490 _0802D9C4: movs r0, 0xE bl sub_802D1A0 b _0802D9E6 _0802D9CC: ldr r0, _0802D9DC ldr r1, [r0] movs r0, 0xC str r0, [r1, 0x4] movs r0, 0xF bl sub_802D1A0 b _0802D9E6 .align 2, 0 _0802D9DC: .4byte gUnknown_203B2F8 _0802D9E0: movs r0, 0xC bl sub_802D1A0 _0802D9E6: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_802D940 thumb_func_start sub_802D9F0 sub_802D9F0: push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] bl sub_802C598 ldr r4, _0802DA30 ldr r0, [r4] adds r0, 0x78 bl sub_8012FD8 ldr r0, [r4] adds r0, 0xC8 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _0802DA1E ldr r0, [r4] adds r0, 0xC8 mov r1, sp bl sub_8013114 _0802DA1E: ldr r0, [sp] cmp r0, 0x3 beq _0802DA40 cmp r0, 0x3 bgt _0802DA34 cmp r0, 0x1 beq _0802DA38 b _0802DA56 .align 2, 0 _0802DA30: .4byte gUnknown_203B2F8 _0802DA34: cmp r0, 0x4 bne _0802DA56 _0802DA38: movs r0, 0xC bl sub_802D1A0 b _0802DA56 _0802DA40: bl sub_802C688 ldr r0, [r4] ldrb r0, [r0, 0x10] bl sub_8096C3C bl sub_8096C80 movs r0, 0x8 bl sub_802D1A0 _0802DA56: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_802D9F0 thumb_func_start sub_802DA60 sub_802DA60: push {lr} bl sub_802DEE0 cmp r0, 0x1 bls _0802DA7C cmp r0, 0x3 bhi _0802DA7C bl sub_802DF24 ldr r0, _0802DA80 ldr r0, [r0] ldr r0, [r0, 0x4] bl sub_802D1A0 _0802DA7C: pop {r0} bx r0 .align 2, 0 _0802DA80: .4byte gUnknown_203B2F8 thumb_func_end sub_802DA60 thumb_func_start sub_802DA84 sub_802DA84: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802DA9C ldr r0, _0802DAA4 ldr r0, [r0] ldr r0, [r0, 0x4] bl sub_802D1A0 _0802DA9C: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _0802DAA4: .4byte gUnknown_203B2F8 thumb_func_end sub_802DA84 thumb_func_start sub_802DAA8 sub_802DAA8: push {r4,lr} ldr r4, _0802DAD0 ldr r0, [r4] ldrb r0, [r0, 0x10] bl sub_8096AB4 adds r1, r0, 0 ldr r4, [r4] ldrb r0, [r4, 0x9] cmp r0, 0 beq _0802DAD4 ldrb r0, [r1] cmp r0, 0x5 beq _0802DAD4 ldrb r0, [r4, 0xA] ldrb r1, [r1, 0x4] cmp r0, r1 bne _0802DAD4 movs r0, 0 b _0802DAD6 .align 2, 0 _0802DAD0: .4byte gUnknown_203B2F8 _0802DAD4: movs r0, 0x1 _0802DAD6: pop {r4} pop {r1} bx r1 thumb_func_end sub_802DAA8 thumb_func_start sub_802DADC sub_802DADC: push {r4,lr} ldr r3, _0802DAEC ldr r0, [r3] ldrb r0, [r0, 0x9] cmp r0, 0 bne _0802DAF0 _0802DAE8: movs r0, 0x1 b _0802DB1C .align 2, 0 _0802DAEC: .4byte gUnknown_203B2F8 _0802DAF0: ldr r0, _0802DB24 ldr r0, [r0] adds r1, r0, 0 adds r1, 0xF0 movs r2, 0 _0802DAFA: ldrb r0, [r1] cmp r0, 0 beq _0802DAE8 cmp r0, 0x5 beq _0802DAE8 cmp r0, 0x5 bls _0802DB12 ldr r0, [r3] ldrb r0, [r0, 0xA] ldrb r4, [r1, 0x4] cmp r0, r4 bne _0802DAE8 _0802DB12: adds r1, 0x14 adds r2, 0x1 cmp r2, 0x7 ble _0802DAFA movs r0, 0 _0802DB1C: pop {r4} pop {r1} bx r1 .align 2, 0 _0802DB24: .4byte gUnknown_203B490 thumb_func_end sub_802DADC thumb_func_start sub_802DB28 sub_802DB28: push {r4-r6,lr} sub sp, 0x8 adds r2, r1, 0 lsls r0, 24 lsrs r6, r0, 24 lsls r2, 24 lsrs r2, 24 mov r0, sp adds r1, r6, 0 bl sub_8096AF8 mov r0, sp ldrb r0, [r0] cmp r0, 0 bne _0802DB4A movs r0, 0 b _0802DBC6 _0802DB4A: bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, _0802DBD0 movs r0, 0xA8 movs r1, 0x8 bl MemoryAlloc str r0, [r4] adds r0, 0x30 movs r5, 0 strb r6, [r0] adds r0, r6, 0 bl sub_8096AB4 ldr r1, [r4] str r0, [r1, 0x34] bl sub_8096EEC ldr r1, [r4] ldr r0, [r1, 0x34] adds r1, 0x8 bl sub_803C21C ldr r0, [r4] ldr r0, [r0, 0x34] movs r1, 0xC ldrsh r0, [r0, r1] bl sub_808DDD0 ldr r1, [r4] str r0, [r1, 0x38] str r5, [r1, 0x3C] adds r1, 0x44 strb r5, [r1] ldr r0, [r4] adds r0, 0x45 strb r5, [r0] ldr r0, [r4] adds r0, 0x46 strb r5, [r0] ldr r2, [r4] adds r1, r2, 0 adds r1, 0x40 movs r0, 0x2 strh r0, [r1] adds r1, 0x2 movs r0, 0x8 strh r0, [r1] ldr r0, [r2, 0x38] cmp r0, 0 beq _0802DBBE ldr r0, [r0, 0x4] str r0, [r2, 0x3C] _0802DBBE: movs r0, 0 bl sub_802DC28 movs r0, 0x1 _0802DBC6: add sp, 0x8 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0802DBD0: .4byte gUnknown_203B2FC thumb_func_end sub_802DB28 thumb_func_start sub_802DBD4 sub_802DBD4: push {lr} ldr r0, _0802DBEC ldr r0, [r0] ldr r1, [r0] cmp r1, 0x6 beq _0802DBF0 cmp r1, 0x7 bne _0802DBF6 ldr r0, [r0, 0x34] strb r1, [r0] movs r0, 0x3 b _0802DBFC .align 2, 0 _0802DBEC: .4byte gUnknown_203B2FC _0802DBF0: bl sub_802DE44 b _0802DBFA _0802DBF6: bl sub_802DE60 _0802DBFA: movs r0, 0 _0802DBFC: pop {r1} bx r1 thumb_func_end sub_802DBD4 thumb_func_start sub_802DC00 sub_802DC00: push {r4,lr} ldr r4, _0802DC24 ldr r0, [r4] cmp r0, 0 beq _0802DC1E ldr r0, [r0, 0x38] cmp r0, 0 beq _0802DC14 bl CloseFile _0802DC14: ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _0802DC1E: pop {r4} pop {r0} bx r0 .align 2, 0 _0802DC24: .4byte gUnknown_203B2FC thumb_func_end sub_802DC00 thumb_func_start sub_802DC28 sub_802DC28: push {lr} ldr r1, _0802DC3C ldr r1, [r1] str r0, [r1] bl sub_802DC40 bl sub_802DC9C pop {r0} bx r0 .align 2, 0 _0802DC3C: .4byte gUnknown_203B2FC thumb_func_end sub_802DC28 thumb_func_start sub_802DC40 sub_802DC40: push {r4-r7,lr} ldr r4, _0802DC94 ldr r0, [r4] adds r0, 0x48 bl sub_8006518 ldr r0, [r4] ldr r0, [r0] cmp r0, 0 beq _0802DC58 cmp r0, 0x7 bne _0802DC7A _0802DC58: mov r12, r4 ldr r4, _0802DC98 movs r3, 0 movs r2, 0x3 _0802DC60: mov r0, r12 ldr r1, [r0] adds r1, r3 adds r1, 0x48 adds r0, r4, 0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} adds r3, 0x18 subs r2, 0x1 cmp r2, 0 bge _0802DC60 _0802DC7A: bl sub_8004914 ldr r0, _0802DC94 ldr r0, [r0] adds r0, 0x48 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802DC94: .4byte gUnknown_203B2FC _0802DC98: .4byte gUnknown_80E016C thumb_func_end sub_802DC40 thumb_func_start sub_802DC9C sub_802DC9C: push {r4,r5,lr} ldr r1, _0802DCB8 ldr r0, [r1] ldr r0, [r0] adds r5, r1, 0 cmp r0, 0x7 bls _0802DCAC b _0802DE3E _0802DCAC: lsls r0, 2 ldr r1, _0802DCBC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802DCB8: .4byte gUnknown_203B2FC _0802DCBC: .4byte _0802DCC0 .align 2, 0 _0802DCC0: .4byte _0802DCE0 .4byte _0802DDDC .4byte _0802DDE4 .4byte _0802DDEC .4byte _0802DDFC .4byte _0802DDF4 .4byte _0802DE34 .4byte _0802DE3E _0802DCE0: ldr r0, _0802DD60 ldr r1, [r5] ldr r1, [r1, 0x34] movs r2, 0xC ldrsh r1, [r1, r2] bl sub_808D8E0 ldr r4, _0802DD64 ldr r0, [r5] ldr r0, [r0, 0x34] movs r2, 0xC ldrsh r1, [r0, r2] adds r0, r4, 0 bl sub_808D8E0 ldr r0, [r5] ldr r0, [r0, 0x34] movs r1, 0xC ldrsh r0, [r0, r1] bl sub_808D994 adds r1, r0, 0 ldr r2, _0802DD68 adds r0, r4, r2 bl strcpy ldr r0, [r5] ldr r0, [r0, 0x34] movs r1, 0xE ldrsh r0, [r0, r1] bl sub_808D994 adds r1, r0, 0 ldr r2, _0802DD6C adds r4, r2 adds r0, r4, 0 bl strcpy ldr r0, [r5] ldr r0, [r0, 0x34] movs r1, 0xC ldrsh r0, [r0, r1] bl sub_8098214 ldr r0, _0802DD70 ldr r1, [r5] ldr r1, [r1, 0x34] ldrb r1, [r1, 0x10] movs r2, 0 bl sub_8090DC4 ldr r1, [r5] movs r0, 0x6 str r0, [r1, 0x4] ldr r0, [r1, 0x34] ldrb r0, [r0, 0x1] cmp r0, 0x4 bhi _0802DDD4 lsls r0, 2 ldr r1, _0802DD74 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802DD60: .4byte gUnknown_202E5D8 _0802DD64: .4byte gUnknown_202E1C8 _0802DD68: .4byte 0xfffffdd0 _0802DD6C: .4byte 0xfffffe20 _0802DD70: .4byte gUnknown_202DE58 _0802DD74: .4byte _0802DD78 .align 2, 0 _0802DD78: .4byte _0802DDD4 .4byte _0802DD9C .4byte _0802DDB8 .4byte _0802DD94 .4byte _0802DD8C _0802DD8C: movs r0, 0x5 bl sub_802DC28 b _0802DE3E _0802DD94: movs r0, 0x4 bl sub_802DC28 b _0802DE3E _0802DD9C: movs r0, 0x2 bl sub_802DC28 ldr r0, _0802DDB4 ldr r0, [r0] ldr r0, [r0, 0x34] movs r2, 0xE ldrsh r0, [r0, r2] bl sub_8098214 b _0802DE3E .align 2, 0 _0802DDB4: .4byte gUnknown_203B2FC _0802DDB8: movs r0, 0x3 bl sub_802DC28 ldr r0, _0802DDD0 ldr r0, [r0] ldr r0, [r0, 0x34] movs r1, 0xE ldrsh r0, [r0, r1] bl sub_8098214 b _0802DE3E .align 2, 0 _0802DDD0: .4byte gUnknown_203B2FC _0802DDD4: movs r0, 0x1 bl sub_802DC28 b _0802DE3E _0802DDDC: ldr r0, _0802DDE0 b _0802DE1C .align 2, 0 _0802DDE0: .4byte gUnknown_80E0184 _0802DDE4: ldr r0, _0802DDE8 b _0802DE1C .align 2, 0 _0802DDE8: .4byte gUnknown_80E01A0 _0802DDEC: ldr r0, _0802DDF0 b _0802DE1C .align 2, 0 _0802DDF0: .4byte gUnknown_80E01C4 _0802DDF4: ldr r0, _0802DDF8 b _0802DE1C .align 2, 0 _0802DDF8: .4byte gUnknown_80E01F0 _0802DDFC: ldr r0, [r5] ldr r0, [r0, 0x34] ldrb r0, [r0, 0x10] bl sub_8091130 adds r1, r0, 0 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _0802DE1A adds r0, r1, 0 bl sub_80911F8 bl sub_80910B4 _0802DE1A: ldr r0, _0802DE2C _0802DE1C: ldr r2, [r5] adds r2, 0x38 ldr r3, _0802DE30 movs r1, 0 bl sub_80141B4 b _0802DE3E .align 2, 0 _0802DE2C: .4byte gUnknown_80E0218 _0802DE30: .4byte 0x0000010d _0802DE34: ldr r0, [r5] adds r0, 0x8 movs r1, 0x1 bl sub_802F204 _0802DE3E: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_802DC9C thumb_func_start sub_802DE44 sub_802DE44: push {lr} bl sub_802F298 cmp r0, 0x1 bls _0802DE5C cmp r0, 0x3 bhi _0802DE5C bl sub_802F2C0 movs r0, 0x7 bl sub_802DC28 _0802DE5C: pop {r0} bx r0 thumb_func_end sub_802DE44 thumb_func_start sub_802DE60 sub_802DE60: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802DE78 ldr r0, _0802DE80 ldr r0, [r0] ldr r0, [r0, 0x4] bl sub_802DC28 _0802DE78: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _0802DE80: .4byte gUnknown_203B2FC thumb_func_end sub_802DE60 thumb_func_start sub_802DE84 sub_802DE84: push {r4,r5,lr} adds r5, r0, 0 ldr r4, _0802DED8 movs r0, 0x7C movs r1, 0x8 bl MemoryAlloc str r0, [r4] str r5, [r0, 0xC] bl sub_801317C ldr r0, [r4] ldr r1, [r0, 0xC] ldr r2, [r1] str r2, [r0, 0x10] lsls r1, r2, 1 adds r1, r2 lsls r1, 3 adds r1, 0x18 adds r1, r0, r1 str r1, [r0, 0x14] adds r0, 0x18 bl sub_8006518 ldr r1, [r4] ldr r2, [r1, 0x10] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, 0x18 ldr r0, _0802DEDC ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} bl sub_802DF14 movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0802DED8: .4byte gUnknown_203B300 _0802DEDC: .4byte gUnknown_80E0264 thumb_func_end sub_802DE84 thumb_func_start sub_802DEE0 sub_802DEE0: push {lr} ldr r0, _0802DF00 ldr r0, [r0] ldr r1, [r0, 0x10] bl sub_8012A64 cmp r0, 0x1 beq _0802DF04 cmp r0, 0x2 bne _0802DF0E movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 b _0802DF10 .align 2, 0 _0802DF00: .4byte gUnknown_203B300 _0802DF04: movs r0, 0 bl sub_80119D4 movs r0, 0x3 b _0802DF10 _0802DF0E: movs r0, 0 _0802DF10: pop {r1} bx r1 thumb_func_end sub_802DEE0 thumb_func_start sub_802DF14 sub_802DF14: push {lr} bl sub_802DF6C bl sub_802DF88 pop {r0} bx r0 thumb_func_end sub_802DF14 thumb_func_start sub_802DF24 sub_802DF24: push {r4,r5,lr} ldr r4, _0802DF64 ldr r2, [r4] cmp r2, 0 beq _0802DF5E ldr r0, [r2, 0x10] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 adds r1, 0x18 ldr r0, _0802DF68 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} bl sub_8004914 ldr r0, [r4] adds r0, 0x18 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _0802DF5E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802DF64: .4byte gUnknown_203B300 _0802DF68: .4byte gUnknown_80E0248 thumb_func_end sub_802DF24 thumb_func_start sub_802DF6C sub_802DF6C: push {lr} bl sub_8004914 ldr r0, _0802DF84 ldr r0, [r0] adds r0, 0x18 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r0} bx r0 .align 2, 0 _0802DF84: .4byte gUnknown_203B300 thumb_func_end sub_802DF6C thumb_func_start sub_802DF88 sub_802DF88: push {r4,lr} ldr r4, _0802DFAC ldr r0, [r4] ldr r0, [r0, 0x10] bl sub_80073B8 ldr r0, [r4] ldr r0, [r0, 0xC] bl sub_803B98C ldr r0, [r4] ldr r0, [r0, 0x10] bl sub_80073E0 pop {r4} pop {r0} bx r0 .align 2, 0 _0802DFAC: .4byte gUnknown_203B300 thumb_func_end sub_802DF88 thumb_func_start sub_802DFB0 sub_802DFB0: push {r4,lr} ldr r4, _0802DFD4 movs r0, 0xB6 lsls r0, 1 movs r1, 0x8 bl MemoryAlloc str r0, [r4] movs r1, 0 str r1, [r0, 0x64] str r1, [r0, 0x68] movs r0, 0 bl sub_802E088 movs r0, 0x1 pop {r4} pop {r1} bx r1 .align 2, 0 _0802DFD4: .4byte gUnknown_203B304 thumb_func_end sub_802DFB0 thumb_func_start sub_802DFD8 sub_802DFD8: push {lr} ldr r0, _0802DFF0 ldr r0, [r0] ldr r0, [r0] cmp r0, 0xB bhi _0802E060 lsls r0, 2 ldr r1, _0802DFF4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802DFF0: .4byte gUnknown_203B304 _0802DFF4: .4byte _0802DFF8 .align 2, 0 _0802DFF8: .4byte _0802E028 .4byte _0802E030 .4byte _0802E036 .4byte _0802E060 .4byte _0802E03C .4byte _0802E03C .4byte _0802E042 .4byte _0802E048 .4byte _0802E04E .4byte _0802E054 .4byte _0802E054 .4byte _0802E05A _0802E028: movs r0, 0x1 bl sub_802E088 b _0802E064 _0802E030: bl sub_802E4B0 b _0802E064 _0802E036: bl nullsub_133 b _0802E064 _0802E03C: bl sub_802E578 b _0802E064 _0802E042: bl sub_802E60C b _0802E064 _0802E048: bl sub_802E73C b _0802E064 _0802E04E: bl sub_802E758 b _0802E064 _0802E054: bl sub_802E774 b _0802E064 _0802E05A: bl sub_802E7D0 b _0802E064 _0802E060: movs r0, 0x3 b _0802E066 _0802E064: movs r0, 0 _0802E066: pop {r1} bx r1 thumb_func_end sub_802DFD8 thumb_func_start sub_802E06C sub_802E06C: push {r4,lr} ldr r4, _0802E084 ldr r0, [r4] cmp r0, 0 beq _0802E07E bl MemoryFree movs r0, 0 str r0, [r4] _0802E07E: pop {r4} pop {r0} bx r0 .align 2, 0 _0802E084: .4byte gUnknown_203B304 thumb_func_end sub_802E06C thumb_func_start sub_802E088 sub_802E088: push {lr} ldr r1, _0802E09C ldr r1, [r1] str r0, [r1] bl sub_802E0A0 bl sub_802E1AC pop {r0} bx r0 .align 2, 0 _0802E09C: .4byte gUnknown_203B304 thumb_func_end sub_802E088 thumb_func_start sub_802E0A0 sub_802E0A0: push {r4-r7,lr} mov r7, r8 push {r7} ldr r4, _0802E0C8 ldr r0, [r4] movs r6, 0x86 lsls r6, 1 adds r0, r6 bl sub_8006518 ldr r0, [r4] ldr r5, [r0] cmp r5, 0x1 beq _0802E0D0 cmp r5, 0x6 beq _0802E124 movs r3, 0 ldr r2, _0802E0CC b _0802E168 .align 2, 0 _0802E0C8: .4byte gUnknown_203B304 _0802E0CC: .4byte gUnknown_80E0284 _0802E0D0: mov r12, r6 ldr r0, _0802E118 mov r8, r0 movs r2, 0 movs r3, 0x3 _0802E0DA: ldr r1, [r4] adds r1, r2 add r1, r12 mov r0, r8 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} adds r2, 0x18 subs r3, 0x1 cmp r3, 0 bge _0802E0DA bl sub_802E2B4 ldr r3, _0802E11C ldr r2, [r3] movs r0, 0x9E lsls r0, 1 adds r2, r0 ldr r1, _0802E120 ldm r1!, {r4-r6} stm r2!, {r4-r6} ldm r1!, {r4,r5,r7} stm r2!, {r4,r5,r7} ldr r1, [r3] adds r0, r1, r0 adds r1, 0xBC bl sub_8012CAC b _0802E188 .align 2, 0 _0802E118: .4byte gUnknown_80E0284 _0802E11C: .4byte gUnknown_203B304 _0802E120: .4byte gUnknown_80E029C _0802E124: bl sub_802E3B8 ldr r2, [r4] movs r0, 0x9E lsls r0, 1 adds r2, r0 ldr r1, _0802E160 ldm r1!, {r3,r6,r7} stm r2!, {r3,r6,r7} ldm r1!, {r3,r6,r7} stm r2!, {r3,r6,r7} ldr r1, [r4] adds r0, r1, r0 adds r1, 0xBC bl sub_8012CAC ldr r1, [r4] movs r4, 0xA4 lsls r4, 1 adds r0, r1, r4 strh r5, [r0] movs r5, 0xAA lsls r5, 1 adds r1, r5 ldr r0, _0802E164 ldm r0!, {r2,r6,r7} stm r1!, {r2,r6,r7} ldm r0!, {r3-r5} stm r1!, {r3-r5} b _0802E188 .align 2, 0 _0802E160: .4byte gUnknown_80E02B4 _0802E164: .4byte gUnknown_80E02CC _0802E168: ldr r0, [r4] lsls r1, r3, 1 adds r1, r3 lsls r1, 3 adds r0, r1 movs r6, 0x86 lsls r6, 1 adds r0, r6 adds r1, r2, 0 ldm r1!, {r5-r7} stm r0!, {r5-r7} ldm r1!, {r5-r7} stm r0!, {r5-r7} adds r3, 0x1 cmp r3, 0x3 ble _0802E168 _0802E188: bl sub_8004914 ldr r0, _0802E1A8 ldr r0, [r0] movs r7, 0x86 lsls r7, 1 adds r0, r7 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802E1A8: .4byte gUnknown_203B304 thumb_func_end sub_802E0A0 thumb_func_start sub_802E1AC sub_802E1AC: push {r4,lr} sub sp, 0x8 ldr r1, _0802E1C8 ldr r0, [r1] ldr r0, [r0] adds r4, r1, 0 cmp r0, 0xB bhi _0802E2AA lsls r0, 2 ldr r1, _0802E1CC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802E1C8: .4byte gUnknown_203B304 _0802E1CC: .4byte _0802E1D0 .align 2, 0 _0802E1D0: .4byte _0802E2AA .4byte _0802E200 .4byte _0802E2AA .4byte _0802E2AA .4byte _0802E21E .4byte _0802E22A .4byte _0802E232 .4byte _0802E260 .4byte _0802E286 .4byte _0802E28E .4byte _0802E29A .4byte _0802E2A2 _0802E200: ldr r2, [r4] adds r0, r2, 0 adds r0, 0x6C adds r1, r2, 0 adds r1, 0xBC adds r3, r2, 0 adds r3, 0xFC ldr r2, [r2, 0x64] str r2, [sp] movs r2, 0x2 str r2, [sp, 0x4] movs r2, 0 bl sub_8012D60 b _0802E2AA _0802E21E: movs r0, 0 movs r1, 0 movs r2, 0x4 bl sub_802BD14 b _0802E2AA _0802E22A: movs r0, 0x1 bl sub_802BE94 b _0802E2AA _0802E232: bl sub_802BFA0 movs r0, 0x3 bl sub_802E7F8 ldr r0, _0802E25C ldr r2, [r0] adds r0, r2, 0 adds r0, 0x6C adds r1, r2, 0 adds r1, 0xBC ldr r2, [r2, 0x68] str r2, [sp] movs r2, 0x2 str r2, [sp, 0x4] movs r2, 0 movs r3, 0 bl sub_8012D60 b _0802E2AA .align 2, 0 _0802E25C: .4byte gUnknown_203B304 _0802E260: ldr r0, [r4] ldrb r0, [r0, 0x8] bl sub_8095FE8 ldr r1, [r4] adds r1, 0xC bl sub_803B35C ldr r0, [r4] movs r1, 0x3 str r1, [r0, 0xC] adds r0, 0x50 movs r1, 0 strb r1, [r0] ldr r0, [r4] adds r0, 0xC bl sub_802DE84 b _0802E2AA _0802E286: movs r0, 0 bl sub_802C860 b _0802E2AA _0802E28E: movs r0, 0 movs r1, 0 movs r2, 0x8 bl sub_802B640 b _0802E2AA _0802E29A: movs r0, 0x1 bl sub_802B7D0 b _0802E2AA _0802E2A2: ldr r0, [r4] ldrb r0, [r0, 0x9] bl sub_802B9FC _0802E2AA: add sp, 0x8 pop {r4} pop {r0} bx r0 thumb_func_end sub_802E1AC thumb_func_start sub_802E2B4 sub_802E2B4: push {r4-r7,lr} ldr r4, _0802E380 ldr r0, [r4] adds r0, 0xFC movs r1, 0 movs r2, 0x10 bl MemoryFill16 ldr r1, [r4] adds r2, r1, 0 adds r2, 0xBC ldr r0, _0802E384 str r0, [r2] adds r1, 0xC0 movs r0, 0x2 str r0, [r1] bl sub_802C0E8 lsls r0, 24 cmp r0, 0 beq _0802E2E6 ldr r0, [r4] adds r0, 0xFC movs r1, 0x1 strh r1, [r0] _0802E2E6: movs r5, 0x1 ldr r1, [r4] movs r6, 0x1 adds r2, r1, 0 adds r2, 0xC4 ldr r0, _0802E388 str r0, [r2] adds r1, 0xC8 movs r0, 0x3 str r0, [r1] bl sub_802C83C lsls r0, 24 cmp r0, 0 beq _0802E30A ldr r0, [r4] adds r0, 0xFE strh r5, [r0] _0802E30A: ldr r1, [r4] adds r2, r1, 0 adds r2, 0xCC ldr r0, _0802E38C str r0, [r2] adds r1, 0xD0 movs r0, 0x4 str r0, [r1] bl sub_802B9D8 lsls r0, 24 cmp r0, 0 beq _0802E32E ldr r0, [r4] movs r1, 0x80 lsls r1, 1 adds r0, r1 strh r6, [r0] _0802E32E: movs r5, 0x3 ldr r2, [r4] adds r0, r2, 0 adds r0, 0xD4 movs r1, 0 str r1, [r0] adds r0, 0x4 str r6, [r0] movs r3, 0 adds r6, r4, 0 mov r12, r2 mov r4, r12 adds r4, 0xFC adds r2, 0xC0 _0802E34A: ldrh r0, [r4] cmp r0, 0 bne _0802E35A ldr r1, [r2] mov r7, r12 ldr r0, [r7, 0x64] cmp r1, r0 beq _0802E3B2 _0802E35A: adds r4, 0x2 adds r2, 0x8 adds r3, 0x1 cmp r3, r5 blt _0802E34A movs r3, 0 cmp r3, r5 bge _0802E3B2 ldr r1, [r6] adds r0, r1, 0 adds r0, 0xFC ldrh r0, [r0] cmp r0, 0 bne _0802E390 adds r0, r1, 0 adds r0, 0xC0 ldr r0, [r0] str r0, [r1, 0x64] b _0802E3B2 .align 2, 0 _0802E380: .4byte gUnknown_203B304 _0802E384: .4byte gUnknown_80E02E4 _0802E388: .4byte gUnknown_80E02F0 _0802E38C: .4byte gUnknown_80E02FC _0802E390: adds r3, 0x1 cmp r3, r5 bge _0802E3B2 ldr r2, [r6] lsls r0, r3, 1 adds r1, r2, 0 adds r1, 0xFC adds r1, r0 ldrh r0, [r1] cmp r0, 0 bne _0802E390 lsls r0, r3, 3 adds r1, r2, 0 adds r1, 0xC0 adds r1, r0 ldr r0, [r1] str r0, [r2, 0x64] _0802E3B2: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_802E2B4 thumb_func_start sub_802E3B8 sub_802E3B8: push {r4-r7,lr} movs r5, 0 ldr r4, _0802E3F0 ldr r0, [r4] ldrb r0, [r0, 0x8] bl sub_8095FE8 adds r7, r0, 0 ldrb r0, [r7] cmp r0, 0x1 bne _0802E3FC ldr r2, [r4] adds r1, r2, 0 adds r1, 0xBC ldr r0, _0802E3F4 str r0, [r1] adds r1, 0x4 movs r0, 0x6 str r0, [r1] adds r1, 0x4 ldr r0, _0802E3F8 str r0, [r1] adds r1, 0x4 movs r0, 0x7 str r0, [r1] movs r5, 0x2 b _0802E44A .align 2, 0 _0802E3F0: .4byte gUnknown_203B304 _0802E3F4: .4byte gUnknown_80E0308 _0802E3F8: .4byte gUnknown_80E0310 _0802E3FC: ldr r1, [r4] adds r2, r1, 0 adds r2, 0xBC ldr r0, _0802E494 ldr r0, [r0] str r0, [r2] adds r1, 0xC0 movs r0, 0x5 str r0, [r1] adds r0, r7, 0 bl sub_80968B0 lsls r0, 24 cmp r0, 0 bne _0802E422 bl sub_80969AC cmp r0, 0x7 ble _0802E42C _0802E422: ldr r0, [r4] adds r0, 0xC0 movs r1, 0x1 negs r1, r1 str r1, [r0] _0802E42C: adds r5, 0x1 ldr r4, _0802E498 ldr r2, [r4] lsls r3, r5, 3 adds r0, r2, 0 adds r0, 0xBC adds r0, r3 ldr r1, _0802E49C ldr r1, [r1] str r1, [r0] adds r2, 0xC0 adds r2, r3 movs r0, 0x8 str r0, [r2] adds r5, 0x1 _0802E44A: mov r12, r4 mov r0, r12 ldr r4, [r0] lsls r2, r5, 3 adds r0, r4, 0 adds r0, 0xBC adds r0, r2 movs r1, 0 str r1, [r0] adds r1, r4, 0 adds r1, 0xC0 adds r2, r1, r2 movs r0, 0x1 str r0, [r2] movs r3, 0 cmp r3, r5 bge _0802E486 movs r6, 0x1 negs r6, r6 adds r2, r1, 0 _0802E472: ldr r1, [r2] cmp r1, r6 beq _0802E47E ldr r0, [r4, 0x68] cmp r1, r0 beq _0802E4A8 _0802E47E: adds r2, 0x8 adds r3, 0x1 cmp r3, r5 blt _0802E472 _0802E486: ldrb r0, [r7] cmp r0, 0x1 bne _0802E4A0 mov r0, r12 ldr r1, [r0] movs r0, 0x7 b _0802E4A6 .align 2, 0 _0802E494: .4byte gUnknown_80D4990 _0802E498: .4byte gUnknown_203B304 _0802E49C: .4byte gUnknown_80D4970 _0802E4A0: mov r0, r12 ldr r1, [r0] movs r0, 0x8 _0802E4A6: str r0, [r1, 0x68] _0802E4A8: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_802E3B8 thumb_func_start sub_802E4B0 sub_802E4B0: push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] ldr r4, _0802E4F0 ldr r0, [r4] adds r0, 0x6C bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _0802E4DC ldr r0, [r4] adds r0, 0x6C mov r1, sp bl sub_8013114 ldr r1, [sp] cmp r1, 0x1 beq _0802E4DC ldr r0, [r4] str r1, [r0, 0x64] _0802E4DC: ldr r0, [sp] subs r0, 0x1 cmp r0, 0x7 bhi _0802E56E lsls r0, 2 ldr r1, _0802E4F4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802E4F0: .4byte gUnknown_203B304 _0802E4F4: .4byte _0802E4F8 .align 2, 0 _0802E4F8: .4byte _0802E568 .4byte _0802E518 .4byte _0802E52A .4byte _0802E53C .4byte _0802E56E .4byte _0802E56E .4byte _0802E56E .4byte _0802E560 _0802E518: bl sub_802C0E8 lsls r0, 24 cmp r0, 0 bne _0802E54E movs r0, 0x4 bl sub_802E088 b _0802E56E _0802E52A: bl sub_802C83C lsls r0, 24 cmp r0, 0 bne _0802E54E movs r0, 0x8 bl sub_802E088 b _0802E56E _0802E53C: bl sub_802B9D8 lsls r0, 24 cmp r0, 0 bne _0802E54E movs r0, 0x9 bl sub_802E088 b _0802E56E _0802E54E: ldr r0, _0802E55C ldr r0, [r0] adds r0, 0x6C movs r1, 0x1 bl sub_8012EA4 b _0802E56E .align 2, 0 _0802E55C: .4byte gUnknown_203B304 _0802E560: movs r0, 0x2 bl sub_802E088 b _0802E56E _0802E568: movs r0, 0x3 bl sub_802E088 _0802E56E: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_802E4B0 thumb_func_start sub_802E578 sub_802E578: push {r4,lr} movs r0, 0x1 bl sub_802BDEC cmp r0, 0x4 bhi _0802E606 lsls r0, 2 ldr r1, _0802E590 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802E590: .4byte _0802E594 .align 2, 0 _0802E594: .4byte _0802E606 .4byte _0802E606 .4byte _0802E5FC .4byte _0802E5A8 .4byte _0802E5C0 _0802E5A8: bl sub_802BE74 ldr r1, _0802E5BC ldr r1, [r1] strb r0, [r1, 0x8] movs r0, 0x6 bl sub_802E088 b _0802E606 .align 2, 0 _0802E5BC: .4byte gUnknown_203B304 _0802E5C0: bl sub_802BE74 ldr r4, _0802E5F0 ldr r1, [r4] strb r0, [r1, 0x8] ldr r0, [r4] ldrb r0, [r0, 0x8] bl sub_8095FE8 adds r2, r0, 0 ldrb r0, [r2] cmp r0, 0x1 bne _0802E5F4 ldr r1, [r4] ldrb r0, [r2, 0x5] strb r0, [r1, 0x9] ldr r1, [r4] movs r0, 0x5 str r0, [r1, 0x4] movs r0, 0xB bl sub_802E088 b _0802E606 .align 2, 0 _0802E5F0: .4byte gUnknown_203B304 _0802E5F4: movs r0, 0x7 bl sub_802E088 b _0802E606 _0802E5FC: bl sub_802BEDC movs r0, 0x1 bl sub_802E088 _0802E606: pop {r4} pop {r0} bx r0 thumb_func_end sub_802E578 thumb_func_start sub_802E60C sub_802E60C: push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] bl sub_802BDEC ldr r4, _0802E650 ldr r0, [r4] adds r0, 0x6C bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _0802E63C ldr r0, [r4] adds r0, 0x6C mov r1, sp bl sub_8013114 ldr r1, [sp] cmp r1, 0x1 beq _0802E63C ldr r0, [r4] str r1, [r0, 0x68] _0802E63C: ldr r0, [sp] subs r0, 0x1 cmp r0, 0x7 bhi _0802E732 lsls r0, 2 ldr r1, _0802E654 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802E650: .4byte gUnknown_203B304 _0802E654: .4byte _0802E658 .align 2, 0 _0802E658: .4byte _0802E72C .4byte _0802E732 .4byte _0802E732 .4byte _0802E732 .4byte _0802E678 .4byte _0802E6BC .4byte _0802E704 .4byte _0802E6B4 _0802E678: ldr r0, _0802E6AC bl sub_8011988 ldr r4, _0802E6B0 ldr r0, [r4] ldrb r0, [r0, 0x8] bl sub_8095FE8 bl sub_8096A78 bl sub_8096C80 bl sub_8096D24 ldr r0, [r4] ldrb r0, [r0, 0x8] bl sub_8096040 bl sub_8096078 bl sub_802C0E8 lsls r0, 24 cmp r0, 0 bne _0802E6E8 b _0802E6FC .align 2, 0 _0802E6AC: .4byte 0x00000133 _0802E6B0: .4byte gUnknown_203B304 _0802E6B4: movs r0, 0x7 bl sub_802E088 b _0802E732 _0802E6BC: ldr r0, _0802E6F4 bl sub_8011988 ldr r4, _0802E6F8 ldr r0, [r4] ldrb r0, [r0, 0x8] bl sub_8095FE8 ldrb r0, [r0, 0x5] bl sub_8096DF8 ldr r0, [r4] ldrb r0, [r0, 0x8] bl sub_8096040 bl sub_8096078 bl sub_802C0E8 lsls r0, 24 cmp r0, 0 beq _0802E6FC _0802E6E8: bl sub_802BEDC movs r0, 0x1 bl sub_802E088 b _0802E732 .align 2, 0 _0802E6F4: .4byte 0x00000133 _0802E6F8: .4byte gUnknown_203B304 _0802E6FC: movs r0, 0x5 bl sub_802E088 b _0802E732 _0802E704: movs r0, 0 bl sub_80119D4 ldr r4, _0802E728 ldr r0, [r4] ldrb r0, [r0, 0x8] bl sub_8095FE8 ldr r1, [r4] ldrb r0, [r0, 0x5] strb r0, [r1, 0x9] ldr r1, [r4] movs r0, 0x5 str r0, [r1, 0x4] movs r0, 0xB bl sub_802E088 b _0802E732 .align 2, 0 _0802E728: .4byte gUnknown_203B304 _0802E72C: movs r0, 0x5 bl sub_802E088 _0802E732: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_802E60C thumb_func_start sub_802E73C sub_802E73C: push {lr} bl sub_802DEE0 cmp r0, 0x1 bls _0802E754 cmp r0, 0x3 bhi _0802E754 bl sub_802DF24 movs r0, 0x5 bl sub_802E088 _0802E754: pop {r0} bx r0 thumb_func_end sub_802E73C thumb_func_start sub_802E758 sub_802E758: push {lr} bl sub_802C898 cmp r0, 0x1 bls _0802E770 cmp r0, 0x3 bhi _0802E770 bl sub_802C8F4 movs r0, 0x1 bl sub_802E088 _0802E770: pop {r0} bx r0 thumb_func_end sub_802E758 thumb_func_start sub_802E774 sub_802E774: push {lr} movs r0, 0x1 bl sub_802B720 cmp r0, 0x4 bhi _0802E7CA lsls r0, 2 ldr r1, _0802E78C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802E78C: .4byte _0802E790 .align 2, 0 _0802E790: .4byte _0802E7CA .4byte _0802E7CA .4byte _0802E7C0 .4byte _0802E7A4 .4byte _0802E7A4 _0802E7A4: bl sub_802B7A8 ldr r2, _0802E7BC ldr r1, [r2] strb r0, [r1, 0x9] ldr r1, [r2] movs r0, 0xA str r0, [r1, 0x4] movs r0, 0xB bl sub_802E088 b _0802E7CA .align 2, 0 _0802E7BC: .4byte gUnknown_203B304 _0802E7C0: bl sub_802B81C movs r0, 0x1 bl sub_802E088 _0802E7CA: pop {r0} bx r0 thumb_func_end sub_802E774 thumb_func_start sub_802E7D0 sub_802E7D0: push {lr} bl sub_802BA8C cmp r0, 0x1 bls _0802E7EC cmp r0, 0x3 bhi _0802E7EC bl sub_802BACC ldr r0, _0802E7F0 ldr r0, [r0] ldr r0, [r0, 0x4] bl sub_802E088 _0802E7EC: pop {r0} bx r0 .align 2, 0 _0802E7F0: .4byte gUnknown_203B304 thumb_func_end sub_802E7D0 thumb_func_start nullsub_133 nullsub_133: bx lr thumb_func_end nullsub_133 thumb_func_start sub_802E7F8 sub_802E7F8: push {r4-r6,lr} sub sp, 0x8 adds r4, r0, 0 bl sub_8008C54 adds r0, r4, 0 bl sub_80073B8 ldr r2, _0802E85C movs r6, 0 str r6, [sp] movs r0, 0x3 movs r1, 0 adds r3, r4, 0 bl xxx_call_draw_string bl sub_80969AC adds r2, r0, 0 movs r5, 0x7 str r5, [sp] str r4, [sp, 0x4] movs r0, 0x12 movs r1, 0xD movs r3, 0x2 bl sub_8012BC4 ldr r2, _0802E860 str r6, [sp] movs r0, 0x16 movs r1, 0xD adds r3, r4, 0 bl xxx_call_draw_string str r5, [sp] str r4, [sp, 0x4] movs r0, 0x23 movs r1, 0xD movs r2, 0x8 movs r3, 0x2 bl sub_8012BC4 adds r0, r4, 0 bl sub_80073E0 add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0802E85C: .4byte gUnknown_80E0318 _0802E860: .4byte gUnknown_80E0324 thumb_func_end sub_802E7F8 thumb_func_start sub_802E864 sub_802E864: push {r4,lr} ldr r4, _0802E88C movs r0, 0xB6 lsls r0, 1 movs r1, 0x8 bl MemoryAlloc str r0, [r4] movs r1, 0 str r1, [r0, 0x64] str r1, [r0, 0x68] str r1, [r0, 0x4] movs r0, 0 bl sub_802E934 movs r0, 0x1 pop {r4} pop {r1} bx r1 .align 2, 0 _0802E88C: .4byte gUnknown_203B308 thumb_func_end sub_802E864 thumb_func_start sub_802E890 sub_802E890: push {lr} ldr r0, _0802E8A8 ldr r0, [r0] ldr r0, [r0] cmp r0, 0x8 bhi _0802E900 lsls r0, 2 ldr r1, _0802E8AC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802E8A8: .4byte gUnknown_203B308 _0802E8AC: .4byte _0802E8B0 .align 2, 0 _0802E8B0: .4byte _0802E8D4 .4byte _0802E8DC .4byte _0802E8E2 .4byte _0802E900 .4byte _0802E8E8 .4byte _0802E8E8 .4byte _0802E8EE .4byte _0802E8F4 .4byte _0802E8FA _0802E8D4: movs r0, 0x1 bl sub_802E934 b _0802E904 _0802E8DC: bl sub_802ECB4 b _0802E904 _0802E8E2: bl nullsub_134 b _0802E904 _0802E8E8: bl sub_802ED4C b _0802E904 _0802E8EE: bl sub_802EDBC b _0802E904 _0802E8F4: bl sub_802EEA0 b _0802E904 _0802E8FA: bl sub_802EEBC b _0802E904 _0802E900: movs r0, 0x3 b _0802E906 _0802E904: movs r0, 0 _0802E906: pop {r1} bx r1 thumb_func_end sub_802E890 thumb_func_start sub_802E90C sub_802E90C: ldr r0, _0802E914 ldr r0, [r0] ldr r0, [r0, 0x4] bx lr .align 2, 0 _0802E914: .4byte gUnknown_203B308 thumb_func_end sub_802E90C thumb_func_start sub_802E918 sub_802E918: push {r4,lr} ldr r4, _0802E930 ldr r0, [r4] cmp r0, 0 beq _0802E92A bl MemoryFree movs r0, 0 str r0, [r4] _0802E92A: pop {r4} pop {r0} bx r0 .align 2, 0 _0802E930: .4byte gUnknown_203B308 thumb_func_end sub_802E918 thumb_func_start sub_802E934 sub_802E934: push {lr} ldr r1, _0802E948 ldr r1, [r1] str r0, [r1] bl sub_802E94C bl sub_802EA58 pop {r0} bx r0 .align 2, 0 _0802E948: .4byte gUnknown_203B308 thumb_func_end sub_802E934 thumb_func_start sub_802E94C sub_802E94C: push {r4-r7,lr} mov r7, r8 push {r7} ldr r4, _0802E974 ldr r0, [r4] movs r6, 0x86 lsls r6, 1 adds r0, r6 bl sub_8006518 ldr r0, [r4] ldr r5, [r0] cmp r5, 0x1 beq _0802E97C cmp r5, 0x6 beq _0802E9D0 movs r3, 0 ldr r2, _0802E978 b _0802EA14 .align 2, 0 _0802E974: .4byte gUnknown_203B308 _0802E978: .4byte gUnknown_80E0330 _0802E97C: mov r12, r6 ldr r0, _0802E9C4 mov r8, r0 movs r2, 0 movs r3, 0x3 _0802E986: ldr r1, [r4] adds r1, r2 add r1, r12 mov r0, r8 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} adds r2, 0x18 subs r3, 0x1 cmp r3, 0 bge _0802E986 bl sub_802EB34 ldr r3, _0802E9C8 ldr r2, [r3] movs r0, 0x9E lsls r0, 1 adds r2, r0 ldr r1, _0802E9CC ldm r1!, {r4-r6} stm r2!, {r4-r6} ldm r1!, {r4,r5,r7} stm r2!, {r4,r5,r7} ldr r1, [r3] adds r0, r1, r0 adds r1, 0xBC bl sub_8012CAC b _0802EA34 .align 2, 0 _0802E9C4: .4byte gUnknown_80E0330 _0802E9C8: .4byte gUnknown_203B308 _0802E9CC: .4byte gUnknown_80E0348 _0802E9D0: bl sub_802EC10 ldr r2, [r4] movs r0, 0x9E lsls r0, 1 adds r2, r0 ldr r1, _0802EA0C ldm r1!, {r3,r6,r7} stm r2!, {r3,r6,r7} ldm r1!, {r3,r6,r7} stm r2!, {r3,r6,r7} ldr r1, [r4] adds r0, r1, r0 adds r1, 0xBC bl sub_8012CAC ldr r1, [r4] movs r4, 0xA4 lsls r4, 1 adds r0, r1, r4 strh r5, [r0] movs r5, 0xAA lsls r5, 1 adds r1, r5 ldr r0, _0802EA10 ldm r0!, {r2,r6,r7} stm r1!, {r2,r6,r7} ldm r0!, {r3-r5} stm r1!, {r3-r5} b _0802EA34 .align 2, 0 _0802EA0C: .4byte gUnknown_80E0360 _0802EA10: .4byte gUnknown_80E0378 _0802EA14: ldr r0, [r4] lsls r1, r3, 1 adds r1, r3 lsls r1, 3 adds r0, r1 movs r6, 0x86 lsls r6, 1 adds r0, r6 adds r1, r2, 0 ldm r1!, {r5-r7} stm r0!, {r5-r7} ldm r1!, {r5-r7} stm r0!, {r5-r7} adds r3, 0x1 cmp r3, 0x3 ble _0802EA14 _0802EA34: bl sub_8004914 ldr r0, _0802EA54 ldr r0, [r0] movs r7, 0x86 lsls r7, 1 adds r0, r7 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802EA54: .4byte gUnknown_203B308 thumb_func_end sub_802E94C thumb_func_start sub_802EA58 sub_802EA58: push {r4,lr} sub sp, 0x8 ldr r1, _0802EA74 ldr r0, [r1] ldr r0, [r0] adds r4, r1, 0 cmp r0, 0x8 bhi _0802EB2C lsls r0, 2 ldr r1, _0802EA78 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802EA74: .4byte gUnknown_203B308 _0802EA78: .4byte _0802EA7C .align 2, 0 _0802EA7C: .4byte _0802EB2C .4byte _0802EAA0 .4byte _0802EB2C .4byte _0802EB2C .4byte _0802EABE .4byte _0802EACA .4byte _0802EAD2 .4byte _0802EB00 .4byte _0802EB26 _0802EAA0: ldr r2, [r4] adds r0, r2, 0 adds r0, 0x6C adds r1, r2, 0 adds r1, 0xBC adds r3, r2, 0 adds r3, 0xFC ldr r2, [r2, 0x64] str r2, [sp] movs r2, 0x2 str r2, [sp, 0x4] movs r2, 0 bl sub_8012D60 b _0802EB2C _0802EABE: movs r0, 0 movs r1, 0 movs r2, 0x4 bl sub_802C10C b _0802EB2C _0802EACA: movs r0, 0x1 bl sub_802C28C b _0802EB2C _0802EAD2: bl sub_802C39C movs r0, 0x3 bl sub_802EEDC ldr r0, _0802EAFC ldr r2, [r0] adds r0, r2, 0 adds r0, 0x6C adds r1, r2, 0 adds r1, 0xBC ldr r2, [r2, 0x68] str r2, [sp] movs r2, 0x2 str r2, [sp, 0x4] movs r2, 0 movs r3, 0 bl sub_8012D60 b _0802EB2C .align 2, 0 _0802EAFC: .4byte gUnknown_203B308 _0802EB00: ldr r0, [r4] ldrb r0, [r0, 0x8] bl sub_8096574 ldr r1, [r4] adds r1, 0xC bl sub_803B35C ldr r0, [r4] movs r1, 0x3 str r1, [r0, 0xC] adds r0, 0x50 movs r1, 0 strb r1, [r0] ldr r0, [r4] adds r0, 0xC bl sub_802DE84 b _0802EB2C _0802EB26: movs r0, 0 bl sub_802C860 _0802EB2C: add sp, 0x8 pop {r4} pop {r0} bx r0 thumb_func_end sub_802EA58 thumb_func_start sub_802EB34 sub_802EB34: push {r4-r7,lr} ldr r4, _0802EBDC ldr r0, [r4] adds r0, 0xFC movs r1, 0 movs r2, 0x10 bl MemoryFill16 ldr r1, [r4] adds r2, r1, 0 adds r2, 0xBC ldr r0, _0802EBE0 str r0, [r2] adds r1, 0xC0 movs r0, 0x2 str r0, [r1] bl sub_802C4A4 lsls r0, 24 cmp r0, 0 beq _0802EB66 ldr r0, [r4] adds r0, 0xFC movs r1, 0x1 strh r1, [r0] _0802EB66: movs r5, 0x1 ldr r1, [r4] adds r2, r1, 0 adds r2, 0xC4 ldr r0, _0802EBE4 str r0, [r2] adds r1, 0xC8 movs r0, 0x3 str r0, [r1] bl sub_802C83C lsls r0, 24 cmp r0, 0 beq _0802EB88 ldr r0, [r4] adds r0, 0xFE strh r5, [r0] _0802EB88: movs r5, 0x2 ldr r2, [r4] adds r1, r2, 0 adds r1, 0xCC movs r0, 0 str r0, [r1] adds r1, 0x4 movs r0, 0x1 str r0, [r1] movs r3, 0 adds r6, r4, 0 mov r12, r2 mov r4, r12 adds r4, 0xFC adds r2, 0xC0 _0802EBA6: ldrh r0, [r4] cmp r0, 0 bne _0802EBB6 ldr r1, [r2] mov r7, r12 ldr r0, [r7, 0x64] cmp r1, r0 beq _0802EC0A _0802EBB6: adds r4, 0x2 adds r2, 0x8 adds r3, 0x1 cmp r3, r5 blt _0802EBA6 movs r3, 0 cmp r3, r5 bge _0802EC0A ldr r1, [r6] adds r0, r1, 0 adds r0, 0xFC ldrh r0, [r0] cmp r0, 0 bne _0802EBE8 adds r0, r1, 0 adds r0, 0xC0 ldr r0, [r0] str r0, [r1, 0x64] b _0802EC0A .align 2, 0 _0802EBDC: .4byte gUnknown_203B308 _0802EBE0: .4byte gUnknown_80E0390 _0802EBE4: .4byte gUnknown_80E03A0 _0802EBE8: adds r3, 0x1 cmp r3, r5 bge _0802EC0A ldr r2, [r6] lsls r0, r3, 1 adds r1, r2, 0 adds r1, 0xFC adds r1, r0 ldrh r0, [r1] cmp r0, 0 bne _0802EBE8 lsls r0, r3, 3 adds r1, r2, 0 adds r1, 0xC0 adds r1, r0 ldr r0, [r1] str r0, [r2, 0x64] _0802EC0A: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_802EB34 thumb_func_start sub_802EC10 sub_802EC10: push {r4-r7,lr} movs r6, 0 ldr r4, _0802ECA8 ldr r2, [r4] adds r1, r2, 0 adds r1, 0xBC ldr r0, _0802ECAC ldr r0, [r0] str r0, [r1] adds r1, 0x4 movs r0, 0x4 str r0, [r1] ldrb r0, [r2, 0x8] bl sub_8096574 bl sub_80968B0 lsls r0, 24 cmp r0, 0 bne _0802EC40 bl sub_80969AC cmp r0, 0x7 ble _0802EC4A _0802EC40: ldr r0, [r4] adds r0, 0xC0 movs r1, 0x1 negs r1, r1 str r1, [r0] _0802EC4A: adds r6, 0x1 ldr r4, _0802ECA8 ldr r5, [r4] lsls r1, r6, 3 adds r2, r5, 0 adds r2, 0xBC adds r3, r2, r1 ldr r0, _0802ECB0 ldr r0, [r0] str r0, [r3] adds r3, r5, 0 adds r3, 0xC0 adds r1, r3, r1 movs r0, 0x5 str r0, [r1] adds r6, 0x1 lsls r1, r6, 3 adds r2, r1 movs r0, 0 str r0, [r2] adds r1, r3, r1 movs r0, 0x1 str r0, [r1] movs r2, 0 adds r7, r4, 0 cmp r2, r6 bge _0802EC9C adds r4, r5, 0 movs r5, 0x1 negs r5, r5 adds r1, r3, 0 _0802EC88: ldr r3, [r1] cmp r3, r5 beq _0802EC94 ldr r0, [r4, 0x68] cmp r3, r0 beq _0802ECA2 _0802EC94: adds r1, 0x8 adds r2, 0x1 cmp r2, r6 blt _0802EC88 _0802EC9C: ldr r1, [r7] movs r0, 0x5 str r0, [r1, 0x68] _0802ECA2: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802ECA8: .4byte gUnknown_203B308 _0802ECAC: .4byte gUnknown_80D4990 _0802ECB0: .4byte gUnknown_80D4970 thumb_func_end sub_802EC10 thumb_func_start sub_802ECB4 sub_802ECB4: push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] ldr r4, _0802ECF0 ldr r0, [r4] adds r0, 0x6C bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _0802ECE0 ldr r0, [r4] adds r0, 0x6C mov r1, sp bl sub_8013114 ldr r1, [sp] cmp r1, 0x1 beq _0802ECE0 ldr r0, [r4] str r1, [r0, 0x64] _0802ECE0: ldr r0, [sp] cmp r0, 0x2 beq _0802ECFE cmp r0, 0x2 bgt _0802ECF4 cmp r0, 0x1 beq _0802ED3C b _0802ED42 .align 2, 0 _0802ECF0: .4byte gUnknown_203B308 _0802ECF4: cmp r0, 0x3 beq _0802ED10 cmp r0, 0x5 beq _0802ED34 b _0802ED42 _0802ECFE: bl sub_802C4A4 lsls r0, 24 cmp r0, 0 bne _0802ED22 movs r0, 0x4 bl sub_802E934 b _0802ED42 _0802ED10: bl sub_802C83C lsls r0, 24 cmp r0, 0 bne _0802ED22 movs r0, 0x8 bl sub_802E934 b _0802ED42 _0802ED22: ldr r0, _0802ED30 ldr r0, [r0] adds r0, 0x6C movs r1, 0x1 bl sub_8012EA4 b _0802ED42 .align 2, 0 _0802ED30: .4byte gUnknown_203B308 _0802ED34: movs r0, 0x2 bl sub_802E934 b _0802ED42 _0802ED3C: movs r0, 0x3 bl sub_802E934 _0802ED42: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_802ECB4 thumb_func_start sub_802ED4C sub_802ED4C: push {lr} movs r0, 0x1 bl sub_802C1E4 cmp r0, 0x4 bhi _0802EDB6 lsls r0, 2 ldr r1, _0802ED64 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802ED64: .4byte _0802ED68 .align 2, 0 _0802ED68: .4byte _0802EDB6 .4byte _0802EDB6 .4byte _0802EDAC .4byte _0802ED7C .4byte _0802ED94 _0802ED7C: bl sub_802C26C ldr r1, _0802ED90 ldr r1, [r1] strb r0, [r1, 0x8] movs r0, 0x6 bl sub_802E934 b _0802EDB6 .align 2, 0 _0802ED90: .4byte gUnknown_203B308 _0802ED94: bl sub_802C26C ldr r1, _0802EDA8 ldr r1, [r1] strb r0, [r1, 0x8] movs r0, 0x7 bl sub_802E934 b _0802EDB6 .align 2, 0 _0802EDA8: .4byte gUnknown_203B308 _0802EDAC: bl sub_802C2D4 movs r0, 0x1 bl sub_802E934 _0802EDB6: pop {r0} bx r0 thumb_func_end sub_802ED4C thumb_func_start sub_802EDBC sub_802EDBC: push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] bl sub_802C1E4 ldr r4, _0802EDFC ldr r0, [r4] adds r0, 0x6C bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _0802EDEC ldr r0, [r4] adds r0, 0x6C mov r1, sp bl sub_8013114 ldr r1, [sp] cmp r1, 0x1 beq _0802EDEC ldr r0, [r4] str r1, [r0, 0x68] _0802EDEC: ldr r0, [sp] cmp r0, 0x4 beq _0802EE06 cmp r0, 0x4 bgt _0802EE00 cmp r0, 0x1 beq _0802EE90 b _0802EE96 .align 2, 0 _0802EDFC: .4byte gUnknown_203B308 _0802EE00: cmp r0, 0x5 beq _0802EE88 b _0802EE96 _0802EE06: ldr r0, _0802EE28 bl sub_8011988 ldr r4, _0802EE2C ldr r0, [r4] ldrb r0, [r0, 0x8] bl sub_8096574 ldrb r1, [r0] cmp r1, 0x3 beq _0802EE3C cmp r1, 0x3 bgt _0802EE30 cmp r1, 0x2 beq _0802EE36 b _0802EE5E .align 2, 0 _0802EE28: .4byte 0x00000133 _0802EE2C: .4byte gUnknown_203B308 _0802EE30: cmp r1, 0x4 beq _0802EE42 b _0802EE5E _0802EE36: ldr r0, [r4] movs r1, 0x1 b _0802EE46 _0802EE3C: ldr r0, [r4] movs r1, 0x2 b _0802EE46 _0802EE42: ldr r0, [r4] movs r1, 0x3 _0802EE46: str r1, [r0, 0x4] ldrb r0, [r0, 0x8] bl sub_80965B8 bl sub_80965F4 bl sub_802C2D4 movs r0, 0x3 bl sub_802E934 b _0802EE96 _0802EE5E: bl sub_8096A78 bl sub_8096C80 bl sub_8096D24 bl sub_802C4A4 lsls r0, 24 cmp r0, 0 beq _0802EE80 bl sub_802C2D4 movs r0, 0x1 bl sub_802E934 b _0802EE96 _0802EE80: movs r0, 0x5 bl sub_802E934 b _0802EE96 _0802EE88: movs r0, 0x7 bl sub_802E934 b _0802EE96 _0802EE90: movs r0, 0x5 bl sub_802E934 _0802EE96: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_802EDBC thumb_func_start sub_802EEA0 sub_802EEA0: push {lr} bl sub_802DEE0 cmp r0, 0x1 bls _0802EEB8 cmp r0, 0x3 bhi _0802EEB8 bl sub_802DF24 movs r0, 0x5 bl sub_802E934 _0802EEB8: pop {r0} bx r0 thumb_func_end sub_802EEA0 thumb_func_start sub_802EEBC sub_802EEBC: push {lr} bl sub_802C898 cmp r0, 0x1 bls _0802EED4 cmp r0, 0x3 bhi _0802EED4 bl sub_802C8F4 movs r0, 0x1 bl sub_802E934 _0802EED4: pop {r0} bx r0 thumb_func_end sub_802EEBC thumb_func_start nullsub_134 nullsub_134: bx lr thumb_func_end nullsub_134 thumb_func_start sub_802EEDC sub_802EEDC: push {r4-r6,lr} sub sp, 0x8 adds r4, r0, 0 bl sub_8008C54 adds r0, r4, 0 bl sub_80073B8 ldr r2, _0802EF40 movs r6, 0 str r6, [sp] movs r0, 0x3 movs r1, 0 adds r3, r4, 0 bl xxx_call_draw_string bl sub_80969AC adds r2, r0, 0 movs r5, 0x7 str r5, [sp] str r4, [sp, 0x4] movs r0, 0x12 movs r1, 0xD movs r3, 0x2 bl sub_8012BC4 ldr r2, _0802EF44 str r6, [sp] movs r0, 0x16 movs r1, 0xD adds r3, r4, 0 bl xxx_call_draw_string str r5, [sp] str r4, [sp, 0x4] movs r0, 0x23 movs r1, 0xD movs r2, 0x8 movs r3, 0x2 bl sub_8012BC4 adds r0, r4, 0 bl sub_80073E0 add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0802EF40: .4byte gUnknown_80E03AC _0802EF44: .4byte gUnknown_80E03B8 thumb_func_end sub_802EEDC thumb_func_start sub_802EF48 sub_802EF48: push {r4,lr} ldr r4, _0802EF68 movs r0, 0xA8 lsls r0, 1 movs r1, 0x8 bl MemoryAlloc str r0, [r4] movs r0, 0 bl sub_802EFEC movs r0, 0x1 pop {r4} pop {r1} bx r1 .align 2, 0 _0802EF68: .4byte gUnknown_203B30C thumb_func_end sub_802EF48 thumb_func_start sub_802EF6C sub_802EF6C: push {lr} ldr r0, _0802EF84 ldr r0, [r0] ldr r0, [r0] cmp r0, 0x5 bhi _0802EFBA lsls r0, 2 ldr r1, _0802EF88 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802EF84: .4byte gUnknown_203B30C _0802EF88: .4byte _0802EF8C .align 2, 0 _0802EF8C: .4byte _0802EFA4 .4byte _0802EFA4 .4byte _0802EFAA .4byte _0802EFB0 .4byte _0802EFB6 .4byte _0802EFBA _0802EFA4: bl sub_802F148 b _0802EFBE _0802EFAA: bl sub_802F184 b _0802EFBE _0802EFB0: bl sub_802F1E8 b _0802EFBE _0802EFB6: movs r0, 0x3 b _0802EFC0 _0802EFBA: movs r0, 0x2 b _0802EFC0 _0802EFBE: movs r0, 0 _0802EFC0: pop {r1} bx r1 thumb_func_end sub_802EF6C thumb_func_start sub_802EFC4 sub_802EFC4: ldr r0, _0802EFCC ldr r0, [r0] ldrb r0, [r0, 0x4] bx lr .align 2, 0 _0802EFCC: .4byte gUnknown_203B30C thumb_func_end sub_802EFC4 thumb_func_start sub_802EFD0 sub_802EFD0: push {r4,lr} ldr r4, _0802EFE8 ldr r0, [r4] cmp r0, 0 beq _0802EFE2 bl MemoryFree movs r0, 0 str r0, [r4] _0802EFE2: pop {r4} pop {r0} bx r0 .align 2, 0 _0802EFE8: .4byte gUnknown_203B30C thumb_func_end sub_802EFD0 thumb_func_start sub_802EFEC sub_802EFEC: push {lr} ldr r1, _0802F000 ldr r1, [r1] str r0, [r1] bl sub_802F004 bl sub_802F088 pop {r0} bx r0 .align 2, 0 _0802F000: .4byte gUnknown_203B30C thumb_func_end sub_802EFEC thumb_func_start sub_802F004 sub_802F004: push {r4-r7,lr} ldr r4, _0802F03C ldr r0, [r4] adds r0, 0xF0 bl sub_8006518 ldr r0, [r4] ldr r0, [r0] cmp r0, 0x2 bne _0802F044 bl sub_802F108 ldr r2, [r4] movs r0, 0x90 lsls r0, 1 adds r2, r0 ldr r1, _0802F040 ldm r1!, {r3,r5,r6} stm r2!, {r3,r5,r6} ldm r1!, {r3,r5,r7} stm r2!, {r3,r5,r7} ldr r1, [r4] adds r0, r1, r0 adds r1, 0xB0 bl sub_8012CAC b _0802F066 .align 2, 0 _0802F03C: .4byte gUnknown_203B30C _0802F040: .4byte gUnknown_80E03F4 _0802F044: mov r12, r4 ldr r4, _0802F080 movs r2, 0 movs r3, 0x3 _0802F04C: mov r6, r12 ldr r1, [r6] adds r1, r2 adds r1, 0xF0 adds r0, r4, 0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} adds r2, 0x18 subs r3, 0x1 cmp r3, 0 bge _0802F04C _0802F066: bl sub_8004914 ldr r0, _0802F084 ldr r0, [r0] adds r0, 0xF0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802F080: .4byte gUnknown_80E03C4 _0802F084: .4byte gUnknown_203B30C thumb_func_end sub_802F004 thumb_func_start sub_802F088 sub_802F088: push {r4-r6,lr} sub sp, 0x8 ldr r6, _0802F0A0 ldr r0, [r6] ldr r5, [r0] cmp r5, 0x1 beq _0802F0B6 cmp r5, 0x1 bgt _0802F0A4 cmp r5, 0 beq _0802F0AE b _0802F100 .align 2, 0 _0802F0A0: .4byte gUnknown_203B30C _0802F0A4: cmp r5, 0x2 beq _0802F0BE cmp r5, 0x3 beq _0802F0DA b _0802F100 _0802F0AE: movs r0, 0 bl sub_802CDD4 b _0802F100 _0802F0B6: movs r0, 0x1 bl sub_802CED8 b _0802F100 _0802F0BE: bl sub_802CFD0 ldr r1, [r6] adds r0, r1, 0 adds r0, 0x60 adds r1, 0xB0 movs r2, 0x3 str r2, [sp] str r5, [sp, 0x4] movs r2, 0 movs r3, 0 bl sub_8012D60 b _0802F100 _0802F0DA: ldrb r0, [r0, 0x4] bl sub_803B344 adds r4, r0, 0 ldr r1, [r6] adds r1, 0x8 bl sub_803B35C ldr r0, [r6] str r5, [r0, 0x8] adds r0, 0x4C movs r1, 0 strb r1, [r0] ldr r0, [r6] ldr r1, [r4, 0x18] str r1, [r0, 0x58] adds r0, 0x8 bl sub_802DE84 _0802F100: add sp, 0x8 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_802F088 thumb_func_start sub_802F108 sub_802F108: ldr r0, _0802F13C ldr r0, [r0] mov r12, r0 movs r3, 0 mov r1, r12 adds r1, 0xB0 ldr r0, _0802F140 str r0, [r1] adds r1, 0x4 movs r0, 0x2 str r0, [r1] movs r2, 0x1 adds r1, 0x4 ldr r0, _0802F144 ldr r0, [r0] str r0, [r1] adds r1, 0x4 movs r0, 0x3 str r0, [r1] mov r0, r12 adds r0, 0xC0 str r3, [r0] adds r0, 0x4 str r2, [r0] bx lr .align 2, 0 _0802F13C: .4byte gUnknown_203B30C _0802F140: .4byte gUnknown_80E040C _0802F144: .4byte gUnknown_80D4970 thumb_func_end sub_802F108 thumb_func_start sub_802F148 sub_802F148: push {lr} movs r0, 0x1 bl sub_802CE5C cmp r0, 0x2 beq _0802F174 cmp r0, 0x2 bcc _0802F17E cmp r0, 0x3 bne _0802F17E bl sub_802CEBC ldr r1, _0802F170 ldr r1, [r1] strb r0, [r1, 0x4] movs r0, 0x2 bl sub_802EFEC b _0802F17E .align 2, 0 _0802F170: .4byte gUnknown_203B30C _0802F174: bl sub_802CF14 movs r0, 0x5 bl sub_802EFEC _0802F17E: pop {r0} bx r0 thumb_func_end sub_802F148 thumb_func_start sub_802F184 sub_802F184: push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] bl sub_802CE5C ldr r4, _0802F1BC ldr r0, [r4] adds r0, 0x60 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _0802F1AA ldr r0, [r4] adds r0, 0x60 mov r1, sp bl sub_8013114 _0802F1AA: ldr r0, [sp] cmp r0, 0x2 beq _0802F1C6 cmp r0, 0x2 bgt _0802F1C0 cmp r0, 0x1 beq _0802F1DA b _0802F1E0 .align 2, 0 _0802F1BC: .4byte gUnknown_203B30C _0802F1C0: cmp r0, 0x3 beq _0802F1D2 b _0802F1E0 _0802F1C6: bl sub_802CF14 movs r0, 0x4 bl sub_802EFEC b _0802F1E0 _0802F1D2: movs r0, 0x3 bl sub_802EFEC b _0802F1E0 _0802F1DA: movs r0, 0x1 bl sub_802EFEC _0802F1E0: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_802F184 thumb_func_start sub_802F1E8 sub_802F1E8: push {lr} bl sub_802DEE0 cmp r0, 0x1 bls _0802F200 cmp r0, 0x3 bhi _0802F200 bl sub_802DF24 movs r0, 0x1 bl sub_802EFEC _0802F200: pop {r0} bx r0 thumb_func_end sub_802F1E8 thumb_func_start sub_802F204 sub_802F204: push {r4-r6,lr} adds r6, r0, 0 lsls r4, r1, 24 lsrs r4, 24 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r5, _0802F28C movs r0, 0x84 movs r1, 0x8 bl MemoryAlloc str r0, [r5] str r6, [r0, 0x10] movs r6, 0 str r6, [r0, 0xC] strb r4, [r0, 0x8] ldr r1, [r5] ldr r0, _0802F290 ldr r1, [r1, 0x10] bl strcpy ldr r4, _0802F294 bl sub_808D33C adds r1, r0, 0 adds r0, r4, 0 bl sub_808DA34 ldr r0, [r5] ldr r0, [r0, 0x10] movs r1, 0x14 ldrsh r0, [r0, r1] bl sub_808DDD0 ldr r1, [r5] str r0, [r1, 0x14] str r6, [r1, 0x18] adds r1, 0x20 strb r6, [r1] ldr r0, [r5] adds r0, 0x21 strb r6, [r0] ldr r0, [r5] adds r0, 0x22 strb r6, [r0] ldr r5, [r5] movs r0, 0x2 strh r0, [r5, 0x1C] movs r0, 0x8 strh r0, [r5, 0x1E] ldr r0, [r5, 0x14] cmp r0, 0 beq _0802F27C ldr r0, [r0, 0x4] str r0, [r5, 0x18] _0802F27C: movs r0, 0 bl sub_802F2E8 movs r0, 0x1 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0802F28C: .4byte gUnknown_203B310 _0802F290: .4byte gUnknown_202E5D8 _0802F294: .4byte gUnknown_202DF98 thumb_func_end sub_802F204 thumb_func_start sub_802F298 sub_802F298: push {lr} ldr r0, _0802F2AC ldr r0, [r0] ldr r0, [r0] cmp r0, 0x5 beq _0802F2B0 cmp r0, 0x9 bne _0802F2B6 movs r0, 0x3 b _0802F2BC .align 2, 0 _0802F2AC: .4byte gUnknown_203B310 _0802F2B0: bl sub_802F6FC b _0802F2BA _0802F2B6: bl sub_802F718 _0802F2BA: movs r0, 0 _0802F2BC: pop {r1} bx r1 thumb_func_end sub_802F298 thumb_func_start sub_802F2C0 sub_802F2C0: push {r4,lr} ldr r4, _0802F2E4 ldr r0, [r4] cmp r0, 0 beq _0802F2DE ldr r0, [r0, 0x14] cmp r0, 0 beq _0802F2D4 bl CloseFile _0802F2D4: ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _0802F2DE: pop {r4} pop {r0} bx r0 .align 2, 0 _0802F2E4: .4byte gUnknown_203B310 thumb_func_end sub_802F2C0 thumb_func_start sub_802F2E8 sub_802F2E8: push {lr} ldr r1, _0802F2FC ldr r1, [r1] str r0, [r1] bl sub_802F300 bl sub_802F358 pop {r0} bx r0 .align 2, 0 _0802F2FC: .4byte gUnknown_203B310 thumb_func_end sub_802F2E8 thumb_func_start sub_802F300 sub_802F300: push {r4-r7,lr} ldr r4, _0802F350 ldr r1, [r4] ldr r0, [r1] cmp r0, 0 bne _0802F348 adds r0, r1, 0 adds r0, 0x24 bl sub_8006518 mov r12, r4 ldr r4, _0802F354 movs r3, 0 movs r2, 0x3 _0802F31C: mov r0, r12 ldr r1, [r0] adds r1, r3 adds r1, 0x24 adds r0, r4, 0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} adds r3, 0x18 subs r2, 0x1 cmp r2, 0 bge _0802F31C bl sub_8004914 ldr r0, _0802F350 ldr r0, [r0] adds r0, 0x24 movs r1, 0x1 movs r2, 0x1 bl sub_800641C _0802F348: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802F350: .4byte gUnknown_203B310 _0802F354: .4byte gUnknown_80E041C thumb_func_end sub_802F300 thumb_func_start sub_802F358 sub_802F358: push {r4-r6,lr} sub sp, 0x10 ldr r1, _0802F374 ldr r0, [r1] ldr r0, [r0] adds r6, r1, 0 cmp r0, 0x9 bls _0802F36A b _0802F6E4 _0802F36A: lsls r0, 2 ldr r1, _0802F378 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802F374: .4byte gUnknown_203B310 _0802F378: .4byte _0802F37C .align 2, 0 _0802F37C: .4byte _0802F3A4 .4byte _0802F3E8 .4byte _0802F444 .4byte _0802F494 .4byte _0802F524 .4byte _0802F5CC .4byte _0802F614 .4byte _0802F630 .4byte _0802F6A4 .4byte _0802F6E4 _0802F3A4: ldr r2, [r6] ldr r0, [r2, 0x10] ldr r1, [r0, 0x18] cmp r1, 0 bne _0802F3B6 movs r0, 0x2 bl sub_802F2E8 b _0802F6E4 _0802F3B6: ldr r0, _0802F3D4 str r1, [r0] ldrb r0, [r2, 0x8] cmp r0, 0 beq _0802F3E0 ldr r0, _0802F3D8 adds r2, 0x14 ldr r3, _0802F3DC movs r1, 0 bl sub_80141B4 ldr r1, [r6] movs r0, 0x1 str r0, [r1, 0x4] b _0802F6E4 .align 2, 0 _0802F3D4: .4byte gUnknown_202DE30 _0802F3D8: .4byte gUnknown_80E0434 _0802F3DC: .4byte 0x0000010d _0802F3E0: movs r0, 0x1 bl sub_802F2E8 b _0802F6E4 _0802F3E8: movs r0, 0xCB bl sub_8011988 ldr r0, _0802F414 ldr r0, [r0] ldr r0, [r0, 0x10] ldr r0, [r0, 0x18] bl sub_80913A0 movs r0, 0 bl sub_808D544 cmp r0, 0x1 bgt _0802F420 ldr r0, _0802F418 ldr r3, _0802F41C movs r1, 0 movs r2, 0 bl sub_80141B4 b _0802F42C .align 2, 0 _0802F414: .4byte gUnknown_203B310 _0802F418: .4byte gUnknown_80E045C _0802F41C: .4byte 0x00000101 _0802F420: ldr r0, _0802F438 ldr r3, _0802F43C movs r1, 0 movs r2, 0 bl sub_80141B4 _0802F42C: ldr r0, _0802F440 ldr r1, [r0] movs r0, 0x2 str r0, [r1, 0x4] b _0802F6E4 .align 2, 0 _0802F438: .4byte gUnknown_80E0484 _0802F43C: .4byte 0x00000101 _0802F440: .4byte gUnknown_203B310 _0802F444: ldr r0, [r6] ldr r0, [r0, 0x10] adds r1, r0, 0 adds r1, 0x20 ldrb r0, [r1] cmp r0, 0 bne _0802F45A movs r0, 0x4 bl sub_802F2E8 b _0802F6E4 _0802F45A: ldr r0, _0802F480 ldrb r1, [r1] movs r2, 0 bl sub_8092578 ldr r2, [r6] ldrb r0, [r2, 0x8] cmp r0, 0 beq _0802F48C ldr r0, _0802F484 adds r2, 0x14 ldr r3, _0802F488 movs r1, 0 bl sub_80141B4 ldr r1, [r6] movs r0, 0x3 str r0, [r1, 0x4] b _0802F6E4 .align 2, 0 _0802F480: .4byte gUnknown_202E628 _0802F484: .4byte gUnknown_80E04B4 _0802F488: .4byte 0x0000010d _0802F48C: movs r0, 0x3 bl sub_802F2E8 b _0802F6E4 _0802F494: ldr r4, _0802F4B4 ldr r0, [r4] ldr r0, [r0, 0x10] adds r0, 0x20 ldrb r0, [r0] bl sub_8092600 lsls r0, 24 cmp r0, 0 beq _0802F4BC movs r0, 0xFA lsls r0, 2 bl sub_80913A0 ldr r0, _0802F4B8 b _0802F4DA .align 2, 0 _0802F4B4: .4byte gUnknown_203B310 _0802F4B8: .4byte gUnknown_80E04F4 _0802F4BC: movs r0, 0 bl sub_808D544 cmp r0, 0x1 bgt _0802F4F0 ldr r0, [r4] ldr r0, [r0, 0x10] adds r0, 0x20 ldrb r0, [r0] bl sub_80925EC movs r0, 0xCE bl sub_8011988 ldr r0, _0802F4E8 _0802F4DA: ldr r3, _0802F4EC movs r1, 0 movs r2, 0 bl sub_80141B4 b _0802F50E .align 2, 0 _0802F4E8: .4byte gUnknown_80E05C0 _0802F4EC: .4byte 0x00000101 _0802F4F0: ldr r0, [r4] ldr r0, [r0, 0x10] adds r0, 0x20 ldrb r0, [r0] bl sub_80925EC movs r0, 0xCE bl sub_8011988 ldr r0, _0802F518 ldr r3, _0802F51C movs r1, 0 movs r2, 0 bl sub_80141B4 _0802F50E: ldr r0, _0802F520 ldr r1, [r0] movs r0, 0x4 str r0, [r1, 0x4] b _0802F6E4 .align 2, 0 _0802F518: .4byte gUnknown_80E05FC _0802F51C: .4byte 0x00000101 _0802F520: .4byte gUnknown_203B310 _0802F524: ldr r0, [r6] ldr r0, [r0, 0x10] ldrb r2, [r0, 0x1C] cmp r2, 0 beq _0802F628 ldr r0, [r0, 0x18] cmp r0, 0 bne _0802F620 lsls r2, 16 ldr r1, _0802F564 ldr r0, [sp, 0xC] ands r0, r1 orrs r0, r2 str r0, [sp, 0xC] lsrs r0, 16 lsls r0, 24 lsrs r0, 24 bl sub_8090A60 lsls r0, 24 cmp r0, 0 beq _0802F56C ldr r0, [r6] ldr r0, [r0, 0x10] ldrb r1, [r0, 0x1F] lsls r1, 8 ldr r2, _0802F568 ldr r0, [sp, 0xC] ands r0, r2 orrs r0, r1 b _0802F572 .align 2, 0 _0802F564: .4byte 0xff00ffff _0802F568: .4byte 0xffff00ff _0802F56C: ldr r1, _0802F5B4 ldr r0, [sp, 0xC] ands r0, r1 _0802F572: str r0, [sp, 0xC] ldr r1, _0802F5B8 ldr r0, [sp, 0xC] ands r0, r1 movs r2, 0x1 orrs r0, r2 str r0, [sp, 0xC] movs r1, 0 str r1, [sp] mov r0, sp strb r1, [r0, 0x4] strb r2, [r0, 0x8] ldr r0, _0802F5BC add r1, sp, 0xC mov r2, sp bl sub_8090E14 ldr r4, _0802F5C0 ldr r2, [r4] ldrb r0, [r2, 0x8] cmp r0, 0 beq _0802F620 ldr r0, _0802F5C4 adds r2, 0x14 ldr r3, _0802F5C8 movs r1, 0 bl sub_80141B4 ldr r1, [r4] movs r0, 0x5 str r0, [r1, 0x4] b _0802F6E4 .align 2, 0 _0802F5B4: .4byte 0xffff00ff _0802F5B8: .4byte 0xffffff00 _0802F5BC: .4byte gUnknown_202DEA8 _0802F5C0: .4byte gUnknown_203B310 _0802F5C4: .4byte gUnknown_80E0640 _0802F5C8: .4byte 0x0000010d _0802F5CC: ldr r0, [r6] ldr r2, [r0, 0x10] adds r1, r2, 0 adds r1, 0x1C ldr r3, [r0, 0xC] adds r1, r3 ldrb r0, [r1] cmp r0, 0 bne _0802F5E6 movs r0, 0x6 bl sub_802F2E8 b _0802F6E4 _0802F5E6: cmp r3, 0 bne _0802F5FC ldr r0, [r2, 0x18] cmp r0, 0 bne _0802F5FC ldrb r1, [r2, 0x1C] ldrb r2, [r2, 0x1F] movs r0, 0 bl sub_801B60C b _0802F6E4 _0802F5FC: ldr r1, [r6] ldr r2, [r1, 0x10] adds r0, r2, 0 adds r0, 0x1C ldr r1, [r1, 0xC] adds r0, r1 ldrb r1, [r0] ldrb r2, [r2, 0x1F] movs r0, 0x1 bl sub_801B60C b _0802F6E4 _0802F614: ldr r1, [r6] ldr r0, [r1, 0xC] adds r0, 0x1 str r0, [r1, 0xC] cmp r0, 0x2 bgt _0802F628 _0802F620: movs r0, 0x5 bl sub_802F2E8 b _0802F6E4 _0802F628: movs r0, 0x7 bl sub_802F2E8 b _0802F6E4 _0802F630: adds r5, r6, 0 ldr r0, [r5] ldr r0, [r0, 0x10] ldr r0, [r0, 0x24] cmp r0, 0 bne _0802F644 movs r0, 0x9 bl sub_802F2E8 b _0802F6E4 _0802F644: bl sub_8092178 ldr r1, [r5] strb r0, [r1, 0x9] ldr r0, [r5] ldr r0, [r0, 0x10] ldr r0, [r0, 0x24] bl sub_8092158 movs r0, 0xCB bl sub_8011988 ldr r4, [r5] bl sub_8092178 ldrb r1, [r4, 0x9] lsls r0, 24 lsrs r0, 24 cmp r1, r0 beq _0802F672 ldr r1, [r5] movs r0, 0x8 b _0802F676 _0802F672: ldr r1, [r6] movs r0, 0x9 _0802F676: str r0, [r1, 0x4] ldr r1, _0802F694 ldr r0, _0802F698 ldr r0, [r0] ldr r0, [r0, 0x10] ldr r0, [r0, 0x24] str r0, [r1] ldr r0, _0802F69C ldr r3, _0802F6A0 movs r1, 0 movs r2, 0 bl sub_80141B4 b _0802F6E4 .align 2, 0 _0802F694: .4byte gUnknown_202DE30 _0802F698: .4byte gUnknown_203B310 _0802F69C: .4byte gUnknown_80E0670 _0802F6A0: .4byte 0x00000101 _0802F6A4: movs r0, 0xC9 bl sub_8011988 ldr r0, _0802F6EC ldr r1, [r0] movs r0, 0x9 str r0, [r1, 0x4] ldrb r0, [r1, 0x9] bl sub_80921A8 adds r1, r0, 0 ldr r4, _0802F6F0 adds r0, r4, 0 bl strcpy bl sub_8092178 lsls r0, 24 lsrs r0, 24 bl sub_80921A8 adds r1, r0, 0 adds r4, 0x50 adds r0, r4, 0 bl strcpy ldr r0, _0802F6F4 ldr r3, _0802F6F8 movs r1, 0 movs r2, 0 bl sub_80141B4 _0802F6E4: add sp, 0x10 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0802F6EC: .4byte gUnknown_203B310 _0802F6F0: .4byte gUnknown_202E038 _0802F6F4: .4byte gUnknown_80E06A8 _0802F6F8: .4byte 0x00000101 thumb_func_end sub_802F358 thumb_func_start sub_802F6FC sub_802F6FC: push {lr} bl sub_801B6AC cmp r0, 0x1 bls _0802F714 cmp r0, 0x3 bhi _0802F714 bl sub_801B72C movs r0, 0x6 bl sub_802F2E8 _0802F714: pop {r0} bx r0 thumb_func_end sub_802F6FC thumb_func_start sub_802F718 sub_802F718: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802F730 ldr r0, _0802F738 ldr r0, [r0] ldr r0, [r0, 0x4] bl sub_802F2E8 _0802F730: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _0802F738: .4byte gUnknown_203B310 thumb_func_end sub_802F718 thumb_func_start sub_802F73C sub_802F73C: push {r4-r7,lr} mov r7, r8 push {r7} adds r5, r0, 0 adds r7, r1, 0 mov r8, r2 lsls r3, 24 lsrs r6, r3, 24 bl sub_802FCF0 lsls r0, 24 cmp r0, 0 beq _0802F75A movs r0, 0 b _0802F836 _0802F75A: ldr r4, _0802F7AC ldr r0, [r4] cmp r0, 0 bne _0802F76E movs r0, 0xAE lsls r0, 1 movs r1, 0x8 bl MemoryAlloc str r0, [r4] _0802F76E: ldr r0, [r4] adds r0, 0xB8 strb r6, [r0] ldr r0, [r4] adds r1, r0, 0 adds r1, 0xF0 str r5, [r1] adds r2, r0, 0 adds r2, 0xF4 lsls r1, r5, 1 adds r1, r5 lsls r1, 3 adds r1, 0xF8 adds r1, r0, r1 str r1, [r2] adds r0, 0xF8 bl sub_8006518 cmp r6, 0 beq _0802F7B4 ldr r1, [r4] adds r0, r1, 0 adds r0, 0xF0 ldr r2, [r0] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, 0xF8 ldr r0, _0802F7B0 b _0802F7C8 .align 2, 0 _0802F7AC: .4byte gUnknown_203B314 _0802F7B0: .4byte gUnknown_80E072C _0802F7B4: ldr r1, [r4] adds r0, r1, 0 adds r0, 0xF0 ldr r2, [r0] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, 0xF8 ldr r0, _0802F840 _0802F7C8: ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldr r4, _0802F844 ldr r2, [r4] adds r0, r2, 0 adds r0, 0xF4 ldr r1, [r0] movs r3, 0xAC lsls r3, 1 adds r0, r2, r3 str r0, [r1, 0x14] cmp r7, 0 beq _0802F7FC adds r0, r2, 0 adds r0, 0xF0 ldr r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 subs r3, 0x58 adds r1, r2, r3 adds r1, r0 ldr r0, [r7] str r0, [r1] _0802F7FC: ldr r0, [r4] adds r0, 0xF4 ldr r0, [r0] mov r1, r8 bl sub_8012D08 bl sub_8004914 ldr r0, [r4] adds r0, 0xF8 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, [r4] adds r4, 0xBC bl sub_802FBF4 adds r1, r0, 0 adds r0, r4, 0 mov r2, r8 adds r3, r5, 0 bl sub_8013818 bl sub_802F9C0 bl sub_802FA50 movs r0, 0x1 _0802F836: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0802F840: .4byte gUnknown_80E0714 _0802F844: .4byte gUnknown_203B314 thumb_func_end sub_802F73C thumb_func_start sub_802F848 sub_802F848: push {r4,r5,lr} lsls r0, 16 asrs r4, r0, 16 movs r3, 0 ldr r1, _0802F858 ldr r0, [r1] b _0802F884 .align 2, 0 _0802F858: .4byte gUnknown_203B314 _0802F85C: ldr r2, [r1] lsls r0, r3, 1 adds r0, r2, r0 movs r5, 0 ldrsh r0, [r0, r5] cmp r0, r4 bne _0802F880 adds r0, r2, 0 adds r0, 0xBC adds r1, r3, 0 bl sub_8013878 bl sub_802F9C0 bl sub_802FA50 movs r0, 0x1 b _0802F89A _0802F880: adds r3, 0x1 adds r0, r2, 0 _0802F884: adds r0, 0xDE movs r2, 0 ldrsh r0, [r0, r2] cmp r3, r0 blt _0802F85C ldr r0, [r1] adds r0, 0xBC movs r1, 0 bl sub_8013878 movs r0, 0 _0802F89A: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_802F848 thumb_func_start sub_802F8A0 sub_802F8A0: push {r4,lr} lsls r0, 24 cmp r0, 0 bne _0802F8BC ldr r0, _0802F8B8 ldr r0, [r0] adds r0, 0xBC bl sub_8013660 movs r0, 0 b _0802F904 .align 2, 0 _0802F8B8: .4byte gUnknown_203B314 _0802F8BC: ldr r4, _0802F8D8 ldr r0, [r4] adds r0, 0xBC bl GetKeyPress cmp r0, 0x1 beq _0802F8DC cmp r0, 0x2 bne _0802F8E6 movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 b _0802F904 .align 2, 0 _0802F8D8: .4byte gUnknown_203B314 _0802F8DC: movs r0, 0 bl sub_80119D4 movs r0, 0x3 b _0802F904 _0802F8E6: ldr r0, [r4] adds r0, 0xBC movs r1, 0x1 bl sub_80138B8 lsls r0, 24 cmp r0, 0 bne _0802F8FA movs r0, 0 b _0802F904 _0802F8FA: bl sub_802F9C0 bl sub_802FA50 movs r0, 0x1 _0802F904: pop {r4} pop {r1} bx r1 thumb_func_end sub_802F8A0 thumb_func_start sub_802F90C sub_802F90C: ldr r0, _0802F934 ldr r2, [r0] adds r0, r2, 0 adds r0, 0xDA movs r3, 0 ldrsh r1, [r0, r3] subs r0, 0x2 movs r3, 0 ldrsh r0, [r0, r3] muls r0, r1 adds r1, r2, 0 adds r1, 0xD4 movs r3, 0 ldrsh r1, [r1, r3] adds r0, r1 lsls r0, 1 adds r0, r2, r0 movs r1, 0 ldrsh r0, [r0, r1] bx lr .align 2, 0 _0802F934: .4byte gUnknown_203B314 thumb_func_end sub_802F90C thumb_func_start sub_802F938 sub_802F938: push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_802FBF4 adds r1, r0, 0 ldr r5, _0802F970 ldr r0, [r5] adds r2, r0, 0 adds r2, 0xDE strh r1, [r2] adds r0, 0xBC bl sub_8013984 bl sub_802F9C0 bl sub_802FA50 cmp r4, 0 beq _0802F96A ldr r0, [r5] adds r0, 0xBC bl AddMenuCursorSprite _0802F96A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802F970: .4byte gUnknown_203B314 thumb_func_end sub_802F938 thumb_func_start sub_802F974 sub_802F974: push {r4,r5,lr} ldr r4, _0802F9B8 ldr r2, [r4] cmp r2, 0 beq _0802F9B2 adds r0, r2, 0 adds r0, 0xF0 ldr r0, [r0] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 adds r1, 0xF8 ldr r0, _0802F9BC ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} bl sub_8004914 ldr r0, [r4] adds r0, 0xF8 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _0802F9B2: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802F9B8: .4byte gUnknown_203B314 _0802F9BC: .4byte gUnknown_80E06FC thumb_func_end sub_802F974 thumb_func_start sub_802F9C0 sub_802F9C0: push {r4,r5,lr} ldr r4, _0802FA44 ldr r0, [r4] movs r1, 0xAC lsls r1, 1 adds r0, r1 movs r2, 0 movs r1, 0x1 strb r1, [r0] ldr r0, [r4] ldr r3, _0802FA48 adds r0, r3 strb r2, [r0] ldr r0, [r4] adds r3, 0x1 adds r1, r0, r3 movs r0, 0x8 strb r0, [r1] ldr r0, [r4] ldr r1, _0802FA4C adds r0, r1 strb r2, [r0] ldr r0, [r4] adds r0, 0xD6 movs r2, 0 ldrsh r0, [r0, r2] movs r1, 0xC bl sub_80095E4 adds r0, 0x2 lsls r0, 16 ldr r3, [r4] adds r5, r3, 0 adds r5, 0xF0 ldr r2, [r5] lsls r1, r2, 1 adds r1, r2 lsls r1, 3 adds r1, r3, r1 movs r2, 0x83 lsls r2, 1 adds r1, r2 asrs r2, r0, 16 lsrs r0, 16 strh r0, [r1] ldr r1, [r5] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r3, r0 adds r2, 0x2 movs r0, 0x84 lsls r0, 1 adds r3, r0 strh r2, [r3] bl sub_8004914 ldr r0, [r4] adds r0, 0xF8 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802FA44: .4byte gUnknown_203B314 _0802FA48: .4byte 0x00000159 _0802FA4C: .4byte 0x0000015b thumb_func_end sub_802F9C0 thumb_func_start sub_802FA50 sub_802FA50: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 ldr r4, _0802FB1C ldr r0, [r4] adds r0, 0xF0 ldr r0, [r0] bl sub_8008C54 ldr r0, [r4] adds r0, 0xF0 ldr r0, [r0] bl sub_80073B8 ldr r2, _0802FB20 ldr r0, [r4] adds r0, 0xF0 ldr r3, [r0] movs r0, 0 str r0, [sp] movs r0, 0xA movs r1, 0 bl xxx_call_draw_string ldr r3, [r4] movs r1, 0xAD lsls r1, 1 adds r0, r3, r1 ldrb r0, [r0] lsls r0, 3 adds r0, 0x4 adds r1, r3, 0 adds r1, 0xDA movs r5, 0 ldrsh r2, [r1, r5] adds r2, 0x1 movs r1, 0x7 str r1, [sp] adds r1, r3, 0 adds r1, 0xF0 ldr r1, [r1] str r1, [sp, 0x4] movs r1, 0 movs r3, 0x2 bl sub_8012BC4 ldr r1, [r4] adds r0, r1, 0 adds r0, 0xB8 ldrb r0, [r0] cmp r0, 0 beq _0802FB78 movs r6, 0 adds r0, r1, 0 adds r0, 0xD6 movs r1, 0 ldrsh r0, [r0, r1] cmp r6, r0 blt _0802FACA b _0802FBD6 _0802FACA: mov r8, r4 _0802FACC: mov r2, r8 ldr r0, [r2] adds r0, 0xBC adds r1, r6, 0 bl sub_8013800 adds r5, r0, 0 mov r3, r8 ldr r2, [r3] adds r0, r2, 0 adds r0, 0xDA movs r3, 0 ldrsh r1, [r0, r3] subs r0, 0x2 movs r3, 0 ldrsh r0, [r0, r3] muls r0, r1 adds r1, r0, r6 lsls r0, r1, 1 adds r0, r2, r0 movs r3, 0 ldrsh r7, [r0, r3] adds r0, r2, 0 adds r0, 0x5C adds r0, r1 ldrb r4, [r0] cmp r4, 0 beq _0802FB28 adds r0, r2, 0 adds r0, 0xF0 ldr r3, [r0] movs r0, 0 str r0, [sp] movs r0, 0xA adds r1, r5, 0 ldr r2, _0802FB24 bl xxx_call_draw_string b _0802FB46 .align 2, 0 _0802FB1C: .4byte gUnknown_203B314 _0802FB20: .4byte gUnknown_80E0744 _0802FB24: .4byte gUnknown_80E0750 _0802FB28: adds r0, r2, 0 adds r0, 0x8A adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _0802FB46 adds r0, r2, 0 adds r0, 0xF0 ldr r3, [r0] str r4, [sp] movs r0, 0xA adds r1, r5, 0 ldr r2, _0802FB74 bl xxx_call_draw_string _0802FB46: adds r0, r7, 0 bl sub_80974A0 adds r2, r0, 0 mov r1, r8 ldr r0, [r1] adds r0, 0xF0 ldr r3, [r0] movs r0, 0 str r0, [sp] movs r0, 0x18 adds r1, r5, 0 bl xxx_call_draw_string adds r6, 0x1 mov r2, r8 ldr r0, [r2] adds r0, 0xD6 movs r3, 0 ldrsh r0, [r0, r3] cmp r6, r0 blt _0802FACC b _0802FBD6 .align 2, 0 _0802FB74: .4byte gUnknown_80E0754 _0802FB78: movs r6, 0 adds r0, r1, 0 adds r0, 0xD6 movs r5, 0 ldrsh r0, [r0, r5] cmp r6, r0 bge _0802FBD6 adds r5, r4, 0 _0802FB88: ldr r0, [r5] adds r0, 0xBC adds r1, r6, 0 bl sub_8013800 adds r4, r0, 0 ldr r1, [r5] adds r0, r1, 0 adds r0, 0xDA movs r3, 0 ldrsh r2, [r0, r3] subs r0, 0x2 movs r3, 0 ldrsh r0, [r0, r3] muls r0, r2 adds r0, r6 lsls r0, 1 adds r1, r0 movs r2, 0 ldrsh r0, [r1, r2] bl sub_80974A0 adds r2, r0, 0 ldr r0, [r5] adds r0, 0xF0 ldr r3, [r0] movs r0, 0 str r0, [sp] movs r0, 0x8 adds r1, r4, 0 bl xxx_call_draw_string adds r6, 0x1 ldr r0, [r5] adds r0, 0xD6 movs r3, 0 ldrsh r0, [r0, r3] cmp r6, r0 blt _0802FB88 _0802FBD6: ldr r0, _0802FBF0 ldr r0, [r0] adds r0, 0xF0 ldr r0, [r0] bl sub_80073E0 add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802FBF0: .4byte gUnknown_203B314 thumb_func_end sub_802FA50 thumb_func_start sub_802FBF4 sub_802FBF4: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 movs r0, 0 mov r8, r0 movs r1, 0 str r1, [sp] _0802FC08: ldr r1, [sp] lsls r0, r1, 16 asrs r4, r0, 16 mov r10, r4 adds r0, r4, 0 bl sub_80A27CC lsls r0, 24 cmp r0, 0 beq _0802FCCE cmp r4, 0x13 beq _0802FCCE cmp r4, 0x1D beq _0802FCCE ldr r7, _0802FC88 ldr r1, [r7] mov r0, r8 lsls r6, r0, 1 adds r0, r1, r6 strh r4, [r0] adds r1, 0x5C add r1, r8 movs r0, 0 strb r0, [r1] ldr r0, [r7] adds r0, 0x8A add r0, r8 movs r1, 0 strb r1, [r0] ldr r0, [r7] adds r0, 0xB8 ldrb r0, [r0] cmp r0, 0 beq _0802FCCA cmp r4, 0xD beq _0802FCCA adds r0, r4, 0 bl sub_80A270C lsls r0, 24 lsrs r0, 24 mov r9, r0 movs r5, 0 cmp r4, 0x1E bgt _0802FCA8 adds r0, r4, 0 bl sub_8097384 lsls r0, 24 cmp r0, 0 bne _0802FCA6 cmp r4, 0x6 bne _0802FC8C movs r0, 0x13 bl sub_8097384 lsls r0, 24 cmp r0, 0 beq _0802FCA8 ldr r0, [r7] adds r0, r6 movs r1, 0x13 b _0802FCA4 .align 2, 0 _0802FC88: .4byte gUnknown_203B314 _0802FC8C: mov r0, r10 cmp r0, 0xA bne _0802FCA8 movs r0, 0x1D bl sub_8097384 lsls r0, 24 cmp r0, 0 beq _0802FCA8 ldr r0, [r7] adds r0, r6 movs r1, 0x1D _0802FCA4: strh r1, [r0] _0802FCA6: movs r5, 0x1 _0802FCA8: ldr r4, _0802FCEC ldr r0, [r4] adds r0, 0x5C add r0, r8 strb r5, [r0] cmp r5, 0 bne _0802FCCA mov r0, r9 bl sub_80969D0 cmp r0, 0 ble _0802FCCA ldr r0, [r4] adds r0, 0x8A add r0, r8 movs r1, 0x1 strb r1, [r0] _0802FCCA: movs r1, 0x1 add r8, r1 _0802FCCE: ldr r0, [sp] adds r0, 0x1 str r0, [sp] cmp r0, 0x2D ble _0802FC08 mov r0, r8 add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0802FCEC: .4byte gUnknown_203B314 thumb_func_end sub_802FBF4 thumb_func_start sub_802FCF0 sub_802FCF0: push {r4,lr} movs r4, 0 _0802FCF4: lsls r0, r4, 16 asrs r0, 16 bl sub_80A27CC lsls r0, 24 cmp r0, 0 beq _0802FD06 movs r0, 0 b _0802FD0E _0802FD06: adds r4, 0x1 cmp r4, 0x2D ble _0802FCF4 movs r0, 0x1 _0802FD0E: pop {r4} pop {r1} bx r1 thumb_func_end sub_802FCF0 thumb_func_start sub_802FD14 sub_802FD14: push {r4-r6,lr} adds r5, r0, 0 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, _0802FD48 movs r0, 0xCC movs r1, 0x8 bl MemoryAlloc str r0, [r4] ldr r1, _0802FD4C strh r1, [r0, 0x10] str r5, [r0] cmp r5, 0x7 bhi _0802FDC0 lsls r0, r5, 2 ldr r1, _0802FD50 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802FD48: .4byte gUnknown_203B318 _0802FD4C: .4byte 0x0000ffff _0802FD50: .4byte _0802FD54 .align 2, 0 _0802FD54: .4byte _0802FD74 .4byte _0802FD84 .4byte _0802FD94 .4byte _0802FDA4 .4byte _0802FDB4 .4byte _0802FDB8 .4byte _0802FDBC .4byte _0802FDC0 _0802FD74: movs r6, 0 ldr r1, _0802FD80 ldr r0, [r1] str r6, [r0, 0x4] b _0802FDCC .align 2, 0 _0802FD80: .4byte gUnknown_203B318 _0802FD84: movs r6, 0x7 ldr r2, _0802FD90 ldr r1, [r2] movs r0, 0 b _0802FDC8 .align 2, 0 _0802FD90: .4byte gUnknown_203B318 _0802FD94: movs r6, 0x6 ldr r2, _0802FDA0 ldr r1, [r2] movs r0, 0 b _0802FDC8 .align 2, 0 _0802FDA0: .4byte gUnknown_203B318 _0802FDA4: movs r6, 0x8 ldr r2, _0802FDB0 ldr r1, [r2] movs r0, 0 b _0802FDC8 .align 2, 0 _0802FDB0: .4byte gUnknown_203B318 _0802FDB4: movs r6, 0 b _0802FDC2 _0802FDB8: movs r6, 0x7 b _0802FDC2 _0802FDBC: movs r6, 0x6 b _0802FDC2 _0802FDC0: movs r6, 0x8 _0802FDC2: ldr r2, _0802FDD8 ldr r1, [r2] movs r0, 0x1 _0802FDC8: str r0, [r1, 0x4] adds r1, r2, 0 _0802FDCC: ldr r1, [r1] ldr r0, [r1, 0x4] cmp r0, 0x1 bne _0802FDDC movs r0, 0 b _0802FDE0 .align 2, 0 _0802FDD8: .4byte gUnknown_203B318 _0802FDDC: adds r0, r1, 0 adds r0, 0x58 _0802FDE0: str r0, [r1, 0x68] ldr r0, _0802FE48 ldr r5, _0802FE4C adds r1, r5, 0 bl sub_808D8E0 ldr r4, _0802FE50 adds r0, r4, 0 adds r1, r5, 0 bl sub_808D8E0 adds r0, r5, 0 bl sub_808D994 adds r1, r0, 0 subs r4, 0x50 adds r0, r4, 0 bl strcpy adds r0, r5, 0 bl sub_808DDD0 ldr r3, _0802FE54 ldr r1, [r3] str r0, [r1, 0x58] ldr r0, [r0, 0x4] str r0, [r1, 0x5C] adds r1, 0x64 movs r2, 0 strb r2, [r1] ldr r0, [r3] adds r0, 0x65 strb r2, [r0] ldr r0, [r3] adds r0, 0x66 strb r2, [r0] ldr r1, [r3] adds r2, r1, 0 adds r2, 0x60 movs r0, 0x2 strh r0, [r2] adds r1, 0x62 movs r0, 0x8 strh r0, [r1] adds r0, r6, 0 bl sub_802FF04 movs r0, 0x1 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0802FE48: .4byte gUnknown_202E5D8 _0802FE4C: .4byte 0x00000141 _0802FE50: .4byte gUnknown_202E1C8 _0802FE54: .4byte gUnknown_203B318 thumb_func_end sub_802FD14 thumb_func_start sub_802FE58 sub_802FE58: push {lr} ldr r0, _0802FE70 ldr r0, [r0] ldr r0, [r0, 0x8] cmp r0, 0xD bhi _0802FEC6 lsls r0, 2 ldr r1, _0802FE74 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802FE70: .4byte gUnknown_203B318 _0802FE74: .4byte _0802FE78 .align 2, 0 _0802FE78: .4byte _0802FEB0 .4byte _0802FEB0 .4byte _0802FEC6 .4byte _0802FEC6 .4byte _0802FEB6 .4byte _0802FEC6 .4byte _0802FEC6 .4byte _0802FEC6 .4byte _0802FEC6 .4byte _0802FEC6 .4byte _0802FEC6 .4byte _0802FEBC .4byte _0802FEC6 .4byte _0802FEC2 _0802FEB0: bl sub_8030208 b _0802FECA _0802FEB6: bl sub_8030258 b _0802FECA _0802FEBC: bl sub_80302A8 b _0802FECA _0802FEC2: movs r0, 0x3 b _0802FECC _0802FEC6: bl sub_80302C4 _0802FECA: movs r0, 0 _0802FECC: pop {r1} bx r1 thumb_func_end sub_802FE58 thumb_func_start sub_802FED0 sub_802FED0: ldr r0, _0802FEDC ldr r0, [r0] movs r1, 0x10 ldrsh r0, [r0, r1] bx lr .align 2, 0 _0802FEDC: .4byte gUnknown_203B318 thumb_func_end sub_802FED0 thumb_func_start sub_802FEE0 sub_802FEE0: push {r4,lr} ldr r4, _0802FF00 ldr r0, [r4] cmp r0, 0 beq _0802FEFA ldr r0, [r0, 0x58] bl CloseFile ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _0802FEFA: pop {r4} pop {r0} bx r0 .align 2, 0 _0802FF00: .4byte gUnknown_203B318 thumb_func_end sub_802FEE0 thumb_func_start sub_802FF04 sub_802FF04: push {lr} ldr r1, _0802FF18 ldr r1, [r1] str r0, [r1, 0x8] bl sub_802FF1C bl sub_802FF88 pop {r0} bx r0 .align 2, 0 _0802FF18: .4byte gUnknown_203B318 thumb_func_end sub_802FF04 thumb_func_start sub_802FF1C sub_802FF1C: push {r4-r7,lr} ldr r4, _0802FF3C ldr r0, [r4] adds r0, 0x6C bl sub_8006518 ldr r0, [r4] ldr r0, [r0, 0x8] cmp r0, 0x4 beq _0802FF44 cmp r0, 0x4 bgt _0802FF40 cmp r0, 0 beq _0802FF44 b _0802FF68 .align 2, 0 _0802FF3C: .4byte gUnknown_203B318 _0802FF40: cmp r0, 0xD bne _0802FF68 _0802FF44: ldr r0, _0802FF80 mov r12, r0 ldr r4, _0802FF84 movs r3, 0 movs r2, 0x3 _0802FF4E: mov r5, r12 ldr r1, [r5] adds r1, r3 adds r1, 0x6C adds r0, r4, 0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} adds r3, 0x18 subs r2, 0x1 cmp r2, 0 bge _0802FF4E _0802FF68: bl sub_8004914 ldr r0, _0802FF80 ldr r0, [r0] adds r0, 0x6C movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802FF80: .4byte gUnknown_203B318 _0802FF84: .4byte gUnknown_80E0760 thumb_func_end sub_802FF1C thumb_func_start sub_802FF88 sub_802FF88: push {r4,r5,lr} sub sp, 0x18 ldr r1, _0802FFA4 ldr r0, [r1] ldr r0, [r0, 0x8] adds r5, r1, 0 cmp r0, 0xD bls _0802FF9A b _080301A0 _0802FF9A: lsls r0, 2 ldr r1, _0802FFA8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802FFA4: .4byte gUnknown_203B318 _0802FFA8: .4byte _0802FFAC .align 2, 0 _0802FFAC: .4byte _0802FFE4 .4byte _08030000 .4byte _08030038 .4byte _08030050 .4byte _08030068 .4byte _08030074 .4byte _080300DC .4byte _080300C4 .4byte _080300F4 .4byte _0803010C .4byte _08030148 .4byte _08030174 .4byte _08030180 .4byte _080301A0 _0802FFE4: bl sub_80301B0 ldr r2, _0802FFF8 ldr r0, _0802FFFC ldr r5, [r0] ldr r1, [r5, 0x4] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 b _0803000E .align 2, 0 _0802FFF8: .4byte gUnknown_80D9FC8 _0802FFFC: .4byte gUnknown_203B318 _08030000: ldr r2, _08030034 ldr r5, [r5] ldr r1, [r5, 0x4] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r2, 0x4 _0803000E: adds r0, r2 ldr r0, [r0] ldr r2, [r5, 0x14] adds r3, r5, 0 adds r3, 0x18 movs r4, 0 str r4, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r4, [sp, 0x8] ldr r1, [r5, 0x68] str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 bl sub_8014248 b _080301A0 .align 2, 0 _08030034: .4byte gUnknown_80D9FC8 _08030038: ldr r3, [r5] movs r0, 0xD str r0, [r3, 0xC] ldr r2, _0803004C ldr r1, [r3, 0x4] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r2, 0x8 b _0803015A .align 2, 0 _0803004C: .4byte gUnknown_80D9FC8 _08030050: ldr r3, [r5] movs r0, 0x4 str r0, [r3, 0xC] ldr r2, _08030064 ldr r1, [r3, 0x4] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r2, 0xC b _0803015A .align 2, 0 _08030064: .4byte gUnknown_80D9FC8 _08030068: movs r0, 0x3 movs r1, 0 movs r2, 0xA bl sub_80302E8 b _080301A0 _08030074: ldr r1, [r5] movs r0, 0xD str r0, [r1, 0xC] movs r2, 0x10 ldrsh r0, [r1, r2] bl sub_80A2740 lsls r0, 24 lsrs r0, 24 ldr r2, _080300B4 ldr r1, [sp, 0x14] ands r1, r2 orrs r1, r0 ldr r0, _080300B8 ands r1, r0 movs r0, 0x80 lsls r0, 1 orrs r1, r0 str r1, [sp, 0x14] ldr r0, _080300BC add r1, sp, 0x14 bl sub_8090208 ldr r2, _080300C0 ldr r3, [r5] ldr r1, [r3, 0x4] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r2, 0x10 b _0803015A .align 2, 0 _080300B4: .4byte 0xffffff00 _080300B8: .4byte 0xffff00ff _080300BC: .4byte gUnknown_202DF98 _080300C0: .4byte gUnknown_80D9FC8 _080300C4: ldr r3, [r5] movs r0, 0xD str r0, [r3, 0xC] ldr r2, _080300D8 ldr r1, [r3, 0x4] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r2, 0x18 b _0803015A .align 2, 0 _080300D8: .4byte gUnknown_80D9FC8 _080300DC: ldr r3, [r5] movs r0, 0xD str r0, [r3, 0xC] ldr r2, _080300F0 ldr r1, [r3, 0x4] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r2, 0x14 b _0803015A .align 2, 0 _080300F0: .4byte gUnknown_80D9FC8 _080300F4: ldr r3, [r5] movs r0, 0x9 str r0, [r3, 0xC] ldr r2, _08030108 ldr r1, [r3, 0x4] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r2, 0x1C b _0803015A .align 2, 0 _08030108: .4byte gUnknown_80D9FC8 _0803010C: ldr r4, _08030138 bl sub_808D33C adds r1, r0, 0 adds r0, r4, 0 movs r2, 0x6 bl sub_808D9AC ldr r0, _0803013C ldr r1, [r0] movs r0, 0xB str r0, [r1, 0xC] movs r0, 0xCB bl sub_8011988 ldr r0, _08030140 ldr r3, _08030144 movs r1, 0 movs r2, 0 bl sub_80141B4 b _080301A0 .align 2, 0 _08030138: .4byte gUnknown_202E2B8 _0803013C: .4byte gUnknown_203B318 _08030140: .4byte gUnknown_80E0778 _08030144: .4byte 0x00000101 _08030148: ldr r3, [r5] movs r0, 0xD str r0, [r3, 0xC] ldr r2, _0803016C ldr r1, [r3, 0x4] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r2, 0x20 _0803015A: adds r0, r2 ldr r0, [r0] ldr r2, [r3, 0x68] ldr r3, _08030170 movs r1, 0 bl sub_80141B4 b _080301A0 .align 2, 0 _0803016C: .4byte gUnknown_80D9FC8 _08030170: .4byte 0x0000010d _08030174: movs r0, 0x1 movs r1, 0x49 movs r2, 0x1 bl sub_801B60C b _080301A0 _08030180: ldr r3, [r5] movs r0, 0x1 str r0, [r3, 0xC] ldr r2, _080301A8 ldr r1, [r3, 0x4] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r2, 0x24 adds r0, r2 ldr r0, [r0] ldr r2, [r3, 0x68] ldr r3, _080301AC movs r1, 0 bl sub_80141B4 _080301A0: add sp, 0x18 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080301A8: .4byte gUnknown_80D9FC8 _080301AC: .4byte 0x0000010d thumb_func_end sub_802FF88 thumb_func_start sub_80301B0 sub_80301B0: push {r4,lr} ldr r4, _080301F8 ldr r1, [r4] movs r2, 0x2 str r2, [r1, 0x14] ldr r0, _080301FC str r0, [r1, 0x18] str r2, [r1, 0x1C] bl sub_80306A4 lsls r0, 24 cmp r0, 0 beq _080301D6 ldr r0, [r4] movs r1, 0x1 negs r1, r1 str r1, [r0, 0x1C] movs r1, 0x1 str r1, [r0, 0x14] _080301D6: ldr r1, [r4] movs r2, 0x1 ldr r0, _08030200 ldr r0, [r0] str r0, [r1, 0x20] movs r0, 0x3 str r0, [r1, 0x24] ldr r0, _08030204 ldr r0, [r0] str r0, [r1, 0x28] str r2, [r1, 0x2C] movs r0, 0 str r0, [r1, 0x30] str r2, [r1, 0x34] pop {r4} pop {r0} bx r0 .align 2, 0 _080301F8: .4byte gUnknown_203B318 _080301FC: .4byte gUnknown_80E07D8 _08030200: .4byte gUnknown_80D4970 _08030204: .4byte gUnknown_80D4934 thumb_func_end sub_80301B0 thumb_func_start sub_8030208 sub_8030208: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08030250 ldr r0, _08030230 ldr r1, [r0] ldr r0, [sp] str r0, [r1, 0x14] ldr r0, [sp] cmp r0, 0x2 beq _0803023A cmp r0, 0x2 bgt _08030234 cmp r0, 0x1 beq _0803024A b _08030250 .align 2, 0 _08030230: .4byte gUnknown_203B318 _08030234: cmp r0, 0x3 beq _08030242 b _08030250 _0803023A: movs r0, 0x3 bl sub_802FF04 b _08030250 _08030242: movs r0, 0xC bl sub_802FF04 b _08030250 _0803024A: movs r0, 0x2 bl sub_802FF04 _08030250: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8030208 thumb_func_start sub_8030258 sub_8030258: push {lr} movs r0, 0x1 bl sub_80303AC cmp r0, 0x2 beq _08030288 cmp r0, 0x2 bcc _0803029A cmp r0, 0x3 bne _0803029A bl sub_8030418 ldr r1, _08030284 ldr r1, [r1] strh r0, [r1, 0x10] bl sub_8030480 movs r0, 0x5 bl sub_802FF04 b _0803029A .align 2, 0 _08030284: .4byte gUnknown_203B318 _08030288: bl sub_8030480 ldr r0, _080302A0 ldr r1, [r0] ldr r0, _080302A4 strh r0, [r1, 0x10] movs r0, 0x1 bl sub_802FF04 _0803029A: pop {r0} bx r0 .align 2, 0 _080302A0: .4byte gUnknown_203B318 _080302A4: .4byte 0x0000ffff thumb_func_end sub_8030258 thumb_func_start sub_80302A8 sub_80302A8: push {lr} bl sub_801B6AC cmp r0, 0x1 bls _080302C0 cmp r0, 0x3 bhi _080302C0 bl sub_801B72C movs r0, 0xA bl sub_802FF04 _080302C0: pop {r0} bx r0 thumb_func_end sub_80302A8 thumb_func_start sub_80302C4 sub_80302C4: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080302DC ldr r0, _080302E4 ldr r0, [r0] ldr r0, [r0, 0xC] bl sub_802FF04 _080302DC: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080302E4: .4byte gUnknown_203B318 thumb_func_end sub_80302C4 thumb_func_start sub_80302E8 sub_80302E8: push {r4-r7,lr} mov r7, r8 push {r7} adds r5, r0, 0 adds r6, r1, 0 mov r8, r2 bl sub_80306A4 lsls r0, 24 cmp r0, 0 beq _08030302 movs r0, 0 b _0803039A _08030302: ldr r4, _080303A4 ldr r0, [r4] cmp r0, 0 bne _08030314 movs r0, 0xD0 movs r1, 0x8 bl MemoryAlloc str r0, [r4] _08030314: ldr r0, [r4] str r5, [r0, 0x64] lsls r1, r5, 1 adds r1, r5 lsls r1, 3 adds r1, 0x6C adds r1, r0, r1 str r1, [r0, 0x68] adds r0, 0x6C bl sub_8006518 ldr r1, [r4] ldr r2, [r1, 0x64] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, 0x6C ldr r0, _080303A8 ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldr r2, [r4] ldr r1, [r2, 0x68] adds r0, r2, 0 adds r0, 0xCC str r0, [r1, 0x14] cmp r6, 0 beq _08030362 ldr r1, [r2, 0x64] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r1, r2, 0 adds r1, 0x74 adds r1, r0 ldr r0, [r6] str r0, [r1] _08030362: ldr r0, [r4] ldr r0, [r0, 0x68] mov r1, r8 bl sub_8012D08 bl sub_8004914 ldr r0, [r4] adds r0, 0x6C movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, [r4] adds r4, 0x30 bl sub_8030668 adds r1, r0, 0 adds r0, r4, 0 mov r2, r8 adds r3, r5, 0 bl sub_8013818 bl sub_80304C8 bl sub_803053C movs r0, 0x1 _0803039A: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080303A4: .4byte gUnknown_203B31C _080303A8: .4byte gUnknown_80E0804 thumb_func_end sub_80302E8 thumb_func_start sub_80303AC sub_80303AC: push {r4,lr} lsls r0, 24 cmp r0, 0 bne _080303C8 ldr r0, _080303C4 ldr r0, [r0] adds r0, 0x30 bl sub_8013660 movs r0, 0 b _08030410 .align 2, 0 _080303C4: .4byte gUnknown_203B31C _080303C8: ldr r4, _080303E4 ldr r0, [r4] adds r0, 0x30 bl GetKeyPress cmp r0, 0x1 beq _080303E8 cmp r0, 0x2 bne _080303F2 movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 b _08030410 .align 2, 0 _080303E4: .4byte gUnknown_203B31C _080303E8: movs r0, 0 bl sub_80119D4 movs r0, 0x3 b _08030410 _080303F2: ldr r0, [r4] adds r0, 0x30 movs r1, 0x1 bl sub_80138B8 lsls r0, 24 cmp r0, 0 bne _08030406 movs r0, 0 b _08030410 _08030406: bl sub_80304C8 bl sub_803053C movs r0, 0x1 _08030410: pop {r4} pop {r1} bx r1 thumb_func_end sub_80303AC thumb_func_start sub_8030418 sub_8030418: ldr r0, _08030440 ldr r2, [r0] adds r0, r2, 0 adds r0, 0x4E movs r3, 0 ldrsh r1, [r0, r3] subs r0, 0x2 movs r3, 0 ldrsh r0, [r0, r3] muls r0, r1 adds r1, r2, 0 adds r1, 0x48 movs r3, 0 ldrsh r1, [r1, r3] adds r0, r1 lsls r0, 1 adds r0, r2, r0 movs r1, 0 ldrsh r0, [r0, r1] bx lr .align 2, 0 _08030440: .4byte gUnknown_203B31C thumb_func_end sub_8030418 thumb_func_start sub_8030444 sub_8030444: push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8030668 adds r1, r0, 0 ldr r5, _0803047C ldr r0, [r5] adds r2, r0, 0 adds r2, 0x52 strh r1, [r2] adds r0, 0x30 bl sub_8013984 bl sub_80304C8 bl sub_803053C cmp r4, 0 beq _08030476 ldr r0, [r5] adds r0, 0x30 bl AddMenuCursorSprite _08030476: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0803047C: .4byte gUnknown_203B31C thumb_func_end sub_8030444 thumb_func_start sub_8030480 sub_8030480: push {r4,r5,lr} ldr r4, _080304C0 ldr r2, [r4] cmp r2, 0 beq _080304BA ldr r0, [r2, 0x64] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 adds r1, 0x6C ldr r0, _080304C4 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} bl sub_8004914 ldr r0, [r4] adds r0, 0x6C movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _080304BA: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080304C0: .4byte gUnknown_203B31C _080304C4: .4byte gUnknown_80E07EC thumb_func_end sub_8030480 thumb_func_start sub_80304C8 sub_80304C8: push {r4,lr} ldr r4, _08030538 ldr r0, [r4] adds r0, 0xCC movs r2, 0 movs r1, 0x1 strb r1, [r0] ldr r0, [r4] adds r0, 0xCD strb r2, [r0] ldr r0, [r4] adds r0, 0xCE movs r1, 0x8 strb r1, [r0] ldr r0, [r4] adds r0, 0xCF strb r2, [r0] ldr r0, [r4] adds r0, 0x4A movs r1, 0 ldrsh r0, [r0, r1] movs r1, 0xC bl sub_80095E4 adds r0, 0x2 lsls r0, 16 ldr r2, [r4] ldr r3, [r2, 0x64] lsls r1, r3, 1 adds r1, r3 lsls r1, 3 adds r1, r2, r1 adds r1, 0x7A asrs r3, r0, 16 lsrs r0, 16 strh r0, [r1] ldr r1, [r2, 0x64] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r2, r0 adds r3, 0x2 adds r2, 0x7C strh r3, [r2] bl sub_8004914 ldr r0, [r4] adds r0, 0x6C movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4} pop {r0} bx r0 .align 2, 0 _08030538: .4byte gUnknown_203B31C thumb_func_end sub_80304C8 thumb_func_start sub_803053C sub_803053C: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x108 ldr r4, _08030658 ldr r0, [r4] ldr r0, [r0, 0x64] bl sub_8008C54 ldr r0, [r4] ldr r0, [r0, 0x64] bl sub_80073B8 ldr r2, _0803065C ldr r0, [r4] ldr r3, [r0, 0x64] movs r0, 0 str r0, [sp] movs r0, 0xA movs r1, 0 bl xxx_call_draw_string ldr r3, [r4] adds r0, r3, 0 adds r0, 0xCE ldrb r0, [r0] lsls r0, 3 adds r0, 0x4 adds r1, r3, 0 adds r1, 0x4E movs r5, 0 ldrsh r2, [r1, r5] adds r2, 0x1 movs r1, 0x7 str r1, [sp] ldr r1, [r3, 0x64] str r1, [sp, 0x4] movs r1, 0 movs r3, 0x2 bl sub_8012BC4 movs r0, 0 mov r9, r0 ldr r0, [r4] adds r0, 0x4A movs r1, 0 ldrsh r0, [r0, r1] cmp r9, r0 bge _0803063E mov r8, r4 _080305A2: mov r3, r8 ldr r1, [r3] adds r0, r1, 0 adds r0, 0x4E movs r5, 0 ldrsh r2, [r0, r5] subs r0, 0x2 movs r3, 0 ldrsh r0, [r0, r3] muls r0, r2 add r0, r9 lsls r0, 1 adds r1, r0 movs r5, 0 ldrsh r4, [r1, r5] adds r0, r4, 0 bl sub_80A2740 lsls r0, 24 lsrs r7, r0, 24 adds r0, r4, 0 bl sub_80A2668 adds r4, r0, 0 lsls r4, 16 asrs r4, 16 mov r1, r8 ldr r0, [r1] adds r0, 0x30 mov r1, r9 bl sub_8013800 adds r6, r0, 0 movs r5, 0x7 adds r0, r4, 0 bl sub_809758C lsls r0, 24 cmp r0, 0 beq _08030608 mov r3, r8 ldr r0, [r3] ldr r3, [r0, 0x64] movs r0, 0 str r0, [sp] movs r0, 0x8 adds r1, r6, 0 ldr r2, _08030660 bl xxx_call_draw_string movs r5, 0x4 _08030608: adds r0, r7, 0 bl sub_809009C adds r3, r0, 0 add r0, sp, 0x8 ldr r1, _08030664 adds r2, r5, 0 bl sub_800D158 mov r5, r8 ldr r0, [r5] ldr r3, [r0, 0x64] movs r0, 0 str r0, [sp] movs r0, 0x10 adds r1, r6, 0 add r2, sp, 0x8 bl xxx_call_draw_string movs r0, 0x1 add r9, r0 ldr r0, [r5] adds r0, 0x4A movs r1, 0 ldrsh r0, [r0, r1] cmp r9, r0 blt _080305A2 _0803063E: ldr r0, _08030658 ldr r0, [r0] ldr r0, [r0, 0x64] bl sub_80073E0 add sp, 0x108 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08030658: .4byte gUnknown_203B31C _0803065C: .4byte gUnknown_80E081C _08030660: .4byte gUnknown_80E0824 _08030664: .4byte gUnknown_80E0828 thumb_func_end sub_803053C thumb_func_start sub_8030668 sub_8030668: push {r4-r6,lr} movs r6, 0 movs r5, 0 _0803066E: lsls r0, r5, 16 asrs r4, r0, 16 adds r0, r4, 0 bl sub_8097504 lsls r0, 24 cmp r0, 0 beq _08030690 adds r0, r4, 0 bl sub_80A26CC ldr r1, _080306A0 ldr r1, [r1] lsls r2, r6, 1 adds r1, r2 strh r0, [r1] adds r6, 0x1 _08030690: adds r5, 0x1 cmp r5, 0x16 ble _0803066E adds r0, r6, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _080306A0: .4byte gUnknown_203B31C thumb_func_end sub_8030668 thumb_func_start sub_80306A4 sub_80306A4: movs r0, 0 bx lr thumb_func_end sub_80306A4 thumb_func_start sub_80306A8 sub_80306A8: push {r4-r7,lr} mov r7, r8 push {r7} adds r4, r0, 0 adds r5, r1, 0 adds r7, r2, 0 mov r8, r3 bl sub_8030C20 lsls r0, 24 cmp r0, 0 beq _080306C4 movs r0, 0 b _08030756 _080306C4: ldr r6, _08030760 movs r0, 0xC4 movs r1, 0x8 bl MemoryAlloc str r0, [r6] str r4, [r0, 0x20] str r5, [r0, 0x58] lsls r1, r5, 1 adds r1, r5 lsls r1, 3 adds r1, 0x60 adds r1, r0, r1 str r1, [r0, 0x5C] adds r0, 0x60 bl sub_8006518 ldr r1, [r6] ldr r2, [r1, 0x58] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, 0x60 ldr r0, _08030764 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldr r2, [r6] ldr r1, [r2, 0x5C] adds r0, r2, 0 adds r0, 0xC0 str r0, [r1, 0x14] cmp r7, 0 beq _0803071E ldr r1, [r2, 0x58] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r1, r2, 0 adds r1, 0x68 adds r1, r0 ldr r0, [r7] str r0, [r1] _0803071E: ldr r0, [r6] ldr r0, [r0, 0x5C] mov r1, r8 bl sub_8012D08 bl sub_8004914 ldr r0, [r6] adds r0, 0x60 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, [r6] adds r4, 0x24 bl sub_8030A74 adds r1, r0, 0 adds r0, r4, 0 mov r2, r8 adds r3, r5, 0 bl sub_8013818 bl sub_80308A0 bl sub_803092C movs r0, 0x1 _08030756: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08030760: .4byte gUnknown_203B320 _08030764: .4byte gUnknown_80E0854 thumb_func_end sub_80306A8 thumb_func_start sub_8030768 sub_8030768: push {lr} lsls r0, 24 cmp r0, 0 bne _08030784 ldr r0, _08030780 ldr r0, [r0] adds r0, 0x24 bl sub_8013660 movs r0, 0 b _080307E6 .align 2, 0 _08030780: .4byte gUnknown_203B320 _08030784: ldr r0, _0803079C ldr r0, [r0] adds r0, 0x24 bl GetKeyPress cmp r0, 0x2 beq _080307AE cmp r0, 0x2 bgt _080307A0 cmp r0, 0x1 beq _080307B8 b _080307C2 .align 2, 0 _0803079C: .4byte gUnknown_203B320 _080307A0: cmp r0, 0x4 bne _080307C2 movs r0, 0x4 bl sub_80119D4 movs r0, 0x4 b _080307E6 _080307AE: movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 b _080307E6 _080307B8: movs r0, 0 bl sub_80119D4 movs r0, 0x3 b _080307E6 _080307C2: ldr r0, _080307D8 ldr r0, [r0] adds r0, 0x24 movs r1, 0x1 bl sub_80138B8 lsls r0, 24 cmp r0, 0 bne _080307DC movs r0, 0 b _080307E6 .align 2, 0 _080307D8: .4byte gUnknown_203B320 _080307DC: bl sub_80308A0 bl sub_803092C movs r0, 0x1 _080307E6: pop {r1} bx r1 thumb_func_end sub_8030768 thumb_func_start sub_80307EC sub_80307EC: ldr r0, _0803080C ldr r2, [r0] adds r0, r2, 0 adds r0, 0x42 movs r3, 0 ldrsh r1, [r0, r3] subs r0, 0x2 movs r3, 0 ldrsh r0, [r0, r3] muls r0, r1 movs r3, 0x3C ldrsh r1, [r2, r3] adds r0, r1 adds r2, r0 ldrb r0, [r2] bx lr .align 2, 0 _0803080C: .4byte gUnknown_203B320 thumb_func_end sub_80307EC thumb_func_start sub_8030810 sub_8030810: push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8030A74 adds r1, r0, 0 ldr r5, _08030848 ldr r0, [r5] adds r2, r0, 0 adds r2, 0x46 strh r1, [r2] adds r0, 0x24 bl sub_8013984 bl sub_80308A0 bl sub_803092C cmp r4, 0 beq _08030842 ldr r0, [r5] adds r0, 0x24 bl AddMenuCursorSprite _08030842: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08030848: .4byte gUnknown_203B320 thumb_func_end sub_8030810 thumb_func_start sub_803084C sub_803084C: push {r4,r5,lr} ldr r4, _0803088C ldr r2, [r4] cmp r2, 0 beq _08030886 ldr r0, [r2, 0x58] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 adds r1, 0x60 ldr r0, _08030890 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} bl sub_8004914 ldr r0, [r4] adds r0, 0x60 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _08030886: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0803088C: .4byte gUnknown_203B320 _08030890: .4byte gUnknown_80E083C thumb_func_end sub_803084C thumb_func_start sub_8030894 sub_8030894: ldr r0, _0803089C ldr r0, [r0] bx lr .align 2, 0 _0803089C: .4byte gUnknown_203B320 thumb_func_end sub_8030894 thumb_func_start sub_80308A0 sub_80308A0: push {r4,lr} ldr r4, _08030928 ldr r0, [r4] adds r1, r0, 0 adds r1, 0x44 ldrh r1, [r1] adds r0, 0xC0 movs r2, 0 strb r1, [r0] ldr r0, [r4] adds r1, r0, 0 adds r1, 0x42 ldrh r1, [r1] adds r0, 0xC1 strb r1, [r0] ldr r0, [r4] adds r0, 0xC2 movs r1, 0xC strb r1, [r0] ldr r0, [r4] adds r0, 0xC3 strb r2, [r0] bl sub_8004914 ldr r0, [r4] adds r0, 0x60 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] movs r1, 0x3E ldrsh r0, [r0, r1] movs r1, 0xC bl sub_80095E4 adds r0, 0x2 lsls r0, 16 ldr r2, [r4] ldr r3, [r2, 0x58] lsls r1, r3, 1 adds r1, r3 lsls r1, 3 adds r1, r2, r1 adds r1, 0x6E asrs r3, r0, 16 lsrs r0, 16 strh r0, [r1] ldr r1, [r2, 0x58] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r2, r0 adds r3, 0x2 adds r2, 0x70 strh r3, [r2] bl sub_8004914 ldr r0, [r4] adds r0, 0x60 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4} pop {r0} bx r0 .align 2, 0 _08030928: .4byte gUnknown_203B320 thumb_func_end sub_80308A0 thumb_func_start sub_803092C sub_803092C: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x60 ldr r7, _08030A24 ldr r0, [r7] ldr r0, [r0, 0x58] bl sub_8008C54 ldr r0, [r7] ldr r0, [r0, 0x58] bl sub_80073B8 ldr r1, [r7] adds r0, r1, 0 adds r0, 0x42 movs r2, 0 ldrsh r4, [r0, r2] lsls r4, 3 adds r5, r4, 0 adds r5, 0xA ldr r2, _08030A28 ldr r0, [r1, 0x20] lsls r0, 2 adds r0, r2 ldr r2, [r0] ldr r3, [r1, 0x58] movs r0, 0 str r0, [sp] adds r0, r5, 0 movs r1, 0 bl xxx_call_draw_string adds r4, 0x4 ldr r3, [r7] adds r0, r3, 0 adds r0, 0xC2 ldrb r0, [r0] lsls r0, 3 adds r5, r4, r0 adds r0, r3, 0 adds r0, 0x42 movs r1, 0 ldrsh r2, [r0, r1] adds r2, 0x1 movs r0, 0x7 str r0, [sp] ldr r0, [r3, 0x58] str r0, [sp, 0x4] adds r0, r5, 0 movs r1, 0 movs r3, 0x1 bl sub_8012BC4 movs r6, 0 ldr r0, [r7] movs r2, 0x3E ldrsh r0, [r0, r2] cmp r6, r0 bge _08030A56 mov r9, r7 mov r8, r6 add r7, sp, 0x8 mov r5, sp adds r5, 0x4B _080309B0: mov r3, r9 ldr r1, [r3] adds r0, r1, 0 adds r0, 0x42 movs r3, 0 ldrsh r2, [r0, r3] subs r0, 0x2 movs r3, 0 ldrsh r0, [r0, r3] muls r0, r2 adds r0, r6 adds r1, r0 ldrb r0, [r1] bl sub_8095228 adds r4, r0, 0 mov r1, r9 ldr r0, [r1] ldr r1, [r0, 0x58] str r1, [sp, 0x8] adds r0, 0x24 adds r1, r6, 0 bl sub_8013800 str r0, [sp, 0x50] add r1, sp, 0x48 movs r0, 0x7 strb r0, [r1] mov r0, sp adds r0, 0x4A mov r2, r8 strb r2, [r0] add r0, sp, 0x4C strb r2, [r0] adds r0, r4, 0x4 str r0, [sp, 0x10] adds r0, 0x10 str r0, [sp, 0x14] ldrh r0, [r4, 0xC] strh r0, [r7, 0x10] ldrh r0, [r4, 0xC] strh r0, [r7, 0x12] strb r2, [r7, 0x14] subs r1, 0x12 movs r0, 0x5 strb r0, [r1] ldrb r0, [r4] cmp r0, 0x4 beq _08030A32 cmp r0, 0x4 bgt _08030A2C cmp r0, 0x2 bgt _08030A3E cmp r0, 0x1 blt _08030A3E movs r0, 0x1 strb r0, [r5] b _08030A42 .align 2, 0 _08030A24: .4byte gUnknown_203B320 _08030A28: .4byte gUnknown_80E086C _08030A2C: cmp r0, 0x5 beq _08030A38 b _08030A3E _08030A32: movs r0, 0x3 strb r0, [r5] b _08030A42 _08030A38: movs r0, 0x4 strb r0, [r5] b _08030A42 _08030A3E: mov r3, r8 strb r3, [r5] _08030A42: add r0, sp, 0x8 bl sub_803B6D4 adds r6, 0x1 mov r1, r9 ldr r0, [r1] movs r2, 0x3E ldrsh r0, [r0, r2] cmp r6, r0 blt _080309B0 _08030A56: ldr r0, _08030A70 ldr r0, [r0] ldr r0, [r0, 0x58] bl sub_80073E0 add sp, 0x60 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08030A70: .4byte gUnknown_203B320 thumb_func_end sub_803092C thumb_func_start sub_8030A74 sub_8030A74: push {r4,r5,lr} movs r2, 0 ldr r0, _08030A90 ldr r0, [r0] ldr r0, [r0, 0x20] cmp r0, 0x7 bls _08030A84 b _08030C0E _08030A84: lsls r0, 2 ldr r1, _08030A94 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08030A90: .4byte gUnknown_203B320 _08030A94: .4byte _08030A98 .align 2, 0 _08030A98: .4byte _08030AB8 .4byte _08030B10 .4byte _08030B3C .4byte _08030B94 .4byte _08030B68 .4byte _08030BC0 .4byte _08030AE4 .4byte _08030BEC _08030AB8: movs r1, 0 ldr r5, _08030ADC ldr r4, _08030AE0 movs r3, 0 _08030AC0: ldr r0, [r5] adds r0, r3 ldrb r0, [r0] cmp r0, 0 beq _08030AD2 ldr r0, [r4] adds r0, r2 strb r1, [r0] adds r2, 0x1 _08030AD2: adds r3, 0x30 adds r1, 0x1 cmp r1, 0x1F ble _08030AC0 b _08030C0E .align 2, 0 _08030ADC: .4byte gUnknown_203B480 _08030AE0: .4byte gUnknown_203B320 _08030AE4: movs r1, 0 ldr r5, _08030B08 ldr r4, _08030B0C movs r3, 0 _08030AEC: ldr r0, [r5] adds r0, r3 ldrb r0, [r0] cmp r0, 0x6 bne _08030AFE ldr r0, [r4] adds r0, r2 strb r1, [r0] adds r2, 0x1 _08030AFE: adds r3, 0x30 adds r1, 0x1 cmp r1, 0x1F ble _08030AEC b _08030C0E .align 2, 0 _08030B08: .4byte gUnknown_203B480 _08030B0C: .4byte gUnknown_203B320 _08030B10: movs r1, 0 ldr r5, _08030B34 ldr r4, _08030B38 movs r3, 0 _08030B18: ldr r0, [r5] adds r0, r3 ldrb r0, [r0] cmp r0, 0x1 bne _08030B2A ldr r0, [r4] adds r0, r2 strb r1, [r0] adds r2, 0x1 _08030B2A: adds r3, 0x30 adds r1, 0x1 cmp r1, 0x1F ble _08030B18 b _08030C0E .align 2, 0 _08030B34: .4byte gUnknown_203B480 _08030B38: .4byte gUnknown_203B320 _08030B3C: movs r1, 0 ldr r5, _08030B60 ldr r4, _08030B64 movs r3, 0 _08030B44: ldr r0, [r5] adds r0, r3 ldrb r0, [r0] cmp r0, 0x2 bne _08030B56 ldr r0, [r4] adds r0, r2 strb r1, [r0] adds r2, 0x1 _08030B56: adds r3, 0x30 adds r1, 0x1 cmp r1, 0x1F ble _08030B44 b _08030C0E .align 2, 0 _08030B60: .4byte gUnknown_203B480 _08030B64: .4byte gUnknown_203B320 _08030B68: movs r1, 0 ldr r5, _08030B8C ldr r4, _08030B90 movs r3, 0 _08030B70: ldr r0, [r5] adds r0, r3 ldrb r0, [r0] cmp r0, 0x4 bne _08030B82 ldr r0, [r4] adds r0, r2 strb r1, [r0] adds r2, 0x1 _08030B82: adds r3, 0x30 adds r1, 0x1 cmp r1, 0x1F ble _08030B70 b _08030C0E .align 2, 0 _08030B8C: .4byte gUnknown_203B480 _08030B90: .4byte gUnknown_203B320 _08030B94: movs r1, 0 ldr r5, _08030BB8 ldr r4, _08030BBC movs r3, 0 _08030B9C: ldr r0, [r5] adds r0, r3 ldrb r0, [r0] cmp r0, 0x3 bne _08030BAE ldr r0, [r4] adds r0, r2 strb r1, [r0] adds r2, 0x1 _08030BAE: adds r3, 0x30 adds r1, 0x1 cmp r1, 0x1F ble _08030B9C b _08030C0E .align 2, 0 _08030BB8: .4byte gUnknown_203B480 _08030BBC: .4byte gUnknown_203B320 _08030BC0: movs r1, 0 ldr r5, _08030BE4 ldr r4, _08030BE8 movs r3, 0 _08030BC8: ldr r0, [r5] adds r0, r3 ldrb r0, [r0] cmp r0, 0x5 bne _08030BDA ldr r0, [r4] adds r0, r2 strb r1, [r0] adds r2, 0x1 _08030BDA: adds r3, 0x30 adds r1, 0x1 cmp r1, 0x1F ble _08030BC8 b _08030C0E .align 2, 0 _08030BE4: .4byte gUnknown_203B480 _08030BE8: .4byte gUnknown_203B320 _08030BEC: movs r1, 0 ldr r5, _08030C18 ldr r4, _08030C1C movs r3, 0 _08030BF4: ldr r0, [r5] adds r0, r3 ldrb r0, [r0] cmp r0, 0x7 bne _08030C06 ldr r0, [r4] adds r0, r2 strb r1, [r0] adds r2, 0x1 _08030C06: adds r3, 0x30 adds r1, 0x1 cmp r1, 0x1F ble _08030BF4 _08030C0E: adds r0, r2, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08030C18: .4byte gUnknown_203B480 _08030C1C: .4byte gUnknown_203B320 thumb_func_end sub_8030A74 thumb_func_start sub_8030C20 sub_8030C20: push {lr} cmp r0, 0x7 bls _08030C28 b _08030D34 _08030C28: lsls r0, 2 ldr r1, _08030C34 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08030C34: .4byte _08030C38 .align 2, 0 _08030C38: .4byte _08030C58 .4byte _08030C90 .4byte _08030CAC .4byte _08030CE4 .4byte _08030CC8 .4byte _08030D00 .4byte _08030C74 .4byte _08030D20 _08030C58: movs r1, 0 ldr r0, _08030C70 ldr r2, [r0] _08030C5E: ldrb r0, [r2] cmp r0, 0 bne _08030D1C adds r2, 0x30 adds r1, 0x1 cmp r1, 0x1F ble _08030C5E b _08030D34 .align 2, 0 _08030C70: .4byte gUnknown_203B480 _08030C74: movs r1, 0 ldr r0, _08030C8C ldr r2, [r0] _08030C7A: ldrb r0, [r2] cmp r0, 0x6 beq _08030D1C adds r2, 0x30 adds r1, 0x1 cmp r1, 0x1F ble _08030C7A b _08030D34 .align 2, 0 _08030C8C: .4byte gUnknown_203B480 _08030C90: movs r1, 0 ldr r0, _08030CA8 ldr r2, [r0] _08030C96: ldrb r0, [r2] cmp r0, 0x1 beq _08030D1C adds r2, 0x30 adds r1, 0x1 cmp r1, 0x1F ble _08030C96 b _08030D34 .align 2, 0 _08030CA8: .4byte gUnknown_203B480 _08030CAC: movs r1, 0 ldr r0, _08030CC4 ldr r2, [r0] _08030CB2: ldrb r0, [r2] cmp r0, 0x2 beq _08030D1C adds r2, 0x30 adds r1, 0x1 cmp r1, 0x1F ble _08030CB2 b _08030D34 .align 2, 0 _08030CC4: .4byte gUnknown_203B480 _08030CC8: movs r1, 0 ldr r0, _08030CE0 ldr r2, [r0] _08030CCE: ldrb r0, [r2] cmp r0, 0x4 beq _08030D1C adds r2, 0x30 adds r1, 0x1 cmp r1, 0x1F ble _08030CCE b _08030D34 .align 2, 0 _08030CE0: .4byte gUnknown_203B480 _08030CE4: movs r1, 0 ldr r0, _08030CFC ldr r2, [r0] _08030CEA: ldrb r0, [r2] cmp r0, 0x3 beq _08030D1C adds r2, 0x30 adds r1, 0x1 cmp r1, 0x1F ble _08030CEA b _08030D34 .align 2, 0 _08030CFC: .4byte gUnknown_203B480 _08030D00: movs r1, 0 ldr r0, _08030D18 ldr r2, [r0] _08030D06: ldrb r0, [r2] cmp r0, 0x5 beq _08030D1C adds r2, 0x30 adds r1, 0x1 cmp r1, 0x1F ble _08030D06 b _08030D34 .align 2, 0 _08030D18: .4byte gUnknown_203B480 _08030D1C: movs r0, 0 b _08030D36 _08030D20: movs r1, 0 ldr r0, _08030D3C ldr r2, [r0] _08030D26: ldrb r0, [r2] cmp r0, 0x7 beq _08030D1C adds r2, 0x30 adds r1, 0x1 cmp r1, 0x1F ble _08030D26 _08030D34: movs r0, 0x1 _08030D36: pop {r1} bx r1 .align 2, 0 _08030D3C: .4byte gUnknown_203B480 thumb_func_end sub_8030C20 thumb_func_start sub_8030D40 sub_8030D40: push {r4-r6,lr} adds r4, r0, 0 adds r5, r1, 0 lsls r4, 24 lsrs r4, 24 ldr r6, _08030D98 movs r0, 0x78 movs r1, 0x8 bl MemoryAlloc str r0, [r6] strb r4, [r0, 0xC] ldr r0, [r6] bl sub_801317C ldr r0, [r6] str r5, [r0, 0x10] lsls r1, r5, 1 adds r1, r5 lsls r1, 3 adds r1, 0x18 adds r1, r0, r1 str r1, [r0, 0x14] adds r0, 0x18 bl sub_8006518 ldr r1, [r6] ldr r2, [r1, 0x10] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, 0x18 ldr r0, _08030D9C ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} bl sub_8030DD4 movs r0, 0x1 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08030D98: .4byte gUnknown_203B324 _08030D9C: .4byte gUnknown_80E091C thumb_func_end sub_8030D40 thumb_func_start sub_8030DA0 sub_8030DA0: push {lr} ldr r0, _08030DC0 ldr r0, [r0] ldr r1, [r0, 0x10] bl sub_8012A64 cmp r0, 0x1 beq _08030DC4 cmp r0, 0x2 bne _08030DCE movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 b _08030DD0 .align 2, 0 _08030DC0: .4byte gUnknown_203B324 _08030DC4: movs r0, 0 bl sub_80119D4 movs r0, 0x3 b _08030DD0 _08030DCE: movs r0, 0 _08030DD0: pop {r1} bx r1 thumb_func_end sub_8030DA0 thumb_func_start sub_8030DD4 sub_8030DD4: push {lr} bl sub_8030E2C bl sub_8030E48 pop {r0} bx r0 thumb_func_end sub_8030DD4 thumb_func_start sub_8030DE4 sub_8030DE4: push {r4,r5,lr} ldr r4, _08030E24 ldr r2, [r4] cmp r2, 0 beq _08030E1E ldr r0, [r2, 0x10] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 adds r1, 0x18 ldr r0, _08030E28 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} bl sub_8004914 ldr r0, [r4] adds r0, 0x18 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _08030E1E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08030E24: .4byte gUnknown_203B324 _08030E28: .4byte gUnknown_80E0900 thumb_func_end sub_8030DE4 thumb_func_start sub_8030E2C sub_8030E2C: push {lr} bl sub_8004914 ldr r0, _08030E44 ldr r0, [r0] adds r0, 0x18 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r0} bx r0 .align 2, 0 _08030E44: .4byte gUnknown_203B324 thumb_func_end sub_8030E2C thumb_func_start sub_8030E48 sub_8030E48: push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x15C ldr r3, _08030EA8 ldr r4, _08030EAC ldr r2, [r4] ldrb r1, [r2, 0xC] lsls r0, r1, 1 adds r0, r1 lsls r0, 4 ldr r1, [r3] adds r5, r1, r0 ldr r0, [r2, 0x10] bl sub_80073B8 ldr r0, [r4] ldr r0, [r0, 0x10] str r0, [sp, 0x4] add r1, sp, 0x44 movs r2, 0 movs r0, 0x7 strb r0, [r1] mov r0, sp adds r0, 0x46 strb r2, [r0] add r0, sp, 0x48 strb r2, [r0] adds r0, r5, 0x4 str r0, [sp, 0xC] adds r0, 0x10 str r0, [sp, 0x10] add r1, sp, 0x4 ldrh r0, [r5, 0xC] strh r0, [r1, 0x10] ldrh r0, [r5, 0xC] strh r0, [r1, 0x12] adds r0, r1, 0 strb r2, [r0, 0x14] adds r2, r5, 0 adds r2, 0x22 ldrb r0, [r2] cmp r0, 0 bne _08030EB0 adds r1, 0x2E movs r0, 0x5 strb r0, [r1] b _08030EBE .align 2, 0 _08030EA8: .4byte gUnknown_203B480 _08030EAC: .4byte gUnknown_203B324 _08030EB0: mov r1, sp adds r1, 0x32 movs r0, 0x2 strb r0, [r1] ldrb r1, [r2] add r0, sp, 0x38 strb r1, [r0] _08030EBE: ldrb r0, [r5] cmp r0, 0x2 beq _08030ED2 cmp r0, 0x2 ble _08030EE2 cmp r0, 0x4 beq _08030ED2 cmp r0, 0x5 beq _08030EDA b _08030EE2 _08030ED2: mov r1, sp adds r1, 0x45 movs r0, 0xA b _08030EE8 _08030EDA: mov r1, sp adds r1, 0x45 movs r0, 0xB b _08030EE8 _08030EE2: mov r1, sp adds r1, 0x45 movs r0, 0x9 _08030EE8: strb r0, [r1] add r0, sp, 0x4 bl sub_803B98C ldrh r0, [r5, 0x10] ldr r1, _08030F48 bl __umodsi3 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldr r2, _08030F4C ldr r5, _08030F50 ldr r0, [r5] ldr r3, [r0, 0x10] movs r0, 0 mov r8, r0 str r0, [sp] movs r0, 0xA movs r1, 0x68 bl xxx_call_draw_string add r6, sp, 0x5C ldr r1, _08030F54 adds r0, r6, 0 adds r2, r4, 0 bl sub_800D158 ldr r0, [r5] ldr r3, [r0, 0x10] mov r0, r8 str r0, [sp] movs r0, 0x44 movs r1, 0x68 adds r2, r6, 0 bl xxx_call_draw_string ldr r0, [r5] ldr r0, [r0, 0x10] bl sub_80073E0 add sp, 0x15C pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08030F48: .4byte 0x00002710 _08030F4C: .4byte gUnknown_80E0934 _08030F50: .4byte gUnknown_203B324 _08030F54: .4byte gUnknown_80E0938 thumb_func_end sub_8030E48 thumb_func_start sub_8030F58 sub_8030F58: push {r4-r6,lr} adds r6, r0, 0 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r5, _08030FF4 ldr r0, [r5] cmp r0, 0 bne _08030F88 movs r4, 0x8E lsls r4, 1 adds r0, r4, 0 movs r1, 0x8 bl MemoryAlloc str r0, [r5] movs r1, 0 adds r2, r4, 0 bl MemoryFill8 _08030F88: ldr r0, [r5] movs r1, 0x8C lsls r1, 1 adds r0, r1 str r6, [r0] movs r0, 0x98 lsls r0, 1 bl sub_808DDD0 ldr r2, [r5] movs r4, 0x84 lsls r4, 1 adds r1, r2, r4 str r0, [r1] movs r3, 0x86 lsls r3, 1 adds r1, r2, r3 ldr r0, [r0, 0x4] str r0, [r1] movs r0, 0x8A lsls r0, 1 adds r2, r0 movs r1, 0 strb r1, [r2] ldr r0, [r5] ldr r2, _08030FF8 adds r0, r2 strb r1, [r0] ldr r0, [r5] adds r3, 0xA adds r0, r3 strb r1, [r0] ldr r2, [r5] movs r0, 0x88 lsls r0, 1 adds r1, r2, r0 movs r0, 0x2 strh r0, [r1] subs r3, 0x4 adds r1, r2, r3 movs r0, 0x8 strh r0, [r1] adds r0, r6, 0 bl sub_8030C20 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 beq _08031038 cmp r6, 0x2 beq _08030FFC cmp r6, 0x4 beq _08031014 b _08031022 .align 2, 0 _08030FF4: .4byte gUnknown_203B328 _08030FF8: .4byte 0x00000115 _08030FFC: ldr r0, _0803100C ldr r2, [r5] adds r2, r4 ldr r3, _08031010 movs r1, 0 bl sub_80141B4 b _08031022 .align 2, 0 _0803100C: .4byte gUnknown_80E09D8 _08031010: .4byte 0x00000101 _08031014: ldr r0, _0803102C ldr r2, [r5] adds r2, r4 ldr r3, _08031030 movs r1, 0 bl sub_80141B4 _08031022: ldr r0, _08031034 ldr r1, [r0] movs r0, 0x5 str r0, [r1] b _08031048 .align 2, 0 _0803102C: .4byte gUnknown_80E0A0C _08031030: .4byte 0x00000101 _08031034: .4byte gUnknown_203B328 _08031038: ldr r0, [r5] str r1, [r0] adds r0, r6, 0 movs r1, 0 movs r2, 0 movs r3, 0x8 bl sub_80306A8 _08031048: movs r0, 0x1 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8030F58 thumb_func_start sub_8031050 sub_8031050: push {lr} ldr r1, _08031068 ldr r0, [r1] ldr r0, [r0] adds r2, r1, 0 cmp r0, 0x6 bhi _080310AC lsls r0, 2 ldr r1, _0803106C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08031068: .4byte gUnknown_203B328 _0803106C: .4byte _08031070 .align 2, 0 _08031070: .4byte _0803108C .4byte _08031092 .4byte _08031098 .4byte _08031098 .4byte _080310A2 .4byte _080310A8 .4byte _080310A8 _0803108C: bl sub_8031300 b _080310AC _08031092: bl sub_803136C b _080310AC _08031098: ldr r0, [r2] ldr r0, [r0] bl sub_80313D8 b _080310AC _080310A2: bl sub_8031498 b _080310AC _080310A8: movs r0, 0x3 b _080310AE _080310AC: movs r0, 0 _080310AE: pop {r1} bx r1 thumb_func_end sub_8031050 thumb_func_start sub_80310B4 sub_80310B4: push {r4,lr} bl sub_803084C ldr r4, _080310E0 ldr r0, [r4] cmp r0, 0 beq _080310D8 movs r1, 0x84 lsls r1, 1 adds r0, r1 ldr r0, [r0] bl CloseFile ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _080310D8: pop {r4} pop {r0} bx r0 .align 2, 0 _080310E0: .4byte gUnknown_203B328 thumb_func_end sub_80310B4 thumb_func_start sub_80310E4 sub_80310E4: push {lr} ldr r1, _080310F8 ldr r1, [r1] str r0, [r1] bl sub_80310FC bl sub_8031258 pop {r0} bx r0 .align 2, 0 _080310F8: .4byte gUnknown_203B328 thumb_func_end sub_80310E4 thumb_func_start sub_80310FC sub_80310FC: push {r4-r6,lr} ldr r4, _0803111C ldr r0, [r4] adds r0, 0xA8 bl sub_8006518 ldr r0, [r4] ldr r0, [r0] cmp r0, 0x6 bls _08031112 b _0803122C _08031112: lsls r0, 2 ldr r1, _08031120 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803111C: .4byte gUnknown_203B328 _08031120: .4byte _08031124 .align 2, 0 _08031124: .4byte _08031140 .4byte _08031178 .4byte _080311C0 .4byte _080311C0 .4byte _080311E8 .4byte _0803122C .4byte _0803122C _08031140: ldr r3, _08031170 ldr r1, [r3] ldr r2, _08031174 adds r1, 0xC0 adds r0, r2, 0 ldm r0!, {r4-r6} stm r1!, {r4-r6} ldm r0!, {r4-r6} stm r1!, {r4-r6} ldr r1, [r3] adds r1, 0xD8 adds r0, r2, 0 ldm r0!, {r4-r6} stm r1!, {r4-r6} ldm r0!, {r4-r6} stm r1!, {r4-r6} ldr r0, [r3] adds r0, 0xF0 ldm r2!, {r1,r3,r4} stm r0!, {r1,r3,r4} ldm r2!, {r1,r5,r6} stm r0!, {r1,r5,r6} b _0803123A .align 2, 0 _08031170: .4byte gUnknown_203B328 _08031174: .4byte gUnknown_80E0990 _08031178: ldr r3, _080311B0 ldr r1, [r3] adds r1, 0xC0 ldr r0, _080311B4 ldm r0!, {r2,r4,r5} stm r1!, {r2,r4,r5} ldm r0!, {r2,r4,r6} stm r1!, {r2,r4,r6} ldr r1, [r3] ldr r2, _080311B8 adds r1, 0xD8 adds r0, r2, 0 ldm r0!, {r4-r6} stm r1!, {r4-r6} ldm r0!, {r4-r6} stm r1!, {r4-r6} ldr r0, [r3] adds r0, 0xF0 ldm r2!, {r1,r5,r6} stm r0!, {r1,r5,r6} ldm r2!, {r4-r6} stm r0!, {r4-r6} ldr r0, [r3] adds r0, 0xC0 ldr r1, _080311BC bl sub_8012CAC b _0803123A .align 2, 0 _080311B0: .4byte gUnknown_203B328 _080311B4: .4byte gUnknown_80E09A8 _080311B8: .4byte gUnknown_80E0990 _080311BC: .4byte gUnknown_80E0968 _080311C0: ldr r2, _080311DC ldr r1, [r2] adds r1, 0xD8 ldr r0, _080311E0 ldm r0!, {r3-r5} stm r1!, {r3-r5} ldm r0!, {r3,r4,r6} stm r1!, {r3,r4,r6} ldr r0, [r2] adds r0, 0xD8 ldr r1, _080311E4 bl sub_8012CAC b _0803123A .align 2, 0 _080311DC: .4byte gUnknown_203B328 _080311E0: .4byte gUnknown_80E09C0 _080311E4: .4byte gUnknown_80E0948 _080311E8: ldr r3, _08031224 ldr r1, [r3] ldr r2, _08031228 adds r1, 0xA8 adds r0, r2, 0 ldm r0!, {r4-r6} stm r1!, {r4-r6} ldm r0!, {r4-r6} stm r1!, {r4-r6} ldr r1, [r3] adds r1, 0xC0 adds r0, r2, 0 ldm r0!, {r4-r6} stm r1!, {r4-r6} ldm r0!, {r4-r6} stm r1!, {r4-r6} ldr r1, [r3] adds r1, 0xD8 adds r0, r2, 0 ldm r0!, {r4-r6} stm r1!, {r4-r6} ldm r0!, {r4-r6} stm r1!, {r4-r6} ldr r0, [r3] adds r0, 0xF0 ldm r2!, {r1,r5,r6} stm r0!, {r1,r5,r6} ldm r2!, {r3-r5} stm r0!, {r3-r5} b _0803123A .align 2, 0 _08031224: .4byte gUnknown_203B328 _08031228: .4byte gUnknown_80E0990 _0803122C: bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C _0803123A: bl sub_8004914 ldr r0, _08031254 ldr r0, [r0] adds r0, 0xA8 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08031254: .4byte gUnknown_203B328 thumb_func_end sub_80310FC thumb_func_start sub_8031258 sub_8031258: push {r4,lr} sub sp, 0x8 ldr r1, _08031274 ldr r0, [r1] ldr r0, [r0] adds r2, r1, 0 cmp r0, 0x6 bhi _080312F6 lsls r0, 2 ldr r1, _08031278 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08031274: .4byte gUnknown_203B328 _08031278: .4byte _0803127C .align 2, 0 _0803127C: .4byte _08031298 .4byte _080312A0 .4byte _080312BC .4byte _080312BC .4byte _080312EC .4byte _080312F6 .4byte _080312F6 _08031298: movs r0, 0x1 bl sub_8030810 b _080312F6 _080312A0: bl sub_803092C ldr r0, _080312B4 ldr r0, [r0] adds r0, 0x8 ldr r1, _080312B8 movs r2, 0x4 str r2, [sp] movs r2, 0x1 b _080312D8 .align 2, 0 _080312B4: .4byte gUnknown_203B328 _080312B8: .4byte gUnknown_80E0968 _080312BC: bl sub_803092C ldr r4, _080312E4 ldr r0, [r4] adds r0, 0x8 movs r1, 0 bl sub_8012EA4 ldr r0, [r4] adds r0, 0x58 ldr r1, _080312E8 movs r2, 0x3 str r2, [sp] movs r2, 0x2 _080312D8: str r2, [sp, 0x4] movs r2, 0 movs r3, 0 bl sub_8012D60 b _080312F6 .align 2, 0 _080312E4: .4byte gUnknown_203B328 _080312E8: .4byte gUnknown_80E0948 _080312EC: ldr r0, [r2] ldrb r0, [r0, 0x4] movs r1, 0x3 bl sub_8030D40 _080312F6: add sp, 0x8 pop {r4} pop {r0} bx r0 thumb_func_end sub_8031258 thumb_func_start sub_8031300 sub_8031300: push {lr} movs r0, 0x1 bl sub_8030768 cmp r0, 0x4 bhi _08031366 lsls r0, 2 ldr r1, _08031318 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08031318: .4byte _0803131C .align 2, 0 _0803131C: .4byte _08031366 .4byte _08031366 .4byte _08031360 .4byte _08031330 .4byte _08031348 _08031330: bl sub_80307EC ldr r1, _08031344 ldr r1, [r1] strb r0, [r1, 0x4] movs r0, 0x1 bl sub_80310E4 b _08031366 .align 2, 0 _08031344: .4byte gUnknown_203B328 _08031348: bl sub_80307EC ldr r1, _0803135C ldr r1, [r1] strb r0, [r1, 0x4] movs r0, 0x4 bl sub_80310E4 b _08031366 .align 2, 0 _0803135C: .4byte gUnknown_203B328 _08031360: movs r0, 0x6 bl sub_80310E4 _08031366: pop {r0} bx r0 thumb_func_end sub_8031300 thumb_func_start sub_803136C sub_803136C: push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] bl sub_8030768 ldr r4, _080313A4 ldr r0, [r4] adds r0, 0x8 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _08031392 ldr r0, [r4] adds r0, 0x8 mov r1, sp bl sub_8013114 _08031392: ldr r0, [sp] cmp r0, 0x4 beq _080313C2 cmp r0, 0x4 bgt _080313A8 cmp r0, 0x1 beq _080313B2 b _080313D0 .align 2, 0 _080313A4: .4byte gUnknown_203B328 _080313A8: cmp r0, 0x5 beq _080313CA cmp r0, 0x6 beq _080313BA b _080313D0 _080313B2: movs r0, 0 bl sub_80310E4 b _080313D0 _080313BA: movs r0, 0x3 bl sub_80310E4 b _080313D0 _080313C2: movs r0, 0x2 bl sub_80310E4 b _080313D0 _080313CA: movs r0, 0x4 bl sub_80310E4 _080313D0: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_803136C thumb_func_start sub_80313D8 sub_80313D8: push {r4,r5,lr} sub sp, 0x4 adds r5, r0, 0 movs r0, 0 str r0, [sp] bl sub_8030768 ldr r4, _08031418 ldr r0, [r4] adds r0, 0x8 bl sub_8012FD8 ldr r0, [r4] adds r0, 0x58 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _08031408 ldr r0, [r4] adds r0, 0x58 mov r1, sp bl sub_8013114 _08031408: ldr r0, [sp] cmp r0, 0x2 beq _08031428 cmp r0, 0x2 bgt _0803141C cmp r0, 0x1 beq _08031420 b _0803148E .align 2, 0 _08031418: .4byte gUnknown_203B328 _0803141C: cmp r0, 0x3 bne _0803148E _08031420: movs r0, 0 bl sub_80310E4 b _0803148E _08031428: cmp r5, 0x2 beq _08031432 cmp r5, 0x3 beq _0803143C b _0803145A _08031432: ldr r0, [r4] ldrb r0, [r0, 0x4] bl sub_8095240 b _0803145A _0803143C: ldr r4, _08031480 movs r3, 0 movs r1, 0 movs r2, 0x1F _08031444: ldr r0, [r4] adds r0, r1 strb r3, [r0] ldr r0, [r4] adds r0, r1 adds r0, 0x22 strb r3, [r0] adds r1, 0x30 subs r2, 0x1 cmp r2, 0 bge _08031444 _0803145A: ldr r0, _08031484 ldr r0, [r0] movs r1, 0x8C lsls r1, 1 adds r0, r1 ldr r0, [r0] cmp r0, 0x2 beq _0803146E cmp r0, 0x4 bne _0803148E _0803146E: bl sub_8030C20 lsls r0, 24 cmp r0, 0 beq _08031488 movs r0, 0x5 bl sub_80310E4 b _0803148E .align 2, 0 _08031480: .4byte gUnknown_203B480 _08031484: .4byte gUnknown_203B328 _08031488: movs r0, 0 bl sub_80310E4 _0803148E: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80313D8 thumb_func_start sub_8031498 sub_8031498: push {lr} bl sub_8030DA0 cmp r0, 0x1 bls _080314B0 cmp r0, 0x3 bhi _080314B0 bl sub_8030DE4 movs r0, 0 bl sub_80310E4 _080314B0: pop {r0} bx r0 thumb_func_end sub_8031498 thumb_func_start sub_80314B4 sub_80314B4: push {r4-r6,lr} lsls r0, 16 asrs r5, r0, 16 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r6, _08031534 movs r0, 0x18 movs r1, 0x8 bl MemoryAlloc str r0, [r6] ldr r0, _08031538 adds r1, r5, 0 bl sub_808D8E0 adds r0, r5, 0 bl sub_808D994 adds r1, r0, 0 ldr r0, _0803153C bl strcpy ldr r0, [r6] movs r4, 0 str r4, [r0, 0x8] str r4, [r0, 0xC] cmp r5, 0 beq _0803151E adds r0, r5, 0 bl sub_808DDD0 ldr r1, [r6] str r0, [r1, 0x8] strb r4, [r1, 0x14] ldr r0, [r6] strb r4, [r0, 0x15] ldr r0, [r6] strb r4, [r0, 0x16] ldr r1, [r6] movs r0, 0x2 strh r0, [r1, 0x10] movs r0, 0x8 strh r0, [r1, 0x12] ldr r0, [r1, 0x8] cmp r0, 0 beq _0803151E ldr r0, [r0, 0x4] str r0, [r1, 0xC] _0803151E: ldr r0, _08031534 ldr r1, [r0] movs r0, 0 str r0, [r1, 0x4] movs r0, 0x1 bl sub_80317C0 movs r0, 0x1 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08031534: .4byte gUnknown_203B32C _08031538: .4byte gUnknown_202E5D8 _0803153C: .4byte gUnknown_202DF98 thumb_func_end sub_80314B4 thumb_func_start sub_8031540 sub_8031540: push {lr} ldr r0, _08031558 ldr r0, [r0] ldrb r0, [r0] cmp r0, 0x9 bhi _080315BA lsls r0, 2 ldr r1, _0803155C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08031558: .4byte gUnknown_203B32C _0803155C: .4byte _08031560 .align 2, 0 _08031560: .4byte _080315AC .4byte _08031588 .4byte _08031588 .4byte _0803158E .4byte _08031594 .4byte _0803159A .4byte _080315A0 .4byte _080315A6 .4byte _080315B0 .4byte _080315B6 _08031588: bl sub_80317D8 b _080315BA _0803158E: bl sub_8031848 b _080315BA _08031594: bl sub_8031864 b _080315BA _0803159A: bl sub_80318D0 b _080315BA _080315A0: bl sub_80318EC b _080315BA _080315A6: bl sub_803192C b _080315BA _080315AC: movs r0, 0x3 b _080315BC _080315B0: bl sub_8031948 b _080315BA _080315B6: bl sub_8031988 _080315BA: movs r0, 0 _080315BC: pop {r1} bx r1 thumb_func_end sub_8031540 thumb_func_start sub_80315C0 sub_80315C0: push {r4,lr} ldr r4, _080315E4 ldr r0, [r4] cmp r0, 0 beq _080315DE ldr r0, [r0, 0x8] cmp r0, 0 beq _080315D4 bl CloseFile _080315D4: ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _080315DE: pop {r4} pop {r0} bx r0 .align 2, 0 _080315E4: .4byte gUnknown_203B32C thumb_func_end sub_80315C0 thumb_func_start nullsub_39 nullsub_39: bx lr thumb_func_end nullsub_39 thumb_func_start sub_80315EC sub_80315EC: push {r4,r5,lr} sub sp, 0x14 movs r5, 0 ldr r0, _08031618 ldr r2, [r0] ldr r1, [r2, 0x8] adds r3, r0, 0 cmp r1, 0 beq _08031602 adds r5, r2, 0 adds r5, 0x8 _08031602: ldrb r0, [r2] subs r0, 0x1 cmp r0, 0x8 bls _0803160C b _080317B0 _0803160C: lsls r0, 2 ldr r1, _0803161C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08031618: .4byte gUnknown_203B32C _0803161C: .4byte _08031620 .align 2, 0 _08031620: .4byte _08031700 .4byte _08031714 .4byte _08031728 .4byte _08031758 .4byte _08031780 .4byte _08031694 .4byte _080316A8 .4byte _08031644 .4byte _08031658 _08031644: ldr r0, _08031650 ldr r1, [r3] ldr r2, [r1, 0x4] ldr r3, _08031654 b _08031760 .align 2, 0 _08031650: .4byte gUnknown_80E0C4C _08031654: .4byte gUnknown_80E0BD4 _08031658: ldr r0, [r3] ldr r0, [r0, 0x4] cmp r0, 0x10 beq _0803167C cmp r0, 0x10 bgt _0803166A cmp r0, 0xF beq _08031674 b _080317B0 _0803166A: cmp r0, 0x11 beq _08031684 cmp r0, 0x12 beq _0803168C b _080317B0 _08031674: ldr r0, _08031678 b _08031790 .align 2, 0 _08031678: .4byte gUnknown_80E0C70 _0803167C: ldr r0, _08031680 b _08031790 .align 2, 0 _08031680: .4byte gUnknown_80E0DD0 _08031684: ldr r0, _08031688 b _08031790 .align 2, 0 _08031688: .4byte gUnknown_80E0ED8 _0803168C: ldr r0, _08031690 b _08031790 .align 2, 0 _08031690: .4byte gUnknown_80E10C8 _08031694: ldr r0, _080316A0 ldr r1, [r3] ldr r2, [r1, 0x4] ldr r3, _080316A4 b _08031760 .align 2, 0 _080316A0: .4byte gUnknown_80E0C4C _080316A4: .4byte gUnknown_80E0B3C _080316A8: ldr r0, [r3] ldr r0, [r0, 0x4] subs r0, 0xA cmp r0, 0x4 bls _080316B4 b _080317B0 _080316B4: lsls r0, 2 ldr r1, _080316C0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080316C0: .4byte _080316C4 .align 2, 0 _080316C4: .4byte _080316D8 .4byte _080316E0 .4byte _080316F0 .4byte _080316E8 .4byte _080316F8 _080316D8: ldr r0, _080316DC b _08031790 .align 2, 0 _080316DC: .4byte gUnknown_80E120C _080316E0: ldr r0, _080316E4 b _08031790 .align 2, 0 _080316E4: .4byte gUnknown_80E136C _080316E8: ldr r0, _080316EC b _08031790 .align 2, 0 _080316EC: .4byte gUnknown_80E1420 _080316F0: ldr r0, _080316F4 b _08031790 .align 2, 0 _080316F4: .4byte gUnknown_80E157C _080316F8: ldr r0, _080316FC b _08031790 .align 2, 0 _080316FC: .4byte gUnknown_80E169C _08031700: ldr r0, _0803170C ldr r1, [r3] ldr r2, [r1, 0x4] ldr r3, _08031710 b _08031760 .align 2, 0 _0803170C: .4byte gUnknown_80E17C8 _08031710: .4byte gUnknown_80E0A48 _08031714: ldr r0, _08031720 ldr r1, [r3] ldr r2, [r1, 0x4] ldr r3, _08031724 b _08031760 .align 2, 0 _08031720: .4byte gUnknown_80E183C _08031724: .4byte gUnknown_80E0A48 _08031728: ldr r0, [r3] ldr r0, [r0, 0x4] cmp r0, 0x1 beq _08031748 cmp r0, 0x1 bgt _0803173A cmp r0, 0 beq _08031740 b _080317B0 _0803173A: cmp r0, 0x2 beq _08031750 b _080317B0 _08031740: ldr r0, _08031744 b _08031790 .align 2, 0 _08031744: .4byte gUnknown_80E1868 _08031748: ldr r0, _0803174C b _08031790 .align 2, 0 _0803174C: .4byte gUnknown_80E1A30 _08031750: ldr r0, _08031754 b _08031790 .align 2, 0 _08031754: .4byte gUnknown_80E1AD8 _08031758: ldr r0, _08031778 ldr r1, [r3] ldr r2, [r1, 0x4] ldr r3, _0803177C _08031760: movs r4, 0 str r4, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r4, [sp, 0x8] str r5, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 bl sub_8014248 b _080317B0 .align 2, 0 _08031778: .4byte gUnknown_80E0C4C _0803177C: .4byte gUnknown_80E0ABC _08031780: ldr r0, [r3] ldr r0, [r0, 0x4] cmp r0, 0x6 beq _0803178E cmp r0, 0x9 beq _080317A4 b _080317B0 _0803178E: ldr r0, _0803179C _08031790: ldr r3, _080317A0 movs r1, 0 adds r2, r5, 0 bl sub_80141B4 b _080317B0 .align 2, 0 _0803179C: .4byte gUnknown_80E1B88 _080317A0: .4byte 0x0000010d _080317A4: ldr r0, _080317B8 ldr r3, _080317BC movs r1, 0 adds r2, r5, 0 bl sub_80141B4 _080317B0: add sp, 0x14 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080317B8: .4byte gUnknown_80E1D84 _080317BC: .4byte 0x0000010d thumb_func_end sub_80315EC thumb_func_start sub_80317C0 sub_80317C0: push {lr} ldr r1, _080317D4 ldr r1, [r1] strb r0, [r1] bl nullsub_39 bl sub_80315EC pop {r0} bx r0 .align 2, 0 _080317D4: .4byte gUnknown_203B32C thumb_func_end sub_80317C0 thumb_func_start sub_80317D8 sub_80317D8: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0803183C ldr r2, [sp] cmp r2, 0x5 bhi _0803183C lsls r0, r2, 2 ldr r1, _080317F8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080317F8: .4byte _080317FC .align 2, 0 _080317FC: .4byte _08031830 .4byte _08031830 .4byte _08031830 .4byte _0803181C .4byte _08031814 .4byte _08031814 _08031814: movs r0, 0 bl sub_80317C0 b _0803183C _0803181C: ldr r0, _0803182C ldr r0, [r0] str r2, [r0, 0x4] movs r0, 0x4 bl sub_80317C0 b _0803183C .align 2, 0 _0803182C: .4byte gUnknown_203B32C _08031830: ldr r0, _08031844 ldr r0, [r0] str r2, [r0, 0x4] movs r0, 0x3 bl sub_80317C0 _0803183C: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _08031844: .4byte gUnknown_203B32C thumb_func_end sub_80317D8 thumb_func_start sub_8031848 sub_8031848: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0803185C movs r0, 0x2 bl sub_80317C0 _0803185C: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8031848 thumb_func_start sub_8031864 sub_8031864: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080318C4 ldr r0, [sp] subs r1, r0, 0x5 adds r2, r0, 0 cmp r1, 0x4 bhi _080318C4 lsls r0, r1, 2 ldr r1, _08031888 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08031888: .4byte _0803188C .align 2, 0 _0803188C: .4byte _080318A0 .4byte _080318B8 .4byte _080318A8 .4byte _080318B0 .4byte _080318B8 _080318A0: movs r0, 0x2 bl sub_80317C0 b _080318C4 _080318A8: movs r0, 0x6 bl sub_80317C0 b _080318C4 _080318B0: movs r0, 0x8 bl sub_80317C0 b _080318C4 _080318B8: ldr r0, _080318CC ldr r0, [r0] str r2, [r0, 0x4] movs r0, 0x5 bl sub_80317C0 _080318C4: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080318CC: .4byte gUnknown_203B32C thumb_func_end sub_8031864 thumb_func_start sub_80318D0 sub_80318D0: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080318E4 movs r0, 0x4 bl sub_80317C0 _080318E4: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80318D0 thumb_func_start sub_80318EC sub_80318EC: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08031920 ldr r1, [sp] cmp r1, 0x5 bne _08031908 movs r0, 0x4 bl sub_80317C0 b _08031920 _08031908: cmp r1, 0x5 blt _08031920 cmp r1, 0xE bgt _08031920 cmp r1, 0xA blt _08031920 ldr r0, _08031928 ldr r0, [r0] str r1, [r0, 0x4] movs r0, 0x7 bl sub_80317C0 _08031920: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _08031928: .4byte gUnknown_203B32C thumb_func_end sub_80318EC thumb_func_start sub_803192C sub_803192C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08031940 movs r0, 0x6 bl sub_80317C0 _08031940: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_803192C thumb_func_start sub_8031948 sub_8031948: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0803197C ldr r1, [sp] cmp r1, 0x5 bne _08031964 movs r0, 0x4 bl sub_80317C0 b _0803197C _08031964: cmp r1, 0x5 blt _0803197C cmp r1, 0x12 bgt _0803197C cmp r1, 0xF blt _0803197C ldr r0, _08031984 ldr r0, [r0] str r1, [r0, 0x4] movs r0, 0x9 bl sub_80317C0 _0803197C: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _08031984: .4byte gUnknown_203B32C thumb_func_end sub_8031948 thumb_func_start sub_8031988 sub_8031988: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0803199C movs r0, 0x8 bl sub_80317C0 _0803199C: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8031988 thumb_func_start sub_80319A4 sub_80319A4: push {r4-r6,lr} mov r6, r8 push {r6} adds r4, r0, 0 adds r5, r1, 0 mov r8, r2 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 ldr r6, _080319F4 movs r0, 0x78 movs r1, 0x8 bl MemoryAlloc str r0, [r6] strb r4, [r0, 0xC] ldr r0, [r6] strb r5, [r0, 0xD] ldr r0, [r6] bl sub_801317C ldr r1, [r6] mov r0, r8 str r0, [r1, 0x10] lsls r0, 1 add r0, r8 lsls r0, 3 adds r0, 0x18 adds r0, r1, r0 str r0, [r1, 0x14] bl sub_8031A2C movs r0, 0x1 pop {r3} mov r8, r3 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _080319F4: .4byte gUnknown_203B330 thumb_func_end sub_80319A4 thumb_func_start sub_80319F8 sub_80319F8: push {lr} ldr r0, _08031A18 ldr r0, [r0] ldr r1, [r0, 0x10] bl sub_8012A64 cmp r0, 0x1 beq _08031A1C cmp r0, 0x2 bne _08031A26 movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 b _08031A28 .align 2, 0 _08031A18: .4byte gUnknown_203B330 _08031A1C: movs r0, 0 bl sub_80119D4 movs r0, 0x3 b _08031A28 _08031A26: movs r0, 0 _08031A28: pop {r1} bx r1 thumb_func_end sub_80319F8 thumb_func_start sub_8031A2C sub_8031A2C: push {lr} bl sub_8031A84 bl sub_8031AE8 pop {r0} bx r0 thumb_func_end sub_8031A2C thumb_func_start sub_8031A3C sub_8031A3C: push {r4,r5,lr} ldr r4, _08031A7C ldr r2, [r4] cmp r2, 0 beq _08031A76 ldr r0, [r2, 0x10] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 adds r1, 0x18 ldr r0, _08031A80 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} bl sub_8004914 ldr r0, [r4] adds r0, 0x18 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _08031A76: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08031A7C: .4byte gUnknown_203B330 _08031A80: .4byte gUnknown_80E1EFC thumb_func_end sub_8031A3C thumb_func_start sub_8031A84 sub_8031A84: push {r4,r5,lr} ldr r4, _08031AE0 ldr r0, [r4] adds r0, 0x18 bl sub_8006518 ldr r1, [r4] ldr r2, [r1, 0x10] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, 0x18 ldr r0, _08031AE4 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldr r1, [r4] ldrb r0, [r1, 0xC] cmp r0, 0x2 bne _08031AC6 ldrb r0, [r1, 0xD] bl sub_80969D0 adds r1, r0, 0 cmp r1, 0 bne _08031ABE movs r1, 0x1 _08031ABE: ldr r0, [r4] ldr r0, [r0, 0x14] bl sub_8012D08 _08031AC6: bl sub_8004914 ldr r0, _08031AE0 ldr r0, [r0] adds r0, 0x18 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08031AE0: .4byte gUnknown_203B330 _08031AE4: .4byte gUnknown_80E1F18 thumb_func_end sub_8031A84 thumb_func_start sub_8031AE8 sub_8031AE8: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xDC ldr r7, _08031B24 ldr r0, [r7] ldr r0, [r0, 0x10] bl sub_80073B8 ldr r2, _08031B28 ldr r0, [r7] ldr r3, [r0, 0x10] movs r6, 0 str r6, [sp] movs r0, 0xA movs r1, 0 bl xxx_call_draw_string ldr r1, [r7] ldrb r0, [r1, 0xC] cmp r0, 0x1 beq _08031B2C cmp r0, 0x1 bgt _08031B1E b _08031CD4 _08031B1E: cmp r0, 0x2 beq _08031B94 b _08031CD4 .align 2, 0 _08031B24: .4byte gUnknown_203B330 _08031B28: .4byte gUnknown_80E1F30 _08031B2C: add r4, sp, 0x68 adds r0, r4, 0 bl sub_8099394 ldrb r0, [r4] bl sub_8095228 adds r5, r0, 0 ldr r0, [r7] ldr r3, [r0, 0x10] movs r0, 0xA movs r1, 0x10 movs r2, 0x3 bl sub_803B6B0 ldr r1, _08031B8C ldrb r2, [r5, 0x5] add r0, sp, 0x4 bl sub_800D158 ldr r0, [r7] ldr r3, [r0, 0x10] str r6, [sp] movs r0, 0x15 movs r1, 0x10 add r2, sp, 0x4 bl xxx_call_draw_string ldr r4, _08031B90 movs r1, 0xC ldrsh r0, [r5, r1] bl sub_808D994 adds r2, r0, 0 add r0, sp, 0x4 adds r1, r4, 0 bl sub_800D158 ldr r0, [r7] ldr r3, [r0, 0x10] str r6, [sp] movs r0, 0x28 movs r1, 0x10 add r2, sp, 0x4 bl xxx_call_draw_string b _08031D4E .align 2, 0 _08031B8C: .4byte gUnknown_80E1F3C _08031B90: .4byte gUnknown_80E1F40 _08031B94: ldrb r0, [r1, 0xD] bl sub_80969D0 adds r1, r0, 0 cmp r1, 0 bne _08031BB0 ldr r2, _08031BAC ldr r0, [r7] ldr r3, [r0, 0x10] str r1, [sp] b _08031D2C .align 2, 0 _08031BAC: .4byte gUnknown_80E1F54 _08031BB0: movs r6, 0x10 movs r2, 0 mov r10, r2 mov r8, r2 ldr r0, _08031C28 mov r9, r0 mov r1, sp adds r1, 0x6C str r1, [sp, 0xD8] _08031BC2: mov r2, r10 lsls r0, r2, 24 lsrs r0, 24 bl sub_8096AB4 adds r4, r0, 0 ldr r1, [r7] ldrb r0, [r4, 0x4] ldrb r2, [r1, 0xD] cmp r0, r2 bne _08031CC2 ldrb r0, [r4] cmp r0, 0 beq _08031CC2 cmp r0, 0x5 beq _08031CC2 cmp r0, 0x7 beq _08031CC2 ldr r3, [r1, 0x10] movs r0, 0xA adds r1, r6, 0 movs r2, 0x3 bl sub_803B6B0 ldrb r0, [r4, 0x1] add r5, sp, 0x6C cmp r0, 0x3 beq _08031C16 ldrb r2, [r4, 0x5] ldr r0, [sp, 0xD8] ldr r1, _08031C2C bl sub_800D158 ldr r0, [r7] ldr r3, [r0, 0x10] mov r0, r8 str r0, [sp] movs r0, 0x15 adds r1, r6, 0 ldr r2, [sp, 0xD8] bl xxx_call_draw_string _08031C16: ldrb r0, [r4, 0x1] cmp r0, 0x3 beq _08031C58 cmp r0, 0x3 bgt _08031C30 cmp r0, 0x2 beq _08031C70 b _08031C9C .align 2, 0 _08031C28: .4byte gUnknown_202DE58 _08031C2C: .4byte gUnknown_80E1F3C _08031C30: cmp r0, 0x4 bne _08031C9C ldrb r1, [r4, 0x10] mov r0, r9 movs r2, 0 bl sub_8090DC4 adds r0, r5, 0 ldr r1, _08031C54 mov r2, r9 bl sub_800D158 ldr r0, [r7] ldr r3, [r0, 0x10] mov r1, r8 str r1, [sp] b _08031C8A .align 2, 0 _08031C54: .4byte gUnknown_80E1F60 _08031C58: ldrb r1, [r4, 0x10] mov r0, r9 movs r2, 0 bl sub_8090DC4 adds r0, r5, 0 ldr r1, _08031C6C mov r2, r9 b _08031C7E .align 2, 0 _08031C6C: .4byte gUnknown_80E1F70 _08031C70: movs r1, 0xE ldrsh r0, [r4, r1] bl sub_808D994 adds r2, r0, 0 adds r0, r5, 0 ldr r1, _08031C98 _08031C7E: bl sub_800D158 ldr r0, [r7] ldr r3, [r0, 0x10] mov r2, r8 str r2, [sp] _08031C8A: movs r0, 0x28 adds r1, r6, 0 adds r2, r5, 0 bl xxx_call_draw_string b _08031CC0 .align 2, 0 _08031C98: .4byte gUnknown_80E1F80 _08031C9C: movs r1, 0xE ldrsh r0, [r4, r1] bl sub_808D994 adds r2, r0, 0 adds r0, r5, 0 ldr r1, _08031CD0 bl sub_800D158 ldr r0, [r7] ldr r3, [r0, 0x10] mov r2, r8 str r2, [sp] movs r0, 0x28 adds r1, r6, 0 adds r2, r5, 0 bl xxx_call_draw_string _08031CC0: adds r6, 0xC _08031CC2: movs r0, 0x1 add r10, r0 mov r1, r10 cmp r1, 0x7 bgt _08031CCE b _08031BC2 _08031CCE: b _08031D4E .align 2, 0 _08031CD0: .4byte gUnknown_80E1F40 _08031CD4: add r0, sp, 0xD0 mov r4, sp adds r4, 0xD2 adds r1, r4, 0 bl sub_80992E0 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 beq _08031D04 movs r2, 0 ldrsh r0, [r4, r2] bl sub_80974C4 adds r2, r0, 0 ldr r0, _08031D00 ldr r0, [r0] ldr r3, [r0, 0x10] movs r0, 0 str r0, [sp] b _08031D2C .align 2, 0 _08031D00: .4byte gUnknown_203B330 _08031D04: add r4, sp, 0xD4 adds r0, r4, 0 bl sub_8099360 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 beq _08031D3C ldrb r0, [r4] bl sub_80A2688 lsls r0, 16 asrs r0, 16 bl sub_80975DC adds r2, r0, 0 ldr r0, _08031D38 ldr r0, [r0] ldr r3, [r0, 0x10] str r5, [sp] _08031D2C: movs r0, 0xA movs r1, 0x10 bl xxx_call_draw_string b _08031D4E .align 2, 0 _08031D38: .4byte gUnknown_203B330 _08031D3C: ldr r2, _08031D68 ldr r0, _08031D6C ldr r0, [r0] ldr r3, [r0, 0x10] str r1, [sp] movs r0, 0xA movs r1, 0x10 bl xxx_call_draw_string _08031D4E: ldr r0, _08031D6C ldr r0, [r0] ldr r0, [r0, 0x10] bl sub_80073E0 add sp, 0xDC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08031D68: .4byte gUnknown_80E1F94 _08031D6C: .4byte gUnknown_203B330 thumb_func_end sub_8031AE8 thumb_func_start sub_8031D70 sub_8031D70: push {r4-r6,lr} adds r6, r0, 0 adds r4, r1, 0 ldr r5, _08031DC4 movs r0, 0x7C movs r1, 0x8 bl MemoryAlloc str r0, [r5] stm r0!, {r6} bl sub_801317C ldr r0, [r5] str r4, [r0, 0x10] lsls r1, r4, 1 adds r1, r4 lsls r1, 3 adds r1, 0x18 adds r1, r0, r1 str r1, [r0, 0x14] adds r0, 0x18 bl sub_8006518 ldr r1, [r5] ldr r2, [r1, 0x10] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, 0x18 ldr r0, _08031DC8 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} bl sub_8031E00 movs r0, 0x1 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08031DC4: .4byte gUnknown_203B334 _08031DC8: .4byte gUnknown_80E1FC4 thumb_func_end sub_8031D70 thumb_func_start sub_8031DCC sub_8031DCC: push {lr} ldr r0, _08031DEC ldr r1, [r0] adds r0, r1, 0x4 ldr r1, [r1, 0x10] bl sub_8012A64 cmp r0, 0x1 beq _08031DF0 cmp r0, 0x2 bne _08031DFA movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 b _08031DFC .align 2, 0 _08031DEC: .4byte gUnknown_203B334 _08031DF0: movs r0, 0 bl sub_80119D4 movs r0, 0x3 b _08031DFC _08031DFA: movs r0, 0 _08031DFC: pop {r1} bx r1 thumb_func_end sub_8031DCC thumb_func_start sub_8031E00 sub_8031E00: push {lr} bl sub_8031E58 bl sub_8031E74 pop {r0} bx r0 thumb_func_end sub_8031E00 thumb_func_start sub_8031E10 sub_8031E10: push {r4,r5,lr} ldr r4, _08031E50 ldr r2, [r4] cmp r2, 0 beq _08031E4A ldr r0, [r2, 0x10] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 adds r1, 0x18 ldr r0, _08031E54 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} bl sub_8004914 ldr r0, [r4] adds r0, 0x18 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _08031E4A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08031E50: .4byte gUnknown_203B334 _08031E54: .4byte gUnknown_80E1FA8 thumb_func_end sub_8031E10 thumb_func_start sub_8031E58 sub_8031E58: push {lr} bl sub_8004914 ldr r0, _08031E70 ldr r0, [r0] adds r0, 0x18 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r0} bx r0 .align 2, 0 _08031E70: .4byte gUnknown_203B334 thumb_func_end sub_8031E58 thumb_func_start sub_8031E74 sub_8031E74: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x3C ldr r3, _08031EC0 ldr r5, _08031EC4 ldr r2, [r5] ldr r1, [r2] lsls r0, r1, 1 adds r0, r1 lsls r0, 4 ldr r4, [r3] adds r4, r0 ldr r0, [r2, 0x10] bl sub_80073B8 ldr r2, _08031EC8 ldr r0, [r5] ldr r3, [r0, 0x10] movs r0, 0 str r0, [sp] movs r0, 0x14 movs r1, 0 bl xxx_call_draw_string add r0, sp, 0x4 adds r1, r4, 0 bl sub_803D2C0 movs r7, 0 mov r8, r5 _08031EB2: cmp r7, 0x4 ble _08031ED0 cmp r7, 0xC bgt _08031ECC movs r6, 0x6 movs r5, 0x16 b _08031F00 .align 2, 0 _08031EC0: .4byte gUnknown_203B480 _08031EC4: .4byte gUnknown_203B334 _08031EC8: .4byte gUnknown_80E1FDC _08031ECC: cmp r7, 0x11 bgt _08031ED6 _08031ED0: movs r6, 0x7 movs r5, 0x15 b _08031F00 _08031ED6: cmp r7, 0x16 ble _08031EE8 cmp r7, 0x1E bgt _08031EE4 movs r6, 0x6 movs r5, 0x25 b _08031F00 _08031EE4: cmp r7, 0x23 bgt _08031EEE _08031EE8: movs r6, 0x7 movs r5, 0x24 b _08031F00 _08031EEE: cmp r7, 0x28 ble _08031EFC cmp r7, 0x30 bgt _08031EFC movs r6, 0x6 movs r5, 0x34 b _08031F00 _08031EFC: movs r6, 0x7 movs r5, 0x33 _08031F00: adds r0, r7, 0 movs r1, 0x12 bl __modsi3 movs r1, 0xB adds r4, r0, 0 muls r4, r1 adds r4, 0x6 mov r0, sp adds r0, r7 adds r0, 0x4 ldrb r2, [r0] mov r1, r8 ldr r0, [r1] ldr r0, [r0, 0x10] str r0, [sp] adds r0, r4, 0 adds r1, r5, 0 adds r3, r6, 0 bl sub_8012C60 mov r1, r8 ldr r0, [r1] ldr r0, [r0, 0x10] adds r2, r5, 0 adds r2, 0xA movs r1, 0x5 str r1, [sp] adds r1, r4, 0 movs r3, 0xA bl sub_80078A4 adds r7, 0x1 cmp r7, 0x35 ble _08031EB2 ldr r0, _08031F5C ldr r0, [r0] ldr r0, [r0, 0x10] bl sub_80073E0 add sp, 0x3C pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08031F5C: .4byte gUnknown_203B334 thumb_func_end sub_8031E74 thumb_func_start sub_8031F60 sub_8031F60: push {r4-r6,lr} adds r5, r0, 0 ldr r4, _08031FD0 movs r0, 0xA0 movs r1, 0x8 bl MemoryAlloc str r0, [r4] str r5, [r0, 0x34] lsls r1, r5, 1 adds r1, r5 lsls r1, 3 adds r1, 0x3C adds r1, r0, r1 str r1, [r0, 0x38] adds r0, 0x3C bl sub_8006518 ldr r1, [r4] ldr r2, [r1, 0x34] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, 0x3C ldr r0, _08031FD4 ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldr r0, [r4] ldr r1, [r0, 0x38] adds r0, 0x9C str r0, [r1, 0x14] bl sub_8004914 ldr r0, [r4] adds r0, 0x3C movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] movs r1, 0x20 movs r2, 0x8 adds r3, r5, 0 bl sub_8013818 bl sub_8032084 bl sub_80320F8 movs r0, 0x1 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08031FD0: .4byte gUnknown_203B338 _08031FD4: .4byte gUnknown_80E2008 thumb_func_end sub_8031F60 thumb_func_start sub_8031FD8 sub_8031FD8: push {r4,lr} lsls r0, 24 cmp r0, 0 bne _08031FF0 ldr r0, _08031FEC ldr r0, [r0] bl sub_8013660 movs r0, 0 b _08032034 .align 2, 0 _08031FEC: .4byte gUnknown_203B338 _08031FF0: ldr r4, _0803200C ldr r0, [r4] bl GetKeyPress cmp r0, 0x1 beq _08032010 cmp r0, 0x2 bne _0803201A movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 b _08032034 .align 2, 0 _0803200C: .4byte gUnknown_203B338 _08032010: movs r0, 0 bl sub_80119D4 movs r0, 0x3 b _08032034 _0803201A: ldr r0, [r4] bl sub_8013938 lsls r0, 24 cmp r0, 0 bne _0803202A movs r0, 0 b _08032034 _0803202A: bl sub_8032084 bl sub_80320F8 movs r0, 0x1 _08032034: pop {r4} pop {r1} bx r1 thumb_func_end sub_8031FD8 thumb_func_start sub_803203C sub_803203C: push {r4,r5,lr} ldr r4, _0803207C ldr r2, [r4] cmp r2, 0 beq _08032076 ldr r0, [r2, 0x34] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 adds r1, 0x3C ldr r0, _08032080 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} bl sub_8004914 ldr r0, [r4] adds r0, 0x3C movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _08032076: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0803207C: .4byte gUnknown_203B338 _08032080: .4byte gUnknown_80E1FF0 thumb_func_end sub_803203C thumb_func_start sub_8032084 sub_8032084: push {r4,lr} ldr r4, _080320F4 ldr r0, [r4] ldrh r1, [r0, 0x20] adds r0, 0x9C movs r2, 0 strb r1, [r0] ldr r0, [r4] ldrh r1, [r0, 0x1E] adds r0, 0x9D strb r1, [r0] ldr r0, [r4] adds r0, 0x9E movs r1, 0xB strb r1, [r0] ldr r0, [r4] adds r0, 0x9F strb r2, [r0] ldr r0, [r4] movs r1, 0x1A ldrsh r0, [r0, r1] movs r1, 0xC bl sub_80095E4 adds r0, 0x2 lsls r0, 16 ldr r2, [r4] ldr r3, [r2, 0x34] lsls r1, r3, 1 adds r1, r3 lsls r1, 3 adds r1, r2, r1 adds r1, 0x4A asrs r3, r0, 16 lsrs r0, 16 strh r0, [r1] ldr r1, [r2, 0x34] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r2, r0 adds r3, 0x2 adds r2, 0x4C strh r3, [r2] bl sub_8004914 ldr r0, [r4] adds r0, 0x3C movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4} pop {r0} bx r0 .align 2, 0 _080320F4: .4byte gUnknown_203B338 thumb_func_end sub_8032084 thumb_func_start sub_80320F8 sub_80320F8: push {r4-r7,lr} sub sp, 0x8 ldr r5, _08032158 ldr r0, [r5] ldr r0, [r0, 0x34] bl sub_8008C54 ldr r0, [r5] ldr r0, [r0, 0x34] bl sub_80073B8 ldr r0, [r5] movs r1, 0x1E ldrsh r4, [r0, r1] lsls r4, 3 adds r6, r4, 0 adds r6, 0xA ldr r2, _0803215C ldr r3, [r0, 0x34] movs r0, 0 str r0, [sp] adds r0, r6, 0 movs r1, 0 bl xxx_call_draw_string adds r4, 0x4 ldr r1, [r5] adds r0, r1, 0 adds r0, 0x9E ldrb r0, [r0] lsls r0, 3 adds r6, r4, r0 movs r0, 0x1E ldrsh r2, [r1, r0] adds r2, 0x1 movs r0, 0x7 str r0, [sp] ldr r0, [r1, 0x34] str r0, [sp, 0x4] adds r0, r6, 0 movs r1, 0 movs r3, 0x1 bl sub_8012BC4 movs r7, 0 ldr r0, [r5] b _0803223A .align 2, 0 _08032158: .4byte gUnknown_203B338 _0803215C: .4byte gUnknown_80E2020 _08032160: ldr r5, _08032194 ldr r0, [r5] movs r2, 0x1E ldrsh r1, [r0, r2] movs r2, 0x1C ldrsh r0, [r0, r2] muls r0, r1 adds r0, r7 lsls r0, 24 lsrs r6, r0, 24 adds r0, r6, 0 bl sub_8097710 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _0803221C subs r0, r6, 0x7 cmp r0, 0x5 bhi _080321EC lsls r0, 2 ldr r1, _08032198 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08032194: .4byte gUnknown_203B338 _08032198: .4byte _0803219C .align 2, 0 _0803219C: .4byte _080321BA .4byte _080321C6 .4byte _080321D4 .4byte _080321E0 .4byte _080321C0 .4byte _080321B4 _080321B4: bl sub_80978B8 b _080321E4 _080321BA: bl sub_8097880 b _080321E4 _080321C0: bl sub_8097838 b _080321E4 _080321C6: bl sub_80977B8 ldr r1, _080321D0 b _080321EA .align 2, 0 _080321D0: .4byte gUnknown_202DE30 _080321D4: bl sub_80977F8 ldr r1, _080321DC b _080321EA .align 2, 0 _080321DC: .4byte gUnknown_202DE30 _080321E0: bl sub_8097870 _080321E4: ldr r1, _08032214 lsls r0, 16 asrs r0, 16 _080321EA: str r0, [r1] _080321EC: ldr r4, _08032218 ldr r0, [r4] adds r1, r7, 0 bl sub_8013800 adds r5, r0, 0 adds r0, r6, 0 bl sub_8097738 adds r2, r0, 0 ldr r0, [r4] ldr r3, [r0, 0x34] movs r0, 0 str r0, [sp] movs r0, 0x8 adds r1, r5, 0 bl sub_8014FF0 b _08032234 .align 2, 0 _08032214: .4byte gUnknown_202DE30 _08032218: .4byte gUnknown_203B338 _0803221C: ldr r0, [r5] adds r1, r7, 0 bl sub_8013800 adds r1, r0, 0 ldr r2, _08032254 ldr r0, [r5] ldr r3, [r0, 0x34] str r4, [sp] movs r0, 0x8 bl xxx_call_draw_string _08032234: adds r7, 0x1 ldr r0, _08032258 ldr r0, [r0] _0803223A: movs r1, 0x1A ldrsh r0, [r0, r1] cmp r7, r0 blt _08032160 ldr r0, _08032258 ldr r0, [r0] ldr r0, [r0, 0x34] bl sub_80073E0 add sp, 0x8 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08032254: .4byte gUnknown_80E2030 _08032258: .4byte gUnknown_203B338 thumb_func_end sub_80320F8 thumb_func_start sub_803225C sub_803225C: push {r4,r5,lr} bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r5, _08032300 movs r4, 0xAD lsls r4, 3 adds r0, r4, 0 movs r1, 0x8 bl MemoryAlloc str r0, [r5] movs r1, 0 adds r2, r4, 0 bl MemoryFill8 ldr r1, [r5] movs r0, 0xA6 lsls r0, 3 adds r2, r1, r0 movs r0, 0 str r0, [r2] movs r2, 0x86 lsls r2, 2 adds r1, r2 movs r0, 0xFF strb r0, [r1] ldr r0, [r5] movs r1, 0xA7 lsls r1, 3 adds r0, r1 ldr r1, _08032304 strh r1, [r0] ldr r0, _08032308 movs r4, 0x98 lsls r4, 1 adds r1, r4, 0 bl sub_808D8E0 adds r0, r4, 0 bl sub_808D994 adds r1, r0, 0 ldr r0, _0803230C bl strcpy movs r1, 0 movs r2, 0 adds r4, r5, 0 _080322C6: ldr r0, [r5] adds r0, 0x8 adds r0, r1 strb r2, [r0] adds r1, 0x1 cmp r1, 0x35 ble _080322C6 ldr r1, [r4] movs r0, 0x7E str r0, [r1, 0x4] bl sub_8039880 ldr r1, [r4] ldr r2, _08032310 adds r1, r2 strb r0, [r1] ldr r0, [r4] adds r2, r0, r2 ldrb r1, [r2] ldr r2, _08032314 adds r0, r2 strb r1, [r0] movs r0, 0 bl sub_80338C4 movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08032300: .4byte gUnknown_203B33C _08032304: .4byte 0x0000ffff _08032308: .4byte gUnknown_202E5D8 _0803230C: .4byte gUnknown_202DF98 _08032310: .4byte 0x0000052c _08032314: .4byte 0x0000052d thumb_func_end sub_803225C thumb_func_start sub_8032318 sub_8032318: push {lr} ldr r0, _08032330 ldr r0, [r0] ldr r0, [r0] cmp r0, 0x7D bls _08032326 b _080327DC _08032326: lsls r0, 2 ldr r1, _08032334 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08032330: .4byte gUnknown_203B33C _08032334: .4byte _08032338 .align 2, 0 _08032338: .4byte _080326A6 .4byte _080326A6 .4byte _080326AC .4byte _0803255A .4byte _0803255A .4byte _0803266C .4byte _08032672 .4byte _08032678 .4byte _0803267E .4byte _08032684 .4byte _0803268A .4byte _08032690 .4byte _08032690 .4byte _08032698 .4byte _080326A0 .4byte _080327CE .4byte _080327CE .4byte _0803262C .4byte _08032634 .4byte _0803263A .4byte _08032640 .4byte _08032646 .4byte _0803264C .4byte _08032652 .4byte _08032764 .4byte _08032658 .4byte _08032660 .4byte _08032666 .4byte _08032612 .4byte _08032626 .4byte _0803261A .4byte _08032620 .4byte _0803260C .4byte _080325CE .4byte _080327CE .4byte _080325C6 .4byte _080325BA .4byte _080325A0 .4byte _080325A8 .4byte _080325AE .4byte _080325B4 .4byte _080325C0 .4byte _0803258C .4byte _0803259A .4byte _08032594 .4byte _0803257E .4byte _08032586 .4byte _08032764 .4byte _080327CE .4byte _080325D4 .4byte _080325DC .4byte _080325E2 .4byte _080325E8 .4byte _080325EE .4byte _080327DC .4byte _080325FA .4byte _080325F4 .4byte _08032600 .4byte _08032606 .4byte _08032764 .4byte _080327CE .4byte _08032560 .4byte _08032566 .4byte _0803256C .4byte _08032572 .4byte _08032578 .4byte _08032764 .4byte _08032658 .4byte _080327CE .4byte _080327CE .4byte _08032794 .4byte _0803279C .4byte _080327A2 .4byte _080327A8 .4byte _080327AE .4byte _080327B4 .4byte _080327BA .4byte _080327C0 .4byte _080327C0 .4byte _080327C8 .4byte _08032722 .4byte _080327D6 .4byte _0803278E .4byte _08032780 .4byte _08032788 .4byte _0803277A .4byte _08032774 .4byte _0803276C .4byte _08032752 .4byte _08032764 .4byte _080326BC .4byte _080326C2 .4byte _080326D6 .4byte _080326CA .4byte _080326D0 .4byte _080326DC .4byte _080326E2 .4byte _080326E8 .4byte _08032730 .4byte _08032744 .4byte _0803273E .4byte _08032738 .4byte _080326F4 .4byte _080326FC .4byte _080326EE .4byte _0803274C .4byte _080326B0 .4byte _080326B6 .4byte _08032764 .4byte _08032722 .4byte _0803272A .4byte _08032744 .4byte _0803271C .4byte _08032716 .4byte _08032708 .4byte _08032710 .4byte _08032702 .4byte _08032758 .4byte _0803275E .4byte _08032764 .4byte _08032530 .4byte _08032536 .4byte _0803253E .4byte _08032544 .4byte _0803254C .4byte _08032552 _08032530: bl sub_8035300 b _080327DC _08032536: movs r0, 0x78 bl sub_8035404 b _080327DC _0803253E: bl sub_8035374 b _080327DC _08032544: movs r0, 0x7A bl sub_8035404 b _080327DC _0803254C: bl sub_80353BC b _080327DC _08032552: movs r0, 0x7C bl sub_8035404 b _080327DC _0803255A: bl sub_8033A2C b _080327DC _08032560: bl sub_803477C b _080327DC _08032566: bl sub_80347AC b _080327DC _0803256C: bl sub_80347C8 b _080327DC _08032572: bl sub_80347E4 b _080327DC _08032578: bl sub_8034804 b _080327DC _0803257E: movs r0, 0x2E bl sub_8035404 b _080327DC _08032586: bl sub_80344C0 b _080327DC _0803258C: movs r0, 0xD bl sub_8035404 b _080327DC _08032594: bl sub_8034478 b _080327DC _0803259A: bl sub_80344A0 b _080327DC _080325A0: movs r0, 0x26 bl sub_8035404 b _080327DC _080325A8: bl sub_803418C b _080327DC _080325AE: bl sub_8034254 b _080327DC _080325B4: bl sub_8034310 b _080327DC _080325BA: bl sub_8034378 b _080327DC _080325C0: bl sub_80343C4 b _080327DC _080325C6: movs r0, 0x21 bl sub_8035404 b _080327DC _080325CE: bl sub_8034404 b _080327DC _080325D4: movs r0, 0x32 bl sub_8035404 b _080327DC _080325DC: bl sub_8034500 b _080327DC _080325E2: bl sub_8034590 b _080327DC _080325E8: bl sub_803464C b _080327DC _080325EE: bl sub_80346A8 b _080327DC _080325F4: bl sub_80346D8 b _080327DC _080325FA: bl sub_8034700 b _080327DC _08032600: bl sub_8034720 b _080327DC _08032606: bl sub_803473C b _080327DC _0803260C: bl sub_8033FB4 b _080327DC _08032612: movs r0, 0x1D bl sub_8035404 b _080327DC _0803261A: bl sub_8034074 b _080327DC _08032620: bl sub_8034130 b _080327DC _08032626: bl sub_8033FE4 b _080327DC _0803262C: movs r0, 0x12 bl sub_8035404 b _080327DC _08032634: bl nullsub_42 b _080327DC _0803263A: bl nullsub_43 b _080327DC _08032640: bl nullsub_44 b _080327DC _08032646: bl nullsub_45 b _080327DC _0803264C: bl sub_8033D74 b _080327DC _08032652: bl sub_8033D94 b _080327DC _08032658: movs r0, 0x1A bl sub_8035404 b _080327DC _08032660: bl sub_8033DBC b _080327DC _08032666: bl sub_8033F64 b _080327DC _0803266C: bl sub_8033C54 b _080327DC _08032672: bl nullsub_41 b _080327DC _08032678: bl sub_8033CAC b _080327DC _0803267E: bl sub_8033D48 b _080327DC _08032684: bl sub_8035424 b _080327DC _0803268A: bl nullsub_50 b _080327DC _08032690: movs r0, 0x6 bl sub_8035404 b _080327DC _08032698: movs r0, 0x7 bl sub_8035404 b _080327DC _080326A0: bl sub_8033B8C b _080327DC _080326A6: bl sub_80339C8 b _080327DC _080326AC: movs r0, 0x3 b _080327DE _080326B0: bl sub_80348C4 b _080327DC _080326B6: bl sub_803482C b _080327DC _080326BC: bl sub_80349B0 b _080327DC _080326C2: movs r0, 0x5C bl sub_8035404 b _080327DC _080326CA: bl sub_8034A70 b _080327DC _080326D0: bl sub_8034B2C b _080327DC _080326D6: bl sub_80349E0 b _080327DC _080326DC: bl sub_8034B88 b _080327DC _080326E2: bl sub_8034C98 b _080327DC _080326E8: bl sub_8034C38 b _080327DC _080326EE: bl sub_8034D54 b _080327DC _080326F4: movs r0, 0x67 bl sub_8035404 b _080327DC _080326FC: bl sub_8034970 b _080327DC _08032702: bl sub_80351E0 b _080327DC _08032708: movs r0, 0x73 bl sub_8035404 b _080327DC _08032710: bl sub_8034D74 b _080327DC _08032716: bl sub_8034EF0 b _080327DC _0803271C: bl sub_8034F38 b _080327DC _08032722: movs r0, 0x6E bl sub_8035404 b _080327DC _0803272A: bl sub_80352A4 b _080327DC _08032730: movs r0, 0x6A bl sub_8035404 b _080327DC _08032738: bl sub_8034EC8 b _080327DC _0803273E: bl sub_8034F18 b _080327DC _08032744: movs r0, 0x62 bl sub_8035404 b _080327DC _0803274C: bl sub_8034F58 b _080327DC _08032752: bl sub_8034F88 b _080327DC _08032758: bl sub_8035018 b _080327DC _0803275E: bl sub_8035038 b _080327DC _08032764: movs r0, 0x2 bl sub_8035404 b _080327DC _0803276C: movs r0, 0x5F bl sub_8035404 b _080327DC _08032774: bl sub_8035094 b _080327DC _0803277A: bl sub_80350F4 b _080327DC _08032780: movs r0, 0x54 bl sub_8035404 b _080327DC _08032788: bl sub_803517C b _080327DC _0803278E: bl sub_8035210 b _080327DC _08032794: movs r0, 0x47 bl sub_8035404 b _080327DC _0803279C: bl nullsub_46 b _080327DC _080327A2: bl nullsub_47 b _080327DC _080327A8: bl nullsub_48 b _080327DC _080327AE: bl nullsub_49 b _080327DC _080327B4: bl sub_8035430 b _080327DC _080327BA: bl nullsub_51 b _080327DC _080327C0: movs r0, 0x4F bl sub_8035404 b _080327DC _080327C8: bl sub_8034848 b _080327DC _080327CE: movs r0, 0x1 bl sub_8035404 b _080327DC _080327D6: movs r0, 0x1 bl sub_8035404 _080327DC: movs r0, 0 _080327DE: pop {r1} bx r1 thumb_func_end sub_8032318 thumb_func_start sub_80327E4 sub_80327E4: push {r4,lr} ldr r4, _08032820 ldr r0, [r4] cmp r0, 0 beq _0803281A bl MemoryFree movs r0, 0 str r0, [r4] bl sub_803084C bl sub_8031E10 bl sub_8023C60 bl sub_80155F0 bl sub_801CBB8 bl sub_802F2C0 bl sub_8030DE4 bl sub_802453C bl sub_801B450 _0803281A: pop {r4} pop {r0} bx r0 .align 2, 0 _08032820: .4byte gUnknown_203B33C thumb_func_end sub_80327E4 thumb_func_start nullsub_40 nullsub_40: bx lr thumb_func_end nullsub_40 thumb_func_start sub_8032828 sub_8032828: push {r4-r6,lr} sub sp, 0x68 ldr r1, _08032848 ldr r0, [r1] ldr r0, [r0] adds r6, r1, 0 cmp r0, 0x7D bls _0803283C bl _080338B4 _0803283C: lsls r0, 2 ldr r1, _0803284C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08032848: .4byte gUnknown_203B33C _0803284C: .4byte _08032850 .align 2, 0 _08032850: .4byte _08032A48 .4byte _08032AD0 .4byte _080338B4 .4byte _08032B80 .4byte _08032BC4 .4byte _08032FD0 .4byte _080338B4 .4byte _08032FF0 .4byte _080338B4 .4byte _080338B4 .4byte _08032FD8 .4byte _08032FE0 .4byte _08032FE8 .4byte _0803356C .4byte _08032C50 .4byte _08033200 .4byte _080331CC .4byte _080331D4 .4byte _080331DC .4byte _080336B2 .4byte _080338B4 .4byte _080331F8 .4byte _08033208 .4byte _080338B4 .4byte _08033234 .4byte _0803323C .4byte _08033244 .4byte _080338B4 .4byte _08032F8C .4byte _08032F98 .4byte _080336B2 .4byte _080338B4 .4byte _08032FB6 .4byte _08032EB8 .4byte _08032FC4 .4byte _08032EAC .4byte _08032F54 .4byte _08032EE0 .4byte _08032EEC .4byte _08032F16 .4byte _080338B4 .4byte _08032F7C .4byte _08032E60 .4byte _08032E6C .4byte _08032EA0 .4byte _08032E48 .4byte _0803341C .4byte _08032E54 .4byte _08032D84 .4byte _08032D90 .4byte _08032D9C .4byte _080336B2 .4byte _080338B4 .4byte _08032DBC .4byte _080338B4 .4byte _08032DCC .4byte _08032E00 .4byte _08032E3C .4byte _08032E0C .4byte _08032E30 .4byte _08032D04 .4byte _08032D10 .4byte _08032D2C .4byte _08032D38 .4byte _08032D44 .4byte _080338B4 .4byte _08032D78 .4byte _08032D20 .4byte _08033720 .4byte _08033728 .4byte _08033684 .4byte _0803368C .4byte _080336B2 .4byte _080338B4 .4byte _080336F8 .4byte _080338B4 .4byte _08032FD8 .4byte _08032FE0 .4byte _08032FE8 .4byte _080338B4 .4byte _08033468 .4byte _08033730 .4byte _08033738 .4byte _0803366C .4byte _08033674 .4byte _08033644 .4byte _0803361C .4byte _08033614 .4byte _080335F4 .4byte _080335C0 .4byte _0803324E .4byte _0803325C .4byte _0803368C .4byte _08033264 .4byte _080338B4 .4byte _08033288 .4byte _080332B8 .4byte _080338B4 .4byte _0803356C .4byte _080335B0 .4byte _08033584 .4byte _080338B4 .4byte _08033412 .4byte _0803341C .4byte _08033448 .4byte _080335B8 .4byte _080332F4 .4byte _080338B4 .4byte _08033460 .4byte _08033470 .4byte _0803349C .4byte _08033450 .4byte _08033458 .4byte _080338B4 .4byte _080333E4 .4byte _080333EC .4byte _080338B4 .4byte _08033604 .4byte _0803360C .4byte _080338B4 .4byte _0803384C .4byte _0803387C .4byte _080337D4 .4byte _080337F0 .4byte _08033770 .4byte _0803378C _08032A48: movs r0, 0x1 bl sub_8095324 cmp r0, 0 bne _08032A9C movs r0, 0x5 bl sub_8095324 adds r4, r0, 0 cmp r4, 0 bne _08032A9C ldr r0, _08032A7C ldr r0, [r0] ldr r1, _08032A80 adds r0, r1 ldrb r2, [r0] cmp r2, 0 beq _08032A8C ldr r0, _08032A84 ldr r3, _08032A88 str r4, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r4, [sp, 0x8] str r4, [sp, 0xC] b _08032B66 .align 2, 0 _08032A7C: .4byte gUnknown_203B33C _08032A80: .4byte 0x0000052c _08032A84: .4byte gUnknown_80E25F4 _08032A88: .4byte gUnknown_80E2108 _08032A8C: ldr r0, _08032A94 ldr r3, _08032A98 b _08032B5C .align 2, 0 _08032A94: .4byte gUnknown_80E25F4 _08032A98: .4byte gUnknown_80E20B8 _08032A9C: ldr r0, _08032AC0 ldr r0, [r0] ldr r2, _08032AC4 adds r0, r2 ldrb r2, [r0] cmp r2, 0 beq _08032B58 ldr r0, _08032AC8 ldr r3, _08032ACC movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] bl _08033864 .align 2, 0 _08032AC0: .4byte gUnknown_203B33C _08032AC4: .4byte 0x0000052c _08032AC8: .4byte gUnknown_80E25F4 _08032ACC: .4byte gUnknown_80E20E0 _08032AD0: movs r0, 0x1 bl sub_8095324 cmp r0, 0 bne _08032B24 movs r0, 0x5 bl sub_8095324 adds r4, r0, 0 cmp r4, 0 bne _08032B24 ldr r0, _08032B04 ldr r0, [r0] ldr r3, _08032B08 adds r0, r3 ldrb r2, [r0] cmp r2, 0 beq _08032B14 ldr r0, _08032B0C ldr r3, _08032B10 str r4, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r4, [sp, 0x8] str r4, [sp, 0xC] b _08032B66 .align 2, 0 _08032B04: .4byte gUnknown_203B33C _08032B08: .4byte 0x0000052c _08032B0C: .4byte gUnknown_80E25F4 _08032B10: .4byte gUnknown_80E2108 _08032B14: ldr r0, _08032B1C ldr r3, _08032B20 b _08032B5C .align 2, 0 _08032B1C: .4byte gUnknown_80E25F4 _08032B20: .4byte gUnknown_80E20B8 _08032B24: ldr r0, _08032B48 ldr r0, [r0] ldr r4, _08032B4C adds r0, r4 ldrb r2, [r0] cmp r2, 0 beq _08032B58 ldr r0, _08032B50 ldr r3, _08032B54 movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] bl _08033864 .align 2, 0 _08032B48: .4byte gUnknown_203B33C _08032B4C: .4byte 0x0000052c _08032B50: .4byte gUnknown_80E25F4 _08032B54: .4byte gUnknown_80E20E0 _08032B58: ldr r0, _08032B78 ldr r3, _08032B7C _08032B5C: str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] _08032B66: adds r1, 0xFD str r1, [sp, 0x10] movs r1, 0 movs r2, 0 bl sub_8014248 bl _080338B4 .align 2, 0 _08032B78: .4byte gUnknown_80E25F4 _08032B7C: .4byte gUnknown_80E2068 _08032B80: movs r0, 0x4 bl sub_8095324 adds r2, r0, 0 cmp r2, 0 beq _08032B9C ldr r0, _08032B94 ldr r3, _08032B98 movs r2, 0 b _08032BA0 .align 2, 0 _08032B94: .4byte gUnknown_80E25F4 _08032B98: .4byte gUnknown_80E2130 _08032B9C: ldr r0, _08032BBC ldr r3, _08032BC0 _08032BA0: str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] adds r1, 0xFD str r1, [sp, 0x10] movs r1, 0 movs r2, 0x3 bl sub_8014248 bl _080338B4 .align 2, 0 _08032BBC: .4byte gUnknown_80E25F4 _08032BC0: .4byte gUnknown_80E2190 _08032BC4: movs r0, 0x1 bl sub_8095324 adds r4, r0, 0 cmp r4, 0 bne _08032C0C movs r0, 0x5 bl sub_8095324 cmp r0, 0 bne _08032BF4 ldr r0, _08032BEC ldr r3, _08032BF0 str r4, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r4, [sp, 0x8] str r4, [sp, 0xC] b _08032C38 .align 2, 0 _08032BEC: .4byte gUnknown_80E25F4 _08032BF0: .4byte gUnknown_80E2268 _08032BF4: ldr r0, _08032C04 ldr r3, _08032C08 str r4, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r4, [sp, 0x8] str r4, [sp, 0xC] b _08032C38 .align 2, 0 _08032C04: .4byte gUnknown_80E25F4 _08032C08: .4byte gUnknown_80E2218 _08032C0C: movs r0, 0x5 bl sub_8095324 adds r2, r0, 0 cmp r2, 0 bne _08032C28 ldr r0, _08032C20 ldr r3, _08032C24 b _08032C2E .align 2, 0 _08032C20: .4byte gUnknown_80E25F4 _08032C24: .4byte gUnknown_80E2240 _08032C28: ldr r0, _08032C48 ldr r3, _08032C4C movs r2, 0 _08032C2E: str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] _08032C38: adds r1, 0xFD str r1, [sp, 0x10] movs r1, 0 movs r2, 0x11 bl sub_8014248 bl _080338B4 .align 2, 0 _08032C48: .4byte gUnknown_80E25F4 _08032C4C: .4byte gUnknown_80E21B8 _08032C50: ldr r0, [r6] movs r5, 0xA5 lsls r5, 3 adds r0, r5 ldr r0, [r0] subs r0, 0x3 cmp r0, 0x11 bls _08032C64 bl _080338B4 _08032C64: lsls r0, 2 ldr r1, _08032C70 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08032C70: .4byte _08032C74 .align 2, 0 _08032C74: .4byte _08032CC8 .4byte _08032CD4 .4byte _080338B4 .4byte _080338B4 .4byte _080338B4 .4byte _080338B4 .4byte _080338B4 .4byte _080338B4 .4byte _080338B4 .4byte _080338B4 .4byte _080338B4 .4byte _080338B4 .4byte _080338B4 .4byte _080338B4 .4byte _08032CBC .4byte _08032CE0 .4byte _08032CEC .4byte _08032CF8 _08032CBC: ldr r0, _08032CC4 bl _0803374A .align 2, 0 _08032CC4: .4byte gUnknown_80E2610 _08032CC8: ldr r0, _08032CD0 bl _0803374A .align 2, 0 _08032CD0: .4byte gUnknown_80E2640 _08032CD4: ldr r0, _08032CDC bl _0803374A .align 2, 0 _08032CDC: .4byte gUnknown_80E2680 _08032CE0: ldr r0, _08032CE8 bl _0803374A .align 2, 0 _08032CE8: .4byte gUnknown_80E26B0 _08032CEC: ldr r0, _08032CF4 bl _0803374A .align 2, 0 _08032CF4: .4byte gUnknown_80E26F0 _08032CF8: ldr r0, _08032D00 bl _0803374A .align 2, 0 _08032D00: .4byte gUnknown_80E2728 _08032D04: ldr r0, _08032D0C bl _0803388E .align 2, 0 _08032D0C: .4byte gUnknown_80E276C _08032D10: ldr r0, _08032D18 ldr r3, _08032D1C bl _080336FC .align 2, 0 _08032D18: .4byte gUnknown_80E27A4 _08032D1C: .4byte gUnknown_80E2458 _08032D20: ldr r0, _08032D28 bl _0803388E .align 2, 0 _08032D28: .4byte gUnknown_80E2814 _08032D2C: ldr r0, _08032D34 bl _0803388E .align 2, 0 _08032D34: .4byte gUnknown_80E2840 _08032D38: ldr r0, _08032D40 bl _0803388E .align 2, 0 _08032D40: .4byte gUnknown_80E2874 _08032D44: ldr r0, [r6] ldr r1, _08032D60 adds r0, r1 ldr r0, [r0] cmp r0, 0xC bne _08032D54 bl _080338B4 _08032D54: cmp r0, 0xC bhi _08032D64 cmp r0, 0xB beq _08032D6C bl _080338B4 .align 2, 0 _08032D60: .4byte 0x00000524 _08032D64: cmp r0, 0xE bls _08032D6C bl _080338B4 _08032D6C: ldr r0, _08032D74 bl _0803388E .align 2, 0 _08032D74: .4byte gUnknown_80E2898 _08032D78: ldr r0, _08032D80 bl _0803388E .align 2, 0 _08032D80: .4byte gUnknown_80E28D8 _08032D84: ldr r0, _08032D8C bl _0803388E .align 2, 0 _08032D8C: .4byte gUnknown_80E2904 _08032D90: ldr r0, _08032D98 bl _0803388E .align 2, 0 _08032D98: .4byte gUnknown_80E296C _08032D9C: bl sub_8030894 cmp r0, 0 beq _08032DA8 bl _080338B4 _08032DA8: bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x1 bl _080336A6 _08032DBC: ldr r0, _08032DC4 ldr r3, _08032DC8 bl _080336FC .align 2, 0 _08032DC4: .4byte gUnknown_80E29A0 _08032DC8: .4byte gUnknown_80E22B4 _08032DCC: ldr r0, [r6] ldr r2, _08032DE8 adds r0, r2 ldr r0, [r0] cmp r0, 0xC bne _08032DDC bl _080338B4 _08032DDC: cmp r0, 0xC bhi _08032DEC cmp r0, 0xB beq _08032DF4 bl _080338B4 .align 2, 0 _08032DE8: .4byte 0x00000524 _08032DEC: cmp r0, 0xE bls _08032DF4 bl _080338B4 _08032DF4: ldr r0, _08032DFC bl _0803388E .align 2, 0 _08032DFC: .4byte gUnknown_80E29D0 _08032E00: ldr r0, _08032E08 bl _0803388E .align 2, 0 _08032E08: .4byte gUnknown_80E2A0C _08032E0C: ldr r0, [r6] movs r3, 0xEF lsls r3, 2 adds r0, r3 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r6] movs r4, 0x86 lsls r4, 2 adds r0, r4 b _0803343E _08032E30: ldr r0, _08032E38 bl _0803388E .align 2, 0 _08032E38: .4byte gUnknown_80E2A1C _08032E3C: ldr r0, _08032E44 bl _0803388E .align 2, 0 _08032E44: .4byte gUnknown_80E2A5C _08032E48: ldr r0, _08032E50 bl _0803388E .align 2, 0 _08032E50: .4byte gUnknown_80E2A80 _08032E54: ldr r0, _08032E5C bl _0803388E .align 2, 0 _08032E5C: .4byte gUnknown_80E2AA8 _08032E60: ldr r0, _08032E68 bl _0803388E .align 2, 0 _08032E68: .4byte gUnknown_80E2AE4 _08032E6C: ldr r0, [r6] ldr r2, _08032E88 adds r0, r2 ldr r0, [r0] cmp r0, 0xC bne _08032E7C bl _080338B4 _08032E7C: cmp r0, 0xC bhi _08032E8C cmp r0, 0xB beq _08032E94 bl _080338B4 .align 2, 0 _08032E88: .4byte 0x00000524 _08032E8C: cmp r0, 0xE bls _08032E94 bl _080338B4 _08032E94: ldr r0, _08032E9C bl _0803388E .align 2, 0 _08032E9C: .4byte gUnknown_80E2B54 _08032EA0: ldr r0, _08032EA8 bl _0803388E .align 2, 0 _08032EA8: .4byte gUnknown_80E2A0C _08032EAC: ldr r0, _08032EB4 bl _0803388E .align 2, 0 _08032EB4: .4byte gUnknown_80E2B90 _08032EB8: ldr r0, _08032ED8 ldr r3, _08032EDC movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] adds r1, 0xFD str r1, [sp, 0x10] movs r1, 0 movs r2, 0xF bl sub_8014248 bl _080338B4 .align 2, 0 _08032ED8: .4byte gUnknown_80E2BE0 _08032EDC: .4byte gUnknown_80E23A8 _08032EE0: ldr r0, _08032EE8 bl _0803388E .align 2, 0 _08032EE8: .4byte gUnknown_80E2C48 _08032EEC: bl sub_8023CE8 cmp r0, 0 beq _08032EF8 bl sub_8023C60 _08032EF8: bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x3 movs r1, 0 movs r2, 0 movs r3, 0x9 bl sub_8023868 bl _080338B4 _08032F16: ldr r0, [r6] movs r4, 0xD7 lsls r4, 2 adds r0, r4 bl sub_8006518 ldr r1, [r6] movs r5, 0x87 lsls r5, 2 adds r0, r1, r5 adds r1, r4 ldr r3, _08032F4C ldr r2, _08032F50 str r2, [sp] movs r2, 0x1 str r2, [sp, 0x4] movs r2, 0 str r2, [sp, 0x8] str r2, [sp, 0xC] movs r2, 0x3 bl SetMenuItems bl sub_8023DA4 bl _080336E2 .align 2, 0 _08032F4C: .4byte gUnknown_80E2334 _08032F50: .4byte gUnknown_80E234C _08032F54: ldr r0, _08032F74 ldr r3, _08032F78 movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] adds r1, 0xFD str r1, [sp, 0x10] movs r1, 0 movs r2, 0x10 bl sub_8014248 bl _080338B4 .align 2, 0 _08032F74: .4byte gUnknown_80E2C94 _08032F78: .4byte gUnknown_80E22F0 _08032F7C: ldr r0, _08032F84 ldr r3, _08032F88 bl _080336FC .align 2, 0 _08032F84: .4byte gUnknown_80E2CD4 _08032F88: .4byte gUnknown_80E22D0 _08032F8C: ldr r0, _08032F94 bl _0803388E .align 2, 0 _08032F94: .4byte gUnknown_80E2CE8 _08032F98: bl sub_8030894 cmp r0, 0 beq _08032FA4 bl _080338B4 _08032FA4: bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x4 b _080336A6 _08032FB6: ldr r0, _08032FBC ldr r3, _08032FC0 b _080336FC .align 2, 0 _08032FBC: .4byte gUnknown_80E2D30 _08032FC0: .4byte gUnknown_80E22B4 _08032FC4: ldr r0, _08032FCC bl _0803388E .align 2, 0 _08032FCC: .4byte gUnknown_80E2D60 _08032FD0: ldr r0, _08032FD4 b _080336FA .align 2, 0 _08032FD4: .4byte gUnknown_80E2D7C _08032FD8: ldr r0, _08032FDC b _080336FA .align 2, 0 _08032FDC: .4byte gUnknown_80E2E20 _08032FE0: ldr r0, _08032FE4 b _08033574 .align 2, 0 _08032FE4: .4byte gUnknown_80E2E54 _08032FE8: ldr r0, _08032FEC b _08033574 .align 2, 0 _08032FEC: .4byte gUnknown_80E2EB4 _08032FF0: ldr r1, [r6] movs r0, 0 str r0, [r1, 0x44] bl sub_8011830 ldr r0, [r6] ldr r0, [r0, 0x40] bl sub_8037B28 adds r4, r0, 0 ldr r0, [r6] str r4, [r0, 0x44] cmp r4, 0 beq _0803300E b _080333DE _0803300E: ldr r1, [r0, 0x40] cmp r1, 0x3 beq _08033028 cmp r1, 0x3 bhi _0803301E cmp r1, 0x2 beq _0803304A b _0803313C _0803301E: cmp r1, 0x4 beq _080330B4 cmp r1, 0x5 beq _0803308E b _0803313C _08033028: adds r0, 0x48 movs r1, 0 movs r2, 0x30 bl MemoryFill8 ldr r0, [r6] adds r0, 0x78 movs r1, 0 movs r2, 0x30 bl MemoryFill8 ldr r2, [r6] ldr r0, [r2, 0x40] adds r1, r2, 0 adds r1, 0x48 adds r2, 0x78 b _08033134 _0803304A: adds r0, 0x48 movs r1, 0 movs r2, 0x30 bl MemoryFill8 ldr r0, [r6] adds r0, 0x78 movs r1, 0 movs r2, 0x30 bl MemoryFill8 ldr r0, [r6] movs r3, 0x86 lsls r3, 2 adds r0, r3 ldrb r0, [r0] bl sub_8095228 ldr r1, [r6] adds r1, 0x48 ldm r0!, {r2,r4,r5} stm r1!, {r2,r4,r5} ldm r0!, {r3-r5} stm r1!, {r3-r5} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldr r2, [r6] ldr r0, [r2, 0x40] adds r1, r2, 0 adds r1, 0x48 adds r2, 0x78 b _08033134 _0803308E: adds r0, 0xA8 movs r1, 0 movs r2, 0x88 bl MemoryFill8 ldr r0, [r6] movs r4, 0x98 lsls r4, 1 adds r0, r4 movs r1, 0 movs r2, 0x88 bl MemoryFill8 ldr r2, [r6] ldr r0, [r2, 0x40] adds r1, r2, 0 adds r1, 0xA8 adds r2, r4 b _08033134 _080330B4: adds r0, 0xA8 movs r1, 0 movs r2, 0x88 bl MemoryFill8 ldr r0, [r6] movs r5, 0x98 lsls r5, 1 adds r0, r5 movs r1, 0 movs r2, 0x88 bl MemoryFill8 ldr r1, [r6] adds r0, r1, 0 adds r0, 0xE0 strh r4, [r0] movs r2, 0xB4 lsls r2, 1 adds r0, r1, r2 strh r4, [r0] movs r3, 0x86 lsls r3, 2 adds r0, r1, r3 ldrb r0, [r0] bl sub_8095228 ldr r1, [r6] adds r1, 0xA8 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldr r2, [r6] movs r4, 0xA7 lsls r4, 3 adds r3, r2, r4 movs r0, 0 ldrsh r1, [r3, r0] movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _0803312A adds r0, r2, 0 adds r0, 0xD8 ldr r1, _08033188 ldr r1, [r1] movs r2, 0 ldrsh r3, [r3, r2] movs r2, 0x58 muls r2, r3 adds r1, r2 movs r2, 0x58 bl memcpy _0803312A: ldr r2, [r6] ldr r0, [r2, 0x40] adds r1, r2, 0 adds r1, 0xA8 adds r2, r5 _08033134: bl sub_8037D64 ldr r1, [r6] str r0, [r1, 0x44] _0803313C: ldr r4, _0803318C ldr r2, [r4] ldr r0, [r2, 0x44] cmp r0, 0 beq _08033148 b _080333DE _08033148: ldr r0, [r2, 0x40] cmp r0, 0x2 bcs _08033150 b _080333DE _08033150: cmp r0, 0x3 bls _08033190 cmp r0, 0x5 bls _0803315A b _080333DE _0803315A: adds r1, r2, 0 adds r1, 0xA8 movs r3, 0x98 lsls r3, 1 adds r2, r3 bl sub_80381F4 ldr r1, [r4] str r0, [r1, 0x44] bl sub_800D588 lsls r0, 24 cmp r0, 0 beq _080331C0 ldr r0, [r4] movs r4, 0x84 lsls r4, 3 adds r1, r0, r4 movs r5, 0xA0 lsls r5, 1 adds r0, r5 b _080333DA .align 2, 0 _08033188: .4byte gUnknown_203B45C _0803318C: .4byte gUnknown_203B33C _08033190: adds r1, r2, 0 adds r1, 0x48 adds r2, 0x78 bl sub_80381F4 ldr r1, [r4] str r0, [r1, 0x44] bl sub_800D588 lsls r0, 24 cmp r0, 0 beq _080331B4 ldr r0, [r4] movs r2, 0x84 lsls r2, 3 adds r1, r0, r2 adds r0, 0x88 b _080333DA _080331B4: ldr r0, [r4] movs r3, 0x84 lsls r3, 3 adds r1, r0, r3 ldr r0, [r0, 0x58] b _080333DC _080331C0: ldr r0, [r4] movs r4, 0x84 lsls r4, 3 adds r1, r0, r4 adds r0, 0xB8 b _080333DA _080331CC: ldr r0, _080331D0 b _0803388E .align 2, 0 _080331D0: .4byte gUnknown_80E2F14 _080331D4: ldr r0, _080331D8 b _0803388E .align 2, 0 _080331D8: .4byte gUnknown_80E2F44 _080331DC: bl sub_8030894 cmp r0, 0 beq _080331E6 b _080338B4 _080331E6: bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x1 b _080336A6 _080331F8: ldr r0, _080331FC b _080336FA .align 2, 0 _080331FC: .4byte gUnknown_80E2F78 _08033200: ldr r0, _08033204 b _0803388E .align 2, 0 _08033204: .4byte gUnknown_80E2FA0 _08033208: ldr r0, [r6] ldr r5, _08033220 adds r0, r5 ldr r0, [r0] cmp r0, 0xC bne _08033216 b _080338B4 _08033216: cmp r0, 0xC bhi _08033224 cmp r0, 0xB beq _0803322A b _080338B4 .align 2, 0 _08033220: .4byte 0x00000524 _08033224: cmp r0, 0xE bls _0803322A b _080338B4 _0803322A: ldr r0, _08033230 b _0803388E .align 2, 0 _08033230: .4byte gUnknown_80E2FEC _08033234: ldr r0, _08033238 b _0803388E .align 2, 0 _08033238: .4byte gUnknown_80E3030 _0803323C: ldr r0, _08033240 b _0803388E .align 2, 0 _08033240: .4byte gUnknown_80E3078 _08033244: ldr r0, [r6] movs r1, 0xEF lsls r1, 2 adds r0, r1 b _080333F4 _0803324E: ldr r0, _08033254 ldr r3, _08033258 b _080336FC .align 2, 0 _08033254: .4byte gUnknown_80E30A4 _08033258: .4byte gUnknown_80E2458 _0803325C: ldr r0, _08033260 b _0803388E .align 2, 0 _08033260: .4byte gUnknown_80E30D0 _08033264: ldr r0, [r6] movs r4, 0xD7 lsls r4, 2 adds r0, r4 bl sub_8006518 ldr r1, [r6] movs r5, 0x87 lsls r5, 2 adds r0, r1, r5 adds r1, r4 ldr r3, _08033280 ldr r2, _08033284 b _080336CC .align 2, 0 _08033280: .4byte gUnknown_80E231C _08033284: .4byte gUnknown_80E2408 _08033288: bl sub_801D008 cmp r0, 0 beq _08033292 b _080338B4 _08033292: bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, _080332B4 str r0, [sp, 0x64] add r2, sp, 0x64 movs r0, 0 movs r1, 0x1 movs r3, 0x9 bl sub_801C8C4 b _080338B4 .align 2, 0 _080332B4: .4byte 0x00020003 _080332B8: ldr r0, [r6] movs r4, 0xD7 lsls r4, 2 adds r0, r4 bl sub_8006518 ldr r1, [r6] movs r5, 0x87 lsls r5, 2 adds r0, r1, r5 adds r1, r4 ldr r3, _080332EC ldr r2, _080332F0 str r2, [sp] movs r2, 0x1 str r2, [sp, 0x4] movs r2, 0 str r2, [sp, 0x8] str r2, [sp, 0xC] movs r2, 0x3 bl SetMenuItems bl sub_801CCD8 b _080336E2 .align 2, 0 _080332EC: .4byte gUnknown_80E23F0 _080332F0: .4byte gUnknown_80E2408 _080332F4: ldr r1, [r6] movs r0, 0 str r0, [r1, 0x44] bl sub_8011830 ldr r0, [r6] ldr r0, [r0, 0x40] bl sub_8037B28 ldr r1, [r6] str r0, [r1, 0x44] cmp r0, 0 bne _080333DE ldr r0, [r1, 0x40] cmp r0, 0x6 beq _0803331A cmp r0, 0x7 beq _08033358 b _08033388 _0803331A: movs r4, 0xDC lsls r4, 1 adds r0, r1, r4 movs r1, 0 movs r2, 0x30 bl MemoryFill8 ldr r0, [r6] movs r2, 0x86 lsls r2, 2 adds r0, r2 ldrb r0, [r0] bl sub_8095228 ldr r1, [r6] adds r1, r4 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldr r2, [r6] ldr r0, [r2, 0x40] adds r4, r2, r4 movs r3, 0xF4 lsls r3, 1 adds r2, r3 b _0803337E _08033358: movs r4, 0xDC lsls r4, 1 adds r0, r1, r4 movs r1, 0 movs r2, 0x30 bl MemoryFill8 ldr r0, [r6] movs r5, 0xF4 lsls r5, 1 adds r0, r5 movs r1, 0 movs r2, 0x30 bl MemoryFill8 ldr r2, [r6] ldr r0, [r2, 0x40] adds r4, r2, r4 adds r2, r5 _0803337E: adds r1, r4, 0 bl sub_8037D64 ldr r1, [r6] str r0, [r1, 0x44] _08033388: ldr r4, _080333C8 ldr r2, [r4] ldr r0, [r2, 0x44] cmp r0, 0 bne _080333DE ldr r0, [r2, 0x40] cmp r0, 0x7 bhi _080333DE cmp r0, 0x6 bcc _080333DE movs r5, 0xDC lsls r5, 1 adds r1, r2, r5 movs r3, 0xF4 lsls r3, 1 adds r2, r3 bl sub_80381F4 ldr r1, [r4] str r0, [r1, 0x44] bl sub_800D588 lsls r0, 24 cmp r0, 0 beq _080333CC ldr r0, [r4] movs r4, 0x84 lsls r4, 3 adds r1, r0, r4 adds r5, 0x40 adds r0, r5 b _080333DA .align 2, 0 _080333C8: .4byte gUnknown_203B33C _080333CC: ldr r0, [r4] movs r2, 0x84 lsls r2, 3 adds r1, r0, r2 movs r3, 0xE4 lsls r3, 1 adds r0, r3 _080333DA: ldr r0, [r0] _080333DC: str r0, [r1] _080333DE: bl sub_8011854 b _080338B4 _080333E4: ldr r0, _080333E8 b _0803388E .align 2, 0 _080333E8: .4byte gUnknown_80E311C _080333EC: ldr r0, [r6] movs r4, 0xEF lsls r4, 2 adds r0, r4 _080333F4: bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r1, [r6] adds r1, 0x8 movs r0, 0x4 bl sub_80151C0 b _080338B4 _08033412: ldr r0, _08033418 b _0803388E .align 2, 0 _08033418: .4byte gUnknown_80E314C _0803341C: ldr r0, [r6] movs r5, 0xEF lsls r5, 2 adds r0, r5 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r6] movs r1, 0x86 lsls r1, 2 adds r0, r1 _0803343E: ldrb r0, [r0] movs r1, 0 bl sub_8031D70 b _080338B4 _08033448: ldr r0, _0803344C b _0803388E .align 2, 0 _0803344C: .4byte gUnknown_80E317C _08033450: ldr r0, _08033454 b _0803388E .align 2, 0 _08033454: .4byte gUnknown_80E319C _08033458: ldr r0, _0803345C b _0803388E .align 2, 0 _0803345C: .4byte gUnknown_80E317C _08033460: ldr r0, _08033464 b _0803388E .align 2, 0 _08033464: .4byte gUnknown_80E31D8 _08033468: ldr r0, _0803346C b _0803388E .align 2, 0 _0803346C: .4byte gUnknown_80E31FC _08033470: ldr r0, [r6] ldr r2, _08033488 adds r0, r2 ldr r0, [r0] cmp r0, 0xC bne _0803347E b _080338B4 _0803347E: cmp r0, 0xC bhi _0803348C cmp r0, 0xB beq _08033492 b _080338B4 .align 2, 0 _08033488: .4byte 0x00000524 _0803348C: cmp r0, 0xE bls _08033492 b _080338B4 _08033492: ldr r0, _08033498 b _0803388E .align 2, 0 _08033498: .4byte gUnknown_80E3220 _0803349C: movs r0, 0x98 lsls r0, 1 bl sub_808D994 adds r1, r0, 0 ldr r4, _080334F8 ldr r0, [r4] ldr r3, _080334FC adds r0, r3 bl strcpy ldr r1, [r4] movs r5, 0xAA lsls r5, 3 adds r0, r1, r5 movs r2, 0 strh r2, [r0] ldr r0, _08033500 adds r1, r0 movs r0, 0x2 strb r0, [r1] ldr r0, [r4] ldr r3, _08033504 adds r1, r0, r3 str r2, [r1] movs r5, 0x84 lsls r5, 3 adds r0, r5 ldr r1, [r0] movs r0, 0x6 bl sub_809539C lsls r0, 24 lsrs r0, 24 bl sub_8095228 adds r2, r0, 0 adds r0, 0x22 ldrb r1, [r0] cmp r1, 0 beq _08033508 ldr r0, [r4] movs r3, 0xAB lsls r3, 3 adds r0, r3 b _08033512 .align 2, 0 _080334F8: .4byte gUnknown_203B33C _080334FC: .4byte 0x0000053c _08033500: .4byte 0x00000552 _08033504: .4byte 0x00000554 _08033508: ldr r0, [r4] movs r4, 0xAB lsls r4, 3 adds r0, r4 movs r1, 0 _08033512: strb r1, [r0] ldr r4, _08033558 ldr r0, [r4] ldr r5, _0803355C adds r0, r5 movs r5, 0 movs r1, 0x1 strb r1, [r0] adds r0, r2, 0x4 movs r1, 0 bl sub_803C200 ldr r1, [r4] movs r3, 0xAC lsls r3, 3 adds r2, r1, r3 str r0, [r2] ldr r0, _08033560 adds r1, r0 strb r5, [r1] ldr r0, [r4] ldr r1, _08033564 adds r0, r1 strb r5, [r0] ldr r0, [r4] ldr r2, _08033568 adds r0, r2 strb r5, [r0] ldr r0, [r4] subs r3, 0x24 adds r0, r3 movs r1, 0 bl sub_802F204 b _080338B4 .align 2, 0 _08033558: .4byte gUnknown_203B33C _0803355C: .4byte 0x0000055b _08033560: .4byte 0x00000559 _08033564: .4byte 0x0000055a _08033568: .4byte 0x0000055c _0803356C: movs r0, 0 bl nullsub_23 ldr r0, _08033580 _08033574: movs r1, 0 movs r2, 0 movs r3, 0 bl sub_80141B4 b _080338B4 .align 2, 0 _08033580: .4byte gUnknown_80E2DD0 _08033584: ldr r0, [r6] ldr r4, _0803359C adds r0, r4 ldr r0, [r0] cmp r0, 0xC bne _08033592 b _080338B4 _08033592: cmp r0, 0xC bhi _080335A0 cmp r0, 0xB beq _080335A6 b _080338B4 .align 2, 0 _0803359C: .4byte 0x00000524 _080335A0: cmp r0, 0xE bls _080335A6 b _080338B4 _080335A6: ldr r0, _080335AC b _0803388E .align 2, 0 _080335AC: .4byte gUnknown_80E3248 _080335B0: ldr r0, _080335B4 b _0803388E .align 2, 0 _080335B4: .4byte gUnknown_80E3288 _080335B8: ldr r0, _080335BC b _080336FA .align 2, 0 _080335BC: .4byte gUnknown_80E2D7C _080335C0: bl sub_808D33C adds r1, r0, 0 adds r1, 0x4C add r0, sp, 0x14 movs r2, 0xA bl sub_80922B4 ldr r5, _080335E8 ldr r0, [r5] ldr r4, _080335EC adds r0, r4 ldr r1, _080335F0 add r2, sp, 0x14 bl sub_800D158 ldr r0, [r5] adds r0, r4 b _0803388E .align 2, 0 _080335E8: .4byte gUnknown_203B33C _080335EC: .4byte 0x00000424 _080335F0: .4byte gUnknown_80E32C4 _080335F4: ldr r0, _080335FC ldr r3, _08033600 b _080336FC .align 2, 0 _080335FC: .4byte gUnknown_80E331C _08033600: .4byte gUnknown_80E24D8 _08033604: ldr r0, _08033608 b _0803388E .align 2, 0 _08033608: .4byte gUnknown_80E317C _0803360C: ldr r0, _08033610 b _0803388E .align 2, 0 _08033610: .4byte gUnknown_80E2A0C _08033614: ldr r0, _08033618 b _0803388E .align 2, 0 _08033618: .4byte gUnknown_80E3378 _0803361C: ldr r0, _0803363C ldr r3, _08033640 movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] adds r1, 0xFD str r1, [sp, 0x10] movs r1, 0 movs r2, 0x16 bl sub_8014248 b _080338B4 .align 2, 0 _0803363C: .4byte gUnknown_80E339C _08033640: .4byte gUnknown_80E24B0 _08033644: ldr r0, _08033664 ldr r3, _08033668 movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] adds r1, 0xFD str r1, [sp, 0x10] movs r1, 0 movs r2, 0x15 bl sub_8014248 b _080338B4 .align 2, 0 _08033664: .4byte gUnknown_80E33D8 _08033668: .4byte gUnknown_80E2470 _0803366C: ldr r0, _08033670 b _0803388E .align 2, 0 _08033670: .4byte gUnknown_80E3430 _08033674: ldr r0, _0803367C ldr r3, _08033680 b _080336FC .align 2, 0 _0803367C: .4byte gUnknown_80E34B0 _08033680: .4byte gUnknown_80E2440 _08033684: ldr r0, _08033688 b _0803388E .align 2, 0 _08033688: .4byte gUnknown_80E34F0 _0803368C: bl sub_8030894 cmp r0, 0 beq _08033696 b _080338B4 _08033696: bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x5 _080336A6: movs r1, 0 movs r2, 0 movs r3, 0x6 bl sub_80306A8 b _080338B4 _080336B2: ldr r0, [r6] movs r4, 0xD7 lsls r4, 2 adds r0, r4 bl sub_8006518 ldr r1, [r6] movs r5, 0x87 lsls r5, 2 adds r0, r1, r5 adds r1, r4 ldr r3, _080336F0 ldr r2, _080336F4 _080336CC: str r2, [sp] movs r2, 0x1 str r2, [sp, 0x4] movs r2, 0 str r2, [sp, 0x8] str r2, [sp, 0xC] movs r2, 0x3 bl SetMenuItems bl sub_803092C _080336E2: ldr r0, [r6] adds r0, r5 movs r1, 0x3 movs r2, 0x1 bl sub_8035CF4 b _080338B4 .align 2, 0 _080336F0: .4byte gUnknown_80E231C _080336F4: .4byte gUnknown_80E234C _080336F8: ldr r0, _08033718 _080336FA: ldr r3, _0803371C _080336FC: movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] adds r1, 0xFD str r1, [sp, 0x10] movs r1, 0 movs r2, 0x6 bl sub_8014248 b _080338B4 .align 2, 0 _08033718: .4byte gUnknown_80E352C _0803371C: .4byte gUnknown_80E2290 _08033720: ldr r0, _08033724 b _0803388E .align 2, 0 _08033724: .4byte gUnknown_80E355C _08033728: ldr r0, _0803372C b _0803388E .align 2, 0 _0803372C: .4byte gUnknown_80E35AC _08033730: ldr r0, _08033734 b _0803388E .align 2, 0 _08033734: .4byte gUnknown_80E35E8 _08033738: ldr r0, [r6] ldr r0, [r0, 0x40] cmp r0, 0x6 bne _08033748 ldr r0, _08033744 b _0803374A .align 2, 0 _08033744: .4byte gUnknown_80E360C _08033748: ldr r0, _08033768 _0803374A: ldr r3, _0803376C movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] adds r1, 0xFD str r1, [sp, 0x10] movs r1, 0 movs r2, 0xB bl sub_8014248 b _080338B4 .align 2, 0 _08033768: .4byte gUnknown_80E3644 _0803376C: .4byte gUnknown_80E236C _08033770: ldr r0, _08033780 ldr r1, [r6] ldr r5, _08033784 adds r1, r5 ldr r2, [r1] ldr r3, _08033788 b _08033858 .align 2, 0 _08033780: .4byte gUnknown_80E367C _08033784: .4byte 0x00000564 _08033788: .4byte gUnknown_80E25B4 _0803378C: ldr r0, [r6] ldr r1, _080337A4 adds r0, r1 ldr r0, [r0] cmp r0, 0x24 beq _080337BC cmp r0, 0x24 bgt _080337A8 cmp r0, 0x23 beq _080337B2 b _080338B4 .align 2, 0 _080337A4: .4byte 0x00000564 _080337A8: cmp r0, 0x25 beq _080337C4 cmp r0, 0x26 beq _080337CC b _080338B4 _080337B2: ldr r0, _080337B8 b _0803388E .align 2, 0 _080337B8: .4byte gUnknown_80E3690 _080337BC: ldr r0, _080337C0 b _0803388E .align 2, 0 _080337C0: .4byte gUnknown_80E3818 _080337C4: ldr r0, _080337C8 b _0803388E .align 2, 0 _080337C8: .4byte gUnknown_80E3998 _080337CC: ldr r0, _080337D0 b _0803388E .align 2, 0 _080337D0: .4byte gUnknown_80E3B1C _080337D4: ldr r0, _080337E4 ldr r1, [r6] ldr r2, _080337E8 adds r1, r2 ldr r2, [r1] ldr r3, _080337EC b _08033858 .align 2, 0 _080337E4: .4byte gUnknown_80E367C _080337E8: .4byte 0x00000564 _080337EC: .4byte gUnknown_80E2554 _080337F0: ldr r0, [r6] ldr r3, _08033808 adds r0, r3 ldr r0, [r0] subs r0, 0x1E cmp r0, 0x4 bhi _080338B4 lsls r0, 2 ldr r1, _0803380C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08033808: .4byte 0x00000564 _0803380C: .4byte _08033810 .align 2, 0 _08033810: .4byte _08033824 .4byte _0803382C .4byte _0803383C .4byte _08033834 .4byte _08033844 _08033824: ldr r0, _08033828 b _0803388E .align 2, 0 _08033828: .4byte gUnknown_80E3BF8 _0803382C: ldr r0, _08033830 b _0803388E .align 2, 0 _08033830: .4byte gUnknown_80E3DE4 _08033834: ldr r0, _08033838 b _0803388E .align 2, 0 _08033838: .4byte gUnknown_80E3E98 _0803383C: ldr r0, _08033840 b _0803388E .align 2, 0 _08033840: .4byte gUnknown_80E4014 _08033844: ldr r0, _08033848 b _0803388E .align 2, 0 _08033848: .4byte gUnknown_80E4130 _0803384C: ldr r0, _08033870 ldr r1, [r6] ldr r4, _08033874 adds r1, r4 ldr r2, [r1] ldr r3, _08033878 _08033858: movs r4, 0 str r4, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r4, [sp, 0x8] str r4, [sp, 0xC] _08033864: adds r1, 0xFD str r1, [sp, 0x10] movs r1, 0 bl sub_8014248 b _080338B4 .align 2, 0 _08033870: .4byte gUnknown_80E367C _08033874: .4byte 0x00000564 _08033878: .4byte gUnknown_80E24F8 _0803387C: ldr r0, [r6] ldr r5, _0803389C adds r0, r5 ldr r0, [r0] cmp r0, 0x1A beq _080338A8 cmp r0, 0x1D bne _080338B4 ldr r0, _080338A0 _0803388E: ldr r3, _080338A4 movs r1, 0 movs r2, 0 bl sub_80141B4 b _080338B4 .align 2, 0 _0803389C: .4byte 0x00000564 _080338A0: .4byte gUnknown_80E41DC _080338A4: .4byte 0x00000101 _080338A8: ldr r0, _080338BC ldr r3, _080338C0 movs r1, 0 movs r2, 0 bl sub_80141B4 _080338B4: add sp, 0x68 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080338BC: .4byte gUnknown_80E4314 _080338C0: .4byte 0x00000101 thumb_func_end sub_8032828 thumb_func_start sub_80338C4 sub_80338C4: push {lr} ldr r1, _080338D8 ldr r1, [r1] str r0, [r1] bl nullsub_40 bl sub_8032828 pop {r0} bx r0 .align 2, 0 _080338D8: .4byte gUnknown_203B33C thumb_func_end sub_80338C4 thumb_func_start sub_80338DC sub_80338DC: push {lr} cmp r0, 0x10 bls _080338E4 b _080339BC _080338E4: lsls r0, 2 ldr r1, _080338F0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080338F0: .4byte _080338F4 .align 2, 0 _080338F4: .4byte _080339BC .4byte _08033998 .4byte _08033940 .4byte _08033938 .4byte _08033948 .4byte _08033998 .4byte _08033950 .4byte _08033958 .4byte _08033960 .4byte _08033968 .4byte _08033970 .4byte _08033978 .4byte _08033980 .4byte _08033990 .4byte _08033998 .4byte _080339B0 .4byte _08033988 _08033938: ldr r0, _0803393C b _0803399A .align 2, 0 _0803393C: .4byte gUnknown_80E44A4 _08033940: ldr r0, _08033944 b _0803399A .align 2, 0 _08033944: .4byte gUnknown_80E4500 _08033948: ldr r0, _0803394C b _0803399A .align 2, 0 _0803394C: .4byte gUnknown_80E4550 _08033950: ldr r0, _08033954 b _0803399A .align 2, 0 _08033954: .4byte gUnknown_80E45B4 _08033958: ldr r0, _0803395C b _0803399A .align 2, 0 _0803395C: .4byte gUnknown_80E460C _08033960: ldr r0, _08033964 b _0803399A .align 2, 0 _08033964: .4byte gUnknown_80E4650 _08033968: ldr r0, _0803396C b _0803399A .align 2, 0 _0803396C: .4byte gUnknown_80E468C _08033970: ldr r0, _08033974 b _0803399A .align 2, 0 _08033974: .4byte gUnknown_80E46C8 _08033978: ldr r0, _0803397C b _0803399A .align 2, 0 _0803397C: .4byte gUnknown_80E4704 _08033980: ldr r0, _08033984 b _0803399A .align 2, 0 _08033984: .4byte gUnknown_80E4744 _08033988: ldr r0, _0803398C b _0803399A .align 2, 0 _0803398C: .4byte gUnknown_80E4788 _08033990: ldr r0, _08033994 b _0803399A .align 2, 0 _08033994: .4byte gUnknown_80E47D8 _08033998: ldr r0, _080339A8 _0803399A: ldr r3, _080339AC movs r1, 0 movs r2, 0 bl sub_80141B4 b _080339BC .align 2, 0 _080339A8: .4byte gUnknown_80E4480 _080339AC: .4byte 0x00000101 _080339B0: ldr r0, _080339C0 ldr r3, _080339C4 movs r1, 0 movs r2, 0 bl sub_80141B4 _080339BC: pop {r0} bx r0 .align 2, 0 _080339C0: .4byte gUnknown_80E482C _080339C4: .4byte 0x00000101 thumb_func_end sub_80338DC thumb_func_start sub_80339C8 sub_80339C8: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08033A24 ldr r0, _080339F4 ldr r0, [r0] movs r1, 0xA7 lsls r1, 3 adds r0, r1 ldr r1, _080339F8 strh r1, [r0] ldr r0, [sp] cmp r0, 0x1 beq _08033A0E cmp r0, 0x1 bgt _080339FC cmp r0, 0 beq _08033A06 b _08033A24 .align 2, 0 _080339F4: .4byte gUnknown_203B33C _080339F8: .4byte 0x0000ffff _080339FC: cmp r0, 0x8 beq _08033A1E cmp r0, 0x17 beq _08033A16 b _08033A24 _08033A06: movs r0, 0x3 bl sub_80338C4 b _08033A24 _08033A0E: movs r0, 0x4 bl sub_80338C4 b _08033A24 _08033A16: movs r0, 0x78 bl sub_80338C4 b _08033A24 _08033A1E: movs r0, 0x2 bl sub_80338C4 _08033A24: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80339C8 thumb_func_start sub_8033A2C sub_8033A2C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 beq _08033A3C b _08033B86 _08033A3C: ldr r2, _08033A58 ldr r1, [r2] movs r0, 0x8 str r0, [r1, 0x40] ldr r0, [sp] subs r0, 0x3 cmp r0, 0x11 bls _08033A4E b _08033B86 _08033A4E: lsls r0, 2 ldr r1, _08033A5C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08033A58: .4byte gUnknown_203B33C _08033A5C: .4byte _08033A60 .align 2, 0 _08033A60: .4byte _08033ACA .4byte _08033AEC .4byte _08033B86 .4byte _08033B86 .4byte _08033B86 .4byte _08033B80 .4byte _08033B86 .4byte _08033B86 .4byte _08033B86 .4byte _08033B86 .4byte _08033B86 .4byte _08033B86 .4byte _08033B86 .4byte _08033B86 .4byte _08033AA8 .4byte _08033B14 .4byte _08033B3E .4byte _08033B68 _08033AA8: ldr r0, [r2] movs r1, 0x2 str r1, [r0, 0x40] movs r1, 0xA5 lsls r1, 3 adds r0, r1 movs r1, 0x11 str r1, [r0] movs r0, 0x1 bl sub_8095324 cmp r0, 0 beq _08033B0C movs r0, 0x31 bl sub_80338C4 b _08033B86 _08033ACA: ldr r0, [r2] movs r1, 0x3 str r1, [r0, 0x40] movs r2, 0xA5 lsls r2, 3 adds r0, r2 str r1, [r0] bl sub_8095190 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _08033B36 movs r0, 0xF bl sub_80338C4 b _08033B86 _08033AEC: ldr r0, [r2] movs r1, 0x4 str r1, [r0, 0x40] movs r2, 0xA5 lsls r2, 3 adds r0, r2 str r1, [r0] movs r0, 0x4 bl sub_8095324 cmp r0, 0 beq _08033B0C movs r0, 0x1C bl sub_80338C4 b _08033B86 _08033B0C: movs r0, 0x22 bl sub_80338C4 b _08033B86 _08033B14: ldr r0, [r2] movs r1, 0x5 str r1, [r0, 0x40] movs r1, 0xA5 lsls r1, 3 adds r0, r1 movs r1, 0x12 str r1, [r0] movs r0, 0x5 bl sub_8095324 cmp r0, 0 beq _08033B36 movs r0, 0x3D bl sub_80338C4 b _08033B86 _08033B36: movs r0, 0xE bl sub_80338C4 b _08033B86 _08033B3E: ldr r0, [r2] movs r1, 0x6 str r1, [r0, 0x40] movs r2, 0xA5 lsls r2, 3 adds r0, r2 movs r1, 0x13 str r1, [r0] movs r0, 0x5 bl sub_8095324 cmp r0, 0 bne _08033B60 movs r0, 0x51 bl sub_80338C4 b _08033B86 _08033B60: movs r0, 0x5B bl sub_80338C4 b _08033B86 _08033B68: ldr r0, [r2] movs r1, 0x7 str r1, [r0, 0x40] movs r1, 0xA5 lsls r1, 3 adds r0, r1 movs r1, 0x14 str r1, [r0] movs r0, 0x52 bl sub_80338C4 b _08033B86 _08033B80: movs r0, 0x1 bl sub_80338C4 _08033B86: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8033A2C thumb_func_start sub_8033B8C sub_8033B8C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08033C4C ldr r2, [sp] cmp r2, 0xC bgt _08033BAA cmp r2, 0xB bge _08033BB0 cmp r2, 0x8 beq _08033C46 b _08033C4C _08033BAA: cmp r2, 0xD beq _08033BF4 b _08033C4C _08033BB0: ldr r0, _08033BD4 ldr r0, [r0] ldr r1, _08033BD8 adds r2, r0, r1 movs r1, 0xB str r1, [r2] movs r3, 0xA5 lsls r3, 3 adds r0, r3 ldr r0, [r0] cmp r0, 0x4 beq _08033BEC cmp r0, 0x4 bhi _08033BDC cmp r0, 0x3 beq _08033BE4 b _08033C4C .align 2, 0 _08033BD4: .4byte gUnknown_203B33C _08033BD8: .4byte 0x00000524 _08033BDC: cmp r0, 0x12 bhi _08033C4C cmp r0, 0x11 bcc _08033C4C _08033BE4: movs r0, 0x5 bl sub_80338C4 b _08033C4C _08033BEC: movs r0, 0x23 bl sub_80338C4 b _08033C4C _08033BF4: ldr r0, _08033C14 ldr r0, [r0] ldr r3, _08033C18 adds r1, r0, r3 str r2, [r1] movs r1, 0xA5 lsls r1, 3 adds r0, r1 ldr r0, [r0] cmp r0, 0x4 beq _08033C3E cmp r0, 0x4 bhi _08033C1C cmp r0, 0x3 beq _08033C26 b _08033C4C .align 2, 0 _08033C14: .4byte gUnknown_203B33C _08033C18: .4byte 0x00000524 _08033C1C: cmp r0, 0x11 beq _08033C2E cmp r0, 0x12 beq _08033C36 b _08033C4C _08033C26: movs r0, 0x19 bl sub_80338C4 b _08033C4C _08033C2E: movs r0, 0x39 bl sub_80338C4 b _08033C4C _08033C36: movs r0, 0x43 bl sub_80338C4 b _08033C4C _08033C3E: movs r0, 0x2D bl sub_80338C4 b _08033C4C _08033C46: movs r0, 0x1 bl sub_80338C4 _08033C4C: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8033B8C thumb_func_start sub_8033C54 sub_8033C54: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08033CA2 ldr r0, [sp] cmp r0, 0x6 beq _08033C6E cmp r0, 0x8 beq _08033C9C b _08033CA2 _08033C6E: ldr r0, _08033C88 ldr r0, [r0] movs r1, 0xA5 lsls r1, 3 adds r0, r1 ldr r0, [r0] cmp r0, 0x4 beq _08033C94 cmp r0, 0x4 bhi _08033C8C cmp r0, 0x3 beq _08033C94 b _08033CA2 .align 2, 0 _08033C88: .4byte gUnknown_203B33C _08033C8C: cmp r0, 0x11 beq _08033C94 cmp r0, 0x12 bne _08033CA2 _08033C94: movs r0, 0xD bl sub_80338C4 b _08033CA2 _08033C9C: movs r0, 0x1 bl sub_80338C4 _08033CA2: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8033C54 thumb_func_start nullsub_41 nullsub_41: bx lr thumb_func_end nullsub_41 thumb_func_start sub_8033CAC sub_8033CAC: push {r4,lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08033D40 ldr r4, _08033CDC ldr r1, [r4] ldr r0, [r1, 0x44] cmp r0, 0 bne _08033D36 movs r2, 0xA5 lsls r2, 3 adds r0, r1, r2 ldr r0, [r0] cmp r0, 0x4 beq _08033D2E cmp r0, 0x4 bhi _08033CE0 cmp r0, 0x3 beq _08033CEA b _08033D40 .align 2, 0 _08033CDC: .4byte gUnknown_203B33C _08033CE0: cmp r0, 0x11 beq _08033CF2 cmp r0, 0x12 beq _08033CFA b _08033D40 _08033CEA: movs r0, 0x16 bl sub_80338C4 b _08033D40 _08033CF2: movs r0, 0x37 bl sub_80338C4 b _08033D40 _08033CFA: bl sub_800D588 lsls r0, 24 cmp r0, 0 beq _08033D12 ldr r0, [r4] movs r1, 0xB4 lsls r1, 1 adds r0, r1 movs r2, 0 ldrsh r0, [r0, r2] b _08033D1A _08033D12: ldr r0, [r4] adds r0, 0xE0 movs r1, 0 ldrsh r0, [r0, r1] _08033D1A: cmp r0, 0 beq _08033D26 movs r0, 0x3F bl sub_80338C4 b _08033D40 _08033D26: movs r0, 0x40 bl sub_80338C4 b _08033D40 _08033D2E: movs r0, 0x2B bl sub_80338C4 b _08033D40 _08033D36: bl sub_80338DC movs r0, 0x8 bl sub_80338C4 _08033D40: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_8033CAC thumb_func_start sub_8033D48 sub_8033D48: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08033D5C movs r0, 0x1 bl sub_80338C4 _08033D5C: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8033D48 thumb_func_start nullsub_42 nullsub_42: bx lr thumb_func_end nullsub_42 thumb_func_start nullsub_43 nullsub_43: bx lr thumb_func_end nullsub_43 thumb_func_start nullsub_44 nullsub_44: bx lr thumb_func_end nullsub_44 thumb_func_start nullsub_45 nullsub_45: bx lr thumb_func_end nullsub_45 thumb_func_start sub_8033D74 sub_8033D74: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08033D8E movs r0, 0x17 bl sub_80338C4 movs r0, 0 bl sub_8012574 _08033D8E: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8033D74 thumb_func_start sub_8033D94 sub_8033D94: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08033DB6 bl sub_8012600 lsls r0, 24 cmp r0, 0 bne _08033DB6 bl sub_8012750 movs r0, 0x18 bl sub_80338C4 _08033DB6: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8033D94 thumb_func_start sub_8033DBC sub_8033DBC: push {r4,lr} sub sp, 0x44 bl sub_80154F0 adds r4, r0, 0 add r0, sp, 0x14 movs r1, 0 movs r2, 0x30 bl MemoryFill8 cmp r4, 0x2 bne _08033DD6 b _08033F38 _08033DD6: cmp r4, 0x3 beq _08033DDC b _08033F58 _08033DDC: ldr r2, _08033DF4 ldr r1, _08033DF8 ldr r0, [r1] movs r3, 0xA5 lsls r3, 3 adds r0, r3 ldr r0, [r0] cmp r0, 0x3 beq _08033DFC cmp r0, 0x12 beq _08033E00 b _08033E02 .align 2, 0 _08033DF4: .4byte 0x0000ffdc _08033DF8: .4byte gUnknown_203B33C _08033DFC: movs r2, 0x1C b _08033E02 _08033E00: movs r2, 0x1E _08033E02: ldr r1, [r1] adds r1, 0x8 adds r0, r2, 0 add r2, sp, 0x14 bl sub_8039068 subs r0, 0x7 cmp r0, 0x11 bls _08033E16 b _08033F2E _08033E16: lsls r0, 2 ldr r1, _08033E20 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08033E20: .4byte _08033E24 .align 2, 0 _08033E24: .4byte _08033EA0 .4byte _08033F2E .4byte _08033EE0 .4byte _08033F2E .4byte _08033F2E .4byte _08033F2E .4byte _08033F2E .4byte _08033F2E .4byte _08033F2E .4byte _08033F2E .4byte _08033E6C .4byte _08033E98 .4byte _08033ED8 .4byte _08033F2E .4byte _08033F2E .4byte _08033EA8 .4byte _08033EFC .4byte _08033F2E _08033E6C: ldr r0, _08033E90 ldr r3, _08033E94 movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] adds r1, 0xFD str r1, [sp, 0x10] movs r1, 0 movs r2, 0x6 bl sub_8014248 movs r0, 0x1B bl sub_80338C4 b _08033F2E .align 2, 0 _08033E90: .4byte gUnknown_80E48A8 _08033E94: .4byte gUnknown_80E2290 _08033E98: ldr r0, _08033E9C b _08033EE2 .align 2, 0 _08033E9C: .4byte gUnknown_80E48E8 _08033EA0: ldr r0, _08033EA4 b _08033EE2 .align 2, 0 _08033EA4: .4byte gUnknown_80E460C _08033EA8: ldr r0, [sp, 0x24] bl sub_8095274 add r1, sp, 0x14 movs r0, 0x2 strb r0, [r1] adds r0, r1, 0 bl sub_80951BC ldr r0, _08033ED0 ldr r3, _08033ED4 movs r1, 0 movs r2, 0 bl sub_80141B4 movs r0, 0x16 bl sub_80338C4 b _08033F2E .align 2, 0 _08033ED0: .4byte gUnknown_80E4928 _08033ED4: .4byte 0x00000101 _08033ED8: ldr r0, _08033EDC b _08033EE2 .align 2, 0 _08033EDC: .4byte gUnknown_80E4964 _08033EE0: ldr r0, _08033EF4 _08033EE2: ldr r3, _08033EF8 movs r1, 0 movs r2, 0 bl sub_80141B4 movs r0, 0x8 bl sub_80338C4 b _08033F2E .align 2, 0 _08033EF4: .4byte gUnknown_80E499C _08033EF8: .4byte 0x00000101 _08033EFC: add r1, sp, 0x14 movs r0, 0x5 strb r0, [r1] adds r0, r1, 0 bl sub_80951FC ldr r1, [sp, 0x24] movs r0, 0x1 bl sub_809539C lsls r0, 24 lsrs r0, 24 bl sub_8095228 movs r1, 0x7 strb r1, [r0] ldr r0, _08033F34 ldr r0, [r0] movs r1, 0 movs r2, 0x5C bl MemoryFill8 movs r0, 0x40 bl sub_80338C4 _08033F2E: bl sub_80155F0 b _08033F58 .align 2, 0 _08033F34: .4byte gUnknown_203B484 _08033F38: bl sub_80155F0 bl sub_8004914 ldr r0, _08033F60 ldr r0, [r0] movs r1, 0xEF lsls r1, 2 adds r0, r1 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x1 bl sub_80338C4 _08033F58: add sp, 0x44 pop {r4} pop {r0} bx r0 .align 2, 0 _08033F60: .4byte gUnknown_203B33C thumb_func_end sub_8033DBC thumb_func_start sub_8033F64 sub_8033F64: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08033FAE ldr r0, [sp] cmp r0, 0x6 beq _08033F7E cmp r0, 0x8 beq _08033FA8 b _08033FAE _08033F7E: ldr r0, _08033F94 ldr r0, [r0] movs r1, 0xA5 lsls r1, 3 adds r0, r1 ldr r0, [r0] cmp r0, 0x3 beq _08033F98 cmp r0, 0x12 beq _08033FA0 b _08033FAE .align 2, 0 _08033F94: .4byte gUnknown_203B33C _08033F98: movs r0, 0x19 bl sub_80338C4 b _08033FAE _08033FA0: movs r0, 0x43 bl sub_80338C4 b _08033FAE _08033FA8: movs r0, 0x1 bl sub_80338C4 _08033FAE: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8033F64 thumb_func_start sub_8033FB4 sub_8033FB4: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08033FDE ldr r0, [sp] cmp r0, 0x6 bne _08033FD0 movs r0, 0xE bl sub_80338C4 b _08033FDE _08033FD0: cmp r0, 0x6 blt _08033FDE cmp r0, 0x8 bgt _08033FDE movs r0, 0x1 bl sub_80338C4 _08033FDE: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8033FB4 thumb_func_start sub_8033FE4 sub_8033FE4: push {r4,r5,lr} movs r0, 0x1 bl sub_8030768 cmp r0, 0x3 beq _0803400C cmp r0, 0x3 bhi _08033FFA cmp r0, 0x2 beq _08034000 b _0803406A _08033FFA: cmp r0, 0x4 beq _08034028 b _0803406A _08034000: bl sub_803084C movs r0, 0x1 bl sub_80338C4 b _0803406A _0803400C: bl sub_80307EC ldr r1, _08034024 ldr r1, [r1] movs r2, 0x86 lsls r2, 2 adds r1, r2 strb r0, [r1] movs r0, 0x1E bl sub_80338C4 b _0803406A .align 2, 0 _08034024: .4byte gUnknown_203B33C _08034028: ldr r4, _08034070 ldr r1, [r4] movs r0, 0x1D str r0, [r1, 0x4] bl sub_80307EC ldr r1, [r4] movs r5, 0x86 lsls r5, 2 adds r1, r5 strb r0, [r1] ldr r0, [r4] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] adds r0, r5 ldrb r0, [r0] movs r1, 0 bl sub_8030D40 movs r0, 0x1F bl sub_80338C4 _0803406A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08034070: .4byte gUnknown_203B33C thumb_func_end sub_8033FE4 thumb_func_start sub_8034074 sub_8034074: push {r4,lr} sub sp, 0x4 movs r0, 0x1 negs r0, r0 str r0, [sp] movs r0, 0 bl sub_8030768 ldr r4, _080340B8 ldr r0, [r4] movs r1, 0xC3 lsls r1, 2 adds r0, r1 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _080340A6 ldr r0, [r4] movs r1, 0xC3 lsls r1, 2 adds r0, r1 mov r1, sp bl sub_8013114 _080340A6: ldr r0, [sp] cmp r0, 0x8 beq _08034108 cmp r0, 0x8 bgt _080340BC cmp r0, 0x5 beq _08034108 b _08034124 .align 2, 0 _080340B8: .4byte gUnknown_203B33C _080340BC: cmp r0, 0x9 beq _080340C6 cmp r0, 0xA beq _080340D2 b _08034124 _080340C6: bl sub_803084C movs r0, 0x20 bl sub_80338C4 b _08034124 _080340D2: ldr r0, [r4] movs r1, 0x7E str r1, [r0, 0x4] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] movs r1, 0x86 lsls r1, 2 adds r0, r1 ldrb r0, [r0] movs r1, 0 bl sub_8030D40 movs r0, 0x1F bl sub_80338C4 b _08034124 _08034108: ldr r0, _0803412C ldr r0, [r0] movs r1, 0xD7 lsls r1, 2 adds r0, r1 movs r1, 0x2 bl sub_8035CC0 movs r0, 0x1 bl sub_8030810 movs r0, 0x1D bl sub_80338C4 _08034124: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0803412C: .4byte gUnknown_203B33C thumb_func_end sub_8034074 thumb_func_start sub_8034130 sub_8034130: push {r4,lr} bl sub_8030DA0 cmp r0, 0x3 bhi _08034184 cmp r0, 0x2 bcc _08034184 bl sub_8030DE4 bl sub_8004914 ldr r4, _0803417C ldr r0, [r4] movs r1, 0xEF lsls r1, 2 adds r0, r1 movs r1, 0x1 movs r2, 0x1 bl sub_800641C bl sub_803092C ldr r4, [r4] ldr r0, [r4, 0x4] cmp r0, 0x7E bne _08034180 movs r1, 0x87 lsls r1, 2 adds r0, r4, r1 movs r1, 0x3 movs r2, 0x1 bl sub_8035CF4 movs r0, 0x1E bl sub_80338C4 b _08034184 .align 2, 0 _0803417C: .4byte gUnknown_203B33C _08034180: bl sub_80338C4 _08034184: pop {r4} pop {r0} bx r0 thumb_func_end sub_8034130 thumb_func_start sub_803418C sub_803418C: push {r4,r5,lr} movs r0, 0x1 bl sub_8023A94 cmp r0, 0x3 beq _080341D0 cmp r0, 0x3 bhi _080341A2 cmp r0, 0x2 beq _080341A8 b _08034248 _080341A2: cmp r0, 0x4 beq _08034204 b _08034248 _080341A8: bl sub_8023C60 movs r0, 0x1 bl sub_80338C4 bl sub_8035D1C ldr r0, _080341C8 ldr r0, [r0] movs r1, 0xA7 lsls r1, 3 adds r0, r1 ldr r1, _080341CC strh r1, [r0] b _08034248 .align 2, 0 _080341C8: .4byte gUnknown_203B33C _080341CC: .4byte 0x0000ffff _080341D0: bl sub_8023B44 ldr r1, _080341F4 ldr r1, [r1] movs r3, 0xA7 lsls r3, 3 adds r2, r1, r3 strh r0, [r2] ldr r0, _080341F8 adds r1, r0 ldr r0, [r1] cmp r0, 0xE bne _080341FC movs r0, 0x9 bl sub_80338C4 b _08034248 .align 2, 0 _080341F4: .4byte gUnknown_203B33C _080341F8: .4byte 0x00000524 _080341FC: movs r0, 0x27 bl sub_80338C4 b _08034248 _08034204: ldr r4, _08034250 ldr r1, [r4] movs r0, 0x26 str r0, [r1, 0x4] bl sub_8023B44 adds r2, r0, 0 ldr r0, [r4] movs r5, 0xA7 lsls r5, 3 adds r1, r0, r5 strh r2, [r1] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] adds r0, r5 movs r3, 0 ldrsh r0, [r0, r3] movs r1, 0 bl sub_8024458 movs r0, 0x28 bl sub_80338C4 _08034248: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08034250: .4byte gUnknown_203B33C thumb_func_end sub_803418C thumb_func_start sub_8034254 sub_8034254: push {r4,lr} sub sp, 0x4 movs r0, 0x1 negs r0, r0 str r0, [sp] movs r0, 0 bl sub_8023A94 ldr r4, _08034298 ldr r0, [r4] movs r1, 0xC3 lsls r1, 2 adds r0, r1 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _08034286 ldr r0, [r4] movs r1, 0xC3 lsls r1, 2 adds r0, r1 mov r1, sp bl sub_8013114 _08034286: ldr r0, [sp] cmp r0, 0x8 beq _080342EA cmp r0, 0x8 bgt _0803429C cmp r0, 0x5 beq _080342EA b _08034304 .align 2, 0 _08034298: .4byte gUnknown_203B33C _0803429C: cmp r0, 0x9 beq _080342A6 cmp r0, 0xA beq _080342B2 b _08034304 _080342A6: bl sub_8023C60 movs r0, 0x29 bl sub_80338C4 b _08034304 _080342B2: ldr r0, [r4] movs r1, 0x7E str r1, [r0, 0x4] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] movs r1, 0xA7 lsls r1, 3 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] movs r1, 0 bl sub_8024458 movs r0, 0x28 bl sub_80338C4 b _08034304 _080342EA: ldr r0, _0803430C ldr r0, [r0] movs r1, 0xD7 lsls r1, 2 adds r0, r1 movs r1, 0x3 bl sub_8035CC0 bl sub_8023DA4 movs r0, 0x26 bl sub_80338C4 _08034304: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0803430C: .4byte gUnknown_203B33C thumb_func_end sub_8034254 thumb_func_start sub_8034310 sub_8034310: push {r4,lr} bl sub_80244E4 cmp r0, 0x1 bne _08034320 bl sub_802452C b _08034370 _08034320: cmp r0, 0x1 bcc _08034370 cmp r0, 0x3 bhi _08034370 bl sub_802453C bl sub_8004914 ldr r4, _08034368 ldr r0, [r4] movs r1, 0xEF lsls r1, 2 adds r0, r1 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x1 bl sub_8023B7C ldr r4, [r4] ldr r0, [r4, 0x4] cmp r0, 0x7E bne _0803436C movs r1, 0x87 lsls r1, 2 adds r0, r4, r1 movs r1, 0x3 movs r2, 0x1 bl sub_8035CF4 movs r0, 0x27 bl sub_80338C4 b _08034370 .align 2, 0 _08034368: .4byte gUnknown_203B33C _0803436C: bl sub_80338C4 _08034370: pop {r4} pop {r0} bx r0 thumb_func_end sub_8034310 thumb_func_start sub_8034378 sub_8034378: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080343BE ldr r0, [sp] cmp r0, 0x8 beq _080343B8 cmp r0, 0x10 bne _080343BE ldr r0, _080343A8 ldr r0, [r0] ldr r1, _080343AC adds r0, r1 ldr r0, [r0] cmp r0, 0xE bne _080343B0 movs r0, 0x9 bl sub_80338C4 b _080343BE .align 2, 0 _080343A8: .4byte gUnknown_203B33C _080343AC: .4byte 0x00000524 _080343B0: movs r0, 0x5 bl sub_80338C4 b _080343BE _080343B8: movs r0, 0x1 bl sub_80338C4 _080343BE: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8034378 thumb_func_start sub_80343C4 sub_80343C4: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080343FE ldr r0, [sp] cmp r0, 0x7 beq _080343F0 cmp r0, 0x7 bgt _080343E2 cmp r0, 0x6 beq _080343E8 b _080343FE _080343E2: cmp r0, 0x8 beq _080343F8 b _080343FE _080343E8: movs r0, 0x5 bl sub_80338C4 b _080343FE _080343F0: movs r0, 0x25 bl sub_80338C4 b _080343FE _080343F8: movs r0, 0x1 bl sub_80338C4 _080343FE: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80343C4 thumb_func_start sub_8034404 sub_8034404: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08034472 ldr r0, [sp] cmp r0, 0xF beq _08034428 cmp r0, 0xF bgt _08034422 cmp r0, 0x8 beq _0803446C b _08034472 _08034422: cmp r0, 0x10 beq _08034444 b _08034472 _08034428: movs r0, 0x3 bl sub_8024108 lsls r0, 24 cmp r0, 0 beq _0803443C movs r0, 0x24 bl sub_80338C4 b _08034472 _0803443C: movs r0, 0x25 bl sub_80338C4 b _08034472 _08034444: ldr r0, _0803445C ldr r0, [r0] ldr r1, _08034460 adds r0, r1 ldr r0, [r0] cmp r0, 0xE bne _08034464 movs r0, 0x9 bl sub_80338C4 b _08034472 .align 2, 0 _0803445C: .4byte gUnknown_203B33C _08034460: .4byte 0x00000524 _08034464: movs r0, 0x5 bl sub_80338C4 b _08034472 _0803446C: movs r0, 0x1 bl sub_80338C4 _08034472: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8034404 thumb_func_start sub_8034478 sub_8034478: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0803449A bl sub_8012600 lsls r0, 24 cmp r0, 0 bne _0803449A bl sub_8012750 movs r0, 0x2 bl sub_80338C4 _0803449A: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8034478 thumb_func_start sub_80344A0 sub_80344A0: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080344BA movs r0, 0x2C bl sub_80338C4 movs r0, 0 bl sub_8012574 _080344BA: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80344A0 thumb_func_start sub_80344C0 sub_80344C0: push {lr} bl sub_8031DCC cmp r0, 0x1 beq _080344F8 cmp r0, 0x1 bcc _080344FC cmp r0, 0x3 bhi _080344FC bl sub_8031E10 bl sub_8004914 ldr r0, _080344F4 ldr r0, [r0] movs r1, 0xEF lsls r1, 2 adds r0, r1 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x2F bl sub_80338C4 b _080344FC .align 2, 0 _080344F4: .4byte gUnknown_203B33C _080344F8: bl sub_8031E00 _080344FC: pop {r0} bx r0 thumb_func_end sub_80344C0 thumb_func_start sub_8034500 sub_8034500: push {r4,r5,lr} movs r0, 0x1 bl sub_8030768 cmp r0, 0x3 beq _08034528 cmp r0, 0x3 bhi _08034516 cmp r0, 0x2 beq _0803451C b _08034586 _08034516: cmp r0, 0x4 beq _08034544 b _08034586 _0803451C: bl sub_803084C movs r0, 0x1 bl sub_80338C4 b _08034586 _08034528: bl sub_80307EC ldr r1, _08034540 ldr r1, [r1] movs r2, 0x86 lsls r2, 2 adds r1, r2 strb r0, [r1] movs r0, 0x33 bl sub_80338C4 b _08034586 .align 2, 0 _08034540: .4byte gUnknown_203B33C _08034544: ldr r4, _0803458C ldr r1, [r4] movs r0, 0x32 str r0, [r1, 0x4] bl sub_80307EC ldr r1, [r4] movs r5, 0x86 lsls r5, 2 adds r1, r5 strb r0, [r1] ldr r0, [r4] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] adds r0, r5 ldrb r0, [r0] movs r1, 0 bl sub_8030D40 movs r0, 0x34 bl sub_80338C4 _08034586: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0803458C: .4byte gUnknown_203B33C thumb_func_end sub_8034500 thumb_func_start sub_8034590 sub_8034590: push {r4,lr} sub sp, 0x4 movs r0, 0x1 negs r0, r0 str r0, [sp] movs r0, 0 bl sub_8030768 ldr r4, _080345D4 ldr r0, [r4] movs r1, 0xC3 lsls r1, 2 adds r0, r1 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _080345C2 ldr r0, [r4] movs r1, 0xC3 lsls r1, 2 adds r0, r1 mov r1, sp bl sub_8013114 _080345C2: ldr r0, [sp] cmp r0, 0x8 beq _08034624 cmp r0, 0x8 bgt _080345D8 cmp r0, 0x5 beq _08034624 b _08034640 .align 2, 0 _080345D4: .4byte gUnknown_203B33C _080345D8: cmp r0, 0x9 beq _080345E2 cmp r0, 0xA beq _080345EE b _08034640 _080345E2: bl sub_803084C movs r0, 0x35 bl sub_80338C4 b _08034640 _080345EE: ldr r0, [r4] movs r1, 0x7E str r1, [r0, 0x4] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] movs r1, 0x86 lsls r1, 2 adds r0, r1 ldrb r0, [r0] movs r1, 0 bl sub_8030D40 movs r0, 0x34 bl sub_80338C4 b _08034640 _08034624: ldr r0, _08034648 ldr r0, [r0] movs r1, 0xD7 lsls r1, 2 adds r0, r1 movs r1, 0x2 bl sub_8035CC0 movs r0, 0x1 bl sub_8030810 movs r0, 0x32 bl sub_80338C4 _08034640: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08034648: .4byte gUnknown_203B33C thumb_func_end sub_8034590 thumb_func_start sub_803464C sub_803464C: push {r4,lr} bl sub_8030DA0 cmp r0, 0x3 bhi _080346A0 cmp r0, 0x2 bcc _080346A0 bl sub_8030DE4 bl sub_8004914 ldr r4, _08034698 ldr r0, [r4] movs r1, 0xEF lsls r1, 2 adds r0, r1 movs r1, 0x1 movs r2, 0x1 bl sub_800641C bl sub_803092C ldr r4, [r4] ldr r0, [r4, 0x4] cmp r0, 0x7E bne _0803469C movs r1, 0x87 lsls r1, 2 adds r0, r4, r1 movs r1, 0x3 movs r2, 0x1 bl sub_8035CF4 movs r0, 0x33 bl sub_80338C4 b _080346A0 .align 2, 0 _08034698: .4byte gUnknown_203B33C _0803469C: bl sub_80338C4 _080346A0: pop {r4} pop {r0} bx r0 thumb_func_end sub_803464C thumb_func_start sub_80346A8 sub_80346A8: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080346D2 ldr r0, [sp] cmp r0, 0x6 bne _080346C4 movs r0, 0xE bl sub_80338C4 b _080346D2 _080346C4: cmp r0, 0x6 blt _080346D2 cmp r0, 0x8 bgt _080346D2 movs r0, 0x1 bl sub_80338C4 _080346D2: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80346A8 thumb_func_start sub_80346D8 sub_80346D8: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080346FA bl sub_8012600 lsls r0, 24 cmp r0, 0 bne _080346FA bl sub_8012750 movs r0, 0x2 bl sub_80338C4 _080346FA: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80346D8 thumb_func_start sub_8034700 sub_8034700: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0803471A movs r0, 0x38 bl sub_80338C4 movs r0, 0 bl sub_8012574 _0803471A: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8034700 thumb_func_start sub_8034720 sub_8034720: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08034734 movs r0, 0x3A bl sub_80338C4 _08034734: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8034720 thumb_func_start sub_803473C sub_803473C: push {lr} bl sub_8031DCC cmp r0, 0x1 beq _08034774 cmp r0, 0x1 bcc _08034778 cmp r0, 0x3 bhi _08034778 bl sub_8031E10 bl sub_8004914 ldr r0, _08034770 ldr r0, [r0] movs r1, 0xEF lsls r1, 2 adds r0, r1 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x3B bl sub_80338C4 b _08034778 .align 2, 0 _08034770: .4byte gUnknown_203B33C _08034774: bl sub_8031E00 _08034778: pop {r0} bx r0 thumb_func_end sub_803473C thumb_func_start sub_803477C sub_803477C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080347A6 ldr r0, [sp] cmp r0, 0x6 bne _08034798 movs r0, 0xE bl sub_80338C4 b _080347A6 _08034798: cmp r0, 0x6 blt _080347A6 cmp r0, 0x8 bgt _080347A6 movs r0, 0x1 bl sub_80338C4 _080347A6: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_803477C thumb_func_start sub_80347AC sub_80347AC: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080347C0 movs r0, 0xD bl sub_80338C4 _080347C0: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80347AC thumb_func_start sub_80347C8 sub_80347C8: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080347DC movs r0, 0x40 bl sub_80338C4 _080347DC: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80347C8 thumb_func_start sub_80347E4 sub_80347E4: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080347FE movs r0, 0x41 bl sub_80338C4 movs r0, 0 bl sub_8012574 _080347FE: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80347E4 thumb_func_start sub_8034804 sub_8034804: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08034826 bl sub_8012600 lsls r0, 24 cmp r0, 0 bne _08034826 bl sub_8012750 movs r0, 0x42 bl sub_80338C4 _08034826: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8034804 thumb_func_start sub_803482C sub_803482C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08034840 movs r0, 0x1 bl sub_80338C4 _08034840: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_803482C thumb_func_start sub_8034848 sub_8034848: push {r4-r6,lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 adds r6, r0, 0 cmp r6, 0 bne _080348BA ldr r4, _0803489C ldr r0, [r4] ldr r5, _080348A0 adds r0, r5 movs r1, 0 movs r2, 0x4 bl MemoryFill8 ldr r0, [r4] ldr r1, _080348A4 adds r0, r1 strb r6, [r0] ldr r0, [r4] subs r1, 0x1 adds r0, r1 movs r1, 0x1 strb r1, [r0] ldr r0, [r4] adds r0, r5 strb r6, [r0] ldr r4, [r4] ldr r0, [r4, 0x44] cmp r0, 0 bne _080348B0 ldr r4, [r4, 0x40] cmp r4, 0x6 beq _080348A8 cmp r4, 0x7 bne _080348BA movs r0, 0x6D bl sub_80338C4 b _080348BA .align 2, 0 _0803489C: .4byte gUnknown_203B33C _080348A0: .4byte 0x0000041c _080348A4: .4byte 0x0000041e _080348A8: movs r0, 0x50 bl sub_80338C4 b _080348BA _080348B0: bl sub_80338DC movs r0, 0x6B bl sub_80338C4 _080348BA: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8034848 thumb_func_start sub_80348C4 sub_80348C4: push {r4-r6,lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 adds r6, r0, 0 cmp r6, 0 bne _08034968 ldr r4, _08034910 ldr r0, [r4] ldr r5, _08034914 adds r0, r5 movs r1, 0 movs r2, 0x4 bl MemoryFill8 ldr r0, [r4] ldr r1, _08034918 adds r0, r1 strb r6, [r0] ldr r0, [r4] subs r1, 0x1 adds r0, r1 movs r1, 0x1 strb r1, [r0] ldr r0, [r4] adds r0, r5 strb r6, [r0] ldr r0, [r4] ldr r1, [r0, 0x44] cmp r1, 0 bne _0803495C ldr r1, [r0, 0x40] cmp r1, 0x6 beq _0803491C cmp r1, 0x7 beq _08034954 b _08034968 .align 2, 0 _08034910: .4byte gUnknown_203B33C _08034914: .4byte 0x0000041c _08034918: .4byte 0x0000041e _0803491C: ldr r1, _08034930 adds r0, r1 ldr r0, [r0] cmp r0, 0xC beq _08034944 cmp r0, 0xC bhi _08034934 cmp r0, 0xB beq _08034938 b _08034944 .align 2, 0 _08034930: .4byte 0x00000524 _08034934: cmp r0, 0xE bhi _08034944 _08034938: ldr r0, _0803494C ldr r3, _08034950 movs r1, 0 movs r2, 0 bl sub_80141B4 _08034944: movs r0, 0x77 bl sub_80338C4 b _08034968 .align 2, 0 _0803494C: .4byte gUnknown_80E31FC _08034950: .4byte 0x00000101 _08034954: movs r0, 0x6D bl sub_80338C4 b _08034968 _0803495C: adds r0, r1, 0 bl sub_80338DC movs r0, 0x6B bl sub_80338C4 _08034968: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80348C4 thumb_func_start sub_8034970 sub_8034970: push {lr} bl sub_8031DCC cmp r0, 0x1 beq _080349A8 cmp r0, 0x1 bcc _080349AC cmp r0, 0x3 bhi _080349AC bl sub_8031E10 bl sub_8004914 ldr r0, _080349A4 ldr r0, [r0] movs r1, 0xEF lsls r1, 2 adds r0, r1 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x68 bl sub_80338C4 b _080349AC .align 2, 0 _080349A4: .4byte gUnknown_203B33C _080349A8: bl sub_8031E00 _080349AC: pop {r0} bx r0 thumb_func_end sub_8034970 thumb_func_start sub_80349B0 sub_80349B0: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080349DA ldr r0, [sp] cmp r0, 0x6 bne _080349CC movs r0, 0x52 bl sub_80338C4 b _080349DA _080349CC: cmp r0, 0x6 blt _080349DA cmp r0, 0x8 bgt _080349DA movs r0, 0x1 bl sub_80338C4 _080349DA: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80349B0 thumb_func_start sub_80349E0 sub_80349E0: push {r4,r5,lr} movs r0, 0x1 bl sub_8030768 cmp r0, 0x3 beq _08034A08 cmp r0, 0x3 bhi _080349F6 cmp r0, 0x2 beq _080349FC b _08034A66 _080349F6: cmp r0, 0x4 beq _08034A24 b _08034A66 _080349FC: bl sub_803084C movs r0, 0x1 bl sub_80338C4 b _08034A66 _08034A08: bl sub_80307EC ldr r1, _08034A20 ldr r1, [r1] movs r2, 0x86 lsls r2, 2 adds r1, r2 strb r0, [r1] movs r0, 0x5D bl sub_80338C4 b _08034A66 .align 2, 0 _08034A20: .4byte gUnknown_203B33C _08034A24: ldr r4, _08034A6C ldr r1, [r4] movs r0, 0x5C str r0, [r1, 0x4] bl sub_80307EC ldr r1, [r4] movs r5, 0x86 lsls r5, 2 adds r1, r5 strb r0, [r1] ldr r0, [r4] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] adds r0, r5 ldrb r0, [r0] movs r1, 0 bl sub_8030D40 movs r0, 0x5E bl sub_80338C4 _08034A66: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08034A6C: .4byte gUnknown_203B33C thumb_func_end sub_80349E0 thumb_func_start sub_8034A70 sub_8034A70: push {r4,lr} sub sp, 0x4 movs r0, 0x1 negs r0, r0 str r0, [sp] movs r0, 0 bl sub_8030768 ldr r4, _08034AB4 ldr r0, [r4] movs r1, 0xC3 lsls r1, 2 adds r0, r1 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _08034AA2 ldr r0, [r4] movs r1, 0xC3 lsls r1, 2 adds r0, r1 mov r1, sp bl sub_8013114 _08034AA2: ldr r0, [sp] cmp r0, 0x8 beq _08034B04 cmp r0, 0x8 bgt _08034AB8 cmp r0, 0x5 beq _08034B04 b _08034B20 .align 2, 0 _08034AB4: .4byte gUnknown_203B33C _08034AB8: cmp r0, 0x9 beq _08034AC2 cmp r0, 0xA beq _08034ACE b _08034B20 _08034AC2: bl sub_803084C movs r0, 0x5A bl sub_80338C4 b _08034B20 _08034ACE: ldr r0, [r4] movs r1, 0x7E str r1, [r0, 0x4] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] movs r1, 0x86 lsls r1, 2 adds r0, r1 ldrb r0, [r0] movs r1, 0 bl sub_8030D40 movs r0, 0x5E bl sub_80338C4 b _08034B20 _08034B04: ldr r0, _08034B28 ldr r0, [r0] movs r1, 0xD7 lsls r1, 2 adds r0, r1 movs r1, 0x2 bl sub_8035CC0 movs r0, 0x1 bl sub_8030810 movs r0, 0x5C bl sub_80338C4 _08034B20: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08034B28: .4byte gUnknown_203B33C thumb_func_end sub_8034A70 thumb_func_start sub_8034B2C sub_8034B2C: push {r4,lr} bl sub_8030DA0 cmp r0, 0x3 bhi _08034B80 cmp r0, 0x2 bcc _08034B80 bl sub_8030DE4 bl sub_8004914 ldr r4, _08034B78 ldr r0, [r4] movs r1, 0xEF lsls r1, 2 adds r0, r1 movs r1, 0x1 movs r2, 0x1 bl sub_800641C bl sub_803092C ldr r4, [r4] ldr r0, [r4, 0x4] cmp r0, 0x7E bne _08034B7C movs r1, 0x87 lsls r1, 2 adds r0, r4, r1 movs r1, 0x3 movs r2, 0x1 bl sub_8035CF4 movs r0, 0x5D bl sub_80338C4 b _08034B80 .align 2, 0 _08034B78: .4byte gUnknown_203B33C _08034B7C: bl sub_80338C4 _08034B80: pop {r4} pop {r0} bx r0 thumb_func_end sub_8034B2C thumb_func_start sub_8034B88 sub_8034B88: push {r4-r6,lr} ldr r4, _08034BBC ldr r0, [r4] ldr r5, _08034BC0 adds r0, r5 movs r2, 0 strb r2, [r0] ldr r0, [r4] ldr r1, _08034BC4 adds r0, r1 movs r1, 0x1 strb r1, [r0] ldr r0, [r4] ldr r6, _08034BC8 adds r0, r6 strb r2, [r0] movs r0, 0x1 bl sub_801CA08 cmp r0, 0x3 beq _08034BDE cmp r0, 0x3 bhi _08034BCC cmp r0, 0x2 beq _08034BD2 b _08034C30 .align 2, 0 _08034BBC: .4byte gUnknown_203B33C _08034BC0: .4byte 0x0000041e _08034BC4: .4byte 0x0000041d _08034BC8: .4byte 0x0000041c _08034BCC: cmp r0, 0x4 beq _08034BF8 b _08034C30 _08034BD2: bl sub_801CBB8 movs r0, 0x1 bl sub_80338C4 b _08034C30 _08034BDE: bl sub_801CB24 ldr r1, [r4] ldr r2, _08034BF4 adds r1, r2 strb r0, [r1] movs r0, 0x60 bl sub_80338C4 b _08034C30 .align 2, 0 _08034BF4: .4byte 0x0000041e _08034BF8: ldr r1, [r4] movs r0, 0x5F str r0, [r1, 0x4] bl sub_801CB24 ldr r1, [r4] adds r1, r5 strb r0, [r1] ldr r0, [r4] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] adds r0, r6 bl sub_801B3C0 movs r0, 0x61 bl sub_80338C4 _08034C30: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8034B88 thumb_func_start sub_8034C38 sub_8034C38: push {r4,lr} bl sub_801B410 cmp r0, 0x1 beq _08034C90 cmp r0, 0x1 bcc _08034C90 cmp r0, 0x3 bhi _08034C90 bl sub_801B450 bl sub_8004914 ldr r4, _08034C88 ldr r0, [r4] movs r1, 0xEF lsls r1, 2 adds r0, r1 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x1 bl sub_801CB5C ldr r4, [r4] ldr r0, [r4, 0x4] cmp r0, 0x7E bne _08034C8C movs r1, 0x87 lsls r1, 2 adds r0, r4, r1 movs r1, 0x3 movs r2, 0x1 bl sub_8035CF4 movs r0, 0x60 bl sub_80338C4 b _08034C90 .align 2, 0 _08034C88: .4byte gUnknown_203B33C _08034C8C: bl sub_80338C4 _08034C90: pop {r4} pop {r0} bx r0 thumb_func_end sub_8034C38 thumb_func_start sub_8034C98 sub_8034C98: push {r4,lr} sub sp, 0x4 movs r0, 0x1 negs r0, r0 str r0, [sp] movs r0, 0 bl sub_801CA08 ldr r4, _08034CDC ldr r0, [r4] movs r1, 0xC3 lsls r1, 2 adds r0, r1 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _08034CCA ldr r0, [r4] movs r1, 0xC3 lsls r1, 2 adds r0, r1 mov r1, sp bl sub_8013114 _08034CCA: ldr r0, [sp] cmp r0, 0x8 beq _08034D2C cmp r0, 0x8 bgt _08034CE0 cmp r0, 0x5 beq _08034D2C b _08034D48 .align 2, 0 _08034CDC: .4byte gUnknown_203B33C _08034CE0: cmp r0, 0x9 beq _08034CEA cmp r0, 0xA beq _08034CF6 b _08034D48 _08034CEA: bl sub_801CBB8 movs r0, 0x58 bl sub_80338C4 b _08034D48 _08034CF6: ldr r0, [r4] movs r1, 0x7E str r1, [r0, 0x4] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] ldr r1, _08034D28 adds r0, r1 bl sub_801B3C0 movs r0, 0x61 bl sub_80338C4 b _08034D48 .align 2, 0 _08034D28: .4byte 0x0000041c _08034D2C: ldr r0, _08034D50 ldr r0, [r0] movs r1, 0xD7 lsls r1, 2 adds r0, r1 movs r1, 0x3 bl sub_8035CC0 movs r0, 0x1 bl sub_801CB5C movs r0, 0x5F bl sub_80338C4 _08034D48: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08034D50: .4byte gUnknown_203B33C thumb_func_end sub_8034C98 thumb_func_start sub_8034D54 sub_8034D54: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08034D6E movs r0, 0x65 bl sub_80338C4 movs r0, 0 bl sub_8012574 _08034D6E: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8034D54 thumb_func_start sub_8034D74 sub_8034D74: push {r4,r5,lr} sub sp, 0x44 bl sub_80154F0 adds r4, r0, 0 add r0, sp, 0x14 movs r1, 0 movs r2, 0x30 bl MemoryFill8 cmp r4, 0x2 bne _08034D8E b _08034E9C _08034D8E: cmp r4, 0x3 beq _08034D94 b _08034EBC _08034D94: ldr r0, _08034DB4 ldr r1, [r0] adds r1, 0x8 movs r0, 0x20 add r2, sp, 0x14 bl sub_8039068 subs r0, 0x7 cmp r0, 0x11 bhi _08034E90 lsls r0, 2 ldr r1, _08034DB8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08034DB4: .4byte gUnknown_203B33C _08034DB8: .4byte _08034DBC .align 2, 0 _08034DBC: .4byte _08034E90 .4byte _08034E90 .4byte _08034E90 .4byte _08034E90 .4byte _08034E38 .4byte _08034E90 .4byte _08034E90 .4byte _08034E90 .4byte _08034E90 .4byte _08034E90 .4byte _08034E04 .4byte _08034E90 .4byte _08034E90 .4byte _08034E30 .4byte _08034E90 .4byte _08034E90 .4byte _08034E90 .4byte _08034E54 _08034E04: ldr r0, _08034E28 ldr r3, _08034E2C movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] adds r1, 0xFD str r1, [sp, 0x10] movs r1, 0 movs r2, 0x6 bl sub_8014248 movs r0, 0x74 bl sub_80338C4 b _08034E90 .align 2, 0 _08034E28: .4byte gUnknown_80E48A8 _08034E2C: .4byte gUnknown_80E2440 _08034E30: ldr r0, _08034E34 b _08034E3A .align 2, 0 _08034E34: .4byte gUnknown_80E49C4 _08034E38: ldr r0, _08034E4C _08034E3A: ldr r3, _08034E50 movs r1, 0 movs r2, 0 bl sub_80141B4 movs r0, 0x6B bl sub_80338C4 b _08034E90 .align 2, 0 _08034E4C: .4byte gUnknown_80E4704 _08034E50: .4byte 0x00000101 _08034E54: ldr r1, [sp, 0x24] movs r0, 0x4 bl sub_809539C lsls r0, 24 lsrs r0, 24 bl sub_8095228 adds r2, r0, 0 add r1, sp, 0x14 ldm r1!, {r3-r5} stm r2!, {r3-r5} ldm r1!, {r3-r5} stm r2!, {r3-r5} ldm r1!, {r3-r5} stm r2!, {r3-r5} ldm r1!, {r3-r5} stm r2!, {r3-r5} movs r1, 0x6 strb r1, [r0] ldr r0, _08034E98 ldr r0, [r0] movs r1, 0x84 lsls r1, 3 adds r0, r1 ldr r1, [sp, 0x24] str r1, [r0] movs r0, 0x6D bl sub_80338C4 _08034E90: bl sub_80155F0 b _08034EBC .align 2, 0 _08034E98: .4byte gUnknown_203B33C _08034E9C: bl sub_80155F0 bl sub_8004914 ldr r0, _08034EC4 ldr r0, [r0] movs r3, 0xEF lsls r3, 2 adds r0, r3 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x1 bl sub_80338C4 _08034EBC: add sp, 0x44 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08034EC4: .4byte gUnknown_203B33C thumb_func_end sub_8034D74 thumb_func_start sub_8034EC8 sub_8034EC8: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08034EEA bl sub_8012600 lsls r0, 24 cmp r0, 0 bne _08034EEA bl sub_8012750 movs r0, 0x2 bl sub_80338C4 _08034EEA: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8034EC8 thumb_func_start sub_8034EF0 sub_8034EF0: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08034F12 bl sub_8012600 lsls r0, 24 cmp r0, 0 bne _08034F12 bl sub_8012750 movs r0, 0x2 bl sub_80338C4 _08034F12: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8034EF0 thumb_func_start sub_8034F18 sub_8034F18: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08034F32 movs r0, 0x65 bl sub_80338C4 movs r0, 0 bl sub_8012574 _08034F32: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8034F18 thumb_func_start sub_8034F38 sub_8034F38: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08034F52 movs r0, 0x71 bl sub_80338C4 movs r0, 0 bl sub_8012574 _08034F52: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8034F38 thumb_func_start sub_8034F58 sub_8034F58: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08034F80 ldr r0, [sp] cmp r0, 0x6 beq _08034F72 cmp r0, 0x8 beq _08034F7A b _08034F80 _08034F72: movs r0, 0x62 bl sub_80338C4 b _08034F80 _08034F7A: movs r0, 0x1 bl sub_80338C4 _08034F80: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8034F58 thumb_func_start sub_8034F88 sub_8034F88: push {r4,r5,lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0803500E ldr r0, [sp] cmp r0, 0x7 beq _08035000 cmp r0, 0x7 bgt _08034FA6 cmp r0, 0x6 beq _08034FAC b _0803500E _08034FA6: cmp r0, 0x8 beq _08035008 b _0803500E _08034FAC: ldr r4, _08034FF0 ldr r0, [r4] movs r1, 0x86 lsls r1, 2 adds r0, r1 ldrb r0, [r0] bl sub_8095228 adds r2, r0, 0 ldr r1, [r4] ldr r3, _08034FF4 adds r0, r1, r3 ldrb r0, [r0] cmp r0, 0 beq _08034FD2 ldr r5, _08034FF8 adds r0, r1, r5 ldr r0, [r0] str r0, [r2, 0x20] _08034FD2: ldr r0, _08034FFC ldr r1, [r0] ldr r0, [r4] adds r0, r3 ldrb r0, [r0] lsls r0, 1 adds r1, 0x50 adds r1, r0 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] movs r0, 0x75 bl sub_80338C4 b _0803500E .align 2, 0 _08034FF0: .4byte gUnknown_203B33C _08034FF4: .4byte 0x0000041e _08034FF8: .4byte 0x0000041c _08034FFC: .4byte gUnknown_203B460 _08035000: movs r0, 0x57 bl sub_80338C4 b _0803500E _08035008: movs r0, 0x1 bl sub_80338C4 _0803500E: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8034F88 thumb_func_start sub_8035018 sub_8035018: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08035032 movs r0, 0x76 bl sub_80338C4 movs r0, 0 bl sub_8012574 _08035032: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8035018 thumb_func_start sub_8035038 sub_8035038: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0803508E bl sub_8012600 lsls r0, 24 cmp r0, 0 bne _0803508E bl sub_8012750 ldr r0, _0803506C ldr r0, [r0] ldr r1, _08035070 adds r0, r1 ldr r0, [r0] cmp r0, 0xD beq _08035080 cmp r0, 0xD bls _08035074 cmp r0, 0xE beq _08035088 b _0803508E .align 2, 0 _0803506C: .4byte gUnknown_203B33C _08035070: .4byte 0x00000524 _08035074: cmp r0, 0xB bcc _0803508E movs r0, 0x69 bl sub_80338C4 b _0803508E _08035080: movs r0, 0x66 bl sub_80338C4 b _0803508E _08035088: movs r0, 0x4B bl sub_80338C4 _0803508E: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8035038 thumb_func_start sub_8035094 sub_8035094: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080350EE ldr r0, [sp] cmp r0, 0x8 beq _080350E8 cmp r0, 0x16 bne _080350EE ldr r0, _080350C4 ldr r0, [r0] ldr r1, _080350C8 adds r0, r1 ldr r0, [r0] cmp r0, 0xD beq _080350D8 cmp r0, 0xD bls _080350CC cmp r0, 0xE beq _080350E0 b _080350EE .align 2, 0 _080350C4: .4byte gUnknown_203B33C _080350C8: .4byte 0x00000524 _080350CC: cmp r0, 0xB bcc _080350EE movs r0, 0x69 bl sub_80338C4 b _080350EE _080350D8: movs r0, 0x66 bl sub_80338C4 b _080350EE _080350E0: movs r0, 0x4B bl sub_80338C4 b _080350EE _080350E8: movs r0, 0x1 bl sub_80338C4 _080350EE: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8035094 thumb_func_start sub_80350F4 sub_80350F4: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08035176 ldr r0, [sp] cmp r0, 0x15 beq _08035118 cmp r0, 0x15 bgt _08035112 cmp r0, 0x8 beq _08035170 b _08035176 _08035112: cmp r0, 0x16 beq _08035134 b _08035176 _08035118: movs r0, 0 bl sub_801CF14 lsls r0, 24 cmp r0, 0 beq _0803512C movs r0, 0x56 bl sub_80338C4 b _08035176 _0803512C: movs r0, 0x57 bl sub_80338C4 b _08035176 _08035134: ldr r0, _0803514C ldr r0, [r0] ldr r1, _08035150 adds r0, r1 ldr r0, [r0] cmp r0, 0xD beq _08035160 cmp r0, 0xD bls _08035154 cmp r0, 0xE beq _08035168 b _08035176 .align 2, 0 _0803514C: .4byte gUnknown_203B33C _08035150: .4byte 0x00000524 _08035154: cmp r0, 0xB bcc _08035176 movs r0, 0x69 bl sub_80338C4 b _08035176 _08035160: movs r0, 0x66 bl sub_80338C4 b _08035176 _08035168: movs r0, 0x4B bl sub_80338C4 b _08035176 _08035170: movs r0, 0x1 bl sub_80338C4 _08035176: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80350F4 thumb_func_start sub_803517C sub_803517C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080351DA ldr r0, [sp] cmp r0, 0x6 beq _08035196 cmp r0, 0x8 beq _080351D4 b _080351DA _08035196: ldr r0, _080351B0 ldr r0, [r0] ldr r1, _080351B4 adds r0, r1 ldr r0, [r0] cmp r0, 0xD beq _080351C4 cmp r0, 0xD bls _080351B8 cmp r0, 0xE beq _080351CC b _080351DA .align 2, 0 _080351B0: .4byte gUnknown_203B33C _080351B4: .4byte 0x00000524 _080351B8: cmp r0, 0xB bcc _080351DA movs r0, 0x69 bl sub_80338C4 b _080351DA _080351C4: movs r0, 0x66 bl sub_80338C4 b _080351DA _080351CC: movs r0, 0x4B bl sub_80338C4 b _080351DA _080351D4: movs r0, 0x1 bl sub_80338C4 _080351DA: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_803517C thumb_func_start sub_80351E0 sub_80351E0: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08035208 ldr r0, [sp] cmp r0, 0x6 beq _080351FA cmp r0, 0x8 beq _08035202 b _08035208 _080351FA: movs r0, 0x72 bl sub_80338C4 b _08035208 _08035202: movs r0, 0x1 bl sub_80338C4 _08035208: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80351E0 thumb_func_start sub_8035210 sub_8035210: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0803528C ldr r0, _08035238 ldr r2, [r0] ldr r1, _0803523C adds r0, r2, r1 ldr r1, [sp] str r1, [r0] cmp r1, 0xD bgt _0803528C cmp r1, 0xB bge _08035240 cmp r1, 0x8 beq _08035286 b _0803528C .align 2, 0 _08035238: .4byte gUnknown_203B33C _0803523C: .4byte 0x00000524 _08035240: movs r3, 0xA5 lsls r3, 3 adds r0, r2, r3 ldr r0, [r0] cmp r0, 0x13 bne _08035272 movs r0, 0x5 bl sub_80953D4 lsls r0, 24 lsrs r0, 24 bl sub_8095228 adds r0, 0x22 ldrb r0, [r0] cmp r0, 0 beq _0803526A movs r0, 0x53 bl sub_80338C4 b _0803528C _0803526A: movs r0, 0x55 bl sub_80338C4 b _0803528C _08035272: cmp r1, 0xD beq _0803527E movs r0, 0x69 bl sub_80338C4 b _0803528C _0803527E: movs r0, 0x72 bl sub_80338C4 b _0803528C _08035286: movs r0, 0x1 bl sub_80338C4 _0803528C: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8035210 thumb_func_start nullsub_46 nullsub_46: bx lr thumb_func_end nullsub_46 thumb_func_start nullsub_47 nullsub_47: bx lr thumb_func_end nullsub_47 thumb_func_start nullsub_48 nullsub_48: bx lr thumb_func_end nullsub_48 thumb_func_start nullsub_49 nullsub_49: bx lr thumb_func_end nullsub_49 thumb_func_start sub_80352A4 sub_80352A4: push {r4,lr} bl sub_802F298 cmp r0, 0x3 bne _080352EC bl sub_802F2C0 ldr r0, _080352F4 movs r4, 0x98 lsls r4, 1 adds r1, r4, 0 bl sub_808D8E0 adds r0, r4, 0 bl sub_808D994 adds r1, r0, 0 ldr r0, _080352F8 bl strcpy ldr r0, _080352FC ldr r0, [r0] movs r1, 0x84 lsls r1, 3 adds r0, r1 ldr r1, [r0] movs r0, 0x6 bl sub_809539C lsls r0, 24 lsrs r0, 24 bl sub_8095240 movs r0, 0x70 bl sub_80338C4 _080352EC: pop {r4} pop {r0} bx r0 .align 2, 0 _080352F4: .4byte gUnknown_202E5D8 _080352F8: .4byte gUnknown_202DF98 _080352FC: .4byte gUnknown_203B33C thumb_func_end sub_80352A4 thumb_func_start sub_8035300 sub_8035300: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08035364 ldr r0, [sp] adds r1, r0, 0 subs r1, 0x19 adds r2, r0, 0 cmp r1, 0x4 bhi _08035364 lsls r0, r1, 2 ldr r1, _08035324 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08035324: .4byte _08035328 .align 2, 0 _08035328: .4byte _0803533C .4byte _08035354 .4byte _08035344 .4byte _0803534C .4byte _08035354 _0803533C: movs r0, 0x1 bl sub_80338C4 b _08035364 _08035344: movs r0, 0x7A bl sub_80338C4 b _08035364 _0803534C: movs r0, 0x7C bl sub_80338C4 b _08035364 _08035354: ldr r0, _0803536C ldr r0, [r0] ldr r1, _08035370 adds r0, r1 str r2, [r0] movs r0, 0x79 bl sub_80338C4 _08035364: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _0803536C: .4byte gUnknown_203B33C _08035370: .4byte 0x00000564 thumb_func_end sub_8035300 thumb_func_start sub_8035374 sub_8035374: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080353AC ldr r1, [sp] cmp r1, 0x19 bne _08035390 movs r0, 0x78 bl sub_80338C4 b _080353AC _08035390: cmp r1, 0x19 blt _080353AC cmp r1, 0x22 bgt _080353AC cmp r1, 0x1E blt _080353AC ldr r0, _080353B4 ldr r0, [r0] ldr r2, _080353B8 adds r0, r2 str r1, [r0] movs r0, 0x7B bl sub_80338C4 _080353AC: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080353B4: .4byte gUnknown_203B33C _080353B8: .4byte 0x00000564 thumb_func_end sub_8035374 thumb_func_start sub_80353BC sub_80353BC: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080353F4 ldr r1, [sp] cmp r1, 0x19 bne _080353D8 movs r0, 0x78 bl sub_80338C4 b _080353F4 _080353D8: cmp r1, 0x19 blt _080353F4 cmp r1, 0x26 bgt _080353F4 cmp r1, 0x23 blt _080353F4 ldr r0, _080353FC ldr r0, [r0] ldr r2, _08035400 adds r0, r2 str r1, [r0] movs r0, 0x7D bl sub_80338C4 _080353F4: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080353FC: .4byte gUnknown_203B33C _08035400: .4byte 0x00000564 thumb_func_end sub_80353BC thumb_func_start sub_8035404 sub_8035404: push {r4,lr} sub sp, 0x4 adds r4, r0, 0 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0803541A adds r0, r4, 0 bl sub_80338C4 _0803541A: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_8035404 thumb_func_start sub_8035424 sub_8035424: push {lr} movs r0, 0x6 bl sub_80338C4 pop {r0} bx r0 thumb_func_end sub_8035424 thumb_func_start sub_8035430 sub_8035430: push {lr} movs r0, 0x4F bl sub_80338C4 pop {r0} bx r0 thumb_func_end sub_8035430 thumb_func_start nullsub_50 nullsub_50: bx lr thumb_func_end nullsub_50 thumb_func_start nullsub_51 nullsub_51: bx lr thumb_func_end nullsub_51 thumb_func_start sub_8035444 sub_8035444: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x84 mov r8, r0 adds r5, r1, 0 ldr r4, _080354C0 movs r0, 0x6C movs r1, 0x8 bl MemoryAlloc str r0, [r4] movs r1, 0 str r1, [r0, 0x60] str r5, [r0, 0x64] mov r1, r8 str r1, [r0, 0x68] ldr r2, _080354C4 mov r12, r2 mov r9, r4 movs r3, 0 movs r2, 0x3 _08035472: ldr r1, [r4] adds r1, r3 mov r0, r12 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} adds r3, 0x18 subs r2, 0x1 cmp r2, 0 bge _08035472 mov r0, r9 ldr r1, [r0] ldr r0, _080354C8 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r5-r7} stm r1!, {r5-r7} bl sub_8004914 mov r1, r9 ldr r0, [r1] movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x2 bl sub_8099690 movs r0, 0 bl sub_80073B8 mov r2, r8 lsls r0, r2, 2 ldr r1, _080354CC adds r0, r1 ldr r1, [r0] movs r5, 0 b _08035542 .align 2, 0 _080354C0: .4byte gUnknown_203B340 _080354C4: .4byte gUnknown_80E4A10 _080354C8: .4byte gUnknown_80E4A28 _080354CC: .4byte gUnknown_80E591C _080354D0: ldr r2, [r1, 0x8] movs r3, 0x4 ldrsh r0, [r1, r3] cmp r0, 0 blt _080354DE adds r5, r0, 0 b _080354E4 _080354DE: movs r6, 0x4 ldrsh r0, [r1, r6] subs r5, r0 _080354E4: movs r7, 0x2 ldrsh r6, [r1, r7] movs r3, 0 ldrsh r0, [r1, r3] cmp r0, 0x1 beq _080354FA cmp r0, 0x2 beq _08035514 adds r4, r1, 0 adds r4, 0xC b _08035532 _080354FA: add r3, sp, 0x4 ldrb r0, [r2] adds r4, r1, 0 adds r4, 0xC cmp r0, 0 beq _0803552C _08035506: strb r0, [r3] adds r2, 0x1 adds r3, 0x1 ldrb r0, [r2] cmp r0, 0 bne _08035506 b _0803552C _08035514: add r3, sp, 0x4 ldrb r0, [r2] adds r4, r1, 0 adds r4, 0xC cmp r0, 0 beq _0803552C _08035520: strb r0, [r3] adds r2, 0x1 adds r3, 0x1 ldrb r0, [r2] cmp r0, 0 bne _08035520 _0803552C: movs r0, 0 strb r0, [r3] add r2, sp, 0x4 _08035532: movs r0, 0 str r0, [sp] adds r0, r6, 0 adds r1, r5, 0 movs r3, 0 bl xxx_call_draw_string adds r1, r4, 0 _08035542: ldr r0, [r1, 0x8] cmp r0, 0 bne _080354D0 movs r0, 0 bl sub_80073E0 movs r0, 0 bl sub_80063CC ldr r2, _08035570 movs r0, 0x9 movs r1, 0 ldr r2, [r2] bl sub_8099AFC movs r0, 0x1 add sp, 0x84 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08035570: .4byte gUnknown_80E4A40 thumb_func_end sub_8035444 thumb_func_start sub_8035574 sub_8035574: push {r4,lr} ldr r1, _0803558C ldr r0, [r1] ldr r0, [r0, 0x60] adds r4, r1, 0 cmp r0, 0x4 bhi _08035654 lsls r0, 2 ldr r1, _08035590 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803558C: .4byte gUnknown_203B340 _08035590: .4byte _08035594 .align 2, 0 _08035594: .4byte _080355A8 .4byte _080355D0 .4byte _080355E8 .4byte _08035610 .4byte _08035638 _080355A8: bl sub_8099B94 lsls r0, 24 cmp r0, 0 bne _08035654 ldr r0, _080355C8 ldr r1, [r0] movs r0, 0x1 str r0, [r1, 0x60] ldr r2, _080355CC movs r0, 0x9 movs r1, 0x1E ldr r2, [r2] bl sub_8099A5C b _08035654 .align 2, 0 _080355C8: .4byte gUnknown_203B340 _080355CC: .4byte gUnknown_80E4A40 _080355D0: bl sub_8099B94 lsls r0, 24 cmp r0, 0 bne _08035654 ldr r0, _080355E4 ldr r1, [r0] movs r0, 0x2 str r0, [r1, 0x60] b _08035654 .align 2, 0 _080355E4: .4byte gUnknown_203B340 _080355E8: ldr r1, [r4] ldr r0, [r1, 0x64] cmp r0, 0 bgt _08035600 movs r0, 0x3 str r0, [r1, 0x60] ldr r2, _0803560C movs r0, 0x9 movs r1, 0x1E ldr r2, [r2] bl sub_8099AFC _08035600: ldr r1, [r4] ldr r0, [r1, 0x64] subs r0, 0x1 str r0, [r1, 0x64] b _08035654 .align 2, 0 _0803560C: .4byte gUnknown_80E4A40 _08035610: bl sub_8099B94 lsls r0, 24 cmp r0, 0 bne _08035654 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, _08035634 ldr r1, [r0] movs r0, 0x4 str r0, [r1, 0x60] b _08035654 .align 2, 0 _08035634: .4byte gUnknown_203B340 _08035638: movs r0, 0 bl sub_8099690 ldr r2, _08035650 movs r0, 0x1 movs r1, 0 ldr r2, [r2] bl sub_8099A5C movs r0, 0x3 b _08035656 .align 2, 0 _08035650: .4byte gUnknown_80E4A40 _08035654: movs r0, 0 _08035656: pop {r4} pop {r1} bx r1 thumb_func_end sub_8035574 thumb_func_start sub_803565C sub_803565C: push {r4,lr} ldr r4, _08035674 ldr r0, [r4] cmp r0, 0 beq _0803566E bl MemoryFree movs r0, 0 str r0, [r4] _0803566E: pop {r4} pop {r0} bx r0 .align 2, 0 _08035674: .4byte gUnknown_203B340 thumb_func_end sub_803565C thumb_func_start sub_8035678 sub_8035678: push {r4,lr} ldr r4, _0803569C movs r0, 0x8 movs r1, 0x8 bl MemoryAlloc str r0, [r4] movs r1, 0 str r1, [r0] str r1, [r0, 0x4] movs r0, 0 movs r1, 0x39 bl sub_80015C0 movs r0, 0x1 pop {r4} pop {r1} bx r1 .align 2, 0 _0803569C: .4byte gUnknown_203B344 thumb_func_end sub_8035678 thumb_func_start sub_80356A0 sub_80356A0: push {r4,lr} ldr r0, _080356C4 ldrh r4, [r0] ldr r3, _080356C8 ldr r2, _080356CC ldr r1, [r2] ldr r0, [r1, 0x4] lsls r0, 1 adds r0, r3 ldrh r3, [r0] ldr r0, [r1] cmp r0, 0x4 bhi _08035734 lsls r0, 2 ldr r1, _080356D0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080356C4: .4byte gUnknown_20255F0 _080356C8: .4byte gUnknown_80E5990 _080356CC: .4byte gUnknown_203B344 _080356D0: .4byte _080356D4 .align 2, 0 _080356D4: .4byte _08035728 .4byte _080356E8 .4byte _08035710 .4byte _0803574C .4byte _08035730 _080356E8: cmp r3, 0 bne _080356F4 ldr r1, [r2] movs r0, 0x4 str r0, [r1] b _08035734 _080356F4: cmp r4, r3 bne _08035700 ldr r1, [r2] movs r0, 0x2 str r0, [r1] b _08035734 _08035700: ands r3, r4 cmp r3, r4 bne _08035728 ldr r1, [r2] ldr r0, [r1, 0x4] cmp r0, 0 bne _08035734 b _0803572A _08035710: cmp r4, 0 bne _08035722 ldr r1, [r2] movs r0, 0x1 str r0, [r1] ldr r0, [r1, 0x4] adds r0, 0x1 str r0, [r1, 0x4] b _08035734 _08035722: ands r3, r4 cmp r3, r4 beq _08035734 _08035728: ldr r1, [r2] _0803572A: movs r0, 0x3 str r0, [r1] b _08035734 _08035730: movs r0, 0x3 b _0803574E _08035734: movs r0, 0 movs r1, 0x39 bl sub_8001658 cmp r0, 0 bne _08035744 movs r0, 0 b _0803574E _08035744: ldr r0, _08035754 ldr r1, [r0] movs r0, 0x3 str r0, [r1] _0803574C: movs r0, 0x2 _0803574E: pop {r4} pop {r1} bx r1 .align 2, 0 _08035754: .4byte gUnknown_203B344 thumb_func_end sub_80356A0 thumb_func_start sub_8035758 sub_8035758: push {r4,lr} ldr r4, _08035770 ldr r0, [r4] cmp r0, 0 beq _0803576A bl MemoryFree movs r0, 0 str r0, [r4] _0803576A: pop {r4} pop {r0} bx r0 .align 2, 0 _08035770: .4byte gUnknown_203B344 thumb_func_end sub_8035758 thumb_func_start InitMainMenu InitMainMenu: push {r4,r5,lr} ldr r5, _080357C8 ldr r0, [r5] cmp r0, 0 bne _08035790 movs r0, 0x40 movs r1, 0x8 bl MemoryAlloc str r0, [r5] movs r1, 0 movs r2, 0x40 bl MemoryFill8 _08035790: ldr r0, [r5] ldr r1, _080357CC str r1, [r0] movs r2, 0x1 str r2, [r0, 0x4] str r2, [r0, 0x8] adds r1, 0x23 strh r1, [r0, 0x38] movs r1, 0x1 negs r1, r1 str r1, [r0, 0x3C] adds r0, 0x2E movs r4, 0 strb r4, [r0] ldr r0, [r5] adds r0, 0x2C strb r2, [r0] ldr r0, [r5] adds r0, 0x2D strb r4, [r0] bl sub_8035DA0 ldr r0, [r5] adds r0, 0x3A strb r4, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080357C8: .4byte gUnknown_203B348 _080357CC: .4byte 0x0000ffdc thumb_func_end InitMainMenu thumb_func_start sub_80357D0 sub_80357D0: push {r4,lr} ldr r4, _080357E8 ldr r0, [r4] cmp r0, 0 beq _080357E2 bl MemoryFree movs r0, 0 str r0, [r4] _080357E2: pop {r4} pop {r0} bx r0 .align 2, 0 _080357E8: .4byte gUnknown_203B348 thumb_func_end sub_80357D0 thumb_func_start SetUpMenu SetUpMenu: push {lr} ldr r0, _08035810 ldr r0, [r0] ldr r1, [r0] ldr r0, [r0, 0x4] cmp r1, r0 bne _080357FC b _08035958 _080357FC: subs r0, 0x1 cmp r0, 0x2D bls _08035804 b _08035950 _08035804: lsls r0, 2 ldr r1, _08035814 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08035810: .4byte gUnknown_203B348 _08035814: .4byte _08035818 .align 2, 0 _08035818: .4byte _080358D0 .4byte _08035950 .4byte _08035950 .4byte _08035950 .4byte _08035950 .4byte _080358E0 .4byte _080358E0 .4byte _080358E0 .4byte _080358E0 .4byte _08035934 .4byte _0803590C .4byte _080358F0 .4byte _08035912 .4byte _08035918 .4byte _0803591E .4byte _0803594C .4byte _08035950 .4byte _08035950 .4byte _080358F6 .4byte _080358F6 .4byte _08035950 .4byte _08035950 .4byte _08035950 .4byte _08035950 .4byte _08035950 .4byte _08035950 .4byte _08035950 .4byte _08035950 .4byte _08035950 .4byte _08035950 .4byte _08035950 .4byte _08035950 .4byte _08035924 .4byte _08035924 .4byte _08035950 .4byte _08035950 .4byte _08035950 .4byte _08035950 .4byte _08035950 .4byte _08035950 .4byte _0803593A .4byte _0803593A .4byte _0803593A .4byte _0803593A .4byte _0803593A .4byte _0803593A _080358D0: bl sub_8094C14 movs r0, 0 bl sub_8099690 bl sub_8035E10 b _08035950 _080358E0: ldr r0, _080358EC ldr r0, [r0] ldr r0, [r0, 0x4] bl sub_8039254 b _08035950 .align 2, 0 _080358EC: .4byte gUnknown_203B348 _080358F0: bl sub_8036400 b _08035950 _080358F6: ldr r0, _08035908 ldr r0, [r0] ldr r0, [r0, 0x4] bl sub_8035DB4 bl sub_8036FDC b _08035950 .align 2, 0 _08035908: .4byte gUnknown_203B348 _0803590C: bl sub_803225C b _08035950 _08035912: bl sub_80398AC b _08035950 _08035918: bl sub_803A1D8 b _08035950 _0803591E: bl sub_803A1E4 b _08035950 _08035924: ldr r0, _08035930 ldr r0, [r0] ldr r0, [r0, 0x4] bl sub_8038900 b _08035950 .align 2, 0 _08035930: .4byte gUnknown_203B348 _08035934: bl sub_80382A0 b _08035950 _0803593A: ldr r0, _08035948 ldr r0, [r0] ldr r0, [r0, 0x4] bl sub_803850C b _08035950 .align 2, 0 _08035948: .4byte gUnknown_203B348 _0803594C: bl sub_803A200 _08035950: ldr r0, _0803595C ldr r1, [r0] ldr r0, [r1, 0x4] str r0, [r1] _08035958: pop {r0} bx r0 .align 2, 0 _0803595C: .4byte gUnknown_203B348 thumb_func_end SetUpMenu thumb_func_start UpdateMenu UpdateMenu: push {lr} ldr r2, _0803597C ldr r0, _08035980 ldr r0, [r0] ldr r0, [r0, 0x4] subs r0, 0x1 cmp r0, 0x2D bls _08035972 b _08035AA6 _08035972: lsls r0, 2 ldr r1, _08035984 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803597C: .4byte 0x0000ffdc _08035980: .4byte gUnknown_203B348 _08035984: .4byte _08035988 .align 2, 0 _08035988: .4byte _08035A40 .4byte _08035AA6 .4byte _08035AA6 .4byte _08035AA6 .4byte _08035AA6 .4byte _08035A46 .4byte _08035A46 .4byte _08035A46 .4byte _08035A46 .4byte _08035A8E .4byte _08035A52 .4byte _08035A4C .4byte _08035A58 .4byte _08035A5E .4byte _08035A70 .4byte _08035AA0 .4byte _08035AA6 .4byte _08035AA6 .4byte _08035AA6 .4byte _08035AA6 .4byte _08035AA6 .4byte _08035AA6 .4byte _08035AA6 .4byte _08035AA6 .4byte _08035AA6 .4byte _08035AA6 .4byte _08035AA6 .4byte _08035AA6 .4byte _08035AA6 .4byte _08035AA6 .4byte _08035AA6 .4byte _08035AA6 .4byte _08035A88 .4byte _08035A88 .4byte _08035AA6 .4byte _08035A94 .4byte _08035A94 .4byte _08035A94 .4byte _08035A94 .4byte _08035A94 .4byte _08035A9A .4byte _08035A9A .4byte _08035A9A .4byte _08035A9A .4byte _08035A9A .4byte _08035A9A _08035A40: bl sub_8035EEC b _08035AA4 _08035A46: bl sub_803941C b _08035AA4 _08035A4C: bl sub_8036448 b _08035A62 _08035A52: bl sub_8032318 b _08035A62 _08035A58: bl sub_8039928 b _08035A62 _08035A5E: bl sub_803A1DC _08035A62: movs r2, 0x1 cmp r0, 0x3 beq _08035AA6 ldr r2, _08035A6C b _08035AA6 .align 2, 0 _08035A6C: .4byte 0x0000ffdc _08035A70: bl sub_803A1E8 movs r2, 0x5 cmp r0, 0x3 beq _08035AA6 ldr r2, _08035A84 cmp r0, 0x2 bne _08035AA6 movs r2, 0x1 b _08035AA6 .align 2, 0 _08035A84: .4byte 0x0000ffdc _08035A88: bl sub_8038A90 b _08035AA4 _08035A8E: bl sub_80382C0 b _08035AA4 _08035A94: bl sub_80383D4 b _08035AA4 _08035A9A: bl sub_8038630 b _08035AA4 _08035AA0: bl sub_803A2A4 _08035AA4: adds r2, r0, 0 _08035AA6: ldr r0, _08035AB8 cmp r2, r0 beq _08035AB2 ldr r0, _08035ABC ldr r0, [r0] str r2, [r0, 0x4] _08035AB2: adds r0, r2, 0 pop {r1} bx r1 .align 2, 0 _08035AB8: .4byte 0x0000ffdc _08035ABC: .4byte gUnknown_203B348 thumb_func_end UpdateMenu thumb_func_start CleanUpMenu CleanUpMenu: push {lr} ldr r0, _08035AE4 ldr r0, [r0] ldr r1, [r0, 0x8] ldr r0, [r0, 0x4] cmp r1, r0 bne _08035AD0 b _08035BF8 _08035AD0: subs r0, r1, 0x1 cmp r0, 0x2D bls _08035AD8 b _08035BF0 _08035AD8: lsls r0, 2 ldr r1, _08035AE8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08035AE4: .4byte gUnknown_203B348 _08035AE8: .4byte _08035AEC .align 2, 0 _08035AEC: .4byte _08035BA4 .4byte _08035BF0 .4byte _08035BF0 .4byte _08035BF0 .4byte _08035BF0 .4byte _08035BAA .4byte _08035BAA .4byte _08035BAA .4byte _08035BAA .4byte _08035BDA .4byte _08035BBC .4byte _08035BB0 .4byte _08035BC2 .4byte _08035BC8 .4byte _08035BCE .4byte _08035BEC .4byte _08035BF0 .4byte _08035BF0 .4byte _08035BB6 .4byte _08035BB6 .4byte _08035BF0 .4byte _08035BF0 .4byte _08035BF0 .4byte _08035BF0 .4byte _08035BF0 .4byte _08035BF0 .4byte _08035BF0 .4byte _08035BF0 .4byte _08035BF0 .4byte _08035BF0 .4byte _08035BF0 .4byte _08035BF0 .4byte _08035BD4 .4byte _08035BD4 .4byte _08035BF0 .4byte _08035BE0 .4byte _08035BE0 .4byte _08035BE0 .4byte _08035BE0 .4byte _08035BE0 .4byte _08035BE6 .4byte _08035BE6 .4byte _08035BE6 .4byte _08035BE6 .4byte _08035BE6 .4byte _08035BE6 _08035BA4: bl sub_8035EC0 b _08035BF0 _08035BAA: bl sub_80393F0 b _08035BF0 _08035BB0: bl sub_8036B04 b _08035BF0 _08035BB6: bl sub_80370D4 b _08035BF0 _08035BBC: bl sub_80327E4 b _08035BF0 _08035BC2: bl sub_80399E4 b _08035BF0 _08035BC8: bl nullsub_55 b _08035BF0 _08035BCE: bl sub_803A1EC b _08035BF0 _08035BD4: bl sub_8038A5C b _08035BF0 _08035BDA: bl sub_80382AC b _08035BF0 _08035BE0: bl sub_80383A8 b _08035BF0 _08035BE6: bl sub_8038604 b _08035BF0 _08035BEC: bl sub_803A278 _08035BF0: ldr r0, _08035BFC ldr r1, [r0] ldr r0, [r1, 0x4] str r0, [r1, 0x8] _08035BF8: pop {r0} bx r0 .align 2, 0 _08035BFC: .4byte gUnknown_203B348 thumb_func_end CleanUpMenu thumb_func_start sub_8035C00 sub_8035C00: ldr r1, _08035C0C ldr r1, [r1] ldr r0, [r0] str r0, [r1, 0x2C] bx lr .align 2, 0 _08035C0C: .4byte gUnknown_203B348 thumb_func_end sub_8035C00 thumb_func_start sub_8035C10 sub_8035C10: ldr r0, _08035C18 ldr r0, [r0] adds r0, 0x2C bx lr .align 2, 0 _08035C18: .4byte gUnknown_203B348 thumb_func_end sub_8035C10 thumb_func_start sub_8035C1C sub_8035C1C: ldr r2, _08035C38 ldr r0, [r2] adds r0, 0x2E movs r3, 0 strb r3, [r0] ldr r0, [r2] adds r0, 0x2C movs r1, 0x1 strb r1, [r0] ldr r0, [r2] adds r0, 0x2D strb r3, [r0] bx lr .align 2, 0 _08035C38: .4byte gUnknown_203B348 thumb_func_end sub_8035C1C thumb_func_start SetMenuItems SetMenuItems: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 adds r6, r0, 0 adds r4, r1, 0 adds r5, r2, 0 ldr r0, [sp, 0x24] lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r0, r5, 1 adds r0, r5 lsls r0, 3 adds r0, r4 ldm r3!, {r1,r2,r7} stm r0!, {r1,r2,r7} ldm r3!, {r1,r2,r7} stm r0!, {r1,r2,r7} bl sub_8004914 adds r0, r4, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C mov r0, r8 cmp r0, 0 beq _08035C90 lsls r4, r5, 2 adds r0, r4, r5 lsls r0, 4 adds r0, r6, r0 ldr r1, [sp, 0x28] str r1, [sp] str r5, [sp, 0x4] ldr r1, [sp, 0x20] movs r2, 0 movs r3, 0 bl sub_8012D60 b _08035CA8 _08035C90: lsls r4, r5, 2 adds r0, r4, r5 lsls r0, 4 adds r0, r6, r0 mov r1, r8 str r1, [sp] str r5, [sp, 0x4] ldr r1, [sp, 0x20] movs r2, 0 movs r3, 0 bl sub_8012E04 _08035CA8: adds r0, r4, r5 lsls r0, 4 adds r0, r6 adds r0, 0x4C movs r1, 0x1 strb r1, [r0] add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end SetMenuItems thumb_func_start sub_8035CC0 sub_8035CC0: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 bl sub_8006518 lsls r1, r4, 1 adds r1, r4 lsls r1, 3 adds r1, r5 ldr r0, _08035CF0 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} bl sub_8004914 adds r0, r5, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08035CF0: .4byte gUnknown_80E59A8 thumb_func_end sub_8035CC0 thumb_func_start sub_8035CF4 sub_8035CF4: push {lr} adds r3, r0, 0 lsls r0, r1, 2 adds r0, r1 lsls r0, 4 adds r0, r3 adds r1, r0, 0 adds r1, 0x4C strb r2, [r1] adds r2, r0, 0 adds r2, 0x4D movs r1, 0x1 strb r1, [r2] subs r1, 0x2 str r1, [r0, 0x48] bl sub_8012EBC pop {r0} bx r0 thumb_func_end sub_8035CF4 thumb_func_start sub_8035D1C sub_8035D1C: ldr r0, _08035D28 ldr r1, [r0] ldr r0, _08035D2C strh r0, [r1, 0x38] bx lr .align 2, 0 _08035D28: .4byte gUnknown_203B348 _08035D2C: .4byte 0x0000ffff thumb_func_end sub_8035D1C thumb_func_start sub_8035D30 sub_8035D30: ldr r1, _08035D38 ldr r1, [r1] strh r0, [r1, 0x38] bx lr .align 2, 0 _08035D38: .4byte gUnknown_203B348 thumb_func_end sub_8035D30 thumb_func_start sub_8035D3C sub_8035D3C: ldr r0, _08035D48 ldr r0, [r0] movs r1, 0x38 ldrsh r0, [r0, r1] bx lr .align 2, 0 _08035D48: .4byte gUnknown_203B348 thumb_func_end sub_8035D3C thumb_func_start sub_8035D4C sub_8035D4C: ldr r0, _08035D54 ldr r0, [r0] bx lr .align 2, 0 _08035D54: .4byte gUnknown_203B348 thumb_func_end sub_8035D4C thumb_func_start sub_8035D58 sub_8035D58: ldr r0, _08035D64 ldr r1, [r0] movs r0, 0x1 negs r0, r0 str r0, [r1, 0x3C] bx lr .align 2, 0 _08035D64: .4byte gUnknown_203B348 thumb_func_end sub_8035D58 thumb_func_start sub_8035D68 sub_8035D68: ldr r1, _08035D70 ldr r1, [r1] str r0, [r1, 0x3C] bx lr .align 2, 0 _08035D70: .4byte gUnknown_203B348 thumb_func_end sub_8035D68 thumb_func_start sub_8035D74 sub_8035D74: ldr r0, _08035D7C ldr r0, [r0] ldr r0, [r0, 0x3C] bx lr .align 2, 0 _08035D7C: .4byte gUnknown_203B348 thumb_func_end sub_8035D74 thumb_func_start sub_8035D80 sub_8035D80: ldr r1, _08035D90 ldr r2, [r1] ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [r2, 0x30] str r1, [r2, 0x34] bx lr .align 2, 0 _08035D90: .4byte gUnknown_203B348 thumb_func_end sub_8035D80 thumb_func_start sub_8035D94 sub_8035D94: ldr r0, _08035D9C ldr r0, [r0] adds r0, 0x30 bx lr .align 2, 0 _08035D9C: .4byte gUnknown_203B348 thumb_func_end sub_8035D94 thumb_func_start sub_8035DA0 sub_8035DA0: ldr r2, _08035DB0 ldr r0, [r2] adds r0, 0x30 movs r1, 0 strb r1, [r0] ldr r0, [r2] str r1, [r0, 0x34] bx lr .align 2, 0 _08035DB0: .4byte gUnknown_203B348 thumb_func_end sub_8035DA0 thumb_func_start sub_8035DB4 sub_8035DB4: push {lr} movs r1, 0x8 subs r0, 0x13 cmp r0, 0x7 bhi _08035E0A lsls r0, 2 ldr r1, _08035DC8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08035DC8: .4byte _08035DCC .align 2, 0 _08035DCC: .4byte _08035DEC .4byte _08035DF0 .4byte _08035DF4 .4byte _08035DF8 .4byte _08035DFC .4byte _08035E00 .4byte _08035E04 .4byte _08035E08 _08035DEC: movs r1, 0 b _08035E0A _08035DF0: movs r1, 0x1 b _08035E0A _08035DF4: movs r1, 0x2 b _08035E0A _08035DF8: movs r1, 0x3 b _08035E0A _08035DFC: movs r1, 0x4 b _08035E0A _08035E00: movs r1, 0x5 b _08035E0A _08035E04: movs r1, 0x6 b _08035E0A _08035E08: movs r1, 0x7 _08035E0A: adds r0, r1, 0 pop {r1} bx r1 thumb_func_end sub_8035DB4 thumb_func_start sub_8035E10 sub_8035E10: push {r4-r7,lr} mov r7, r8 push {r7} ldr r5, _08035EB8 ldr r0, [r5] cmp r0, 0 bne _08035E34 movs r4, 0xD4 lsls r4, 1 adds r0, r4, 0 movs r1, 0x8 bl MemoryAlloc str r0, [r5] movs r1, 0 adds r2, r4, 0 bl MemoryFill8 _08035E34: mov r12, r5 movs r0, 0xA2 lsls r0, 1 mov r8, r0 ldr r4, _08035EBC movs r3, 0 movs r2, 0x3 _08035E42: mov r5, r12 ldr r1, [r5] adds r1, r3 add r1, r8 adds r0, r4, 0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} adds r3, 0x18 subs r2, 0x1 cmp r2, 0 bge _08035E42 bl sub_8004914 ldr r4, _08035EB8 ldr r0, [r4] movs r6, 0xA2 lsls r6, 1 adds r0, r6 movs r1, 0x1 movs r2, 0x1 bl sub_800641C bl sub_803628C ldr r0, [r4] movs r7, 0xD2 lsls r7, 1 adds r0, r7 movs r1, 0x1 negs r1, r1 str r1, [r0] bl SetMainMenuType lsls r0, 24 cmp r0, 0 beq _08035E9A ldr r0, [r4] adds r0, 0x4 movs r1, 0x2 movs r2, 0 bl sub_8035CF4 _08035E9A: ldr r0, [r4] adds r0, 0x4 movs r1, 0 movs r2, 0x1 bl sub_8035CF4 ldr r1, [r4] movs r0, 0x1 str r0, [r1] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08035EB8: .4byte gUnknown_203B34C _08035EBC: .4byte gUnknown_80E59C8 thumb_func_end sub_8035E10 thumb_func_start sub_8035EC0 sub_8035EC0: push {r4,lr} bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, _08035EE8 ldr r0, [r4] cmp r0, 0 beq _08035EE0 bl MemoryFree movs r0, 0 str r0, [r4] _08035EE0: pop {r4} pop {r0} bx r0 .align 2, 0 _08035EE8: .4byte gUnknown_203B34C thumb_func_end sub_8035EC0 thumb_func_start sub_8035EEC sub_8035EEC: push {r4-r6,lr} sub sp, 0x4 ldr r6, _08035F64 str r6, [sp] ldr r4, _08035F68 ldr r0, [r4] ldr r5, [r0] cmp r5, 0xC beq _08035FB8 cmp r5, 0xC bls _08035F04 b _0803601A _08035F04: cmp r5, 0x1 beq _08035F0A b _0803601A _08035F0A: adds r0, 0xA4 bl sub_8012FD8 ldr r0, [r4] adds r0, 0x4 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _08035F28 ldr r0, [r4] adds r0, 0x4 mov r1, sp bl sub_8013114 _08035F28: bl SetMainMenuType lsls r0, 24 cmp r0, 0 beq _08035F4A ldr r0, [r4] adds r0, 0x4 movs r1, 0 movs r2, 0x1 bl sub_8035CF4 ldr r0, [r4] adds r0, 0x4 movs r1, 0x2 movs r2, 0 bl sub_8035CF4 _08035F4A: ldr r1, [sp] cmp r1, 0xC beq _08035FA8 cmp r1, 0xC bhi _08035F6C cmp r1, 0x3 beq _08035FAC cmp r1, 0x3 bcc _0803601A cmp r1, 0x6 bcc _0803601A b _08035FAC .align 2, 0 _08035F64: .4byte 0x0000ffdc _08035F68: .4byte gUnknown_203B34C _08035F6C: cmp r1, r6 beq _08035FF2 cmp r1, r6 bhi _08035F7A cmp r1, 0x10 bhi _0803601A b _08035FAC _08035F7A: ldr r0, _08035FA4 cmp r1, r0 bne _0803601A ldr r0, [r4] str r5, [r0] str r6, [sp] bl sub_8004914 ldr r0, [r4] adds r0, 0x4 movs r1, 0 movs r2, 0x1 bl sub_8035CF4 ldr r0, [r4] adds r0, 0x4 movs r1, 0x2 movs r2, 0 bl sub_8035CF4 b _0803601A .align 2, 0 _08035FA4: .4byte 0x0000ffdd _08035FA8: bl sub_8035DA0 _08035FAC: ldr r1, _08035FB4 ldr r0, [sp] str r0, [r1] b _0803601A .align 2, 0 _08035FB4: .4byte gUnknown_203B350 _08035FB8: adds r0, 0x54 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _08035FCE ldr r0, [r4] adds r0, 0x54 mov r1, sp bl sub_8013114 _08035FCE: ldr r1, [sp] cmp r1, 0x12 beq _08036008 cmp r1, 0x12 bhi _08035FDE cmp r1, 0x11 beq _08035FFC b _0803601A _08035FDE: cmp r1, r6 beq _08036018 ldr r0, _08035FF8 cmp r1, r0 bne _0803601A bl sub_803623C ldr r1, [r4] movs r0, 0x1 str r0, [r1] _08035FF2: str r6, [sp] b _0803601A .align 2, 0 _08035FF8: .4byte 0x0000ffdd _08035FFC: ldr r0, _08036004 str r1, [r0] str r5, [sp] b _0803601A .align 2, 0 _08036004: .4byte gUnknown_203B354 _08036008: ldr r0, _08036014 str r1, [r0] movs r0, 0x14 str r0, [sp] b _0803601A .align 2, 0 _08036014: .4byte gUnknown_203B354 _08036018: str r1, [sp] _0803601A: ldr r0, [sp] add sp, 0x4 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8035EEC thumb_func_start SetMainMenuType SetMainMenuType: push {r4-r6,lr} sub sp, 0x10 ldr r6, _08036048 ldr r2, [r6] ldr r0, [r2, 0x8] movs r3, 0x30 ldrsh r1, [r2, r3] lsls r1, 3 adds r1, r0 ldr r5, [r1, 0x4] movs r0, 0xD2 lsls r0, 1 adds r1, r2, r0 ldr r0, [r1] cmp r0, r5 bne _0803604C movs r0, 0 b _08036226 .align 2, 0 _08036048: .4byte gUnknown_203B34C _0803604C: str r5, [r1] movs r4, 0xA2 lsls r4, 1 adds r0, r2, r4 movs r1, 0x2 bl sub_8035CC0 ldr r0, [r6] adds r0, r4 movs r1, 0x3 bl sub_8035CC0 subs r0, r5, 0x3 cmp r0, 0xD bls _0803606C b _08036224 _0803606C: lsls r0, 2 ldr r1, _08036078 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08036078: .4byte _0803607C .align 2, 0 _0803607C: .4byte _08036114 .4byte _08036224 .4byte _08036224 .4byte _080360F4 .4byte _08036134 .4byte _08036154 .4byte _08036224 .4byte _08036174 .4byte _08036194 .4byte _080361B4 .4byte _080360D4 .4byte _080361D4 .4byte _080360B4 .4byte _08036204 _080360B4: ldr r0, _080360C8 ldr r1, [r0] adds r0, r1, 0x4 movs r2, 0xA2 lsls r2, 1 adds r1, r2 ldr r3, _080360CC ldr r2, _080360D0 b _080361E4 .align 2, 0 _080360C8: .4byte gUnknown_203B34C _080360CC: .4byte gUnknown_80E5CB4 _080360D0: .4byte gUnknown_80E6030 _080360D4: ldr r0, _080360E8 ldr r1, [r0] adds r0, r1, 0x4 movs r3, 0xA2 lsls r3, 1 adds r1, r3 ldr r3, _080360EC ldr r2, _080360F0 b _080361E4 .align 2, 0 _080360E8: .4byte gUnknown_203B34C _080360EC: .4byte gUnknown_80E5CB4 _080360F0: .4byte gUnknown_80E5F80 _080360F4: ldr r0, _08036108 ldr r1, [r0] adds r0, r1, 0x4 movs r2, 0xA2 lsls r2, 1 adds r1, r2 ldr r3, _0803610C ldr r2, _08036110 b _080361E4 .align 2, 0 _08036108: .4byte gUnknown_203B34C _0803610C: .4byte gUnknown_80E5CB4 _08036110: .4byte gUnknown_80E5F1C _08036114: ldr r0, _08036128 ldr r1, [r0] adds r0, r1, 0x4 movs r3, 0xA2 lsls r3, 1 adds r1, r3 ldr r3, _0803612C ldr r2, _08036130 b _080361E4 .align 2, 0 _08036128: .4byte gUnknown_203B34C _0803612C: .4byte gUnknown_80E5CB4 _08036130: .4byte gUnknown_80E5CCC _08036134: ldr r0, _08036148 ldr r1, [r0] adds r0, r1, 0x4 movs r2, 0xA2 lsls r2, 1 adds r1, r2 ldr r3, _0803614C ldr r2, _08036150 b _080361E4 .align 2, 0 _08036148: .4byte gUnknown_203B34C _0803614C: .4byte gUnknown_80E5CB4 _08036150: .4byte gUnknown_80E5DA0 _08036154: ldr r0, _08036168 ldr r1, [r0] adds r0, r1, 0x4 movs r3, 0xA2 lsls r3, 1 adds r1, r3 ldr r3, _0803616C ldr r2, _08036170 b _080361E4 .align 2, 0 _08036168: .4byte gUnknown_203B34C _0803616C: .4byte gUnknown_80E5CB4 _08036170: .4byte gUnknown_80E5DF0 _08036174: ldr r0, _08036188 ldr r1, [r0] adds r0, r1, 0x4 movs r2, 0xA2 lsls r2, 1 adds r1, r2 ldr r3, _0803618C ldr r2, _08036190 b _080361E4 .align 2, 0 _08036188: .4byte gUnknown_203B34C _0803618C: .4byte gUnknown_80E5CB4 _08036190: .4byte gUnknown_80E5D0C _08036194: ldr r0, _080361A8 ldr r1, [r0] adds r0, r1, 0x4 movs r3, 0xA2 lsls r3, 1 adds r1, r3 ldr r3, _080361AC ldr r2, _080361B0 b _080361E4 .align 2, 0 _080361A8: .4byte gUnknown_203B34C _080361AC: .4byte gUnknown_80E5CB4 _080361B0: .4byte gUnknown_80E5E5C _080361B4: ldr r0, _080361C8 ldr r1, [r0] adds r0, r1, 0x4 movs r2, 0xA2 lsls r2, 1 adds r1, r2 ldr r3, _080361CC ldr r2, _080361D0 b _080361E4 .align 2, 0 _080361C8: .4byte gUnknown_203B34C _080361CC: .4byte gUnknown_80E5CB4 _080361D0: .4byte gUnknown_80E5EBC _080361D4: ldr r0, _080361F8 ldr r1, [r0] adds r0, r1, 0x4 movs r3, 0xA2 lsls r3, 1 adds r1, r3 ldr r3, _080361FC ldr r2, _08036200 _080361E4: str r2, [sp] movs r2, 0 str r2, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] movs r2, 0x2 bl SetMenuItems b _08036224 .align 2, 0 _080361F8: .4byte gUnknown_203B34C _080361FC: .4byte gUnknown_80E5CB4 _08036200: .4byte gUnknown_80E5FCC _08036204: ldr r0, _08036230 ldr r1, [r0] adds r0, r1, 0x4 movs r2, 0xA2 lsls r2, 1 adds r1, r2 ldr r3, _08036234 ldr r2, _08036238 str r2, [sp] movs r2, 0 str r2, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] movs r2, 0x2 bl SetMenuItems _08036224: movs r0, 0x1 _08036226: add sp, 0x10 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08036230: .4byte gUnknown_203B34C _08036234: .4byte gUnknown_80E5CB4 _08036238: .4byte gUnknown_80E5D48 thumb_func_end SetMainMenuType thumb_func_start sub_803623C sub_803623C: push {r4,lr} ldr r4, _08036288 ldr r0, [r4] movs r1, 0xA2 lsls r1, 1 adds r0, r1 movs r1, 0x1 bl sub_8035CC0 bl sub_803628C ldr r0, [r4] movs r1, 0xD2 lsls r1, 1 adds r0, r1 movs r1, 0x1 negs r1, r1 str r1, [r0] bl SetMainMenuType lsls r0, 24 cmp r0, 0 beq _08036276 ldr r0, [r4] adds r0, 0x4 movs r1, 0x2 movs r2, 0 bl sub_8035CF4 _08036276: ldr r0, [r4] adds r0, 0x4 movs r1, 0 movs r2, 0x1 bl sub_8035CF4 pop {r4} pop {r0} bx r0 .align 2, 0 _08036288: .4byte gUnknown_203B34C thumb_func_end sub_803623C thumb_func_start sub_803628C sub_803628C: push {r4,lr} sub sp, 0x10 bl sub_8011C34 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _0803629E b _080363A4 _0803629E: movs r0, 0x1 bl sub_8095324 cmp r0, 0 bne _08036344 movs r0, 0x7 bl sub_8095324 cmp r0, 0 beq _080362FC bl sub_803D0D8 lsls r0, 24 cmp r0, 0 beq _080362DC ldr r0, _080362D0 ldr r1, [r0] adds r0, r1, 0x4 movs r2, 0xA2 lsls r2, 1 adds r1, r2 ldr r3, _080362D4 ldr r2, _080362D8 b _0803637C .align 2, 0 _080362D0: .4byte gUnknown_203B34C _080362D4: .4byte gUnknown_80E5A78 _080362D8: .4byte gUnknown_80E5C18 _080362DC: ldr r0, _080362F0 ldr r1, [r0] adds r0, r1, 0x4 movs r2, 0xA2 lsls r2, 1 adds r1, r2 ldr r3, _080362F4 ldr r2, _080362F8 b _0803637C .align 2, 0 _080362F0: .4byte gUnknown_203B34C _080362F4: .4byte gUnknown_80E5BC4 _080362F8: .4byte gUnknown_80E5BDC _080362FC: bl sub_803D0D8 lsls r0, 24 cmp r0, 0 beq _08036324 ldr r0, _08036318 ldr r1, [r0] adds r0, r1, 0x4 movs r2, 0xA2 lsls r2, 1 adds r1, r2 ldr r3, _0803631C ldr r2, _08036320 b _0803637C .align 2, 0 _08036318: .4byte gUnknown_203B34C _0803631C: .4byte gUnknown_80E5A78 _08036320: .4byte gUnknown_80E5AFC _08036324: ldr r0, _08036338 ldr r1, [r0] adds r0, r1, 0x4 movs r2, 0xA2 lsls r2, 1 adds r1, r2 ldr r3, _0803633C ldr r2, _08036340 b _0803637C .align 2, 0 _08036338: .4byte gUnknown_203B34C _0803633C: .4byte gUnknown_80E5A60 _08036340: .4byte gUnknown_80E5A90 _08036344: bl sub_803D0D8 lsls r0, 24 cmp r0, 0 beq _0803636C ldr r0, _08036360 ldr r1, [r0] adds r0, r1, 0x4 movs r2, 0xA2 lsls r2, 1 adds r1, r2 ldr r3, _08036364 ldr r2, _08036368 b _0803637C .align 2, 0 _08036360: .4byte gUnknown_203B34C _08036364: .4byte gUnknown_80E5A78 _08036368: .4byte gUnknown_80E5B8C _0803636C: ldr r0, _08036394 ldr r1, [r0] adds r0, r1, 0x4 movs r2, 0xA2 lsls r2, 1 adds r1, r2 ldr r3, _08036398 ldr r2, _0803639C _0803637C: str r2, [sp] movs r4, 0x1 str r4, [sp, 0x4] ldr r2, _080363A0 ldr r2, [r2] str r2, [sp, 0x8] str r4, [sp, 0xC] movs r2, 0 bl SetMenuItems b _080363C8 .align 2, 0 _08036394: .4byte gUnknown_203B34C _08036398: .4byte gUnknown_80E5B34 _0803639C: .4byte gUnknown_80E5B4C _080363A0: .4byte gUnknown_203B350 _080363A4: ldr r0, _080363D0 ldr r1, [r0] adds r0, r1, 0x4 movs r2, 0xA2 lsls r2, 1 adds r1, r2 ldr r3, _080363D4 ldr r2, _080363D8 str r2, [sp] movs r4, 0x1 str r4, [sp, 0x4] ldr r2, _080363DC ldr r2, [r2] str r2, [sp, 0x8] str r4, [sp, 0xC] movs r2, 0 bl SetMenuItems _080363C8: add sp, 0x10 pop {r4} pop {r0} bx r0 .align 2, 0 _080363D0: .4byte gUnknown_203B34C _080363D4: .4byte gUnknown_80E59E0 _080363D8: .4byte gUnknown_80E59F8 _080363DC: .4byte gUnknown_203B350 thumb_func_end sub_803628C thumb_func_start sub_80363E0 sub_80363E0: push {lr} ldr r0, _080363F4 ldr r0, [r0] cmp r0, 0 beq _080363F8 ldr r0, [r0] cmp r0, 0xC beq _080363F8 movs r0, 0x1 b _080363FA .align 2, 0 _080363F4: .4byte gUnknown_203B34C _080363F8: movs r0, 0 _080363FA: pop {r1} bx r1 thumb_func_end sub_80363E0 thumb_func_start sub_8036400 sub_8036400: push {r4,r5,lr} bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r5, _08036444 movs r4, 0xE8 lsls r4, 2 adds r0, r4, 0 movs r1, 0x8 bl MemoryAlloc str r0, [r5] movs r1, 0 adds r2, r4, 0 bl MemoryFill8 bl sub_8035C1C bl sub_8035DA0 ldr r1, [r5] movs r0, 0x13 str r0, [r1, 0x4] movs r0, 0 bl sub_8036FC4 movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08036444: .4byte gUnknown_203B358 thumb_func_end sub_8036400 thumb_func_start sub_8036448 sub_8036448: push {lr} ldr r0, _08036460 ldr r0, [r0] ldr r0, [r0] cmp r0, 0x12 bhi _08036524 lsls r0, 2 ldr r1, _08036464 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08036460: .4byte gUnknown_203B358 _08036464: .4byte _08036468 .align 2, 0 _08036468: .4byte _080364B4 .4byte _080364BA .4byte _080364C0 .4byte _080364C6 .4byte _080364D2 .4byte _080364CC .4byte _080364D8 .4byte _080364DE .4byte _080364E4 .4byte _080364F0 .4byte _080364F6 .4byte _080364FC .4byte _08036502 .4byte _08036514 .4byte _08036508 .4byte _080364EA .4byte _0803650E .4byte _0803651A .4byte _08036520 _080364B4: bl sub_803652C b _08036524 _080364BA: bl sub_8036590 b _08036524 _080364C0: bl sub_80365AC b _08036524 _080364C6: bl sub_8036674 b _08036524 _080364CC: bl sub_8036728 b _08036524 _080364D2: bl sub_8036788 b _08036524 _080364D8: bl sub_8036830 b _08036524 _080364DE: bl sub_803689C b _08036524 _080364E4: bl sub_80368D4 b _08036524 _080364EA: bl sub_8036A7C b _08036524 _080364F0: bl sub_8036934 b _08036524 _080364F6: bl sub_8036950 b _08036524 _080364FC: bl sub_8036AA4 b _08036524 _08036502: bl sub_80369FC b _08036524 _08036508: bl sub_8036A34 b _08036524 _0803650E: bl sub_8036A54 b _08036524 _08036514: bl sub_8036A18 b _08036524 _0803651A: bl sub_8036ADC b _08036524 _08036520: movs r0, 0x3 b _08036526 _08036524: movs r0, 0 _08036526: pop {r1} bx r1 thumb_func_end sub_8036448 thumb_func_start sub_803652C sub_803652C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 adds r1, r0, 0 cmp r1, 0 bne _0803658A ldr r2, [sp] cmp r2, 0x1 beq _08036556 cmp r2, 0x1 bgt _0803654C cmp r2, 0 beq _08036584 b _0803658A _0803654C: cmp r2, 0x2 beq _0803656C cmp r2, 0x7 beq _08036584 b _0803658A _08036556: ldr r0, _08036568 ldr r0, [r0] str r1, [r0, 0x8] str r2, [r0, 0x10] movs r0, 0x1 bl sub_8036FC4 b _0803658A .align 2, 0 _08036568: .4byte gUnknown_203B358 _0803656C: ldr r0, _08036580 ldr r1, [r0] movs r0, 0x1 str r0, [r1, 0x8] str r2, [r1, 0x10] movs r0, 0x7 bl sub_8036FC4 b _0803658A .align 2, 0 _08036580: .4byte gUnknown_203B358 _08036584: movs r0, 0x12 bl sub_8036FC4 _0803658A: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_803652C thumb_func_start sub_8036590 sub_8036590: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080365A4 movs r0, 0x2 bl sub_8036FC4 _080365A4: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8036590 thumb_func_start sub_80365AC sub_80365AC: push {r4-r7,lr} mov r7, r8 push {r7} ldr r4, _080365E8 ldr r0, [r4] ldr r7, _080365EC adds r0, r7 movs r1, 0 strb r1, [r0] ldr r0, [r4] ldr r6, _080365F0 adds r0, r6 movs r5, 0x1 strb r5, [r0] ldr r0, [r4] movs r2, 0x97 lsls r2, 2 mov r8, r2 add r0, r8 strb r1, [r0] movs r0, 0x1 bl sub_801CA08 cmp r0, 0x3 beq _08036606 cmp r0, 0x3 bhi _080365F4 cmp r0, 0x2 beq _080365FA b _0803666A .align 2, 0 _080365E8: .4byte gUnknown_203B358 _080365EC: .4byte 0x0000025e _080365F0: .4byte 0x0000025d _080365F4: cmp r0, 0x4 beq _0803662C b _0803666A _080365FA: bl sub_801CBB8 movs r0, 0 bl sub_8036FC4 b _0803666A _08036606: bl sub_801CB24 ldr r1, [r4] ldr r2, _08036624 adds r1, r2 strb r0, [r1] ldr r0, [r4] ldr r1, _08036628 adds r0, r1 strb r5, [r0] movs r0, 0x3 bl sub_8036FC4 b _0803666A .align 2, 0 _08036624: .4byte 0x0000025e _08036628: .4byte 0x0000025d _0803662C: ldr r1, [r4] movs r0, 0x2 str r0, [r1, 0x4] bl sub_801CB24 ldr r1, [r4] adds r1, r7 strb r0, [r1] ldr r0, [r4] adds r0, r6 strb r5, [r0] ldr r0, [r4] movs r2, 0xF2 lsls r2, 1 adds r0, r2 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] add r0, r8 bl sub_801B3C0 movs r0, 0x5 bl sub_8036FC4 _0803666A: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80365AC thumb_func_start sub_8036674 sub_8036674: push {r4,lr} sub sp, 0x4 movs r0, 0x1 negs r0, r0 str r0, [sp] movs r0, 0 bl sub_801CA08 ldr r4, _080366B8 ldr r0, [r4] movs r1, 0x9A lsls r1, 1 adds r0, r1 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _080366A6 ldr r0, [r4] movs r1, 0x9A lsls r1, 1 adds r0, r1 mov r1, sp bl sub_8013114 _080366A6: ldr r0, [sp] cmp r0, 0x3 beq _080366C6 cmp r0, 0x3 bgt _080366BC cmp r0, 0 beq _08036700 b _0803671A .align 2, 0 _080366B8: .4byte gUnknown_203B358 _080366BC: cmp r0, 0x4 beq _080366CE cmp r0, 0x7 beq _08036700 b _0803671A _080366C6: movs r0, 0x4 bl sub_8036FC4 b _0803671A _080366CE: ldr r0, [r4] movs r1, 0x13 str r1, [r0, 0x4] movs r1, 0xF2 lsls r1, 1 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] movs r1, 0x97 lsls r1, 2 adds r0, r1 bl sub_801B3C0 movs r0, 0x5 bl sub_8036FC4 b _0803671A _08036700: ldr r0, _08036724 ldr r0, [r0] movs r1, 0xC2 lsls r1, 1 adds r0, r1 movs r1, 0x3 bl sub_8035CC0 bl sub_801CCD8 movs r0, 0x2 bl sub_8036FC4 _0803671A: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08036724: .4byte gUnknown_203B358 thumb_func_end sub_8036674 thumb_func_start sub_8036728 sub_8036728: push {r4,lr} bl sub_801B410 cmp r0, 0x1 beq _08036780 cmp r0, 0x1 bcc _08036780 cmp r0, 0x3 bhi _08036780 bl sub_801B450 bl sub_8004914 ldr r4, _08036778 ldr r0, [r4] movs r1, 0xF2 lsls r1, 1 adds r0, r1 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x1 bl sub_801CB5C ldr r4, [r4] ldr r0, [r4, 0x4] cmp r0, 0x13 bne _0803677C adds r0, r4, 0 adds r0, 0x44 movs r1, 0x3 movs r2, 0x1 bl sub_8035CF4 movs r0, 0x3 bl sub_8036FC4 b _08036780 .align 2, 0 _08036778: .4byte gUnknown_203B358 _0803677C: bl sub_8036FC4 _08036780: pop {r4} pop {r0} bx r0 thumb_func_end sub_8036728 thumb_func_start sub_8036788 sub_8036788: push {r4,lr} ldr r4, _080367B8 ldr r0, [r4] movs r1, 0x9A lsls r1, 1 adds r0, r1 bl sub_8012FD8 movs r0, 0 bl sub_801CA08 ldr r0, [r4] adds r0, 0x14 bl sub_8013BBC cmp r0, 0x1 beq _080367BC cmp r0, 0x1 bcc _08036824 cmp r0, 0x2 beq _080367D2 cmp r0, 0x3 beq _080367F8 b _08036824 .align 2, 0 _080367B8: .4byte gUnknown_203B358 _080367BC: bl sub_801CCD8 ldr r0, [r4] adds r0, 0x44 movs r1, 0x3 movs r2, 0 bl sub_8035CF4 bl sub_8036F30 b _08036824 _080367D2: ldr r0, [r4] movs r2, 0xC2 lsls r2, 1 adds r0, r2 movs r1, 0x2 bl sub_8035CC0 bl sub_801CCD8 ldr r0, [r4] adds r0, 0x44 movs r1, 0x3 movs r2, 0x1 bl sub_8035CF4 movs r0, 0x3 bl sub_8036FC4 b _08036824 _080367F8: ldr r0, [r4] ldr r1, [r0, 0x14] ldr r2, _0803682C adds r0, r2 strb r1, [r0] ldr r0, [r4] adds r2, 0x1 adds r1, r0, r2 ldrb r1, [r1] subs r2, 0xA adds r0, r2 strb r1, [r0] ldr r0, [r4] adds r2, 0x4 adds r1, r0, r2 ldr r0, [r0, 0x14] str r0, [r1] bl sub_801CBB8 movs r0, 0x6 bl sub_8036FC4 _08036824: pop {r4} pop {r0} bx r0 .align 2, 0 _0803682C: .4byte 0x0000025d thumb_func_end sub_8036788 thumb_func_start sub_8036830 sub_8036830: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08036896 ldr r0, [sp] cmp r0, 0x5 beq _08036854 cmp r0, 0x5 bgt _0803684E cmp r0, 0 beq _08036890 b _08036896 _0803684E: cmp r0, 0x6 beq _08036890 b _08036896 _08036854: bl sub_801CBB8 ldr r0, _08036884 ldr r2, [r0] ldr r0, _08036888 ldr r1, [r0] ldr r3, _0803688C adds r0, r1, r3 ldrb r0, [r0] lsls r0, 1 adds r2, 0x50 adds r2, r0 ldrh r0, [r2] ldr r1, [r1, 0x14] subs r0, r1 strh r0, [r2] movs r0, 0xF bl sub_8036FC4 movs r0, 0 bl sub_8012574 b _08036896 .align 2, 0 _08036884: .4byte gUnknown_203B460 _08036888: .4byte gUnknown_203B358 _0803688C: .4byte 0x0000025e _08036890: movs r0, 0 bl sub_8036FC4 _08036896: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8036830 thumb_func_start sub_803689C sub_803689C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080368CE ldr r0, [sp] cmp r0, 0x5 beq _080368C0 cmp r0, 0x5 bgt _080368BA cmp r0, 0 beq _080368C8 b _080368CE _080368BA: cmp r0, 0x7 beq _080368C8 b _080368CE _080368C0: movs r0, 0x9 bl sub_8036FC4 b _080368CE _080368C8: movs r0, 0x12 bl sub_8036FC4 _080368CE: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_803689C thumb_func_start sub_80368D4 sub_80368D4: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0803692A ldr r0, [sp] cmp r0, 0x5 beq _080368F8 cmp r0, 0x5 bgt _080368F2 cmp r0, 0 beq _08036900 b _0803692A _080368F2: cmp r0, 0x7 beq _08036900 b _0803692A _080368F8: movs r0, 0x9 bl sub_8036FC4 b _0803692A _08036900: ldr r0, _08036930 ldr r1, [r0] movs r2, 0x95 lsls r2, 2 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 beq _0803692A adds r2, 0x4 adds r0, r1, r2 ldr r0, [r0] cmp r0, 0 beq _0803692A bl sub_80369D0 movs r0, 0x11 bl sub_8036FC4 movs r0, 0 bl sub_8012574 _0803692A: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _08036930: .4byte gUnknown_203B358 thumb_func_end sub_80368D4 thumb_func_start sub_8036934 sub_8036934: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08036948 movs r0, 0xA bl sub_8036FC4 _08036948: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8036934 thumb_func_start sub_8036950 sub_8036950: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080369C8 ldr r0, _08036978 ldr r2, [r0] ldr r1, [r2, 0xC] adds r3, r0, 0 cmp r1, 0 bne _0803698C ldr r0, [r2, 0x8] cmp r0, 0 beq _0803697C cmp r0, 0x1 beq _08036984 b _080369C8 .align 2, 0 _08036978: .4byte gUnknown_203B358 _0803697C: movs r0, 0xD bl sub_8036FC4 b _080369C8 _08036984: movs r0, 0xE bl sub_8036FC4 b _080369C8 _0803698C: ldr r0, [r2, 0x8] cmp r0, 0 bne _080369BA movs r1, 0x95 lsls r1, 2 adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0 beq _080369BA adds r1, 0x4 adds r0, r2, r1 ldr r0, [r0] cmp r0, 0 beq _080369BA bl sub_80369D0 movs r0, 0xB bl sub_8036FC4 movs r0, 0 bl sub_8012574 b _080369C8 _080369BA: ldr r0, [r3] ldr r0, [r0, 0xC] bl sub_8036E18 movs r0, 0xC bl sub_8036FC4 _080369C8: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8036950 thumb_func_start sub_80369D0 sub_80369D0: ldr r0, _080369F4 ldr r2, [r0] ldr r0, _080369F8 ldr r1, [r0] movs r3, 0x95 lsls r3, 2 adds r0, r1, r3 ldrb r0, [r0] lsls r0, 1 adds r2, 0x50 adds r2, r0 ldrh r0, [r2] adds r3, 0x4 adds r1, r3 ldr r1, [r1] adds r0, r1 strh r0, [r2] bx lr .align 2, 0 _080369F4: .4byte gUnknown_203B460 _080369F8: .4byte gUnknown_203B358 thumb_func_end sub_80369D0 thumb_func_start sub_80369FC sub_80369FC: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08036A10 movs r0, 0 bl sub_8036FC4 _08036A10: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80369FC thumb_func_start sub_8036A18 sub_8036A18: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08036A2C movs r0, 0x12 bl sub_8036FC4 _08036A2C: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8036A18 thumb_func_start sub_8036A34 sub_8036A34: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08036A4E movs r0, 0x10 bl sub_8036FC4 movs r0, 0 bl sub_8012574 _08036A4E: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8036A34 thumb_func_start sub_8036A54 sub_8036A54: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08036A76 bl sub_8012600 lsls r0, 24 cmp r0, 0 bne _08036A76 bl sub_8012750 movs r0, 0x12 bl sub_8036FC4 _08036A76: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8036A54 thumb_func_start sub_8036A7C sub_8036A7C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08036A9E bl sub_8012600 lsls r0, 24 cmp r0, 0 bne _08036A9E bl sub_8012750 movs r0, 0x8 bl sub_8036FC4 _08036A9E: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8036A7C thumb_func_start sub_8036AA4 sub_8036AA4: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08036AD0 bl sub_8012600 lsls r0, 24 cmp r0, 0 bne _08036AD0 bl sub_8012750 ldr r0, _08036AD8 ldr r0, [r0] ldr r0, [r0, 0xC] bl sub_8036E18 movs r0, 0xC bl sub_8036FC4 _08036AD0: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _08036AD8: .4byte gUnknown_203B358 thumb_func_end sub_8036AA4 thumb_func_start sub_8036ADC sub_8036ADC: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08036AFE bl sub_8012600 lsls r0, 24 cmp r0, 0 bne _08036AFE bl sub_8012750 movs r0, 0x12 bl sub_8036FC4 _08036AFE: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8036ADC thumb_func_start sub_8036B04 sub_8036B04: push {r4,lr} ldr r4, _08036B20 ldr r0, [r4] cmp r0, 0 beq _08036B1A bl MemoryFree movs r0, 0 str r0, [r4] bl sub_801CBB8 _08036B1A: pop {r4} pop {r0} bx r0 .align 2, 0 _08036B20: .4byte gUnknown_203B358 thumb_func_end sub_8036B04 thumb_func_start nullsub_52 nullsub_52: bx lr thumb_func_end nullsub_52 thumb_func_start sub_8036B28 sub_8036B28: push {r4,r5,lr} sub sp, 0x18 ldr r1, _08036B44 ldr r0, [r1] ldr r0, [r0] adds r5, r1, 0 cmp r0, 0x12 bls _08036B3A b _08036DFA _08036B3A: lsls r0, 2 ldr r1, _08036B48 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08036B44: .4byte gUnknown_203B358 _08036B48: .4byte _08036B4C .align 2, 0 _08036B4C: .4byte _08036B98 .4byte _08036BDC .4byte _08036BE4 .4byte _08036C14 .4byte _08036C58 .4byte _08036DFA .4byte _08036C5E .4byte _08036C90 .4byte _08036C98 .4byte _08036CC0 .4byte _08036CD8 .4byte _08036DFA .4byte _08036DFA .4byte _08036DD8 .4byte _08036D70 .4byte _08036DFA .4byte _08036DFA .4byte _08036DFA .4byte _08036DFA _08036B98: movs r0, 0 bl sub_801CF14 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 beq _08036BB8 ldr r0, _08036BB0 ldr r3, _08036BB4 movs r2, 0 b _08036BBC .align 2, 0 _08036BB0: .4byte gUnknown_80E61A4 _08036BB4: .4byte gUnknown_80E60D4 _08036BB8: ldr r0, _08036BD4 ldr r3, _08036BD8 _08036BBC: str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] adds r1, 0xFD str r1, [sp, 0x10] movs r1, 0 movs r2, 0x1 bl sub_8014248 b _08036DFA .align 2, 0 _08036BD4: .4byte gUnknown_80E61A4 _08036BD8: .4byte gUnknown_80E60A0 _08036BDC: ldr r0, _08036BE0 b _08036DBA .align 2, 0 _08036BE0: .4byte gUnknown_80E61C0 _08036BE4: bl sub_801D008 cmp r0, 0 beq _08036BEE b _08036DFA _08036BEE: bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, _08036C10 str r0, [sp, 0x14] movs r0, 0 movs r1, 0x1 add r2, sp, 0x14 movs r3, 0x9 bl sub_801C8C4 b _08036DFA .align 2, 0 _08036C10: .4byte 0x00020003 _08036C14: ldr r0, [r5] movs r4, 0xC2 lsls r4, 1 adds r0, r4 bl sub_8006518 ldr r1, [r5] adds r0, r1, 0 adds r0, 0x44 adds r1, r4 ldr r3, _08036C50 ldr r2, _08036C54 str r2, [sp] movs r2, 0x1 str r2, [sp, 0x4] movs r2, 0 str r2, [sp, 0x8] str r2, [sp, 0xC] movs r2, 0x3 bl SetMenuItems bl sub_801CCD8 ldr r0, [r5] adds r0, 0x44 movs r1, 0x3 movs r2, 0x1 bl sub_8035CF4 b _08036DFA .align 2, 0 _08036C50: .4byte gUnknown_80E60EC _08036C54: .4byte gUnknown_80E6104 _08036C58: bl sub_8036F74 b _08036DFA _08036C5E: ldr r2, _08036C7C ldr r1, [r5] ldr r0, [r1, 0x14] str r0, [r2] ldr r0, _08036C80 ldr r2, _08036C84 adds r1, r2 ldrb r1, [r1] movs r2, 0 bl sub_8090DC4 ldr r0, _08036C88 ldr r3, _08036C8C b _08036C9C .align 2, 0 _08036C7C: .4byte gUnknown_202DE30 _08036C80: .4byte gUnknown_202DE58 _08036C84: .4byte 0x0000025e _08036C88: .4byte gUnknown_80E61E4 _08036C8C: .4byte gUnknown_80E6154 _08036C90: ldr r0, _08036C94 b _08036C9A .align 2, 0 _08036C94: .4byte gUnknown_80E6214 _08036C98: ldr r0, _08036CB8 _08036C9A: ldr r3, _08036CBC _08036C9C: movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] adds r1, 0xFD str r1, [sp, 0x10] movs r1, 0 movs r2, 0x5 bl sub_8014248 b _08036DFA .align 2, 0 _08036CB8: .4byte gUnknown_80E6268 _08036CBC: .4byte gUnknown_80E618C _08036CC0: movs r0, 0 bl nullsub_23 ldr r0, _08036CD4 movs r1, 0 movs r2, 0 movs r3, 0 bl sub_80141B4 b _08036DFA .align 2, 0 _08036CD4: .4byte gUnknown_80E62C4 _08036CD8: ldr r4, _08036D18 ldr r1, [r4] movs r0, 0 str r0, [r1, 0xC] movs r2, 0 movs r3, 0 movs r5, 0x91 lsls r5, 2 adds r0, r1, r5 str r2, [r0] str r3, [r0, 0x4] movs r0, 0x93 lsls r0, 2 adds r1, r0 str r2, [r1] str r3, [r1, 0x4] bl sub_8011830 ldr r0, [r4] ldr r0, [r0, 0x8] bl sub_8037B28 ldr r4, [r4] str r0, [r4, 0xC] cmp r0, 0 bne _08036D44 ldr r0, [r4, 0x8] cmp r0, 0 beq _08036D1C cmp r0, 0x1 beq _08036D2C b _08036D44 .align 2, 0 _08036D18: .4byte gUnknown_203B358 _08036D1C: adds r2, r4, r5 movs r1, 0x95 lsls r1, 2 adds r0, r4, r1 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [r2] str r1, [r2, 0x4] _08036D2C: ldr r4, _08036D6C ldr r2, [r4] ldr r0, [r2, 0x8] movs r3, 0x91 lsls r3, 2 adds r1, r2, r3 adds r3, 0x8 adds r2, r3 bl sub_8037D64 ldr r1, [r4] str r0, [r1, 0xC] _08036D44: ldr r4, _08036D6C ldr r2, [r4] ldr r0, [r2, 0xC] cmp r0, 0 bne _08036D66 ldr r0, [r2, 0x8] cmp r0, 0x1 bhi _08036D66 movs r3, 0x91 lsls r3, 2 adds r1, r2, r3 adds r3, 0x8 adds r2, r3 bl sub_80381F4 ldr r1, [r4] str r0, [r1, 0xC] _08036D66: bl sub_8011854 b _08036DFA .align 2, 0 _08036D6C: .4byte gUnknown_203B358 _08036D70: ldr r2, [r5] movs r1, 0x94 lsls r1, 2 adds r0, r2, r1 ldr r1, [r0] cmp r1, 0 bne _08036DA4 ldr r1, _08036D9C movs r3, 0x92 lsls r3, 2 adds r0, r2, r3 ldr r0, [r0] str r0, [r1] ldr r0, _08036DA0 subs r3, 0x4 adds r1, r2, r3 ldrb r1, [r1] movs r2, 0 bl sub_8090DC4 b _08036DB8 .align 2, 0 _08036D9C: .4byte gUnknown_202DE30 _08036DA0: .4byte gUnknown_202DE58 _08036DA4: ldr r0, _08036DC8 str r1, [r0] ldr r0, _08036DCC movs r3, 0x93 lsls r3, 2 adds r1, r2, r3 ldrb r1, [r1] movs r2, 0 bl sub_8090DC4 _08036DB8: ldr r0, _08036DD0 _08036DBA: ldr r3, _08036DD4 movs r1, 0 movs r2, 0 bl sub_80141B4 b _08036DFA .align 2, 0 _08036DC8: .4byte gUnknown_202DE30 _08036DCC: .4byte gUnknown_202DE58 _08036DD0: .4byte gUnknown_80E6314 _08036DD4: .4byte 0x00000101 _08036DD8: ldr r2, _08036E04 ldr r1, [r5] ldr r0, [r1, 0x14] str r0, [r2] ldr r0, _08036E08 ldr r2, _08036E0C adds r1, r2 ldrb r1, [r1] movs r2, 0 bl sub_8090DC4 ldr r0, _08036E10 ldr r3, _08036E14 movs r1, 0 movs r2, 0 bl sub_80141B4 _08036DFA: add sp, 0x18 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08036E04: .4byte gUnknown_202DE30 _08036E08: .4byte gUnknown_202DE58 _08036E0C: .4byte 0x0000025e _08036E10: .4byte gUnknown_80E6358 _08036E14: .4byte 0x00000101 thumb_func_end sub_8036B28 thumb_func_start sub_8036E18 sub_8036E18: push {lr} cmp r0, 0xF bhi _08036EB4 lsls r0, 2 ldr r1, _08036E28 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08036E28: .4byte _08036E2C .align 2, 0 _08036E2C: .4byte _08036EC0 .4byte _08036E6C .4byte _08036E7C .4byte _08036E74 .4byte _08036E84 .4byte _08036E8C .4byte _08036EB4 .4byte _08036EB4 .4byte _08036EB4 .4byte _08036EB4 .4byte _08036EB4 .4byte _08036EB4 .4byte _08036EB4 .4byte _08036EB4 .4byte _08036E94 .4byte _08036E9C _08036E6C: ldr r0, _08036E70 b _08036E9E .align 2, 0 _08036E70: .4byte gUnknown_80E6378 _08036E74: ldr r0, _08036E78 b _08036E9E .align 2, 0 _08036E78: .4byte gUnknown_80E639C _08036E7C: ldr r0, _08036E80 b _08036E9E .align 2, 0 _08036E80: .4byte gUnknown_80E63F8 _08036E84: ldr r0, _08036E88 b _08036E9E .align 2, 0 _08036E88: .4byte gUnknown_80E6448 _08036E8C: ldr r0, _08036E90 b _08036E9E .align 2, 0 _08036E90: .4byte gUnknown_80E6378 _08036E94: ldr r0, _08036E98 b _08036E9E .align 2, 0 _08036E98: .4byte gUnknown_80E6378 _08036E9C: ldr r0, _08036EAC _08036E9E: ldr r3, _08036EB0 movs r1, 0 movs r2, 0 bl sub_80141B4 b _08036EC0 .align 2, 0 _08036EAC: .4byte gUnknown_80E64AC _08036EB0: .4byte 0x00000101 _08036EB4: ldr r0, _08036EC4 ldr r3, _08036EC8 movs r1, 0 movs r2, 0 bl sub_80141B4 _08036EC0: pop {r0} bx r0 .align 2, 0 _08036EC4: .4byte gUnknown_80E6378 _08036EC8: .4byte 0x00000101 thumb_func_end sub_8036E18 thumb_func_start sub_8036ECC sub_8036ECC: push {r4-r6,lr} adds r3, r0, 0 ldr r6, _08036F28 ldr r0, [r6] movs r2, 0x3 str r2, [r0, 0x24] movs r2, 0x1 str r2, [r0, 0x18] str r2, [r0, 0x1C] str r1, [r0, 0x20] movs r1, 0x2C str r1, [r0, 0x30] movs r1, 0x12 str r1, [r0, 0x34] str r3, [r0, 0x28] lsls r4, r3, 1 adds r4, r3 lsls r4, 3 movs r5, 0xC2 lsls r5, 1 adds r1, r4, r5 adds r1, r0, r1 str r1, [r0, 0x2C] adds r0, 0x14 bl sub_8013AA0 ldr r1, [r6] adds r1, r4 adds r1, r5 ldr r0, _08036F2C ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} bl sub_8004914 ldr r0, [r6] adds r0, r5 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08036F28: .4byte gUnknown_203B358 _08036F2C: .4byte gUnknown_80E6174 thumb_func_end sub_8036ECC thumb_func_start sub_8036F30 sub_8036F30: push {r4,r5,lr} sub sp, 0x4 ldr r5, _08036F6C ldr r0, [r5] ldr r4, [r0, 0x28] adds r0, r4, 0 bl sub_8008C54 adds r0, r4, 0 bl sub_80073B8 ldr r2, _08036F70 movs r0, 0 str r0, [sp] movs r0, 0x2 movs r1, 0 adds r3, r4, 0 bl xxx_call_draw_string ldr r0, [r5] adds r0, 0x14 bl sub_8013C68 adds r0, r4, 0 bl sub_80073E0 add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08036F6C: .4byte gUnknown_203B358 _08036F70: .4byte gUnknown_80E6528 thumb_func_end sub_8036F30 thumb_func_start sub_8036F74 sub_8036F74: push {r4,lr} ldr r4, _08036FB8 ldr r0, [r4] movs r1, 0xC2 lsls r1, 1 adds r0, r1 bl sub_8006518 ldr r0, _08036FBC ldr r1, [r0] ldr r0, [r4] ldr r2, _08036FC0 adds r0, r2 ldrb r0, [r0] lsls r0, 1 adds r1, 0x50 adds r1, r0 ldrh r1, [r1] movs r0, 0x2 bl sub_8036ECC bl sub_801CCD8 ldr r0, [r4] adds r0, 0x44 movs r1, 0x3 movs r2, 0 bl sub_8035CF4 bl sub_8036F30 pop {r4} pop {r0} bx r0 .align 2, 0 _08036FB8: .4byte gUnknown_203B358 _08036FBC: .4byte gUnknown_203B460 _08036FC0: .4byte 0x0000025e thumb_func_end sub_8036F74 thumb_func_start sub_8036FC4 sub_8036FC4: push {lr} ldr r1, _08036FD8 ldr r1, [r1] str r0, [r1] bl nullsub_52 bl sub_8036B28 pop {r0} bx r0 .align 2, 0 _08036FD8: .4byte gUnknown_203B358 thumb_func_end sub_8036FC4 thumb_func_start sub_8036FDC sub_8036FDC: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x10 adds r6, r0, 0 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0 bl sub_8004D8C ldr r5, _080370C0 ldr r0, [r5] cmp r0, 0 bne _08037016 ldr r4, _080370C4 adds r0, r4, 0 movs r1, 0x8 bl MemoryAlloc str r0, [r5] movs r1, 0 adds r2, r4, 0 bl MemoryFill8 _08037016: ldr r0, [r5] str r6, [r0] movs r1, 0 str r1, [r0, 0x4] str r1, [r0, 0x8] movs r3, 0 adds r7, r5, 0 movs r6, 0xE0 lsls r6, 1 movs r4, 0 movs r5, 0xDE lsls r5, 1 _0803702E: ldr r0, [r7] lsls r2, r3, 3 adds r1, r0, r6 adds r1, r2 str r4, [r1] adds r0, r2 adds r0, r5 strb r4, [r0] adds r3, 0x1 cmp r3, 0x1 ble _0803702E ldr r0, _080370C0 mov r12, r0 movs r5, 0xAE lsls r5, 1 mov r8, r5 ldr r4, _080370C8 movs r3, 0 movs r2, 0x3 _08037054: mov r6, r12 ldr r1, [r6] adds r1, r3 add r1, r8 adds r0, r4, 0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} adds r3, 0x18 subs r2, 0x1 cmp r2, 0 bge _08037054 movs r6, 0 bl sub_8004914 ldr r5, _080370C0 ldr r0, [r5] movs r4, 0xAE lsls r4, 1 adds r0, r4 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r1, [r5] adds r0, r1, 0 adds r0, 0x1C adds r1, r4 ldr r3, _080370CC ldr r2, _080370D0 str r2, [sp] str r6, [sp, 0x4] movs r2, 0x6 str r2, [sp, 0x8] str r6, [sp, 0xC] movs r2, 0 bl SetMenuItems ldr r0, [r5] adds r0, 0x1C movs r1, 0 movs r2, 0x1 bl sub_8035CF4 bl sub_80376CC add sp, 0x10 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080370C0: .4byte gUnknown_203B35C _080370C4: .4byte 0x00000504 _080370C8: .4byte gUnknown_80E653C _080370CC: .4byte gUnknown_80E6CD0 _080370D0: .4byte gUnknown_80E6CE8 thumb_func_end sub_8036FDC thumb_func_start sub_80370D4 sub_80370D4: push {r4,lr} ldr r4, _080370EC ldr r0, [r4] cmp r0, 0 beq _080370E6 bl MemoryFree movs r0, 0 str r0, [r4] _080370E6: pop {r4} pop {r0} bx r0 .align 2, 0 _080370EC: .4byte gUnknown_203B35C thumb_func_end sub_80370D4 thumb_func_start sub_80370F0 sub_80370F0: push {r4,r5,lr} sub sp, 0x4 movs r0, 0x4 str r0, [sp] ldr r5, _08037110 ldr r4, _08037114 ldr r1, [r4] ldr r0, [r1, 0x8] cmp r0, 0x1 beq _08037148 cmp r0, 0x1 bcc _08037118 cmp r0, 0x2 beq _08037158 b _080371A8 .align 2, 0 _08037110: .4byte 0x0000ffdc _08037114: .4byte gUnknown_203B35C _08037118: adds r0, r1, 0 adds r0, 0x1C bl sub_80130A8 lsls r0, 24 cmp r0, 0 bne _08037130 ldr r0, [r4] adds r0, 0x1C mov r1, sp bl sub_8013114 _08037130: ldr r0, [sp] cmp r0, 0x4 bne _0803713C bl sub_8037748 b _080371A8 _0803713C: ldr r1, [r4] movs r0, 0x1 str r0, [r1, 0x8] bl sub_8037900 b _080371A8 _08037148: bl sub_80376CC ldr r1, [r4] movs r0, 0x2 str r0, [r1, 0x8] bl sub_80371B8 b _080371A8 _08037158: ldr r0, [r1] cmp r0, 0x1 bhi _08037172 ldr r0, [r1, 0x4] cmp r0, 0 bne _08037172 movs r0, 0 bl sub_8037C10 cmp r0, 0 bne _08037172 movs r0, 0x29 b _080371AA _08037172: ldr r4, _080371B4 ldr r0, [r4] adds r0, 0x1C bl sub_80130A8 lsls r0, 24 cmp r0, 0 bne _0803718C ldr r0, [r4] adds r0, 0x1C mov r1, sp bl sub_8013114 _0803718C: ldr r0, [sp] cmp r0, 0x4 beq _080371A4 movs r0, 0x3 bl sub_80119D4 bl sub_8037798 adds r5, r0, 0 ldr r1, [r4] movs r0, 0x4 str r0, [r1, 0x8] _080371A4: bl sub_8037748 _080371A8: adds r0, r5, 0 _080371AA: add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080371B4: .4byte gUnknown_203B35C thumb_func_end sub_80370F0 thumb_func_start sub_80371B8 sub_80371B8: push {r4-r7,lr} sub sp, 0x10 movs r6, 0 movs r5, 0 bl sub_8037400 ldr r7, _0803721C ldr r1, [r7] ldr r0, [r1] cmp r0, 0x1 bhi _08037228 ldr r0, [r1, 0x4] cmp r0, 0 bne _08037228 movs r0, 0 bl sub_8037C10 cmp r0, 0 bne _080371E0 b _080373AC _080371E0: bl sub_80376CC ldr r0, [r7] movs r4, 0xAE lsls r4, 1 adds r0, r4 movs r1, 0 bl sub_8035CC0 ldr r1, [r7] adds r0, r1, 0 adds r0, 0x1C adds r1, r4 ldr r3, _08037220 ldr r2, _08037224 str r2, [sp] str r6, [sp, 0x4] movs r2, 0x6 str r2, [sp, 0x8] str r6, [sp, 0xC] movs r2, 0 bl SetMenuItems ldr r0, [r7] adds r0, 0x1C movs r1, 0 movs r2, 0x1 bl sub_8035CF4 b _080373AC .align 2, 0 _0803721C: .4byte gUnknown_203B35C _08037220: .4byte gUnknown_80E6C50 _08037224: .4byte gUnknown_80E6C68 _08037228: bl sub_80376CC ldr r4, _08037250 ldr r0, [r4] movs r1, 0xAE lsls r1, 1 adds r0, r1 movs r1, 0 bl sub_8035CC0 ldr r0, [r4] ldr r0, [r0, 0x4] cmp r0, 0xF bls _08037246 b _0803734C _08037246: lsls r0, 2 ldr r1, _08037254 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08037250: .4byte gUnknown_203B35C _08037254: .4byte _08037258 .align 2, 0 _08037258: .4byte _08037298 .4byte _080372D8 .4byte _080372B8 .4byte _080372A8 .4byte _080372C8 .4byte _080372D8 .4byte _080372E8 .4byte _080372F8 .4byte _0803734C .4byte _08037308 .4byte _0803734C .4byte _08037318 .4byte _0803734C .4byte _08037328 .4byte _08037338 .4byte _08037348 _08037298: ldr r6, _080372A0 ldr r5, _080372A4 b _0803734C .align 2, 0 _080372A0: .4byte gUnknown_80E66BC _080372A4: .4byte gUnknown_80E66D4 _080372A8: ldr r6, _080372B0 ldr r5, _080372B4 b _0803734C .align 2, 0 _080372B0: .4byte gUnknown_80E6D54 _080372B4: .4byte gUnknown_80E6D6C _080372B8: ldr r6, _080372C0 ldr r5, _080372C4 b _0803734C .align 2, 0 _080372C0: .4byte gUnknown_80E6DDC _080372C4: .4byte gUnknown_80E6DF4 _080372C8: ldr r6, _080372D0 ldr r5, _080372D4 b _0803734C .align 2, 0 _080372D0: .4byte gUnknown_80E67D4 _080372D4: .4byte gUnknown_80E67EC _080372D8: ldr r6, _080372E0 ldr r5, _080372E4 b _0803734C .align 2, 0 _080372E0: .4byte gUnknown_80E6748 _080372E4: .4byte gUnknown_80E6760 _080372E8: ldr r6, _080372F0 ldr r5, _080372F4 b _0803734C .align 2, 0 _080372F0: .4byte gUnknown_80E689C _080372F4: .4byte gUnknown_80E68B4 _080372F8: ldr r6, _08037300 ldr r5, _08037304 b _0803734C .align 2, 0 _08037300: .4byte gUnknown_80E6938 _08037304: .4byte gUnknown_80E6950 _08037308: ldr r6, _08037310 ldr r5, _08037314 b _0803734C .align 2, 0 _08037310: .4byte gUnknown_80E69B0 _08037314: .4byte gUnknown_80E69C8 _08037318: ldr r6, _08037320 ldr r5, _08037324 b _0803734C .align 2, 0 _08037320: .4byte gUnknown_80E6A10 _08037324: .4byte gUnknown_80E6A28 _08037328: ldr r6, _08037330 ldr r5, _08037334 b _0803734C .align 2, 0 _08037330: .4byte gUnknown_80E6A74 _08037334: .4byte gUnknown_80E6A8C _08037338: ldr r6, _08037340 ldr r5, _08037344 b _0803734C .align 2, 0 _08037340: .4byte gUnknown_80E6B78 _08037344: .4byte gUnknown_80E6B90 _08037348: ldr r6, _080373B4 ldr r5, _080373B8 _0803734C: ldr r4, _080373BC ldr r1, [r4] adds r0, r1, 0 adds r0, 0x1C movs r2, 0xAE lsls r2, 1 adds r1, r2 str r5, [sp] movs r3, 0 str r3, [sp, 0x4] movs r2, 0x6 str r2, [sp, 0x8] str r3, [sp, 0xC] movs r2, 0 adds r3, r6, 0 bl SetMenuItems ldr r0, [r4] adds r0, 0x1C movs r1, 0 movs r2, 0x1 bl sub_8035CF4 ldr r4, [r4] ldr r0, [r4, 0x4] cmp r0, 0 beq _080373AC ldr r0, [r4] cmp r0, 0 bne _080373AC bl sub_8035D94 adds r2, r0, 0 ldrb r0, [r2] cmp r0, 0 beq _080373AC ldr r3, [r2, 0x4] cmp r3, 0 beq _080373AC ldr r0, _080373C0 ldr r1, [r0] ldrb r0, [r2] lsls r0, 1 adds r1, 0x50 adds r1, r0 ldrh r0, [r1] adds r0, r3 strh r0, [r1] _080373AC: add sp, 0x10 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080373B4: .4byte gUnknown_80E6BF4 _080373B8: .4byte gUnknown_80E6C0C _080373BC: .4byte gUnknown_203B35C _080373C0: .4byte gUnknown_203B460 thumb_func_end sub_80371B8 thumb_func_start sub_80373C4 sub_80373C4: push {lr} movs r0, 0 movs r1, 0 bl sub_8005838 bl sub_80060EC bl sub_800CB20 bl sub_800485C bl TransferBGPaletteBuffer bl xxx_call_update_bg_vram bl sub_8009908 bl xxx_call_update_bg_sound_input movs r0, 0 bl sub_8004D8C pop {r0} bx r0 thumb_func_end sub_80373C4 thumb_func_start sub_80373F4 sub_80373F4: ldr r0, _080373FC ldr r0, [r0] bx lr .align 2, 0 _080373FC: .4byte gUnknown_203B35C thumb_func_end sub_80373F4 thumb_func_start sub_8037400 sub_8037400: push {r4-r6,lr} movs r6, 0 movs r5, 0 bl sub_8037810 bl sub_8011830 ldr r4, _08037434 ldr r0, [r4] ldr r0, [r0] bl sub_8037B28 ldr r4, [r4] str r0, [r4, 0x4] cmp r0, 0 beq _08037422 b _080376BE _08037422: ldr r0, [r4] cmp r0, 0xA bls _0803742A b _080375E8 _0803742A: lsls r0, 2 ldr r1, _08037438 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08037434: .4byte gUnknown_203B35C _08037438: .4byte _0803743C .align 2, 0 _0803743C: .4byte _08037494 .4byte _080374B8 .4byte _08037534 .4byte _0803751C .4byte _0803756C .4byte _080375D8 .4byte _080374E4 .4byte _080374D0 .4byte _080375E8 .4byte _08037480 .4byte _08037468 _08037468: ldr r0, _0803747C ldr r0, [r0] movs r1, 0xE7 lsls r1, 2 adds r6, r0, r1 movs r2, 0x8A lsls r2, 3 adds r5, r0, r2 b _080375E8 .align 2, 0 _0803747C: .4byte gUnknown_203B35C _08037480: ldr r0, _08037490 ldr r0, [r0] movs r3, 0xE7 lsls r3, 2 adds r6, r0, r3 movs r4, 0x8A lsls r4, 3 b _080375E6 .align 2, 0 _08037490: .4byte gUnknown_203B35C _08037494: bl sub_8035D94 ldr r1, _080374B4 ldr r3, [r1] movs r5, 0xDE lsls r5, 1 adds r2, r3, r5 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [r2] str r1, [r2, 0x4] adds r6, r2, 0 movs r0, 0xE2 lsls r0, 1 adds r5, r3, r0 b _080375E8 .align 2, 0 _080374B4: .4byte gUnknown_203B35C _080374B8: ldr r0, _080374CC ldr r0, [r0] movs r1, 0xDE lsls r1, 1 adds r6, r0, r1 movs r2, 0xE2 lsls r2, 1 adds r5, r0, r2 b _080375E8 .align 2, 0 _080374CC: .4byte gUnknown_203B35C _080374D0: ldr r0, _080374E0 ldr r0, [r0] movs r3, 0xE6 lsls r3, 1 adds r6, r0, r3 movs r4, 0xFE lsls r4, 1 b _080375E6 .align 2, 0 _080374E0: .4byte gUnknown_203B35C _080374E4: bl sub_8035D74 lsls r0, 24 lsrs r0, 24 bl sub_8095228 ldr r3, _08037518 ldr r1, [r3] movs r2, 0xE6 lsls r2, 1 adds r1, r2 ldm r0!, {r4-r6} stm r1!, {r4-r6} ldm r0!, {r4-r6} stm r1!, {r4-r6} ldm r0!, {r4-r6} stm r1!, {r4-r6} ldm r0!, {r4-r6} stm r1!, {r4-r6} ldr r0, [r3] adds r6, r0, r2 movs r1, 0xFE lsls r1, 1 adds r5, r0, r1 b _080375E8 .align 2, 0 _08037518: .4byte gUnknown_203B35C _0803751C: ldr r0, _08037530 ldr r0, [r0] movs r2, 0x8B lsls r2, 2 adds r6, r0, r2 movs r3, 0x97 lsls r3, 2 adds r5, r0, r3 b _080375E8 .align 2, 0 _08037530: .4byte gUnknown_203B35C _08037534: bl sub_8035D74 lsls r0, 24 lsrs r0, 24 bl sub_8095228 ldr r3, _08037568 ldr r1, [r3] movs r2, 0x8B lsls r2, 2 adds r1, r2 ldm r0!, {r4-r6} stm r1!, {r4-r6} ldm r0!, {r4-r6} stm r1!, {r4-r6} ldm r0!, {r4-r6} stm r1!, {r4-r6} ldm r0!, {r4-r6} stm r1!, {r4-r6} ldr r0, [r3] adds r6, r0, r2 movs r1, 0x97 lsls r1, 2 adds r5, r0, r1 b _080375E8 .align 2, 0 _08037568: .4byte gUnknown_203B35C _0803756C: bl sub_8035D74 lsls r0, 24 lsrs r0, 24 bl sub_8095228 ldr r4, _080375CC ldr r1, [r4] movs r5, 0xA3 lsls r5, 2 adds r1, r5 ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} bl sub_8035D3C lsls r0, 16 ldr r1, _080375D0 cmp r0, r1 beq _080375BE bl sub_8035D3C ldr r3, [r4] movs r1, 0xAF lsls r1, 2 adds r3, r1 ldr r1, _080375D4 ldr r1, [r1] lsls r0, 16 asrs r0, 16 movs r2, 0x58 muls r0, r2 adds r1, r0 adds r0, r3, 0 bl memcpy _080375BE: ldr r0, [r4] adds r6, r0, r5 movs r2, 0xC5 lsls r2, 2 adds r5, r0, r2 b _080375E8 .align 2, 0 _080375CC: .4byte gUnknown_203B35C _080375D0: .4byte 0xffff0000 _080375D4: .4byte gUnknown_203B45C _080375D8: ldr r0, _08037610 ldr r0, [r0] movs r3, 0xA3 lsls r3, 2 adds r6, r0, r3 movs r4, 0xC5 lsls r4, 2 _080375E6: adds r5, r0, r4 _080375E8: ldr r4, _08037610 ldr r0, [r4] ldr r0, [r0] adds r1, r6, 0 adds r2, r5, 0 bl sub_8037D64 ldr r1, [r4] str r0, [r1, 0x4] cmp r0, 0 bne _080376BE ldr r0, [r1] cmp r0, 0xA bhi _080376AE lsls r0, 2 ldr r1, _08037614 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08037610: .4byte gUnknown_203B35C _08037614: .4byte _08037618 .align 2, 0 _08037618: .4byte _08037644 .4byte _08037644 .4byte _08037658 .4byte _08037658 .4byte _0803766C .4byte _0803766C .4byte _08037684 .4byte _08037684 .4byte _080376AE .4byte _0803769C .4byte _0803769C _08037644: ldr r0, _08037654 ldr r2, [r0] movs r5, 0xDE lsls r5, 1 adds r6, r2, r5 movs r1, 0xE2 lsls r1, 1 b _0803767A .align 2, 0 _08037654: .4byte gUnknown_203B35C _08037658: ldr r0, _08037668 ldr r2, [r0] movs r3, 0x8B lsls r3, 2 adds r6, r2, r3 movs r4, 0x97 lsls r4, 2 b _08037692 .align 2, 0 _08037668: .4byte gUnknown_203B35C _0803766C: ldr r0, _08037680 ldr r2, [r0] movs r5, 0xA3 lsls r5, 2 adds r6, r2, r5 movs r1, 0xC5 lsls r1, 2 _0803767A: adds r5, r2, r1 adds r4, r0, 0 b _080376AE .align 2, 0 _08037680: .4byte gUnknown_203B35C _08037684: ldr r0, _08037698 ldr r2, [r0] movs r3, 0xE6 lsls r3, 1 adds r6, r2, r3 movs r4, 0xFE lsls r4, 1 _08037692: adds r5, r2, r4 adds r4, r0, 0 b _080376AE .align 2, 0 _08037698: .4byte gUnknown_203B35C _0803769C: ldr r1, _080376C8 ldr r0, [r1] movs r5, 0xE7 lsls r5, 2 adds r6, r0, r5 movs r2, 0x8A lsls r2, 3 adds r5, r0, r2 adds r4, r1, 0 _080376AE: ldr r0, [r4] ldr r0, [r0] adds r1, r6, 0 adds r2, r5, 0 bl sub_80381F4 ldr r1, [r4] str r0, [r1, 0x4] _080376BE: bl sub_8011854 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080376C8: .4byte gUnknown_203B35C thumb_func_end sub_8037400 thumb_func_start sub_80376CC sub_80376CC: push {r4,lr} ldr r0, _08037728 ldr r3, [r0] ldrh r1, [r3, 0xC] ldr r0, _0803772C ands r0, r1 ldr r1, _08037730 ands r0, r1 ldr r4, _08037734 ands r0, r4 ldr r1, _08037738 ands r0, r1 ldr r1, _0803773C ands r0, r1 movs r2, 0x80 lsls r2, 7 ldr r1, _08037740 ands r0, r1 orrs r0, r2 strh r0, [r3, 0xC] movs r2, 0xFC lsls r2, 2 ldrh r1, [r3, 0x10] movs r0, 0xFC lsls r0, 8 ands r0, r1 orrs r0, r2 ands r0, r4 movs r2, 0xF movs r4, 0xF0 lsls r4, 8 ldr r1, _08037744 ands r0, r1 orrs r0, r4 strh r0, [r3, 0x10] movs r0, 0 strh r0, [r3, 0xE] movs r1, 0xC0 lsls r1, 4 ldrh r0, [r3, 0x12] ands r2, r0 orrs r2, r1 strh r2, [r3, 0x12] pop {r4} pop {r0} bx r0 .align 2, 0 _08037728: .4byte gUnknown_203B35C _0803772C: .4byte 0x0000feff _08037730: .4byte 0x0000fdff _08037734: .4byte 0x0000f3ff _08037738: .4byte 0x0000efff _0803773C: .4byte 0x0000dfff _08037740: .4byte 0x00003fff _08037744: .4byte 0x00000fff thumb_func_end sub_80376CC thumb_func_start sub_8037748 sub_8037748: push {r4,lr} ldr r4, _08037794 ldr r3, [r4] ldrh r1, [r3, 0xE] movs r0, 0xFE lsls r0, 8 ands r0, r1 movs r1, 0x70 orrs r0, r1 strh r0, [r3, 0xE] movs r2, 0xD0 lsls r2, 3 ldrh r1, [r3, 0x12] movs r0, 0xF ands r0, r1 orrs r0, r2 strh r0, [r3, 0x12] ldr r0, [r3, 0x14] movs r1, 0x8 ands r0, r1 cmp r0, 0 beq _08037782 adds r0, r3, 0 adds r0, 0xC adds r1, 0xF8 movs r2, 0 movs r3, 0 bl AddSprite _08037782: bl xxx_draw_string_80144C4 ldr r1, [r4] ldr r0, [r1, 0x14] adds r0, 0x1 str r0, [r1, 0x14] pop {r4} pop {r0} bx r0 .align 2, 0 _08037794: .4byte gUnknown_203B35C thumb_func_end sub_8037748 thumb_func_start sub_8037798 sub_8037798: push {lr} ldr r2, _080377B4 ldr r1, _080377B8 ldr r0, [r1] ldr r0, [r0] adds r3, r1, 0 cmp r0, 0xA bhi _0803780A lsls r0, 2 ldr r1, _080377BC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080377B4: .4byte 0x0000ffdc _080377B8: .4byte gUnknown_203B35C _080377BC: .4byte _080377C0 .align 2, 0 _080377C0: .4byte _080377EC .4byte _080377EC .4byte _080377F0 .4byte _080377F0 .4byte _080377F0 .4byte _080377F0 .4byte _080377F0 .4byte _080377F0 .4byte _0803780A .4byte _080377FE .4byte _080377FE _080377EC: movs r2, 0x1 b _0803780A _080377F0: ldr r0, [r3] ldr r0, [r0, 0x4] movs r2, 0x1 cmp r0, 0 bne _0803780A movs r2, 0x2A b _0803780A _080377FE: ldr r0, [r3] ldr r0, [r0, 0x4] movs r2, 0xD cmp r0, 0 bne _0803780A movs r2, 0x2B _0803780A: adds r0, r2, 0 pop {r1} bx r1 thumb_func_end sub_8037798 thumb_func_start sub_8037810 sub_8037810: push {r4-r6,lr} ldr r6, _080378FC ldr r0, [r6] movs r5, 0xDE lsls r5, 1 adds r0, r5 movs r1, 0 movs r2, 0x8 bl MemoryFill8 ldr r0, [r6] movs r4, 0xE2 lsls r4, 1 adds r0, r4 movs r1, 0 movs r2, 0x8 bl MemoryFill8 ldr r0, [r6] adds r5, r0, r5 movs r1, 0 movs r2, 0 str r1, [r5] str r2, [r5, 0x4] adds r4, r0, r4 str r1, [r4] str r2, [r4, 0x4] movs r2, 0xE6 lsls r2, 1 adds r0, r2 movs r1, 0 movs r2, 0x30 bl MemoryFill8 ldr r0, [r6] movs r3, 0xFE lsls r3, 1 adds r0, r3 movs r1, 0 movs r2, 0x30 bl MemoryFill8 ldr r0, [r6] movs r1, 0x8B lsls r1, 2 adds r0, r1 movs r1, 0 movs r2, 0x30 bl MemoryFill8 ldr r0, [r6] movs r2, 0x97 lsls r2, 2 adds r0, r2 movs r1, 0 movs r2, 0x30 bl MemoryFill8 ldr r0, [r6] movs r3, 0xA3 lsls r3, 2 adds r0, r3 movs r1, 0 movs r2, 0x30 bl MemoryFill8 ldr r0, [r6] movs r1, 0xC5 lsls r1, 2 adds r0, r1 movs r1, 0 movs r2, 0x30 bl MemoryFill8 ldr r0, [r6] movs r2, 0xAF lsls r2, 2 adds r0, r2 movs r1, 0 movs r2, 0x58 bl MemoryFill8 ldr r0, [r6] movs r3, 0xD1 lsls r3, 2 adds r0, r3 movs r1, 0 movs r2, 0x58 bl MemoryFill8 ldr r0, [r6] movs r1, 0xE7 lsls r1, 2 adds r0, r1 movs r1, 0 movs r2, 0xB4 bl MemoryFill8 ldr r0, [r6] movs r2, 0x8A lsls r2, 3 adds r0, r2 movs r1, 0 movs r2, 0xB4 bl MemoryFill8 ldr r2, [r6] movs r3, 0xB1 lsls r3, 2 adds r0, r2, r3 movs r1, 0 strh r1, [r0] adds r3, 0x88 adds r0, r2, r3 strh r1, [r0] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080378FC: .4byte gUnknown_203B35C thumb_func_end sub_8037810 thumb_func_start sub_8037900 sub_8037900: push {r4,lr} sub sp, 0x10 ldr r4, _08037928 ldr r0, [r4] movs r1, 0xAE lsls r1, 1 adds r0, r1 movs r1, 0 bl sub_8035CC0 ldr r0, [r4] ldr r0, [r0] cmp r0, 0xA bls _0803791E b _08037A14 _0803791E: lsls r0, 2 ldr r1, _0803792C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08037928: .4byte gUnknown_203B35C _0803792C: .4byte _08037930 .align 2, 0 _08037930: .4byte _0803795C .4byte _0803795C .4byte _0803797C .4byte _0803797C .4byte _0803799C .4byte _0803799C .4byte _080379BC .4byte _080379BC .4byte _08037A14 .4byte _080379F0 .4byte _080379F0 _0803795C: ldr r0, _08037970 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x1C movs r2, 0xAE lsls r2, 1 adds r1, r2 ldr r3, _08037974 ldr r2, _08037978 b _080379CE .align 2, 0 _08037970: .4byte gUnknown_203B35C _08037974: .4byte gUnknown_80E6554 _08037978: .4byte gUnknown_80E656C _0803797C: ldr r0, _08037990 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x1C movs r2, 0xAE lsls r2, 1 adds r1, r2 ldr r3, _08037994 ldr r2, _08037998 b _080379CE .align 2, 0 _08037990: .4byte gUnknown_203B35C _08037994: .4byte gUnknown_80E6554 _08037998: .4byte gUnknown_80E65D8 _0803799C: ldr r0, _080379B0 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x1C movs r2, 0xAE lsls r2, 1 adds r1, r2 ldr r3, _080379B4 ldr r2, _080379B8 b _080379CE .align 2, 0 _080379B0: .4byte gUnknown_203B35C _080379B4: .4byte gUnknown_80E6554 _080379B8: .4byte gUnknown_80E661C _080379BC: ldr r0, _080379E4 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x1C movs r2, 0xAE lsls r2, 1 adds r1, r2 ldr r3, _080379E8 ldr r2, _080379EC _080379CE: str r2, [sp] movs r4, 0 str r4, [sp, 0x4] movs r2, 0x6 str r2, [sp, 0x8] str r4, [sp, 0xC] movs r2, 0 bl SetMenuItems b _08037A14 .align 2, 0 _080379E4: .4byte gUnknown_203B35C _080379E8: .4byte gUnknown_80E6554 _080379EC: .4byte gUnknown_80E665C _080379F0: ldr r0, _08037A38 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x1C movs r2, 0xAE lsls r2, 1 adds r1, r2 ldr r3, _08037A3C ldr r2, _08037A40 str r2, [sp] movs r4, 0 str r4, [sp, 0x4] movs r2, 0x6 str r2, [sp, 0x8] str r4, [sp, 0xC] movs r2, 0 bl SetMenuItems _08037A14: ldr r4, _08037A38 ldr r0, [r4] adds r0, 0x1C movs r1, 0 movs r2, 0x1 bl sub_8035CF4 bl sub_80373C4 ldr r0, [r4] adds r0, 0x1C bl sub_80130A8 add sp, 0x10 pop {r4} pop {r0} bx r0 .align 2, 0 _08037A38: .4byte gUnknown_203B35C _08037A3C: .4byte gUnknown_80E6554 _08037A40: .4byte gUnknown_80E667C thumb_func_end sub_8037900 thumb_func_start nullsub_202 nullsub_202: bx lr thumb_func_end nullsub_202 thumb_func_start sub_8037A48 sub_8037A48: push {r4-r6,lr} sub sp, 0x28 movs r6, 0x1 movs r0, 0 mov r1, sp movs r2, 0x14 bl sub_800D670 add r4, sp, 0x14 movs r0, 0x1 adds r1, r4, 0 movs r2, 0x14 bl sub_800D670 ldr r1, _08037AAC movs r3, 0x8 adds r2, r1, 0 adds r0, r2, 0x4 _08037A6C: str r3, [r0] subs r0, 0x4 cmp r0, r1 bge _08037A6C ldr r0, [sp, 0x10] str r0, [r2] ldr r0, [r4, 0x10] str r0, [r2, 0x4] ldr r5, _08037AB0 mov r0, sp adds r1, r5, 0 bl strcmp cmp r0, 0 beq _08037A8C movs r0, 0x1 _08037A8C: lsls r0, 24 cmp r0, 0 bne _08037AA6 adds r0, r4, 0 adds r1, r5, 0 bl strcmp cmp r0, 0 beq _08037AA0 movs r0, 0x1 _08037AA0: lsls r0, 24 cmp r0, 0 beq _08037AB4 _08037AA6: movs r0, 0 b _08037B1E .align 2, 0 _08037AAC: .4byte gUnknown_202EC40 _08037AB0: .4byte gUnknown_80E6E50 _08037AB4: ldr r1, [sp, 0x10] cmp r1, 0 bne _08037AC0 ldr r0, [r4, 0x10] cmp r0, 0x1 beq _08037B1C _08037AC0: cmp r1, 0x1 bne _08037ACA ldr r0, [r4, 0x10] cmp r0, 0 beq _08037B1C _08037ACA: cmp r1, 0x2 bne _08037AD4 ldr r0, [r4, 0x10] cmp r0, 0x3 beq _08037B1C _08037AD4: cmp r1, 0x3 bne _08037ADE ldr r0, [r4, 0x10] cmp r0, 0x2 beq _08037B1C _08037ADE: cmp r1, 0x9 bne _08037AE8 ldr r0, [r4, 0x10] cmp r0, 0xA beq _08037B1C _08037AE8: cmp r1, 0xA bne _08037AF2 ldr r0, [r4, 0x10] cmp r0, 0x9 beq _08037B1C _08037AF2: cmp r1, 0x4 bne _08037AFC ldr r0, [r4, 0x10] cmp r0, 0x5 beq _08037B1C _08037AFC: cmp r1, 0x5 bne _08037B06 ldr r0, [r4, 0x10] cmp r0, 0x4 beq _08037B1C _08037B06: cmp r1, 0x6 bne _08037B10 ldr r0, [r4, 0x10] cmp r0, 0x7 beq _08037B1C _08037B10: cmp r1, 0x7 bne _08037B1A ldr r0, [r4, 0x10] cmp r0, 0x6 beq _08037B1C _08037B1A: movs r6, 0 _08037B1C: adds r0, r6, 0 _08037B1E: add sp, 0x28 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8037A48 thumb_func_start sub_8037B28 sub_8037B28: push {r4,r5,lr} sub sp, 0x14 adds r4, r0, 0 movs r5, 0 bl sub_800D414 ldr r0, _08037B58 str r5, [r0] ldr r5, _08037B5C mov r0, sp movs r1, 0 movs r2, 0x14 bl MemoryFill8 mov r0, sp adds r1, r5, 0 bl strcpy str r4, [sp, 0x10] mov r0, sp movs r1, 0x14 bl sub_800D59C b _08037B7A .align 2, 0 _08037B58: .4byte gUnknown_202EC38 _08037B5C: .4byte gUnknown_80E6E50 _08037B60: cmp r5, 0x3 beq _08037BCC cmp r5, 0x4 beq _08037BD8 cmp r5, 0x5 beq _08037BF0 ldr r2, _08037BC0 ldr r1, [r2] ldr r0, _08037BC4 cmp r1, r0 bgt _08037BE4 adds r0, r1, 0x1 str r0, [r2] _08037B7A: movs r4, 0 _08037B7C: bl sub_80373C4 bl sub_8012AE8 cmp r0, 0x3 bgt _08037B8C cmp r0, 0x2 bge _08037BF0 _08037B8C: adds r4, 0x1 cmp r4, 0 ble _08037B7C bl sub_800D33C adds r5, r0, 0 bl sub_800D570 cmp r5, 0x2 bne _08037B60 bl sub_800D600 lsls r0, 24 cmp r0, 0 beq _08037BFC bl sub_8037A48 lsls r0, 24 cmp r0, 0 bne _08037BC8 movs r4, 0x4 bl sub_800D520 bl sub_800D510 b _08037C06 .align 2, 0 _08037BC0: .4byte gUnknown_202EC38 _08037BC4: .4byte 0x00000707 _08037BC8: movs r4, 0 b _08037C06 _08037BCC: bl sub_800D520 bl sub_800D510 movs r0, 0x2 b _08037C08 _08037BD8: bl sub_800D520 bl sub_800D510 movs r0, 0x3 b _08037C08 _08037BE4: bl sub_800D520 bl sub_800D510 movs r0, 0xF b _08037C08 _08037BF0: bl sub_800D520 bl sub_800D510 movs r0, 0x1 b _08037C08 _08037BFC: movs r4, 0x5 bl sub_800D520 bl sub_800D510 _08037C06: adds r0, r4, 0 _08037C08: add sp, 0x14 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8037B28 thumb_func_start sub_8037C10 sub_8037C10: push {lr} lsls r0, 24 cmp r0, 0 beq _08037C24 bl sub_800D588 lsls r0, 24 cmp r0, 0 bne _08037C38 b _08037C2E _08037C24: bl sub_800D588 lsls r0, 24 cmp r0, 0 beq _08037C38 _08037C2E: ldr r0, _08037C34 ldr r0, [r0, 0x4] b _08037C3C .align 2, 0 _08037C34: .4byte gUnknown_202EC40 _08037C38: ldr r0, _08037C40 ldr r0, [r0] _08037C3C: pop {r1} bx r1 .align 2, 0 _08037C40: .4byte gUnknown_202EC40 thumb_func_end sub_8037C10 thumb_func_start sub_8037C44 sub_8037C44: push {r4-r6,lr} adds r6, r0, 0 adds r5, r1, 0 movs r4, 0 _08037C4C: adds r0, r4, 0 bl sub_800D68C adds r4, 0x1 cmp r4, 0x1 ble _08037C4C cmp r6, 0xA bhi _08037CBE lsls r0, r6, 2 ldr r1, _08037C68 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08037C68: .4byte _08037C6C .align 2, 0 _08037C6C: .4byte _08037C98 .4byte _08037C98 .4byte _08037CA2 .4byte _08037CA2 .4byte _08037CAC .4byte _08037CAC .4byte _08037CA2 .4byte _08037CA2 .4byte _08037CBE .4byte _08037CB6 .4byte _08037CB6 _08037C98: adds r0, r5, 0 movs r1, 0x8 bl sub_800D59C b _08037CBE _08037CA2: adds r0, r5, 0 movs r1, 0x30 bl sub_800D59C b _08037CBE _08037CAC: adds r0, r5, 0 movs r1, 0x88 bl sub_800D59C b _08037CBE _08037CB6: adds r0, r5, 0 movs r1, 0xB4 bl sub_800D59C _08037CBE: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8037C44 thumb_func_start sub_8037CC4 sub_8037CC4: push {r4,lr} adds r3, r1, 0 adds r4, r2, 0 cmp r0, 0xA bhi _08037D5E lsls r0, 2 ldr r1, _08037CD8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08037CD8: .4byte _08037CDC .align 2, 0 _08037CDC: .4byte _08037D08 .4byte _08037D08 .4byte _08037D1E .4byte _08037D1E .4byte _08037D34 .4byte _08037D34 .4byte _08037D1E .4byte _08037D1E .4byte _08037D5E .4byte _08037D4A .4byte _08037D4A _08037D08: movs r0, 0 adds r1, r3, 0 movs r2, 0x8 bl sub_800D670 movs r0, 0x1 adds r1, r4, 0 movs r2, 0x8 bl sub_800D670 b _08037D5E _08037D1E: movs r0, 0 adds r1, r3, 0 movs r2, 0x30 bl sub_800D670 movs r0, 0x1 adds r1, r4, 0 movs r2, 0x30 bl sub_800D670 b _08037D5E _08037D34: movs r0, 0 adds r1, r3, 0 movs r2, 0x88 bl sub_800D670 movs r0, 0x1 adds r1, r4, 0 movs r2, 0x88 bl sub_800D670 b _08037D5E _08037D4A: movs r0, 0 adds r1, r3, 0 movs r2, 0xB4 bl sub_800D670 movs r0, 0x1 adds r1, r4, 0 movs r2, 0xB4 bl sub_800D670 _08037D5E: pop {r4} pop {r0} bx r0 thumb_func_end sub_8037CC4 thumb_func_start sub_8037D64 sub_8037D64: push {r4-r7,lr} adds r5, r0, 0 adds r6, r1, 0 adds r7, r2, 0 movs r4, 0 ldr r0, _08037D80 str r4, [r0] bl sub_800D494 adds r0, r5, 0 adds r1, r6, 0 bl sub_8037C44 b _08037D96 .align 2, 0 _08037D80: .4byte gUnknown_202EC48 _08037D84: subs r0, r4, 0x3 cmp r0, 0x2 bls _08037DBC ldr r1, _08037DB8 ldr r0, [r1] cmp r0, 0x63 bgt _08037DC8 adds r0, 0x1 str r0, [r1] _08037D96: bl sub_80373C4 bl sub_800D33C adds r4, r0, 0 bl sub_800D570 cmp r4, 0x2 bne _08037D84 bl sub_800D600 lsls r0, 24 cmp r0, 0 beq _08037DD4 movs r4, 0 b _08037DDE .align 2, 0 _08037DB8: .4byte gUnknown_202EC48 _08037DBC: bl sub_800D520 bl sub_800D510 movs r0, 0x1 b _08037DEA _08037DC8: bl sub_800D520 bl sub_800D510 movs r0, 0xF b _08037DEA _08037DD4: bl sub_800D520 bl sub_800D510 movs r4, 0x5 _08037DDE: adds r0, r5, 0 adds r1, r6, 0 adds r2, r7, 0 bl sub_8037CC4 adds r0, r4, 0 _08037DEA: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8037D64 thumb_func_start sub_8037DF0 sub_8037DF0: push {r4,lr} sub sp, 0x8 movs r4, 0 movs r0, 0 mov r1, sp movs r2, 0x4 bl sub_800D670 add r1, sp, 0x4 movs r0, 0x1 movs r2, 0x4 bl sub_800D670 ldr r0, [sp] cmp r0, 0 bne _08037E16 ldr r0, [sp, 0x4] cmp r0, 0 beq _08037E2C _08037E16: bl sub_800D588 lsls r0, 24 cmp r0, 0 bne _08037E24 ldr r4, [sp, 0x4] b _08037E26 _08037E24: ldr r4, [sp] _08037E26: cmp r4, 0 bne _08037E2C movs r4, 0xE _08037E2C: adds r0, r4, 0 add sp, 0x8 pop {r4} pop {r1} bx r1 thumb_func_end sub_8037DF0 thumb_func_start sub_8037E38 sub_8037E38: push {r4-r6,lr} adds r6, r0, 0 adds r5, r1, 0 bl sub_800D588 lsls r0, 24 adds r4, r6, 0 cmp r0, 0 bne _08037E4C adds r4, r5, 0 _08037E4C: bl sub_800D588 lsls r0, 24 adds r3, r5, 0 cmp r0, 0 bne _08037E5A adds r3, r6, 0 _08037E5A: ldrb r0, [r4] ldrb r1, [r3] cmp r0, r1 bne _08037E70 ldr r0, _08037E6C ldr r1, [r0] ldrb r0, [r4] b _08037E76 .align 2, 0 _08037E6C: .4byte gUnknown_203B460 _08037E70: ldr r0, _08037E8C ldr r1, [r0] ldrb r0, [r3] _08037E76: lsls r0, 1 adds r1, 0x50 adds r1, r0 ldrh r2, [r1] ldr r0, [r3, 0x4] adds r2, r0 strh r2, [r1] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08037E8C: .4byte gUnknown_203B460 thumb_func_end sub_8037E38 thumb_func_start sub_8037E90 sub_8037E90: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 bl sub_800D588 lsls r0, 24 cmp r0, 0 bne _08037EA2 adds r4, r5, 0 _08037EA2: movs r0, 0x2 strb r0, [r4] adds r0, r4, 0 bl sub_80951BC ldr r0, [r4, 0x10] bl sub_8095274 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8037E90 thumb_func_start nullsub_53 nullsub_53: bx lr thumb_func_end nullsub_53 thumb_func_start sub_8037EBC sub_8037EBC: push {r4-r6,lr} adds r6, r0, 0 adds r4, r1, 0 bl sub_800D588 lsls r0, 24 adds r5, r4, 0 cmp r0, 0 bne _08037ED0 adds r5, r6, 0 _08037ED0: ldr r1, [r5, 0x10] movs r0, 0x1 bl sub_809539C lsls r0, 24 lsrs r0, 24 bl sub_8095228 adds r4, r0, 0 adds r1, r4, 0 adds r0, r5, 0 ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} movs r0, 0x5 strb r0, [r4] adds r0, r4, 0 bl sub_80951FC movs r0, 0x7 strb r0, [r4] movs r0, 0x38 ldrsh r6, [r5, r0] cmp r6, 0 beq _08037F30 ldr r4, _08037F2C ldr r0, [r4] ldr r1, [r5, 0x10] stm r0!, {r1} adds r1, r5, 0 adds r1, 0x30 movs r2, 0x58 bl memcpy ldr r1, [r4] movs r0, 0x42 strb r0, [r1, 0x8] ldr r1, [r4] movs r0, 0x1 strb r0, [r1, 0x9] b _08037F40 .align 2, 0 _08037F2C: .4byte gUnknown_203B484 _08037F30: ldr r4, _08037F48 ldr r0, [r4] movs r1, 0 movs r2, 0x5C bl MemoryFill8 ldr r0, [r4] strh r6, [r0, 0xC] _08037F40: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08037F48: .4byte gUnknown_203B484 thumb_func_end sub_8037EBC thumb_func_start sub_8037F4C sub_8037F4C: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 bl sub_800D588 lsls r0, 24 cmp r0, 0 bne _08037F5E adds r4, r5, 0 _08037F5E: ldr r1, [r4, 0x10] movs r0, 0x4 bl sub_809539C lsls r0, 24 lsrs r0, 24 bl sub_8095228 adds r2, r0, 0 adds r1, r4, 0 ldm r1!, {r3-r5} stm r2!, {r3-r5} ldm r1!, {r3-r5} stm r2!, {r3-r5} ldm r1!, {r3-r5} stm r2!, {r3-r5} ldm r1!, {r3-r5} stm r2!, {r3-r5} movs r1, 0x6 strb r1, [r0] bl sub_8035D4C cmp r0, 0 beq _08037F96 adds r1, r0, 0 adds r1, 0x3A movs r0, 0x1 strb r0, [r1] _08037F96: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8037F4C thumb_func_start sub_8037F9C sub_8037F9C: push {lr} adds r3, r1, 0 cmp r0, 0xA bhi _08038010 lsls r0, 2 ldr r1, _08037FB0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08037FB0: .4byte _08037FB4 .align 2, 0 _08037FB4: .4byte _08037FE0 .4byte _08037FE0 .4byte _08038010 .4byte _08037FF4 .4byte _08038010 .4byte _08037FFE .4byte _08038010 .4byte _08037FEA .4byte _08038010 .4byte _08038010 .4byte _08038008 _08037FE0: adds r0, r3, 0 adds r1, r2, 0 bl sub_8037E38 b _08038010 _08037FEA: adds r0, r3, 0 adds r1, r2, 0 bl sub_8037F4C b _08038010 _08037FF4: adds r0, r3, 0 adds r1, r2, 0 bl sub_8037E90 b _08038010 _08037FFE: adds r0, r3, 0 adds r1, r2, 0 bl sub_8037EBC b _08038010 _08038008: adds r0, r3, 0 adds r1, r2, 0 bl nullsub_53 _08038010: pop {r0} bx r0 thumb_func_end sub_8037F9C thumb_func_start sub_8038014 sub_8038014: push {r4-r6,lr} adds r6, r0, 0 adds r5, r1, 0 bl sub_800D588 lsls r0, 24 adds r4, r6, 0 cmp r0, 0 bne _08038028 adds r4, r5, 0 _08038028: bl sub_800D588 lsls r0, 24 adds r3, r5, 0 cmp r0, 0 bne _08038036 adds r3, r6, 0 _08038036: ldrb r0, [r4] ldrb r1, [r3] cmp r0, r1 bne _0803804C ldr r0, _08038048 ldr r1, [r0] ldrb r0, [r4] b _08038052 .align 2, 0 _08038048: .4byte gUnknown_203B460 _0803804C: ldr r0, _08038070 ldr r1, [r0] ldrb r0, [r3] _08038052: lsls r0, 1 adds r1, 0x50 adds r1, r0 ldrh r2, [r1] ldr r0, [r3, 0x4] adds r2, r0 ldr r0, _08038074 movs r1, 0 cmp r2, r0 ble _08038068 movs r1, 0x6 _08038068: adds r0, r1, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08038070: .4byte gUnknown_203B460 _08038074: .4byte 0x000003e7 thumb_func_end sub_8038014 thumb_func_start sub_8038078 sub_8038078: push {r4-r6,lr} adds r5, r0, 0 adds r4, r1, 0 bl sub_800D588 lsls r0, 24 cmp r0, 0 bne _0803808A adds r4, r5, 0 _0803808A: ldr r6, [r4, 0x10] ldr r0, _08038098 ldr r0, [r0] cmp r0, 0 beq _0803809C ldr r5, [r0, 0x50] b _080380A2 .align 2, 0 _08038098: .4byte gUnknown_203B184 _0803809C: bl sub_8011C34 adds r5, r0, 0 _080380A2: movs r0, 0x4 adds r1, r6, 0 bl sub_80952F0 lsls r0, 24 cmp r0, 0 beq _080380BA ldr r0, [r4, 0x28] cmp r0, r5 bne _080380BA movs r0, 0 b _080380BC _080380BA: movs r0, 0xB _080380BC: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8038078 thumb_func_start sub_80380C4 sub_80380C4: push {r4-r6,lr} adds r6, r0, 0 adds r4, r1, 0 bl sub_800D588 lsls r0, 24 adds r5, r4, 0 cmp r0, 0 bne _080380D8 adds r5, r6, 0 _080380D8: ldr r4, [r5, 0x10] movs r0, 0x2 adds r1, r4, 0 bl sub_80952F0 lsls r0, 24 cmp r0, 0 bne _08038110 movs r0, 0x4 adds r1, r4, 0 bl sub_80952F0 lsls r0, 24 cmp r0, 0 bne _08038110 movs r0, 0x6 adds r1, r4, 0 bl sub_80952F0 lsls r0, 24 cmp r0, 0 bne _08038110 ldr r0, [r5, 0x10] bl sub_8095298 lsls r0, 24 cmp r0, 0 beq _08038114 _08038110: movs r0, 0x7 b _08038126 _08038114: bl sub_8095190 movs r1, 0x1 negs r1, r1 cmp r0, r1 beq _08038124 movs r0, 0 b _08038126 _08038124: movs r0, 0xD _08038126: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80380C4 thumb_func_start sub_803812C sub_803812C: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 bl sub_800D588 lsls r0, 24 cmp r0, 0 bne _0803813E adds r4, r5, 0 _0803813E: ldr r1, [r4, 0x10] movs r0, 0x1 bl sub_80952F0 lsls r0, 24 cmp r0, 0 bne _08038150 movs r0, 0x9 b _08038152 _08038150: movs r0, 0 _08038152: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_803812C thumb_func_start sub_8038158 sub_8038158: movs r0, 0 bx lr thumb_func_end sub_8038158 thumb_func_start sub_803815C sub_803815C: push {r4,lr} adds r3, r1, 0 movs r4, 0 cmp r0, 0xA bhi _080381D2 lsls r0, 2 ldr r1, _08038170 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08038170: .4byte _08038174 .align 2, 0 _08038174: .4byte _080381A0 .4byte _080381A0 .4byte _080381D2 .4byte _080381B4 .4byte _080381D2 .4byte _080381BE .4byte _080381D2 .4byte _080381AA .4byte _080381D2 .4byte _080381D2 .4byte _080381C8 _080381A0: adds r0, r3, 0 adds r1, r2, 0 bl sub_8038014 b _080381D0 _080381AA: adds r0, r3, 0 adds r1, r2, 0 bl sub_8038078 b _080381D0 _080381B4: adds r0, r3, 0 adds r1, r2, 0 bl sub_80380C4 b _080381D0 _080381BE: adds r0, r3, 0 adds r1, r2, 0 bl sub_803812C b _080381D0 _080381C8: adds r0, r3, 0 adds r1, r2, 0 bl sub_8038158 _080381D0: adds r4, r0, 0 _080381D2: adds r0, r4, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_803815C thumb_func_start sub_80381DC sub_80381DC: push {lr} bl sub_8037F9C pop {r0} bx r0 thumb_func_end sub_80381DC thumb_func_start sub_80381E8 sub_80381E8: push {lr} bl sub_803815C pop {r1} bx r1 thumb_func_end sub_80381E8 thumb_func_start sub_80381F4 sub_80381F4: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 adds r7, r2, 0 movs r4, 0 bl sub_803815C str r0, [sp] ldr r0, _08038218 str r4, [r0] bl sub_800D494 mov r0, sp movs r1, 0x4 bl sub_800D59C b _0803822E .align 2, 0 _08038218: .4byte gUnknown_202EC4C _0803821C: subs r0, r4, 0x3 cmp r0, 0x2 bls _08038272 ldr r1, _08038250 ldr r0, [r1] cmp r0, 0x63 bgt _0803827E adds r0, 0x1 str r0, [r1] _0803822E: bl sub_80373C4 bl sub_800D33C adds r4, r0, 0 bl sub_800D570 cmp r4, 0x2 bne _0803821C bl sub_800D600 lsls r0, 24 cmp r0, 0 beq _08038254 bl sub_8037DF0 b _0803825E .align 2, 0 _08038250: .4byte gUnknown_202EC4C _08038254: bl sub_800D520 bl sub_800D510 movs r0, 0x5 _0803825E: str r0, [sp] ldr r0, [sp] cmp r0, 0 bne _0803828A adds r0, r5, 0 adds r1, r6, 0 adds r2, r7, 0 bl sub_8037F9C b _08038292 _08038272: bl sub_800D520 bl sub_800D510 movs r0, 0x1 b _08038298 _0803827E: bl sub_800D520 bl sub_800D510 movs r0, 0xF b _08038298 _0803828A: bl sub_800D520 bl sub_800D510 _08038292: bl sub_800D520 ldr r0, [sp] _08038298: add sp, 0x4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80381F4 thumb_func_start sub_80382A0 sub_80382A0: push {lr} movs r0, 0 bl sub_8031F60 pop {r0} bx r0 thumb_func_end sub_80382A0 thumb_func_start sub_80382AC sub_80382AC: push {lr} bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r0} bx r0 thumb_func_end sub_80382AC thumb_func_start sub_80382C0 sub_80382C0: push {r4,lr} ldr r4, _080382E0 movs r0, 0x1 bl sub_8031FD8 cmp r0, 0x1 bls _080382D8 cmp r0, 0x3 bhi _080382D8 bl sub_803203C movs r4, 0x1 _080382D8: adds r0, r4, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _080382E0: .4byte 0x0000ffdc thumb_func_end sub_80382C0 thumb_func_start sub_80382E4 sub_80382E4: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x10 mov r8, r0 ldr r5, _08038398 ldr r0, [r5] cmp r0, 0 bne _0803830E movs r4, 0xDA lsls r4, 1 adds r0, r4, 0 movs r1, 0x8 bl MemoryAlloc str r0, [r5] movs r1, 0 adds r2, r4, 0 bl MemoryFill8 _0803830E: mov r12, r5 movs r0, 0xA4 lsls r0, 1 mov r9, r0 ldr r4, _0803839C movs r3, 0 movs r2, 0x3 _0803831C: mov r5, r12 ldr r1, [r5] adds r1, r3 add r1, r9 adds r0, r4, 0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} adds r3, 0x18 subs r2, 0x1 cmp r2, 0 bge _0803831C bl sub_8004914 ldr r5, _08038398 ldr r0, [r5] movs r6, 0xA4 lsls r6, 1 adds r0, r6 movs r1, 0x1 movs r2, 0x1 bl sub_800641C mov r7, r8 cmp r7, 0x25 bne _08038370 ldr r1, [r5] adds r0, r1, 0 adds r0, 0x8 adds r1, r6 ldr r3, _080383A0 ldr r2, _080383A4 str r2, [sp] movs r4, 0 str r4, [sp, 0x4] movs r2, 0x4 str r2, [sp, 0x8] str r4, [sp, 0xC] movs r2, 0 bl SetMenuItems _08038370: ldr r0, [r5] adds r0, 0x8 movs r1, 0 movs r2, 0x1 bl sub_8035CF4 ldr r1, [r5] mov r0, r8 str r0, [r1] movs r0, 0 str r0, [r1, 0x4] bl sub_8038440 add sp, 0x10 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08038398: .4byte gUnknown_203B360 _0803839C: .4byte gUnknown_80E6E7C _080383A0: .4byte gUnknown_80E6E94 _080383A4: .4byte gUnknown_80E6EAC thumb_func_end sub_80382E4 thumb_func_start sub_80383A8 sub_80383A8: push {r4,lr} bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, _080383D0 ldr r0, [r4] cmp r0, 0 beq _080383C8 bl MemoryFree movs r0, 0 str r0, [r4] _080383C8: pop {r4} pop {r0} bx r0 .align 2, 0 _080383D0: .4byte gUnknown_203B360 thumb_func_end sub_80383A8 thumb_func_start sub_80383D4 sub_80383D4: push {r4-r6,lr} sub sp, 0x4 movs r0, 0x2 str r0, [sp] ldr r6, _08038410 ldr r4, _08038414 ldr r0, [r4] ldr r5, [r0, 0x4] cmp r5, 0 bne _08038434 adds r0, 0x8 bl sub_80130A8 lsls r0, 24 cmp r0, 0 bne _080383FE ldr r0, [r4] adds r0, 0x8 mov r1, sp bl sub_8013114 _080383FE: ldr r0, [sp] cmp r0, 0x2 beq _0803842C cmp r0, 0x2 bhi _08038418 cmp r0, 0x1 beq _0803841C b _08038430 .align 2, 0 _08038410: .4byte 0x0000ffdc _08038414: .4byte gUnknown_203B360 _08038418: cmp r0, 0x3 bne _08038430 _0803841C: ldr r0, _08038428 ldr r1, [r0] movs r0, 0 str r0, [r1, 0x4] movs r6, 0x1 b _08038430 .align 2, 0 _08038428: .4byte gUnknown_203B360 _0803842C: ldr r0, [r4] str r5, [r0, 0x4] _08038430: bl sub_80384D0 _08038434: adds r0, r6, 0 add sp, 0x4 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80383D4 thumb_func_start sub_8038440 sub_8038440: push {r4,r5,lr} movs r5, 0 ldr r0, _080384B0 ldr r0, [r0] mov r12, r0 movs r3, 0xD4 lsls r3, 1 add r3, r12 ldrh r1, [r3] ldr r0, _080384B4 ands r0, r1 ldr r1, _080384B8 ands r0, r1 ldr r4, _080384BC ands r0, r4 ldr r1, _080384C0 ands r0, r1 ldr r1, _080384C4 ands r0, r1 movs r2, 0x80 lsls r2, 7 ldr r1, _080384C8 ands r0, r1 orrs r0, r2 strh r0, [r3] movs r2, 0xFC lsls r2, 2 ldrh r1, [r3, 0x4] movs r0, 0xFC lsls r0, 8 ands r0, r1 orrs r0, r2 ands r0, r4 movs r2, 0xF movs r4, 0xF0 lsls r4, 8 ldr r1, _080384CC ands r0, r1 orrs r0, r4 strh r0, [r3, 0x4] movs r0, 0x70 strh r0, [r3, 0x2] movs r1, 0xE0 lsls r1, 3 ldrh r0, [r3, 0x6] ands r2, r0 orrs r2, r1 strh r2, [r3, 0x6] movs r0, 0xD8 lsls r0, 1 add r0, r12 str r5, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080384B0: .4byte gUnknown_203B360 _080384B4: .4byte 0x0000feff _080384B8: .4byte 0x0000fdff _080384BC: .4byte 0x0000f3ff _080384C0: .4byte 0x0000efff _080384C4: .4byte 0x0000dfff _080384C8: .4byte 0x00003fff _080384CC: .4byte 0x00000fff thumb_func_end sub_8038440 thumb_func_start sub_80384D0 sub_80384D0: push {r4,r5,lr} ldr r5, _08038508 ldr r2, [r5] movs r4, 0xD8 lsls r4, 1 adds r0, r2, r4 ldr r0, [r0] movs r1, 0x8 ands r0, r1 cmp r0, 0 beq _080384F6 movs r1, 0xD4 lsls r1, 1 adds r0, r2, r1 subs r1, 0xA8 movs r2, 0 movs r3, 0 bl AddSprite _080384F6: ldr r1, [r5] adds r1, r4 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08038508: .4byte gUnknown_203B360 thumb_func_end sub_80384D0 thumb_func_start sub_803850C sub_803850C: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x10 mov r8, r0 ldr r5, _0803859C ldr r0, [r5] cmp r0, 0 bne _08038536 movs r4, 0xDA lsls r4, 1 adds r0, r4, 0 movs r1, 0x8 bl MemoryAlloc str r0, [r5] movs r1, 0 adds r2, r4, 0 bl MemoryFill8 _08038536: mov r12, r5 movs r0, 0xA4 lsls r0, 1 mov r9, r0 ldr r4, _080385A0 movs r3, 0 movs r2, 0x3 _08038544: mov r5, r12 ldr r1, [r5] adds r1, r3 add r1, r9 adds r0, r4, 0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} adds r3, 0x18 subs r2, 0x1 cmp r2, 0 bge _08038544 bl sub_8004914 ldr r4, _0803859C ldr r0, [r4] movs r6, 0xA4 lsls r6, 1 adds r0, r6 movs r1, 0x1 movs r2, 0x1 bl sub_800641C mov r7, r8 cmp r7, 0x2E bne _080385AC ldr r1, [r4] adds r0, r1, 0 adds r0, 0x8 adds r1, r6 ldr r3, _080385A4 ldr r2, _080385A8 str r2, [sp] movs r4, 0 str r4, [sp, 0x4] movs r2, 0x6 str r2, [sp, 0x8] str r4, [sp, 0xC] movs r2, 0 bl SetMenuItems b _080385CE .align 2, 0 _0803859C: .4byte gUnknown_203B364 _080385A0: .4byte gUnknown_80E6F20 _080385A4: .4byte gUnknown_80E6F38 _080385A8: .4byte gUnknown_80E7090 _080385AC: ldr r1, [r4] adds r0, r1, 0 adds r0, 0x8 movs r2, 0xA4 lsls r2, 1 adds r1, r2 ldr r3, _080385F8 ldr r2, _080385FC str r2, [sp] movs r4, 0 str r4, [sp, 0x4] movs r2, 0x6 str r2, [sp, 0x8] str r4, [sp, 0xC] movs r2, 0 bl SetMenuItems _080385CE: ldr r4, _08038600 ldr r0, [r4] adds r0, 0x8 movs r1, 0 movs r2, 0x1 bl sub_8035CF4 ldr r1, [r4] movs r0, 0 str r0, [r1, 0x4] mov r5, r8 str r5, [r1] bl sub_8038830 add sp, 0x10 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080385F8: .4byte gUnknown_80E6F38 _080385FC: .4byte gUnknown_80E6F50 _08038600: .4byte gUnknown_203B364 thumb_func_end sub_803850C thumb_func_start sub_8038604 sub_8038604: push {r4,lr} bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, _0803862C ldr r0, [r4] cmp r0, 0 beq _08038624 bl MemoryFree movs r0, 0 str r0, [r4] _08038624: pop {r4} pop {r0} bx r0 .align 2, 0 _0803862C: .4byte gUnknown_203B364 thumb_func_end sub_8038604 thumb_func_start sub_8038630 sub_8038630: push {r4-r6,lr} sub sp, 0x18 ldr r5, _080386A8 movs r0, 0x3 str r0, [sp, 0x14] ldr r6, _080386AC ldr r0, [r6] ldr r4, [r0, 0x4] cmp r4, 0x1 bne _08038646 b _08038798 _08038646: cmp r4, 0x1 bcc _0803864C b _08038824 _0803864C: adds r0, 0x8 bl sub_8012FD8 movs r5, 0 str r5, [sp, 0x10] bl sub_80140F8 bl sub_8011C1C adds r1, r0, 0 add r0, sp, 0x10 bl sub_801203C adds r4, r0, 0 bl sub_8014114 cmp r4, 0 beq _080386B8 cmp r4, 0x1 beq _08038738 ldr r0, [r6] movs r4, 0xA4 lsls r4, 1 adds r0, r4 movs r1, 0 bl sub_8035CC0 ldr r1, [r6] ldr r0, [r1] cmp r0, 0x2E bne _08038750 adds r0, r1, 0 adds r0, 0x8 adds r1, r4 ldr r3, _080386B0 ldr r2, _080386B4 str r2, [sp] str r5, [sp, 0x4] movs r2, 0x6 str r2, [sp, 0x8] str r5, [sp, 0xC] movs r2, 0 bl SetMenuItems b _0803876E .align 2, 0 _080386A8: .4byte 0x0000ffdc _080386AC: .4byte gUnknown_203B364 _080386B0: .4byte gUnknown_80E6F38 _080386B4: .4byte gUnknown_80E7114 _080386B8: ldr r0, [r6] movs r1, 0xA4 lsls r1, 1 adds r0, r1 movs r1, 0 bl sub_8035CC0 ldr r1, [r6] ldr r0, [r1] cmp r0, 0x2E bne _080386F8 adds r0, r1, 0 adds r0, 0x8 movs r2, 0xA4 lsls r2, 1 adds r1, r2 ldr r3, _080386F0 ldr r2, _080386F4 str r2, [sp] str r5, [sp, 0x4] movs r2, 0x6 str r2, [sp, 0x8] str r5, [sp, 0xC] movs r2, 0 bl SetMenuItems b _08038716 .align 2, 0 _080386F0: .4byte gUnknown_80E6F38 _080386F4: .4byte gUnknown_80E70CC _080386F8: adds r0, r1, 0 adds r0, 0x8 movs r2, 0xA4 lsls r2, 1 adds r1, r2 ldr r3, _08038728 ldr r2, _0803872C str r2, [sp] str r5, [sp, 0x4] movs r2, 0x6 str r2, [sp, 0x8] str r5, [sp, 0xC] movs r2, 0 bl SetMenuItems _08038716: ldr r4, _08038730 ldr r1, [r4] ldr r0, [r1] cmp r0, 0x2D bne _08038734 movs r0, 0x1 str r0, [r1, 0x4] movs r0, 0x13 b _08038826 .align 2, 0 _08038728: .4byte gUnknown_80E6F38 _0803872C: .4byte gUnknown_80E6FBC _08038730: .4byte gUnknown_203B364 _08038734: adds r0, r1, 0 b _08038772 _08038738: ldr r0, _0803874C movs r1, 0 movs r2, 0 movs r3, 0 bl sub_80141B4 ldr r1, [r6] movs r0, 0x5 b _08038780 .align 2, 0 _0803874C: .4byte gUnknown_80E7178 _08038750: adds r0, r1, 0 adds r0, 0x8 movs r2, 0xA4 lsls r2, 1 adds r1, r2 ldr r3, _08038788 ldr r2, _0803878C str r2, [sp] str r5, [sp, 0x4] movs r2, 0x6 str r2, [sp, 0x8] str r5, [sp, 0xC] movs r2, 0 bl SetMenuItems _0803876E: ldr r4, _08038790 ldr r0, [r4] _08038772: adds r0, 0x8 movs r1, 0 movs r2, 0x1 bl sub_8035CF4 ldr r1, [r4] movs r0, 0x1 _08038780: str r0, [r1, 0x4] ldr r5, _08038794 b _08038824 .align 2, 0 _08038788: .4byte gUnknown_80E6F38 _0803878C: .4byte gUnknown_80E701C _08038790: .4byte gUnknown_203B364 _08038794: .4byte 0x0000ffdc _08038798: adds r0, 0x8 bl sub_80130A8 lsls r0, 24 cmp r0, 0 bne _080387AE ldr r0, [r6] adds r0, 0x8 add r1, sp, 0x14 bl sub_8013114 _080387AE: ldr r0, [sp, 0x14] cmp r0, 0x3 beq _0803881C cmp r0, 0x3 bhi _080387BE cmp r0, 0x2 beq _080387C2 b _08038820 _080387BE: cmp r0, 0x4 bne _08038820 _080387C2: ldr r4, _080387D8 ldr r1, [r4] ldr r0, [r1] cmp r0, 0x29 beq _080387D0 cmp r0, 0x2E bne _080387DC _080387D0: movs r0, 0x1 str r0, [r1, 0x4] movs r5, 0x1 b _08038820 .align 2, 0 _080387D8: .4byte gUnknown_203B364 _080387DC: cmp r0, 0x2D bne _080387E8 movs r0, 0x1 str r0, [r1, 0x4] movs r5, 0x13 b _08038820 _080387E8: cmp r0, 0x2C bne _080387F4 movs r0, 0x1 str r0, [r1, 0x4] movs r5, 0x1F b _08038820 _080387F4: bl sub_8035D4C adds r0, 0x3A ldrb r0, [r0] cmp r0, 0 beq _0803880A ldr r1, [r4] movs r0, 0x1 str r0, [r1, 0x4] movs r5, 0x35 b _08038820 _0803880A: ldr r0, [r4] movs r1, 0x1 str r1, [r0, 0x4] ldr r0, [r0] movs r5, 0xB cmp r0, 0x2B bne _08038820 movs r5, 0xD b _08038820 _0803881C: ldr r0, [r6] str r4, [r0, 0x4] _08038820: bl sub_80388C4 _08038824: adds r0, r5, 0 _08038826: add sp, 0x18 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8038630 thumb_func_start sub_8038830 sub_8038830: push {r4,r5,lr} movs r5, 0 ldr r0, _080388A4 ldr r0, [r0] mov r12, r0 movs r3, 0xD4 lsls r3, 1 add r3, r12 ldrh r1, [r3] ldr r0, _080388A8 ands r0, r1 ldr r1, _080388AC ands r0, r1 ldr r4, _080388B0 ands r0, r4 ldr r1, _080388B4 ands r0, r1 ldr r1, _080388B8 ands r0, r1 movs r2, 0x80 lsls r2, 7 ldr r1, _080388BC ands r0, r1 orrs r0, r2 strh r0, [r3] movs r2, 0xFC lsls r2, 2 ldrh r1, [r3, 0x4] movs r0, 0xFC lsls r0, 8 ands r0, r1 orrs r0, r2 ands r0, r4 movs r2, 0xF movs r4, 0xF0 lsls r4, 8 ldr r1, _080388C0 ands r0, r1 orrs r0, r4 strh r0, [r3, 0x4] movs r0, 0x70 strh r0, [r3, 0x2] movs r1, 0xD0 lsls r1, 3 ldrh r0, [r3, 0x6] ands r2, r0 orrs r2, r1 strh r2, [r3, 0x6] movs r0, 0xD8 lsls r0, 1 add r0, r12 str r5, [r0] movs r0, 0 bl sub_8004D8C pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080388A4: .4byte gUnknown_203B364 _080388A8: .4byte 0x0000feff _080388AC: .4byte 0x0000fdff _080388B0: .4byte 0x0000f3ff _080388B4: .4byte 0x0000efff _080388B8: .4byte 0x0000dfff _080388BC: .4byte 0x00003fff _080388C0: .4byte 0x00000fff thumb_func_end sub_8038830 thumb_func_start sub_80388C4 sub_80388C4: push {r4,r5,lr} ldr r5, _080388FC ldr r2, [r5] movs r4, 0xD8 lsls r4, 1 adds r0, r2, r4 ldr r0, [r0] movs r1, 0x8 ands r0, r1 cmp r0, 0 beq _080388EA movs r1, 0xD4 lsls r1, 1 adds r0, r2, r1 subs r1, 0xA8 movs r2, 0 movs r3, 0 bl AddSprite _080388EA: ldr r1, [r5] adds r1, r4 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080388FC: .4byte gUnknown_203B364 thumb_func_end sub_80388C4 thumb_func_start sub_8038900 sub_8038900: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r6, r0, 0 ldr r5, _080389B8 ldr r0, [r5] cmp r0, 0 bne _0803892A movs r4, 0x85 lsls r4, 2 adds r0, r4, 0 movs r1, 0x8 bl MemoryAlloc str r0, [r5] movs r1, 0 adds r2, r4, 0 bl MemoryFill8 _0803892A: movs r0, 0x1B negs r0, r0 adds r0, r6 mov r8, r0 mov r12, r5 movs r1, 0xA4 lsls r1, 1 mov r9, r1 ldr r4, _080389BC mov r10, r4 movs r3, 0 movs r2, 0x3 _08038942: mov r5, r12 ldr r1, [r5] adds r1, r3 add r1, r9 mov r0, r10 ldm r0!, {r4,r5,r7} stm r1!, {r4,r5,r7} ldm r0!, {r4,r5,r7} stm r1!, {r4,r5,r7} adds r3, 0x18 subs r2, 0x1 cmp r2, 0 bge _08038942 bl sub_8004914 ldr r4, _080389B8 ldr r0, [r4] movs r7, 0xA4 lsls r7, 1 adds r0, r7 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r2, _080389C0 ldrb r0, [r2] cmp r0, 0 bne _08038986 ldr r0, _080389C4 ldr r1, [r0] adds r7, r4, 0 adds r5, r0, 0 cmp r1, r6 beq _080389A0 _08038986: adds r7, r4, 0 adds r3, r2, 0 ldr r5, _080389C4 ldr r1, _080389C8 movs r2, 0 adds r0, r1, 0 adds r0, 0x35 _08038994: strb r2, [r0] subs r0, 0x1 cmp r0, r1 bge _08038994 movs r0, 0 strb r0, [r3] _080389A0: ldr r0, [r7] str r6, [r0] str r6, [r5] mov r0, r8 cmp r0, 0x7 bhi _08038A36 lsls r0, 2 ldr r1, _080389CC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080389B8: .4byte gUnknown_203B370 _080389BC: .4byte gUnknown_80E71E4 _080389C0: .4byte gUnknown_203B368 _080389C4: .4byte gUnknown_203B36C _080389C8: .4byte gUnknown_202EC50 _080389CC: .4byte _080389D0 .align 2, 0 _080389D0: .4byte _080389F0 .4byte _080389FC .4byte _080389F0 .4byte _080389FC .4byte _080389F0 .4byte _080389FC .4byte _08038A0C .4byte _08038A2E _080389F0: bl sub_8035D74 movs r1, 0 bl sub_8031D70 b _08038A36 _080389FC: ldr r1, _08038A08 movs r0, 0x4 bl sub_80151C0 b _08038A36 .align 2, 0 _08038A08: .4byte gUnknown_202EC50 _08038A0C: movs r0, 0x1F bl sub_8095228 adds r4, r0, 0 movs r1, 0 movs r2, 0x30 bl MemoryFill8 movs r1, 0 movs r0, 0x2 strb r0, [r4] adds r4, 0x22 strb r1, [r4] movs r0, 0x1F bl sub_8031D70 b _08038A36 _08038A2E: ldr r1, _08038A54 movs r0, 0x4 bl sub_80151C0 _08038A36: adds r0, r6, 0 bl sub_8039000 ldr r1, _08038A58 ldr r1, [r1] str r0, [r1, 0x4] bl sub_8039174 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08038A54: .4byte gUnknown_202EC50 _08038A58: .4byte gUnknown_203B370 thumb_func_end sub_8038900 thumb_func_start sub_8038A5C sub_8038A5C: push {r4,lr} bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, _08038A8C ldr r0, [r4] cmp r0, 0 beq _08038A86 bl sub_80155F0 bl sub_8031E10 ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _08038A86: pop {r4} pop {r0} bx r0 .align 2, 0 _08038A8C: .4byte gUnknown_203B370 thumb_func_end sub_8038A5C thumb_func_start sub_8038A90 sub_8038A90: push {r4-r6,lr} sub sp, 0x34 movs r0, 0xB str r0, [sp, 0x30] ldr r5, _08038AB4 ldr r1, _08038AB8 ldr r0, [r1] ldr r0, [r0, 0x4] adds r6, r1, 0 cmp r0, 0x9 bls _08038AA8 b _08038DB0 _08038AA8: lsls r0, 2 ldr r1, _08038ABC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08038AB4: .4byte 0x0000ffdc _08038AB8: .4byte gUnknown_203B370 _08038ABC: .4byte _08038AC0 .align 2, 0 _08038AC0: .4byte _08038AE8 .4byte _08038AFC .4byte _08038AE8 .4byte _08038AFC .4byte _08038AE8 .4byte _08038AFC .4byte _08038C78 .4byte _08038C8C .4byte _08038CC2 .4byte _08038D38 _08038AE8: bl sub_8031DCC ldr r5, _08038AF8 cmp r0, 0 bne _08038AF4 b _08038DB0 _08038AF4: movs r5, 0xB b _08038DB0 .align 2, 0 _08038AF8: .4byte 0x0000ffdc _08038AFC: bl sub_80154F0 adds r4, r0, 0 mov r0, sp movs r1, 0 movs r2, 0x30 bl MemoryFill8 cmp r4, 0x1 bne _08038B12 b _08038CBC _08038B12: cmp r4, 0x1 bcs _08038B18 b _08038CB0 _08038B18: cmp r4, 0x2 beq _08038AF4 cmp r4, 0x3 beq _08038B22 b _08038DB0 _08038B22: ldr r0, _08038B44 ldr r0, [r0] ldr r0, [r0] ldr r1, _08038B48 mov r2, sp bl sub_8039068 subs r0, 0x7 cmp r0, 0x11 bls _08038B38 b _08038DB0 _08038B38: lsls r0, 2 ldr r1, _08038B4C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08038B44: .4byte gUnknown_203B370 _08038B48: .4byte gUnknown_202EC50 _08038B4C: .4byte _08038B50 .align 2, 0 _08038B50: .4byte _08038BA4 .4byte _08038DB0 .4byte _08038BD8 .4byte _08038DB0 .4byte _08038C28 .4byte _08038DB0 .4byte _08038B9C .4byte _08038DB0 .4byte _08038DB0 .4byte _08038DB0 .4byte _08038B98 .4byte _08038BA0 .4byte _08038BD4 .4byte _08038C24 .4byte _08038DB0 .4byte _08038BA8 .4byte _08038BDC .4byte _08038C2C _08038B98: movs r0, 0x11 b _08038CA4 _08038B9C: movs r0, 0xD b _08038CA4 _08038BA0: movs r0, 0x12 b _08038CA4 _08038BA4: movs r0, 0x7 b _08038CA4 _08038BA8: ldr r0, [sp, 0x10] bl sub_8095274 bl sub_8038F98 ldr r0, _08038BCC ldr r1, [r0] movs r0, 0x9 str r0, [r1, 0x4] ldr r5, _08038BD0 mov r1, sp movs r0, 0x2 strb r0, [r1] mov r0, sp bl sub_80951BC b _08038DB0 .align 2, 0 _08038BCC: .4byte gUnknown_203B370 _08038BD0: .4byte 0x0000ffdc _08038BD4: movs r0, 0x13 b _08038CA4 _08038BD8: movs r0, 0x9 b _08038CA4 _08038BDC: bl sub_8038F98 ldr r0, _08038C18 ldr r1, [r0] movs r0, 0x9 str r0, [r1, 0x4] ldr r5, _08038C1C mov r1, sp movs r0, 0x5 strb r0, [r1] mov r0, sp bl sub_80951FC ldr r1, [sp, 0x10] movs r0, 0x1 bl sub_809539C lsls r0, 24 lsrs r0, 24 bl sub_8095228 movs r1, 0x7 strb r1, [r0] ldr r0, _08038C20 movs r1, 0 movs r2, 0x5C bl MemoryFill8 b _08038DB0 .align 2, 0 _08038C18: .4byte gUnknown_203B370 _08038C1C: .4byte 0x0000ffdc _08038C20: .4byte gUnknown_203B484 _08038C24: movs r0, 0x14 b _08038CA4 _08038C28: movs r0, 0xB b _08038CA4 _08038C2C: bl sub_8038F98 ldr r0, _08038C70 ldr r1, [r0] movs r0, 0x9 str r0, [r1, 0x4] ldr r5, _08038C74 ldr r1, [sp, 0x10] movs r0, 0x4 bl sub_809539C lsls r0, 24 lsrs r0, 24 bl sub_8095228 adds r2, r0, 0 mov r1, sp ldm r1!, {r3,r4,r6} stm r2!, {r3,r4,r6} ldm r1!, {r3,r4,r6} stm r2!, {r3,r4,r6} ldm r1!, {r3,r4,r6} stm r2!, {r3,r4,r6} ldm r1!, {r3,r4,r6} stm r2!, {r3,r4,r6} movs r1, 0x6 strb r1, [r0] bl sub_8035D4C adds r0, 0x3A movs r1, 0x1 strb r1, [r0] b _08038DB0 .align 2, 0 _08038C70: .4byte gUnknown_203B370 _08038C74: .4byte 0x0000ffdc _08038C78: bl sub_8031DCC ldr r5, _08038C88 cmp r0, 0 bne _08038C84 b _08038DB0 _08038C84: movs r5, 0xD b _08038DB0 .align 2, 0 _08038C88: .4byte 0x0000ffdc _08038C8C: bl sub_80154F0 cmp r0, 0x1 beq _08038CBC cmp r0, 0x1 bcc _08038CB0 cmp r0, 0x2 beq _08038C84 cmp r0, 0x3 beq _08038CA2 b _08038DB0 _08038CA2: movs r0, 0x15 _08038CA4: bl sub_8038DC0 ldr r0, _08038CB4 ldr r1, [r0] movs r0, 0x8 str r0, [r1, 0x4] _08038CB0: ldr r5, _08038CB8 b _08038DB0 .align 2, 0 _08038CB4: .4byte gUnknown_203B370 _08038CB8: .4byte 0x0000ffdc _08038CBC: bl sub_8031E00 b _08038CB0 _08038CC2: ldr r0, [r6] adds r0, 0x8 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _08038CDA ldr r0, [r6] adds r0, 0x8 add r1, sp, 0x30 bl sub_8013114 _08038CDA: ldr r0, [sp, 0x30] cmp r0, 0xB beq _08038D24 cmp r0, 0xB bhi _08038CEA cmp r0, 0xA beq _08038CEE b _08038DB0 _08038CEA: cmp r0, 0xC bne _08038DB0 _08038CEE: bl sub_8039174 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r1, _08038D1C movs r0, 0x4 bl sub_80151C0 ldr r0, _08038D20 ldr r1, [r0] movs r0, 0x8 str r0, [r1, 0x4] ldr r0, [r1] subs r0, 0x21 movs r5, 0xB cmp r0, 0x1 bhi _08038DB0 b _08038C84 .align 2, 0 _08038D1C: .4byte gUnknown_202EC50 _08038D20: .4byte gUnknown_203B370 _08038D24: ldr r1, [r6] movs r0, 0x8 str r0, [r1, 0x4] ldr r5, _08038D34 bl sub_80391F8 b _08038DB0 .align 2, 0 _08038D34: .4byte 0x0000ffdc _08038D38: adds r4, r6, 0 ldr r0, [r4] adds r0, 0x8 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _08038D52 ldr r0, [r4] adds r0, 0x8 add r1, sp, 0x30 bl sub_8013114 _08038D52: ldr r0, [sp, 0x30] cmp r0, 0xB beq _08038DA4 cmp r0, 0xB bhi _08038D62 cmp r0, 0xA beq _08038D66 b _08038DB0 _08038D62: cmp r0, 0xC bne _08038DB0 _08038D66: bl sub_8039174 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r1, _08038D9C movs r0, 0x4 bl sub_80151C0 ldr r4, _08038DA0 ldr r0, [r4] ldr r0, [r0] bl sub_8039000 ldr r1, [r4] str r0, [r1, 0x4] ldr r0, [r1] subs r0, 0x21 movs r5, 0x2A cmp r0, 0x1 bhi _08038DB0 movs r5, 0x2B b _08038DB0 .align 2, 0 _08038D9C: .4byte gUnknown_202EC50 _08038DA0: .4byte gUnknown_203B370 _08038DA4: ldr r1, [r6] movs r0, 0x9 str r0, [r1, 0x4] ldr r5, _08038DBC bl sub_80391F8 _08038DB0: adds r0, r5, 0 add sp, 0x34 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08038DBC: .4byte 0x0000ffdc thumb_func_end sub_8038A90 thumb_func_start sub_8038DC0 sub_8038DC0: push {r4,lr} sub sp, 0x10 adds r4, r0, 0 ldr r0, _08038DF8 ldr r0, [r0] movs r1, 0xD4 lsls r1, 1 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C bl sub_80155F0 subs r0, r4, 0x7 cmp r0, 0xE bls _08038DEE b _08038F74 _08038DEE: lsls r0, 2 ldr r1, _08038DFC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08038DF8: .4byte gUnknown_203B370 _08038DFC: .4byte _08038E00 .align 2, 0 _08038E00: .4byte _08038E7C .4byte _08038F74 .4byte _08038EDC .4byte _08038F74 .4byte _08038F1C .4byte _08038F74 .4byte _08038E9C .4byte _08038F74 .4byte _08038F74 .4byte _08038F74 .4byte _08038E3C .4byte _08038E5C .4byte _08038EBC .4byte _08038EFC .4byte _08038F50 _08038E3C: ldr r0, _08038E50 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x8 movs r2, 0xA4 lsls r2, 1 adds r1, r2 ldr r3, _08038E54 ldr r2, _08038E58 b _08038F2E .align 2, 0 _08038E50: .4byte gUnknown_203B370 _08038E54: .4byte gUnknown_80E71FC _08038E58: .4byte gUnknown_80E7214 _08038E5C: ldr r0, _08038E70 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x8 movs r2, 0xA4 lsls r2, 1 adds r1, r2 ldr r3, _08038E74 ldr r2, _08038E78 b _08038F2E .align 2, 0 _08038E70: .4byte gUnknown_203B370 _08038E74: .4byte gUnknown_80E72EC _08038E78: .4byte gUnknown_80E7304 _08038E7C: ldr r0, _08038E90 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x8 movs r2, 0xA4 lsls r2, 1 adds r1, r2 ldr r3, _08038E94 ldr r2, _08038E98 b _08038F2E .align 2, 0 _08038E90: .4byte gUnknown_203B370 _08038E94: .4byte gUnknown_80E7344 _08038E98: .4byte gUnknown_80E735C _08038E9C: ldr r0, _08038EB0 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x8 movs r2, 0xA4 lsls r2, 1 adds r1, r2 ldr r3, _08038EB4 ldr r2, _08038EB8 b _08038F2E .align 2, 0 _08038EB0: .4byte gUnknown_203B370 _08038EB4: .4byte gUnknown_80E7588 _08038EB8: .4byte gUnknown_80E75A0 _08038EBC: ldr r0, _08038ED0 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x8 movs r2, 0xA4 lsls r2, 1 adds r1, r2 ldr r3, _08038ED4 ldr r2, _08038ED8 b _08038F2E .align 2, 0 _08038ED0: .4byte gUnknown_203B370 _08038ED4: .4byte gUnknown_80E73AC _08038ED8: .4byte gUnknown_80E73C4 _08038EDC: ldr r0, _08038EF0 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x8 movs r2, 0xA4 lsls r2, 1 adds r1, r2 ldr r3, _08038EF4 ldr r2, _08038EF8 b _08038F2E .align 2, 0 _08038EF0: .4byte gUnknown_203B370 _08038EF4: .4byte gUnknown_80E7408 _08038EF8: .4byte gUnknown_80E7420 _08038EFC: ldr r0, _08038F10 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x8 movs r2, 0xA4 lsls r2, 1 adds r1, r2 ldr r3, _08038F14 ldr r2, _08038F18 b _08038F2E .align 2, 0 _08038F10: .4byte gUnknown_203B370 _08038F14: .4byte gUnknown_80E7468 _08038F18: .4byte gUnknown_80E7480 _08038F1C: ldr r0, _08038F44 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x8 movs r2, 0xA4 lsls r2, 1 adds r1, r2 ldr r3, _08038F48 ldr r2, _08038F4C _08038F2E: str r2, [sp] movs r4, 0 str r4, [sp, 0x4] movs r2, 0xD str r2, [sp, 0x8] str r4, [sp, 0xC] movs r2, 0 bl SetMenuItems b _08038F74 .align 2, 0 _08038F44: .4byte gUnknown_203B370 _08038F48: .4byte gUnknown_80E74C8 _08038F4C: .4byte gUnknown_80E74E0 _08038F50: ldr r0, _08038F8C ldr r1, [r0] adds r0, r1, 0 adds r0, 0x8 movs r2, 0xA4 lsls r2, 1 adds r1, r2 ldr r3, _08038F90 ldr r2, _08038F94 str r2, [sp] movs r4, 0 str r4, [sp, 0x4] movs r2, 0xD str r2, [sp, 0x8] str r4, [sp, 0xC] movs r2, 0 bl SetMenuItems _08038F74: ldr r0, _08038F8C ldr r0, [r0] adds r0, 0x8 movs r1, 0 movs r2, 0x1 bl sub_8035CF4 add sp, 0x10 pop {r4} pop {r0} bx r0 .align 2, 0 _08038F8C: .4byte gUnknown_203B370 _08038F90: .4byte gUnknown_80E752C _08038F94: .4byte gUnknown_80E7544 thumb_func_end sub_8038DC0 thumb_func_start sub_8038F98 sub_8038F98: push {r4,r5,lr} sub sp, 0x10 ldr r5, _08038FF4 ldr r0, [r5] movs r1, 0xD4 lsls r1, 1 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C bl sub_80155F0 ldr r1, [r5] adds r0, r1, 0 adds r0, 0x8 movs r2, 0xA4 lsls r2, 1 adds r1, r2 ldr r3, _08038FF8 ldr r2, _08038FFC str r2, [sp] movs r4, 0 str r4, [sp, 0x4] movs r2, 0xD str r2, [sp, 0x8] str r4, [sp, 0xC] movs r2, 0 bl SetMenuItems ldr r0, [r5] adds r0, 0x8 movs r1, 0 movs r2, 0x1 bl sub_8035CF4 add sp, 0x10 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08038FF4: .4byte gUnknown_203B370 _08038FF8: .4byte gUnknown_80E7278 _08038FFC: .4byte gUnknown_80E7290 thumb_func_end sub_8038F98 thumb_func_start sub_8039000 sub_8039000: push {lr} movs r1, 0xB ldr r0, _0803901C ldr r0, [r0] ldr r0, [r0] subs r0, 0x1B cmp r0, 0x7 bhi _08039062 lsls r0, 2 ldr r1, _08039020 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803901C: .4byte gUnknown_203B370 _08039020: .4byte _08039024 .align 2, 0 _08039024: .4byte _08039044 .4byte _08039054 .4byte _0803904C .4byte _0803905C .4byte _08039048 .4byte _08039058 .4byte _08039050 .4byte _08039060 _08039044: movs r1, 0 b _08039062 _08039048: movs r1, 0x4 b _08039062 _0803904C: movs r1, 0x2 b _08039062 _08039050: movs r1, 0x6 b _08039062 _08039054: movs r1, 0x1 b _08039062 _08039058: movs r1, 0x5 b _08039062 _0803905C: movs r1, 0x3 b _08039062 _08039060: movs r1, 0x7 _08039062: adds r0, r1, 0 pop {r1} bx r1 thumb_func_end sub_8039000 thumb_func_start sub_8039068 sub_8039068: push {r4-r6,lr} adds r6, r0, 0 adds r0, r1, 0 adds r5, r2, 0 adds r1, r5, 0 bl sub_803D204 lsls r0, 24 cmp r0, 0 beq _080390AC ldrb r0, [r5] cmp r0, 0x7 bhi _080390AC ldrb r4, [r5, 0x5] ldrb r0, [r5, 0x4] bl sub_8090298 cmp r4, r0 bge _080390AC movs r0, 0xC ldrsh r1, [r5, r0] cmp r1, 0 beq _080390AC ldr r0, _080390B0 cmp r1, r0 bgt _080390AC adds r0, r5, 0 adds r0, 0x22 ldrb r0, [r0] bl sub_8092040 lsls r0, 24 cmp r0, 0 beq _080390B4 _080390AC: movs r0, 0x11 b _0803916E .align 2, 0 _080390B0: .4byte 0x000001a7 _080390B4: cmp r6, 0x1E beq _08039120 cmp r6, 0x1E bhi _080390C2 cmp r6, 0x1C beq _080390C8 b _0803916A _080390C2: cmp r6, 0x20 beq _08039140 b _0803916A _080390C8: ldrb r0, [r5] cmp r0, 0x1 beq _080390D2 movs r0, 0x12 b _0803916E _080390D2: ldr r1, [r5, 0x10] movs r0, 0x2 bl sub_80952F0 lsls r0, 24 cmp r0, 0 bne _08039108 ldr r1, [r5, 0x10] movs r0, 0x4 bl sub_80952F0 lsls r0, 24 cmp r0, 0 bne _08039108 ldr r1, [r5, 0x10] movs r0, 0x6 bl sub_80952F0 lsls r0, 24 cmp r0, 0 bne _08039108 ldr r0, [r5, 0x10] bl sub_8095298 lsls r0, 24 cmp r0, 0 beq _0803910C _08039108: movs r0, 0x7 b _0803916E _0803910C: bl sub_8095190 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _0803911C movs r0, 0xD b _0803916E _0803911C: movs r0, 0x16 b _0803916E _08039120: ldrb r0, [r5] cmp r0, 0x4 beq _0803912A movs r0, 0x13 b _0803916E _0803912A: ldr r1, [r5, 0x10] movs r0, 0x1 bl sub_80952F0 lsls r0, 24 cmp r0, 0 bne _0803913C movs r0, 0x9 b _0803916E _0803913C: movs r0, 0x17 b _0803916E _08039140: ldrb r0, [r5] cmp r0, 0x5 beq _0803914A movs r0, 0x14 b _0803916E _0803914A: ldr r1, [r5, 0x10] movs r0, 0x4 bl sub_80952F0 lsls r0, 24 cmp r0, 0 beq _08039162 bl sub_8011C34 ldr r1, [r5, 0x28] cmp r1, r0 beq _08039166 _08039162: movs r0, 0xB b _0803916E _08039166: movs r0, 0x18 b _0803916E _0803916A: movs r0, 0x1 negs r0, r0 _0803916E: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8039068 thumb_func_start sub_8039174 sub_8039174: push {r4,lr} ldr r0, _080391D8 ldr r3, [r0] movs r0, 0x82 lsls r0, 2 adds r3, r0 ldrh r1, [r3] ldr r0, _080391DC ands r0, r1 ldr r1, _080391E0 ands r0, r1 ldr r4, _080391E4 ands r0, r4 ldr r1, _080391E8 ands r0, r1 ldr r1, _080391EC ands r0, r1 movs r2, 0x80 lsls r2, 7 ldr r1, _080391F0 ands r0, r1 orrs r0, r2 strh r0, [r3] movs r2, 0xFC lsls r2, 2 ldrh r1, [r3, 0x4] movs r0, 0xFC lsls r0, 8 ands r0, r1 orrs r0, r2 ands r0, r4 movs r2, 0xF movs r4, 0xF0 lsls r4, 8 ldr r1, _080391F4 ands r0, r1 orrs r0, r4 strh r0, [r3, 0x4] movs r0, 0 strh r0, [r3, 0x2] movs r1, 0xC0 lsls r1, 4 ldrh r0, [r3, 0x6] ands r2, r0 orrs r2, r1 strh r2, [r3, 0x6] pop {r4} pop {r0} bx r0 .align 2, 0 _080391D8: .4byte gUnknown_203B370 _080391DC: .4byte 0x0000feff _080391E0: .4byte 0x0000fdff _080391E4: .4byte 0x0000f3ff _080391E8: .4byte 0x0000efff _080391EC: .4byte 0x0000dfff _080391F0: .4byte 0x00003fff _080391F4: .4byte 0x00000fff thumb_func_end sub_8039174 thumb_func_start sub_80391F8 sub_80391F8: push {r4-r6,lr} ldr r6, _08039250 ldr r2, [r6] movs r0, 0x82 lsls r0, 2 adds r4, r2, r0 ldrh r1, [r4, 0x2] movs r0, 0xFE lsls r0, 8 ands r0, r1 movs r1, 0x70 orrs r0, r1 strh r0, [r4, 0x2] movs r3, 0xE0 lsls r3, 3 ldrh r1, [r4, 0x6] movs r0, 0xF ands r0, r1 orrs r0, r3 strh r0, [r4, 0x6] movs r5, 0x84 lsls r5, 2 adds r2, r5 ldr r0, [r2] movs r1, 0x8 ands r0, r1 cmp r0, 0 beq _0803923C adds r1, 0xF8 adds r0, r4, 0 movs r2, 0 movs r3, 0 bl AddSprite _0803923C: bl xxx_draw_string_80144C4 ldr r1, [r6] adds r1, r5 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08039250: .4byte gUnknown_203B370 thumb_func_end sub_80391F8 thumb_func_start sub_8039254 sub_8039254: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x10 adds r6, r0, 0 ldr r5, _080392EC ldr r0, [r5] cmp r0, 0 bne _0803927C movs r4, 0x9F lsls r4, 2 adds r0, r4, 0 movs r1, 0x8 bl MemoryAlloc str r0, [r5] movs r1, 0 adds r2, r4, 0 bl MemoryFill8 _0803927C: ldr r0, [r5] str r6, [r0] mov r12, r5 movs r0, 0xA2 lsls r0, 1 mov r8, r0 ldr r4, _080392F0 movs r3, 0 movs r2, 0x3 _0803928E: mov r5, r12 ldr r1, [r5] adds r1, r3 add r1, r8 adds r0, r4, 0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} adds r3, 0x18 subs r2, 0x1 cmp r2, 0 bge _0803928E bl sub_8004914 ldr r6, _080392EC ldr r0, [r6] movs r5, 0xA2 lsls r5, 1 adds r0, r5 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r1, [r6] adds r0, r1, 0x4 adds r1, r5 ldr r3, _080392F4 ldr r2, _080392F8 str r2, [sp] movs r4, 0 str r4, [sp, 0x4] movs r7, 0x6 str r7, [sp, 0x8] str r4, [sp, 0xC] movs r2, 0 bl SetMenuItems ldr r1, [r6] ldr r0, [r1] cmp r0, 0x7 beq _08039306 cmp r0, 0x7 bhi _080392FC cmp r0, 0x6 beq _08039338 b _08039382 .align 2, 0 _080392EC: .4byte gUnknown_203B374 _080392F0: .4byte gUnknown_80E75F8 _080392F4: .4byte gUnknown_80E7610 _080392F8: .4byte gUnknown_203B378 _080392FC: cmp r0, 0x8 beq _0803934C cmp r0, 0x9 beq _0803936C b _08039382 _08039306: bl sub_8039844 lsls r0, 24 cmp r0, 0 beq _08039324 ldr r1, [r6] adds r0, r1, 0x4 adds r1, r5 ldr r3, _0803931C ldr r2, _08039320 b _08039354 .align 2, 0 _0803931C: .4byte gUnknown_80E762C _08039320: .4byte gUnknown_80E7644 _08039324: ldr r1, [r6] adds r0, r1, 0x4 adds r1, r5 ldr r3, _08039330 ldr r2, _08039334 b _08039354 .align 2, 0 _08039330: .4byte gUnknown_80E762C _08039334: .4byte gUnknown_80E7684 _08039338: adds r0, r1, 0x4 adds r1, r5 ldr r3, _08039344 ldr r2, _08039348 b _08039354 .align 2, 0 _08039344: .4byte gUnknown_80E762C _08039348: .4byte gUnknown_80E76B8 _0803934C: adds r0, r1, 0x4 adds r1, r5 ldr r3, _08039364 ldr r2, _08039368 _08039354: str r2, [sp] str r4, [sp, 0x4] str r7, [sp, 0x8] str r4, [sp, 0xC] movs r2, 0x1 bl SetMenuItems b _08039382 .align 2, 0 _08039364: .4byte gUnknown_80E762C _08039368: .4byte gUnknown_80E76E8 _0803936C: adds r0, r1, 0x4 adds r1, r5 ldr r3, _080393DC ldr r2, _080393E0 str r2, [sp] str r4, [sp, 0x4] str r7, [sp, 0x8] str r4, [sp, 0xC] movs r2, 0x1 bl SetMenuItems _08039382: ldr r4, _080393E4 ldr r1, [r4] adds r0, r1, 0x4 movs r6, 0xA2 lsls r6, 1 adds r1, r6 ldr r3, _080393E8 ldr r2, _080393EC str r2, [sp] movs r2, 0x1 str r2, [sp, 0x4] movs r2, 0x2 str r2, [sp, 0x8] movs r2, 0 str r2, [sp, 0xC] movs r2, 0x2 bl SetMenuItems ldr r0, [r4] adds r0, 0x4 movs r1, 0 movs r2, 0 bl sub_8035CF4 ldr r0, [r4] adds r0, 0x4 movs r1, 0x1 movs r2, 0 bl sub_8035CF4 ldr r0, [r4] adds r0, 0x4 movs r1, 0x2 movs r2, 0x1 bl sub_8035CF4 bl sub_80394A4 add sp, 0x10 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080393DC: .4byte gUnknown_80E762C _080393E0: .4byte gUnknown_80E7730 _080393E4: .4byte gUnknown_203B374 _080393E8: .4byte gUnknown_80E7784 _080393EC: .4byte gUnknown_80E779C thumb_func_end sub_8039254 thumb_func_start sub_80393F0 sub_80393F0: push {r4,lr} bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, _08039418 ldr r0, [r4] cmp r0, 0 beq _08039410 bl MemoryFree movs r0, 0 str r0, [r4] _08039410: pop {r4} pop {r0} bx r0 .align 2, 0 _08039418: .4byte gUnknown_203B374 thumb_func_end sub_80393F0 thumb_func_start sub_803941C sub_803941C: push {r4,r5,lr} sub sp, 0x4 ldr r5, _08039458 movs r0, 0x4 str r0, [sp] ldr r4, _0803945C ldr r0, [r4] adds r0, 0x54 bl sub_8012FD8 ldr r0, [r4] adds r0, 0xA4 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _08039448 ldr r0, [r4] adds r0, 0xA4 mov r1, sp bl sub_8013114 _08039448: ldr r0, [sp] cmp r0, 0x3 bhi _08039498 cmp r0, 0x2 bcs _08039460 cmp r0, 0x1 beq _08039464 b _08039498 .align 2, 0 _08039458: .4byte 0x0000ffdc _0803945C: .4byte gUnknown_203B374 _08039460: movs r5, 0x1 b _08039498 _08039464: ldr r0, [r4] ldr r0, [r0] cmp r0, 0x7 beq _08039480 cmp r0, 0x7 bhi _08039476 cmp r0, 0x6 beq _08039484 b _08039498 _08039476: cmp r0, 0x8 beq _0803948E cmp r0, 0x9 beq _08039492 b _08039498 _08039480: movs r5, 0x2 b _08039498 _08039484: movs r0, 0 bl sub_8095240 movs r5, 0x4 b _08039498 _0803948E: movs r5, 0x9 b _08039498 _08039492: bl sub_80122A8 movs r5, 0x2E _08039498: adds r0, r5, 0 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_803941C thumb_func_start sub_80394A4 sub_80394A4: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x150 bl sub_8011FA8 mov r8, r0 movs r0, 0 bl sub_8008C54 movs r0, 0 bl sub_80073B8 ldr r2, _0803952C movs r4, 0 str r4, [sp] movs r0, 0x8 movs r1, 0 movs r3, 0 bl xxx_call_draw_string ldr r2, _08039530 str r4, [sp] movs r0, 0x8 movs r1, 0xC movs r3, 0 bl xxx_call_draw_string ldr r2, _08039534 str r4, [sp] movs r0, 0x8 movs r1, 0x18 movs r3, 0 bl xxx_call_draw_string ldr r2, _08039538 str r4, [sp] movs r0, 0x8 movs r1, 0x24 movs r3, 0 bl xxx_call_draw_string ldr r2, _0803953C str r4, [sp] movs r0, 0x8 movs r1, 0x30 movs r3, 0 bl xxx_call_draw_string ldr r2, _08039540 str r4, [sp] movs r0, 0x8 movs r1, 0x3C movs r3, 0 bl xxx_call_draw_string movs r0, 0 bl sub_80023E4 lsls r0, 24 cmp r0, 0 beq _08039544 add r4, sp, 0x68 adds r0, r4, 0 bl sub_80920D8 adds r2, r4, 0 b _0803954E .align 2, 0 _0803952C: .4byte gUnknown_80E77BC _08039530: .4byte gUnknown_80E77C4 _08039534: .4byte gUnknown_80E77CC _08039538: .4byte gUnknown_80E77D8 _0803953C: .4byte gUnknown_80E77E4 _08039540: .4byte gUnknown_80E77F0 _08039544: ldr r1, _08039588 add r0, sp, 0x68 bl strcpy add r2, sp, 0x68 _0803954E: ldr r5, _0803958C ldr r0, [r5] movs r4, 0xD2 lsls r4, 1 adds r0, r4 ldr r1, _08039590 bl sub_800D158 ldr r2, [r5] adds r2, r4 movs r0, 0 str r0, [sp] movs r0, 0x40 movs r1, 0 movs r3, 0 bl xxx_call_draw_string bl sub_808D33C cmp r0, 0 bne _08039598 add r4, sp, 0x90 ldr r1, _08039594 adds r0, r4, 0 movs r2, 0xA bl sub_80922B4 b _080395A6 .align 2, 0 _08039588: .4byte gUnknown_80E77F8 _0803958C: .4byte gUnknown_203B374 _08039590: .4byte gUnknown_80E7804 _08039594: .4byte gUnknown_80E7808 _08039598: add r4, sp, 0x90 adds r1, r0, 0 adds r1, 0x4C adds r0, r4, 0 movs r2, 0xA bl sub_80922B4 _080395A6: adds r2, r4, 0 ldr r5, _080395F0 ldr r0, [r5] movs r4, 0xE4 lsls r4, 1 adds r0, r4 ldr r6, _080395F4 adds r1, r6, 0 bl sub_800D158 ldr r2, [r5] adds r2, r4 movs r0, 0 str r0, [sp] movs r0, 0x40 movs r1, 0xC movs r3, 0 bl xxx_call_draw_string movs r0, 0x1 bl sub_8095324 cmp r0, 0 bne _080395E0 movs r0, 0x7 bl sub_8095324 cmp r0, 0 beq _08039606 _080395E0: ldr r0, _080395F8 cmp r8, r0 bne _080395FC ldr r4, [r5] movs r0, 0xF6 lsls r0, 1 adds r4, r0 b _08039676 .align 2, 0 _080395F0: .4byte gUnknown_203B374 _080395F4: .4byte gUnknown_80E7804 _080395F8: .4byte 0x000f1207 _080395FC: ldr r0, [r5] movs r1, 0xF6 lsls r1, 1 adds r0, r1 b _08039690 _08039606: bl sub_8011C1C cmp r0, 0x1 beq _08039624 cmp r0, 0x2 beq _08039668 ldr r0, [r5] movs r2, 0xF6 lsls r2, 1 adds r0, r2 ldr r1, _08039620 b _08039692 .align 2, 0 _08039620: .4byte gUnknown_80E7824 _08039624: movs r0, 0 movs r1, 0x18 bl sub_8001658 cmp r0, 0x7 beq _08039658 cmp r0, 0xB beq _08039658 bl sub_8098FB4 adds r2, r0, 0 add r0, sp, 0x4 adds r1, r6, 0 bl sub_800D158 ldr r0, [r5] movs r3, 0xF6 lsls r3, 1 adds r1, r0, r3 adds r3, 0x24 adds r2, r0, r3 add r0, sp, 0x4 movs r3, 0 bl xxx_format_string b _08039696 _08039658: ldr r0, _08039664 ldr r0, [r0] movs r1, 0xF6 lsls r1, 1 adds r0, r1 b _08039690 .align 2, 0 _08039664: .4byte gUnknown_203B374 _08039668: ldr r0, _08039684 cmp r8, r0 bne _08039688 ldr r4, [r5] movs r2, 0xF6 lsls r2, 1 adds r4, r2 _08039676: bl sub_809769C adds r1, r0, 0 adds r0, r4, 0 bl sub_8090228 b _08039696 .align 2, 0 _08039684: .4byte 0x000f1207 _08039688: ldr r0, [r5] movs r3, 0xF6 lsls r3, 1 adds r0, r3 _08039690: ldr r1, _0803974C _08039692: bl sub_800D158 _08039696: ldr r7, _08039750 ldr r2, [r7] movs r0, 0xF6 lsls r0, 1 adds r2, r0 movs r6, 0 str r6, [sp] movs r0, 0x40 movs r1, 0x18 movs r3, 0 bl xxx_call_draw_string ldr r0, _08039754 ldr r0, [r0] add r1, sp, 0x144 add r2, sp, 0x148 add r3, sp, 0x14C bl sub_8095014 ldr r0, [r7] movs r5, 0x84 lsls r5, 2 adds r0, r5 ldr r1, _08039758 add r2, sp, 0x144 ldr r2, [r2] add r3, sp, 0x148 ldr r3, [r3] add r4, sp, 0x14C ldr r4, [r4] str r4, [sp] bl sub_800D158 ldr r2, [r7] adds r2, r5 str r6, [sp] movs r0, 0x40 movs r1, 0x24 movs r3, 0 bl xxx_call_draw_string bl sub_8097778 adds r2, r0, 0 ldr r0, [r7] movs r4, 0x8D lsls r4, 2 adds r0, r4 ldr r1, _0803975C bl sub_800D158 ldr r2, [r7] adds r2, r4 str r6, [sp] movs r0, 0x40 movs r1, 0x30 movs r3, 0 bl xxx_call_draw_string ldr r0, _08039760 cmp r8, r0 bne _0803976C ldr r0, _08039764 ldr r6, [r0] movs r1, 0xC ldrsh r0, [r6, r1] cmp r0, 0 beq _0803976C add r5, sp, 0x130 adds r1, r0, 0 adds r0, r5, 0 bl sub_808D930 add r4, sp, 0xE0 adds r1, r6, 0 adds r1, 0x50 adds r0, r4, 0 movs r2, 0xA bl sub_80922B4 ldr r0, [r7] movs r3, 0x96 lsls r3, 2 adds r0, r3 ldr r1, _08039768 adds r2, r4, 0 adds r3, r5, 0 bl sub_800D158 b _0803977C .align 2, 0 _0803974C: .4byte gUnknown_80E780C _08039750: .4byte gUnknown_203B374 _08039754: .4byte gUnknown_203B47C _08039758: .4byte gUnknown_80E7838 _0803975C: .4byte gUnknown_80E7848 _08039760: .4byte 0x000f1207 _08039764: .4byte gUnknown_203B484 _08039768: .4byte gUnknown_80E784C _0803976C: ldr r0, _080397AC ldr r0, [r0] movs r1, 0x96 lsls r1, 2 adds r0, r1 ldr r1, _080397B0 bl sub_800D158 _0803977C: ldr r0, _080397AC ldr r2, [r0] movs r3, 0x96 lsls r3, 2 adds r2, r3 movs r0, 0 str r0, [sp] movs r0, 0x40 movs r1, 0x3C movs r3, 0 bl xxx_call_draw_string bl sub_80397B4 movs r0, 0 bl sub_80073E0 add sp, 0x150 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080397AC: .4byte gUnknown_203B374 _080397B0: .4byte gUnknown_80E7854 thumb_func_end sub_80394A4 thumb_func_start sub_80397B4 sub_80397B4: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xC ldr r0, _08039834 ldr r1, _08039838 bl OpenFileAndGetFileDataPtr adds r6, r0, 0 movs r4, 0 _080397C8: adds r0, r4, 0 adds r0, 0xB0 ldr r1, [r6, 0x4] lsls r2, r4, 2 ldr r1, [r1, 0x4] adds r1, r2 bl SetBGPaletteBufferColorArray adds r4, 0x1 cmp r4, 0x3F ble _080397C8 movs r7, 0x8 movs r0, 0x49 mov r8, r0 movs r4, 0 _080397E6: ldr r0, _0803983C lsls r5, r4, 2 adds r0, r5, r0 ldr r0, [r0] bl sub_80023E4 lsls r0, 24 cmp r0, 0 beq _0803981C movs r0, 0x10 str r0, [sp] ldr r0, [r6, 0x4] lsls r1, r4, 7 ldr r0, [r0] adds r0, r1 str r0, [sp, 0x4] ldr r0, _08039840 adds r0, r5, r0 ldr r0, [r0] str r0, [sp, 0x8] movs r0, 0 adds r1, r7, 0 mov r2, r8 movs r3, 0x10 bl sub_8007E20 adds r7, 0x10 _0803981C: adds r4, 0x1 cmp r4, 0xB ble _080397E6 adds r0, r6, 0 bl CloseFile add sp, 0xC pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08039834: .4byte gUnknown_80E785C _08039838: .4byte gUnknown_8380000 _0803983C: .4byte gUnknown_203B3B8 _08039840: .4byte gUnknown_203B388 thumb_func_end sub_80397B4 thumb_func_start sub_8039844 sub_8039844: push {r4,r5,lr} bl sub_8011FA8 adds r5, r0, 0 movs r4, 0 movs r0, 0x1 bl sub_8095324 cmp r0, 0 bne _0803986A movs r0, 0x7 bl sub_8095324 cmp r0, 0 bne _0803986A bl sub_8011C1C cmp r0, 0x2 bne _08039872 _0803986A: ldr r0, _0803987C cmp r5, r0 bne _08039872 movs r4, 0x1 _08039872: adds r0, r4, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0803987C: .4byte 0x000f1207 thumb_func_end sub_8039844 thumb_func_start sub_8039880 sub_8039880: push {r4,lr} movs r4, 0 movs r0, 0x1 bl sub_8095324 cmp r0, 0 bne _080398A0 movs r0, 0x7 bl sub_8095324 cmp r0, 0 bne _080398A0 bl sub_8011C1C cmp r0, 0x2 bne _080398A2 _080398A0: movs r4, 0x1 _080398A2: adds r0, r4, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_8039880 thumb_func_start sub_80398AC sub_80398AC: push {r4,r5,lr} bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r5, _0803991C ldr r4, _08039920 adds r0, r4, 0 movs r1, 0x8 bl MemoryAlloc str r0, [r5] movs r1, 0 adds r2, r4, 0 bl MemoryFill8 movs r1, 0 movs r2, 0 adds r4, r5, 0 _080398D8: ldr r0, [r5] adds r0, 0x1 adds r0, r1 strb r2, [r0] adds r1, 0x1 cmp r1, 0x35 ble _080398D8 ldr r1, [r4] movs r3, 0x92 lsls r3, 3 adds r2, r1, r3 movs r0, 0x3 str r0, [r2] ldr r0, _08039924 adds r2, r1, r0 movs r0, 0x2 str r0, [r2] movs r0, 0x93 lsls r0, 3 adds r1, r0 movs r0, 0x1 strb r0, [r1] ldr r0, [r4] adds r0, r3 movs r1, 0x5 str r1, [r0] movs r0, 0x11 bl sub_803A1C0 movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0803991C: .4byte gUnknown_203B3E8 _08039920: .4byte 0x0000049c _08039924: .4byte 0x00000494 thumb_func_end sub_80398AC thumb_func_start sub_8039928 sub_8039928: push {lr} ldr r0, _08039940 ldr r0, [r0] ldrb r0, [r0] subs r0, 0x4 cmp r0, 0xF bhi _080399DE lsls r0, 2 ldr r1, _08039944 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08039940: .4byte gUnknown_203B3E8 _08039944: .4byte _08039948 .align 2, 0 _08039948: .4byte _08039988 .4byte _0803998E .4byte _0803999E .4byte _080399AA .4byte _08039992 .4byte _080399A4 .4byte _080399C8 .4byte _080399DE .4byte _08039998 .4byte _080399B0 .4byte _080399B6 .4byte _080399BC .4byte _080399C2 .4byte _080399CE .4byte _080399D4 .4byte _080399DA _08039988: bl sub_8039A18 b _080399DE _0803998E: movs r0, 0x3 b _080399E0 _08039992: bl sub_8039AA8 b _080399DE _08039998: bl sub_8039B14 b _080399DE _0803999E: bl sub_8039B20 b _080399DE _080399A4: bl sub_8039B58 b _080399DE _080399AA: bl sub_8039D88 b _080399DE _080399B0: bl sub_8039D28 b _080399DE _080399B6: bl sub_8039D68 b _080399DE _080399BC: bl sub_8039DA4 b _080399DE _080399C2: bl sub_8039DCC b _080399DE _080399C8: bl sub_8039B3C b _080399DE _080399CE: bl sub_8039D0C b _080399DE _080399D4: bl sub_8039C60 b _080399DE _080399DA: bl sub_8039DE8 _080399DE: movs r0, 0 _080399E0: pop {r1} bx r1 thumb_func_end sub_8039928 thumb_func_start sub_80399E4 sub_80399E4: push {r4,lr} ldr r4, _08039A14 ldr r0, [r4] cmp r0, 0 beq _08039A0E bl MemoryFree movs r0, 0 str r0, [r4] bl sub_8030DE4 bl sub_801B450 bl sub_803084C bl sub_801CBB8 bl sub_80155F0 bl sub_8031E10 _08039A0E: pop {r4} pop {r0} bx r0 .align 2, 0 _08039A14: .4byte gUnknown_203B3E8 thumb_func_end sub_80399E4 thumb_func_start sub_8039A18 sub_8039A18: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08039AA2 ldr r0, _08039A48 ldr r1, [r0] movs r2, 0x93 lsls r2, 2 adds r1, r2 movs r2, 0xA str r2, [r1] ldr r1, [sp] adds r2, r0, 0 cmp r1, 0x8 bhi _08039AA2 lsls r0, r1, 2 ldr r1, _08039A4C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08039A48: .4byte gUnknown_203B3E8 _08039A4C: .4byte _08039A50 .align 2, 0 _08039A50: .4byte _08039A9C .4byte _08039AA2 .4byte _08039AA2 .4byte _08039A74 .4byte _08039A74 .4byte _08039A88 .4byte _08039AA2 .4byte _08039AA2 .4byte _08039A9C _08039A74: ldr r0, [r2] movs r1, 0x92 lsls r1, 3 adds r0, r1 movs r1, 0x3 str r1, [r0] movs r0, 0x8 bl sub_803A1C0 b _08039AA2 _08039A88: ldr r0, [r2] movs r2, 0x92 lsls r2, 3 adds r0, r2 movs r1, 0x5 str r1, [r0] movs r0, 0x11 bl sub_803A1C0 b _08039AA2 _08039A9C: movs r0, 0x5 bl sub_803A1C0 _08039AA2: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8039A18 thumb_func_start sub_8039AA8 sub_8039AA8: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08039B0E ldr r0, [sp] cmp r0, 0 beq _08039AE8 cmp r0, 0x6 bne _08039B0E ldr r0, _08039AD8 ldr r0, [r0] ldr r1, _08039ADC adds r0, r1 ldr r0, [r0] cmp r0, 0x1 bne _08039AE0 movs r0, 0x2 bl sub_803A1C0 b _08039B0E .align 2, 0 _08039AD8: .4byte gUnknown_203B3E8 _08039ADC: .4byte 0x00000494 _08039AE0: movs r0, 0xC bl sub_803A1C0 b _08039B0E _08039AE8: ldr r0, _08039B00 ldr r0, [r0] ldr r1, _08039B04 adds r0, r1 ldr r0, [r0] cmp r0, 0x1 bne _08039B08 movs r0, 0x1 bl sub_803A1C0 b _08039B0E .align 2, 0 _08039B00: .4byte gUnknown_203B3E8 _08039B04: .4byte 0x00000494 _08039B08: movs r0, 0x4 bl sub_803A1C0 _08039B0E: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8039AA8 thumb_func_start sub_8039B14 sub_8039B14: push {lr} movs r0, 0x6 bl sub_803A1C0 pop {r0} bx r0 thumb_func_end sub_8039B14 thumb_func_start sub_8039B20 sub_8039B20: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08039B34 movs r0, 0x9 bl sub_803A1C0 _08039B34: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8039B20 thumb_func_start sub_8039B3C sub_8039B3C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08039B50 movs r0, 0x4 bl sub_803A1C0 _08039B50: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8039B3C thumb_func_start sub_8039B58 sub_8039B58: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08039BA6 ldr r0, _08039B88 ldr r1, [r0] movs r2, 0x94 lsls r2, 2 adds r0, r1, r2 ldr r0, [r0] cmp r0, 0 bne _08039B9C subs r2, 0x4 adds r0, r1, r2 ldr r0, [r0] cmp r0, 0x9 beq _08039B8C cmp r0, 0xA beq _08039B94 b _08039BA6 .align 2, 0 _08039B88: .4byte gUnknown_203B3E8 _08039B8C: movs r0, 0x7 bl sub_803A1C0 b _08039BA6 _08039B94: movs r0, 0xD bl sub_803A1C0 b _08039BA6 _08039B9C: bl sub_8039BAC movs r0, 0xA bl sub_803A1C0 _08039BA6: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8039B58 thumb_func_start sub_8039BAC sub_8039BAC: push {lr} cmp r0, 0xF bhi _08039C48 lsls r0, 2 ldr r1, _08039BBC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08039BBC: .4byte _08039BC0 .align 2, 0 _08039BC0: .4byte _08039C54 .4byte _08039C00 .4byte _08039C10 .4byte _08039C08 .4byte _08039C18 .4byte _08039C20 .4byte _08039C48 .4byte _08039C48 .4byte _08039C48 .4byte _08039C48 .4byte _08039C48 .4byte _08039C48 .4byte _08039C48 .4byte _08039C48 .4byte _08039C28 .4byte _08039C30 _08039C00: ldr r0, _08039C04 b _08039C32 .align 2, 0 _08039C04: .4byte gUnknown_80E7914 _08039C08: ldr r0, _08039C0C b _08039C32 .align 2, 0 _08039C0C: .4byte gUnknown_80E7938 _08039C10: ldr r0, _08039C14 b _08039C32 .align 2, 0 _08039C14: .4byte gUnknown_80E7994 _08039C18: ldr r0, _08039C1C b _08039C32 .align 2, 0 _08039C1C: .4byte gUnknown_80E79E4 _08039C20: ldr r0, _08039C24 b _08039C32 .align 2, 0 _08039C24: .4byte gUnknown_80E7914 _08039C28: ldr r0, _08039C2C b _08039C32 .align 2, 0 _08039C2C: .4byte gUnknown_80E7914 _08039C30: ldr r0, _08039C40 _08039C32: ldr r3, _08039C44 movs r1, 0 movs r2, 0 bl sub_80141B4 b _08039C54 .align 2, 0 _08039C40: .4byte gUnknown_80E7A48 _08039C44: .4byte 0x00000101 _08039C48: ldr r0, _08039C58 ldr r3, _08039C5C movs r1, 0 movs r2, 0 bl sub_80141B4 _08039C54: pop {r0} bx r0 .align 2, 0 _08039C58: .4byte gUnknown_80E7914 _08039C5C: .4byte 0x00000101 thumb_func_end sub_8039BAC thumb_func_start sub_8039C60 sub_8039C60: push {r4,r5,lr} bl sub_80154F0 adds r4, r0, 0 ldr r5, _08039CBC ldr r0, [r5] adds r0, 0x38 movs r1, 0 movs r2, 0x30 bl MemoryFill8 cmp r4, 0x2 beq _08039CE6 cmp r4, 0x3 bne _08039D04 bl sub_80155F0 bl sub_8004914 ldr r0, [r5] movs r1, 0xF6 lsls r1, 1 adds r0, r1 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r1, [r5] adds r0, r1, 0x1 adds r1, 0x38 bl sub_803D358 lsls r0, 24 cmp r0, 0 beq _08039CB4 ldr r0, [r5] adds r0, 0x38 bl sub_80959C0 lsls r0, 24 cmp r0, 0 bne _08039CC0 _08039CB4: movs r0, 0x13 bl sub_803A1C0 b _08039D04 .align 2, 0 _08039CBC: .4byte gUnknown_203B3E8 _08039CC0: ldr r0, [r5] movs r2, 0xF0 lsls r2, 2 adds r1, r0, r2 adds r0, 0x38 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r3,r4} stm r1!, {r3,r4} ldr r0, [r5] movs r1, 0x93 lsls r1, 3 adds r0, r1 movs r1, 0x1 strb r1, [r0] movs r0, 0xD bl sub_803A1C0 b _08039D04 _08039CE6: bl sub_80155F0 bl sub_8004914 ldr r0, [r5] movs r2, 0xF6 lsls r2, 1 adds r0, r2 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x5 bl sub_803A1C0 _08039D04: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8039C60 thumb_func_start sub_8039D0C sub_8039D0C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08039D20 movs r0, 0x12 bl sub_803A1C0 _08039D20: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8039D0C thumb_func_start sub_8039D28 sub_8039D28: push {r4,r5,lr} bl sub_802D0E0 cmp r0, 0x3 bne _08039D62 bl sub_802D178 ldr r5, _08039D58 ldr r1, [r5] movs r4, 0x93 lsls r4, 3 adds r1, r4 strb r0, [r1] bl sub_802D184 ldr r0, [r5] adds r0, r4 ldrb r0, [r0] cmp r0, 0 beq _08039D5C movs r0, 0xE bl sub_803A1C0 b _08039D62 .align 2, 0 _08039D58: .4byte gUnknown_203B3E8 _08039D5C: movs r0, 0x10 bl sub_803A1C0 _08039D62: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8039D28 thumb_func_start sub_8039D68 sub_8039D68: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08039D82 movs r0, 0xF bl sub_803A1C0 movs r0, 0 bl sub_8012574 _08039D82: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8039D68 thumb_func_start sub_8039D88 sub_8039D88: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08039D9C movs r0, 0x8 bl sub_803A1C0 _08039D9C: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8039D88 thumb_func_start sub_8039DA4 sub_8039DA4: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08039DC6 bl sub_8012600 lsls r0, 24 cmp r0, 0 bne _08039DC6 bl sub_8012750 movs r0, 0x10 bl sub_803A1C0 _08039DC6: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8039DA4 thumb_func_start sub_8039DCC sub_8039DCC: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08039DE0 movs r0, 0x5 bl sub_803A1C0 _08039DE0: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8039DCC thumb_func_start sub_8039DE8 sub_8039DE8: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08039E0E ldr r0, [sp] cmp r0, 0 beq _08039E08 cmp r0, 0x6 bne _08039E0E movs r0, 0x11 bl sub_803A1C0 b _08039E0E _08039E08: movs r0, 0x5 bl sub_803A1C0 _08039E0E: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8039DE8 thumb_func_start nullsub_54 nullsub_54: bx lr thumb_func_end nullsub_54 thumb_func_start sub_8039E18 sub_8039E18: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x14 ldr r1, _08039E38 ldr r0, [r1] ldrb r0, [r0] adds r6, r1, 0 cmp r0, 0x13 bls _08039E2E b _0803A1AA _08039E2E: lsls r0, 2 ldr r1, _08039E3C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08039E38: .4byte gUnknown_203B3E8 _08039E3C: .4byte _08039E40 .align 2, 0 _08039E40: .4byte _08039E90 .4byte _08039EB8 .4byte _0803A1AA .4byte _08039EC8 .4byte _08039EDC .4byte _0803A1AA .4byte _08039FF4 .4byte _08039FA4 .4byte _08039FCC .4byte _0803A00C .4byte _0803A1AA .4byte _0803A1AA .4byte _0803A1AA .4byte _08039F04 .4byte _08039F68 .4byte _0803A1AA .4byte _08039FAC .4byte _0803A152 .4byte _0803A168 .4byte _0803A18E _08039E90: ldr r0, _08039EB0 ldr r3, _08039EB4 movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] adds r1, 0xFD str r1, [sp, 0x10] movs r1, 0 movs r2, 0x1 bl sub_8014248 b _0803A1AA .align 2, 0 _08039EB0: .4byte gUnknown_80E7AC4 _08039EB4: .4byte gUnknown_80E786C _08039EB8: ldr r0, _08039EC0 ldr r3, _08039EC4 b _08039EE0 .align 2, 0 _08039EC0: .4byte gUnknown_80E7AE0 _08039EC4: .4byte gUnknown_80E7894 _08039EC8: bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C bl sub_802EF48 b _0803A1AA _08039EDC: ldr r0, _08039EFC ldr r3, _08039F00 _08039EE0: movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] adds r1, 0xFD str r1, [sp, 0x10] movs r1, 0 movs r2, 0x3 bl sub_8014248 b _0803A1AA .align 2, 0 _08039EFC: .4byte gUnknown_80E7B14 _08039F00: .4byte gUnknown_80E78D8 _08039F04: ldr r0, [r6] ldr r2, _08039F3C adds r1, r0, r2 movs r3, 0xF0 lsls r3, 2 adds r0, r3 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2,r4} stm r1!, {r2,r4} ldr r2, [r6] ldr r3, _08039F40 adds r0, r2, r3 ldrb r0, [r0] cmp r0, 0x4 bne _08039F44 movs r4, 0x91 lsls r4, 3 adds r1, r2, r4 subs r3, 0xA2 adds r0, r2, r3 str r0, [r1] adds r4, 0x4 adds r1, r2, r4 adds r3, 0x28 adds r0, r2, r3 str r0, [r1] b _08039F54 .align 2, 0 _08039F3C: .4byte 0x00000474 _08039F40: .4byte 0x00000476 _08039F44: movs r4, 0x91 lsls r4, 3 adds r0, r2, r4 movs r1, 0 str r1, [r0] ldr r3, _08039F60 adds r0, r2, r3 str r1, [r0] _08039F54: ldr r0, [r6] ldr r4, _08039F64 adds r0, r4 bl sub_802D098 b _0803A1AA .align 2, 0 _08039F60: .4byte 0x0000048c _08039F64: .4byte 0x00000474 _08039F68: ldr r1, [r6] movs r2, 0x93 lsls r2, 3 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 beq _08039F9C movs r3, 0x92 lsls r3, 3 adds r0, r1, r3 ldr r0, [r0] cmp r0, 0x4 bne _08039F84 b _0803A1AA _08039F84: cmp r0, 0x4 bgt _08039F8E cmp r0, 0x3 beq _08039F94 b _0803A1AA _08039F8E: cmp r0, 0x5 beq _08039F94 b _0803A1AA _08039F94: ldr r0, _08039F98 b _0803A154 .align 2, 0 _08039F98: .4byte gUnknown_80E7B48 _08039F9C: ldr r0, _08039FA0 b _0803A154 .align 2, 0 _08039FA0: .4byte gUnknown_80E7B48 _08039FA4: ldr r0, _08039FA8 b _0803A154 .align 2, 0 _08039FA8: .4byte gUnknown_80E7B68 _08039FAC: ldr r0, [r6] movs r4, 0x93 lsls r4, 3 adds r0, r4 ldrb r0, [r0] cmp r0, 0 beq _08039FC4 ldr r0, _08039FC0 b _0803A154 .align 2, 0 _08039FC0: .4byte gUnknown_80E7B88 _08039FC4: ldr r0, _08039FC8 b _0803A154 .align 2, 0 _08039FC8: .4byte gUnknown_80E7BC8 _08039FCC: ldr r0, _08039FEC ldr r3, _08039FF0 movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] adds r1, 0xFD str r1, [sp, 0x10] movs r1, 0 movs r2, 0x6 bl sub_8014248 b _0803A1AA .align 2, 0 _08039FEC: .4byte gUnknown_80E7BEC _08039FF0: .4byte gUnknown_80E78F8 _08039FF4: movs r0, 0 bl nullsub_23 ldr r0, _0803A008 movs r1, 0 movs r2, 0 movs r3, 0 bl sub_80141B4 b _0803A1AA .align 2, 0 _0803A008: .4byte gUnknown_80E7C48 _0803A00C: ldr r0, [r6] movs r1, 0x94 lsls r1, 2 mov r8, r1 add r0, r8 movs r1, 0 str r1, [r0] bl sub_8011830 ldr r0, [r6] movs r7, 0x93 lsls r7, 2 adds r0, r7 ldr r0, [r0] bl sub_8037B28 ldr r2, [r6] mov r3, r8 adds r1, r2, r3 str r0, [r1] cmp r0, 0 beq _0803A03A b _0803A14C _0803A03A: adds r4, r7, 0 adds r0, r2, r4 ldr r0, [r0] cmp r0, 0x9 beq _0803A04A cmp r0, 0xA beq _0803A0AA b _0803A0DE _0803A04A: movs r5, 0x95 lsls r5, 2 adds r0, r2, r5 movs r1, 0 movs r2, 0xB4 bl MemoryFill8 ldr r0, [r6] movs r1, 0xEF lsls r1, 2 adds r0, r1 ldrb r0, [r0] bl sub_803B344 adds r4, r0, 0 ldr r1, [r4, 0x14] cmp r1, 0 beq _0803A08C ldr r0, [r6] movs r2, 0x9A lsls r2, 2 adds r0, r2 movs r2, 0x28 bl MemoryCopy8 ldr r0, [r6] movs r3, 0xA4 lsls r3, 2 adds r0, r3 ldr r1, [r4, 0x18] movs r2, 0x78 bl MemoryCopy8 _0803A08C: ldr r1, [r6] adds r1, r5 adds r0, r4, 0 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2,r4} stm r1!, {r2,r4} ldr r2, [r6] adds r0, r2, r7 ldr r0, [r0] adds r1, r2, r5 movs r3, 0xC2 lsls r3, 2 adds r2, r3 b _0803A0D4 _0803A0AA: movs r4, 0x95 lsls r4, 2 adds r0, r2, r4 movs r1, 0 movs r2, 0xB4 bl MemoryFill8 ldr r0, [r6] movs r5, 0xC2 lsls r5, 2 adds r0, r5 movs r1, 0 movs r2, 0xB4 bl MemoryFill8 ldr r2, [r6] adds r0, r2, r7 ldr r0, [r0] adds r4, r2, r4 adds r2, r5 adds r1, r4, 0 _0803A0D4: bl sub_8037D64 ldr r1, [r6] add r1, r8 str r0, [r1] _0803A0DE: ldr r4, _0803A134 ldr r2, [r4] movs r5, 0x94 lsls r5, 2 adds r0, r2, r5 ldr r0, [r0] cmp r0, 0 bne _0803A14C movs r1, 0x93 lsls r1, 2 adds r0, r2, r1 ldr r0, [r0] cmp r0, 0xA bhi _0803A14C cmp r0, 0x9 bcc _0803A14C movs r3, 0x95 lsls r3, 2 adds r1, r2, r3 adds r3, 0xB4 adds r2, r3 bl sub_80381F4 ldr r1, [r4] adds r1, r5 str r0, [r1] bl sub_800D588 lsls r0, 24 cmp r0, 0 beq _0803A138 ldr r1, [r4] movs r4, 0xF0 lsls r4, 2 adds r0, r1, r4 movs r2, 0xC2 lsls r2, 2 adds r1, r2 movs r2, 0xB4 bl memcpy b _0803A14C .align 2, 0 _0803A134: .4byte gUnknown_203B3E8 _0803A138: ldr r1, [r4] movs r3, 0xF0 lsls r3, 2 adds r0, r1, r3 movs r4, 0x95 lsls r4, 2 adds r1, r4 movs r2, 0xB4 bl memcpy _0803A14C: bl sub_8011854 b _0803A1AA _0803A152: ldr r0, _0803A160 _0803A154: ldr r3, _0803A164 movs r1, 0 movs r2, 0 bl sub_80141B4 b _0803A1AA .align 2, 0 _0803A160: .4byte gUnknown_80E7C98 _0803A164: .4byte 0x00000101 _0803A168: ldr r0, [r6] movs r1, 0xF6 lsls r1, 1 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r1, [r6] adds r1, 0x1 movs r0, 0x5 bl sub_80151C0 b _0803A1AA _0803A18E: ldr r0, _0803A1B8 ldr r3, _0803A1BC movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] adds r1, 0xFD str r1, [sp, 0x10] movs r1, 0 movs r2, 0x6 bl sub_8014248 _0803A1AA: add sp, 0x14 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803A1B8: .4byte gUnknown_80E7CC4 _0803A1BC: .4byte gUnknown_80E78F8 thumb_func_end sub_8039E18 thumb_func_start sub_803A1C0 sub_803A1C0: push {lr} ldr r1, _0803A1D4 ldr r1, [r1] strb r0, [r1] bl nullsub_54 bl sub_8039E18 pop {r0} bx r0 .align 2, 0 _0803A1D4: .4byte gUnknown_203B3E8 thumb_func_end sub_803A1C0 thumb_func_start sub_803A1D8 sub_803A1D8: movs r0, 0x1 bx lr thumb_func_end sub_803A1D8 thumb_func_start sub_803A1DC sub_803A1DC: movs r0, 0 bx lr thumb_func_end sub_803A1DC thumb_func_start nullsub_55 nullsub_55: bx lr thumb_func_end nullsub_55 thumb_func_start sub_803A1E4 sub_803A1E4: movs r0, 0x1 bx lr thumb_func_end sub_803A1E4 thumb_func_start sub_803A1E8 sub_803A1E8: movs r0, 0x2 bx lr thumb_func_end sub_803A1E8 thumb_func_start sub_803A1EC sub_803A1EC: push {lr} bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r0} bx r0 thumb_func_end sub_803A1EC thumb_func_start sub_803A200 sub_803A200: push {r4-r7,lr} mov r7, r8 push {r7} ldr r5, _0803A270 ldr r0, [r5] cmp r0, 0 bne _0803A224 movs r4, 0xD2 lsls r4, 1 adds r0, r4, 0 movs r1, 0x8 bl MemoryAlloc str r0, [r5] movs r1, 0 adds r2, r4, 0 bl MemoryFill8 _0803A224: mov r12, r5 movs r0, 0xA0 lsls r0, 1 mov r8, r0 ldr r4, _0803A274 movs r3, 0 movs r2, 0x3 _0803A232: mov r5, r12 ldr r1, [r5] adds r1, r3 add r1, r8 adds r0, r4, 0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} adds r3, 0x18 subs r2, 0x1 cmp r2, 0 bge _0803A232 bl sub_8004914 ldr r0, _0803A270 ldr r0, [r0] movs r6, 0xA0 lsls r6, 1 adds r0, r6 movs r1, 0x1 movs r2, 0x1 bl sub_800641C bl SetDebugMenuItems pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803A270: .4byte gUnknown_203B3EC _0803A274: .4byte gUnknown_80E7D40 thumb_func_end sub_803A200 thumb_func_start sub_803A278 sub_803A278: push {r4,lr} bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, _0803A2A0 ldr r0, [r4] cmp r0, 0 beq _0803A298 bl MemoryFree movs r0, 0 str r0, [r4] _0803A298: pop {r4} pop {r0} bx r0 .align 2, 0 _0803A2A0: .4byte gUnknown_203B3EC thumb_func_end sub_803A278 thumb_func_start sub_803A2A4 sub_803A2A4: push {r4,r5,lr} sub sp, 0x4 ldr r4, _0803A2D4 movs r0, 0xB str r0, [sp] ldr r5, _0803A2D8 ldr r0, [r5] bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _0803A2C4 ldr r0, [r5] mov r1, sp bl sub_8013114 _0803A2C4: ldr r0, [sp] cmp r0, 0xB bhi _0803A34E lsls r0, 2 ldr r1, _0803A2DC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803A2D4: .4byte 0x0000ffdc _0803A2D8: .4byte gUnknown_203B3EC _0803A2DC: .4byte _0803A2E0 .align 2, 0 _0803A2E0: .4byte _0803A310 .4byte _0803A314 .4byte _0803A318 .4byte _0803A31C .4byte _0803A320 .4byte _0803A324 .4byte _0803A328 .4byte _0803A34E .4byte _0803A34E .4byte _0803A330 .4byte _0803A344 .4byte _0803A34C _0803A310: movs r4, 0x2F b _0803A34E _0803A314: movs r4, 0x30 b _0803A34E _0803A318: movs r4, 0x31 b _0803A34E _0803A31C: movs r4, 0x32 b _0803A34E _0803A320: movs r4, 0x33 b _0803A34E _0803A324: movs r4, 0x34 b _0803A34E _0803A328: bl sub_803A3BC movs r4, 0x1 b _0803A34E _0803A330: movs r4, 0 _0803A332: lsls r0, r4, 24 lsrs r0, 24 bl sub_80976F8 adds r4, 0x1 cmp r4, 0x1F ble _0803A332 movs r4, 0x1 b _0803A34E _0803A344: bl sub_803A3A0 movs r4, 0x1 b _0803A34E _0803A34C: ldr r4, _0803A358 _0803A34E: adds r0, r4, 0 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0803A358: .4byte 0x0000ffdc thumb_func_end sub_803A2A4 thumb_func_start SetDebugMenuItems SetDebugMenuItems: push {r4,lr} sub sp, 0x10 ldr r4, _0803A394 ldr r0, [r4] movs r2, 0xA0 lsls r2, 1 adds r1, r0, r2 ldr r3, _0803A398 ldr r2, _0803A39C str r2, [sp] movs r2, 0x1 str r2, [sp, 0x4] movs r2, 0xD str r2, [sp, 0x8] movs r2, 0 str r2, [sp, 0xC] bl SetMenuItems ldr r0, [r4] movs r1, 0 movs r2, 0x1 bl sub_8035CF4 add sp, 0x10 pop {r4} pop {r0} bx r0 .align 2, 0 _0803A394: .4byte gUnknown_203B3EC _0803A398: .4byte gUnknown_80E7D58 _0803A39C: .4byte gUnknown_80E7D70 thumb_func_end SetDebugMenuItems thumb_func_start sub_803A3A0 sub_803A3A0: push {lr} ldr r0, _0803A3B8 ldr r0, [r0] movs r1, 0xA0 lsls r1, 1 adds r0, r1 movs r1, 0 bl sub_8035CC0 pop {r0} bx r0 .align 2, 0 _0803A3B8: .4byte gUnknown_203B3EC thumb_func_end sub_803A3A0 thumb_func_start sub_803A3BC sub_803A3BC: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x84 movs r5, 0x1 add r4, sp, 0x60 add r6, sp, 0x68 add r0, sp, 0x7C mov r8, r0 add r0, sp, 0x80 mov r10, r0 _0803A3D6: lsls r0, r5, 24 lsrs r0, 24 bl sub_80925EC adds r5, 0x1 cmp r5, 0x39 ble _0803A3D6 movs r5, 0 adds r7, r4, 0 _0803A3E8: movs r0, 0 mov r9, r0 ldr r0, _0803A454 str r0, [sp, 0x7C] adds r5, 0x1 lsls r4, r5, 16 asrs r4, 16 adds r0, r7, 0 movs r1, 0 movs r2, 0x8 bl memset movs r0, 0x27 strh r0, [r7] adds r0, r6, 0 adds r1, r4, 0 bl sub_808D8BC adds r0, r6, 0 adds r1, r6, 0 bl sub_80922F4 movs r0, 0x40 strb r0, [r6] mov r0, r8 str r0, [sp] str r7, [sp, 0x4] add r0, sp, 0x8 adds r1, r4, 0 adds r2, r6, 0 movs r3, 0x43 bl sub_808CFD0 add r0, sp, 0x8 bl sub_808D1DC ldr r0, _0803A458 cmp r5, r0 ble _0803A3E8 mov r0, r9 str r0, [sp, 0x80] mov r0, r10 movs r1, 0x1 bl sub_801203C add sp, 0x84 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803A454: .4byte 0x00001006 _0803A458: .4byte 0x0000012b thumb_func_end sub_803A3BC thumb_func_start sub_803A45C sub_803A45C: push {r4,lr} bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, _0803A488 movs r0, 0x9C lsls r0, 1 movs r1, 0x8 bl MemoryAlloc str r0, [r4] movs r0, 0 bl sub_803A504 movs r0, 0x1 pop {r4} pop {r1} bx r1 .align 2, 0 _0803A488: .4byte gUnknown_203B3F0 thumb_func_end sub_803A45C thumb_func_start sub_803A48C sub_803A48C: push {lr} ldr r0, _0803A4A4 ldr r0, [r0] ldr r0, [r0] cmp r0, 0x5 bhi _0803A4E0 lsls r0, 2 ldr r1, _0803A4A8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803A4A4: .4byte gUnknown_203B3F0 _0803A4A8: .4byte _0803A4AC .align 2, 0 _0803A4AC: .4byte _0803A4C4 .4byte _0803A4C4 .4byte _0803A4CA .4byte _0803A4D0 .4byte _0803A4D6 .4byte _0803A4DC _0803A4C4: bl sub_803A740 b _0803A4E0 _0803A4CA: bl sub_803A7B0 b _0803A4E0 _0803A4D0: bl sub_803A810 b _0803A4E0 _0803A4D6: bl sub_803A86C b _0803A4E0 _0803A4DC: movs r0, 0x3 b _0803A4E2 _0803A4E0: movs r0, 0 _0803A4E2: pop {r1} bx r1 thumb_func_end sub_803A48C thumb_func_start sub_803A4E8 sub_803A4E8: push {r4,lr} ldr r4, _0803A500 ldr r0, [r4] cmp r0, 0 beq _0803A4FA bl MemoryFree movs r0, 0 str r0, [r4] _0803A4FA: pop {r4} pop {r0} bx r0 .align 2, 0 _0803A500: .4byte gUnknown_203B3F0 thumb_func_end sub_803A4E8 thumb_func_start sub_803A504 sub_803A504: push {lr} ldr r1, _0803A518 ldr r1, [r1] str r0, [r1] bl sub_803A51C bl sub_803A5A0 pop {r0} bx r0 .align 2, 0 _0803A518: .4byte gUnknown_203B3F0 thumb_func_end sub_803A504 thumb_func_start sub_803A51C sub_803A51C: push {r4-r7,lr} ldr r4, _0803A53C ldr r0, [r4] adds r0, 0xD8 bl sub_8006518 ldr r1, [r4] ldr r0, [r1] cmp r0, 0x2 beq _0803A544 cmp r0, 0x3 bne _0803A55C adds r1, 0xF0 ldr r0, _0803A540 b _0803A54C .align 2, 0 _0803A53C: .4byte gUnknown_203B3F0 _0803A540: .4byte gUnknown_80E7E64 _0803A544: movs r0, 0x84 lsls r0, 1 adds r1, r0 ldr r0, _0803A558 _0803A54C: ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r5-r7} stm r1!, {r5-r7} b _0803A57E .align 2, 0 _0803A558: .4byte gUnknown_80E7E4C _0803A55C: mov r12, r4 ldr r4, _0803A598 movs r3, 0 movs r2, 0x3 _0803A564: mov r0, r12 ldr r1, [r0] adds r1, r3 adds r1, 0xD8 adds r0, r4, 0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} adds r3, 0x18 subs r2, 0x1 cmp r2, 0 bge _0803A564 _0803A57E: bl sub_8004914 ldr r0, _0803A59C ldr r0, [r0] adds r0, 0xD8 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803A598: .4byte gUnknown_80E7E34 _0803A59C: .4byte gUnknown_203B3F0 thumb_func_end sub_803A51C thumb_func_start sub_803A5A0 sub_803A5A0: push {lr} sub sp, 0xC ldr r1, _0803A5BC ldr r0, [r1] ldr r0, [r0] adds r2, r1, 0 cmp r0, 0x5 bhi _0803A68A lsls r0, 2 ldr r1, _0803A5C0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803A5BC: .4byte gUnknown_203B3F0 _0803A5C0: .4byte _0803A5C4 .align 2, 0 _0803A5C4: .4byte _0803A5DC .4byte _0803A5EA .4byte _0803A5F2 .4byte _0803A61C .4byte _0803A678 .4byte _0803A68A _0803A5DC: movs r0, 0x2 movs r1, 0x3 movs r2, 0 movs r3, 0xA bl sub_801C8C4 b _0803A68A _0803A5EA: movs r0, 0x1 bl sub_801CB5C b _0803A68A _0803A5F2: bl sub_801CCD8 bl sub_803A6F0 ldr r0, _0803A618 ldr r2, [r0] adds r0, r2, 0 adds r0, 0x4C adds r1, r2, 0 adds r1, 0xC ldr r2, [r2, 0x8] str r2, [sp] movs r2, 0x2 str r2, [sp, 0x4] movs r2, 0 movs r3, 0 bl sub_8012D60 b _0803A68A .align 2, 0 _0803A618: .4byte gUnknown_203B3F0 _0803A61C: ldr r3, [r2] adds r1, r3, 0 adds r1, 0xAC movs r0, 0x3 str r0, [r1] subs r1, 0x8 movs r0, 0 str r0, [r1] adds r1, 0x4 ldr r0, _0803A670 str r0, [r1] adds r2, r3, 0 adds r2, 0xA0 ldr r0, _0803A674 ldr r1, [r0] ldrb r0, [r3, 0x4] lsls r0, 1 adds r1, 0x50 adds r1, r0 ldrh r0, [r1] str r0, [r2] adds r1, r3, 0 adds r1, 0xB0 movs r0, 0x1 str r0, [r1] adds r1, 0x4 adds r0, r3, 0 adds r0, 0xF0 str r0, [r1] adds r1, 0x4 movs r0, 0x2C str r0, [r1] adds r1, 0x4 movs r0, 0x12 str r0, [r1] adds r0, r3, 0 adds r0, 0x9C bl sub_8013AA0 bl sub_803A690 b _0803A68A .align 2, 0 _0803A670: .4byte 0x000003e7 _0803A674: .4byte gUnknown_203B460 _0803A678: ldr r0, [r2] ldrb r1, [r0, 0x4] add r0, sp, 0x8 movs r2, 0 bl sub_8090A8C add r0, sp, 0x8 bl sub_801B3C0 _0803A68A: add sp, 0xC pop {r0} bx r0 thumb_func_end sub_803A5A0 thumb_func_start sub_803A690 sub_803A690: push {r4,lr} sub sp, 0x4 ldr r4, _0803A6E8 ldr r0, [r4] adds r0, 0xB0 ldr r0, [r0] bl sub_8008C54 ldr r0, [r4] adds r0, 0xB0 ldr r0, [r0] bl sub_80073B8 ldr r2, _0803A6EC ldr r0, [r4] adds r0, 0xB0 ldr r3, [r0] movs r0, 0 str r0, [sp] movs r0, 0x4 movs r1, 0 bl xxx_call_draw_string ldr r0, [r4] adds r0, 0x9C bl sub_8013C68 ldr r0, [r4] adds r0, 0xB0 ldr r0, [r0] bl sub_80073E0 bl sub_801CCD8 ldr r0, [r4] adds r0, 0x4C movs r1, 0 bl sub_8012EA4 add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0803A6E8: .4byte gUnknown_203B3F0 _0803A6EC: .4byte gUnknown_80E7E7C thumb_func_end sub_803A690 thumb_func_start sub_803A6F0 sub_803A6F0: push {r4,lr} ldr r4, _0803A734 ldr r1, [r4] ldr r0, _0803A738 str r0, [r1, 0xC] movs r0, 0x2 str r0, [r1, 0x10] str r0, [r1, 0x8] ldrb r0, [r1, 0x4] bl sub_8091524 lsls r0, 24 cmp r0, 0 bne _0803A718 ldr r0, [r4] movs r1, 0x1 negs r1, r1 str r1, [r0, 0x10] movs r1, 0x3 str r1, [r0, 0x8] _0803A718: ldr r1, [r4] movs r2, 0x1 ldr r0, _0803A73C ldr r0, [r0] str r0, [r1, 0x14] movs r0, 0x3 str r0, [r1, 0x18] movs r0, 0 str r0, [r1, 0x1C] str r2, [r1, 0x20] pop {r4} pop {r0} bx r0 .align 2, 0 _0803A734: .4byte gUnknown_203B3F0 _0803A738: .4byte gUnknown_80E7E7C _0803A73C: .4byte gUnknown_80D4970 thumb_func_end sub_803A6F0 thumb_func_start sub_803A740 sub_803A740: push {lr} movs r0, 0x1 bl sub_801CA08 cmp r0, 0x4 bhi _0803A7AA lsls r0, 2 ldr r1, _0803A758 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803A758: .4byte _0803A75C .align 2, 0 _0803A75C: .4byte _0803A7AA .4byte _0803A7AA .4byte _0803A7A0 .4byte _0803A770 .4byte _0803A788 _0803A770: bl sub_801CB24 ldr r1, _0803A784 ldr r1, [r1] strb r0, [r1, 0x4] movs r0, 0x2 bl sub_803A504 b _0803A7AA .align 2, 0 _0803A784: .4byte gUnknown_203B3F0 _0803A788: bl sub_801CB24 ldr r1, _0803A79C ldr r1, [r1] strb r0, [r1, 0x4] movs r0, 0x4 bl sub_803A504 b _0803A7AA .align 2, 0 _0803A79C: .4byte gUnknown_203B3F0 _0803A7A0: bl sub_801CBB8 movs r0, 0x5 bl sub_803A504 _0803A7AA: pop {r0} bx r0 thumb_func_end sub_803A740 thumb_func_start sub_803A7B0 sub_803A7B0: push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] bl sub_801CA08 ldr r4, _0803A7E8 ldr r0, [r4] adds r0, 0x4C bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _0803A7D6 ldr r0, [r4] adds r0, 0x4C mov r1, sp bl sub_8013114 _0803A7D6: ldr r0, [sp] cmp r0, 0x2 beq _0803A7F2 cmp r0, 0x2 bgt _0803A7EC cmp r0, 0x1 beq _0803A802 b _0803A808 .align 2, 0 _0803A7E8: .4byte gUnknown_203B3F0 _0803A7EC: cmp r0, 0x3 beq _0803A7FA b _0803A808 _0803A7F2: movs r0, 0x3 bl sub_803A504 b _0803A808 _0803A7FA: movs r0, 0x4 bl sub_803A504 b _0803A808 _0803A802: movs r0, 0x1 bl sub_803A504 _0803A808: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_803A7B0 thumb_func_start sub_803A810 sub_803A810: push {r4,lr} movs r0, 0 bl sub_801CA08 ldr r4, _0803A838 ldr r0, [r4] adds r0, 0x4C bl sub_8012FD8 ldr r0, [r4] adds r0, 0x9C bl sub_8013BBC cmp r0, 0x2 beq _0803A854 cmp r0, 0x2 bhi _0803A83C cmp r0, 0x1 beq _0803A860 b _0803A864 .align 2, 0 _0803A838: .4byte gUnknown_203B3F0 _0803A83C: cmp r0, 0x3 bne _0803A864 ldr r0, _0803A85C ldr r2, [r0] ldr r1, [r4] ldrb r0, [r1, 0x4] lsls r0, 1 adds r2, 0x50 adds r2, r0 adds r1, 0x9C ldr r0, [r1] strh r0, [r2] _0803A854: movs r0, 0x1 bl sub_803A504 b _0803A864 .align 2, 0 _0803A85C: .4byte gUnknown_203B460 _0803A860: bl sub_803A690 _0803A864: pop {r4} pop {r0} bx r0 thumb_func_end sub_803A810 thumb_func_start sub_803A86C sub_803A86C: push {lr} bl sub_801B410 cmp r0, 0x1 bls _0803A884 cmp r0, 0x3 bhi _0803A884 bl sub_801B450 movs r0, 0x1 bl sub_803A504 _0803A884: pop {r0} bx r0 thumb_func_end sub_803A86C thumb_func_start sub_803A888 sub_803A888: push {r4,lr} bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, _0803A8B4 movs r0, 0xFC movs r1, 0x8 bl MemoryAlloc str r0, [r4] movs r0, 0 bl sub_803A924 movs r0, 0x1 pop {r4} pop {r1} bx r1 .align 2, 0 _0803A8B4: .4byte gUnknown_203B3F4 thumb_func_end sub_803A888 thumb_func_start sub_803A8B8 sub_803A8B8: push {lr} ldr r0, _0803A8D0 ldr r0, [r0] ldr r0, [r0] cmp r0, 0x4 bhi _0803A902 lsls r0, 2 ldr r1, _0803A8D4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803A8D0: .4byte gUnknown_203B3F4 _0803A8D4: .4byte _0803A8D8 .align 2, 0 _0803A8D8: .4byte _0803A8EC .4byte _0803A8EC .4byte _0803A8F2 .4byte _0803A8F8 .4byte _0803A8FE _0803A8EC: bl sub_803AAC4 b _0803A902 _0803A8F2: bl sub_803AB34 b _0803A902 _0803A8F8: bl sub_803ABAC b _0803A902 _0803A8FE: movs r0, 0x3 b _0803A904 _0803A902: movs r0, 0 _0803A904: pop {r1} bx r1 thumb_func_end sub_803A8B8 thumb_func_start sub_803A908 sub_803A908: push {r4,lr} ldr r4, _0803A920 ldr r0, [r4] cmp r0, 0 beq _0803A91A bl MemoryFree movs r0, 0 str r0, [r4] _0803A91A: pop {r4} pop {r0} bx r0 .align 2, 0 _0803A920: .4byte gUnknown_203B3F4 thumb_func_end sub_803A908 thumb_func_start sub_803A924 sub_803A924: push {lr} ldr r1, _0803A938 ldr r1, [r1] str r0, [r1] bl sub_803A93C bl sub_803A9AC pop {r0} bx r0 .align 2, 0 _0803A938: .4byte gUnknown_203B3F4 thumb_func_end sub_803A924 thumb_func_start sub_803A93C sub_803A93C: push {r4-r7,lr} ldr r4, _0803A960 ldr r0, [r4] adds r0, 0x9C bl sub_8006518 ldr r1, [r4] ldr r0, [r1] cmp r0, 0x2 bne _0803A968 adds r1, 0xCC ldr r0, _0803A964 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r5-r7} stm r1!, {r5-r7} b _0803A98A .align 2, 0 _0803A960: .4byte gUnknown_203B3F4 _0803A964: .4byte gUnknown_80E7EA4 _0803A968: mov r12, r4 ldr r4, _0803A9A4 movs r3, 0 movs r2, 0x3 _0803A970: mov r0, r12 ldr r1, [r0] adds r1, r3 adds r1, 0x9C adds r0, r4, 0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} adds r3, 0x18 subs r2, 0x1 cmp r2, 0 bge _0803A970 _0803A98A: bl sub_8004914 ldr r0, _0803A9A8 ldr r0, [r0] adds r0, 0x9C movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803A9A4: .4byte gUnknown_80E7E8C _0803A9A8: .4byte gUnknown_203B3F4 thumb_func_end sub_803A93C thumb_func_start sub_803A9AC sub_803A9AC: push {lr} sub sp, 0x8 ldr r1, _0803A9C8 ldr r0, [r1] ldr r0, [r0] adds r2, r1, 0 cmp r0, 0x4 bhi _0803AA2C lsls r0, 2 ldr r1, _0803A9CC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803A9C8: .4byte gUnknown_203B3F4 _0803A9CC: .4byte _0803A9D0 .align 2, 0 _0803A9D0: .4byte _0803A9E4 .4byte _0803A9EE .4byte _0803A9F6 .4byte _0803AA20 .4byte _0803AA2C _0803A9E4: movs r0, 0 movs r1, 0x3 bl sub_80211AC b _0803AA2C _0803A9EE: movs r0, 0x1 bl sub_8021354 b _0803AA2C _0803A9F6: bl sub_8021494 bl sub_803AA34 ldr r0, _0803AA1C ldr r2, [r0] adds r0, r2, 0 adds r0, 0x4C adds r1, r2, 0 adds r1, 0xC ldr r2, [r2, 0x8] str r2, [sp] movs r2, 0x2 str r2, [sp, 0x4] movs r2, 0 movs r3, 0 bl sub_8012D60 b _0803AA2C .align 2, 0 _0803AA1C: .4byte gUnknown_203B3F4 _0803AA20: ldr r0, [r2] ldrb r0, [r0, 0x4] movs r1, 0x1 movs r2, 0 bl sub_8021774 _0803AA2C: add sp, 0x8 pop {r0} bx r0 thumb_func_end sub_803A9AC thumb_func_start sub_803AA34 sub_803AA34: push {r4,r5,lr} movs r4, 0 ldr r0, _0803AA64 ldr r1, [r0] ldr r2, _0803AA68 ldr r3, [r2] ldrb r0, [r3, 0x4] adds r1, r0 ldrb r0, [r1] adds r5, r2, 0 cmp r0, 0 beq _0803AA7A ldr r0, _0803AA6C str r0, [r3, 0xC] bl sub_803ABC8 lsls r0, 24 cmp r0, 0 beq _0803AA70 ldr r1, [r5] movs r0, 0x3 str r0, [r1, 0x10] b _0803AA82 .align 2, 0 _0803AA64: .4byte gUnknown_203B468 _0803AA68: .4byte gUnknown_203B3F4 _0803AA6C: .4byte gUnknown_80E7EBC _0803AA70: ldr r1, [r5] movs r0, 0x1 negs r0, r0 str r0, [r1, 0x10] b _0803AA82 _0803AA7A: ldr r0, _0803AABC str r0, [r3, 0xC] movs r0, 0x2 str r0, [r3, 0x10] _0803AA82: adds r4, 0x1 ldr r5, [r5] mov r12, r5 lsls r1, r4, 3 mov r3, r12 adds r3, 0xC adds r2, r3, r1 ldr r0, _0803AAC0 ldr r0, [r0] str r0, [r2] mov r2, r12 adds r2, 0x10 adds r1, r2, r1 movs r0, 0x4 str r0, [r1] adds r4, 0x1 lsls r1, r4, 3 adds r3, r1 movs r0, 0 str r0, [r3] adds r2, r1 movs r0, 0x1 str r0, [r2] mov r1, r12 ldr r0, [r1, 0x10] str r0, [r1, 0x8] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0803AABC: .4byte gUnknown_80E7EC4 _0803AAC0: .4byte gUnknown_80D4970 thumb_func_end sub_803AA34 thumb_func_start sub_803AAC4 sub_803AAC4: push {lr} movs r0, 0x1 bl sub_8021274 cmp r0, 0x4 bhi _0803AB2E lsls r0, 2 ldr r1, _0803AADC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803AADC: .4byte _0803AAE0 .align 2, 0 _0803AAE0: .4byte _0803AB2E .4byte _0803AB2E .4byte _0803AB24 .4byte _0803AAF4 .4byte _0803AB0C _0803AAF4: bl sub_802132C ldr r1, _0803AB08 ldr r1, [r1] strb r0, [r1, 0x4] movs r0, 0x2 bl sub_803A924 b _0803AB2E .align 2, 0 _0803AB08: .4byte gUnknown_203B3F4 _0803AB0C: bl sub_802132C ldr r1, _0803AB20 ldr r1, [r1] strb r0, [r1, 0x4] movs r0, 0x3 bl sub_803A924 b _0803AB2E .align 2, 0 _0803AB20: .4byte gUnknown_203B3F4 _0803AB24: bl sub_80213A0 movs r0, 0x4 bl sub_803A924 _0803AB2E: pop {r0} bx r0 thumb_func_end sub_803AAC4 thumb_func_start sub_803AB34 sub_803AB34: push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] bl sub_8021274 ldr r4, _0803AB6C ldr r0, [r4] adds r0, 0x4C bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _0803AB5A ldr r0, [r4] adds r0, 0x4C mov r1, sp bl sub_8013114 _0803AB5A: ldr r0, [sp] cmp r0, 0x2 beq _0803AB7A cmp r0, 0x2 bgt _0803AB70 cmp r0, 0x1 beq _0803AB9E b _0803ABA4 .align 2, 0 _0803AB6C: .4byte gUnknown_203B3F4 _0803AB70: cmp r0, 0x3 beq _0803AB84 cmp r0, 0x4 beq _0803AB96 b _0803ABA4 _0803AB7A: ldr r0, [r4] ldrb r0, [r0, 0x4] bl sub_80925EC b _0803AB8E _0803AB84: ldr r0, [r4] ldrb r0, [r0, 0x4] movs r1, 0x1 bl sub_809249C _0803AB8E: movs r0, 0x1 bl sub_803A924 b _0803ABA4 _0803AB96: movs r0, 0x3 bl sub_803A924 b _0803ABA4 _0803AB9E: movs r0, 0x1 bl sub_803A924 _0803ABA4: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_803AB34 thumb_func_start sub_803ABAC sub_803ABAC: push {lr} bl sub_80217EC cmp r0, 0x1 bls _0803ABC4 cmp r0, 0x3 bhi _0803ABC4 bl sub_8021830 movs r0, 0x1 bl sub_803A924 _0803ABC4: pop {r0} bx r0 thumb_func_end sub_803ABAC thumb_func_start sub_803ABC8 sub_803ABC8: push {r4-r6,lr} movs r5, 0 movs r6, 0x1 _0803ABCE: ldr r2, _0803AC08 movs r0, 0x58 adds r1, r5, 0 muls r1, r0 ldr r0, [r2] adds r2, r0, r1 ldrh r1, [r2] adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _0803AC10 lsrs r0, r1, 1 ands r0, r6 cmp r0, 0 beq _0803AC10 ldr r0, _0803AC0C ldr r4, [r0] movs r1, 0x8 ldrsh r0, [r2, r1] bl sub_808DBA8 ldrb r1, [r4, 0x4] lsls r0, 24 lsrs r0, 24 cmp r1, r0 bne _0803AC10 movs r0, 0 b _0803AC1C .align 2, 0 _0803AC08: .4byte gUnknown_203B45C _0803AC0C: .4byte gUnknown_203B3F4 _0803AC10: adds r5, 0x1 movs r0, 0xCE lsls r0, 1 cmp r5, r0 ble _0803ABCE movs r0, 0x1 _0803AC1C: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_803ABC8 thumb_func_start sub_803AC24 sub_803AC24: push {r4,lr} ldr r4, _0803AC44 movs r0, 0xA0 lsls r0, 1 movs r1, 0x8 bl MemoryAlloc str r0, [r4] movs r0, 0 bl sub_803ACD0 movs r0, 0x1 pop {r4} pop {r1} bx r1 .align 2, 0 _0803AC44: .4byte gUnknown_203B3F8 thumb_func_end sub_803AC24 thumb_func_start sub_803AC48 sub_803AC48: push {lr} ldr r0, _0803AC60 ldr r0, [r0] ldr r0, [r0] cmp r0, 0x7 bhi _0803ACA8 lsls r0, 2 ldr r1, _0803AC64 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803AC60: .4byte gUnknown_203B3F8 _0803AC64: .4byte _0803AC68 .align 2, 0 _0803AC68: .4byte _0803AC88 .4byte _0803AC90 .4byte _0803AC90 .4byte _0803AC96 .4byte _0803ACA8 .4byte _0803AC9C .4byte _0803ACA2 .4byte _0803ACA8 _0803AC88: movs r0, 0x1 bl sub_803ACD0 b _0803ACAC _0803AC90: bl sub_803AF38 b _0803ACAC _0803AC96: bl sub_803AF88 b _0803ACAC _0803AC9C: bl sub_803AFE8 b _0803ACAC _0803ACA2: bl sub_803B034 b _0803ACAC _0803ACA8: movs r0, 0x3 b _0803ACAE _0803ACAC: movs r0, 0 _0803ACAE: pop {r1} bx r1 thumb_func_end sub_803AC48 thumb_func_start sub_803ACB4 sub_803ACB4: push {r4,lr} ldr r4, _0803ACCC ldr r0, [r4] cmp r0, 0 beq _0803ACC6 bl MemoryFree movs r0, 0 str r0, [r4] _0803ACC6: pop {r4} pop {r0} bx r0 .align 2, 0 _0803ACCC: .4byte gUnknown_203B3F8 thumb_func_end sub_803ACB4 thumb_func_start sub_803ACD0 sub_803ACD0: push {lr} ldr r1, _0803ACE4 ldr r1, [r1] str r0, [r1] bl sub_803ACE8 bl sub_803AD88 pop {r0} bx r0 .align 2, 0 _0803ACE4: .4byte gUnknown_203B3F8 thumb_func_end sub_803ACD0 thumb_func_start sub_803ACE8 sub_803ACE8: push {r4-r7,lr} ldr r4, _0803AD08 ldr r0, [r4] adds r0, 0xE0 bl sub_8006518 ldr r1, [r4] ldr r0, [r1] cmp r0, 0x3 beq _0803AD10 cmp r0, 0x5 beq _0803AD38 movs r2, 0 ldr r3, _0803AD0C b _0803AD50 .align 2, 0 _0803AD08: .4byte gUnknown_203B3F8 _0803AD0C: .4byte gUnknown_80E7ED4 _0803AD10: bl sub_803AEB0 ldr r2, [r4] movs r0, 0x88 lsls r0, 1 adds r2, r0 ldr r1, _0803AD34 ldm r1!, {r3,r5,r6} stm r2!, {r3,r5,r6} ldm r1!, {r3,r5,r7} stm r2!, {r3,r5,r7} ldr r1, [r4] adds r0, r1, r0 adds r1, 0x90 bl sub_8012CAC b _0803AD6C .align 2, 0 _0803AD34: .4byte gUnknown_80E7EEC _0803AD38: movs r6, 0x94 lsls r6, 1 adds r1, r6 ldr r0, _0803AD4C ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldm r0!, {r4-r6} stm r1!, {r4-r6} b _0803AD6C .align 2, 0 _0803AD4C: .4byte gUnknown_80E7F04 _0803AD50: ldr r0, [r4] lsls r1, r2, 1 adds r1, r2 lsls r1, 3 adds r0, r1 adds r0, 0xE0 adds r1, r3, 0 ldm r1!, {r5-r7} stm r0!, {r5-r7} ldm r1!, {r5-r7} stm r0!, {r5-r7} adds r2, 0x1 cmp r2, 0x3 ble _0803AD50 _0803AD6C: bl sub_8004914 ldr r0, _0803AD84 ldr r0, [r0] adds r0, 0xE0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803AD84: .4byte gUnknown_203B3F8 thumb_func_end sub_803ACE8 thumb_func_start sub_803AD88 sub_803AD88: push {lr} sub sp, 0x8 ldr r1, _0803ADA4 ldr r0, [r1] ldr r0, [r0] adds r2, r1, 0 cmp r0, 0x7 bhi _0803AE50 lsls r0, 2 ldr r1, _0803ADA8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803ADA4: .4byte gUnknown_203B3F8 _0803ADA8: .4byte _0803ADAC .align 2, 0 _0803ADAC: .4byte _0803AE50 .4byte _0803ADCC .4byte _0803ADDA .4byte _0803ADE2 .4byte _0803AE50 .4byte _0803AE0C .4byte _0803AE44 .4byte _0803AE50 _0803ADCC: movs r0, 0x1 movs r1, 0 movs r2, 0 movs r3, 0xA bl sub_8023868 b _0803AE50 _0803ADDA: movs r0, 0x1 bl sub_8023B7C b _0803AE50 _0803ADE2: bl sub_8023DA4 ldr r0, _0803AE08 ldr r2, [r0] adds r0, r2, 0 adds r0, 0x10 adds r1, r2, 0 adds r1, 0x90 adds r3, r2, 0 adds r3, 0xD0 ldr r2, [r2, 0xC] str r2, [sp] movs r2, 0x2 str r2, [sp, 0x4] movs r2, 0 bl sub_8012D60 b _0803AE50 .align 2, 0 _0803AE08: .4byte gUnknown_203B3F8 _0803AE0C: ldr r2, [r2] movs r1, 0x3 str r1, [r2, 0x70] movs r0, 0x1 str r0, [r2, 0x68] movs r0, 0x64 str r0, [r2, 0x6C] ldr r0, [r2, 0x8] ldrb r0, [r0, 0x3] str r0, [r2, 0x64] str r1, [r2, 0x74] movs r1, 0x94 lsls r1, 1 adds r0, r2, r1 str r0, [r2, 0x78] movs r0, 0x2C str r0, [r2, 0x7C] adds r1, r2, 0 adds r1, 0x80 movs r0, 0x12 str r0, [r1] adds r0, r2, 0 adds r0, 0x60 bl sub_8013AA0 bl sub_803AE58 b _0803AE50 _0803AE44: ldr r0, [r2] ldr r1, [r0, 0x8] adds r1, 0x4C movs r0, 0x2 bl sub_801602C _0803AE50: add sp, 0x8 pop {r0} bx r0 thumb_func_end sub_803AD88 thumb_func_start sub_803AE58 sub_803AE58: push {r4,lr} sub sp, 0x4 ldr r4, _0803AEA8 ldr r0, [r4] ldr r0, [r0, 0x74] bl sub_8008C54 ldr r0, [r4] ldr r0, [r0, 0x74] bl sub_80073B8 ldr r2, _0803AEAC ldr r0, [r4] ldr r3, [r0, 0x74] movs r0, 0 str r0, [sp] movs r0, 0x4 movs r1, 0 bl xxx_call_draw_string ldr r0, [r4] adds r0, 0x60 bl sub_8013C68 ldr r0, [r4] ldr r0, [r0, 0x74] bl sub_80073E0 bl sub_8023DA4 ldr r0, [r4] adds r0, 0x10 movs r1, 0 bl sub_8012EA4 add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0803AEA8: .4byte gUnknown_203B3F8 _0803AEAC: .4byte gUnknown_80E7F1C thumb_func_end sub_803AE58 thumb_func_start sub_803AEB0 sub_803AEB0: push {r4-r6,lr} ldr r4, _0803AEFC ldr r0, [r4] adds r0, 0xD0 movs r1, 0 movs r2, 0x10 bl MemoryFill16 ldr r4, [r4] movs r3, 0 adds r1, r4, 0 adds r1, 0x90 ldr r0, _0803AF00 str r0, [r1] adds r5, r4, 0 adds r5, 0x94 movs r0, 0x4 str r0, [r5] movs r2, 0x1 adds r1, 0x8 ldr r0, _0803AF04 str r0, [r1] adds r1, 0x4 movs r0, 0x5 str r0, [r1] movs r6, 0x2 adds r0, r4, 0 adds r0, 0xA0 str r3, [r0] adds r0, 0x4 str r2, [r0] adds r0, 0x2C ldrh r0, [r0] cmp r0, 0 bne _0803AF08 ldr r0, [r5] str r0, [r4, 0xC] b _0803AF2C .align 2, 0 _0803AEFC: .4byte gUnknown_203B3F8 _0803AF00: .4byte gUnknown_80E7F24 _0803AF04: .4byte gUnknown_80E7F2C _0803AF08: adds r3, 0x1 cmp r3, r6 bge _0803AF2C ldr r0, _0803AF34 ldr r2, [r0] lsls r1, r3, 1 adds r0, r2, 0 adds r0, 0xD0 adds r0, r1 ldrh r0, [r0] cmp r0, 0 bne _0803AF08 lsls r0, r3, 3 adds r1, r2, 0 adds r1, 0x94 adds r1, r0 ldr r0, [r1] str r0, [r2, 0xC] _0803AF2C: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0803AF34: .4byte gUnknown_203B3F8 thumb_func_end sub_803AEB0 thumb_func_start sub_803AF38 sub_803AF38: push {lr} movs r0, 0x1 bl sub_8023A94 cmp r0, 0x2 beq _0803AF78 cmp r0, 0x2 bcc _0803AF82 cmp r0, 0x3 bne _0803AF82 bl sub_8023B44 ldr r1, _0803AF70 ldr r1, [r1] strh r0, [r1, 0x4] ldr r3, _0803AF74 movs r0, 0x4 ldrsh r2, [r1, r0] movs r0, 0x58 muls r2, r0 ldr r0, [r3] adds r0, r2 str r0, [r1, 0x8] movs r0, 0x3 bl sub_803ACD0 b _0803AF82 .align 2, 0 _0803AF70: .4byte gUnknown_203B3F8 _0803AF74: .4byte gUnknown_203B45C _0803AF78: bl sub_8023C60 movs r0, 0x7 bl sub_803ACD0 _0803AF82: pop {r0} bx r0 thumb_func_end sub_803AF38 thumb_func_start sub_803AF88 sub_803AF88: push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] bl sub_8023A94 ldr r4, _0803AFC0 ldr r0, [r4] adds r0, 0x10 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _0803AFAE ldr r0, [r4] adds r0, 0x10 mov r1, sp bl sub_8013114 _0803AFAE: ldr r0, [sp] cmp r0, 0x4 beq _0803AFCA cmp r0, 0x4 bgt _0803AFC4 cmp r0, 0x1 beq _0803AFDA b _0803AFE0 .align 2, 0 _0803AFC0: .4byte gUnknown_203B3F8 _0803AFC4: cmp r0, 0x5 beq _0803AFD2 b _0803AFE0 _0803AFCA: movs r0, 0x5 bl sub_803ACD0 b _0803AFE0 _0803AFD2: movs r0, 0x6 bl sub_803ACD0 b _0803AFE0 _0803AFDA: movs r0, 0x2 bl sub_803ACD0 _0803AFE0: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_803AF88 thumb_func_start sub_803AFE8 sub_803AFE8: push {r4,lr} movs r0, 0 bl sub_8023A94 ldr r4, _0803B010 ldr r0, [r4] adds r0, 0x10 bl sub_8012FD8 ldr r0, [r4] adds r0, 0x60 bl sub_8013BBC cmp r0, 0x2 beq _0803B020 cmp r0, 0x2 bhi _0803B014 cmp r0, 0x1 beq _0803B028 b _0803B02C .align 2, 0 _0803B010: .4byte gUnknown_203B3F8 _0803B014: cmp r0, 0x3 bne _0803B02C ldr r0, [r4] ldr r1, [r0, 0x8] ldr r0, [r0, 0x60] strb r0, [r1, 0x3] _0803B020: movs r0, 0x2 bl sub_803ACD0 b _0803B02C _0803B028: bl sub_803AE58 _0803B02C: pop {r4} pop {r0} bx r0 thumb_func_end sub_803AFE8 thumb_func_start sub_803B034 sub_803B034: push {lr} bl sub_8016080 cmp r0, 0x3 bhi _0803B04C cmp r0, 0x2 bcc _0803B04C bl sub_80160D8 movs r0, 0x2 bl sub_803ACD0 _0803B04C: pop {r0} bx r0 thumb_func_end sub_803B034 thumb_func_start sub_803B050 sub_803B050: push {r4-r7,lr} ldr r4, _0803B0F4 movs r0, 0xF4 lsls r0, 2 movs r1, 0x8 bl MemoryAlloc str r0, [r4] movs r1, 0x3 str r1, [r0, 0x34] adds r1, r0, 0 adds r1, 0x84 str r1, [r0, 0x38] adds r0, 0x3C bl sub_8006518 ldr r1, [r4] ldr r2, [r1, 0x34] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, 0x3C ldr r0, _0803B0F8 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldr r0, [r4] ldr r1, [r0, 0x38] adds r0, 0x9C str r0, [r1, 0x14] bl sub_8004914 ldr r0, [r4] adds r0, 0x3C movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r2, 0 movs r3, 0 movs r7, 0xCB lsls r7, 1 movs r6, 0x80 lsls r6, 9 movs r5, 0 _0803B0AE: ldr r0, _0803B0FC adds r0, r5, r0 movs r1, 0x2 ldrsh r0, [r0, r1] ldr r4, _0803B0F4 cmp r0, 0xA bne _0803B0C8 ldr r0, [r4] lsls r1, r2, 1 adds r0, 0xA0 adds r0, r1 strh r3, [r0] adds r2, 0x1 _0803B0C8: adds r0, r6, 0 movs r3, 0x80 lsls r3, 9 adds r6, r3 adds r5, 0xC asrs r3, r0, 16 cmp r3, r7 ble _0803B0AE ldr r0, [r4] ldr r3, [r0, 0x34] adds r1, r2, 0 movs r2, 0xA bl sub_8013818 bl sub_803B204 bl sub_803B284 movs r0, 0x1 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0803B0F4: .4byte gUnknown_203B3FC _0803B0F8: .4byte gUnknown_80E7F54 _0803B0FC: .4byte gUnknown_812F1F8 thumb_func_end sub_803B050 thumb_func_start sub_803B100 sub_803B100: push {lr} adds r1, r0, 0 lsls r1, 16 asrs r1, 16 ldr r0, _0803B11C ldr r0, [r0] bl sub_8013878 bl sub_803B204 bl sub_803B284 pop {r0} bx r0 .align 2, 0 _0803B11C: .4byte gUnknown_203B3FC thumb_func_end sub_803B100 thumb_func_start sub_803B120 sub_803B120: push {r4,lr} ldr r4, _0803B13C ldr r0, [r4] bl GetKeyPress cmp r0, 0x1 beq _0803B140 cmp r0, 0x2 bne _0803B144 movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 b _0803B160 .align 2, 0 _0803B13C: .4byte gUnknown_203B3FC _0803B140: movs r0, 0x3 b _0803B160 _0803B144: ldr r0, [r4] movs r1, 0x1 bl sub_80138B8 lsls r0, 24 cmp r0, 0 bne _0803B156 movs r0, 0 b _0803B160 _0803B156: bl sub_803B204 bl sub_803B284 movs r0, 0x1 _0803B160: pop {r4} pop {r1} bx r1 thumb_func_end sub_803B120 thumb_func_start sub_803B168 sub_803B168: ldr r0, _0803B188 ldr r0, [r0] movs r1, 0x1E ldrsh r2, [r0, r1] movs r3, 0x1C ldrsh r1, [r0, r3] muls r1, r2 movs r3, 0x18 ldrsh r2, [r0, r3] adds r1, r2 lsls r1, 1 adds r0, 0xA0 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] bx lr .align 2, 0 _0803B188: .4byte gUnknown_203B3FC thumb_func_end sub_803B168 thumb_func_start sub_803B18C sub_803B18C: push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r5, _0803B1B8 ldr r0, [r5] movs r1, 0xE5 strh r1, [r0, 0x22] bl sub_8013984 bl sub_803B204 bl sub_803B284 cmp r4, 0 beq _0803B1B2 ldr r0, [r5] bl AddMenuCursorSprite _0803B1B2: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0803B1B8: .4byte gUnknown_203B3FC thumb_func_end sub_803B18C thumb_func_start sub_803B1BC sub_803B1BC: push {r4,r5,lr} ldr r4, _0803B1FC ldr r2, [r4] cmp r2, 0 beq _0803B1F6 ldr r0, [r2, 0x34] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 adds r1, 0x3C ldr r0, _0803B200 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} bl sub_8004914 ldr r0, [r4] adds r0, 0x3C movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _0803B1F6: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0803B1FC: .4byte gUnknown_203B3FC _0803B200: .4byte gUnknown_80E7F3C thumb_func_end sub_803B1BC thumb_func_start sub_803B204 sub_803B204: push {r4,lr} ldr r4, _0803B280 ldr r0, [r4] adds r0, 0x9C movs r2, 0 movs r1, 0x1 strb r1, [r0] ldr r0, [r4] adds r0, 0x9D strb r2, [r0] ldr r0, [r4] adds r0, 0x9E movs r1, 0x8 strb r1, [r0] ldr r0, [r4] adds r0, 0x9F strb r2, [r0] bl sub_8004914 ldr r0, [r4] adds r0, 0x3C movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] movs r1, 0x1A ldrsh r0, [r0, r1] movs r1, 0xC bl sub_80095E4 adds r0, 0x2 lsls r0, 16 ldr r2, [r4] ldr r3, [r2, 0x34] lsls r1, r3, 1 adds r1, r3 lsls r1, 3 adds r1, r2, r1 adds r1, 0x4A asrs r3, r0, 16 lsrs r0, 16 strh r0, [r1] ldr r1, [r2, 0x34] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r2, r0 adds r3, 0x2 adds r2, 0x4C strh r3, [r2] bl sub_8004914 ldr r0, [r4] adds r0, 0x3C movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4} pop {r0} bx r0 .align 2, 0 _0803B280: .4byte gUnknown_203B3FC thumb_func_end sub_803B204 thumb_func_start sub_803B284 sub_803B284: push {r4-r6,lr} sub sp, 0x8 ldr r6, _0803B338 ldr r0, [r6] ldr r0, [r0, 0x34] bl sub_8008C54 ldr r0, [r6] ldr r0, [r0, 0x34] bl sub_80073B8 ldr r2, _0803B33C ldr r0, [r6] ldr r3, [r0, 0x34] movs r0, 0 str r0, [sp] movs r0, 0xA movs r1, 0 bl xxx_call_draw_string ldr r1, [r6] adds r0, r1, 0 adds r0, 0x9E ldrb r4, [r0] lsls r4, 3 subs r4, 0x2 movs r0, 0x1E ldrsh r2, [r1, r0] adds r2, 0x1 movs r0, 0x7 str r0, [sp] ldr r0, [r1, 0x34] str r0, [sp, 0x4] adds r0, r4, 0 movs r1, 0 movs r3, 0x2 bl sub_8012BC4 movs r5, 0 ldr r0, [r6] movs r1, 0x1A ldrsh r0, [r0, r1] cmp r5, r0 bge _0803B324 _0803B2DC: ldr r0, [r6] movs r3, 0x1E ldrsh r2, [r0, r3] movs r3, 0x1C ldrsh r1, [r0, r3] muls r2, r1 adds r2, r5 lsls r2, 1 adds r1, r0, 0 adds r1, 0xA0 adds r1, r2 movs r2, 0 ldrsh r1, [r1, r2] lsls r4, r1, 1 adds r4, r1 lsls r4, 2 ldr r1, _0803B340 adds r4, r1 adds r1, r5, 0 bl sub_8013800 adds r1, r0, 0 ldr r2, [r4, 0x4] ldr r0, [r6] ldr r3, [r0, 0x34] movs r0, 0 str r0, [sp] movs r0, 0x8 bl xxx_call_draw_string adds r5, 0x1 ldr r0, [r6] movs r3, 0x1A ldrsh r0, [r0, r3] cmp r5, r0 blt _0803B2DC _0803B324: ldr r0, _0803B338 ldr r0, [r0] ldr r0, [r0, 0x34] bl sub_80073E0 add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0803B338: .4byte gUnknown_203B3FC _0803B33C: .4byte gUnknown_80E7F6C _0803B340: .4byte gUnknown_812F1F8 thumb_func_end sub_803B284 thumb_func_start sub_803B344 sub_803B344: adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r0, r1, 3 subs r0, r1 lsls r0, 2 ldr r1, _0803B358 adds r0, r1 bx lr .align 2, 0 _0803B358: .4byte gUnknown_80E7F94 thumb_func_end sub_803B344 thumb_func_start sub_803B35C sub_803B35C: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 adds r1, 0x18 bl sub_803C21C ldrb r0, [r5, 0x2] subs r0, 0x1 cmp r0, 0x8 bls _0803B372 b _0803B4FA _0803B372: lsls r0, 2 ldr r1, _0803B37C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803B37C: .4byte _0803B380 .align 2, 0 _0803B380: .4byte _0803B3A4 .4byte _0803B3BE .4byte _0803B3D8 .4byte _0803B3F2 .4byte _0803B414 .4byte _0803B442 .4byte _0803B470 .4byte _0803B49E .4byte _0803B4CC _0803B3A4: adds r0, r4, 0 adds r0, 0x40 movs r1, 0 strb r1, [r0] adds r0, 0x1 strb r1, [r0] adds r1, r4, 0 adds r1, 0x42 movs r0, 0x6 strb r0, [r1] subs r1, 0x14 movs r0, 0x5 b _0803B576 _0803B3BE: adds r0, r4, 0 adds r0, 0x40 movs r1, 0x1 strb r1, [r0] adds r0, 0x1 strb r1, [r0] adds r1, r4, 0 adds r1, 0x42 movs r0, 0x6 strb r0, [r1] subs r1, 0x14 movs r0, 0x5 b _0803B576 _0803B3D8: adds r0, r4, 0 adds r0, 0x40 movs r1, 0x2 strb r1, [r0] adds r0, 0x1 strb r1, [r0] adds r1, r4, 0 adds r1, 0x42 movs r0, 0x6 strb r0, [r1] subs r1, 0x14 movs r0, 0x5 b _0803B576 _0803B3F2: adds r0, r4, 0 adds r0, 0x40 movs r1, 0x3 strb r1, [r0] adds r0, 0x1 strb r1, [r0] adds r1, r4, 0 adds r1, 0x42 movs r0, 0x6 strb r0, [r1] bl sub_8096DD8 str r0, [r4, 0x4C] bl sub_8096DE8 str r0, [r4, 0x50] b _0803B578 _0803B414: ldrb r0, [r5, 0x1] cmp r0, 0x3 bne _0803B42A adds r0, r4, 0 adds r0, 0x40 movs r1, 0xB strb r1, [r0] adds r1, r4, 0 adds r1, 0x42 movs r0, 0x1 b _0803B438 _0803B42A: adds r0, r4, 0 adds r0, 0x40 movs r1, 0xC strb r1, [r0] adds r1, r4, 0 adds r1, 0x42 movs r0, 0x2 _0803B438: strb r0, [r1] adds r1, r4, 0 adds r1, 0x41 movs r0, 0x4 b _0803B576 _0803B442: ldrb r0, [r5, 0x1] cmp r0, 0x3 bne _0803B458 adds r0, r4, 0 adds r0, 0x40 movs r1, 0xB strb r1, [r0] adds r1, r4, 0 adds r1, 0x42 movs r0, 0x1 b _0803B466 _0803B458: adds r0, r4, 0 adds r0, 0x40 movs r1, 0xC strb r1, [r0] adds r1, r4, 0 adds r1, 0x42 movs r0, 0x2 _0803B466: strb r0, [r1] adds r1, r4, 0 adds r1, 0x41 movs r0, 0x5 b _0803B576 _0803B470: adds r0, r5, 0 bl sub_803B600 str r0, [r4, 0x4] movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _0803B488 adds r1, r4, 0 adds r1, 0x40 movs r0, 0x9 b _0803B48E _0803B488: adds r1, r4, 0 adds r1, 0x40 movs r0, 0x4 _0803B48E: strb r0, [r1] adds r1, r4, 0 adds r1, 0x41 movs r0, 0x6 strb r0, [r1] adds r1, 0x1 movs r0, 0x4 b _0803B576 _0803B49E: adds r0, r5, 0 bl sub_803B628 str r0, [r4, 0x4] movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _0803B4B6 adds r1, r4, 0 adds r1, 0x40 movs r0, 0x9 b _0803B4BC _0803B4B6: adds r1, r4, 0 adds r1, 0x40 movs r0, 0x5 _0803B4BC: strb r0, [r1] adds r1, r4, 0 adds r1, 0x41 movs r0, 0x7 strb r0, [r1] adds r1, 0x1 movs r0, 0x4 b _0803B576 _0803B4CC: adds r0, r5, 0 bl sub_803B66C str r0, [r4, 0x4] movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _0803B4E4 adds r1, r4, 0 adds r1, 0x40 movs r0, 0xA b _0803B4EA _0803B4E4: adds r1, r4, 0 adds r1, 0x40 movs r0, 0x6 _0803B4EA: strb r0, [r1] adds r1, r4, 0 adds r1, 0x41 movs r0, 0x8 strb r0, [r1] adds r1, 0x1 movs r0, 0x5 b _0803B576 _0803B4FA: ldrb r0, [r5, 0x1] cmp r0, 0x2 beq _0803B528 cmp r0, 0x2 bgt _0803B50A cmp r0, 0x1 beq _0803B514 b _0803B564 _0803B50A: cmp r0, 0x3 beq _0803B53C cmp r0, 0x4 beq _0803B550 b _0803B564 _0803B514: adds r1, r4, 0 adds r1, 0x40 movs r0, 0x9 strb r0, [r1] adds r1, 0x1 movs r0, 0xD strb r0, [r1] adds r1, 0x1 movs r0, 0x4 b _0803B576 _0803B528: adds r1, r4, 0 adds r1, 0x40 movs r0, 0xA strb r0, [r1] adds r1, 0x1 movs r0, 0xE strb r0, [r1] adds r1, 0x1 movs r0, 0x5 b _0803B576 _0803B53C: adds r1, r4, 0 adds r1, 0x40 movs r0, 0xB strb r0, [r1] adds r1, 0x1 movs r0, 0xF strb r0, [r1] adds r1, 0x1 movs r0, 0x1 b _0803B576 _0803B550: adds r1, r4, 0 adds r1, 0x40 movs r0, 0xC strb r0, [r1] adds r1, 0x1 movs r0, 0x10 strb r0, [r1] adds r1, 0x1 movs r0, 0x2 b _0803B576 _0803B564: adds r1, r4, 0 adds r1, 0x40 movs r0, 0x8 strb r0, [r1] adds r1, 0x1 movs r0, 0xC strb r0, [r1] adds r1, 0x1 movs r0, 0x3 _0803B576: strb r0, [r1] _0803B578: adds r0, r5, 0x4 str r0, [r4, 0x8] movs r0, 0 str r0, [r4, 0xC] ldrh r0, [r5, 0xC] movs r1, 0 strh r0, [r4, 0x10] ldrh r0, [r5, 0xE] strh r0, [r4, 0x12] ldrb r0, [r5, 0x10] strb r0, [r4, 0x14] ldrb r0, [r5] subs r0, 0x2 cmp r0, 0x7 bhi _0803B5EC lsls r0, 2 ldr r1, _0803B5A0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803B5A0: .4byte _0803B5A4 .align 2, 0 _0803B5A4: .4byte _0803B5C4 .4byte _0803B5C4 .4byte _0803B5C4 .4byte _0803B5C4 .4byte _0803B5DC .4byte _0803B5CC .4byte _0803B5DC .4byte _0803B5DC _0803B5C4: adds r0, r4, 0 adds r0, 0x43 movs r1, 0x1 b _0803B5F0 _0803B5CC: adds r1, r4, 0 adds r1, 0x43 movs r0, 0 strb r0, [r1] adds r1, 0x1 movs r0, 0x3 strb r0, [r1] b _0803B5F6 _0803B5DC: adds r1, r4, 0 adds r1, 0x43 movs r0, 0x3 strb r0, [r1] adds r1, 0x1 movs r0, 0x2 strb r0, [r1] b _0803B5F6 _0803B5EC: adds r0, r4, 0 adds r0, 0x43 _0803B5F0: strb r1, [r0] adds r0, 0x1 strb r1, [r0] _0803B5F6: str r5, [r4, 0x54] pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_803B35C thumb_func_start sub_803B600 sub_803B600: push {lr} ldr r2, _0803B614 movs r1, 0 ldr r3, [r0, 0xC] _0803B608: ldr r0, [r2] cmp r0, r3 bne _0803B618 adds r0, r1, 0 b _0803B624 .align 2, 0 _0803B614: .4byte gUnknown_80E9920 _0803B618: adds r2, 0x8 adds r1, 0x1 cmp r1, 0x14 ble _0803B608 movs r0, 0x1 negs r0, r0 _0803B624: pop {r1} bx r1 thumb_func_end sub_803B600 thumb_func_start sub_803B628 sub_803B628: push {r4,r5,lr} adds r4, r0, 0 ldr r2, _0803B654 movs r3, 0 _0803B630: ldr r1, [r2] ldr r0, [r4, 0xC] cmp r1, r0 beq _0803B650 movs r0, 0x2 ldrsh r1, [r2, r0] movs r5, 0xC ldrsh r0, [r4, r5] cmp r1, r0 bne _0803B658 movs r0, 0 ldrsh r1, [r2, r0] movs r5, 0xE ldrsh r0, [r4, r5] cmp r1, r0 bne _0803B658 _0803B650: adds r0, r3, 0 b _0803B664 .align 2, 0 _0803B654: .4byte gUnknown_80E9F8C _0803B658: adds r2, 0xC adds r3, 0x1 cmp r3, 0x2C ble _0803B630 movs r0, 0x1 negs r0, r0 _0803B664: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_803B628 thumb_func_start sub_803B66C sub_803B66C: push {r4,r5,lr} adds r4, r0, 0 ldr r2, _0803B698 movs r3, 0 _0803B674: ldr r1, [r2] ldr r0, [r4, 0xC] cmp r1, r0 beq _0803B694 movs r0, 0x2 ldrsh r1, [r2, r0] movs r5, 0xC ldrsh r0, [r4, r5] cmp r1, r0 bne _0803B69C movs r0, 0 ldrsh r1, [r2, r0] movs r5, 0xE ldrsh r0, [r4, r5] cmp r1, r0 bne _0803B69C _0803B694: adds r0, r3, 0 b _0803B6A8 .align 2, 0 _0803B698: .4byte gUnknown_80E8168 _0803B69C: adds r2, 0x4 adds r3, 0x1 cmp r3, 0x5 ble _0803B674 movs r0, 0x1 negs r0, r0 _0803B6A8: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_803B66C thumb_func_start sub_803B6B0 sub_803B6B0: push {r4,lr} sub sp, 0x4 lsls r2, 24 ldr r4, _0803B6D0 lsrs r2, 22 adds r2, r4 ldr r2, [r2] movs r4, 0 str r4, [sp] bl xxx_call_draw_string add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0803B6D0: .4byte gUnknown_80E8B94 thumb_func_end sub_803B6B0 thumb_func_start sub_803B6D4 sub_803B6D4: push {r4-r7,lr} sub sp, 0x144 adds r7, r0, 0 ldr r1, [r7, 0x48] adds r0, 0x43 ldrb r2, [r0] ldr r3, [r7] movs r0, 0xA bl sub_803B6B0 adds r0, r7, 0 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0xC bls _0803B6F4 b _0803B86C _0803B6F4: lsls r0, 2 ldr r1, _0803B700 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803B700: .4byte _0803B704 .align 2, 0 _0803B704: .4byte _0803B73E .4byte _0803B748 .4byte _0803B754 .4byte _0803B738 .4byte _0803B7A4 .4byte _0803B7B0 .4byte _0803B7C8 .4byte _0803B760 .4byte _0803B86C .4byte _0803B818 .4byte _0803B7E0 .4byte _0803B788 .4byte _0803B76A _0803B738: ldr r1, [r7, 0x48] ldr r2, [r7, 0x4C] b _0803B7CC _0803B73E: ldr r1, [r7, 0x48] ldr r2, _0803B744 b _0803B7CC .align 2, 0 _0803B744: .4byte gUnknown_80E87DC _0803B748: ldr r1, [r7, 0x48] ldr r2, _0803B750 b _0803B7CC .align 2, 0 _0803B750: .4byte gUnknown_80E87F4 _0803B754: ldr r1, [r7, 0x48] ldr r2, _0803B75C b _0803B7CC .align 2, 0 _0803B75C: .4byte gUnknown_80E8818 _0803B760: ldr r1, [r7, 0x8] add r0, sp, 0x4 bl sub_8090208 b _0803B850 _0803B76A: ldr r4, _0803B780 ldrb r1, [r7, 0x14] adds r0, r4, 0 movs r2, 0 bl sub_8090DC4 ldr r1, _0803B784 add r0, sp, 0x4 adds r2, r4, 0 b _0803B84C .align 2, 0 _0803B780: .4byte gUnknown_202DE58 _0803B784: .4byte gUnknown_80E8830 _0803B788: ldr r4, _0803B79C ldrb r1, [r7, 0x14] adds r0, r4, 0 movs r2, 0 bl sub_8090DC4 ldr r1, _0803B7A0 add r0, sp, 0x4 adds r2, r4, 0 b _0803B84C .align 2, 0 _0803B79C: .4byte gUnknown_202DE58 _0803B7A0: .4byte gUnknown_80E8848 _0803B7A4: ldr r1, [r7, 0x48] ldr r2, _0803B7AC b _0803B7CC .align 2, 0 _0803B7AC: .4byte gUnknown_80E885C _0803B7B0: ldr r1, [r7, 0x48] ldr r3, _0803B7C4 ldr r2, [r7, 0x4] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r3, 0x4 adds r0, r3 ldr r2, [r0] b _0803B7CC .align 2, 0 _0803B7C4: .4byte gUnknown_80E9F8C _0803B7C8: ldr r1, [r7, 0x48] ldr r2, _0803B7DC _0803B7CC: ldr r3, [r7] movs r0, 0 str r0, [sp] movs r0, 0x15 bl xxx_call_draw_string b _0803B8B4 .align 2, 0 _0803B7DC: .4byte gUnknown_80E886C _0803B7E0: ldr r0, [r7, 0x8] ldr r4, [r0, 0x4] ldrb r0, [r0] adds r4, r0 lsls r4, 24 lsrs r4, 24 movs r1, 0x12 ldrsh r0, [r7, r1] bl sub_808D994 adds r1, r0, 0 ldr r5, _0803B810 adds r0, r5, 0 bl strcpy ldr r1, _0803B814 movs r0, 0x3 ands r4, r0 lsls r4, 2 adds r4, r1 ldr r1, [r4] add r0, sp, 0x4 adds r2, r5, 0 b _0803B84C .align 2, 0 _0803B810: .4byte gUnknown_202DF98 _0803B814: .4byte gUnknown_80EAE5C _0803B818: ldr r0, [r7, 0x8] ldr r4, [r0, 0x4] ldrb r0, [r0] adds r4, r0 lsls r4, 24 lsrs r4, 24 movs r1, 0x12 ldrsh r0, [r7, r1] bl sub_808D994 adds r1, r0, 0 ldr r6, _0803B864 adds r0, r6, 0 bl strcpy ldr r5, _0803B868 adds r0, r4, 0 movs r1, 0xA bl __umodsi3 lsls r0, 24 lsrs r0, 22 adds r0, r5 ldr r1, [r0] add r0, sp, 0x4 adds r2, r6, 0 _0803B84C: bl sub_800D158 _0803B850: ldr r1, [r7, 0x48] ldr r3, [r7] movs r0, 0 str r0, [sp] movs r0, 0x15 add r2, sp, 0x4 bl xxx_call_draw_string b _0803B8B4 .align 2, 0 _0803B864: .4byte gUnknown_202DF98 _0803B868: .4byte gUnknown_80E910C _0803B86C: ldr r0, [r7, 0x8] ldr r4, [r0, 0x4] ldrb r0, [r0] adds r4, r0 lsls r4, 24 lsrs r4, 24 movs r1, 0x12 ldrsh r0, [r7, r1] bl sub_808D994 adds r1, r0, 0 ldr r6, _0803B8E8 adds r0, r6, 0 bl strcpy ldr r5, _0803B8EC adds r0, r4, 0 movs r1, 0xF bl __umodsi3 lsls r0, 24 lsrs r0, 22 adds r0, r5 ldr r1, [r0] add r0, sp, 0x4 adds r2, r6, 0 bl sub_800D158 ldr r1, [r7, 0x48] ldr r3, [r7] movs r0, 0 str r0, [sp] movs r0, 0x15 add r2, sp, 0x4 bl xxx_call_draw_string _0803B8B4: adds r0, r7, 0 adds r0, 0x40 ldrb r1, [r0] adds r6, r0, 0 cmp r1, 0x7 bne _0803B916 ldr r5, [r7, 0xC] cmp r5, 0 bne _0803B8F0 bl sub_8016028 movs r4, 0xB2 subs r4, r0 movs r1, 0x10 ldrsh r0, [r7, r1] bl sub_808D994 adds r2, r0, 0 ldr r1, [r7, 0x48] ldr r3, [r7] str r5, [sp] adds r0, r4, 0 bl xxx_call_draw_string b _0803B956 .align 2, 0 _0803B8E8: .4byte gUnknown_202DF98 _0803B8EC: .4byte gUnknown_80E8C98 _0803B8F0: add r4, sp, 0xCC adds r0, r4, 0 adds r1, r5, 0 movs r2, 0xA bl sub_80922B4 bl sub_8016028 adds r1, r0, 0 movs r0, 0xB2 subs r0, r1 ldr r1, [r7, 0x48] ldr r3, [r7] movs r2, 0 str r2, [sp] adds r2, r4, 0 bl xxx_call_draw_string b _0803B956 _0803B916: adds r0, r7, 0 adds r0, 0x42 ldrb r0, [r0] cmp r0, 0x1 bne _0803B93C add r4, sp, 0xE0 ldr r1, [r7, 0x8] adds r0, r4, 0 bl sub_8090228 ldr r1, _0803B938 add r0, sp, 0x4 adds r2, r4, 0 bl sub_800D158 b _0803B944 .align 2, 0 _0803B938: .4byte gUnknown_80E8884 _0803B93C: ldr r1, [r7, 0x8] add r0, sp, 0x4 bl sub_8090228 _0803B944: ldr r1, [r7, 0x48] adds r1, 0xC ldr r3, [r7] movs r0, 0 str r0, [sp] movs r0, 0x1D add r2, sp, 0x4 bl xxx_call_draw_string _0803B956: ldrb r0, [r6] cmp r0, 0x7 bne _0803B962 ldr r0, [r7, 0x8] movs r1, 0 b _0803B968 _0803B962: ldr r0, [r7, 0x8] ldr r1, [r7, 0x54] ldrb r1, [r1, 0x1] _0803B968: bl sub_803C1D0 lsls r0, 24 lsrs r0, 24 bl sub_803C1F0 adds r2, r0, 0 ldr r1, [r7, 0x48] ldr r3, [r7] movs r0, 0 str r0, [sp] movs r0, 0xB4 bl xxx_call_draw_string add sp, 0x144 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_803B6D4 thumb_func_start sub_803B98C sub_803B98C: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x1FC adds r7, r0, 0 movs r0, 0 mov r9, r0 ldr r2, _0803B9E0 ldr r3, [r7] str r0, [sp] movs r0, 0xA movs r1, 0 bl xxx_call_draw_string ldr r1, _0803B9E4 adds r0, r7, 0 adds r0, 0x44 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r2, [r0] ldr r3, [r7] mov r1, r9 str r1, [sp] movs r0, 0x6C movs r1, 0 bl xxx_call_draw_string movs r0, 0x10 mov r9, r0 adds r0, r7, 0 adds r0, 0x41 ldrb r0, [r0] cmp r0, 0x10 bls _0803B9D6 b _0803BCC0 _0803B9D6: lsls r0, 2 ldr r1, _0803B9E8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803B9E0: .4byte gUnknown_80E888C _0803B9E4: .4byte gUnknown_80E8BCC _0803B9E8: .4byte _0803B9EC .align 2, 0 _0803B9EC: .4byte _0803BA34 .4byte _0803BA3C .4byte _0803BA44 .4byte _0803BA30 .4byte _0803BA4C .4byte _0803BA6C .4byte _0803BA8C .4byte _0803BAA0 .4byte _0803BBF0 .4byte _0803BAE8 .4byte _0803BAF0 .4byte _0803BAF8 .4byte _0803BCC0 .4byte _0803BC58 .4byte _0803BB74 .4byte _0803BB10 .4byte _0803BB10 _0803BA30: ldr r2, [r7, 0x50] b _0803BAFA _0803BA34: ldr r2, _0803BA38 b _0803BAFA .align 2, 0 _0803BA38: .4byte gUnknown_80E88A0 _0803BA3C: ldr r2, _0803BA40 b _0803BAFA .align 2, 0 _0803BA40: .4byte gUnknown_80E88C8 _0803BA44: ldr r2, _0803BA48 b _0803BAFA .align 2, 0 _0803BA48: .4byte gUnknown_80E8920 _0803BA4C: ldr r4, _0803BA64 ldrb r1, [r7, 0x14] adds r0, r4, 0 movs r2, 0 bl sub_8090DC4 ldr r1, _0803BA68 add r0, sp, 0x4 adds r2, r4, 0 bl sub_800D158 b _0803BACC .align 2, 0 _0803BA64: .4byte gUnknown_202DE58 _0803BA68: .4byte gUnknown_80E8968 _0803BA6C: ldr r4, _0803BA84 ldrb r1, [r7, 0x14] adds r0, r4, 0 movs r2, 0 bl sub_8090DC4 ldr r1, _0803BA88 add r0, sp, 0x4 adds r2, r4, 0 bl sub_800D158 b _0803BACC .align 2, 0 _0803BA84: .4byte gUnknown_202DE58 _0803BA88: .4byte gUnknown_80E89B0 _0803BA8C: ldr r1, _0803BA9C ldr r0, [r7, 0x4] lsls r0, 3 adds r1, 0x4 adds r0, r1 ldr r2, [r0] b _0803BAFA .align 2, 0 _0803BA9C: .4byte gUnknown_80E9920 _0803BAA0: movs r1, 0x12 ldrsh r0, [r7, r1] bl sub_808D994 adds r1, r0, 0 ldr r4, _0803BAE0 adds r0, r4, 0 bl strcpy ldr r2, _0803BAE4 ldr r1, [r7, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r2, 0x8 adds r0, r2 ldr r1, [r0] add r0, sp, 0x4 adds r2, r4, 0 adds r3, r4, 0 bl sub_800D158 _0803BACC: ldr r3, [r7] movs r0, 0 str r0, [sp] movs r0, 0xA mov r1, r9 add r2, sp, 0x4 bl xxx_call_draw_string b _0803BD42 .align 2, 0 _0803BAE0: .4byte gUnknown_202DF98 _0803BAE4: .4byte gUnknown_80E9F8C _0803BAE8: ldr r2, _0803BAEC b _0803BAFA .align 2, 0 _0803BAEC: .4byte gUnknown_80E89FC _0803BAF0: ldr r2, _0803BAF4 b _0803BAFA .align 2, 0 _0803BAF4: .4byte gUnknown_80E8A40 _0803BAF8: ldr r2, _0803BB0C _0803BAFA: ldr r3, [r7] movs r0, 0 str r0, [sp] movs r0, 0xA mov r1, r9 bl xxx_call_draw_string b _0803BD42 .align 2, 0 _0803BB0C: .4byte gUnknown_80E8A7C _0803BB10: ldr r0, [r7, 0x8] ldr r5, [r0, 0x4] ldrb r4, [r0] adds r4, r5, r4 lsls r4, 24 lsrs r4, 24 ldrb r0, [r0, 0x1] adds r5, r0 lsls r5, 24 lsrs r5, 24 ldr r0, _0803BB68 mov r8, r0 ldrb r1, [r7, 0x14] movs r2, 0 bl sub_8090DC4 ldr r6, _0803BB6C adds r0, r4, 0 movs r1, 0x16 bl __umodsi3 lsls r0, 24 lsrs r0, 22 adds r0, r6 ldr r1, [r0] add r0, sp, 0x4 mov r2, r8 bl sub_800D158 ldr r3, [r7] movs r6, 0 str r6, [sp] movs r0, 0xA mov r1, r9 add r2, sp, 0x4 bl xxx_call_draw_string movs r1, 0xC add r9, r1 ldr r4, _0803BB70 adds r0, r5, 0 movs r1, 0x16 b _0803BD1A .align 2, 0 _0803BB68: .4byte gUnknown_202DE58 _0803BB6C: .4byte gUnknown_80EB3F8 _0803BB70: .4byte gUnknown_80EB72C _0803BB74: ldr r0, [r7, 0x8] ldr r5, [r0, 0x4] ldrb r4, [r0] adds r4, r5, r4 lsls r4, 24 lsrs r4, 24 ldrb r0, [r0, 0x1] adds r5, r0 lsls r5, 24 lsrs r5, 24 movs r1, 0x12 ldrsh r0, [r7, r1] bl sub_808D994 adds r1, r0, 0 ldr r0, _0803BBE4 mov r8, r0 bl strcpy ldr r6, _0803BBE8 adds r0, r4, 0 movs r1, 0x14 bl __umodsi3 lsls r0, 24 lsrs r0, 22 adds r0, r6 ldr r1, [r0] add r0, sp, 0x4 mov r2, r8 bl sub_800D158 ldr r3, [r7] movs r4, 0 str r4, [sp] movs r0, 0xA mov r1, r9 add r2, sp, 0x4 bl xxx_call_draw_string movs r1, 0xC add r9, r1 ldr r1, _0803BBEC movs r0, 0x3 ands r5, r0 lsls r5, 2 adds r5, r1 ldr r1, [r5] add r0, sp, 0x4 mov r2, r8 bl sub_800D158 ldr r3, [r7] str r4, [sp] b _0803BD32 .align 2, 0 _0803BBE4: .4byte gUnknown_202DF98 _0803BBE8: .4byte gUnknown_80EAEB8 _0803BBEC: .4byte gUnknown_80EB198 _0803BBF0: ldr r0, [r7, 0x8] ldr r5, [r0, 0x4] ldrb r4, [r0] adds r4, r5, r4 lsls r4, 24 lsrs r4, 24 ldrb r0, [r0, 0x1] adds r5, r0 lsls r5, 24 lsrs r5, 24 movs r1, 0x12 ldrsh r0, [r7, r1] bl sub_808D994 adds r1, r0, 0 ldr r0, _0803BC4C mov r8, r0 bl strcpy ldr r6, _0803BC50 adds r0, r4, 0 movs r1, 0x6 bl __umodsi3 lsls r0, 24 lsrs r0, 22 adds r0, r6 ldr r1, [r0] add r0, sp, 0x4 mov r2, r8 bl sub_800D158 ldr r3, [r7] movs r6, 0 str r6, [sp] movs r0, 0xA mov r1, r9 add r2, sp, 0x4 bl xxx_call_draw_string movs r1, 0xC add r9, r1 ldr r4, _0803BC54 adds r0, r5, 0 movs r1, 0x6 b _0803BD1A .align 2, 0 _0803BC4C: .4byte gUnknown_202DF98 _0803BC50: .4byte gUnknown_80EB220 _0803BC54: .4byte gUnknown_80EB2F0 _0803BC58: ldr r0, [r7, 0x8] ldr r5, [r0, 0x4] ldrb r4, [r0] adds r4, r5, r4 lsls r4, 24 lsrs r4, 24 ldrb r0, [r0, 0x1] adds r5, r0 lsls r5, 24 lsrs r5, 24 movs r1, 0x12 ldrsh r0, [r7, r1] bl sub_808D994 adds r1, r0, 0 ldr r0, _0803BCB4 mov r8, r0 bl strcpy ldr r6, _0803BCB8 adds r0, r4, 0 movs r1, 0x2D bl __umodsi3 lsls r0, 24 lsrs r0, 22 adds r0, r6 ldr r1, [r0] add r0, sp, 0x4 mov r2, r8 bl sub_800D158 ldr r3, [r7] movs r6, 0 str r6, [sp] movs r0, 0xA mov r1, r9 add r2, sp, 0x4 bl xxx_call_draw_string movs r1, 0xC add r9, r1 ldr r4, _0803BCBC adds r0, r5, 0 movs r1, 0xA b _0803BD1A .align 2, 0 _0803BCB4: .4byte gUnknown_202DF98 _0803BCB8: .4byte gUnknown_80E91D4 _0803BCBC: .4byte gUnknown_80E9820 _0803BCC0: ldr r0, [r7, 0x8] ldr r5, [r0, 0x4] ldrb r4, [r0] adds r4, r5, r4 lsls r4, 24 lsrs r4, 24 ldrb r0, [r0, 0x1] adds r5, r0 lsls r5, 24 lsrs r5, 24 movs r1, 0x10 ldrsh r0, [r7, r1] bl sub_808D994 adds r1, r0, 0 ldr r0, _0803BD78 mov r8, r0 bl strcpy ldr r6, _0803BD7C adds r0, r4, 0 movs r1, 0xD bl __umodsi3 lsls r0, 24 lsrs r0, 22 adds r0, r6 ldr r1, [r0] add r0, sp, 0x4 mov r2, r8 bl sub_800D158 ldr r3, [r7] movs r6, 0 str r6, [sp] movs r0, 0xA mov r1, r9 add r2, sp, 0x4 bl xxx_call_draw_string movs r1, 0xC add r9, r1 ldr r4, _0803BD80 adds r0, r5, 0 movs r1, 0xD _0803BD1A: bl __umodsi3 lsls r0, 24 lsrs r0, 22 adds r0, r4 ldr r1, [r0] add r0, sp, 0x4 mov r2, r8 bl sub_800D158 ldr r3, [r7] str r6, [sp] _0803BD32: movs r0, 0xA mov r1, r9 add r2, sp, 0x4 bl xxx_call_draw_string movs r0, 0xC negs r0, r0 add r9, r0 _0803BD42: movs r1, 0x1C add r9, r1 ldr r2, _0803BD84 ldr r3, [r7] movs r0, 0 mov r8, r0 str r0, [sp] movs r0, 0xA mov r1, r9 bl xxx_call_draw_string ldr r1, [r7, 0xC] cmp r1, 0 bne _0803BD88 movs r1, 0x10 ldrsh r0, [r7, r1] bl sub_808D994 adds r2, r0, 0 ldr r3, [r7] mov r0, r8 str r0, [sp] movs r0, 0x44 mov r1, r9 bl xxx_call_draw_string b _0803BDBC .align 2, 0 _0803BD78: .4byte gUnknown_202DF98 _0803BD7C: .4byte gUnknown_80E8DE4 _0803BD80: .4byte gUnknown_80E8FB0 _0803BD84: .4byte gUnknown_80E8AC8 _0803BD88: add r6, sp, 0x158 adds r0, r6, 0 movs r2, 0xA bl sub_80922B4 add r4, sp, 0x16C movs r0, 0x10 ldrsh r1, [r7, r0] adds r0, r4, 0 bl sub_808D930 add r5, sp, 0x130 ldr r1, _0803BDE8 adds r0, r5, 0 adds r2, r6, 0 adds r3, r4, 0 bl sub_800D158 ldr r3, [r7] mov r1, r8 str r1, [sp] movs r0, 0x44 mov r1, r9 adds r2, r5, 0 bl xxx_call_draw_string _0803BDBC: movs r0, 0xC add r9, r0 ldr r2, _0803BDEC ldr r3, [r7] movs r0, 0 str r0, [sp] movs r0, 0xA mov r1, r9 bl xxx_call_draw_string adds r0, r7, 0 adds r0, 0x42 ldrb r1, [r0] adds r5, r0, 0 cmp r1, 0x6 bhi _0803BEB8 lsls r0, r1, 2 ldr r1, _0803BDF0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803BDE8: .4byte gUnknown_80E8AD0 _0803BDEC: .4byte gUnknown_80E8AE0 _0803BDF0: .4byte _0803BDF4 .align 2, 0 _0803BDF4: .4byte _0803BE10 .4byte _0803BE30 .4byte _0803BE18 .4byte _0803BE48 .4byte _0803BE80 .4byte _0803BE60 .4byte _0803BEB8 _0803BE10: ldr r2, _0803BE14 b _0803BE4A .align 2, 0 _0803BE14: .4byte gUnknown_80E8AEC _0803BE18: ldr r4, _0803BE28 ldrb r1, [r7, 0x14] adds r0, r4, 0 movs r2, 0 bl sub_8090DC4 ldr r1, _0803BE2C b _0803BE94 .align 2, 0 _0803BE28: .4byte gUnknown_202DE58 _0803BE2C: .4byte gUnknown_80E8AFC _0803BE30: ldr r4, _0803BE40 ldrb r1, [r7, 0x14] adds r0, r4, 0 movs r2, 0 bl sub_8090DC4 ldr r1, _0803BE44 b _0803BE94 .align 2, 0 _0803BE40: .4byte gUnknown_202DE58 _0803BE44: .4byte gUnknown_80E8B10 _0803BE48: ldr r2, _0803BE5C _0803BE4A: ldr r3, [r7] movs r0, 0 str r0, [sp] movs r0, 0x44 mov r1, r9 bl xxx_call_draw_string b _0803BEC8 .align 2, 0 _0803BE5C: .4byte gUnknown_80E8B20 _0803BE60: movs r1, 0x12 ldrsh r0, [r7, r1] bl sub_808D994 adds r1, r0, 0 ldr r4, _0803BE78 adds r0, r4, 0 bl strcpy ldr r1, _0803BE7C b _0803BE94 .align 2, 0 _0803BE78: .4byte gUnknown_202DF98 _0803BE7C: .4byte gUnknown_80E8B2C _0803BE80: movs r1, 0x12 ldrsh r0, [r7, r1] bl sub_808D994 adds r1, r0, 0 ldr r4, _0803BEB0 adds r0, r4, 0 bl strcpy ldr r1, _0803BEB4 _0803BE94: add r0, sp, 0x4 adds r2, r4, 0 bl sub_800D158 ldr r3, [r7] movs r0, 0 str r0, [sp] movs r0, 0x44 mov r1, r9 add r2, sp, 0x4 bl xxx_call_draw_string b _0803BEC8 .align 2, 0 _0803BEB0: .4byte gUnknown_202DF98 _0803BEB4: .4byte gUnknown_80E8B40 _0803BEB8: ldr r2, _0803BEF8 ldr r3, [r7] movs r0, 0 str r0, [sp] movs r0, 0x44 mov r1, r9 bl xxx_call_draw_string _0803BEC8: movs r0, 0xC add r9, r0 ldr r2, _0803BEFC ldr r3, [r7] movs r0, 0 str r0, [sp] movs r0, 0xA mov r1, r9 bl xxx_call_draw_string ldrb r0, [r5] cmp r0, 0x1 bne _0803BF04 add r4, sp, 0x180 ldr r1, [r7, 0x8] adds r0, r4, 0 bl sub_8090228 ldr r1, _0803BF00 add r0, sp, 0x4 adds r2, r4, 0 bl sub_800D158 b _0803BF0C .align 2, 0 _0803BEF8: .4byte gUnknown_80E8B50 _0803BEFC: .4byte gUnknown_80E8B60 _0803BF00: .4byte gUnknown_80E8884 _0803BF04: ldr r1, [r7, 0x8] add r0, sp, 0x4 bl sub_8090228 _0803BF0C: ldr r3, [r7] movs r0, 0 str r0, [sp] movs r0, 0x44 mov r1, r9 add r2, sp, 0x4 bl xxx_call_draw_string ldrb r0, [r5] cmp r0, 0 bne _0803BF28 ldr r0, [r7, 0x8] movs r1, 0 b _0803BF2E _0803BF28: ldr r0, [r7, 0x8] ldr r1, [r7, 0x54] ldrb r1, [r1, 0x1] _0803BF2E: bl sub_803C1D0 lsls r0, 24 lsrs r4, r0, 24 movs r1, 0xC add r9, r1 ldr r2, _0803BF88 ldr r3, [r7] movs r6, 0 str r6, [sp] movs r0, 0xA mov r1, r9 bl xxx_call_draw_string adds r0, r4, 0 bl sub_803C1F0 adds r2, r0, 0 ldr r3, [r7] str r6, [sp] movs r0, 0x44 mov r1, r9 bl xxx_call_draw_string movs r0, 0xC add r9, r0 ldr r2, _0803BF8C ldr r3, [r7] str r6, [sp] movs r0, 0xA mov r1, r9 bl xxx_call_draw_string adds r0, r7, 0 adds r0, 0x2E ldrb r2, [r0] adds r5, r0, 0 cmp r2, 0x4 bhi _0803C02C lsls r0, r2, 2 ldr r1, _0803BF90 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803BF88: .4byte gUnknown_80E8B68 _0803BF8C: .4byte gUnknown_80E8B74 _0803BF90: .4byte _0803BF94 .align 2, 0 _0803BF94: .4byte _0803BFA8 .4byte _0803BFBC .4byte _0803BFD0 .4byte _0803BFD0 .4byte _0803C00C _0803BFA8: ldr r1, _0803BFB8 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, [r0] ldr r2, [r7, 0x30] add r0, sp, 0x4 b _0803BFEE .align 2, 0 _0803BFB8: .4byte gUnknown_80E8C48 _0803BFBC: ldr r1, _0803BFCC ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, [r0] ldr r2, [r7, 0x30] add r0, sp, 0x4 b _0803BFEE .align 2, 0 _0803BFCC: .4byte gUnknown_80E8C48 _0803BFD0: ldr r4, _0803C004 adds r0, r7, 0 adds r0, 0x34 ldrb r1, [r0] adds r0, r4, 0 movs r2, 0 bl sub_8090DC4 ldr r1, _0803C008 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, [r0] add r0, sp, 0x4 adds r2, r4, 0 _0803BFEE: bl sub_800D158 ldr r3, [r7] movs r0, 0 str r0, [sp] movs r0, 0x44 mov r1, r9 add r2, sp, 0x4 bl xxx_call_draw_string b _0803C040 .align 2, 0 _0803C004: .4byte gUnknown_202DE58 _0803C008: .4byte gUnknown_80E8C48 _0803C00C: ldr r1, _0803C028 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r2, [r0] ldr r3, [r7] movs r0, 0 str r0, [sp] movs r0, 0x44 mov r1, r9 bl xxx_call_draw_string b _0803C040 .align 2, 0 _0803C028: .4byte gUnknown_80E8C48 _0803C02C: ldr r1, _0803C0D4 lsls r0, r2, 2 adds r0, r1 ldr r2, [r0] ldr r3, [r7] str r6, [sp] movs r0, 0x44 mov r1, r9 bl xxx_call_draw_string _0803C040: movs r1, 0xC add r9, r1 adds r0, r7, 0 adds r0, 0x41 ldrb r1, [r0] adds r0, r1, 0 subs r0, 0x9 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bls _0803C0C6 cmp r1, 0x3 beq _0803C0C6 ldr r0, [r7, 0x54] ldrb r0, [r0] cmp r0, 0x5 bne _0803C0C6 ldr r2, _0803C0D8 ldr r3, [r7] movs r0, 0 str r0, [sp] movs r0, 0xA mov r1, r9 bl xxx_call_draw_string add r0, sp, 0x1E4 ldr r1, [r7, 0x54] bl sub_803D414 movs r4, 0 _0803C07C: cmp r4, 0xC bne _0803C084 movs r0, 0xC add r9, r0 _0803C084: movs r5, 0x7 cmp r4, 0x3 ble _0803C09C movs r5, 0x6 cmp r4, 0x7 ble _0803C09C movs r5, 0x7 cmp r4, 0xF ble _0803C09C cmp r4, 0x13 bgt _0803C09C movs r5, 0x6 _0803C09C: adds r0, r4, 0 movs r1, 0xC bl __modsi3 adds r1, r0, 0 lsls r0, r1, 2 adds r0, r1 lsls r0, 1 adds r0, 0x54 add r1, sp, 0x1E4 adds r1, r4 ldrb r2, [r1] ldr r1, [r7] str r1, [sp] mov r1, r9 adds r3, r5, 0 bl sub_8012C60 adds r4, 0x1 cmp r4, 0x17 ble _0803C07C _0803C0C6: add sp, 0x1FC pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803C0D4: .4byte gUnknown_80E8C48 _0803C0D8: .4byte gUnknown_80E8B7C thumb_func_end sub_803B98C thumb_func_start sub_803C0DC sub_803C0DC: push {lr} lsls r0, 16 asrs r0, 16 bl sub_808E770 lsls r0, 16 asrs r2, r0, 16 ldr r1, _0803C0F0 b _0803C102 .align 2, 0 _0803C0F0: .4byte gUnknown_80E80E0 _0803C0F4: movs r3, 0 ldrsh r0, [r1, r3] cmp r0, r2 bne _0803C100 movs r0, 0 b _0803C10C _0803C100: adds r1, 0x2 _0803C102: movs r3, 0 ldrsh r0, [r1, r3] cmp r0, 0 bne _0803C0F4 movs r0, 0x1 _0803C10C: pop {r1} bx r1 thumb_func_end sub_803C0DC thumb_func_start sub_803C110 sub_803C110: push {r4,lr} lsls r0, 16 asrs r4, r0, 16 adds r0, r4, 0 bl sub_8098134 lsls r0, 24 cmp r0, 0 beq _0803C180 adds r0, r4, 0 bl sub_808E770 lsls r0, 16 asrs r0, 16 cmp r4, r0 bne _0803C180 adds r0, r4, 0 bl sub_803C0DC lsls r0, 24 cmp r0, 0 beq _0803C180 movs r0, 0x6 bl sub_80023E4 lsls r0, 24 cmp r0, 0 bne _0803C188 ldr r1, _0803C184 movs r2, 0 ldrsh r0, [r1, r2] cmp r0, 0 beq _0803C168 adds r2, r1, 0 _0803C154: movs r3, 0 ldrsh r0, [r2, r3] cmp r0, r4 beq _0803C180 adds r1, 0x2 adds r2, 0x2 movs r3, 0 ldrsh r0, [r1, r3] cmp r0, 0 bne _0803C154 _0803C168: bl sub_808D33C movs r1, 0x8 ldrsh r0, [r0, r1] cmp r0, r4 beq _0803C180 bl sub_808D378 movs r2, 0x8 ldrsh r0, [r0, r2] cmp r0, r4 bne _0803C188 _0803C180: movs r0, 0 b _0803C18A .align 2, 0 _0803C184: .4byte gUnknown_80E8126 _0803C188: movs r0, 0x1 _0803C18A: pop {r4} pop {r1} bx r1 thumb_func_end sub_803C110 thumb_func_start sub_803C190 sub_803C190: lsls r0, 24 ldr r1, _0803C19C lsrs r0, 21 adds r0, r1 ldr r0, [r0] bx lr .align 2, 0 _0803C19C: .4byte gUnknown_80EBA18 thumb_func_end sub_803C190 thumb_func_start sub_803C1A0 sub_803C1A0: lsls r0, 24 ldr r1, _0803C1B0 lsrs r0, 21 adds r1, 0x4 adds r0, r1 ldr r0, [r0] bx lr .align 2, 0 _0803C1B0: .4byte gUnknown_80EBA18 thumb_func_end sub_803C1A0 thumb_func_start sub_803C1B4 sub_803C1B4: push {r4,lr} lsls r4, r1, 24 lsrs r4, 24 bl sub_80908D8 cmp r4, 0x2 bne _0803C1C4 adds r0, 0x2 _0803C1C4: cmp r0, 0xF ble _0803C1CA movs r0, 0xF _0803C1CA: pop {r4} pop {r1} bx r1 thumb_func_end sub_803C1B4 thumb_func_start sub_803C1D0 sub_803C1D0: push {lr} lsls r1, 24 lsrs r1, 24 bl sub_803C1B4 adds r1, r0, 0 lsrs r0, r1, 31 adds r0, r1, r0 asrs r1, r0, 1 lsls r0, r1, 24 lsrs r0, 24 cmp r0, 0x6 bls _0803C1EC movs r0, 0x6 _0803C1EC: pop {r1} bx r1 thumb_func_end sub_803C1D0 thumb_func_start sub_803C1F0 sub_803C1F0: lsls r0, 24 ldr r1, _0803C1FC lsrs r0, 22 adds r0, r1 ldr r0, [r0] bx lr .align 2, 0 _0803C1FC: .4byte gUnknown_80E8BF8 thumb_func_end sub_803C1F0 thumb_func_start sub_803C200 sub_803C200: push {lr} lsls r1, 24 lsrs r1, 24 bl sub_803C1B4 ldr r1, _0803C218 lsls r0, 2 adds r0, r1 ldr r0, [r0] pop {r1} bx r1 .align 2, 0 _0803C218: .4byte gUnknown_80E80A0 thumb_func_end sub_803C200 thumb_func_start sub_803C21C sub_803C21C: push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 adds r4, r1, 0 adds r0, r6, 0x4 ldrb r1, [r6, 0x1] bl sub_803C1D0 lsls r0, 24 lsrs r2, r0, 24 movs r0, 0 str r0, [r4, 0x18] movs r3, 0 movs r1, 0x2 adds r0, r4, 0 adds r0, 0x1E _0803C23E: strb r3, [r0] subs r0, 0x1 subs r1, 0x1 cmp r1, 0 bge _0803C23E adds r0, r4, 0 adds r0, 0x20 movs r1, 0 strb r1, [r0] movs r1, 0xA strb r1, [r4, 0x1F] ldrb r1, [r6, 0x11] adds r3, r0, 0 cmp r1, 0x9 bhi _0803C354 lsls r0, r1, 2 ldr r1, _0803C268 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803C268: .4byte _0803C26C .align 2, 0 _0803C26C: .4byte _0803C294 .4byte _0803C2A2 .4byte _0803C2B4 .4byte _0803C2BE .4byte _0803C354 .4byte _0803C2E0 .4byte _0803C2EE .4byte _0803C300 .4byte _0803C30A .4byte _0803C34A _0803C294: movs r0, 0 strb r0, [r4, 0x16] adds r1, r2, 0x1 movs r0, 0x64 muls r0, r1 str r0, [r4, 0x18] b _0803C358 _0803C2A2: movs r0, 0x1 strb r0, [r4, 0x16] adds r1, r2, 0x1 movs r0, 0x64 muls r0, r1 str r0, [r4, 0x18] ldrb r0, [r6, 0x12] strb r0, [r4, 0x1C] b _0803C358 _0803C2B4: movs r0, 0x2 strb r0, [r4, 0x16] ldrb r0, [r6, 0x12] strb r0, [r4, 0x1C] b _0803C358 _0803C2BE: movs r0, 0x3 strb r0, [r4, 0x16] ldrb r0, [r6, 0x12] strb r0, [r4, 0x1C] adds r5, r6, 0x4 adds r7, r4, 0 adds r7, 0x1D _0803C2CC: ldrb r1, [r6, 0x1] adds r0, r5, 0 adds r2, r7, 0 bl sub_803C37C ldrb r0, [r4, 0x1C] ldrb r1, [r4, 0x1D] cmp r0, r1 beq _0803C2CC b _0803C35A _0803C2E0: movs r0, 0 strb r0, [r4, 0x16] adds r1, r2, 0x1 movs r0, 0xC8 muls r0, r1 str r0, [r4, 0x18] b _0803C358 _0803C2EE: movs r0, 0x1 strb r0, [r4, 0x16] adds r1, r2, 0x1 movs r0, 0xC8 muls r0, r1 str r0, [r4, 0x18] ldrb r0, [r6, 0x12] strb r0, [r4, 0x1C] b _0803C358 _0803C300: movs r0, 0x2 strb r0, [r4, 0x16] ldrb r0, [r6, 0x12] strb r0, [r4, 0x1C] b _0803C358 _0803C30A: movs r0, 0x3 strb r0, [r4, 0x16] ldrb r0, [r6, 0x12] strb r0, [r4, 0x1C] adds r5, r6, 0x4 adds r7, r4, 0 adds r7, 0x1D movs r0, 0x1E adds r0, r4 mov r8, r0 _0803C31E: ldrb r1, [r6, 0x1] adds r0, r5, 0 adds r2, r7, 0 bl sub_803C37C ldrb r0, [r4, 0x1C] ldrb r1, [r4, 0x1D] cmp r0, r1 beq _0803C31E _0803C330: ldrb r1, [r6, 0x1] adds r0, r5, 0 mov r2, r8 bl sub_803C37C ldrb r0, [r4, 0x1C] ldrb r1, [r4, 0x1E] cmp r0, r1 beq _0803C330 ldrb r0, [r4, 0x1D] cmp r0, r1 beq _0803C330 b _0803C35A _0803C34A: movs r0, 0x4 strb r0, [r4, 0x16] ldrb r0, [r6, 0x13] strb r0, [r3] b _0803C358 _0803C354: movs r0, 0x5 strb r0, [r4, 0x16] _0803C358: adds r5, r6, 0x4 _0803C35A: movs r0, 0xC ldrsh r1, [r6, r0] adds r0, r4, 0 bl sub_808D8E0 ldrh r0, [r6, 0xC] strh r0, [r4, 0x14] ldrb r1, [r6, 0x1] adds r0, r5, 0 bl sub_803C200 str r0, [r4, 0x24] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_803C21C thumb_func_start sub_803C37C sub_803C37C: push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 mov r8, r2 lsls r1, 24 lsrs r1, 24 bl sub_803C1B4 adds r7, r0, 0 adds r0, r6, 0 adds r1, r7, 0 bl sub_8090910 _0803C398: movs r5, 0 adds r0, r6, 0 adds r1, r7, 0 bl sub_8090910 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0xEA bne _0803C3BA movs r0, 0 movs r1, 0x47 movs r2, 0x1 bl sub_8001784 negs r1, r0 orrs r1, r0 lsrs r5, r1, 31 _0803C3BA: cmp r4, 0xEB bne _0803C3CE movs r0, 0 movs r1, 0x47 movs r2, 0 bl sub_8001784 cmp r0, 0 beq _0803C3CE movs r5, 0x1 _0803C3CE: cmp r5, 0 bne _0803C398 mov r0, r8 strb r4, [r0] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_803C37C thumb_func_start sub_803C3E0 sub_803C3E0: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x54 adds r7, r0, 0 movs r6, 0 ldr r5, _0803C42C movs r4, 0 mov r8, sp _0803C3F2: movs r1, 0 ldrsh r0, [r5, r1] bl sub_803C110 lsls r0, 24 cmp r0, 0 beq _0803C41A movs r1, 0x2 ldrsh r0, [r5, r1] bl sub_803C110 lsls r0, 24 cmp r0, 0 beq _0803C41A mov r0, r8 adds r0, 0x4 mov r8, r0 subs r0, 0x4 stm r0!, {r4} adds r6, 0x1 _0803C41A: adds r5, 0x8 adds r4, 0x1 cmp r4, 0x14 ble _0803C3F2 ldr r5, _0803C42C cmp r6, 0 bne _0803C430 movs r0, 0 b _0803C44E .align 2, 0 _0803C42C: .4byte gUnknown_80E9920 _0803C430: adds r0, r6, 0 bl RandomCapped lsls r0, 2 add r0, sp ldr r4, [r0] lsls r0, r4, 3 adds r5, r0, r5 ldrh r0, [r5] strh r0, [r7, 0xC] ldrh r0, [r5, 0x2] strh r0, [r7, 0xE] movs r0, 0x7 strb r0, [r7, 0x2] movs r0, 0x1 _0803C44E: add sp, 0x54 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_803C3E0 thumb_func_start sub_803C45C sub_803C45C: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xB4 adds r7, r0, 0 movs r6, 0 ldr r5, _0803C4CC movs r4, 0 mov r8, sp _0803C46E: movs r1, 0 ldrsh r0, [r5, r1] bl sub_803C110 lsls r0, 24 cmp r0, 0 beq _0803C496 movs r1, 0x2 ldrsh r0, [r5, r1] bl sub_803C110 lsls r0, 24 cmp r0, 0 beq _0803C496 mov r0, r8 adds r0, 0x4 mov r8, r0 subs r0, 0x4 stm r0!, {r4} adds r6, 0x1 _0803C496: adds r5, 0xC adds r4, 0x1 cmp r4, 0x2C ble _0803C46E ldr r5, _0803C4CC cmp r6, 0 beq _0803C4E0 adds r0, r6, 0 bl RandomCapped lsls r0, 2 add r0, sp ldr r4, [r0] lsls r0, r4, 1 adds r0, r4 lsls r0, 2 adds r5, r0, r5 bl Random movs r1, 0x10 ands r1, r0 cmp r1, 0 beq _0803C4D0 ldrh r0, [r5] strh r0, [r7, 0xC] ldrh r0, [r5, 0x2] b _0803C4D6 .align 2, 0 _0803C4CC: .4byte gUnknown_80E9F8C _0803C4D0: ldrh r0, [r5, 0x2] strh r0, [r7, 0xC] ldrh r0, [r5] _0803C4D6: strh r0, [r7, 0xE] movs r0, 0x8 strb r0, [r7, 0x2] movs r0, 0x1 b _0803C4E2 _0803C4E0: movs r0, 0 _0803C4E2: add sp, 0xB4 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_803C45C thumb_func_start sub_803C4F0 sub_803C4F0: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x18 adds r7, r0, 0 movs r6, 0 ldr r5, _0803C55C movs r4, 0 mov r8, sp _0803C502: movs r1, 0 ldrsh r0, [r5, r1] bl sub_803C110 lsls r0, 24 cmp r0, 0 beq _0803C52A movs r1, 0x2 ldrsh r0, [r5, r1] bl sub_803C110 lsls r0, 24 cmp r0, 0 beq _0803C52A mov r0, r8 adds r0, 0x4 mov r8, r0 subs r0, 0x4 stm r0!, {r4} adds r6, 0x1 _0803C52A: adds r5, 0x4 adds r4, 0x1 cmp r4, 0x5 ble _0803C502 ldr r5, _0803C55C cmp r6, 0 beq _0803C570 adds r0, r6, 0 bl RandomCapped lsls r0, 2 add r0, sp ldr r4, [r0] lsls r0, r4, 2 adds r5, r0, r5 bl Random movs r1, 0x10 ands r1, r0 cmp r1, 0 beq _0803C560 ldrh r0, [r5] strh r0, [r7, 0xC] ldrh r0, [r5, 0x2] b _0803C566 .align 2, 0 _0803C55C: .4byte gUnknown_80E8168 _0803C560: ldrh r0, [r5, 0x2] strh r0, [r7, 0xC] ldrh r0, [r5] _0803C566: strh r0, [r7, 0xE] movs r0, 0x9 strb r0, [r7, 0x2] movs r0, 0x1 b _0803C572 _0803C570: movs r0, 0 _0803C572: add sp, 0x18 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_803C4F0 thumb_func_start sub_803C580 sub_803C580: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x54 adds r6, r0, 0 movs r7, 0 ldr r5, _0803C5D8 movs r0, 0x6 bl sub_80023E4 lsls r0, 24 cmp r0, 0 beq _0803C5D2 movs r4, 0 mov r8, sp _0803C59E: movs r1, 0 ldrsh r0, [r5, r1] bl sub_803C110 lsls r0, 24 cmp r0, 0 beq _0803C5C6 ldrb r0, [r6, 0x4] ldrb r1, [r5, 0x2] bl sub_8091E60 lsls r0, 24 cmp r0, 0 beq _0803C5C6 mov r0, r8 adds r0, 0x4 mov r8, r0 subs r0, 0x4 stm r0!, {r4} adds r7, 0x1 _0803C5C6: adds r5, 0x4 adds r4, 0x1 cmp r4, 0x14 ble _0803C59E cmp r7, 0 bne _0803C5DC _0803C5D2: movs r0, 0 b _0803C600 .align 2, 0 _0803C5D8: .4byte gUnknown_80E8180 _0803C5DC: adds r0, r7, 0 bl RandomCapped lsls r0, 2 add r0, sp ldr r4, [r0] lsls r1, r4, 2 ldr r0, _0803C60C adds r5, r1, r0 ldrh r0, [r5] strh r0, [r6, 0xC] ldrh r0, [r5] strh r0, [r6, 0xE] ldrb r0, [r5, 0x2] strb r0, [r6, 0x10] movs r0, 0x5 strb r0, [r6, 0x2] movs r0, 0x1 _0803C600: add sp, 0x54 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0803C60C: .4byte gUnknown_80E8180 thumb_func_end sub_803C580 thumb_func_start sub_803C610 sub_803C610: push {r4-r7,lr} mov r7, r8 push {r7} ldr r4, _0803C660 add sp, r4 adds r6, r0, 0 movs r7, 0 ldr r4, _0803C664 movs r5, 0 mov r8, sp _0803C624: movs r1, 0 ldrsh r0, [r4, r1] bl sub_803C110 lsls r0, 24 cmp r0, 0 beq _0803C64C ldrb r0, [r6, 0x4] ldrb r1, [r4, 0x2] bl sub_8091E60 lsls r0, 24 cmp r0, 0 beq _0803C64C mov r0, r8 adds r0, 0x4 mov r8, r0 subs r0, 0x4 stm r0!, {r5} adds r7, 0x1 _0803C64C: adds r4, 0x4 adds r5, 0x1 ldr r0, _0803C668 cmp r5, r0 ble _0803C624 cmp r7, 0 bne _0803C66C movs r0, 0 b _0803C690 .align 2, 0 _0803C660: .4byte 0xfffff9f8 _0803C664: .4byte gUnknown_80E81D4 _0803C668: .4byte 0x00000181 _0803C66C: adds r0, r7, 0 bl RandomCapped lsls r0, 2 add r0, sp ldr r5, [r0] lsls r1, r5, 2 ldr r0, _0803C6A0 adds r4, r1, r0 ldrh r0, [r4] strh r0, [r6, 0xC] ldrh r0, [r4] strh r0, [r6, 0xE] ldrb r0, [r4, 0x2] strb r0, [r6, 0x10] movs r0, 0x6 strb r0, [r6, 0x2] movs r0, 0x1 _0803C690: movs r3, 0xC1 lsls r3, 3 add sp, r3 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0803C6A0: .4byte gUnknown_80E81D4 thumb_func_end sub_803C610 thumb_func_start sub_803C6A4 sub_803C6A4: push {r4,lr} ldr r4, _0803C6CC movs r0, 0xC0 movs r1, 0x8 bl MemoryAlloc str r0, [r4] adds r0, 0xB4 bl sub_801317C bl sub_803C6D0 movs r0, 0x1 bl sub_8099690 movs r0, 0x1 pop {r4} pop {r1} bx r1 .align 2, 0 _0803C6CC: .4byte gUnknown_203B400 thumb_func_end sub_803C6A4 thumb_func_start sub_803C6D0 sub_803C6D0: push {r4,r5,lr} ldr r4, _0803C72C ldr r0, [r4] adds r0, 0x4 bl sub_8001024 ldr r1, [r4] movs r0, 0 str r0, [r1] str r0, [r1, 0x34] str r0, [r1, 0x38] movs r2, 0 movs r5, 0 adds r3, r4, 0 _0803C6EC: ldr r0, [r4] lsls r1, r2, 2 adds r0, 0x44 adds r0, r1 str r5, [r0] adds r2, 0x1 cmp r2, 0xC ble _0803C6EC ldr r1, [r3] movs r0, 0 str r0, [r1, 0x3C] movs r2, 0 adds r4, r3, 0 movs r1, 0 _0803C708: ldr r0, [r4] adds r0, 0x78 adds r0, r2 strb r1, [r0] adds r2, 0x1 cmp r2, 0x36 ble _0803C708 ldr r0, [r3] adds r0, 0x40 movs r1, 0 strb r1, [r0] ldr r0, [r3] adds r0, 0xB0 str r1, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0803C72C: .4byte gUnknown_203B400 thumb_func_end sub_803C6D0 thumb_func_start sub_803C730 sub_803C730: push {r4,r5,lr} ldr r0, _0803C750 ldr r1, [r0] ldr r0, [r1] adds r0, 0x1 str r0, [r1] ldr r0, [r1, 0x34] cmp r0, 0xF bls _0803C744 b _0803C848 _0803C744: lsls r0, 2 ldr r1, _0803C754 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803C750: .4byte gUnknown_203B400 _0803C754: .4byte _0803C758 .align 2, 0 _0803C758: .4byte _0803C798 .4byte _0803C79E .4byte _0803C7A4 .4byte _0803C7AA .4byte _0803C7B0 .4byte _0803C7B6 .4byte _0803C7BC .4byte _0803C7C2 .4byte _0803C7C8 .4byte _0803C7CE .4byte _0803C7D4 .4byte _0803C7DA .4byte _0803C7E0 .4byte _0803C7E6 .4byte _0803C7EC .4byte _0803C7F2 _0803C798: bl sub_803C870 b _0803C848 _0803C79E: bl sub_803C908 b _0803C848 _0803C7A4: bl sub_803C920 b _0803C848 _0803C7AA: bl sub_803C98C b _0803C848 _0803C7B0: bl sub_803C9D8 b _0803C848 _0803C7B6: bl sub_803CA54 b _0803C848 _0803C7BC: bl sub_803CA8C b _0803C848 _0803C7C2: bl sub_803CAAC b _0803C848 _0803C7C8: bl sub_803CAD4 b _0803C848 _0803C7CE: bl sub_803CAF4 b _0803C848 _0803C7D4: bl sub_803CB14 b _0803C848 _0803C7DA: bl sub_803CB5C b _0803C848 _0803C7E0: bl sub_803CB7C b _0803C848 _0803C7E6: bl sub_803CBB0 b _0803C848 _0803C7EC: bl sub_803CBE4 b _0803C848 _0803C7F2: bl Random ldr r4, _0803C844 ldr r1, [r4] ldr r1, [r1] adds r5, r0, 0 muls r5, r1 bl Random bl sub_8094D28 movs r1, 0 ldr r0, [r4] adds r2, r0, 0 adds r2, 0x44 _0803C810: ldm r2!, {r0} adds r0, r1 adds r0, 0x3 muls r5, r0 adds r1, 0x1 cmp r1, 0xC ble _0803C810 bl sub_8094E4C adds r5, r0 movs r0, 0x1 negs r0, r0 cmp r5, r0 bne _0803C838 adds r4, r5, 0 _0803C82E: bl sub_8094E4C adds r5, r0 cmp r5, r4 beq _0803C82E _0803C838: adds r0, r5, 0 bl sub_8011C40 movs r0, 0x3 b _0803C84A .align 2, 0 _0803C844: .4byte gUnknown_203B400 _0803C848: movs r0, 0 _0803C84A: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_803C730 thumb_func_start sub_803C850 sub_803C850: push {r4,lr} ldr r4, _0803C86C ldr r0, [r4] adds r0, 0x4 bl sub_8001044 ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _0803C86C: .4byte gUnknown_203B400 thumb_func_end sub_803C850 thumb_func_start sub_803C870 sub_803C870: push {r4-r6,lr} sub sp, 0x14 ldr r5, _0803C8A4 ldr r1, [r5] ldr r0, [r1, 0x38] adds r0, 0x1 str r0, [r1, 0x38] cmp r0, 0x8 ble _0803C8B4 ldr r0, _0803C8A8 ldr r3, _0803C8AC movs r1, 0 str r1, [sp] movs r4, 0x3 str r4, [sp, 0x4] str r1, [sp, 0x8] str r1, [sp, 0xC] ldr r1, _0803C8B0 str r1, [sp, 0x10] movs r1, 0 movs r2, 0 bl sub_8014248 ldr r0, [r5] str r4, [r0, 0x34] b _0803C8F8 .align 2, 0 _0803C8A4: .4byte gUnknown_203B400 _0803C8A8: .4byte gUnknown_80F273C _0803C8AC: .4byte gUnknown_80F275C _0803C8B0: .4byte 0x00000101 _0803C8B4: adds r4, r5, 0 _0803C8B6: movs r0, 0x37 bl RandomCapped ldr r1, [r4] str r0, [r1, 0x3C] adds r1, 0x78 adds r1, r0 ldrb r0, [r1] cmp r0, 0x1 beq _0803C8B6 ldr r2, _0803C900 ldr r1, _0803C904 ldr r0, [r1] ldr r0, [r0, 0x3C] adds r0, r2 ldrb r4, [r0] movs r3, 0 adds r6, r1, 0 movs r5, 0x1 _0803C8DC: adds r0, r3, r2 ldrb r0, [r0] cmp r0, r4 bne _0803C8EC ldr r0, [r1] adds r0, 0x78 adds r0, r3 strb r5, [r0] _0803C8EC: adds r3, 0x1 cmp r3, 0x36 ble _0803C8DC ldr r1, [r6] movs r0, 0x1 str r0, [r1, 0x34] _0803C8F8: add sp, 0x14 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0803C900: .4byte gUnknown_80F2704 _0803C904: .4byte gUnknown_203B400 thumb_func_end sub_803C870 thumb_func_start sub_803C908 sub_803C908: push {lr} bl sub_803CC04 ldr r0, _0803C91C ldr r1, [r0] movs r0, 0x2 str r0, [r1, 0x34] pop {r0} bx r0 .align 2, 0 _0803C91C: .4byte gUnknown_203B400 thumb_func_end sub_803C908 thumb_func_start sub_803C920 sub_803C920: push {r4-r6,lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0803C97C ldr r3, [sp] cmp r3, 0x63 bne _0803C944 ldr r0, _0803C940 ldr r1, [r0] movs r0, 0x37 str r0, [r1, 0x3C] movs r0, 0x1 b _0803C97A .align 2, 0 _0803C940: .4byte gUnknown_203B400 _0803C944: ldr r1, _0803C984 ldr r2, _0803C988 ldr r0, [r2] ldr r0, [r0, 0x3C] lsls r0, 2 adds r0, r1 ldr r0, [r0] ldr r4, [r0, 0x8] lsls r0, r3, 4 adds r4, r0 movs r3, 0 adds r6, r2, 0 adds r5, r6, 0 _0803C95E: ldr r1, [r5] lsls r0, r3, 2 adds r1, 0x44 adds r1, r0 adds r0, r4, r3 ldrb r2, [r0] ldr r0, [r1] adds r0, r2 str r0, [r1] adds r3, 0x1 cmp r3, 0xC ble _0803C95E ldr r1, [r6] movs r0, 0 _0803C97A: str r0, [r1, 0x34] _0803C97C: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0803C984: .4byte gUnknown_80F2624 _0803C988: .4byte gUnknown_203B400 thumb_func_end sub_803C920 thumb_func_start sub_803C98C sub_803C98C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0803C9CA ldr r1, [sp] cmp r1, 0 bne _0803C9AC ldr r0, _0803C9A8 ldr r0, [r0] adds r0, 0xB0 b _0803C9B4 .align 2, 0 _0803C9A8: .4byte gUnknown_203B400 _0803C9AC: ldr r0, _0803C9D0 ldr r0, [r0] adds r0, 0xB0 movs r1, 0x1 _0803C9B4: str r1, [r0] ldr r0, _0803C9D4 ldr r0, [r0] strb r1, [r0, 0xB] movs r0, 0 bl sub_8099690 ldr r0, _0803C9D0 ldr r1, [r0] movs r0, 0x4 str r0, [r1, 0x34] _0803C9CA: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _0803C9D0: .4byte gUnknown_203B400 _0803C9D4: .4byte gUnknown_203B46C thumb_func_end sub_803C98C thumb_func_start sub_803C9D8 sub_803C9D8: push {r4-r7,lr} movs r0, 0xD bl RandomCapped ldr r2, _0803CA4C ldr r1, [r2] adds r1, 0x40 strb r0, [r1] ldr r0, [r2] adds r0, 0x40 ldrb r3, [r0] adds r7, r2, 0 movs r5, 0xB _0803C9F2: adds r3, 0x1 cmp r3, 0xC ble _0803C9FA movs r3, 0 _0803C9FA: ldr r0, [r7] lsls r2, r3, 2 adds r1, r0, 0 adds r1, 0x44 adds r2, r1, r2 adds r4, r0, 0 adds r4, 0x40 ldrb r0, [r4] lsls r0, 2 adds r1, r0 ldr r2, [r2] ldr r0, [r1] ldr r6, _0803CA4C cmp r2, r0 ble _0803CA1A strb r3, [r4] _0803CA1A: subs r5, 0x1 cmp r5, 0 bge _0803C9F2 ldr r3, [r6] ldr r2, _0803CA50 adds r0, r3, 0 adds r0, 0xB0 ldr r1, [r0] lsls r1, 1 subs r0, 0x70 ldrb r0, [r0] lsls r0, 2 adds r1, r0 adds r1, r2 ldrh r0, [r1] strh r0, [r3, 0x8] bl sub_803CC40 ldr r1, [r6] movs r0, 0x5 str r0, [r1, 0x34] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803CA4C: .4byte gUnknown_203B400 _0803CA50: .4byte gUnknown_80F278E thumb_func_end sub_803C9D8 thumb_func_start sub_803CA54 sub_803CA54: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0803CA7A ldr r0, _0803CA80 ldr r3, _0803CA84 movs r1, 0 movs r2, 0 bl sub_80141B4 bl sub_803CC80 ldr r0, _0803CA88 ldr r1, [r0] movs r0, 0x6 str r0, [r1, 0x34] _0803CA7A: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _0803CA80: .4byte gUnknown_80F27C4 _0803CA84: .4byte 0x00000101 _0803CA88: .4byte gUnknown_203B400 thumb_func_end sub_803CA54 thumb_func_start sub_803CA8C sub_803CA8C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0803CAA2 ldr r0, _0803CAA8 ldr r1, [r0] movs r0, 0x7 str r0, [r1, 0x34] _0803CAA2: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _0803CAA8: .4byte gUnknown_203B400 thumb_func_end sub_803CA8C thumb_func_start sub_803CAAC sub_803CAAC: push {lr} ldr r0, _0803CAC8 ldr r3, _0803CACC movs r1, 0 movs r2, 0 bl sub_80141B4 ldr r0, _0803CAD0 ldr r1, [r0] movs r0, 0x8 str r0, [r1, 0x34] pop {r0} bx r0 .align 2, 0 _0803CAC8: .4byte gUnknown_80F27DC _0803CACC: .4byte 0x00000301 _0803CAD0: .4byte gUnknown_203B400 thumb_func_end sub_803CAAC thumb_func_start sub_803CAD4 sub_803CAD4: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0803CAEA ldr r0, _0803CAF0 ldr r1, [r0] movs r0, 0x9 str r0, [r1, 0x34] _0803CAEA: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _0803CAF0: .4byte gUnknown_203B400 thumb_func_end sub_803CAD4 thumb_func_start sub_803CAF4 sub_803CAF4: push {r4,lr} ldr r4, _0803CB10 ldr r0, [r4] movs r1, 0x8 ldrsh r0, [r0, r1] bl sub_803CD08 ldr r1, [r4] movs r0, 0xA str r0, [r1, 0x34] pop {r4} pop {r0} bx r0 .align 2, 0 _0803CB10: .4byte gUnknown_203B400 thumb_func_end sub_803CAF4 thumb_func_start sub_803CB14 sub_803CB14: push {r4,r5,lr} bl sub_803CDC0 lsls r0, 16 lsrs r5, r0, 16 ldr r0, _0803CB4C cmp r5, r0 beq _0803CB46 subs r0, 0x1 cmp r5, r0 beq _0803CB46 bl sub_803CE6C ldr r4, _0803CB50 ldr r0, [r4] strh r5, [r0, 0xA] ldr r0, _0803CB54 ldr r3, _0803CB58 movs r1, 0 movs r2, 0 bl sub_80141B4 ldr r1, [r4] movs r0, 0xB str r0, [r1, 0x34] _0803CB46: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0803CB4C: .4byte 0x0000ffff _0803CB50: .4byte gUnknown_203B400 _0803CB54: .4byte gUnknown_80F286C _0803CB58: .4byte 0x00000301 thumb_func_end sub_803CB14 thumb_func_start sub_803CB5C sub_803CB5C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0803CB72 ldr r0, _0803CB78 ldr r1, [r0] movs r0, 0xC str r0, [r1, 0x34] _0803CB72: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _0803CB78: .4byte gUnknown_203B400 thumb_func_end sub_803CB5C thumb_func_start sub_803CB7C sub_803CB7C: push {r4,r5,lr} ldr r4, _0803CBAC ldr r0, [r4] adds r5, r0, 0 adds r5, 0x20 movs r1, 0xA ldrsh r0, [r0, r1] bl sub_808D994 adds r1, r0, 0 adds r0, r5, 0 bl sub_80922F4 ldr r1, [r4] adds r1, 0x20 movs r0, 0x3 bl sub_801602C ldr r1, [r4] movs r0, 0xD str r0, [r1, 0x34] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0803CBAC: .4byte gUnknown_203B400 thumb_func_end sub_803CB7C thumb_func_start sub_803CBB0 sub_803CBB0: push {lr} bl sub_8016080 cmp r0, 0 beq _0803CBD2 bl sub_80160D8 ldr r0, _0803CBD8 ldr r3, _0803CBDC movs r1, 0 movs r2, 0 bl sub_80141B4 ldr r0, _0803CBE0 ldr r1, [r0] movs r0, 0xE str r0, [r1, 0x34] _0803CBD2: pop {r0} bx r0 .align 2, 0 _0803CBD8: .4byte gUnknown_80F2898 _0803CBDC: .4byte 0x00000301 _0803CBE0: .4byte gUnknown_203B400 thumb_func_end sub_803CBB0 thumb_func_start sub_803CBE4 sub_803CBE4: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0803CBFA ldr r0, _0803CC00 ldr r1, [r0] movs r0, 0xF str r0, [r1, 0x34] _0803CBFA: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _0803CC00: .4byte gUnknown_203B400 thumb_func_end sub_803CBE4 thumb_func_start sub_803CC04 sub_803CC04: push {lr} sub sp, 0x14 ldr r1, _0803CC38 ldr r0, _0803CC3C ldr r0, [r0] ldr r0, [r0, 0x3C] lsls r0, 2 adds r0, r1 ldr r1, [r0] ldr r0, [r1] ldr r3, [r1, 0x4] movs r2, 0 str r2, [sp] movs r1, 0x3 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] adds r1, 0xFE str r1, [sp, 0x10] movs r1, 0 bl sub_8014248 add sp, 0x14 pop {r0} bx r0 .align 2, 0 _0803CC38: .4byte gUnknown_80F2624 _0803CC3C: .4byte gUnknown_203B400 thumb_func_end sub_803CC04 thumb_func_start sub_803CC40 sub_803CC40: push {r4,lr} ldr r0, _0803CC70 ldr r4, _0803CC74 ldr r1, [r4] movs r2, 0x8 ldrsh r1, [r1, r2] bl sub_808D8BC ldr r1, _0803CC78 ldr r0, [r4] adds r0, 0x40 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] ldr r3, _0803CC7C movs r1, 0 movs r2, 0 bl sub_80141B4 pop {r4} pop {r0} bx r0 .align 2, 0 _0803CC70: .4byte gUnknown_202DF98 _0803CC74: .4byte gUnknown_203B400 _0803CC78: .4byte gUnknown_80F28F4 _0803CC7C: .4byte 0x00000101 thumb_func_end sub_803CC40 thumb_func_start sub_803CC80 sub_803CC80: push {r4-r7,lr} sub sp, 0x60 ldr r0, _0803CD00 ldr r0, [r0] movs r1, 0x8 ldrsh r4, [r0, r1] mov r0, sp bl sub_8006518 add r1, sp, 0x18 ldr r0, _0803CD04 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} bl sub_8004914 mov r0, sp movs r1, 0x1 movs r2, 0 bl sub_800641C movs r0, 0x1 bl sub_8008C54 movs r0, 0x1 bl sub_80073B8 adds r0, r4, 0 bl sub_808DDD0 adds r5, r0, 0 ldr r0, [r5, 0x4] ldr r6, [r0, 0xC] movs r4, 0 movs r7, 0x8 _0803CCC8: adds r0, r4, 0 adds r0, 0xE0 ldr r1, [r5, 0x4] adds r1, r7 lsls r2, r4, 2 ldr r1, [r1] adds r1, r2 bl SetBGPaletteBufferColorArray adds r4, 0x1 cmp r4, 0xF ble _0803CCC8 movs r0, 0x1 adds r1, r6, 0 movs r2, 0xE bl sub_800836C adds r0, r5, 0 bl CloseFile movs r0, 0x1 bl sub_80073E0 add sp, 0x60 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803CD00: .4byte gUnknown_203B400 _0803CD04: .4byte gUnknown_80F4244 thumb_func_end sub_803CC80 thumb_func_start sub_803CD08 sub_803CD08: push {r4-r7,lr} adds r4, r0, 0 lsls r4, 16 asrs r4, 16 bl sub_803CEAC ldr r5, _0803CDB0 ldr r0, [r5] movs r3, 0 movs r1, 0 strh r4, [r0] str r1, [r0, 0x4C] adds r1, r0, 0 adds r1, 0x54 str r1, [r0, 0x50] ldr r0, _0803CDB4 ldm r0!, {r2,r4,r6} stm r1!, {r2,r4,r6} ldm r0!, {r2,r4,r7} stm r1!, {r2,r4,r7} ldr r1, [r5] adds r1, 0x6C ldr r0, _0803CDB8 ldm r0!, {r2,r6,r7} stm r1!, {r2,r6,r7} ldm r0!, {r4,r6,r7} stm r1!, {r4,r6,r7} ldr r1, [r5] ldr r2, _0803CDBC adds r1, 0x84 adds r0, r2, 0 ldm r0!, {r4,r6,r7} stm r1!, {r4,r6,r7} ldm r0!, {r4,r6,r7} stm r1!, {r4,r6,r7} ldr r0, [r5] adds r0, 0x9C ldm r2!, {r1,r4,r6} stm r0!, {r1,r4,r6} ldm r2!, {r1,r4,r7} stm r0!, {r1,r4,r7} ldr r0, [r5] ldr r1, [r0, 0x50] adds r0, 0xB4 str r0, [r1, 0x14] movs r1, 0x1 strb r1, [r0] ldr r0, [r5] adds r0, 0xB5 strb r3, [r0] ldr r0, [r5] adds r0, 0xB6 movs r1, 0x6 strb r1, [r0] ldr r0, [r5] adds r0, 0xB7 strb r3, [r0] bl sub_8004914 ldr r0, [r5] adds r0, 0x54 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, [r5] adds r4, 0x18 bl sub_803D030 adds r1, r0, 0 ldr r0, [r5] ldr r3, [r0, 0x4C] adds r0, r4, 0 movs r2, 0xA bl sub_8013818 bl sub_803CEF0 bl sub_803CFC0 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803CDB0: .4byte gUnknown_203B404 _0803CDB4: .4byte gUnknown_80F4290 _0803CDB8: .4byte gUnknown_80F42A8 _0803CDBC: .4byte gUnknown_80F4278 thumb_func_end sub_803CD08 thumb_func_start sub_803CDC0 sub_803CDC0: push {r4,r5,lr} ldr r4, _0803CDF0 ldr r1, [r4] movs r0, 0x30 ldrsh r5, [r1, r0] movs r0, 0 strb r0, [r1, 0x16] ldr r0, [r4] adds r0, 0x18 bl GetKeyPress cmp r0, 0x1 bne _0803CDF4 movs r0, 0 bl sub_80119D4 ldr r0, [r4] movs r2, 0x30 ldrsh r1, [r0, r2] lsls r1, 1 adds r0, 0x2 adds r0, r1 ldrh r0, [r0] b _0803CE2A .align 2, 0 _0803CDF0: .4byte gUnknown_203B404 _0803CDF4: ldr r0, [r4] adds r0, 0x18 movs r1, 0x1 bl sub_80138B8 lsls r0, 24 cmp r0, 0 beq _0803CE08 bl sub_803CEF0 _0803CE08: ldr r0, [r4] movs r1, 0x30 ldrsh r0, [r0, r1] cmp r5, r0 beq _0803CE16 bl sub_803CFC0 _0803CE16: ldr r0, [r4] ldrb r0, [r0, 0x16] cmp r0, 0 bne _0803CE28 ldr r0, _0803CE24 b _0803CE2A .align 2, 0 _0803CE24: .4byte 0x0000ffff _0803CE28: ldr r0, _0803CE30 _0803CE2A: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0803CE30: .4byte 0x0000fffe thumb_func_end sub_803CDC0 thumb_func_start sub_803CE34 sub_803CE34: push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_803D030 adds r1, r0, 0 ldr r5, _0803CE68 ldr r0, [r5] strh r1, [r0, 0x3A] adds r0, 0x18 bl sub_8013984 bl sub_803CEF0 bl sub_803CFC0 cmp r4, 0 beq _0803CE62 ldr r0, [r5] adds r0, 0x18 bl AddMenuCursorSprite _0803CE62: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0803CE68: .4byte gUnknown_203B404 thumb_func_end sub_803CE34 thumb_func_start sub_803CE6C sub_803CE6C: push {r4,r5,lr} ldr r4, _0803CEA4 ldr r1, [r4] ldr r2, [r1, 0x4C] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, 0x54 ldr r0, _0803CEA8 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} bl sub_8004914 ldr r0, [r4] adds r0, 0x54 movs r1, 0x1 movs r2, 0x1 bl sub_800641C bl sub_803CECC pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0803CEA4: .4byte gUnknown_203B404 _0803CEA8: .4byte gUnknown_80F4278 thumb_func_end sub_803CE6C thumb_func_start sub_803CEAC sub_803CEAC: push {r4,lr} ldr r4, _0803CEC4 movs r0, 0xB8 movs r1, 0x8 bl MemoryAlloc str r0, [r4] bl nullsub_135 pop {r4} pop {r0} bx r0 .align 2, 0 _0803CEC4: .4byte gUnknown_203B404 thumb_func_end sub_803CEAC thumb_func_start nullsub_135 nullsub_135: bx lr thumb_func_end nullsub_135 thumb_func_start sub_803CECC sub_803CECC: push {r4,lr} ldr r4, _0803CEEC ldr r0, [r4] cmp r0, 0 beq _0803CEE4 bl nullsub_135 ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _0803CEE4: pop {r4} pop {r0} bx r0 .align 2, 0 _0803CEEC: .4byte gUnknown_203B404 thumb_func_end sub_803CECC thumb_func_start sub_803CEF0 sub_803CEF0: push {r4-r6,lr} sub sp, 0x4 ldr r6, _0803CF60 ldr r0, [r6] movs r1, 0x32 ldrsh r0, [r0, r1] movs r1, 0xC bl sub_80095E4 adds r0, 0x2 lsls r0, 16 ldr r2, [r6] ldr r3, [r2, 0x4C] lsls r1, r3, 1 adds r1, r3 lsls r1, 3 adds r1, r2, r1 adds r1, 0x62 movs r4, 0 asrs r3, r0, 16 lsrs r0, 16 strh r0, [r1] ldr r1, [r2, 0x4C] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r2, r0 adds r3, 0x2 adds r2, 0x64 strh r3, [r2] bl sub_8004914 ldr r0, [r6] adds r0, 0x54 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r6] ldr r0, [r0, 0x4C] bl sub_8008C54 ldr r0, [r6] ldr r0, [r0, 0x4C] bl sub_80073B8 ldr r2, _0803CF64 ldr r0, [r6] ldr r3, [r0, 0x4C] str r4, [sp] movs r0, 0xC movs r1, 0 bl xxx_call_draw_string movs r5, 0 b _0803CF98 .align 2, 0 _0803CF60: .4byte gUnknown_203B404 _0803CF64: .4byte gUnknown_80F42C0 _0803CF68: ldr r0, [r6] adds r0, 0x18 adds r1, r5, 0 bl sub_8013800 adds r4, r0, 0 ldr r0, [r6] lsls r1, r5, 1 adds r0, 0x2 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] bl sub_808D994 adds r2, r0, 0 ldr r0, [r6] ldr r3, [r0, 0x4C] movs r0, 0 str r0, [sp] movs r0, 0x8 adds r1, r4, 0 bl xxx_call_draw_string adds r5, 0x1 _0803CF98: ldr r0, [r6] movs r1, 0x32 ldrsh r0, [r0, r1] cmp r5, r0 blt _0803CF68 ldr r4, _0803CFBC ldr r0, [r4] ldr r0, [r0, 0x4C] bl sub_80073E0 ldr r1, [r4] movs r0, 0x1 strb r0, [r1, 0x16] add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0803CFBC: .4byte gUnknown_203B404 thumb_func_end sub_803CEF0 thumb_func_start sub_803CFC0 sub_803CFC0: push {r4-r7,lr} ldr r0, _0803D02C ldr r0, [r0] movs r2, 0x30 ldrsh r1, [r0, r2] lsls r1, 1 adds r0, 0x2 adds r0, r1 movs r1, 0 ldrsh r4, [r0, r1] movs r0, 0x1 bl sub_8008C54 movs r0, 0x1 bl sub_80073B8 adds r0, r4, 0 bl sub_808DDD0 adds r5, r0, 0 ldr r0, [r5, 0x4] ldr r6, [r0, 0x4] movs r4, 0 movs r7, 0 _0803CFF0: adds r0, r4, 0 adds r0, 0xE0 ldr r1, [r5, 0x4] adds r1, r7 lsls r2, r4, 2 ldr r1, [r1] adds r1, r2 bl SetBGPaletteBufferColorArray adds r4, 0x1 cmp r4, 0xF ble _0803CFF0 movs r0, 0x1 adds r1, r6, 0 movs r2, 0xE bl sub_800836C adds r0, r5, 0 bl CloseFile movs r0, 0x1 bl sub_80073E0 ldr r0, _0803D02C ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0x16] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803D02C: .4byte gUnknown_203B404 thumb_func_end sub_803CFC0 thumb_func_start sub_803D030 sub_803D030: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 movs r0, 0 mov r8, r0 ldr r4, _0803D0D0 ldr r0, [r4] movs r1, 0 ldrsh r0, [r0, r1] movs r1, 0 bl sub_808DC68 mov r1, sp strb r0, [r1] ldr r0, [r4] movs r2, 0 ldrsh r0, [r0, r2] movs r1, 0x1 bl sub_808DC68 mov r1, sp strb r0, [r1, 0x1] movs r7, 0 add r6, sp, 0x4 mov r5, sp _0803D064: ldr r0, _0803D0D4 lsls r1, r7, 1 adds r1, r0 movs r0, 0 ldrsh r4, [r1, r0] adds r0, r4, 0 movs r1, 0 bl sub_808DC68 strb r0, [r6] adds r0, r4, 0 movs r1, 0x1 bl sub_808DC68 adds r2, r0, 0 strb r2, [r6, 0x1] ldrb r1, [r6] cmp r1, 0 beq _0803D096 ldrb r0, [r5] cmp r1, r0 beq _0803D0BC ldrb r0, [r5, 0x1] cmp r1, r0 beq _0803D0BC _0803D096: lsls r0, r2, 24 lsrs r1, r0, 24 cmp r1, 0 beq _0803D0AA ldrb r2, [r5] cmp r1, r2 beq _0803D0BC ldrb r0, [r5, 0x1] cmp r1, r0 beq _0803D0BC _0803D0AA: ldr r0, _0803D0D0 ldr r0, [r0] mov r2, r8 lsls r1, r2, 1 adds r0, 0x2 adds r0, r1 strh r4, [r0] movs r0, 0x1 add r8, r0 _0803D0BC: adds r7, 0x1 cmp r7, 0x9 ble _0803D064 mov r0, r8 add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0803D0D0: .4byte gUnknown_203B404 _0803D0D4: .4byte gUnknown_80F4264 thumb_func_end sub_803D030 thumb_func_start sub_803D0D8 sub_803D0D8: ldr r0, _0803D0E0 ldrb r0, [r0] bx lr .align 2, 0 _0803D0E0: .4byte gUnknown_203B408 thumb_func_end sub_803D0D8 thumb_func_start sub_803D0E4 sub_803D0E4: ldr r1, _0803D0EC strb r0, [r1] bx lr .align 2, 0 _0803D0EC: .4byte gUnknown_203B408 thumb_func_end sub_803D0E4 thumb_func_start sub_803D0F0 sub_803D0F0: lsls r0, 24 lsrs r0, 24 ldr r1, _0803D0FC adds r0, r1 ldrb r0, [r0] bx lr .align 2, 0 _0803D0FC: .4byte gUnknown_80F42F0 thumb_func_end sub_803D0F0 thumb_func_start sub_803D100 sub_803D100: lsls r0, 24 lsrs r0, 24 ldr r1, _0803D10C adds r0, r1 ldrb r0, [r0] bx lr .align 2, 0 _0803D10C: .4byte gUnknown_80F42D0 thumb_func_end sub_803D100 thumb_func_start sub_803D110 sub_803D110: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x6C adds r6, r0, 0 mov r9, r1 adds r5, r2, 0 add r7, sp, 0x48 adds r2, r7, 0 movs r1, 0 mov r0, sp adds r0, 0x69 _0803D12A: strb r1, [r0] subs r0, 0x1 cmp r0, r2 bge _0803D12A movs r4, 0 cmp r4, r5 bge _0803D158 _0803D138: ldrb r0, [r6] bl sub_803D0F0 add r1, sp, 0x10 adds r1, r4 strb r0, [r1] lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF bne _0803D150 movs r0, 0 b _0803D19A _0803D150: adds r6, 0x1 adds r4, 0x1 cmp r4, r5 blt _0803D138 _0803D158: lsls r0, r5, 2 adds r0, r5 adds r2, r0, 0x5 cmp r2, 0 bge _0803D164 adds r2, 0x7 _0803D164: asrs r2, 3 mov r8, r2 mov r0, sp adds r1, r7, 0 bl sub_809486C movs r4, 0 cmp r4, r5 bge _0803D188 add r6, sp, 0x10 _0803D178: adds r1, r6, r4 mov r0, sp movs r2, 0x5 bl sub_809488C adds r4, 0x1 cmp r4, r5 blt _0803D178 _0803D188: mov r0, sp bl nullsub_102 mov r0, r9 adds r1, r7, 0 mov r2, r8 bl MemoryCopy8 movs r0, 0x1 _0803D19A: add sp, 0x6C pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_803D110 thumb_func_start sub_803D1A8 sub_803D1A8: push {r4-r7,lr} sub sp, 0x48 adds r7, r0, 0 adds r5, r2, 0 lsls r0, r5, 2 adds r0, r5 adds r2, r0, 0x5 cmp r2, 0 bge _0803D1BC adds r2, 0x7 _0803D1BC: asrs r2, 3 mov r0, sp bl sub_809485C movs r4, 0 cmp r4, r5 bge _0803D1DC add r6, sp, 0x10 _0803D1CC: adds r1, r6, r4 mov r0, sp movs r2, 0x5 bl sub_8094924 adds r4, 0x1 cmp r4, r5 blt _0803D1CC _0803D1DC: mov r0, sp bl nullsub_102 movs r4, 0 cmp r4, r5 bge _0803D1FC add r6, sp, 0x10 _0803D1EA: adds r0, r6, r4 ldrb r0, [r0] bl sub_803D100 strb r0, [r7] adds r7, 0x1 adds r4, 0x1 cmp r4, r5 blt _0803D1EA _0803D1FC: add sp, 0x48 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_803D1A8 thumb_func_start sub_803D204 sub_803D204: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xA4 adds r2, r0, 0 mov r9, r1 movs r6, 0 add r4, sp, 0x5C adds r0, r4, 0 adds r1, r2, 0 movs r2, 0x36 bl MemoryCopy8 movs r2, 0 mov r8, r4 add r5, sp, 0x24 ldr r4, _0803D2A8 mov r12, r4 mov r10, r5 _0803D22E: movs r1, 0 mov r3, r12 adds r0, r2, r3 adds r3, r2, 0x1 ldrb r0, [r0] cmp r1, r0 beq _0803D24A adds r0, r2, r4 _0803D23E: adds r1, 0x1 cmp r1, 0x35 bgt _0803D24A ldrb r7, [r0] cmp r1, r7 bne _0803D23E _0803D24A: mov r7, r10 adds r0, r7, r2 add r1, r8 ldrb r1, [r1] strb r1, [r0] adds r2, r3, 0 cmp r2, 0x35 ble _0803D22E adds r0, r5, 0 mov r1, sp movs r2, 0x36 bl sub_803D110 lsls r0, 24 cmp r0, 0 beq _0803D2AC movs r2, 0x1 _0803D26C: mov r1, sp adds r0, r1, r2 ldrb r0, [r0] adds r0, r2 adds r0, r6, r0 lsls r0, 24 lsrs r6, r0, 24 adds r2, 0x1 cmp r2, 0x21 ble _0803D26C mov r0, sp ldrb r0, [r0] cmp r0, r6 bne _0803D2AC add r4, sp, 0x94 adds r1, 0x1 adds r0, r4, 0 movs r2, 0x21 bl sub_809485C adds r0, r4, 0 mov r1, r9 bl sub_8095774 adds r0, r4, 0 bl nullsub_102 movs r0, 0x1 b _0803D2AE .align 2, 0 _0803D2A8: .4byte gUnknown_80F43F0 _0803D2AC: movs r0, 0 _0803D2AE: add sp, 0xA4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_803D204 thumb_func_start sub_803D2C0 sub_803D2C0: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0xA4 mov r9, r0 adds r6, r1, 0 movs r5, 0 add r4, sp, 0x94 mov r1, sp adds r1, 0x1 add r7, sp, 0x24 add r0, sp, 0x5C mov r8, r0 movs r2, 0 mov r0, sp adds r0, 0x21 _0803D2E2: strb r2, [r0] subs r0, 0x1 cmp r0, sp bge _0803D2E2 adds r0, r4, 0 movs r2, 0x21 bl sub_809486C adds r0, r4, 0 adds r1, r6, 0 bl sub_8095824 adds r0, r4, 0 bl nullsub_102 movs r2, 0x1 _0803D302: mov r1, sp adds r0, r1, r2 ldrb r0, [r0] adds r0, r2 adds r0, r5, r0 lsls r0, 24 lsrs r5, r0, 24 adds r2, 0x1 cmp r2, 0x21 ble _0803D302 mov r0, sp strb r5, [r0] adds r0, r7, 0 movs r2, 0x36 bl sub_803D1A8 movs r2, 0 mov r4, r8 ldr r5, _0803D354 adds r3, r7, 0 _0803D32A: adds r0, r2, r5 ldrb r1, [r0] adds r1, r4, r1 adds r0, r3, r2 ldrb r0, [r0] strb r0, [r1] adds r2, 0x1 cmp r2, 0x35 ble _0803D32A mov r0, r9 mov r1, r8 movs r2, 0x36 bl MemoryCopy8 add sp, 0xA4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803D354: .4byte gUnknown_80F43F0 thumb_func_end sub_803D2C0 thumb_func_start sub_803D358 sub_803D358: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x50 adds r2, r0, 0 mov r9, r1 movs r6, 0 add r4, sp, 0x28 adds r0, r4, 0 adds r1, r2, 0 movs r2, 0x18 bl MemoryCopy8 movs r2, 0 mov r8, r4 add r5, sp, 0x10 ldr r4, _0803D3FC mov r12, r4 mov r10, r5 _0803D382: movs r1, 0 mov r3, r12 adds r0, r2, r3 adds r3, r2, 0x1 ldrb r0, [r0] cmp r1, r0 beq _0803D39E adds r0, r2, r4 _0803D392: adds r1, 0x1 cmp r1, 0x17 bgt _0803D39E ldrb r7, [r0] cmp r1, r7 bne _0803D392 _0803D39E: mov r7, r10 adds r0, r7, r2 add r1, r8 ldrb r1, [r1] strb r1, [r0] adds r2, r3, 0 cmp r2, 0x17 ble _0803D382 adds r0, r5, 0 mov r1, sp movs r2, 0x18 bl sub_803D110 lsls r0, 24 cmp r0, 0 beq _0803D400 movs r2, 0x1 _0803D3C0: mov r1, sp adds r0, r1, r2 ldrb r0, [r0] adds r0, r2 adds r0, r6, r0 lsls r0, 24 lsrs r6, r0, 24 adds r2, 0x1 cmp r2, 0xE ble _0803D3C0 mov r0, sp ldrb r0, [r0] cmp r0, r6 bne _0803D400 add r4, sp, 0x40 adds r1, 0x1 adds r0, r4, 0 movs r2, 0xC bl sub_809485C adds r0, r4, 0 mov r1, r9 bl sub_80971EC adds r0, r4, 0 bl nullsub_102 movs r0, 0x1 b _0803D402 .align 2, 0 _0803D3FC: .4byte gUnknown_80F4426 _0803D400: movs r0, 0 _0803D402: add sp, 0x50 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_803D358 thumb_func_start sub_803D414 sub_803D414: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x50 mov r9, r0 adds r6, r1, 0 movs r5, 0 add r4, sp, 0x40 mov r1, sp adds r1, 0x1 add r7, sp, 0x10 add r0, sp, 0x28 mov r8, r0 movs r2, 0 mov r0, sp adds r0, 0xE _0803D436: strb r2, [r0] subs r0, 0x1 cmp r0, sp bge _0803D436 adds r0, r4, 0 movs r2, 0xC bl sub_809486C adds r0, r4, 0 adds r1, r6, 0 bl sub_8097270 adds r0, r4, 0 bl nullsub_102 movs r2, 0x1 _0803D456: mov r1, sp adds r0, r1, r2 ldrb r0, [r0] adds r0, r2 adds r0, r5, r0 lsls r0, 24 lsrs r5, r0, 24 adds r2, 0x1 cmp r2, 0xE ble _0803D456 mov r0, sp strb r5, [r0] adds r0, r7, 0 movs r2, 0x18 bl sub_803D1A8 movs r2, 0 mov r4, r8 ldr r5, _0803D4A8 adds r3, r7, 0 _0803D47E: adds r0, r2, r5 ldrb r1, [r0] adds r1, r4, r1 adds r0, r3, r2 ldrb r0, [r0] strb r0, [r1] adds r2, 0x1 cmp r2, 0x17 ble _0803D47E mov r0, r9 mov r1, r8 movs r2, 0x18 bl MemoryCopy8 add sp, 0x50 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803D4A8: .4byte gUnknown_80F4426 thumb_func_end sub_803D414 thumb_func_start sub_803D4AC sub_803D4AC: ldr r2, _0803D4C4 ldr r0, [r2] ldr r1, _0803D4C8 adds r0, r1 movs r1, 0x63 strb r1, [r0] ldr r0, [r2] ldr r1, _0803D4CC adds r0, r1 movs r1, 0xFF strb r1, [r0] bx lr .align 2, 0 _0803D4C4: .4byte gUnknown_203B418 _0803D4C8: .4byte 0x0001c570 _0803D4CC: .4byte 0x0001c571 thumb_func_end sub_803D4AC thumb_func_start sub_803D4D0 sub_803D4D0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1FC ldr r6, _0803D654 ldr r1, [r6] movs r4, 0xC9 lsls r4, 3 adds r0, r1, r4 ldr r2, _0803D658 adds r1, r2 bl sub_80901D8 ldr r0, [r6] ldr r3, _0803D65C adds r2, r0, r3 adds r1, r0, r4 ldrh r0, [r2] ldrh r4, [r1] cmp r0, r4 bne _0803D500 b _0803D6E0 _0803D500: ldr r0, [r1] str r0, [r2] ldr r0, _0803D660 ldr r1, _0803D664 bl OpenFileAndGetFileDataPtr mov r9, r0 ldr r3, [r0, 0x4] ldr r2, [r6] ldr r7, _0803D65C adds r0, r2, r7 ldrb r1, [r0] ldr r0, [r3] lsls r1, 2 adds r1, r0 ldr r3, _0803D668 adds r0, r2, r3 ldrb r0, [r0] lsls r0, 4 ldr r1, [r1] adds r1, r0 mov r8, r1 ldr r4, _0803D658 adds r2, r4 ldrb r0, [r2] bl sub_8090298 ldr r1, [r6] ldr r7, _0803D66C adds r1, r7 strb r0, [r1] ldr r0, [r6] adds r0, r4 ldrb r0, [r0] bl sub_80902C8 ldr r1, [r6] strh r0, [r1, 0x14] mov r2, r9 ldr r0, [r2, 0x4] mov r3, r8 movs r4, 0 ldrsh r2, [r3, r4] ldr r3, [r0, 0x4] lsls r0, r2, 3 subs r0, r2 lsls r0, 2 ldr r7, _0803D670 adds r1, r7 adds r0, r3 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldr r0, [r0] str r0, [r1] movs r5, 0 mov r10, r6 ldr r4, _0803D674 _0803D576: mov r6, r10 ldr r2, [r6] lsls r3, r5, 1 adds r2, r4 adds r2, r3 mov r7, r9 ldr r1, [r7, 0x4] mov r6, r8 movs r7, 0x4 ldrsh r0, [r6, r7] ldr r1, [r1, 0x10] lsls r0, 2 adds r0, r1 ldr r0, [r0] adds r3, r0 ldrh r0, [r3] strh r0, [r2] adds r5, 0x1 cmp r5, 0x13 ble _0803D576 movs r5, 0 adds r6, 0x6 str r6, [sp, 0x1F8] ldr r6, _0803D678 mov r10, r6 _0803D5A8: ldr r1, _0803D654 ldr r0, [r1] lsls r3, r5, 3 mov r2, r10 adds r4, r0, r2 adds r4, r3 mov r12, r4 mov r4, r9 ldr r2, [r4, 0x4] mov r7, r8 movs r4, 0x2 ldrsh r1, [r7, r4] ldr r2, [r2, 0xC] lsls r1, 2 adds r1, r2 ldr r1, [r1] adds r3, r1 ldr r1, [r3] ldr r2, [r3, 0x4] mov r7, r12 str r1, [r7] str r2, [r7, 0x4] adds r0, r6 bl sub_808E9B8 lsls r0, 16 cmp r0, 0 beq _0803D5E8 adds r6, 0x8 adds r5, 0x1 cmp r5, 0x1E ble _0803D5A8 _0803D5E8: cmp r5, 0x1F bgt _0803D606 ldr r6, _0803D654 lsls r0, r5, 3 ldr r1, _0803D678 adds r4, r0, r1 _0803D5F4: ldr r0, [r6] adds r0, r4 movs r1, 0 bl sub_808E9C4 adds r4, 0x8 adds r5, 0x1 cmp r5, 0x1F ble _0803D5F4 _0803D606: movs r5, 0 ldr r2, _0803D67C mov r10, r2 _0803D60C: mov r3, r9 ldr r1, [r3, 0x4] lsls r0, r5, 1 ldr r4, [sp, 0x1F8] adds r0, r4, r0 movs r6, 0 ldrsh r0, [r0, r6] ldr r1, [r1, 0x8] lsls r0, 2 adds r0, r1 movs r4, 0 adds r7, r5, 0x1 mov r8, r7 lsls r1, r5, 6 mov r12, r1 ldr r3, [r0] mov r2, sp _0803D62E: ldrh r0, [r3] cmp r0, r10 bls _0803D684 ldrh r0, [r3] ldr r6, _0803D680 adds r1, r0, r6 cmp r1, 0 beq _0803D68A movs r6, 0 lsls r0, r4, 1 add r0, sp _0803D644: strh r6, [r0] adds r0, 0x2 adds r2, 0x2 adds r4, 0x1 subs r1, 0x1 cmp r1, 0 bne _0803D644 b _0803D68A .align 2, 0 _0803D654: .4byte gUnknown_203B418 _0803D658: .4byte 0x00000644 _0803D65C: .4byte 0x0001c570 _0803D660: .4byte gUnknown_80F4D8C _0803D664: .4byte gUnknown_83B0000 _0803D668: .4byte 0x0001c571 _0803D66C: .4byte 0x0001cec8 _0803D670: .4byte 0x0001c574 _0803D674: .4byte 0x0001cd70 _0803D678: .4byte 0x0001cd98 _0803D67C: .4byte 0x0000752f _0803D680: .4byte 0xffff8ad0 _0803D684: strh r0, [r2] adds r2, 0x2 adds r4, 0x1 _0803D68A: adds r3, 0x2 cmp r4, 0xFB ble _0803D62E ldr r7, _0803D6F0 mov r1, r12 subs r0, r1, r5 movs r4, 0xB mov r3, sp lsls r2, r0, 3 ldr r6, _0803D6F4 _0803D69E: ldr r0, [r7] adds r0, r6 adds r0, r2 ldrh r1, [r3] strh r1, [r0] adds r3, 0x2 adds r2, 0x2 subs r4, 0x1 cmp r4, 0 bge _0803D69E ldr r6, _0803D6F0 mov r2, r12 subs r0, r2, r5 lsls r3, r0, 3 add r2, sp, 0x18 ldr r5, _0803D6F8 movs r4, 0xEF _0803D6C0: ldr r0, [r6] adds r0, r5 adds r0, r3 ldrh r1, [r2] strh r1, [r0] adds r2, 0x2 adds r3, 0x2 subs r4, 0x1 cmp r4, 0 bge _0803D6C0 mov r5, r8 cmp r5, 0x3 ble _0803D60C mov r0, r9 bl CloseFile _0803D6E0: add sp, 0x1FC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803D6F0: .4byte gUnknown_203B418 _0803D6F4: .4byte 0x0001c590 _0803D6F8: .4byte 0x0001c5a8 thumb_func_end sub_803D4D0 thumb_func_start sub_803D6FC sub_803D6FC: push {r4,lr} ldr r0, _0803D720 bl sub_8084100 adds r3, r0, 0 movs r2, 0 ldr r0, _0803D724 ldr r0, [r0] ldr r4, _0803D728 adds r1, r0, r4 _0803D710: ldrh r0, [r1] cmp r0, 0 beq _0803D72C cmp r0, r3 blt _0803D72C lsls r0, r2, 24 lsrs r0, 24 b _0803D736 .align 2, 0 _0803D720: .4byte 0x00002710 _0803D724: .4byte gUnknown_203B418 _0803D728: .4byte 0x0001cd70 _0803D72C: adds r1, 0x2 adds r2, 0x1 cmp r2, 0x13 ble _0803D710 movs r0, 0x10 _0803D736: pop {r4} pop {r1} bx r1 thumb_func_end sub_803D6FC thumb_func_start sub_803D73C sub_803D73C: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 adds r4, r0, 0 ldr r0, _0803D784 bl sub_8084100 adds r7, r0, 0 movs r0, 0xC mov r8, r0 movs r6, 0 ldr r0, _0803D788 ldr r2, [r0] lsls r1, r4, 6 subs r0, r1, r4 adds r5, r1, 0 lsls r0, 3 ldr r1, _0803D78C adds r2, r1 adds r1, r0, r2 _0803D766: movs r2, 0 ldrsh r0, [r1, r2] cmp r0, 0 beq _0803D772 cmp r0, r7 bge _0803D790 _0803D772: adds r1, 0x2 adds r6, 0x1 cmp r6, 0xB ble _0803D766 _0803D77A: mov r0, r8 cmp r0, 0xC bne _0803D79C b _0803D7EC .align 2, 0 _0803D784: .4byte 0x00002710 _0803D788: .4byte gUnknown_203B418 _0803D78C: .4byte 0x0001c590 _0803D790: lsls r0, r6, 24 lsrs r0, 24 mov r8, r0 b _0803D77A _0803D798: adds r0, r5, 0 b _0803D7EE _0803D79C: ldr r0, _0803D7FC bl sub_8084100 adds r7, r0, 0 movs r6, 0 ldr r2, _0803D800 subs r0, r5, r4 ldr r1, _0803D804 lsls r4, r0, 3 _0803D7AE: ldr r0, [r2] adds r0, r1 adds r0, r4 movs r3, 0 ldrsh r0, [r0, r3] cmp r0, 0 beq _0803D7E4 lsls r0, r6, 24 lsrs r5, r0, 24 adds r0, r5, 0 str r1, [sp] str r2, [sp, 0x4] bl sub_8090BD0 lsls r0, 24 lsrs r0, 24 ldr r1, [sp] ldr r2, [sp, 0x4] cmp r0, r8 bne _0803D7E4 ldr r0, [r2] adds r0, r1 adds r0, r4 movs r3, 0 ldrsh r0, [r0, r3] cmp r0, r7 bge _0803D798 _0803D7E4: adds r4, 0x2 adds r6, 0x1 cmp r6, 0xEF ble _0803D7AE _0803D7EC: movs r0, 0x69 _0803D7EE: add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0803D7FC: .4byte 0x00002710 _0803D800: .4byte gUnknown_203B418 _0803D804: .4byte 0x0001c5a8 thumb_func_end sub_803D73C thumb_func_start sub_803D808 sub_803D808: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r7, r1, 0 movs r6, 0 ldr r2, _0803D820 lsls r1, r7, 3 adds r1, r0 mov r8, r1 b _0803D840 .align 2, 0 _0803D820: .4byte 0x0001cd98 _0803D824: ldr r0, [r5] ldr r1, _0803D868 adds r0, r1 adds r0, r4 ldr r1, [r0, 0x4] ldr r0, [r0] mov r3, r8 adds r3, 0x8 mov r8, r3 subs r3, 0x8 stm r3!, {r0,r1} adds r7, 0x1 adds r2, 0x8 adds r6, 0x1 _0803D840: cmp r6, 0x1F bgt _0803D85A ldr r5, _0803D86C lsls r4, r6, 3 ldr r0, [r5] adds r0, r2 str r2, [sp] bl sub_808E9B8 lsls r0, 16 ldr r2, [sp] cmp r0, 0 bne _0803D824 _0803D85A: adds r0, r7, 0 add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0803D868: .4byte 0x0001cd98 _0803D86C: .4byte gUnknown_203B418 thumb_func_end sub_803D808 thumb_func_start sub_803D870 sub_803D870: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r6, r1, 0 movs r5, 0 lsls r1, r6, 3 adds r1, r0 mov r9, r1 b _0803D8B8 _0803D884: bl sub_808DACC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _0803D8B6 ldr r1, [r7] adds r0, r1, r4 ldr r2, _0803D8E4 adds r0, r2 movs r2, 0 ldrsh r0, [r0, r2] cmp r0, 0 beq _0803D8B6 mov r2, r8 adds r0, r1, r2 adds r0, r4 ldr r1, [r0, 0x4] ldr r0, [r0] mov r2, r9 adds r2, 0x8 mov r9, r2 subs r2, 0x8 stm r2!, {r0,r1} adds r6, 0x1 _0803D8B6: adds r5, 0x1 _0803D8B8: cmp r5, 0x1F bgt _0803D8D6 ldr r7, _0803D8E8 lsls r4, r5, 3 ldr r0, _0803D8EC mov r8, r0 adds r1, r4, r0 ldr r0, [r7] adds r0, r1 bl sub_808E9B8 lsls r0, 16 asrs r0, 16 cmp r0, 0 bne _0803D884 _0803D8D6: adds r0, r6, 0 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0803D8E4: .4byte 0x0001cd9a _0803D8E8: .4byte gUnknown_203B418 _0803D8EC: .4byte 0x0001cd98 thumb_func_end sub_803D870 thumb_func_start sub_803D8F0 sub_803D8F0: push {r4,lr} ldr r4, _0803D920 ldr r0, [r4] ldr r2, _0803D924 adds r1, r0, r2 ldrb r0, [r1] cmp r0, 0 bne _0803D918 movs r0, 0x1 strb r0, [r1] ldr r0, [r4] ldr r1, _0803D928 adds r0, r1 movs r1, 0 bl sub_803D808 ldr r1, [r4] ldr r2, _0803D92C adds r1, r2 str r0, [r1] _0803D918: pop {r4} pop {r0} bx r0 .align 2, 0 _0803D920: .4byte gUnknown_203B418 _0803D924: .4byte 0x000037ec _0803D928: .4byte 0x0000343c _0803D92C: .4byte 0x000037e4 thumb_func_end sub_803D8F0 thumb_func_start sub_803D930 sub_803D930: push {r4-r7,lr} lsls r0, 16 asrs r6, r0, 16 movs r5, 0 ldr r7, _0803D940 ldr r4, _0803D944 b _0803D954 .align 2, 0 _0803D940: .4byte gUnknown_203B418 _0803D944: .4byte 0x0001cd98 _0803D948: cmp r0, r6 bne _0803D950 movs r0, 0x1 b _0803D96A _0803D950: adds r4, 0x8 adds r5, 0x1 _0803D954: cmp r5, 0x1F bgt _0803D968 ldr r0, [r7] adds r0, r4 bl sub_808E9B8 lsls r0, 16 asrs r0, 16 cmp r0, 0 bne _0803D948 _0803D968: movs r0, 0 _0803D96A: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_803D930 thumb_func_start sub_803D970 sub_803D970: push {r4-r7,lr} adds r5, r0, 0 ldr r0, _0803D9EC bl sub_8084100 adds r6, r0, 0 movs r3, 0 ldr r1, _0803D9F0 ldr r0, [r1] ldr r2, _0803D9F4 adds r0, r2 ldr r0, [r0] cmp r3, r0 bge _0803D9BA ldr r4, _0803D9F8 _0803D98E: ldr r2, [r1] lsls r1, r5, 1 lsls r0, r3, 3 adds r1, r0 ldr r7, _0803D9FC adds r0, r2, r7 adds r1, r0, r1 movs r7, 0 ldrsh r0, [r1, r7] cmp r0, 0 beq _0803D9A8 cmp r0, r6 bge _0803D9E0 _0803D9A8: adds r4, 0x8 adds r3, 0x1 ldr r1, _0803D9F0 ldr r0, [r1] ldr r2, _0803D9F4 adds r0, r2 ldr r0, [r0] cmp r3, r0 blt _0803D98E _0803D9BA: movs r3, 0 ldr r0, _0803D9F0 ldr r1, [r0] ldr r7, _0803D9F4 adds r1, r7 ldr r1, [r1] adds r6, r0, 0 cmp r3, r1 bge _0803DA10 ldr r4, _0803D9F8 lsls r1, r5, 1 _0803D9D0: ldr r2, [r6] ldr r5, _0803D9FC adds r0, r2, r5 adds r0, r1 movs r7, 0 ldrsh r0, [r0, r7] cmp r0, 0 beq _0803DA00 _0803D9E0: adds r0, r2, r4 bl sub_808E9B8 lsls r0, 16 asrs r0, 16 b _0803DA14 .align 2, 0 _0803D9EC: .4byte 0x00002710 _0803D9F0: .4byte gUnknown_203B418 _0803D9F4: .4byte 0x000037e4 _0803D9F8: .4byte 0x0000343c _0803D9FC: .4byte 0x0000343e _0803DA00: adds r4, 0x8 adds r1, 0x8 adds r3, 0x1 ldr r5, _0803DA1C adds r0, r2, r5 ldr r0, [r0] cmp r3, r0 blt _0803D9D0 _0803DA10: movs r0, 0xBE lsls r0, 1 _0803DA14: pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0803DA1C: .4byte 0x000037e4 thumb_func_end sub_803D970 thumb_func_start sub_803DA20 sub_803DA20: push {r4-r7,lr} lsls r0, 16 asrs r7, r0, 16 movs r5, 0 ldr r1, _0803DA54 ldr r0, [r1] ldr r2, _0803DA58 adds r0, r2 ldr r0, [r0] cmp r5, r0 bge _0803DA70 adds r6, r1, 0 ldr r4, _0803DA5C _0803DA3A: ldr r0, [r6] adds r0, r4 bl sub_808E9B8 lsls r0, 16 asrs r0, 16 cmp r0, r7 bne _0803DA60 ldr r0, [r6] adds r0, r4 bl sub_808E9E4 b _0803DA72 .align 2, 0 _0803DA54: .4byte gUnknown_203B418 _0803DA58: .4byte 0x000037e4 _0803DA5C: .4byte 0x0000343c _0803DA60: adds r4, 0x8 adds r5, 0x1 ldr r0, [r6] ldr r1, _0803DA78 adds r0, r1 ldr r0, [r0] cmp r5, r0 blt _0803DA3A _0803DA70: movs r0, 0x1 _0803DA72: pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0803DA78: .4byte 0x000037e4 thumb_func_end sub_803DA20 thumb_func_start sub_803DA7C sub_803DA7C: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x68 ldr r0, _0803DB84 ldr r4, _0803DB88 adds r1, r4, 0 bl OpenFileAndGetFileDataPtr ldr r5, _0803DB8C str r0, [r5] ldr r0, _0803DB90 adds r1, r4, 0 bl OpenFileAndGetFileDataPtr ldr r1, _0803DB94 str r0, [r1] ldr r1, _0803DB98 ldr r0, [r0, 0x4] ldr r0, [r0, 0x4] str r0, [r1] movs r4, 0 _0803DAAA: adds r0, r4, 0 adds r0, 0xE0 ldr r1, [r5] lsls r2, r4, 2 ldr r1, [r1, 0x4] adds r1, r2 bl SetBGPaletteBufferColorArray adds r4, 0x1 cmp r4, 0xF ble _0803DAAA ldr r0, _0803DB9C movs r1, 0xE0 lsls r1, 5 bl CpuClear bl sub_80848EC lsls r0, 24 cmp r0, 0 bne _0803DAD6 b _0803DBEA _0803DAD6: ldr r0, _0803DBA0 ldr r0, [r0] ldr r1, _0803DBA4 adds r2, r0, r1 movs r3, 0x14 ldrsh r1, [r0, r3] ldrb r2, [r2] adds r2, r1 mov r8, r2 ldr r1, _0803DBA8 adds r0, r1 ldrb r0, [r0] bl sub_80900AC mov r9, r0 movs r5, 0xA movs r0, 0 _0803DAF8: movs r4, 0 adds r6, r0, 0x4 adds r7, r0, 0x1 _0803DAFE: adds r4, 0x1 ldr r3, _0803DBAC adds r0, r3, 0 adds r2, r5, 0 orrs r2, r0 lsls r2, 16 lsrs r2, 16 adds r0, r4, 0 adds r1, r6, 0 movs r3, 0 bl sub_8008DC8 adds r5, 0x1 cmp r4, 0x1B ble _0803DAFE adds r0, r7, 0 cmp r0, 0x7 ble _0803DAF8 mov r0, r9 bl sub_803DE7C movs r1, 0xE0 subs r1, r0 lsrs r0, r1, 31 adds r1, r0 asrs r1, 1 mov r0, r9 movs r2, 0 bl sub_803DC14 adds r7, r0, 0 ldr r0, _0803DBA0 ldr r0, [r0] ldr r1, _0803DBA8 adds r0, r1 ldrb r0, [r0] bl sub_80900C0 lsls r0, 24 ldr r6, _0803DBB0 cmp r0, 0 beq _0803DB54 ldr r6, _0803DBB4 _0803DB54: mov r3, r8 cmp r3, 0x9 ble _0803DBBC ldr r5, _0803DBB8 mov r0, r8 movs r1, 0xA bl __divsi3 adds r4, r0, 0 adds r4, 0x30 mov r0, r8 movs r1, 0xA bl __modsi3 adds r0, 0x30 str r0, [sp] add r0, sp, 0x4 adds r1, r5, 0 adds r2, r6, 0 adds r3, r4, 0 bl sub_800D158 b _0803DBCA .align 2, 0 _0803DB84: .4byte gUnknown_80F60F8 _0803DB88: .4byte gUnknown_83B0000 _0803DB8C: .4byte gUnknown_202EC88 _0803DB90: .4byte gUnknown_80F6100 _0803DB94: .4byte gUnknown_202EC8C _0803DB98: .4byte gUnknown_202EC90 _0803DB9C: .4byte 0x06000140 _0803DBA0: .4byte gUnknown_203B418 _0803DBA4: .4byte 0x00000645 _0803DBA8: .4byte 0x00000644 _0803DBAC: .4byte 0xffffe000 _0803DBB0: .4byte gUnknown_80F610C _0803DBB4: .4byte gUnknown_80F6108 _0803DBB8: .4byte gUnknown_80F6110 _0803DBBC: ldr r1, _0803DC08 mov r3, r8 adds r3, 0x30 add r0, sp, 0x4 adds r2, r6, 0 bl sub_800D158 _0803DBCA: add r0, sp, 0x4 bl sub_803DE7C movs r1, 0xE0 subs r1, r0 lsrs r0, r1, 31 adds r1, r0 asrs r1, 1 adds r2, r7, 0 adds r2, 0x20 add r0, sp, 0x4 bl sub_803DC14 ldr r1, _0803DC0C movs r0, 0x1 strb r0, [r1] _0803DBEA: ldr r0, _0803DC10 ldr r0, [r0] bl CloseFile movs r0, 0x2 bl sub_803E46C add sp, 0x68 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803DC08: .4byte gUnknown_80F6118 _0803DC0C: .4byte gUnknown_20274A5 _0803DC10: .4byte gUnknown_202EC8C thumb_func_end sub_803DA7C thumb_func_start sub_803DC14 sub_803DC14: push {r4-r6,lr} adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 b _0803DC5C _0803DC1E: ldrb r1, [r4] adds r4, 0x1 cmp r1, 0x2F bne _0803DC2C movs r5, 0 adds r6, 0x18 b _0803DC5C _0803DC2C: cmp r1, 0x23 bne _0803DC34 adds r5, 0x8 b _0803DC5C _0803DC34: cmp r1, 0x20 bne _0803DC3C adds r5, 0xC b _0803DC5C _0803DC3C: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0803DC50 ldrb r0, [r4] cmp r0, 0 beq _0803DC50 lsls r1, 8 orrs r1, r0 adds r4, 0x1 _0803DC50: adds r0, r1, 0 adds r1, r5, 0 adds r2, r6, 0 bl sub_803DC6C adds r5, r0 _0803DC5C: ldrb r0, [r4] cmp r0, 0 bne _0803DC1E adds r0, r6, 0 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_803DC14 thumb_func_start sub_803DC6C sub_803DC6C: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x120 adds r7, r1, 0 adds r5, r2, 0 bl sub_803DEC8 adds r4, r0, 0 ldr r0, [r4] mov r1, sp bl sub_803DD30 ldrb r4, [r4, 0x6] mov r9, r4 mov r6, sp adds r0, r5, 0 cmp r5, 0 bge _0803DC96 adds r0, r5, 0x7 _0803DC96: asrs r0, 3 lsls r3, r0, 3 subs r0, r3, r0 lsls r0, 2 adds r1, r7, 0 cmp r7, 0 bge _0803DCA6 adds r1, r7, 0x7 _0803DCA6: asrs r1, 3 adds r0, r1 lsls r0, 5 ldr r4, _0803DD28 adds r2, r0, r4 subs r0, r5, r3 lsls r0, 2 adds r2, r0 lsls r1, 3 subs r1, r7, r1 lsls r1, 4 ldr r0, _0803DD2C adds r4, r1, r0 movs r0, 0 _0803DCC2: adds r3, r2, 0 adds r7, r3, 0x4 adds r5, 0x1 mov r12, r5 adds r0, 0x1 mov r8, r0 movs r5, 0x2 _0803DCD0: ldr r2, [r6] cmp r2, 0 beq _0803DCF6 ldr r1, [r4] ands r1, r2 ldr r0, [r4, 0x8] lsls r1, r0 ldr r0, [r3] orrs r0, r1 str r0, [r3] adds r3, 0x20 ldr r0, [r4, 0x4] ands r2, r0 ldr r0, [r4, 0xC] lsrs r2, r0 ldr r0, [r3] orrs r0, r2 str r0, [r3] subs r3, 0x20 _0803DCF6: adds r6, 0x4 adds r3, 0x20 subs r5, 0x1 cmp r5, 0 bge _0803DCD0 adds r2, r7, 0 mov r5, r12 movs r0, 0x7 ands r0, r5 cmp r0, 0 bne _0803DD12 movs r0, 0xD8 lsls r0, 2 adds r2, r7, r0 _0803DD12: mov r0, r8 cmp r0, 0x17 ble _0803DCC2 mov r0, r9 add sp, 0x120 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0803DD28: .4byte 0x06000140 _0803DD2C: .4byte gUnknown_80F6120 thumb_func_end sub_803DC6C thumb_func_start sub_803DD30 sub_803DD30: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r4, _0803DDBC add sp, r4 adds r4, r0, 0 mov r10, r1 movs r3, 0 movs r5, 0 ldr r0, _0803DDC0 mov r8, r0 movs r6, 0xF movs r7, 0xF mov r2, sp _0803DD50: ldrb r0, [r4] lsrs r1, r0, 4 ands r1, r6 strb r1, [r2] adds r1, r7, 0 ands r1, r0 strb r1, [r2, 0x1] adds r4, 0x1 adds r2, 0x2 adds r5, 0x2 cmp r5, r8 ble _0803DD50 ldr r1, _0803DDC0 cmp r3, r1 bgt _0803DDF8 movs r0, 0x90 lsls r0, 2 mov r2, sp adds r2, r0 mov r12, r2 mov r8, r1 mov r2, sp mov r9, r0 _0803DD7E: ldrb r1, [r2] adds r2, 0x1 movs r6, 0x7 ands r6, r1 movs r0, 0x8 ands r1, r0 cmp r1, 0 beq _0803DDC4 ldrb r1, [r2] adds r2, 0x1 movs r4, 0 cmp r4, r6 bge _0803DDF4 mov r5, r12 adds r0, r5, r3 strb r1, [r0] adds r3, 0x1 cmp r3, r8 bgt _0803DDF8 mov r5, sp add r5, r9 ldr r7, _0803DDC0 _0803DDAA: adds r4, 0x1 cmp r4, r6 bge _0803DDF4 adds r0, r5, r3 strb r1, [r0] adds r3, 0x1 cmp r3, r7 ble _0803DDAA b _0803DDF4 .align 2, 0 _0803DDBC: .4byte 0xfffffb80 _0803DDC0: .4byte 0x0000023f _0803DDC4: movs r4, 0 cmp r4, r6 bge _0803DDF4 ldrb r1, [r2] adds r2, 0x1 mov r5, r12 adds r0, r5, r3 strb r1, [r0] adds r3, 0x1 cmp r3, r8 bgt _0803DDF8 mov r5, sp add r5, r9 ldr r7, _0803DE78 _0803DDE0: adds r4, 0x1 cmp r4, r6 bge _0803DDF4 ldrb r1, [r2] adds r2, 0x1 adds r0, r5, r3 strb r1, [r0] adds r3, 0x1 cmp r3, r7 ble _0803DDE0 _0803DDF4: cmp r3, r8 ble _0803DD7E _0803DDF8: movs r5, 0 ldr r4, _0803DE78 add r3, sp, 0x240 _0803DDFE: ldrb r2, [r3, 0x7] lsls r2, 28 ldrb r0, [r3, 0x6] lsls r0, 24 movs r1, 0xF0 lsls r1, 20 ands r0, r1 orrs r2, r0 ldrb r0, [r3, 0x5] lsls r0, 20 movs r1, 0xF0 lsls r1, 16 ands r0, r1 orrs r2, r0 ldrb r0, [r3, 0x4] lsls r0, 16 movs r1, 0xF0 lsls r1, 12 ands r0, r1 orrs r2, r0 ldrb r0, [r3, 0x3] lsls r0, 12 movs r1, 0xF0 lsls r1, 8 ands r0, r1 orrs r2, r0 ldrb r0, [r3, 0x2] lsls r0, 8 movs r1, 0xF0 lsls r1, 4 ands r0, r1 orrs r2, r0 ldrb r0, [r3, 0x1] lsls r0, 4 movs r1, 0xF0 ands r0, r1 orrs r2, r0 ldrb r1, [r3] movs r0, 0xF ands r0, r1 orrs r2, r0 mov r0, r10 adds r0, 0x4 mov r10, r0 subs r0, 0x4 stm r0!, {r2} adds r3, 0x8 adds r5, 0x8 cmp r5, r4 ble _0803DDFE movs r3, 0x90 lsls r3, 3 add sp, r3 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803DE78: .4byte 0x0000023f thumb_func_end sub_803DD30 thumb_func_start sub_803DE7C sub_803DE7C: push {r4,r5,lr} adds r4, r0, 0 movs r5, 0 b _0803DEBA _0803DE84: ldrb r1, [r4] adds r4, 0x1 cmp r1, 0x23 bne _0803DE90 adds r5, 0x8 b _0803DEBA _0803DE90: cmp r1, 0x20 bne _0803DE98 adds r5, 0xC b _0803DEBA _0803DE98: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0803DEAC ldrb r0, [r4] cmp r0, 0 beq _0803DEAC lsls r1, 8 orrs r1, r0 adds r4, 0x1 _0803DEAC: adds r0, r1, 0 bl sub_803DEC8 cmp r0, 0 beq _0803DEBA ldrb r0, [r0, 0x6] adds r5, r0 _0803DEBA: ldrb r0, [r4] cmp r0, 0 bne _0803DE84 adds r0, r5, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_803DE7C thumb_func_start sub_803DEC8 sub_803DEC8: push {r4,r5,lr} adds r3, r0, 0 ldr r0, _0803DEFC ldr r0, [r0] ldr r0, [r0, 0x4] ldr r5, [r0] ldr r0, _0803DF00 adds r1, r3, r0 ldr r0, _0803DF04 cmp r1, r0 bhi _0803DF08 movs r2, 0xFF ands r2, r3 movs r1, 0xFF lsls r1, 8 ands r1, r3 asrs r1, 8 subs r2, 0x20 subs r1, 0xF8 lsls r0, r1, 3 subs r0, r1 lsls r0, 5 adds r0, r2 lsls r0, 3 adds r1, r5, r0 b _0803DF56 .align 2, 0 _0803DEFC: .4byte gUnknown_202EC8C _0803DF00: .4byte 0xffff0800 _0803DF04: .4byte 0x000007fe _0803DF08: movs r4, 0 ldr r0, _0803DF1C ldr r0, [r0] subs r2, r0, 0x1 cmp r4, r2 bge _0803DF48 lsrs r0, r2, 31 adds r0, r2, r0 b _0803DF3A .align 2, 0 _0803DF1C: .4byte gUnknown_202EC90 _0803DF20: lsls r0, r1, 3 adds r0, r5 ldrh r0, [r0, 0x4] cmp r0, r3 bge _0803DF2E adds r4, r1, 0x1 b _0803DF30 _0803DF2E: adds r2, r1, 0 _0803DF30: cmp r4, r2 bge _0803DF48 adds r0, r4, r2 lsrs r1, r0, 31 adds r0, r1 _0803DF3A: asrs r1, r0, 1 lsls r0, r1, 3 adds r0, r5 ldrh r0, [r0, 0x4] cmp r0, r3 bne _0803DF20 adds r4, r1, 0 _0803DF48: lsls r0, r4, 3 adds r1, r5, r0 ldrh r0, [r1, 0x4] cmp r0, r3 beq _0803DF56 adds r1, r5, 0 adds r1, 0x8 _0803DF56: adds r0, r1, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_803DEC8 thumb_func_start sub_803DF60 sub_803DF60: push {r4-r7,lr} ldr r0, _0803DFF8 ldr r1, _0803DFFC bl OpenFileAndGetFileDataPtr adds r7, r0, 0 ldr r0, [r7, 0x4] ldr r5, [r0] ldm r5!, {r4} ldr r6, _0803E000 cmp r4, 0 beq _0803DF8C _0803DF78: adds r0, r6, 0 adds r1, r5, 0 movs r2, 0x20 bl CpuCopy adds r6, 0x20 adds r5, 0x20 subs r4, 0x1 cmp r4, 0 bne _0803DF78 _0803DF8C: adds r0, r7, 0 bl CloseFile ldr r0, _0803E004 ldr r1, _0803DFFC bl OpenFileAndGetFileDataPtr adds r7, r0, 0 ldr r5, [r7, 0x4] ldm r5!, {r4} ldr r6, _0803E008 cmp r4, 0 beq _0803DFBA _0803DFA6: adds r0, r6, 0 adds r1, r5, 0 movs r2, 0x20 bl CpuCopy adds r6, 0x20 adds r5, 0x20 subs r4, 0x1 cmp r4, 0 bne _0803DFA6 _0803DFBA: adds r0, r7, 0 bl CloseFile ldr r0, _0803E00C ldr r4, _0803DFFC adds r1, r4, 0 bl OpenFileAndGetFileDataPtr ldr r1, _0803E010 str r0, [r1] ldr r0, _0803E014 adds r1, r4, 0 bl OpenFileAndGetFileDataPtr ldr r1, _0803E018 str r0, [r1] ldr r0, _0803E01C adds r1, r4, 0 bl OpenFileAndGetFileDataPtr ldr r1, _0803E020 str r0, [r1] ldr r0, _0803E024 adds r1, r4, 0 bl OpenFileAndGetFileDataPtr ldr r1, _0803E028 str r0, [r1] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803DFF8: .4byte gUnknown_80F61A8 _0803DFFC: .4byte gUnknown_83B0000 _0803E000: .4byte 0x06013400 _0803E004: .4byte gUnknown_80F61B0 _0803E008: .4byte 0x06014000 _0803E00C: .4byte gUnknown_80F61B8 _0803E010: .4byte gUnknown_202EC94 _0803E014: .4byte gUnknown_80F61C4 _0803E018: .4byte gUnknown_202EC98 _0803E01C: .4byte gUnknown_80F61CC _0803E020: .4byte gUnknown_202EC9C _0803E024: .4byte gUnknown_80F61D4 _0803E028: .4byte gUnknown_202ECA0 thumb_func_end sub_803DF60 thumb_func_start sub_803E02C sub_803E02C: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0xC bl sub_803E13C mov r1, sp ldr r0, _0803E118 ldm r0!, {r2,r3} stm r1!, {r2,r3} ldr r1, _0803E11C mov r0, sp bl OpenFileAndGetFileDataPtr adds r7, r0, 0 ldr r0, [r7, 0x4] ldr r5, [r0] ldm r5!, {r4} ldr r6, _0803E120 cmp r4, 0 beq _0803E06C _0803E058: adds r0, r6, 0 adds r1, r5, 0 movs r2, 0x20 bl CpuCopy adds r6, 0x20 adds r5, 0x20 subs r4, 0x1 cmp r4, 0 bne _0803E058 _0803E06C: ldr r0, _0803E124 ldr r1, [r7, 0x4] ldr r1, [r1, 0x4] movs r2, 0x80 bl CpuCopy adds r0, r7, 0 bl CloseFile movs r6, 0x80 lsls r6, 2 movs r4, 0 ldr r0, _0803E128 mov r9, r0 ldr r1, _0803E12C mov r12, r1 movs r7, 0 ldr r2, _0803E130 mov r8, r2 _0803E092: mov r3, r12 ldrh r0, [r3] lsls r5, r0, 12 adds r2, r7, 0 movs r3, 0x8 _0803E09C: mov r0, r9 ldr r1, [r0] add r1, r8 adds r1, r2 adds r0, r5, 0 orrs r0, r6 strh r0, [r1] adds r6, 0x1 adds r2, 0x2 subs r3, 0x1 cmp r3, 0 bge _0803E09C movs r1, 0x2 add r12, r1 adds r7, 0x12 adds r4, 0x1 cmp r4, 0x1C ble _0803E092 movs r4, 0 ldr r5, _0803E128 ldr r3, _0803E134 movs r2, 0xC0 lsls r2, 8 _0803E0CA: ldr r0, [r5] lsls r1, r4, 1 adds r0, r3 adds r0, r1 strh r2, [r0] adds r4, 0x1 cmp r4, 0x8 ble _0803E0CA movs r4, 0 ldr r2, _0803E128 movs r6, 0xBE lsls r6, 1 ldr r5, _0803E138 movs r3, 0xBF lsls r3, 1 _0803E0E8: ldr r0, [r2] lsls r1, r4, 2 adds r0, r1 adds r0, r6 strb r4, [r0] ldr r0, [r2] adds r0, r1 adds r0, r5 strb r4, [r0] ldr r0, [r2] adds r0, r1 adds r0, r3 strb r4, [r0] adds r4, 0x1 cmp r4, 0xFF ble _0803E0E8 add sp, 0xC pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803E118: .4byte gUnknown_80F61DC _0803E11C: .4byte gUnknown_83B0000 _0803E120: .4byte 0x0600c000 _0803E124: .4byte gUnknown_202ECA4 _0803E128: .4byte gUnknown_203B418 _0803E12C: .4byte gUnknown_80F5F70 _0803E130: .4byte 0x00012a18 _0803E134: .4byte 0x00013554 _0803E138: .4byte 0x0000017d thumb_func_end sub_803E02C thumb_func_start sub_803E13C sub_803E13C: push {r4,r5,lr} bl sub_8094C14 ldr r0, _0803E170 ldr r0, [r0] ldrb r0, [r0, 0xB] ldr r5, _0803E174 cmp r0, 0 beq _0803E154 movs r0, 0x80 lsls r0, 1 adds r5, r0 _0803E154: movs r4, 0 _0803E156: adds r0, r4, 0 adds r0, 0xF0 adds r1, r5, 0 bl SetBGPaletteBufferColorArray adds r5, 0x4 adds r4, 0x1 cmp r4, 0xF ble _0803E156 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0803E170: .4byte gUnknown_203B46C _0803E174: .4byte gUnknown_202D038 thumb_func_end sub_803E13C thumb_func_start sub_803E178 sub_803E178: push {r4,lr} bl sub_8043D10 lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _0803E1E0 ldr r0, _0803E1AC ldr r2, [r0] ldr r3, _0803E1B0 adds r1, r2, r3 ldrb r1, [r1] adds r3, r0, 0 cmp r1, 0x15 bne _0803E1BC ldr r1, _0803E1B4 adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0 bne _0803E1BC ldr r3, _0803E1B8 adds r1, r2, r3 movs r0, 0x1C strh r0, [r1] b _0803E204 .align 2, 0 _0803E1AC: .4byte gUnknown_203B418 _0803E1B0: .4byte 0x00000644 _0803E1B4: .4byte 0x000037fe _0803E1B8: .4byte 0x00003a12 _0803E1BC: ldr r4, [r3] ldr r1, _0803E1D8 adds r0, r4, r1 ldrb r0, [r0] bl sub_80900C0 lsls r0, 24 movs r1, 0x16 cmp r0, 0 beq _0803E1D2 movs r1, 0x17 _0803E1D2: ldr r2, _0803E1DC adds r0, r4, r2 b _0803E202 .align 2, 0 _0803E1D8: .4byte 0x00000644 _0803E1DC: .4byte 0x00003a12 _0803E1E0: cmp r0, 0x1 bne _0803E1F8 ldr r0, _0803E1F0 ldr r0, [r0] ldr r3, _0803E1F4 adds r0, r3 movs r1, 0x6 b _0803E202 .align 2, 0 _0803E1F0: .4byte gUnknown_203B418 _0803E1F4: .4byte 0x00003a12 _0803E1F8: ldr r0, _0803E20C ldr r0, [r0] ldr r1, _0803E210 adds r0, r1 movs r1, 0x18 _0803E202: strh r1, [r0] _0803E204: pop {r4} pop {r0} bx r0 .align 2, 0 _0803E20C: .4byte gUnknown_203B418 _0803E210: .4byte 0x00003a12 thumb_func_end sub_803E178 thumb_func_start sub_803E214 sub_803E214: push {lr} ldr r0, _0803E23C ldr r0, [r0] bl CloseFile ldr r0, _0803E240 ldr r0, [r0] bl CloseFile ldr r0, _0803E244 ldr r0, [r0] bl CloseFile ldr r0, _0803E248 ldr r0, [r0] bl CloseFile pop {r0} bx r0 .align 2, 0 _0803E23C: .4byte gUnknown_202EC94 _0803E240: .4byte gUnknown_202EC98 _0803E244: .4byte gUnknown_202EC9C _0803E248: .4byte gUnknown_202ECA0 thumb_func_end sub_803E214 thumb_func_start nullsub_56 nullsub_56: bx lr thumb_func_end nullsub_56 thumb_func_start sub_803E250 sub_803E250: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 ldr r1, _0803E3FC ldr r0, _0803E400 str r0, [r1] ldr r0, _0803E404 movs r1, 0 str r1, [r0] ldr r0, _0803E408 strb r1, [r0] ldr r0, _0803E40C strh r1, [r0] ldr r5, _0803E410 ldrh r0, [r5, 0x6] movs r3, 0xF adds r2, r3, 0 ands r2, r0 ldrh r4, [r5] ldr r1, _0803E414 adds r0, r1, 0 ands r0, r4 ldr r4, _0803E418 ands r0, r4 ldr r6, _0803E41C ands r0, r6 ldr r7, _0803E420 ands r0, r7 ldr r4, _0803E424 mov r12, r4 ands r0, r4 ldr r4, _0803E428 ands r0, r4 strh r0, [r5] movs r0, 0x80 lsls r0, 7 strh r0, [r5, 0x2] movs r0, 0 strh r0, [r5, 0x4] ldr r0, _0803E42C mov r10, r0 ands r2, r0 subs r0, 0x1 mov r9, r0 ands r2, r0 subs r0, 0x2 mov r8, r0 ands r2, r0 strh r2, [r5, 0x6] ldr r2, _0803E430 ldrh r0, [r2, 0x6] ands r3, r0 ldrh r0, [r2] ands r1, r0 ldr r0, _0803E418 ands r1, r0 ands r1, r6 ands r1, r7 mov r7, r12 ands r1, r7 ands r1, r4 strh r1, [r2] movs r0, 0 strh r0, [r2, 0x2] movs r0, 0xB8 lsls r0, 7 strh r0, [r2, 0x4] mov r0, r10 ands r3, r0 mov r1, r9 ands r3, r1 mov r7, r8 ands r3, r7 strh r3, [r2, 0x6] movs r0, 0 mov r8, r0 _0803E2EE: movs r1, 0 mov r9, r1 mov r2, r8 lsls r0, r2, 3 lsls r2, 1 mov r12, r2 mov r3, r8 adds r3, 0x1 str r3, [sp] mov r10, r1 add r0, r8 lsls r5, r0, 3 ldr r4, _0803E434 adds r4, r5, r4 str r4, [sp, 0x4] ldr r7, _0803E438 adds r6, r5, r7 ldr r0, _0803E43C adds r3, r5, r0 ldr r1, _0803E440 adds r4, r5, r1 _0803E318: mov r7, r10 adds r2, r5, r7 ldrh r1, [r3] ldr r0, _0803E414 ands r0, r1 ldr r1, _0803E418 ands r0, r1 ldr r1, _0803E41C ands r0, r1 ldr r1, _0803E420 ands r0, r1 ldr r1, _0803E424 ands r0, r1 strh r0, [r3] ldr r1, [r4] movs r7, 0x3 ands r1, r7 lsls r1, 14 ldr r7, _0803E428 ands r0, r7 orrs r0, r1 strh r0, [r3] ldrh r1, [r3, 0x2] ldr r0, _0803E444 ands r0, r1 strh r0, [r3, 0x2] ldr r1, _0803E440 adds r1, 0x4 adds r2, r1 ldr r1, [r2] movs r2, 0x3 ands r1, r2 lsls r1, 14 ands r0, r7 orrs r0, r1 strh r0, [r3, 0x2] ldr r1, [r6] ldr r0, _0803E448 ands r1, r0 ldrh r2, [r3, 0x4] movs r0, 0xFC lsls r0, 8 ands r0, r2 orrs r0, r1 ldr r7, _0803E41C ands r0, r7 movs r1, 0xC0 lsls r1, 4 orrs r0, r1 movs r2, 0 orrs r0, r2 ldr r1, _0803E44C ands r0, r1 strh r0, [r3, 0x4] ldrh r1, [r3, 0x6] ldr r0, _0803E42C ands r0, r1 ldr r1, _0803E450 ands r0, r1 strh r0, [r3, 0x6] mov r7, r9 lsls r1, r7, 2 mov r0, r12 add r0, r8 lsls r0, 3 adds r1, r0 ldr r0, _0803E454 adds r1, r0, r1 ldr r0, [r1] ldr r1, [sp, 0x4] str r0, [r1] adds r1, 0xC str r1, [sp, 0x4] adds r6, 0xC adds r3, 0xC adds r4, 0xC movs r2, 0xC add r10, r2 movs r7, 0x1 add r9, r7 mov r0, r9 cmp r0, 0x5 ble _0803E318 ldr r1, [sp] mov r8, r1 cmp r1, 0x1 ble _0803E2EE movs r2, 0 ldr r3, _0803E458 ldr r0, [r3] ldr r4, _0803E45C adds r0, r4 movs r1, 0x1 strb r1, [r0] ldr r0, [r3] ldr r7, _0803E460 adds r0, r7 strb r1, [r0] ldr r0, _0803E464 str r2, [r0] movs r0, 0xF8 ldr r1, _0803E468 movs r3, 0 bl SetBGPaletteBufferColorRGB add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803E3FC: .4byte gUnknown_202EDD0 _0803E400: .4byte 0x000003e7 _0803E404: .4byte gUnknown_202EDD4 _0803E408: .4byte gUnknown_203B40D _0803E40C: .4byte gUnknown_202EDE8 _0803E410: .4byte gUnknown_202EDC0 _0803E414: .4byte 0x0000feff _0803E418: .4byte 0x0000fdff _0803E41C: .4byte 0x0000f3ff _0803E420: .4byte 0x0000efff _0803E424: .4byte 0x0000dfff _0803E428: .4byte 0x00003fff _0803E42C: .4byte 0x0000fffe _0803E430: .4byte gUnknown_202EDB8 _0803E434: .4byte gUnknown_202ED30 _0803E438: .4byte gUnknown_80F6224 _0803E43C: .4byte gUnknown_202ED28 _0803E440: .4byte gUnknown_80F621C _0803E444: .4byte 0x0000c1ff _0803E448: .4byte 0x000003ff _0803E44C: .4byte 0x00000fff _0803E450: .4byte 0x0000fffd _0803E454: .4byte gUnknown_80F61EC _0803E458: .4byte gUnknown_203B418 _0803E45C: .4byte 0x00018217 _0803E460: .4byte 0x00018218 _0803E464: .4byte gUnknown_202EDC8 _0803E468: .4byte gUnknown_202D058 thumb_func_end sub_803E250 thumb_func_start sub_803E46C sub_803E46C: push {lr} adds r1, r0, 0 ldr r0, _0803E480 ldrb r0, [r0] cmp r0, 0 beq _0803E484 adds r0, r1, 0 bl sub_803E490 b _0803E48A .align 2, 0 _0803E480: .4byte gUnknown_203B40C _0803E484: adds r0, r1, 0 bl sub_803E668 _0803E48A: pop {r0} bx r0 thumb_func_end sub_803E46C thumb_func_start sub_803E490 sub_803E490: push {r4,r5,lr} sub sp, 0x8 ldr r1, _0803E4D8 ldr r0, [r1] adds r0, 0x1 str r0, [r1] bl xxx_draw_string_80524F0 bl sub_8085F78 movs r0, 0x1 bl sub_803F580 ldr r2, _0803E4DC ldr r1, [r2] ldr r3, _0803E4E0 adds r0, r1, r3 ldrb r0, [r0] cmp r0, 0 beq _0803E4EC ldr r4, _0803E4E4 adds r1, r4 movs r0, 0x2 strb r0, [r1] ldr r1, [r2] ldr r2, _0803E4E8 adds r0, r1, r2 movs r3, 0 ldrsh r0, [r0, r3] subs r4, 0x16 adds r1, r4 movs r2, 0 ldrsh r1, [r1, r2] bl sub_800CCA0 b _0803E4FC .align 2, 0 _0803E4D8: .4byte gUnknown_202EDD4 _0803E4DC: .4byte gUnknown_203B418 _0803E4E0: .4byte 0x0001821a _0803E4E4: .4byte 0x00018208 _0803E4E8: .4byte 0x000181f0 _0803E4EC: ldr r3, _0803E628 adds r1, r3 movs r0, 0x3 strb r0, [r1] movs r0, 0 movs r1, 0 bl sub_800CCA0 _0803E4FC: ldr r4, _0803E62C ldr r2, [r4] ldr r5, _0803E630 adds r0, r2, r5 movs r1, 0 ldrsh r0, [r0, r1] ldr r3, _0803E634 adds r1, r2, r3 movs r3, 0 ldrsh r1, [r1, r3] ldr r3, _0803E638 adds r2, r3 ldr r2, [r2] subs r1, r2 bl sub_800CCAC bl sub_806CC10 bl sub_804522C bl sub_803F9CC ldr r0, [r4] adds r0, r5 bl sub_800F7D0 ldr r1, [r4] ldrh r2, [r1, 0x12] movs r3, 0x12 ldrsh r0, [r1, r3] cmp r0, 0x63 bgt _0803E540 adds r0, r2, 0x1 strh r0, [r1, 0x12] _0803E540: ldr r0, [r4] adds r0, r5 bl sub_800E90C bl sub_8042E5C ldr r0, _0803E63C ldr r0, [r0] cmp r0, 0 beq _0803E562 cmp r0, 0x3 beq _0803E562 ldr r0, _0803E640 ldr r0, [r0] ldrb r0, [r0, 0x4] cmp r0, 0x6 bne _0803E566 _0803E562: bl sub_8040894 _0803E566: bl sub_803ECE0 bl sub_803EDF0 ldr r0, _0803E62C ldr r3, [r0] ldr r4, _0803E644 adds r0, r3, r4 ldrb r0, [r0] cmp r0, 0 beq _0803E5A2 ldr r1, _0803E648 adds r0, r3, r1 ldr r0, [r0] cmp r0, 0x3 beq _0803E5A2 ldr r0, _0803E64C ldrb r0, [r0] ldr r1, _0803E650 ldr r2, _0803E654 ldr r2, [r2] str r2, [sp] movs r4, 0xBE lsls r4, 1 adds r2, r3, r4 str r2, [sp, 0x4] movs r2, 0xA0 movs r3, 0x20 bl sub_8004AF0 _0803E5A2: ldr r0, _0803E640 ldr r0, [r0] ldrb r0, [r0, 0xA] bl nullsub_8 bl sub_8005180 bl nullsub_12 bl sub_80060EC ldr r1, _0803E658 ldr r0, [r1] adds r0, 0x1 str r0, [r1] ldr r0, _0803E65C ldr r0, [r0] bl sub_8094FB4 bl sub_800CB20 bl sub_800485C bl CopySpritesToOam bl nullsub_13 bl sub_8005304 bl nullsub_14 bl TransferBGPaletteBuffer bl sub_8009908 bl xxx_call_update_bg_vram bl sub_8040788 bl xxx_call_update_bg_sound_input ldr r0, _0803E62C ldr r0, [r0] ldr r1, _0803E660 adds r0, r1 movs r1, 0 strb r1, [r0] bl sub_8083F58 bl sub_8011860 bl sub_8040B60 movs r0, 0 bl sub_8004D8C movs r0, 0 bl nullsub_10 ldr r1, _0803E664 ldr r0, [r1] subs r0, 0x1 str r0, [r1] add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0803E628: .4byte 0x00018208 _0803E62C: .4byte gUnknown_203B418 _0803E630: .4byte 0x000181f0 _0803E634: .4byte 0x000181f2 _0803E638: .4byte 0x000181fc _0803E63C: .4byte gUnknown_202EDD0 _0803E640: .4byte gUnknown_203B46C _0803E644: .4byte 0x00018215 _0803E648: .4byte 0x0001c06c _0803E64C: .4byte gUnknown_203B40D _0803E650: .4byte gUnknown_202EE8C _0803E654: .4byte gUnknown_202EDC8 _0803E658: .4byte gUnknown_202EDCC _0803E65C: .4byte gUnknown_203B47C _0803E660: .4byte 0x00018213 _0803E664: .4byte gUnknown_202EDD4 thumb_func_end sub_803E490 thumb_func_start sub_803E668 sub_803E668: push {r4,lr} ldr r4, _0803E6F0 ldr r0, [r4] adds r0, 0x1 str r0, [r4] ldr r0, _0803E6F4 ldr r0, [r0] ldrb r0, [r0, 0xA] bl nullsub_8 bl sub_8005180 bl nullsub_12 movs r0, 0 movs r1, 0 bl sub_8005838 bl sub_80060EC ldr r1, _0803E6F8 ldr r0, [r1] adds r0, 0x1 str r0, [r1] ldr r0, _0803E6FC ldr r0, [r0] bl sub_8094FB4 bl sub_800CB20 bl sub_800485C bl CopySpritesToOam bl nullsub_13 bl sub_8005304 bl nullsub_14 bl TransferBGPaletteBuffer bl sub_8009908 bl xxx_call_update_bg_vram bl xxx_call_update_bg_sound_input ldr r0, _0803E700 ldr r0, [r0] ldr r1, _0803E704 adds r0, r1 movs r1, 0 strb r1, [r0] bl sub_8011860 movs r0, 0 bl sub_8004D8C movs r0, 0 bl nullsub_10 ldr r0, [r4] subs r0, 0x1 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _0803E6F0: .4byte gUnknown_202EDD4 _0803E6F4: .4byte gUnknown_203B46C _0803E6F8: .4byte gUnknown_202EDCC _0803E6FC: .4byte gUnknown_203B47C _0803E700: .4byte gUnknown_203B418 _0803E704: .4byte 0x00018213 thumb_func_end sub_803E668 thumb_func_start sub_803E708 sub_803E708: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 cmp r4, 0 beq _0803E71E _0803E712: adds r0, r5, 0 bl sub_803E46C subs r4, 0x1 cmp r4, 0 bne _0803E712 _0803E71E: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_803E708 thumb_func_start sub_803E724 sub_803E724: push {r4-r6,lr} adds r4, r0, 0 ldr r5, _0803E744 movs r6, 0xF0 _0803E72C: adds r0, r4, 0 bl sub_803E46C ldrh r1, [r5] adds r0, r6, 0 ands r0, r1 cmp r0, 0 bne _0803E72C pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0803E744: .4byte gUnknown_20255F0 thumb_func_end sub_803E724 thumb_func_start sub_803E748 sub_803E748: push {r4,r5,lr} movs r5, 0x1F ldr r1, _0803E7B8 movs r0, 0x1 strb r0, [r1] ldr r1, _0803E7BC movs r0, 0 str r0, [r1] movs r0, 0x1 movs r1, 0x1F bl sub_803E874 movs r4, 0 _0803E762: cmp r4, 0x1F bgt _0803E780 subs r5, 0x2 cmp r5, 0 bgt _0803E780 movs r5, 0 movs r0, 0x1 movs r1, 0 bl sub_803EAF0 ldr r0, _0803E7C0 ldr r0, [r0] ldr r1, _0803E7C4 adds r0, r1 strb r5, [r0] _0803E780: cmp r4, 0xB ble _0803E790 ldr r1, _0803E7BC ldr r0, [r1] cmp r0, 0x1E bgt _0803E790 adds r0, 0x1 str r0, [r1] _0803E790: movs r0, 0x1 adds r1, r5, 0 bl sub_803E874 movs r0, 0x5 bl sub_803E46C adds r4, 0x1 cmp r4, 0x2B ble _0803E762 ldr r1, _0803E7B8 movs r0, 0 strb r0, [r1] ldr r1, _0803E7BC movs r0, 0x1F str r0, [r1] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0803E7B8: .4byte gUnknown_203B40D _0803E7BC: .4byte gUnknown_202EDC8 _0803E7C0: .4byte gUnknown_203B418 _0803E7C4: .4byte 0x00018217 thumb_func_end sub_803E748 thumb_func_start sub_803E7C8 sub_803E7C8: push {r4,r5,lr} movs r4, 0x1F ldr r1, _0803E820 movs r0, 0x1 strb r0, [r1] ldr r1, _0803E824 movs r0, 0 str r0, [r1] movs r0, 0x5 bl sub_803E46C movs r5, 0 _0803E7E0: movs r0, 0x1 adds r1, r4, 0 bl sub_803E874 cmp r5, 0x1F bgt _0803E806 subs r4, 0x2 cmp r4, 0 bgt _0803E806 movs r4, 0 movs r0, 0x1 movs r1, 0 bl sub_803EAF0 ldr r0, _0803E828 ldr r0, [r0] ldr r1, _0803E82C adds r0, r1 strb r4, [r0] _0803E806: movs r0, 0x5 bl sub_803E46C adds r5, 0x1 cmp r5, 0x2B ble _0803E7E0 ldr r1, _0803E820 movs r0, 0 strb r0, [r1] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0803E820: .4byte gUnknown_203B40D _0803E824: .4byte gUnknown_202EDC8 _0803E828: .4byte gUnknown_203B418 _0803E82C: .4byte 0x00018217 thumb_func_end sub_803E7C8 thumb_func_start sub_803E830 sub_803E830: push {r4,r5,lr} ldr r1, _0803E86C movs r0, 0x1 strb r0, [r1] ldr r5, _0803E870 movs r4, 0x1F _0803E83C: movs r0, 0 movs r1, 0 bl sub_803E874 movs r0, 0x5 bl sub_803E46C ldr r0, [r5] cmp r0, 0 ble _0803E854 subs r0, 0x1 str r0, [r5] _0803E854: subs r4, 0x1 cmp r4, 0 bge _0803E83C ldr r0, _0803E870 movs r1, 0 str r1, [r0] ldr r0, _0803E86C strb r1, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0803E86C: .4byte gUnknown_203B40D _0803E870: .4byte gUnknown_202EDC8 thumb_func_end sub_803E830 thumb_func_start sub_803E874 sub_803E874: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 mov r9, r1 lsls r0, 24 lsrs r0, 24 mov r10, r0 ldr r0, _0803E9A4 ldr r0, [r0] ldr r5, [r0, 0x4] ldr r1, _0803E9A8 ldr r0, _0803E9AC ldr r2, [r0] ldr r0, _0803E9B0 ldr r3, [r0] movs r0, 0xBE lsls r0, 1 adds r3, r0 movs r0, 0 bl SetBGPaletteBufferColorRGB adds r5, 0x4 movs r6, 0x1 movs r4, 0x9F _0803E8AA: ldr r1, _0803E9AC mov r8, r1 ldr r2, [r1] ldr r7, _0803E9B0 ldr r3, [r7] movs r0, 0xBE lsls r0, 1 adds r3, r0 adds r0, r6, 0 adds r1, r5, 0 bl SetBGPaletteBufferColorRGB adds r5, 0x4 adds r6, 0x1 subs r4, 0x1 cmp r4, 0 bne _0803E8AA ldr r3, [r7] ldr r1, _0803E9B4 adds r0, r3, r1 ldrb r0, [r0] cmp r0, 0 beq _0803E8E2 ldr r2, _0803E9B8 adds r0, r3, r2 ldr r0, [r0] cmp r0, 0x3 bne _0803E8FC _0803E8E2: ldr r1, _0803E9BC mov r2, r8 ldr r0, [r2] str r0, [sp] movs r2, 0xBE lsls r2, 1 adds r0, r3, r2 str r0, [sp, 0x4] movs r0, 0x1 movs r2, 0xA0 movs r3, 0x20 bl sub_8004AF0 _0803E8FC: adds r6, 0x20 ldr r5, _0803E9C0 movs r4, 0x20 _0803E902: ldr r0, _0803E9AC ldr r2, [r0] ldr r0, _0803E9B0 ldr r3, [r0] movs r0, 0xBE lsls r0, 1 adds r3, r0 adds r0, r6, 0 adds r1, r5, 0 bl SetBGPaletteBufferColorRGB adds r5, 0x4 adds r6, 0x1 subs r4, 0x1 cmp r4, 0 bne _0803E902 mov r1, r10 cmp r1, 0 beq _0803E948 movs r6, 0xE0 ldr r0, _0803E9C4 ldr r0, [r0] ldr r5, [r0, 0x4] movs r4, 0x10 _0803E932: adds r0, r6, 0 adds r1, r5, 0 mov r2, r9 movs r3, 0 bl SetBGPaletteBufferColorRGB adds r5, 0x4 adds r6, 0x1 subs r4, 0x1 cmp r4, 0 bne _0803E932 _0803E948: ldr r1, _0803E9C8 ldr r4, _0803E9AC ldr r2, [r4] movs r0, 0xF8 movs r3, 0 bl SetBGPaletteBufferColorRGB ldr r0, _0803E9B0 ldr r0, [r0] ldr r2, _0803E9CC adds r0, r2 ldr r0, [r0] ldr r5, [r0, 0x4] movs r6, 0x80 lsls r6, 1 adds r7, r4, 0 movs r4, 0xD0 _0803E96A: ldr r2, [r7] ldr r0, _0803E9B0 ldr r3, [r0] movs r0, 0xBE lsls r0, 1 adds r3, r0 adds r0, r6, 0 adds r1, r5, 0 bl SetBGPaletteBufferColorRGB ldr r2, [r7] adds r0, r6, 0 adds r1, r5, 0 movs r3, 0 bl nullsub_4 adds r5, 0x4 adds r6, 0x1 subs r4, 0x1 cmp r4, 0 bne _0803E96A add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803E9A4: .4byte gUnknown_202EE88 _0803E9A8: .4byte gUnknown_80F62AC _0803E9AC: .4byte gUnknown_202EDC8 _0803E9B0: .4byte gUnknown_203B418 _0803E9B4: .4byte 0x00018215 _0803E9B8: .4byte 0x0001c06c _0803E9BC: .4byte gUnknown_202EE8C _0803E9C0: .4byte gUnknown_202ECA4 _0803E9C4: .4byte gUnknown_202EC88 _0803E9C8: .4byte gUnknown_202D058 _0803E9CC: .4byte 0x000181e4 thumb_func_end sub_803E874 thumb_func_start sub_803E9D0 sub_803E9D0: push {r4-r7,lr} ldr r0, _0803EA04 ldr r0, [r0] ldr r1, _0803EA08 adds r0, r1 ldr r0, [r0] ldr r4, [r0, 0x4] movs r6, 0x80 lsls r6, 1 ldr r7, _0803EA0C movs r5, 0xD0 _0803E9E6: ldr r2, [r7] adds r0, r6, 0 adds r1, r4, 0 movs r3, 0 bl nullsub_4 adds r4, 0x4 adds r6, 0x1 subs r5, 0x1 cmp r5, 0 bne _0803E9E6 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803EA04: .4byte gUnknown_203B418 _0803EA08: .4byte 0x000181e4 _0803EA0C: .4byte gUnknown_202EDC8 thumb_func_end sub_803E9D0 thumb_func_start sub_803EA10 sub_803EA10: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 ldr r0, _0803EACC ldr r0, [r0] ldr r4, [r0, 0x4] ldr r1, _0803EAD0 ldr r0, _0803EAD4 ldr r2, [r0] ldr r0, _0803EAD8 ldr r3, [r0] movs r0, 0xBE lsls r0, 1 adds r3, r0 movs r0, 0 bl SetBGPaletteBufferColorRGB adds r4, 0x4 movs r6, 0x1 movs r5, 0x9F _0803EA3A: ldr r1, _0803EAD4 mov r8, r1 ldr r2, [r1] ldr r7, _0803EAD8 ldr r3, [r7] movs r0, 0xBE lsls r0, 1 adds r3, r0 adds r0, r6, 0 adds r1, r4, 0 bl SetBGPaletteBufferColorRGB adds r4, 0x4 adds r6, 0x1 subs r5, 0x1 cmp r5, 0 bne _0803EA3A ldr r3, [r7] ldr r1, _0803EADC adds r0, r3, r1 ldrb r0, [r0] cmp r0, 0 beq _0803EA72 ldr r2, _0803EAE0 adds r0, r3, r2 ldr r0, [r0] cmp r0, 0x3 bne _0803EA8C _0803EA72: ldr r1, _0803EAE4 mov r2, r8 ldr r0, [r2] str r0, [sp] movs r2, 0xBE lsls r2, 1 adds r0, r3, r2 str r0, [sp, 0x4] movs r0, 0x1 movs r2, 0xA0 movs r3, 0x20 bl sub_8004AF0 _0803EA8C: adds r6, 0x20 ldr r4, _0803EAE8 movs r5, 0x20 _0803EA92: ldr r7, _0803EAD4 ldr r2, [r7] ldr r0, _0803EAD8 ldr r3, [r0] movs r0, 0xBE lsls r0, 1 adds r3, r0 adds r0, r6, 0 adds r1, r4, 0 bl SetBGPaletteBufferColorRGB adds r4, 0x4 adds r6, 0x1 subs r5, 0x1 cmp r5, 0 bne _0803EA92 ldr r1, _0803EAEC ldr r2, [r7] movs r0, 0xF8 movs r3, 0 bl SetBGPaletteBufferColorRGB add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803EACC: .4byte gUnknown_202EE88 _0803EAD0: .4byte gUnknown_80F62AC _0803EAD4: .4byte gUnknown_202EDC8 _0803EAD8: .4byte gUnknown_203B418 _0803EADC: .4byte 0x00018215 _0803EAE0: .4byte 0x0001c06c _0803EAE4: .4byte gUnknown_202EE8C _0803EAE8: .4byte gUnknown_202ECA4 _0803EAEC: .4byte gUnknown_202D058 thumb_func_end sub_803EA10 thumb_func_start sub_803EAF0 sub_803EAF0: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 ldr r0, _0803EB20 ldr r0, [r0] cmp r4, r0 bne _0803EB00 b _0803EC88 _0803EB00: cmp r4, 0x5 bne _0803EB06 b _0803EC1C _0803EB06: cmp r4, 0x5 bhi _0803EB2E cmp r4, 0x2 bne _0803EB10 b _0803EBFC _0803EB10: cmp r4, 0x2 bhi _0803EB24 cmp r4, 0 beq _0803EB70 cmp r4, 0x1 beq _0803EB50 b _0803EC84 .align 2, 0 _0803EB20: .4byte gUnknown_202EDD0 _0803EB24: cmp r4, 0x3 beq _0803EB98 cmp r4, 0x4 beq _0803EBFC b _0803EC84 _0803EB2E: cmp r4, 0x8 bne _0803EB34 b _0803EC34 _0803EB34: cmp r4, 0x8 bhi _0803EB42 cmp r4, 0x6 beq _0803EBBC cmp r4, 0x7 beq _0803EBDC b _0803EC84 _0803EB42: cmp r4, 0xA bne _0803EB48 b _0803EC80 _0803EB48: cmp r4, 0xA bcs _0803EB4E b _0803EC54 _0803EB4E: b _0803EC84 _0803EB50: ldr r0, _0803EB6C ldrb r0, [r0] cmp r0, 0 beq _0803EB5E movs r0, 0 bl sub_8052210 _0803EB5E: bl sub_8004914 bl sub_803EC94 movs r0, 0 movs r1, 0x1 b _0803EC6E .align 2, 0 _0803EB6C: .4byte gUnknown_203B40C _0803EB70: bl sub_803EC94 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, _0803EB94 ldrb r0, [r0] cmp r0, 0 bne _0803EB88 b _0803EC84 _0803EB88: bl sub_8040A84 movs r0, 0 bl sub_8040ABC b _0803EC84 .align 2, 0 _0803EB94: .4byte gUnknown_203B40C _0803EB98: ldr r0, _0803EBB4 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, _0803EBB8 ldrb r0, [r0] cmp r0, 0 beq _0803EC84 movs r0, 0x1 bl sub_8040ABC b _0803EC84 .align 2, 0 _0803EBB4: .4byte gUnknown_80F62B0 _0803EBB8: .4byte gUnknown_203B40C _0803EBBC: ldr r0, _0803EBD4 ldrb r0, [r0] cmp r0, 0 beq _0803EBCA movs r0, 0 bl sub_8052210 _0803EBCA: bl sub_8004914 ldr r0, _0803EBD8 movs r1, 0x1 b _0803EC6E .align 2, 0 _0803EBD4: .4byte gUnknown_203B40C _0803EBD8: .4byte gUnknown_80F6310 _0803EBDC: ldr r0, _0803EBF4 ldrb r0, [r0] cmp r0, 0 beq _0803EBEA movs r0, 0 bl sub_8052210 _0803EBEA: bl sub_8004914 ldr r0, _0803EBF8 movs r1, 0x1 b _0803EC6E .align 2, 0 _0803EBF4: .4byte gUnknown_203B40C _0803EBF8: .4byte gUnknown_80F6370 _0803EBFC: ldr r0, _0803EC18 ldrb r0, [r0] cmp r0, 0 beq _0803EC0A movs r0, 0 bl sub_8052210 _0803EC0A: bl sub_8004914 bl sub_803EC94 movs r0, 0 movs r1, 0x1 b _0803EC6E .align 2, 0 _0803EC18: .4byte gUnknown_203B40C _0803EC1C: ldr r0, _0803EC30 ldrb r0, [r0] cmp r0, 0 beq _0803EC2A movs r0, 0 bl sub_8052210 _0803EC2A: movs r0, 0 movs r1, 0x1 b _0803EC6E .align 2, 0 _0803EC30: .4byte gUnknown_203B40C _0803EC34: ldr r0, _0803EC50 ldrb r0, [r0] cmp r0, 0 beq _0803EC46 bl sub_8083D44 movs r0, 0 bl sub_8052210 _0803EC46: movs r0, 0x2 adds r1, r5, 0 bl sub_801602C b _0803EC84 .align 2, 0 _0803EC50: .4byte gUnknown_203B40C _0803EC54: ldr r0, _0803EC78 ldrb r0, [r0] cmp r0, 0 beq _0803EC66 movs r0, 0 bl sub_8052210 bl sub_8083D44 _0803EC66: bl sub_8004914 ldr r0, _0803EC7C movs r1, 0 _0803EC6E: movs r2, 0x1 bl sub_800641C b _0803EC84 .align 2, 0 _0803EC78: .4byte gUnknown_203B40C _0803EC7C: .4byte gUnknown_80F63D0 _0803EC80: bl sub_8083D44 _0803EC84: ldr r0, _0803EC90 str r4, [r0] _0803EC88: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0803EC90: .4byte gUnknown_202EDD0 thumb_func_end sub_803EAF0 thumb_func_start sub_803EC94 sub_803EC94: push {lr} ldr r0, _0803ECB0 movs r1, 0 strh r1, [r0, 0x1E] strh r1, [r0, 0x20] strh r1, [r0, 0xC] strh r1, [r0, 0xE] strh r1, [r0, 0x14] adds r0, 0x28 bl sub_801317C pop {r0} bx r0 .align 2, 0 _0803ECB0: .4byte gUnknown_202EE10 thumb_func_end sub_803EC94 thumb_func_start sub_803ECB4 sub_803ECB4: push {r4,r5,lr} adds r5, r0, 0 lsls r4, r1, 24 lsrs r4, 24 ldr r1, _0803ECDC movs r0, 0xA str r0, [r1] movs r0, 0 bl sub_8052210 bl sub_8004914 adds r0, r5, 0 movs r1, 0x1 adds r2, r4, 0 bl sub_800641C pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0803ECDC: .4byte gUnknown_202EDD0 thumb_func_end sub_803ECB4 thumb_func_start sub_803ECE0 sub_803ECE0: push {lr} ldr r1, _0803ED24 ldr r0, [r1] adds r0, 0x1 str r0, [r1] cmp r0, 0 bge _0803ECF2 movs r0, 0 str r0, [r1] _0803ECF2: ldr r0, [r1] cmp r0, 0xB ble _0803ECFC movs r0, 0 str r0, [r1] _0803ECFC: ldr r0, _0803ED28 ldr r2, [r0] ldr r0, [r1] cmp r0, 0 bge _0803ED08 adds r0, 0x3 _0803ED08: asrs r1, r0, 2 lsls r0, r1, 3 adds r0, r1 lsls r0, 6 ldr r1, [r2, 0x4] adds r1, r0 movs r2, 0x90 lsls r2, 2 ldr r0, _0803ED2C bl sub_80098BC pop {r0} bx r0 .align 2, 0 _0803ED24: .4byte gUnknown_202EDD8 _0803ED28: .4byte gUnknown_202EC94 _0803ED2C: .4byte 0x06014400 thumb_func_end sub_803ECE0 thumb_func_start sub_803ED30 sub_803ED30: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r5, r0, 0 adds r7, r1, 0 mov r9, r3 lsls r2, 24 lsrs r2, 24 mov r8, r2 cmp r5, 0 beq _0803EDDA ldr r0, _0803EDAC ldr r0, [r0] ldr r1, _0803EDB0 adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _0803EDDA movs r4, 0 ldr r1, _0803EDB4 movs r2, 0 ldrsh r0, [r1, r2] cmp r0, 0 beq _0803ED78 adds r6, r1, 0 _0803ED64: movs r0, 0x29 bl sub_803E46C adds r4, 0x1 cmp r4, 0x13 bgt _0803ED78 movs r1, 0 ldrsh r0, [r6, r1] cmp r0, 0 bne _0803ED64 _0803ED78: adds r0, r5, 0 mov r1, r8 bl sub_803EF90 ldr r3, _0803EDB4 movs r2, 0 movs r1, 0x3C strh r1, [r3] str r7, [r3, 0x4] ldrh r1, [r7, 0x26] str r1, [r3, 0x8] lsls r1, r0, 1 adds r1, r0 lsls r1, 8 negs r1, r1 str r1, [r3, 0xC] str r2, [r3, 0x10] mov r2, r9 cmp r2, 0 bge _0803EDC8 ldr r0, _0803EDB8 cmp r5, r0 bge _0803EDBC movs r0, 0x6 b _0803EDCA .align 2, 0 _0803EDAC: .4byte gUnknown_203B418 _0803EDB0: .4byte 0x0001820a _0803EDB4: .4byte gUnknown_202EDE8 _0803EDB8: .4byte 0xfffffc19 _0803EDBC: cmp r5, 0 blt _0803EDC4 movs r0, 0xA b _0803EDCA _0803EDC4: movs r0, 0x3 b _0803EDCA _0803EDC8: mov r0, r9 _0803EDCA: strh r0, [r3, 0x2] ldr r0, _0803EDE8 ldr r1, _0803EDEC ldr r1, [r1] adds r1, 0x18 movs r2, 0x80 bl sub_80098BC _0803EDDA: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803EDE8: .4byte 0x060142c0 _0803EDEC: .4byte gUnknown_203B418 thumb_func_end sub_803ED30 thumb_func_start sub_803EDF0 sub_803EDF0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r6, _0803EE18 movs r1, 0 ldrsh r0, [r6, r1] cmp r0, 0 bne _0803EE06 b _0803EF42 _0803EE06: ldr r0, [r6, 0x4] bl sub_80450E0 lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _0803EE1C strh r0, [r6] b _0803EF42 .align 2, 0 _0803EE18: .4byte gUnknown_202EDE8 _0803EE1C: ldr r1, [r6, 0x4] ldr r0, [r6, 0x8] ldrh r2, [r1, 0x26] cmp r0, r2 beq _0803EE2C movs r0, 0 strh r0, [r6] b _0803EF42 _0803EE2C: ldrh r0, [r6] subs r0, 0x1 strh r0, [r6] ldr r4, [r6, 0x10] adds r3, r4, 0 subs r3, 0x2E str r3, [r6, 0x10] ldr r2, [r1, 0x70] movs r5, 0xB8 lsls r5, 1 adds r0, r2, r5 movs r1, 0 ldrsh r0, [r0, r1] ldr r1, [r6, 0xC] cmp r1, 0 bge _0803EE4E adds r1, 0xFF _0803EE4E: asrs r1, 8 adds r1, r0, r1 ldr r0, _0803EF50 ldr r0, [r0] mov r12, r0 ldr r0, _0803EF54 add r0, r12 movs r5, 0 ldrsh r0, [r0, r5] subs r7, r1, r0 movs r1, 0xB9 lsls r1, 1 adds r0, r2, r1 movs r2, 0 ldrsh r0, [r0, r2] adds r1, r3, 0 cmp r1, 0 bge _0803EE76 adds r1, r4, 0 adds r1, 0xD1 _0803EE76: asrs r1, 8 adds r1, r0, r1 ldr r0, _0803EF58 add r0, r12 movs r3, 0 ldrsh r0, [r0, r3] adds r0, 0x18 subs r2, r1, r0 movs r0, 0x20 negs r0, r0 cmp r7, r0 blt _0803EF42 adds r0, 0x18 cmp r2, r0 blt _0803EF42 cmp r7, 0xEF bgt _0803EF42 cmp r2, 0x9F bgt _0803EF42 ldr r1, _0803EF5C ands r1, r2 lsls r1, 4 ldr r0, _0803EF60 ldrh r2, [r0, 0x6] movs r4, 0xF mov r8, r4 mov r3, r8 ands r3, r2 orrs r3, r1 strh r3, [r0, 0x6] ldrh r2, [r0] ldr r1, _0803EF64 ands r1, r2 ldr r2, _0803EF68 ands r1, r2 movs r5, 0x3 mov r9, r5 ldr r2, _0803EF6C mov r10, r2 ands r1, r2 ldr r2, _0803EF70 ands r1, r2 ldr r2, _0803EF74 ands r1, r2 movs r5, 0x80 lsls r5, 7 ldr r4, _0803EF78 ands r1, r4 orrs r1, r5 strh r1, [r0] ldr r1, _0803EF7C ands r7, r1 ldrh r2, [r0, 0x2] movs r1, 0xFE lsls r1, 8 ands r1, r2 orrs r1, r7 ldr r2, _0803EF80 ands r1, r2 ands r1, r4 orrs r1, r5 strh r1, [r0, 0x2] ldr r4, _0803EF84 ldrh r2, [r0, 0x4] movs r1, 0xFC lsls r1, 8 ands r1, r2 orrs r1, r4 movs r2, 0 orrs r1, r2 strh r1, [r0, 0x4] ldr r2, _0803EF88 add r2, r12 ldrb r2, [r2] mov r4, r9 ands r2, r4 lsls r2, 10 mov r5, r10 ands r1, r5 orrs r1, r2 movs r4, 0x2 ldrsh r2, [r6, r4] mov r5, r8 ands r2, r5 lsls r2, 12 ldr r4, _0803EF5C ands r1, r4 orrs r1, r2 strh r1, [r0, 0x4] ldr r1, _0803EF8C ands r3, r1 subs r1, 0x1 ands r3, r1 subs r1, 0x2 ands r3, r1 strh r3, [r0, 0x6] movs r1, 0x80 lsls r1, 1 movs r2, 0 movs r3, 0 bl AddSprite _0803EF42: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803EF50: .4byte gUnknown_203B418 _0803EF54: .4byte 0x000181f0 _0803EF58: .4byte 0x000181f2 _0803EF5C: .4byte 0x00000fff _0803EF60: .4byte gUnknown_202EDDC _0803EF64: .4byte 0x0000feff _0803EF68: .4byte 0x0000fdff _0803EF6C: .4byte 0x0000f3ff _0803EF70: .4byte 0x0000efff _0803EF74: .4byte 0x0000dfff _0803EF78: .4byte 0x00003fff _0803EF7C: .4byte 0x000001ff _0803EF80: .4byte 0x0000c1ff _0803EF84: .4byte 0x00000216 _0803EF88: .4byte 0x00018208 _0803EF8C: .4byte 0x0000fffe thumb_func_end sub_803EDF0 thumb_func_start sub_803EF90 sub_803EF90: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x58 str r0, [sp, 0x48] lsls r1, 24 lsrs r5, r1, 24 ldr r0, _0803F060 ldr r0, [r0] adds r0, 0x18 mov r8, r0 ldr r0, _0803F064 ldr r1, [r0] ldr r0, [r1, 0x4] movs r2, 0x92 lsls r2, 1 adds r0, r2 str r0, [sp, 0x24] ldr r0, [r1, 0x4] movs r3, 0x82 lsls r3, 1 adds r0, r3 str r0, [sp, 0x28] ldr r0, [r1, 0x4] adds r0, 0xE4 str r0, [sp, 0x2C] ldr r0, [r1, 0x4] adds r0, 0xC4 str r0, [sp, 0x30] ldr r0, [r1, 0x4] adds r0, 0xA4 str r0, [sp, 0x34] ldr r0, [r1, 0x4] adds r0, 0x84 str r0, [sp, 0x38] ldr r0, [r1, 0x4] adds r0, 0x64 str r0, [sp, 0x3C] ldr r0, [r1, 0x4] adds r0, 0x44 str r0, [sp, 0x40] ldr r0, [r1, 0x4] adds r0, 0x24 str r0, [sp, 0x44] add r4, sp, 0x24 mov r0, sp adds r1, r4, 0 movs r2, 0x24 bl memcpy movs r1, 0 movs r6, 0x3 mov r0, r8 _0803EFFE: stm r0!, {r1} stm r0!, {r1} stm r0!, {r1} stm r0!, {r1} stm r0!, {r1} stm r0!, {r1} stm r0!, {r1} stm r0!, {r1} subs r6, 0x1 cmp r6, 0 bge _0803EFFE ldr r0, _0803F068 ldr r1, [sp, 0x48] cmp r1, r0 bne _0803F0A6 adds r0, r4, 0 ldr r1, _0803F06C ldm r1!, {r2,r3,r5} stm r0!, {r2,r3,r5} ldr r1, [r1] str r1, [r0] movs r5, 0 movs r2, 0 mov r12, r4 movs r0, 0x20 mov r10, r0 _0803F032: mov r3, r8 ldr r0, _0803F064 ldr r1, [r0] lsls r0, r2, 2 add r0, r12 ldr r0, [r0] lsls r0, 5 adds r0, 0x4 ldr r1, [r1, 0x4] adds r4, r1, r0 movs r1, 0x18 adds r1, r5 mov r9, r1 adds r2, 0x1 str r2, [sp, 0x54] mov r2, r10 subs r7, r2, r5 movs r6, 0x7 _0803F056: cmp r5, 0 bne _0803F070 movs r1, 0 ldr r2, [r4] b _0803F07A .align 2, 0 _0803F060: .4byte gUnknown_203B418 _0803F064: .4byte gUnknown_202EC9C _0803F068: .4byte 0x0000270f _0803F06C: .4byte gUnknown_80F6478 _0803F070: ldr r0, [r4] adds r1, r0, 0 lsrs r1, r7 adds r2, r0, 0 lsls r2, r5 _0803F07A: adds r4, 0x4 ldr r0, [r3] orrs r0, r2 str r0, [r3] ldr r0, [r3, 0x20] orrs r0, r1 str r0, [r3, 0x20] adds r3, 0x4 subs r6, 0x1 cmp r6, 0 bge _0803F056 mov r5, r9 cmp r5, 0x1F ble _0803F09C subs r5, 0x20 movs r3, 0x20 add r8, r3 _0803F09C: ldr r2, [sp, 0x54] cmp r2, 0x3 ble _0803F032 movs r0, 0x4 b _0803F26A _0803F0A6: ldr r0, _0803F0D8 ldr r1, [sp, 0x48] cmp r1, r0 ble _0803F0B0 str r0, [sp, 0x48] _0803F0B0: ldr r0, _0803F0DC ldr r2, [sp, 0x48] cmp r2, r0 bge _0803F0BA str r0, [sp, 0x48] _0803F0BA: ldr r1, _0803F0E0 ldr r0, [r1] ldr r0, [r0, 0x4] movs r3, 0xC2 lsls r3, 1 adds r2, r0, r3 cmp r5, 0 beq _0803F0F4 ldr r5, [sp, 0x48] cmp r5, 0 ble _0803F0E4 movs r1, 0xA2 lsls r1, 1 adds r2, r0, r1 b _0803F0F4 .align 2, 0 _0803F0D8: .4byte 0x000003e7 _0803F0DC: .4byte 0xfffffc19 _0803F0E0: .4byte gUnknown_202EC9C _0803F0E4: ldr r3, [sp, 0x48] cmp r3, 0 bge _0803F0F4 movs r5, 0xB2 lsls r5, 1 adds r2, r0, r5 negs r3, r3 str r3, [sp, 0x48] _0803F0F4: ldm r2!, {r0} mov r1, r8 str r0, [r1] ldm r2!, {r0} str r0, [r1, 0x4] ldm r2!, {r0} str r0, [r1, 0x8] ldm r2!, {r0} str r0, [r1, 0xC] ldm r2!, {r0} str r0, [r1, 0x10] ldm r2!, {r0} str r0, [r1, 0x14] ldm r2!, {r0} str r0, [r1, 0x18] ldr r0, [r2] str r0, [r1, 0x1C] movs r5, 0x18 movs r2, 0x1 str r2, [sp, 0x4C] movs r3, 0 str r3, [sp, 0x50] movs r2, 0 _0803F122: movs r0, 0 mov r10, r0 adds r1, r2, 0x1 str r1, [sp, 0x54] lsls r0, r2, 3 adds r0, r2 lsls r0, 2 mov r1, sp ldr r2, _0803F15C adds r7, r0, r2 _0803F136: ldr r0, [r7] ldr r3, [sp, 0x48] cmp r0, r3 bgt _0803F1A2 ldr r4, [r1] mov r2, r8 movs r0, 0x18 adds r0, r5 mov r9, r0 movs r1, 0x20 subs r1, r5 mov r12, r1 movs r6, 0x7 _0803F150: cmp r5, 0 bne _0803F160 movs r3, 0 ldr r1, [r4] b _0803F16C .align 2, 0 _0803F15C: .4byte gUnknown_80F6430 _0803F160: ldr r0, [r4] adds r3, r0, 0 mov r1, r12 lsrs r3, r1 adds r1, r0, 0 lsls r1, r5 _0803F16C: adds r4, 0x4 ldr r0, [r2] orrs r0, r1 str r0, [r2] ldr r0, [r2, 0x20] orrs r0, r3 str r0, [r2, 0x20] adds r2, 0x4 movs r3, 0x1 str r3, [sp, 0x50] subs r6, 0x1 cmp r6, 0 bge _0803F150 mov r5, r9 cmp r5, 0x1F ble _0803F192 subs r5, 0x20 movs r0, 0x20 add r8, r0 _0803F192: ldr r0, [r7] ldr r1, [sp, 0x48] subs r1, r0 str r1, [sp, 0x48] ldr r2, [sp, 0x4C] adds r2, 0x1 str r2, [sp, 0x4C] b _0803F1B0 _0803F1A2: adds r1, 0x4 adds r7, 0x4 movs r3, 0x1 add r10, r3 mov r0, r10 cmp r0, 0x8 ble _0803F136 _0803F1B0: mov r1, r10 cmp r1, 0x9 bne _0803F212 ldr r2, [sp, 0x50] cmp r2, 0 beq _0803F212 ldr r3, _0803F1DC ldr r0, [r3] ldr r0, [r0, 0x4] adds r4, r0, 0x4 mov r2, r8 movs r0, 0x18 adds r0, r5 mov r9, r0 movs r1, 0x20 subs r7, r1, r5 movs r6, 0x7 _0803F1D2: cmp r5, 0 bne _0803F1E0 movs r3, 0 ldr r1, [r4] b _0803F1EA .align 2, 0 _0803F1DC: .4byte gUnknown_202EC9C _0803F1E0: ldr r0, [r4] adds r3, r0, 0 lsrs r3, r7 adds r1, r0, 0 lsls r1, r5 _0803F1EA: adds r4, 0x4 ldr r0, [r2] orrs r0, r1 str r0, [r2] ldr r0, [r2, 0x20] orrs r0, r3 str r0, [r2, 0x20] adds r2, 0x4 subs r6, 0x1 cmp r6, 0 bge _0803F1D2 mov r5, r9 cmp r5, 0x1F ble _0803F20C subs r5, 0x20 movs r2, 0x20 add r8, r2 _0803F20C: ldr r3, [sp, 0x4C] adds r3, 0x1 str r3, [sp, 0x4C] _0803F212: ldr r2, [sp, 0x54] cmp r2, 0x1 ble _0803F122 ldr r0, _0803F240 ldr r1, [r0] ldr r2, [sp, 0x48] lsls r0, r2, 5 adds r0, 0x4 ldr r1, [r1, 0x4] adds r1, r0 mov r3, r8 ldr r0, [sp, 0x4C] adds r0, 0x1 mov r8, r0 movs r0, 0x20 subs r7, r0, r5 movs r6, 0x7 _0803F234: cmp r5, 0 bne _0803F244 movs r4, 0 ldr r2, [r1] b _0803F24E .align 2, 0 _0803F240: .4byte gUnknown_202EC9C _0803F244: ldr r0, [r1] adds r4, r0, 0 lsrs r4, r7 adds r2, r0, 0 lsls r2, r5 _0803F24E: adds r1, 0x4 ldr r0, [r3] orrs r0, r2 str r0, [r3] ldr r0, [r3, 0x20] orrs r0, r4 str r0, [r3, 0x20] adds r3, 0x4 subs r6, 0x1 cmp r6, 0 bge _0803F234 mov r1, r8 str r1, [sp, 0x4C] adds r0, r1, 0 _0803F26A: add sp, 0x58 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_803EF90 thumb_func_start sub_803F27C sub_803F27C: push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r0, 24 adds r7, r0, 0 ldr r0, _0803F360 mov r8, r0 ldr r4, [r0] ldr r2, _0803F364 adds r1, r4, r2 movs r2, 0 movs r3, 0 strh r3, [r1, 0x8] strh r3, [r1, 0xA] strh r3, [r1] strh r3, [r1, 0x2] strh r3, [r1, 0xC] strh r3, [r1, 0xE] strh r3, [r1, 0x4] strh r3, [r1, 0x6] str r3, [r1, 0x14] ldr r5, _0803F368 adds r0, r4, r5 strb r2, [r0] ldr r6, _0803F36C adds r0, r4, r6 movs r5, 0x1 strb r5, [r0] adds r6, 0x1 adds r0, r4, r6 strb r5, [r0] adds r6, 0x1 adds r0, r4, r6 strb r2, [r0] str r3, [r1, 0x18] str r3, [r1, 0x1C] cmp r7, 0 bne _0803F2FA subs r6, 0xF adds r0, r4, r6 strb r2, [r0] adds r6, 0x6 adds r0, r4, r6 strb r2, [r0] subs r6, 0x1 adds r0, r4, r6 strb r2, [r0] subs r6, 0x2 adds r0, r4, r6 strb r2, [r0] adds r6, 0x4 adds r0, r4, r6 strb r2, [r0] subs r6, 0x3 adds r0, r4, r6 strb r2, [r0] subs r6, 0x3 adds r0, r4, r6 strb r2, [r0] adds r6, 0x1 adds r0, r4, r6 strb r2, [r0] _0803F2FA: str r3, [r1, 0x10] ldr r1, _0803F370 adds r0, r4, r1 movs r6, 0x3 strb r6, [r0] adds r1, 0x12 adds r0, r4, r1 strb r2, [r0] subs r1, 0x8 adds r0, r4, r1 strb r2, [r0] adds r1, 0x9 adds r0, r4, r1 strb r2, [r0] adds r1, 0x1 adds r0, r4, r1 strb r2, [r0] subs r1, 0x8 adds r0, r4, r1 strb r2, [r0] ldr r2, _0803F374 adds r0, r4, r2 strb r5, [r0] bl sub_803F38C ldr r1, _0803F378 ldr r0, _0803F37C str r0, [r1] cmp r7, 0 bne _0803F354 mov r1, r8 ldr r0, [r1] ldr r2, _0803F380 adds r0, r2 ldrb r1, [r0] adds r0, r6, 0 ands r0, r1 ldr r6, _0803F384 adds r1, r4, r6 strb r0, [r1] cmp r0, 0 bne _0803F354 ldr r1, _0803F388 adds r0, r4, r1 strb r5, [r0] _0803F354: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803F360: .4byte gUnknown_203B418 _0803F364: .4byte 0x000181e8 _0803F368: .4byte 0x00018216 _0803F36C: .4byte 0x00018217 _0803F370: .4byte 0x00018208 _0803F374: .4byte 0x00018215 _0803F378: .4byte gUnknown_202EDFC _0803F37C: .4byte 0x0000ffff _0803F380: .4byte 0x0001c58a _0803F384: .4byte 0x00018209 _0803F388: .4byte 0x0001820c thumb_func_end sub_803F27C thumb_func_start sub_803F38C sub_803F38C: push {r4-r6,lr} mov r6, r8 push {r6} ldr r0, _0803F410 ldr r1, [r0] ldr r0, _0803F414 adds r2, r1, r0 ldr r0, _0803F418 strh r0, [r2, 0x3A] movs r0, 0x1 negs r0, r0 strh r0, [r2, 0x3C] strh r0, [r2, 0x3E] ldr r0, _0803F41C adds r1, r0 movs r0, 0x1 negs r0, r0 strh r0, [r1] strh r0, [r2, 0x36] strh r0, [r2, 0x38] ldr r0, _0803F420 ldr r0, [r0] ldrb r0, [r0, 0xB] negs r4, r0 orrs r4, r0 asrs r4, 31 movs r0, 0x80 lsls r0, 1 ands r4, r0 ldr r5, _0803F424 adds r0, r4, r5 mov r8, r0 movs r0, 0xFD mov r1, r8 bl SetBGPaletteBufferColorArray adds r6, r5, 0x4 adds r6, r4, r6 movs r0, 0xFE adds r1, r6, 0 bl SetBGPaletteBufferColorArray adds r5, 0x8 adds r4, r5 movs r0, 0xFF adds r1, r4, 0 bl SetBGPaletteBufferColorArray movs r0, 0xFD mov r1, r8 bl nullsub_5 movs r0, 0xFE adds r1, r6, 0 bl nullsub_5 movs r0, 0xFF adds r1, r4, 0 bl nullsub_5 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0803F410: .4byte gUnknown_203B418 _0803F414: .4byte 0x000181e8 _0803F418: .4byte 0x0000ffff _0803F41C: .4byte 0x00018228 _0803F420: .4byte gUnknown_203B46C _0803F424: .4byte gUnknown_202D06C thumb_func_end sub_803F38C thumb_func_start sub_803F428 sub_803F428: push {r4-r6,lr} adds r4, r0, 0 ldr r0, _0803F484 ldr r3, [r0] ldr r0, _0803F488 adds r2, r3, r0 ldr r5, [r2, 0x10] movs r6, 0 ldrsh r1, [r2, r6] movs r6, 0 ldrsh r0, [r4, r6] subs r1, r0 cmp r1, 0 bge _0803F446 negs r1, r1 _0803F446: cmp r1, 0x6 bgt _0803F498 movs r0, 0x2 ldrsh r1, [r2, r0] movs r6, 0x2 ldrsh r0, [r4, r6] subs r1, r0 cmp r1, 0 bge _0803F45A negs r1, r1 _0803F45A: cmp r1, 0x5 bgt _0803F498 ldr r1, _0803F48C adds r0, r3, r1 ldrb r0, [r0] cmp r0, 0 bne _0803F494 ldr r6, _0803F490 adds r0, r3, r6 ldrb r0, [r0] cmp r0, 0 bne _0803F494 cmp r5, 0 beq _0803F494 adds r0, r2, 0 adds r1, r4, 0 bl sub_8083294 lsls r0, 24 lsrs r0, 24 b _0803F49A .align 2, 0 _0803F484: .4byte gUnknown_203B418 _0803F488: .4byte 0x000181e8 _0803F48C: .4byte 0x0001820b _0803F490: .4byte 0x0001820c _0803F494: movs r0, 0x1 b _0803F49A _0803F498: movs r0, 0 _0803F49A: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_803F428 thumb_func_start sub_803F4A0 sub_803F4A0: push {lr} adds r2, r0, 0 ldr r0, _0803F4B8 ldr r1, [r0] ldr r3, _0803F4BC adds r0, r1, r3 str r2, [r0, 0x10] cmp r2, 0 bne _0803F4C0 adds r3, 0x2E b _0803F4CA .align 2, 0 _0803F4B8: .4byte gUnknown_203B418 _0803F4BC: .4byte 0x000181e8 _0803F4C0: ldr r0, [r2, 0x70] ldrb r2, [r0, 0x7] cmp r2, 0 bne _0803F4D4 ldr r3, _0803F4D0 _0803F4CA: adds r0, r1, r3 strb r2, [r0] b _0803F4DC .align 2, 0 _0803F4D0: .4byte 0x00018216 _0803F4D4: ldr r0, _0803F4FC adds r1, r0 movs r0, 0x1 strb r0, [r1] _0803F4DC: movs r0, 0 bl sub_803F580 bl sub_803F38C ldr r0, _0803F500 ldr r0, [r0] ldr r1, _0803F504 adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _0803F4F8 bl sub_806CD90 _0803F4F8: pop {r0} bx r0 .align 2, 0 _0803F4FC: .4byte 0x00018216 _0803F500: .4byte gUnknown_203B418 _0803F504: .4byte 0x0001356c thumb_func_end sub_803F4A0 thumb_func_start sub_803F508 sub_803F508: push {r4,r5,lr} adds r3, r0, 0 ldr r0, _0803F520 ldr r1, [r0] ldr r0, _0803F524 adds r4, r1, r0 cmp r3, 0 bne _0803F52C ldr r2, _0803F528 adds r0, r1, r2 strb r3, [r0] b _0803F548 .align 2, 0 _0803F520: .4byte gUnknown_203B418 _0803F524: .4byte 0x000181e8 _0803F528: .4byte 0x00018216 _0803F52C: ldr r0, [r3, 0x70] ldrb r2, [r0, 0x7] cmp r2, 0 bne _0803F540 ldr r5, _0803F53C adds r0, r1, r5 strb r2, [r0] b _0803F548 .align 2, 0 _0803F53C: .4byte 0x00018216 _0803F540: ldr r0, _0803F574 adds r1, r0 movs r0, 0x1 strb r0, [r1] _0803F548: str r3, [r4, 0x10] movs r0, 0 bl sub_803F580 bl sub_803F38C ldr r0, _0803F578 ldr r0, [r0] ldr r1, _0803F57C adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _0803F566 bl sub_806CD90 _0803F566: bl sub_8049ED4 bl sub_8040A84 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0803F574: .4byte 0x00018216 _0803F578: .4byte gUnknown_203B418 _0803F57C: .4byte 0x0001356c thumb_func_end sub_803F508 thumb_func_start sub_803F580 sub_803F580: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r0, 24 mov r9, r0 ldr r0, _0803F600 ldr r4, [r0] ldr r0, _0803F604 adds r5, r4, r0 ldr r6, [r5, 0x10] cmp r6, 0 bne _0803F59E b _0803F7A0 _0803F59E: adds r0, r6, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _0803F5AC b _0803F7A0 _0803F5AC: ldr r7, [r6, 0x70] ldr r0, [r5, 0x8] str r0, [r5, 0xC] ldr r0, [r5] str r0, [r5, 0x4] ldrh r0, [r6, 0x4] strh r0, [r5] ldrh r0, [r6, 0x6] strh r0, [r5, 0x2] ldr r0, [r6, 0xC] cmp r0, 0 bge _0803F5C6 adds r0, 0xFF _0803F5C6: asrs r0, 8 subs r0, 0x78 strh r0, [r5, 0x8] ldr r0, [r6, 0x10] cmp r0, 0 bge _0803F5D4 adds r0, 0xFF _0803F5D4: asrs r0, 8 subs r0, 0x60 strh r0, [r5, 0xA] adds r0, r6, 0 movs r1, 0x11 bl sub_8046CB0 lsls r0, 24 cmp r0, 0 beq _0803F610 ldrb r0, [r7, 0x7] cmp r0, 0 beq _0803F610 ldr r1, _0803F608 adds r0, r4, r1 movs r1, 0x1 strb r1, [r0] ldr r2, _0803F60C adds r0, r4, r2 strb r1, [r0] b _0803F626 .align 2, 0 _0803F600: .4byte gUnknown_203B418 _0803F604: .4byte 0x000181e8 _0803F608: .4byte 0x0001820d _0803F60C: .4byte 0x0001820e _0803F610: adds r0, r7, 0 adds r0, 0xF0 ldrb r0, [r0] adds r1, r5, 0 adds r1, 0x25 strb r0, [r1] adds r0, r7, 0 adds r0, 0xF1 ldrb r0, [r0] adds r1, 0x1 strb r0, [r1] _0803F626: adds r0, r7, 0 adds r0, 0xF2 ldrb r0, [r0] adds r1, r5, 0 adds r1, 0x29 strb r0, [r1] subs r1, 0x7 ldrb r0, [r1] mov r8, r0 adds r0, r5, 0 adds r0, 0x2C ldrb r2, [r0] adds r4, r1, 0 cmp r2, 0 bne _0803F670 adds r0, r7, 0 adds r0, 0xE8 ldrb r1, [r0] adds r7, r0, 0 cmp r1, 0x1 bne _0803F656 strb r1, [r4] movs r1, 0xE b _0803F65A _0803F656: strb r2, [r4] movs r1, 0 _0803F65A: ldr r2, _0803F66C ldr r0, [r2] cmp r0, r1 beq _0803F678 str r1, [r2] adds r0, r1, 0 bl SetBGOBJEnableFlags b _0803F678 .align 2, 0 _0803F66C: .4byte gUnknown_202EDFC _0803F670: ldr r1, _0803F698 ldr r0, _0803F69C str r0, [r1] adds r7, 0xE8 _0803F678: ldrb r4, [r4] cmp r8, r4 beq _0803F684 movs r0, 0 bl sub_8041888 _0803F684: adds r0, r5, 0 adds r0, 0x28 ldrb r1, [r0] mov r8, r1 ldrb r1, [r7] adds r2, r0, 0 cmp r1, 0x2 bne _0803F6A0 movs r0, 0x1 b _0803F6A2 .align 2, 0 _0803F698: .4byte gUnknown_202EDFC _0803F69C: .4byte 0x0000ffff _0803F6A0: movs r0, 0 _0803F6A2: strb r0, [r2] ldrb r2, [r2] cmp r8, r2 beq _0803F6B4 bl sub_806CC70 movs r0, 0 bl sub_8041888 _0803F6B4: adds r4, r5, 0 adds r4, 0x27 ldrb r2, [r4] mov r8, r2 adds r0, r6, 0 bl sub_8071884 lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _0803F6CC movs r0, 0x1 _0803F6CC: strb r0, [r4] ldrb r4, [r4] cmp r8, r4 beq _0803F6E2 bl sub_8049ED4 bl sub_8040A84 movs r0, 0 bl sub_8041888 _0803F6E2: mov r0, r9 cmp r0, 0 beq _0803F76A adds r0, r5, 0 adds r0, 0x2B ldrb r1, [r0] adds r4, r0, 0 cmp r1, 0 bne _0803F76A movs r2, 0xC ldrsh r1, [r5, r2] movs r2, 0x8 ldrsh r0, [r5, r2] subs r1, r0 cmp r1, 0 bge _0803F704 negs r1, r1 _0803F704: cmp r1, 0x7 bgt _0803F71C movs r0, 0xE ldrsh r1, [r5, r0] movs r2, 0xA ldrsh r0, [r5, r2] subs r1, r0 cmp r1, 0 bge _0803F718 negs r1, r1 _0803F718: cmp r1, 0x7 ble _0803F726 _0803F71C: bl sub_8049ED4 movs r0, 0x1 strb r0, [r4] b _0803F76A _0803F726: movs r0, 0xC ldrsh r1, [r5, r0] movs r2, 0x8 ldrsh r0, [r5, r2] cmp r1, r0 bge _0803F73C movs r0, 0xF0 movs r1, 0 bl sub_804A1F0 b _0803F748 _0803F73C: cmp r1, r0 ble _0803F748 movs r0, 0 movs r1, 0 bl sub_804A1F0 _0803F748: movs r0, 0xE ldrsh r1, [r5, r0] movs r2, 0xA ldrsh r0, [r5, r2] cmp r1, r0 bge _0803F75E movs r0, 0 movs r1, 0xA0 bl sub_804A49C b _0803F76A _0803F75E: cmp r1, r0 ble _0803F76A movs r0, 0 movs r1, 0 bl sub_804A49C _0803F76A: ldr r1, [r5] ldr r0, [r5, 0x4] cmp r1, r0 beq _0803F7A0 movs r5, 0 _0803F774: ldr r0, _0803F7B4 ldr r0, [r0] lsls r1, r5, 2 ldr r2, _0803F7B8 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0803F79A movs r1, 0x4 ldrsh r0, [r4, r1] movs r2, 0x6 ldrsh r1, [r4, r2] bl sub_80402AC _0803F79A: adds r5, 0x1 cmp r5, 0x13 ble _0803F774 _0803F7A0: bl sub_80400D4 bl sub_803F7BC pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803F7B4: .4byte gUnknown_203B418 _0803F7B8: .4byte 0x000135cc thumb_func_end sub_803F580 thumb_func_start sub_803F7BC sub_803F7BC: push {r4-r6,lr} sub sp, 0x10 ldr r6, _0803F800 ldr r4, [r6] ldr r0, _0803F804 adds r5, r4, r0 movs r1, 0 ldrsh r0, [r5, r1] movs r2, 0x2 ldrsh r1, [r5, r2] bl sub_804954C ldrb r1, [r0, 0x9] ldr r2, _0803F808 adds r0, r4, r2 ldrb r0, [r0] cmp r0, 0 bne _0803F7F4 adds r2, 0x1 adds r0, r4, r2 ldrb r0, [r0] cmp r0, 0 bne _0803F7F4 adds r2, 0xB adds r0, r4, r2 ldrb r0, [r0] cmp r0, 0 beq _0803F80C _0803F7F4: movs r0, 0 movs r1, 0 bl sub_8005838 b _0803F86A .align 2, 0 _0803F800: .4byte gUnknown_203B418 _0803F804: .4byte 0x000181e8 _0803F808: .4byte 0x0001820b _0803F80C: cmp r1, 0xFF bne _0803F82C ldr r1, _0803F828 adds r0, r4, r1 ldrb r0, [r0] movs r1, 0x2 cmp r0, 0x2 bne _0803F81E movs r1, 0x1 _0803F81E: movs r0, 0 bl sub_8005838 b _0803F86A .align 2, 0 _0803F828: .4byte 0x00018209 _0803F82C: lsls r0, r1, 3 subs r0, r1 lsls r0, 2 ldr r2, _0803F874 adds r0, r2 ldr r2, [r6] adds r2, r0 movs r0, 0x8 ldrsh r1, [r5, r0] ldr r0, [r2, 0xC] subs r0, r1 str r0, [sp] movs r0, 0xA ldrsh r1, [r5, r0] ldr r0, [r2, 0x10] subs r0, r1 str r0, [sp, 0x4] movs r0, 0x8 ldrsh r1, [r5, r0] ldr r0, [r2, 0x14] subs r0, r1 str r0, [sp, 0x8] movs r0, 0xA ldrsh r1, [r5, r0] ldr r0, [r2, 0x18] subs r0, r1 str r0, [sp, 0xC] mov r0, sp movs r1, 0x3 bl sub_8005838 _0803F86A: add sp, 0x10 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0803F874: .4byte 0x000104c4 thumb_func_end sub_803F7BC thumb_func_start sub_803F878 sub_803F878: push {r4-r7,lr} mov r7, r8 push {r7} adds r2, r0, 0 adds r6, r1, 0 ldr r0, _0803F92C ldr r7, [r0] ldr r0, _0803F930 adds r5, r7, r0 ldr r0, [r5, 0x8] str r0, [r5, 0xC] ldr r0, [r5] str r0, [r5, 0x4] adds r0, r2, 0 cmp r2, 0 bge _0803F89A adds r0, 0xFF _0803F89A: asrs r0, 8 subs r0, 0x78 movs r1, 0 mov r8, r1 strh r0, [r5, 0x8] adds r0, r6, 0 cmp r6, 0 bge _0803F8AC adds r0, 0xFF _0803F8AC: asrs r0, 8 subs r0, 0x60 strh r0, [r5, 0xA] movs r4, 0xC0 lsls r4, 5 adds r0, r2, 0 adds r1, r4, 0 bl __divsi3 strh r0, [r5] adds r0, r6, 0 adds r1, r4, 0 bl __divsi3 strh r0, [r5, 0x2] ldr r2, _0803F934 adds r0, r7, r2 mov r1, r8 strb r1, [r0] adds r2, 0x1 adds r0, r7, r2 strb r1, [r0] ldr r1, _0803F938 adds r0, r7, r1 mov r2, r8 strb r2, [r0] adds r1, 0x5 adds r0, r7, r1 strb r2, [r0] ldr r1, _0803F93C ldr r0, [r1] cmp r0, 0 beq _0803F8F6 movs r0, 0 str r0, [r1] bl SetBGOBJEnableFlags _0803F8F6: movs r2, 0xC ldrsh r1, [r5, r2] movs r2, 0x8 ldrsh r0, [r5, r2] subs r1, r0 cmp r1, 0 bge _0803F906 negs r1, r1 _0803F906: cmp r1, 0x7 bgt _0803F91E movs r0, 0xE ldrsh r1, [r5, r0] movs r2, 0xA ldrsh r0, [r5, r2] subs r1, r0 cmp r1, 0 bge _0803F91A negs r1, r1 _0803F91A: cmp r1, 0x7 ble _0803F940 _0803F91E: bl sub_8049ED4 adds r1, r5, 0 adds r1, 0x2B movs r0, 0x1 strb r0, [r1] b _0803F984 .align 2, 0 _0803F92C: .4byte gUnknown_203B418 _0803F930: .4byte 0x000181e8 _0803F934: .4byte 0x0001820d _0803F938: .4byte 0x00018211 _0803F93C: .4byte gUnknown_202EDFC _0803F940: movs r0, 0xC ldrsh r1, [r5, r0] movs r2, 0x8 ldrsh r0, [r5, r2] cmp r1, r0 bge _0803F956 movs r0, 0xF0 movs r1, 0 bl sub_804A1F0 b _0803F962 _0803F956: cmp r1, r0 ble _0803F962 movs r0, 0 movs r1, 0 bl sub_804A1F0 _0803F962: movs r0, 0xE ldrsh r1, [r5, r0] movs r2, 0xA ldrsh r0, [r5, r2] cmp r1, r0 bge _0803F978 movs r0, 0 movs r1, 0xA0 bl sub_804A49C b _0803F984 _0803F978: cmp r1, r0 ble _0803F984 movs r0, 0 movs r1, 0 bl sub_804A49C _0803F984: bl sub_803F7BC pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_803F878 thumb_func_start sub_803F994 sub_803F994: ldr r0, _0803F9A8 ldr r0, [r0] ldr r1, _0803F9AC adds r0, r1 movs r1, 0x8 ldrsh r0, [r0, r1] adds r0, 0x78 lsls r0, 8 bx lr .align 2, 0 _0803F9A8: .4byte gUnknown_203B418 _0803F9AC: .4byte 0x000181e8 thumb_func_end sub_803F994 thumb_func_start sub_803F9B0 sub_803F9B0: ldr r0, _0803F9C4 ldr r0, [r0] ldr r1, _0803F9C8 adds r0, r1 movs r1, 0xA ldrsh r0, [r0, r1] adds r0, 0x60 lsls r0, 8 bx lr .align 2, 0 _0803F9C4: .4byte gUnknown_203B418 _0803F9C8: .4byte 0x000181e8 thumb_func_end sub_803F9B0 thumb_func_start sub_803F9CC sub_803F9CC: push {r4,r5,lr} ldr r0, _0803FA24 ldr r1, [r0] ldr r2, _0803FA28 adds r0, r1, r2 ldr r4, [r0] movs r5, 0 ldr r2, _0803FA2C adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 bne _0803FA0C ldr r2, _0803FA30 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 bne _0803FA0C bl sub_800EC74 lsls r0, 24 cmp r0, 0 bne _0803FA0C cmp r4, 0 beq _0803FA08 adds r0, r4, 0 bl sub_80450F8 cmp r0, 0x1 bne _0803FA08 movs r5, 0x1 _0803FA08: cmp r5, 0 bne _0803FA38 _0803FA0C: ldr r0, _0803FA34 movs r2, 0 adds r0, 0x2 movs r1, 0x1C _0803FA14: strh r2, [r0] adds r0, 0x2 subs r1, 0x1 cmp r1, 0 bge _0803FA14 bl sub_803F38C b _0803FA3C .align 2, 0 _0803FA24: .4byte gUnknown_203B418 _0803FA28: .4byte 0x000181f8 _0803FA2C: .4byte 0x0001356c _0803FA30: .4byte 0x00018218 _0803FA34: .4byte gUnknown_202B038 _0803FA38: bl sub_803FB74 _0803FA3C: ldr r1, _0803FA48 movs r0, 0x1 strb r0, [r1] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0803FA48: .4byte gUnknown_20274A5 thumb_func_end sub_803F9CC thumb_func_start sub_803FA4C sub_803FA4C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x28 adds r4, r0, 0 mov r8, r1 lsls r2, 24 lsrs r2, 24 mov r12, r2 ldr r0, _0803FB4C ldr r3, [r0] ldr r0, _0803FB50 adds r0, r3, r0 str r0, [sp, 0x24] ldr r7, _0803FB54 mov r1, sp ldr r0, _0803FB58 ldm r0!, {r2,r5,r6} stm r1!, {r2,r5,r6} ldm r0!, {r2,r5,r6} stm r1!, {r2,r5,r6} ldm r0!, {r2,r5,r6} stm r1!, {r2,r5,r6} ldr r0, _0803FB5C mov r10, r0 ldr r1, _0803FB60 mov r9, r1 ldr r2, [sp, 0x24] movs r5, 0x3E ldrsh r0, [r2, r5] cmp r4, r0 bne _0803FA9C ldr r6, _0803FB64 adds r0, r3, r6 movs r1, 0 ldrsh r0, [r0, r1] cmp r8, r0 beq _0803FB3A _0803FA9C: mov r2, r12 cmp r2, 0 bne _0803FAA6 ldr r5, _0803FB68 mov r9, r5 _0803FAA6: ldr r6, [sp, 0x24] strh r4, [r6, 0x3E] ldr r1, _0803FB64 adds r0, r3, r1 mov r2, r8 strh r2, [r0] mov r5, r8 cmp r5, 0x5F ble _0803FAC8 movs r5, 0x60 lsls r0, r4, 1 adds r0, r4 lsls r0, 5 mov r1, r8 bl __divsi3 adds r4, r0, 0 _0803FAC8: movs r3, 0 mov r8, r3 movs r6, 0x58 mov r12, r6 _0803FAD0: ldr r6, _0803FB6C adds r2, r4, 0 adds r0, r5, 0 cmp r4, 0x7 ble _0803FADC movs r2, 0x8 _0803FADC: cmp r5, 0x7 ble _0803FAE2 movs r0, 0x8 _0803FAE2: lsls r0, 2 mov r3, sp adds r1, r3, r0 lsls r0, r2, 2 add r0, sp ldr r2, [r0] ldr r3, [r1] adds r1, r3, 0 bics r1, r2 mov r0, r10 ands r1, r0 mov r0, r9 ands r0, r2 orrs r0, r1 ands r6, r3 mov r1, r8 stm r7!, {r1} stm r7!, {r6} stm r7!, {r0} stm r7!, {r0} stm r7!, {r0} stm r7!, {r0} stm r7!, {r6} stm r7!, {r1} subs r4, 0x8 subs r5, 0x8 cmp r4, 0 bge _0803FB1C movs r4, 0 _0803FB1C: cmp r5, 0 bge _0803FB22 movs r5, 0 _0803FB22: movs r2, 0x8 negs r2, r2 add r12, r2 mov r3, r12 cmp r3, 0 bge _0803FAD0 ldr r0, _0803FB70 movs r2, 0xC0 lsls r2, 1 ldr r1, _0803FB54 bl sub_80098BC _0803FB3A: add sp, 0x28 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803FB4C: .4byte gUnknown_203B418 _0803FB50: .4byte 0x000181e8 _0803FB54: .4byte gUnknown_3001018 _0803FB58: .4byte gUnknown_80F6490 _0803FB5C: .4byte 0x22222222 _0803FB60: .4byte 0x44444444 _0803FB64: .4byte 0x00018228 _0803FB68: .4byte 0x55555555 _0803FB6C: .4byte 0x77777777 _0803FB70: .4byte 0x06005980 thumb_func_end sub_803FA4C thumb_func_start sub_803FB74 sub_803FB74: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 ldr r0, _0803FBE8 ldr r0, [r0] ldr r1, _0803FBEC adds r7, r0, r1 movs r4, 0 movs r2, 0 str r2, [sp] ldr r0, [r7, 0x10] ldr r0, [r0, 0x70] movs r1, 0xE ldrsh r3, [r0, r1] mov r9, r3 movs r3, 0x10 ldrsh r2, [r0, r3] mov r8, r2 ldrb r1, [r0, 0x9] mov r10, r1 movs r2, 0xE ldrsh r1, [r0, r2] cmp r1, 0 ble _0803FBBA mov r0, r8 cmp r0, 0 bge _0803FBB2 adds r0, 0x3 _0803FBB2: asrs r0, 2 cmp r1, r0 bgt _0803FBBA movs r4, 0x1 _0803FBBA: ldr r0, [r7, 0x10] ldr r0, [r0, 0x70] movs r3, 0x9E lsls r3, 1 adds r0, r3 ldr r0, [r0] bl sub_8094450 cmp r0, 0 bne _0803FBD2 movs r0, 0x1 str r0, [sp] _0803FBD2: cmp r4, 0 beq _0803FBF4 ldr r0, _0803FBF0 ldr r0, [r0] movs r1, 0x10 ands r0, r1 cmp r0, 0 beq _0803FBF4 movs r5, 0x20 movs r6, 0x20 b _0803FBF8 .align 2, 0 _0803FBE8: .4byte gUnknown_203B418 _0803FBEC: .4byte 0x000181e8 _0803FBF0: .4byte gUnknown_202EDCC _0803FBF4: movs r5, 0 movs r6, 0 _0803FBF8: ldr r1, [sp] cmp r1, 0 beq _0803FC0E ldr r0, _0803FC20 ldr r0, [r0] movs r1, 0x10 ands r0, r1 cmp r0, 0 beq _0803FC0E movs r5, 0x30 movs r6, 0x30 _0803FC0E: cmp r5, 0 bne _0803FC30 adds r0, r7, 0 adds r0, 0x2A ldrb r0, [r0] cmp r0, 0 beq _0803FC24 movs r5, 0x60 b _0803FC30 .align 2, 0 _0803FC20: .4byte gUnknown_202EDCC _0803FC24: ldr r0, _0803FCE4 ldr r0, [r0] ldrb r0, [r0, 0xB] cmp r0, 0 beq _0803FC30 movs r5, 0x40 _0803FC30: cmp r6, 0 bne _0803FC40 ldr r0, _0803FCE4 ldr r0, [r0] ldrb r0, [r0, 0xB] cmp r0, 0 beq _0803FC40 movs r6, 0x40 _0803FC40: movs r2, 0x36 ldrsh r0, [r7, r2] cmp r0, r5 beq _0803FC78 strh r5, [r7, 0x36] lsls r5, 2 ldr r4, _0803FCE8 adds r1, r5, r4 movs r0, 0xFC bl SetBGPaletteBufferColorArray adds r1, r4, 0x4 adds r1, r5, r1 movs r0, 0xFD bl SetBGPaletteBufferColorArray adds r1, r4, 0 adds r1, 0x8 adds r1, r5, r1 movs r0, 0xFE bl SetBGPaletteBufferColorArray adds r4, 0xC adds r5, r4 movs r0, 0xFF adds r1, r5, 0 bl SetBGPaletteBufferColorArray _0803FC78: movs r3, 0x38 ldrsh r0, [r7, r3] cmp r0, r6 beq _0803FCB0 strh r6, [r7, 0x38] lsls r5, r6, 2 ldr r4, _0803FCE8 adds r1, r5, r4 movs r0, 0xFC bl nullsub_5 adds r1, r4, 0x4 adds r1, r5, r1 movs r0, 0xFD bl nullsub_5 adds r1, r4, 0 adds r1, 0x8 adds r1, r5, r1 movs r0, 0xFE bl nullsub_5 adds r4, 0xC adds r5, r4 movs r0, 0xFF adds r1, r5, 0 bl nullsub_5 _0803FCB0: ldr r5, _0803FCEC ldr r0, _0803FCF0 ldr r2, [r0] ldr r0, _0803FCF4 adds r1, r2, r0 movs r3, 0x14 ldrsh r0, [r2, r3] ldrb r1, [r1] adds r6, r0, r1 movs r1, 0x3A ldrsh r0, [r7, r1] adds r4, r7, 0 adds r4, 0x2E cmp r0, r6 beq _0803FD3E strh r6, [r7, 0x3A] ldr r3, _0803FCF8 adds r0, r2, r3 ldrb r0, [r0] bl sub_80900C0 lsls r0, 24 cmp r0, 0 beq _0803FCFC movs r0, 0 b _0803FD00 .align 2, 0 _0803FCE4: .4byte gUnknown_203B46C _0803FCE8: .4byte gUnknown_202D068 _0803FCEC: .4byte gUnknown_202B038 _0803FCF0: .4byte gUnknown_203B418 _0803FCF4: .4byte 0x00000645 _0803FCF8: .4byte 0x00000644 _0803FCFC: ldr r1, _0803FD20 adds r0, r1, 0 _0803FD00: strh r0, [r5, 0x2] cmp r6, 0x9 bgt _0803FD28 adds r1, r5, 0x4 adds r4, r7, 0 adds r4, 0x2E ldrb r2, [r4] adds r0, r6, 0 movs r3, 0x1 bl sub_803FE30 ldr r2, _0803FD24 adds r0, r2, 0 strh r0, [r5, 0x6] b _0803FD3E .align 2, 0 _0803FD20: .4byte 0x0000f2be _0803FD24: .4byte 0x0000f2b8 _0803FD28: adds r1, r5, 0x4 adds r4, r7, 0 adds r4, 0x2E ldrb r2, [r4] adds r0, r6, 0 movs r3, 0 bl sub_803FE30 ldr r3, _0803FE10 adds r0, r3, 0 strh r0, [r5, 0x8] _0803FD3E: movs r1, 0x3C ldrsh r0, [r7, r1] cmp r0, r10 beq _0803FD64 mov r2, r10 strh r2, [r7, 0x3C] ldr r3, _0803FE14 adds r0, r3, 0 strh r0, [r5, 0xA] ldr r1, _0803FE18 adds r0, r1, 0 strh r0, [r5, 0xC] adds r1, r5, 0 adds r1, 0xE ldrb r2, [r4] mov r0, r10 movs r3, 0 bl sub_803FE30 _0803FD64: movs r2, 0x3E ldrsh r0, [r7, r2] cmp r0, r9 beq _0803FD84 ldr r3, _0803FE1C adds r0, r3, 0 strh r0, [r5, 0x12] ldr r1, _0803FE20 adds r0, r1, 0 strh r0, [r5, 0x14] adds r1, r5, 0 adds r1, 0x16 ldrb r2, [r4] mov r0, r9 bl sub_803FF18 _0803FD84: adds r6, r7, 0 adds r6, 0x40 movs r2, 0 ldrsh r0, [r6, r2] cmp r0, r8 beq _0803FDA2 ldr r3, _0803FE24 adds r0, r3, 0 strh r0, [r5, 0x1C] adds r1, r5, 0 adds r1, 0x1E ldrb r2, [r4] mov r0, r8 bl sub_803FF18 _0803FDA2: ldrb r2, [r4] mov r0, r9 mov r1, r8 bl sub_803FA4C mov r0, r8 strh r0, [r6] mov r1, r9 strh r1, [r7, 0x3E] mov r0, r8 cmp r0, 0 bge _0803FDBC adds r0, 0x7 _0803FDBC: asrs r1, r0, 3 adds r4, r7, 0 adds r4, 0x42 strh r1, [r4] movs r0, 0x7 mov r2, r8 ands r2, r0 cmp r2, 0 beq _0803FDD2 adds r0, r1, 0x1 strh r0, [r4] _0803FDD2: movs r3, 0 ldrsh r0, [r4, r3] cmp r0, 0xB ble _0803FDDE movs r0, 0xC strh r0, [r4] _0803FDDE: movs r1, 0 ldr r0, _0803FE28 movs r2, 0xB3 lsls r2, 2 adds r4, r2, 0 ldr r2, _0803FE2C adds r3, r2, 0 adds r2, r0, 0 adds r2, 0x24 _0803FDF0: adds r0, r1, r4 orrs r0, r3 strh r0, [r2] adds r2, 0x2 adds r1, 0x1 cmp r1, 0xB ble _0803FDF0 add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803FE10: .4byte 0x0000f2b8 _0803FE14: .4byte 0x0000f2b9 _0803FE18: .4byte 0x0000f2ba _0803FE1C: .4byte 0x0000f2bb _0803FE20: .4byte 0x0000f2bc _0803FE24: .4byte 0x0000f2bd _0803FE28: .4byte gUnknown_202B038 _0803FE2C: .4byte 0xfffff000 thumb_func_end sub_803FB74 thumb_func_start sub_803FE30 sub_803FE30: push {r4-r7,lr} mov r7, r8 push {r7} adds r5, r0, 0 adds r4, r1, 0 lsls r2, 24 lsrs r2, 24 adds r1, r2, 0 lsls r3, 24 lsrs r3, 24 mov r12, r3 movs r0, 0 cmp r2, 0 bne _0803FE4E movs r0, 0x37 _0803FE4E: cmp r5, 0x64 ble _0803FE70 cmp r2, 0 beq _0803FE60 ldr r1, _0803FE5C adds r0, r1, 0 b _0803FE64 .align 2, 0 _0803FE5C: .4byte 0x0000f291 _0803FE60: ldr r2, _0803FE6C adds r0, r2, 0 _0803FE64: strh r0, [r4] strh r0, [r4, 0x2] b _0803FF00 .align 2, 0 _0803FE6C: .4byte 0x0000f2c8 _0803FE70: cmp r5, 0x64 bne _0803FEBC ldr r1, _0803FE84 adds r0, r1, 0 strh r0, [r4] ldr r2, _0803FE88 adds r0, r2, 0 strh r0, [r4, 0x2] b _0803FF00 .align 2, 0 _0803FE84: .4byte 0x0000f294 _0803FE88: .4byte 0x0000f295 _0803FE8C: ldr r1, _0803FEB4 lsls r0, r6, 3 adds r0, r6 adds r0, r2 lsls r0, 1 adds r0, r1 ldrh r0, [r0] strh r0, [r4] subs r0, r5, r3 adds r0, r7 movs r1, 0x96 lsls r1, 2 adds r0, r1 ldr r2, _0803FEB8 adds r1, r2, 0 orrs r0, r1 mov r1, r8 strh r0, [r1] b _0803FF00 .align 2, 0 _0803FEB4: .4byte gUnknown_80F64D8 _0803FEB8: .4byte 0xfffff000 _0803FEBC: adds r2, r4, 0x2 mov r8, r2 adds r7, r0, 0 adds r7, 0x30 cmp r5, 0x9 ble _0803FEE2 movs r6, 0 cmp r1, 0 bne _0803FED0 movs r6, 0x1 _0803FED0: movs r2, 0 ldr r0, _0803FF0C _0803FED4: ldr r3, [r0] cmp r3, r5 ble _0803FE8C adds r0, 0x4 adds r2, 0x1 cmp r2, 0x8 ble _0803FED4 _0803FEE2: mov r0, r12 cmp r0, 0 bne _0803FEF0 ldr r1, _0803FF10 adds r0, r1, 0 strh r0, [r4] adds r4, 0x2 _0803FEF0: adds r0, r5, r7 movs r2, 0x96 lsls r2, 2 adds r0, r2 ldr r2, _0803FF14 adds r1, r2, 0 orrs r0, r1 strh r0, [r4] _0803FF00: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803FF0C: .4byte gUnknown_80F64B4 _0803FF10: .4byte 0x0000f278 _0803FF14: .4byte 0xfffff000 thumb_func_end sub_803FE30 thumb_func_start sub_803FF18 sub_803FF18: push {r4-r7,lr} mov r7, r8 push {r7} adds r5, r0, 0 adds r3, r1, 0 lsls r2, 24 lsrs r2, 24 movs r6, 0 cmp r2, 0 bne _0803FF2E movs r6, 0x1 _0803FF2E: movs r1, 0 cmp r2, 0 bne _0803FF36 movs r1, 0x37 _0803FF36: ldr r0, _0803FF54 cmp r5, r0 ble _0803FF7C ldr r0, _0803FF58 lsls r1, r6, 3 adds r1, r6 lsls r1, 1 adds r1, r0 ldrh r0, [r1] strh r0, [r3] adds r3, 0x2 strh r0, [r3] strh r0, [r3, 0x2] b _0804001A .align 2, 0 _0803FF54: .4byte 0x000003e7 _0803FF58: .4byte gUnknown_80F6544 _0803FF5C: ldr r1, _0803FF78 lsls r0, r6, 3 adds r0, r6 adds r0, r4 lsls r0, 1 adds r0, r1 ldrh r0, [r0] strh r0, [r3] adds r3, 0x2 subs r5, r2 mov r1, r8 lsls r0, r1, 24 lsrs r7, r0, 24 b _0803FF98 .align 2, 0 _0803FF78: .4byte gUnknown_80F6544 _0803FF7C: movs r7, 0x20 movs r4, 0 adds r1, 0x30 mov r8, r1 ldr r2, _0803FFC0 mov r12, r2 ldr r0, _0803FFC4 _0803FF8A: ldr r2, [r0] cmp r2, r5 ble _0803FF5C adds r0, 0x4 adds r4, 0x1 cmp r4, 0x8 ble _0803FF8A _0803FF98: cmp r4, 0x9 bne _0803FFAC movs r1, 0x96 lsls r1, 2 adds r0, r7, r1 ldr r2, _0803FFC8 adds r1, r2, 0 orrs r0, r1 strh r0, [r3] adds r3, 0x2 _0803FFAC: movs r4, 0 mov r0, r12 ldr r2, [r0] cmp r2, r5 bgt _0803FFD0 ldr r0, _0803FFCC lsls r1, r6, 3 adds r1, r6 b _0803FFE8 .align 2, 0 _0803FFC0: .4byte gUnknown_80F6520 _0803FFC4: .4byte gUnknown_80F64FC _0803FFC8: .4byte 0xfffff000 _0803FFCC: .4byte gUnknown_80F6544 _0803FFD0: adds r4, 0x1 cmp r4, 0x8 bgt _0803FFF4 lsls r0, r4, 2 add r0, r12 ldr r2, [r0] cmp r2, r5 bgt _0803FFD0 ldr r0, _08040024 lsls r1, r6, 3 adds r1, r6 adds r1, r4 _0803FFE8: lsls r1, 1 adds r1, r0 ldrh r0, [r1] strh r0, [r3] adds r3, 0x2 subs r5, r2 _0803FFF4: cmp r4, 0x9 bne _08040008 movs r1, 0x96 lsls r1, 2 adds r0, r7, r1 ldr r2, _08040028 adds r1, r2, 0 orrs r0, r1 strh r0, [r3] adds r3, 0x2 _08040008: mov r1, r8 adds r0, r5, r1 movs r2, 0x96 lsls r2, 2 adds r0, r2 ldr r2, _08040028 adds r1, r2, 0 orrs r0, r1 strh r0, [r3] _0804001A: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08040024: .4byte gUnknown_80F6544 _08040028: .4byte 0xfffff000 thumb_func_end sub_803FF18 thumb_func_start sub_804002C sub_804002C: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} mov r8, r0 ldr r0, _08040088 ldr r0, [r0] ldr r1, _0804008C adds r0, r1 movs r1, 0x1 strb r1, [r0] movs r5, 0 movs r7, 0x1 _08040046: movs r4, 0 adds r6, r5, 0x1 _0804004A: adds r0, r4, 0 adds r1, r5, 0 bl sub_8049590 ldrh r1, [r0, 0x4] orrs r1, r7 strh r1, [r0, 0x4] adds r4, 0x1 cmp r4, 0x37 ble _0804004A adds r5, r6, 0 cmp r5, 0x1F ble _08040046 movs r0, 0 bl sub_803F580 bl sub_8049ED4 bl sub_8040A84 ldr r0, _08040090 ldr r1, [r0] mov r0, r8 bl sub_80522A8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08040088: .4byte gUnknown_203B418 _0804008C: .4byte 0x0001820b _08040090: .4byte gUnknown_80FD040 thumb_func_end sub_804002C thumb_func_start sub_8040094 sub_8040094: push {lr} ldr r1, _080400C8 ldr r1, [r1] ldr r2, _080400CC adds r1, r2 strb r0, [r1] bl sub_803F7BC bl sub_80060EC ldr r0, _080400D0 ldr r0, [r0] bl sub_8094FB4 bl sub_800CB20 bl sub_800485C bl xxx_call_update_bg_sound_input bl sub_8083F58 bl sub_8011860 pop {r0} bx r0 .align 2, 0 _080400C8: .4byte gUnknown_203B418 _080400CC: .4byte 0x00018217 _080400D0: .4byte gUnknown_203B47C thumb_func_end sub_8040094 thumb_func_start sub_80400D4 sub_80400D4: push {r4,lr} ldr r0, _08040114 ldr r4, [r0] movs r0, 0xC1 lsls r0, 9 adds r3, r4, r0 ldr r0, [r3] cmp r0, 0 beq _0804010C cmp r0, 0x1E ble _080400EC movs r0, 0x1F _080400EC: ldr r1, _08040118 adds r2, r4, r1 ldr r1, _0804011C lsls r0, 2 adds r0, r1 ldr r0, [r0] str r0, [r2] ldr r0, [r3] subs r0, 0x1 str r0, [r3] cmp r0, 0 bne _0804010C ldr r1, _08040120 adds r0, r4, r1 ldr r0, [r0] str r0, [r3] _0804010C: pop {r4} pop {r0} bx r0 .align 2, 0 _08040114: .4byte gUnknown_203B418 _08040118: .4byte 0x000181fc _0804011C: .4byte gUnknown_80F6568 _08040120: .4byte 0x00018204 thumb_func_end sub_80400D4 thumb_func_start sub_8040124 sub_8040124: ldr r1, _0804012C movs r0, 0 strb r0, [r1] bx lr .align 2, 0 _0804012C: .4byte gUnknown_202EE01 thumb_func_end sub_8040124 thumb_func_start sub_8040130 sub_8040130: push {lr} ldr r0, _08040144 ldr r1, _08040148 bl OpenFileAndGetFileDataPtr ldr r1, _0804014C str r0, [r1] pop {r0} bx r0 .align 2, 0 _08040144: .4byte gUnknown_80F6604 _08040148: .4byte gUnknown_83B0000 _0804014C: .4byte gUnknown_202EE04 thumb_func_end sub_8040130 thumb_func_start sub_8040150 sub_8040150: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 mov r9, r0 movs r0, 0 ldr r2, _080401EC _08040164: movs r4, 0 lsls r1, r0, 3 adds r3, r0, 0x1 mov r8, r3 subs r1, r0 lsls r0, r1, 7 ldr r3, _080401F0 adds r6, r0, r3 lsls r5, r1, 2 _08040176: ldr r0, [r2] adds r0, r6 lsls r1, r4, 5 adds r0, r1 movs r1, 0x20 str r2, [sp] bl CpuClear ldr r2, [sp] ldr r0, [r2] adds r1, r4, r5 ldr r3, _080401F4 adds r0, r3 adds r0, r1 movs r7, 0 strb r7, [r0] adds r4, 0x1 cmp r4, 0x1B ble _08040176 mov r0, r8 cmp r0, 0xF ble _08040164 mov r0, r9 cmp r0, 0 bne _080401B0 ldr r1, _080401F8 movs r0, 0x64 strh r0, [r1] strh r0, [r1, 0x2] _080401B0: ldr r3, _080401EC ldr r0, [r3] ldr r2, _080401FC adds r1, r0, r2 str r7, [r1] ldr r1, _08040200 adds r0, r1 movs r2, 0x1 strb r2, [r0] ldr r0, [r3] ldr r3, _08040204 adds r0, r3 strb r7, [r0] ldr r0, _08040208 strb r2, [r0] ldr r1, _0804020C ldr r0, _08040210 str r0, [r1] ldr r0, _08040214 strb r2, [r0] bl sub_8040238 add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080401EC: .4byte gUnknown_203B418 _080401F0: .4byte 0x0001822c _080401F4: .4byte 0x0001ba2c _080401F8: .4byte gUnknown_203B410 _080401FC: .4byte 0x0001bdcc _08040200: .4byte 0x0001bdd0 _08040204: .4byte 0x0001bdd2 _08040208: .4byte gUnknown_202EE00 _0804020C: .4byte gUnknown_202EE08 _08040210: .4byte 0x06001700 _08040214: .4byte gUnknown_202EE01 thumb_func_end sub_8040150 thumb_func_start sub_8040218 sub_8040218: push {lr} ldr r0, _08040230 ldr r0, [r0] cmp r0, 0 beq _08040226 bl CloseFile _08040226: bl sub_8040124 pop {r0} bx r0 .align 2, 0 _08040230: .4byte gUnknown_202EE04 thumb_func_end sub_8040218 thumb_func_start nullsub_203 nullsub_203: bx lr thumb_func_end nullsub_203 thumb_func_start sub_8040238 sub_8040238: push {r4-r7,lr} mov r7, r8 push {r7} ldr r1, _0804026C ldr r0, [r1] cmp r0, 0 beq _080402A0 ldr r0, _08040270 ldrb r0, [r0] cmp r0, 0 beq _080402A0 movs r6, 0 ldr r0, _08040274 mov r8, r0 adds r7, r1, 0 _08040256: cmp r6, 0xE bne _08040278 movs r0, 0xEE mov r1, r8 bl SetBGPaletteBufferColorArray movs r0, 0xEE mov r1, r8 bl nullsub_5 b _0804029A .align 2, 0 _0804026C: .4byte gUnknown_202EE04 _08040270: .4byte gUnknown_202EE01 _08040274: .4byte gUnknown_202D03C _08040278: adds r5, r6, 0 adds r5, 0xE0 ldr r0, [r7] ldr r0, [r0, 0x4] lsls r4, r6, 2 ldr r1, [r0, 0x4] adds r1, r4 adds r0, r5, 0 bl SetBGPaletteBufferColorArray ldr r0, [r7] ldr r0, [r0, 0x4] ldr r1, [r0, 0x4] adds r1, r4 adds r0, r5, 0 bl nullsub_5 _0804029A: adds r6, 0x1 cmp r6, 0xF ble _08040256 _080402A0: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8040238 thumb_func_start sub_80402AC sub_80402AC: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C mov r8, r0 str r1, [sp] ldr r4, _0804034C ldr r0, [r4] str r0, [sp, 0x4] movs r1, 0x1 mov r10, r1 ldr r0, _08040350 ldr r0, [r0] cmp r0, 0 bne _080402D0 b _08040776 _080402D0: ldr r0, _08040354 ldrb r0, [r0] cmp r0, 0 bne _080402DA b _08040776 _080402DA: bl sub_800EC74 lsls r0, 24 cmp r0, 0 beq _080402E6 b _08040776 _080402E6: mov r2, r8 cmp r2, 0 bge _080402EE b _08040776 _080402EE: ldr r3, [sp] cmp r3, 0x1 bgt _080402F6 b _08040776 _080402F6: cmp r2, 0x37 ble _080402FC b _08040776 _080402FC: cmp r3, 0x1E ble _08040302 b _08040776 _08040302: mov r0, r8 adds r1, r3, 0 bl sub_804954C mov r9, r0 ldrh r0, [r0] movs r5, 0x3 ands r5, r0 str r5, [sp, 0x8] ldr r0, [r4] ldr r7, _08040358 adds r1, r0, r7 ldrb r1, [r1] str r1, [sp, 0xC] ldr r2, _0804035C adds r1, r0, r2 ldrb r5, [r1] ldr r3, _08040360 adds r1, r0, r3 ldrb r1, [r1] str r1, [sp, 0x14] subs r7, 0x2 adds r1, r0, r7 ldrb r1, [r1] str r1, [sp, 0x10] ldr r1, _08040364 adds r0, r1 ldrb r0, [r0] cmp r5, 0 beq _08040368 mov r2, r9 ldrb r0, [r2, 0x4] mov r7, r10 ands r7, r0 movs r3, 0 str r3, [sp, 0x18] b _0804039C .align 2, 0 _0804034C: .4byte gUnknown_203B418 _08040350: .4byte gUnknown_202EE04 _08040354: .4byte gUnknown_202EE01 _08040358: .4byte 0x00018210 _0804035C: .4byte 0x0001820a _08040360: .4byte 0x0001820f _08040364: .4byte 0x0001820b _08040368: cmp r0, 0 beq _08040370 movs r7, 0x1 b _08040378 _08040370: mov r7, r9 ldrb r0, [r7, 0x4] mov r7, r10 ands r7, r0 _08040378: bl sub_8043D10 lsls r0, 24 cmp r0, 0 bne _08040398 ldr r0, _08040390 ldr r0, [r0] ldr r1, _08040394 adds r0, r1 ldrb r0, [r0] str r0, [sp, 0x18] b _0804039C .align 2, 0 _08040390: .4byte gUnknown_203B418 _08040394: .4byte 0x00018211 _08040398: movs r2, 0 str r2, [sp, 0x18] _0804039C: bl sub_8094C48 lsls r0, 24 cmp r0, 0 bne _080403A8 b _08040632 _080403A8: ldr r0, _080403FC ldr r0, [r0] ldr r3, _08040400 adds r0, r3 ldrb r0, [r0] cmp r0, 0 beq _080403B8 b _08040632 _080403B8: movs r6, 0 cmp r5, 0 bne _0804045E mov r0, r9 ldr r4, [r0, 0x10] cmp r4, 0 beq _0804045E adds r0, r4, 0 bl sub_80450F8 adds r1, r0, 0 ldr r0, _08040404 ldrb r0, [r0] cmp r0, 0 beq _0804045E cmp r1, 0x1 bne _0804045E adds r0, r4, 0 bl sub_8045804 lsls r0, 24 cmp r0, 0 beq _0804045E ldr r1, [r4, 0x70] adds r0, r1, 0 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x4A beq _080403F6 cmp r0, 0x47 bne _08040408 _080403F6: movs r0, 0x1 b _0804040A .align 2, 0 _080403FC: .4byte gUnknown_203B418 _08040400: .4byte 0x0001356c _08040404: .4byte gUnknown_202EE00 _08040408: movs r0, 0 _0804040A: cmp r0, 0 bne _08040458 adds r0, r1, 0 adds r0, 0xA4 ldrb r0, [r0] cmp r0, 0x1 beq _08040458 cmp r0, 0x4 beq _08040458 ldrb r0, [r1, 0x6] cmp r0, 0 beq _08040426 movs r6, 0x2 b _0804045A _08040426: ldrb r0, [r1, 0x7] cmp r0, 0 beq _08040458 ldr r0, _0804044C mov r1, r8 strh r1, [r0] mov r2, sp ldrh r2, [r2] strh r2, [r0, 0x2] ldr r0, _08040450 ldr r0, [r0] ldr r3, _08040454 adds r0, r3 ldrb r0, [r0] cmp r0, 0 beq _0804045A movs r6, 0x8 b _0804045A .align 2, 0 _0804044C: .4byte gUnknown_203B410 _08040450: .4byte gUnknown_203B418 _08040454: .4byte 0x00018214 _08040458: movs r6, 0xA _0804045A: movs r0, 0 mov r10, r0 _0804045E: mov r1, r10 cmp r1, 0 beq _0804054E cmp r5, 0 bne _08040548 mov r2, r9 ldr r4, [r2, 0x14] cmp r4, 0 beq _08040500 adds r0, r4, 0 bl sub_80450F8 adds r5, r0, 0 cmp r7, 0 bne _0804049E movs r6, 0 cmp r5, 0x3 bne _0804054E ldr r3, [sp, 0x10] cmp r3, 0 bne _08040494 mov r5, r9 ldrh r1, [r5, 0x4] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0804054E _08040494: ldr r0, [sp, 0x8] cmp r0, 0 beq _0804054E movs r6, 0x3 b _0804054E _0804049E: cmp r5, 0x2 bne _080404C4 adds r0, r4, 0 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0 bne _080404B2 ldr r1, [sp, 0x14] cmp r1, 0 beq _080404C4 _080404B2: adds r0, r4, 0 bl sub_8045104 ldr r1, _080404FC ldrb r0, [r0] adds r0, r1 ldrb r6, [r0] movs r2, 0 mov r10, r2 _080404C4: mov r3, r10 cmp r3, 0 beq _0804054E cmp r5, 0x3 bne _080404EC ldr r5, [sp, 0x10] cmp r5, 0 bne _080404E0 mov r0, r9 ldrh r1, [r0, 0x4] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080404EC _080404E0: ldr r1, [sp, 0x8] cmp r1, 0 beq _080404EC movs r6, 0x3 movs r2, 0 mov r10, r2 _080404EC: mov r3, r10 cmp r3, 0 beq _0804054E ldr r5, [sp, 0x8] cmp r5, 0x1 beq _08040548 movs r6, 0 b _0804054E .align 2, 0 _080404FC: .4byte gUnknown_80F65F0 _08040500: cmp r7, 0 bne _08040528 ldr r0, [sp, 0x18] cmp r0, 0 beq _08040548 mov r2, r9 ldrh r1, [r2] movs r0, 0x80 lsls r0, 2 ands r0, r1 cmp r0, 0 beq _08040548 bl sub_8043D10 lsls r0, 24 movs r6, 0x5 cmp r0, 0 bne _0804054E movs r6, 0x6 b _0804054E _08040528: mov r3, r9 ldrh r1, [r3] movs r0, 0x80 lsls r0, 2 ands r0, r1 cmp r0, 0 beq _08040548 bl sub_8043D10 lsls r0, 24 movs r6, 0x5 cmp r0, 0 bne _08040544 movs r6, 0x6 _08040544: movs r5, 0 mov r10, r5 _08040548: mov r0, r10 cmp r0, 0 bne _0804055A _0804054E: ldr r1, [sp, 0xC] cmp r1, 0 beq _0804055A cmp r6, 0 beq _0804055E movs r6, 0xB _0804055A: cmp r6, 0 bne _08040606 _0804055E: cmp r7, 0 beq _08040568 ldr r2, [sp, 0x8] cmp r2, 0x1 beq _0804056C _08040568: movs r6, 0x1 b _08040606 _0804056C: movs r4, 0xF ldr r3, [sp] cmp r3, 0x1E bgt _0804058A adds r1, r3, 0 adds r1, 0x1 mov r0, r8 bl sub_804954C ldrh r1, [r0] movs r0, 0x3 ands r0, r1 cmp r0, 0x1 bne _0804058A movs r4, 0xE _0804058A: ldr r5, [sp] cmp r5, 0 ble _080405AA adds r1, r5, 0 subs r1, 0x1 mov r0, r8 bl sub_804954C ldrh r1, [r0] movs r0, 0x3 ands r0, r1 cmp r0, 0x1 bne _080405AA movs r0, 0x5 negs r0, r0 ands r4, r0 _080405AA: mov r7, r8 cmp r7, 0x36 bgt _080405CA mov r0, r8 adds r0, 0x1 ldr r1, [sp] bl sub_804954C ldrh r1, [r0] movs r0, 0x3 ands r0, r1 cmp r0, 0x1 bne _080405CA movs r0, 0x3 negs r0, r0 ands r4, r0 _080405CA: mov r0, r8 cmp r0, 0 ble _080405E8 subs r0, 0x1 ldr r1, [sp] bl sub_804954C ldrh r1, [r0] movs r0, 0x3 ands r0, r1 cmp r0, 0x1 bne _080405E8 movs r0, 0x9 negs r0, r0 ands r4, r0 _080405E8: lsls r0, r4, 16 asrs r6, r0, 16 mov r2, r9 ldrh r1, [r2, 0x4] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080405FE adds r0, r6, 0 adds r0, 0x10 b _08040602 _080405FE: adds r0, r6, 0 adds r0, 0x20 _08040602: lsls r0, 16 asrs r6, r0, 16 _08040606: ldr r0, _08040618 ldr r0, [r0] ldrb r0, [r0, 0x4] cmp r0, 0x6 bne _0804061C adds r0, r6, 0 adds r0, 0x80 b _0804062C .align 2, 0 _08040618: .4byte gUnknown_203B46C _0804061C: bl sub_8094C68 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0804063A adds r0, r6, 0 adds r0, 0x40 _0804062C: lsls r0, 16 asrs r6, r0, 16 b _0804063A _08040632: movs r6, 0x1 ldr r1, _0804074C movs r0, 0x64 strh r0, [r1] _0804063A: mov r3, r8 lsrs r0, r3, 31 add r0, r8 asrs r0, 1 mov r9, r0 ldr r0, [sp] subs r0, 0x2 lsrs r1, r0, 31 adds r1, r0, r1 asrs r1, 1 mov r5, r9 lsls r3, r5, 1 mov r7, r8 subs r3, r7, r3 lsls r2, r1, 1 subs r0, r2 lsls r0, 1 adds r3, r0 lsls r0, r1, 3 subs r5, r0, r1 lsls r0, r5, 7 ldr r1, _08040750 adds r0, r1 ldr r2, [sp, 0x4] adds r0, r2, r0 mov r7, r9 lsls r1, r7, 5 adds r4, r0, r1 ldr r0, _08040754 ldr r0, [r0] ldr r1, [r0, 0x4] lsls r0, r6, 2 adds r0, r3 ldr r1, [r1] lsls r0, 2 adds r0, r1 ldr r2, [r0] ldr r0, [r4] ldr r1, [r2] ands r0, r1 ldr r1, [r2, 0x4] orrs r0, r1 str r0, [r4] ldr r0, [r4, 0x4] ldr r1, [r2, 0x8] ands r0, r1 ldr r1, [r2, 0xC] orrs r0, r1 str r0, [r4, 0x4] ldr r0, [r4, 0x8] ldr r1, [r2, 0x10] ands r0, r1 ldr r1, [r2, 0x14] orrs r0, r1 str r0, [r4, 0x8] ldr r0, [r4, 0xC] ldr r1, [r2, 0x18] ands r0, r1 ldr r1, [r2, 0x1C] orrs r0, r1 str r0, [r4, 0xC] ldr r0, [r4, 0x10] ldr r1, [r2, 0x20] ands r0, r1 ldr r1, [r2, 0x24] orrs r0, r1 str r0, [r4, 0x10] ldr r0, [r4, 0x14] ldr r1, [r2, 0x28] ands r0, r1 ldr r1, [r2, 0x2C] orrs r0, r1 str r0, [r4, 0x14] ldr r0, [r4, 0x18] ldr r1, [r2, 0x30] ands r0, r1 ldr r1, [r2, 0x34] orrs r0, r1 str r0, [r4, 0x18] ldr r0, [r4, 0x1C] ldr r1, [r2, 0x38] ands r0, r1 ldr r1, [r2, 0x3C] orrs r0, r1 str r0, [r4, 0x1C] ldr r0, [sp, 0x4] ldr r1, _08040758 adds r2, r0, r1 ldrb r0, [r2] cmp r0, 0 bne _08040776 lsls r5, 2 mov r10, r5 mov r3, r9 add r3, r10 ldr r5, _0804075C mov r8, r5 ldr r0, [sp, 0x4] add r0, r8 adds r1, r0, r3 ldrb r0, [r1] cmp r0, 0 bne _08040776 movs r0, 0x1 strb r0, [r1] ldr r7, [sp, 0x4] ldr r1, _08040760 adds r6, r7, r1 ldr r5, [r6] cmp r5, 0x27 bgt _08040774 lsls r1, r5, 1 adds r1, r5 lsls r1, 2 ldr r0, _08040764 adds r2, r7, r0 adds r2, r1 ldr r0, _08040768 lsls r3, 5 ldr r0, [r0] adds r0, r3 str r0, [r2] ldr r2, _0804076C adds r0, r7, r2 adds r0, r1 str r4, [r0] ldr r3, _08040770 adds r2, r7, r3 adds r2, r1 mov r0, r10 add r0, r8 adds r0, r7, r0 add r0, r9 str r0, [r2] adds r0, r5, 0x1 str r0, [r6] b _08040776 .align 2, 0 _0804074C: .4byte gUnknown_203B410 _08040750: .4byte 0x0001822c _08040754: .4byte gUnknown_202EE04 _08040758: .4byte 0x0001bdd1 _0804075C: .4byte 0x0001ba2c _08040760: .4byte 0x0001bdcc _08040764: .4byte 0x0001bbec _08040768: .4byte gUnknown_202EE08 _0804076C: .4byte 0x0001bbf0 _08040770: .4byte 0x0001bbf4 _08040774: strb r0, [r2] _08040776: add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80402AC thumb_func_start sub_8040788 sub_8040788: push {r4-r7,lr} mov r7, r8 push {r7} ldr r0, _08040814 ldr r0, [r0] mov r8, r0 cmp r0, 0 beq _08040870 ldr r0, _08040818 add r0, r8 ldrb r0, [r0] cmp r0, 0 beq _08040870 bl sub_800EC74 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 bne _08040870 ldr r1, _0804081C add r1, r8 ldrb r0, [r1] cmp r0, 0 bne _0804082C movs r6, 0 ldr r1, _08040820 add r1, r8 ldr r0, [r1] cmp r6, r0 bge _08040868 adds r5, r1, 0 movs r4, 0 _080407C8: ldr r1, _08040824 adds r0, r4, r1 mov r1, r8 adds r3, r1, r0 ldr r1, [r3, 0x4] ldr r2, [r3] ldr r0, _08040828 ldr r0, [r0] cmp r0, 0 beq _080407E0 cmp r0, 0x3 bne _08040800 _080407E0: ldm r1!, {r0} stm r2!, {r0} ldm r1!, {r0} stm r2!, {r0} ldm r1!, {r0} stm r2!, {r0} ldm r1!, {r0} stm r2!, {r0} ldm r1!, {r0} stm r2!, {r0} ldm r1!, {r0} stm r2!, {r0} ldm r1!, {r0} stm r2!, {r0} ldr r0, [r1] str r0, [r2] _08040800: ldr r0, [r3, 0x8] movs r1, 0 strb r1, [r0] adds r4, 0xC adds r6, 0x1 ldr r0, [r5] cmp r6, r0 blt _080407C8 b _08040868 .align 2, 0 _08040814: .4byte gUnknown_203B418 _08040818: .4byte 0x0001bdd0 _0804081C: .4byte 0x0001bdd1 _08040820: .4byte 0x0001bdcc _08040824: .4byte 0x0001bbec _08040828: .4byte gUnknown_202EDD0 _0804082C: strb r2, [r1] ldr r0, _0804087C ldr r5, [r0] ldr r4, _08040880 add r4, r8 movs r6, 0 movs r7, 0x80 lsls r7, 1 _0804083C: ldr r0, _08040884 ldr r0, [r0] cmp r0, 0 beq _08040848 cmp r0, 0x3 bne _08040854 _08040848: adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x80 lsls r2, 1 bl CpuCopy _08040854: adds r5, r7 adds r4, r7 adds r6, 0x8 ldr r0, _08040888 cmp r6, r0 ble _0804083C ldr r1, _0804088C add r1, r8 movs r0, 0x1 strb r0, [r1] _08040868: ldr r1, _08040890 add r1, r8 movs r0, 0 str r0, [r1] _08040870: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804087C: .4byte gUnknown_202EE08 _08040880: .4byte 0x0001822c _08040884: .4byte gUnknown_202EDD0 _08040888: .4byte 0x000001bf _0804088C: .4byte 0x0001bdd2 _08040890: .4byte 0x0001bdcc thumb_func_end sub_8040788 thumb_func_start sub_8040894 sub_8040894: push {r4-r7,lr} sub sp, 0x8 ldr r0, _080409F4 ldr r1, [r0] ldr r2, _080409F8 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 beq _080408A8 b _08040A6A _080408A8: adds r2, 0x5 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 bne _080408B4 b _08040A6A _080408B4: ldr r7, _080409FC movs r1, 0 ldrsh r0, [r7, r1] cmp r0, 0x63 ble _080408C0 b _08040A6A _080408C0: ldr r0, _08040A00 ldrb r1, [r0] adds r1, 0x1 strb r1, [r0] movs r0, 0x8 ands r1, r0 cmp r1, 0 beq _080408D2 b _08040A6A _080408D2: movs r0, 0 movs r1, 0 str r0, [sp] str r1, [sp, 0x4] mov r0, sp ldrh r0, [r0] ldr r1, _08040A04 ands r1, r0 ldr r3, _08040A08 ldr r0, [sp] ands r0, r3 orrs r0, r1 str r0, [sp] mov r1, sp ldrh r1, [r1] adds r2, r3, 0 ands r2, r0 orrs r2, r1 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r0, _08040A0C ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r5, _08040A10 adds r0, r5, 0 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r0, _08040A14 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r0, _08040A18 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r4, _08040A1C adds r0, r4, 0 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] ands r3, r1 orrs r3, r0 str r3, [sp] mov r3, sp ldrh r0, [r3, 0x2] ldr r6, _08040A20 ands r6, r0 ands r6, r4 strh r6, [r3, 0x2] ldr r2, _08040A24 ldrh r1, [r3, 0x4] movs r0, 0xFC lsls r0, 8 ands r0, r1 orrs r0, r2 ands r0, r5 movs r5, 0xF lsls r1, r5, 12 ldr r4, _08040A28 ands r0, r4 orrs r0, r1 strh r0, [r3, 0x4] ldrh r0, [r3, 0x6] ldr r2, _08040A2C ands r2, r0 ldr r0, _08040A30 ands r2, r0 strh r2, [r3, 0x6] ldr r0, _08040A34 ldr r0, [r0] ldrb r0, [r0, 0x4] cmp r0, 0x6 bne _08040A3C movs r1, 0 ldrsh r0, [r7, r1] lsls r0, 2 adds r0, 0x10 ldr r1, _08040A38 ands r0, r1 strh r0, [r3, 0x2] movs r1, 0x2 ldrsh r0, [r7, r1] adds r0, 0x1 lsls r0, 2 ands r0, r4 lsls r0, 4 adds r1, r2, 0 ands r1, r5 orrs r1, r0 strh r1, [r3, 0x6] movs r1, 0x80 lsls r1, 1 mov r0, sp movs r2, 0 movs r3, 0 bl nullsub_11 b _08040A6A .align 2, 0 _080409F4: .4byte gUnknown_203B418 _080409F8: .4byte 0x00018214 _080409FC: .4byte gUnknown_203B410 _08040A00: .4byte gUnknown_202EE02 _08040A04: .4byte 0x0000feff _08040A08: .4byte 0xffff0000 _08040A0C: .4byte 0x0000fdff _08040A10: .4byte 0x0000f3ff _08040A14: .4byte 0x0000efff _08040A18: .4byte 0x0000dfff _08040A1C: .4byte 0x00003fff _08040A20: .4byte 0x0000c1ff _08040A24: .4byte 0x00000215 _08040A28: .4byte 0x00000fff _08040A2C: .4byte 0x0000fffe _08040A30: .4byte 0x0000fffd _08040A34: .4byte gUnknown_203B46C _08040A38: .4byte 0x000001ff _08040A3C: movs r1, 0 ldrsh r0, [r7, r1] lsls r0, 2 adds r0, 0x8 ldr r1, _08040A74 ands r0, r1 strh r0, [r3, 0x2] movs r1, 0x2 ldrsh r0, [r7, r1] lsls r0, 2 ands r0, r4 lsls r0, 4 adds r1, r2, 0 ands r1, r5 orrs r1, r0 strh r1, [r3, 0x6] movs r1, 0x80 lsls r1, 1 mov r0, sp movs r2, 0 movs r3, 0 bl AddSprite _08040A6A: add sp, 0x8 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08040A74: .4byte 0x000001ff thumb_func_end sub_8040894 thumb_func_start sub_8040A78 sub_8040A78: ldr r1, _08040A80 movs r0, 0 strb r0, [r1] bx lr .align 2, 0 _08040A80: .4byte gUnknown_202EE02 thumb_func_end sub_8040A78 thumb_func_start sub_8040A84 sub_8040A84: push {r4-r6,lr} ldr r0, _08040AB4 ldr r0, [r0] ldr r1, _08040AB8 adds r0, r1 movs r1, 0x1 strb r1, [r0] movs r5, 0 _08040A94: movs r4, 0 adds r6, r5, 0x1 _08040A98: adds r0, r4, 0 adds r1, r5, 0 bl sub_80402AC adds r4, 0x1 cmp r4, 0x37 ble _08040A98 adds r5, r6, 0 cmp r5, 0x1F ble _08040A94 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08040AB4: .4byte gUnknown_203B418 _08040AB8: .4byte 0x0001bdd1 thumb_func_end sub_8040A84 thumb_func_start sub_8040ABC sub_8040ABC: push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r1, r0, 24 ldr r0, _08040AD8 ldr r0, [r0] ldrb r0, [r0, 0x4] cmp r0, 0x6 bne _08040ADC movs r7, 0xF movs r0, 0 b _08040AEC .align 2, 0 _08040AD8: .4byte gUnknown_203B46C _08040ADC: cmp r1, 0 beq _08040AE8 movs r7, 0xE movs r4, 0 mov r8, r4 b _08040AEE _08040AE8: movs r7, 0x10 movs r0, 0x3 _08040AEC: mov r8, r0 _08040AEE: ldr r6, _08040B58 movs r2, 0x1 movs r1, 0 cmp r1, r7 bge _08040B22 ldr r4, _08040B5C mov r12, r4 _08040AFC: lsls r0, r2, 6 mov r4, r12 adds r3, r0, r4 adds r4, r2, 0x1 adds r5, r1, 0x1 movs r2, 0x1B _08040B08: adds r1, r6, 0 adds r0, r1, 0x1 lsls r0, 16 lsrs r6, r0, 16 strh r1, [r3] adds r3, 0x2 subs r2, 0x1 cmp r2, 0 bge _08040B08 adds r2, r4, 0 adds r1, r5, 0 cmp r1, r7 blt _08040AFC _08040B22: movs r1, 0 cmp r1, r8 bge _08040B4C ldr r6, _08040B5C movs r0, 0xE0 lsls r0, 8 adds r3, r0, 0 _08040B30: lsls r0, r2, 6 adds r0, r6 adds r4, r2, 0x1 adds r5, r1, 0x1 movs r2, 0x1B _08040B3A: strh r3, [r0] adds r0, 0x2 subs r2, 0x1 cmp r2, 0 bge _08040B3A adds r2, r4, 0 adds r1, r5, 0 cmp r1, r8 blt _08040B30 _08040B4C: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08040B58: .4byte 0x0000e0b8 _08040B5C: .4byte gUnknown_202B03A thumb_func_end sub_8040ABC thumb_func_start sub_8040B60 sub_8040B60: push {r4,r5,lr} ldr r0, _08040BA4 ldr r3, [r0] ldr r1, _08040BA8 adds r0, r3, r1 ldrb r0, [r0] cmp r0, 0 beq _08040B9E movs r1, 0 ldr r2, _08040BAC adds r5, r3, r2 movs r4, 0 _08040B78: lsls r0, r1, 3 adds r2, r1, 0x1 subs r0, r1 movs r1, 0x37 lsls r0, 2 adds r0, r5 adds r0, 0x37 _08040B86: strb r4, [r0] subs r0, 0x1 subs r1, 0x1 cmp r1, 0 bge _08040B86 adds r1, r2, 0 cmp r1, 0x1F ble _08040B78 movs r1, 0 ldr r2, _08040BA8 adds r0, r3, r2 strb r1, [r0] _08040B9E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08040BA4: .4byte gUnknown_203B418 _08040BA8: .4byte 0x0001bdd2 _08040BAC: .4byte 0x0001ba2c thumb_func_end sub_8040B60 thumb_func_start sub_8040BB0 sub_8040BB0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r6, r0, 0 adds r7, r1, 0 lsls r2, 24 lsrs r2, 24 mov r10, r2 bl sub_804143C mov r8, r0 ldrh r4, [r7, 0x2] adds r0, r6, 0 bl sub_807E580 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 mov r2, r8 bl sub_804141C lsls r0, 24 lsrs r5, r0, 24 mov r9, r5 ldrh r4, [r7, 0x2] adds r0, r6, 0 bl sub_807E580 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 mov r2, r8 bl sub_80412E0 lsls r0, 16 lsrs r0, 16 bl sub_800ECB8 movs r1, 0 ldrsh r4, [r0, r1] adds r0, r6, 0 bl sub_8042768 lsls r0, 24 cmp r0, 0 beq _08040C28 adds r0, r6, 0 adds r1, r7, 0 bl sub_80414C0 lsls r0, 24 cmp r0, 0 bne _08040C28 mov r0, r10 cmp r0, 0 bne _08040C2C _08040C28: adds r0, r5, 0 b _08040C3C _08040C2C: cmp r4, 0 beq _08040C3A adds r0, r6, 0 adds r1, r7, 0 mov r2, r8 bl sub_8040C4C _08040C3A: mov r0, r9 _08040C3C: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8040BB0 thumb_func_start sub_8040C4C sub_8040C4C: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x14 adds r7, r0, 0 adds r4, r1, 0 adds r6, r2, 0 ldrh r5, [r4, 0x2] bl sub_807E580 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 adds r2, r6, 0 bl sub_80412E0 lsls r0, 16 lsrs r0, 16 mov r9, r0 ldr r6, [r7, 0x70] ldrh r0, [r4, 0x2] bl sub_800EC94 lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r0, 0x4 ldrsh r5, [r6, r0] ldrh r4, [r4, 0x2] adds r0, r7, 0 bl sub_807E580 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 movs r2, 0x1 bl sub_80412E0 adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r5, 0 bl sub_800E710 adds r2, r0, 0 movs r0, 0x1 negs r0, r0 cmp r2, r0 beq _08040CC4 add r0, sp, 0x8 adds r1, r7, 0 adds r1, 0x28 lsls r2, 24 lsrs r2, 24 bl sub_800569C b _08040CC8 _08040CC4: movs r0, 0 str r0, [sp, 0x8] _08040CC8: mov r0, sp mov r1, r9 strh r1, [r0] mov r1, sp ldrh r0, [r6, 0x4] strh r0, [r1, 0x2] ldr r0, [r7, 0xC] cmp r0, 0 bge _08040CDC adds r0, 0xFF _08040CDC: asrs r0, 8 strh r0, [r1, 0x4] mov r1, sp ldr r0, [r7, 0x10] cmp r0, 0 bge _08040CEA adds r0, 0xFF _08040CEA: asrs r0, 8 strh r0, [r1, 0x6] adds r0, r6, 0 adds r0, 0x46 ldrb r0, [r0] str r0, [sp, 0xC] movs r0, 0 str r0, [sp, 0x10] mov r0, sp bl sub_8041500 mov r0, r9 bl sub_800EEC8 bl sub_800EF64 movs r0, 0x58 bl sub_803E46C mov r0, sp bl sub_800EA84 adds r4, r0, 0 adds r1, r7, 0 movs r2, 0x5 bl sub_8042DD4 ldr r0, _08040D28 ldrb r5, [r0] ldr r6, _08040D2C b _08040D78 .align 2, 0 _08040D28: .4byte gUnknown_203B40D _08040D2C: .4byte 0x00001010 _08040D30: ldr r0, _08040D58 movs r1, 0x1 strb r1, [r0] ldr r1, _08040D5C ldrh r2, [r1] movs r3, 0 ldrsh r0, [r1, r3] cmp r0, r6 beq _08040D48 ldr r3, _08040D60 adds r0, r2, r3 strh r0, [r1] _08040D48: ldr r1, _08040D64 ldr r0, [r1] cmp r0, 0x4 ble _08040D68 subs r0, 0x4 str r0, [r1] b _08040D6E .align 2, 0 _08040D58: .4byte gUnknown_203B40D _08040D5C: .4byte gUnknown_2026E4E _08040D60: .4byte 0x00000101 _08040D64: .4byte gUnknown_202EDC8 _08040D68: movs r0, 0 str r0, [r1] mov r8, r0 _08040D6E: bl sub_803EA10 movs r0, 0x26 bl sub_803E46C _08040D78: adds r0, r4, 0 bl sub_800E9A8 lsls r0, 24 cmp r0, 0 beq _08040D8A mov r0, r8 cmp r0, 0 bne _08040D30 _08040D8A: ldr r0, _08040D9C strb r5, [r0] add sp, 0x14 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08040D9C: .4byte gUnknown_203B40D thumb_func_end sub_8040C4C thumb_func_start sub_8040DA0 sub_8040DA0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C adds r7, r0, 0 mov r8, r1 bl sub_804143C mov r9, r0 movs r0, 0 str r0, [sp, 0x14] ldr r1, [r7, 0x70] mov r10, r1 movs r0, 0x4 ldrsh r5, [r1, r0] mov r1, r8 ldrh r4, [r1, 0x2] adds r0, r7, 0 bl sub_807E580 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 mov r2, r9 bl sub_80412E0 adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r5, 0 bl sub_800EA44 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x18] mov r0, sp adds r1, r7, 0 mov r2, r8 mov r3, r9 bl sub_8041038 mov r0, sp movs r1, 0x1 bl sub_800E838 lsls r0, 24 cmp r0, 0 bne _08040E0E mov r1, r8 ldrh r0, [r1, 0x2] cmp r0, 0x52 bne _08040E24 _08040E0E: ldr r0, _08040E1C ldr r0, [r0] ldr r1, _08040E20 adds r0, r1 ldr r6, [r0] b _08040E26 .align 2, 0 _08040E1C: .4byte gUnknown_203B418 _08040E20: .4byte 0x000181f8 _08040E24: adds r6, r7, 0 _08040E26: adds r0, r6, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _08040E34 adds r6, r7, 0 _08040E34: mov r1, sp ldr r0, [r6, 0xC] cmp r0, 0 bge _08040E3E adds r0, 0xFF _08040E3E: asrs r0, 8 strh r0, [r1, 0x4] mov r1, sp ldr r0, [r6, 0x10] cmp r0, 0 bge _08040E4C adds r0, 0xFF _08040E4C: asrs r0, 8 strh r0, [r1, 0x6] adds r0, r6, 0 bl sub_8042768 lsls r0, 24 cmp r0, 0 bne _08040E5E b _08041026 _08040E5E: adds r0, r7, 0 mov r1, r8 bl sub_80414C0 lsls r0, 24 cmp r0, 0 beq _08040E6E b _08041026 _08040E6E: mov r0, r8 ldrh r1, [r0, 0x2] movs r0, 0x94 lsls r0, 1 cmp r1, r0 bne _08040ED0 movs r0, 0x7 bl sub_8084100 ldr r1, _08040EB8 str r0, [r1] ldr r1, _08040EBC ldr r2, [r1] ldr r1, _08040EC0 adds r4, r2, r1 subs r1, 0x4 adds r2, r1 ldr r3, _08040EC4 lsls r1, r0, 2 adds r1, r3 ldr r1, [r1] str r1, [r2] str r1, [r4] ldr r1, _08040EC8 adds r0, 0x4 str r0, [r1] ldr r0, _08040ECC ldr r1, [r0] adds r0, r6, 0 bl sub_80522A8 movs r1, 0xD2 lsls r1, 1 adds r0, r6, 0 bl sub_80421C0 b _08040EF0 .align 2, 0 _08040EB8: .4byte gUnknown_202F224 _08040EBC: .4byte gUnknown_203B418 _08040EC0: .4byte 0x00018204 _08040EC4: .4byte gUnknown_8106A8C _08040EC8: .4byte gUnknown_202DE30 _08040ECC: .4byte gUnknown_8100224 _08040ED0: cmp r1, 0x76 bne _08040EF0 ldr r0, _08040F70 ldr r0, [r0] ldr r1, _08040F74 adds r2, r0, r1 subs r1, 0x4 adds r0, r1 movs r1, 0xC str r1, [r0] str r1, [r2] movs r1, 0xD2 lsls r1, 1 adds r0, r6, 0 bl sub_80421C0 _08040EF0: mov r0, r10 movs r1, 0x4 ldrsh r5, [r0, r1] mov r0, r8 ldrh r4, [r0, 0x2] adds r0, r7, 0 bl sub_807E580 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 mov r2, r9 bl sub_80412E0 adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r5, 0 bl sub_800E790 adds r1, r0, 0 ldr r0, _08040F78 cmp r1, r0 beq _08040F2A lsls r0, r1, 16 lsrs r0, 16 bl sub_8083E38 _08040F2A: ldr r1, [sp, 0x18] cmp r1, 0x63 bne _08040F7C adds r0, r6, 0 bl sub_8042768 lsls r0, 24 cmp r0, 0 beq _08041026 mov r0, r10 adds r0, 0x46 ldrb r4, [r0] mov r0, sp adds r1, r7, 0 mov r2, r8 mov r3, r9 bl sub_8041108 movs r6, 0x7 movs r5, 0x7 _08040F52: subs r4, 0x1 ands r4, r6 adds r0, r7, 0 movs r1, 0 adds r2, r4, 0 bl sub_806CDD4 movs r0, 0x2 movs r1, 0x15 bl sub_803E708 subs r5, 0x1 cmp r5, 0 bge _08040F52 b _08041026 .align 2, 0 _08040F70: .4byte gUnknown_203B418 _08040F74: .4byte 0x00018204 _08040F78: .4byte 0x000003e5 _08040F7C: ldr r0, [sp, 0x18] cmp r0, 0x62 bne _08040FC2 adds r0, r6, 0 bl sub_8042768 lsls r0, 24 cmp r0, 0 beq _08041026 mov r0, r10 adds r0, 0x46 ldrb r4, [r0] mov r0, sp adds r1, r7, 0 mov r2, r8 mov r3, r9 bl sub_8041108 movs r6, 0x7 movs r5, 0x8 _08040FA4: ands r4, r6 adds r0, r7, 0 movs r1, 0 adds r2, r4, 0 bl sub_806CDD4 movs r0, 0x2 movs r1, 0x15 bl sub_803E708 adds r4, 0x1 subs r5, 0x1 cmp r5, 0 bge _08040FA4 b _08041026 _08040FC2: mov r0, r10 adds r0, 0x46 ldrb r2, [r0] adds r0, r7, 0 ldr r1, [sp, 0x18] bl sub_806CDD4 adds r0, r7, 0 adds r0, 0x21 movs r1, 0 strb r1, [r0] movs r5, 0 adds r6, r0, 0 b _08040FE6 _08040FDE: ldrb r0, [r6] cmp r0, 0 bne _08041022 adds r5, 0x1 _08040FE6: cmp r5, 0x77 bgt _08041022 movs r0, 0x59 bl sub_803E46C ldr r4, [r7, 0x40] ldr r1, [sp, 0x18] cmp r1, 0x9 bne _08040FFC movs r0, 0x2 orrs r4, r0 _08040FFC: movs r0, 0x2 ands r0, r4 cmp r0, 0 beq _0804101A ldr r0, [sp, 0x14] cmp r0, 0 bne _0804101A mov r0, sp adds r1, r7, 0 mov r2, r8 mov r3, r9 bl sub_8041108 movs r1, 0x1 str r1, [sp, 0x14] _0804101A: movs r0, 0x1 ands r4, r0 cmp r4, 0 beq _08040FDE _08041022: movs r0, 0 strb r0, [r6] _08041026: add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8040DA0 thumb_func_start sub_8041038 sub_8041038: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 adds r6, r0, 0 adds r7, r1, 0 mov r8, r2 mov r10, r3 ldr r0, [r7, 0x70] mov r9, r0 ldrh r4, [r2, 0x2] adds r0, r7, 0 bl sub_807E580 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 mov r2, r10 bl sub_80412E0 lsls r0, 16 lsrs r0, 16 str r0, [sp] bl sub_800ECB8 movs r1, 0x2 ldrsh r0, [r0, r1] cmp r0, 0 beq _080410F4 mov r0, r9 movs r1, 0x4 ldrsh r5, [r0, r1] mov r0, r8 ldrh r4, [r0, 0x2] adds r0, r7, 0 bl sub_807E580 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 mov r2, r10 bl sub_80412E0 adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r5, 0 bl sub_800E710 adds r2, r0, 0 movs r0, 0x1 negs r0, r0 cmp r2, r0 beq _080410BE adds r0, r6, 0 adds r0, 0x8 adds r1, r7, 0 adds r1, 0x28 lsls r2, 24 lsrs r2, 24 bl sub_800569C b _080410C2 _080410BE: movs r0, 0 str r0, [r6, 0x8] _080410C2: mov r1, sp ldrh r1, [r1] strh r1, [r6] mov r1, r9 ldrh r0, [r1, 0x4] strh r0, [r6, 0x2] ldr r0, [r7, 0xC] cmp r0, 0 bge _080410D6 adds r0, 0xFF _080410D6: asrs r0, 8 strh r0, [r6, 0x4] ldr r0, [r7, 0x10] cmp r0, 0 bge _080410E2 adds r0, 0xFF _080410E2: asrs r0, 8 strh r0, [r6, 0x6] mov r0, r9 adds r0, 0x46 ldrb r0, [r0] str r0, [r6, 0xC] movs r0, 0 str r0, [r6, 0x10] b _080410F6 _080410F4: strh r0, [r6] _080410F6: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8041038 thumb_func_start sub_8041108 sub_8041108: push {r4-r7,lr} adds r6, r0, 0 adds r7, r1, 0 adds r5, r3, 0 ldrh r4, [r2, 0x2] adds r0, r7, 0 bl sub_807E580 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 adds r2, r5, 0 bl sub_80412E0 lsls r0, 16 lsrs r4, r0, 16 adds r0, r4, 0 bl sub_800ECB8 movs r2, 0x2 ldrsh r1, [r0, r2] ldrh r0, [r6] cmp r0, 0 beq _08041162 cmp r1, 0 beq _08041162 adds r0, r6, 0 bl sub_8041500 adds r0, r4, 0 bl sub_800EEF8 bl sub_800EF64 movs r0, 0x5A bl sub_803E46C adds r0, r6, 0 bl sub_800E52C adds r1, r7, 0 movs r2, 0x1 bl sub_8042DD4 _08041162: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8041108 thumb_func_start sub_8041168 sub_8041168: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x18 mov r8, r0 adds r6, r1, 0 adds r7, r2, 0 mov r9, r3 adds r1, r7, 0 bl sub_804143C adds r5, r0, 0 cmp r5, 0 beq _0804118A movs r5, 0x1 _0804118A: ldrh r4, [r7, 0x2] mov r0, r8 bl sub_807E580 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 adds r2, r5, 0 bl sub_80412E0 lsls r0, 16 lsrs r0, 16 mov r10, r0 bl sub_800ECB8 movs r1, 0x4 ldrsh r5, [r0, r1] movs r2, 0 str r2, [sp, 0x14] adds r0, r6, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080411CA ldr r0, [r6, 0x70] str r0, [sp, 0x14] adds r0, r6, 0 bl sub_8042768 b _080411D0 _080411CA: mov r0, r9 bl sub_803F428 _080411D0: lsls r0, 24 cmp r0, 0 beq _080412CE mov r0, r8 adds r1, r7, 0 bl sub_80414C0 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _080412CE cmp r5, 0 beq _080412CE adds r0, r5, 0 bl sub_800ECA4 ldr r5, [r0, 0x1C] movs r0, 0x1 negs r0, r0 cmp r5, r0 beq _08041216 adds r0, r6, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08041216 add r0, sp, 0x8 adds r1, r6, 0 adds r1, 0x28 lsls r2, r5, 24 lsrs r2, 24 bl sub_800569C b _08041218 _08041216: str r4, [sp, 0x8] _08041218: mov r0, sp mov r1, r10 strh r1, [r0] ldr r2, [sp, 0x14] cmp r2, 0 beq _08041248 mov r1, sp ldrh r0, [r2, 0x4] strh r0, [r1, 0x2] ldr r0, [r6, 0xC] cmp r0, 0 bge _08041232 adds r0, 0xFF _08041232: asrs r0, 8 strh r0, [r1, 0x4] mov r1, sp ldr r0, [r6, 0x10] cmp r0, 0 bge _08041240 adds r0, 0xFF _08041240: asrs r0, 8 strh r0, [r1, 0x6] movs r0, 0 b _0804128C _08041248: mov r1, sp movs r0, 0x1 strh r0, [r1, 0x2] mov r0, r9 movs r2, 0 ldrsh r1, [r0, r2] lsls r0, r1, 1 adds r0, r1 lsls r0, 11 mov r1, sp movs r2, 0xC0 lsls r2, 4 adds r0, r2 cmp r0, 0 bge _08041268 adds r0, 0xFF _08041268: asrs r0, 8 strh r0, [r1, 0x4] mov r0, r9 movs r2, 0x2 ldrsh r1, [r0, r2] lsls r0, r1, 1 adds r0, r1 lsls r0, 11 mov r1, sp movs r2, 0x80 lsls r2, 5 adds r0, r2 cmp r0, 0 bge _08041286 adds r0, 0xFF _08041286: asrs r0, 8 strh r0, [r1, 0x6] ldr r0, [sp, 0x14] _0804128C: str r0, [sp, 0xC] movs r0, 0 str r0, [sp, 0x10] mov r0, sp bl sub_8041500 mov r0, r10 bl sub_800EEE0 bl sub_800EF64 mov r0, sp bl sub_800EBC8 adds r4, r0, 0 movs r0, 0x5B bl sub_803E46C adds r0, r4, 0 adds r1, r6, 0 movs r2, 0x6 bl sub_8042DD4 b _080412C2 _080412BC: movs r0, 0x28 bl sub_803E46C _080412C2: adds r0, r4, 0 bl sub_800E9A8 lsls r0, 24 cmp r0, 0 bne _080412BC _080412CE: add sp, 0x18 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8041168 thumb_func_start sub_80412E0 sub_80412E0: push {r4,lr} lsls r0, 16 lsrs r4, r0, 16 lsls r1, 24 lsrs r0, r1, 24 adds r3, r4, 0 cmp r3, 0x1F bne _08041344 cmp r0, 0x7 bls _080412F6 b _080413F6 _080412F6: lsls r0, 2 ldr r1, _08041300 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08041300: .4byte _08041304 .align 2, 0 _08041304: .4byte _080413F4 .4byte _08041324 .4byte _0804132A .4byte _080413F4 .4byte _08041334 .4byte _0804133A .4byte _080413F4 .4byte _0804133A _08041324: movs r3, 0xCF lsls r3, 1 b _080413F6 _0804132A: ldr r3, _08041330 b _080413F6 .align 2, 0 _08041330: .4byte 0x000001a1 _08041334: movs r3, 0xD0 lsls r3, 1 b _080413F6 _0804133A: ldr r3, _08041340 b _080413F6 .align 2, 0 _08041340: .4byte 0x0000019f _08041344: cmp r2, 0 beq _080413F6 cmp r3, 0x97 beq _080413B4 cmp r3, 0x97 bgt _0804136C cmp r3, 0x3C beq _0804139C cmp r3, 0x3C bgt _08041362 cmp r3, 0x8 beq _08041396 cmp r3, 0x19 beq _080413E4 b _080413F4 _08041362: cmp r3, 0x4B beq _080413A4 cmp r3, 0x64 beq _080413AA b _080413F4 _0804136C: cmp r3, 0xCD beq _080413CA cmp r3, 0xCD bgt _0804137E cmp r3, 0x99 beq _080413BA cmp r3, 0x9C beq _080413C4 b _080413F4 _0804137E: cmp r3, 0xED beq _080413DA cmp r3, 0xED bgt _0804138C cmp r3, 0xE3 beq _080413EA b _080413F4 _0804138C: movs r0, 0xAE lsls r0, 1 cmp r3, r0 beq _080413D4 b _080413F4 _08041396: movs r3, 0xD1 lsls r3, 1 b _080413F6 _0804139C: ldr r3, _080413A0 b _080413F6 .align 2, 0 _080413A0: .4byte 0x000001a3 _080413A4: movs r3, 0xD2 lsls r3, 1 b _080413F6 _080413AA: ldr r3, _080413B0 b _080413F6 .align 2, 0 _080413B0: .4byte 0x000001a5 _080413B4: movs r3, 0xD3 lsls r3, 1 b _080413F6 _080413BA: ldr r3, _080413C0 b _080413F6 .align 2, 0 _080413C0: .4byte 0x000001a7 _080413C4: movs r3, 0xD4 lsls r3, 1 b _080413F6 _080413CA: ldr r3, _080413D0 b _080413F6 .align 2, 0 _080413D0: .4byte 0x000001a9 _080413D4: movs r3, 0xD5 lsls r3, 1 b _080413F6 _080413DA: ldr r3, _080413E0 b _080413F6 .align 2, 0 _080413E0: .4byte 0x000001ab _080413E4: movs r3, 0xD6 lsls r3, 1 b _080413F6 _080413EA: ldr r3, _080413F0 b _080413F6 .align 2, 0 _080413F0: .4byte 0x000001ad _080413F4: adds r3, r4, 0 _080413F6: adds r0, r3, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_80412E0 thumb_func_start sub_8041400 sub_8041400: push {lr} lsls r0, 16 lsrs r0, 16 lsls r1, 24 lsrs r1, 24 bl sub_80412E0 lsls r0, 16 lsrs r0, 16 bl sub_800ED20 pop {r1} bx r1 thumb_func_end sub_8041400 thumb_func_start sub_804141C sub_804141C: push {lr} lsls r0, 16 lsrs r0, 16 lsls r1, 24 lsrs r1, 24 bl sub_80412E0 lsls r0, 16 lsrs r0, 16 bl sub_800EC84 lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end sub_804141C thumb_func_start sub_804143C sub_804143C: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 ldrh r0, [r5, 0x2] cmp r0, 0xED bne _08041476 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080414A4 adds r0, r4, 0 bl sub_80450F8 cmp r0, 0x1 bne _080414A4 ldr r1, [r4, 0x70] adds r0, r1, 0 adds r0, 0x5C ldrb r0, [r0] cmp r0, 0xE beq _080414A0 adds r0, r1, 0 adds r0, 0x5D ldrb r0, [r0] cmp r0, 0xE beq _080414A0 b _0804148A _08041476: cmp r0, 0x19 beq _0804147E cmp r0, 0xE3 bne _0804148E _0804147E: adds r0, r4, 0 bl sub_8070B28 lsls r0, 24 cmp r0, 0 beq _080414A0 _0804148A: movs r0, 0 b _080414B8 _0804148E: cmp r0, 0x97 bne _080414A4 adds r0, r4, 0 bl sub_807E580 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080414A4 _080414A0: movs r0, 0x1 b _080414B8 _080414A4: adds r0, r4, 0 adds r1, r5, 0 bl sub_80570AC adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 negs r0, r1 orrs r0, r1 lsrs r0, 31 _080414B8: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_804143C thumb_func_start sub_80414C0 sub_80414C0: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 ldrh r0, [r4, 0x2] cmp r0, 0x9C bne _080414DC adds r0, r5, 0 bl sub_8045128 bl sub_804AF20 lsls r0, 24 cmp r0, 0 bne _080414F2 _080414DC: ldrh r0, [r4, 0x2] cmp r0, 0x8 bne _080414F6 adds r0, r5, 0 bl sub_8045128 ldrh r1, [r0] movs r0, 0x3 ands r0, r1 cmp r0, 0x1 beq _080414F6 _080414F2: movs r0, 0x1 b _080414F8 _080414F6: movs r0, 0 _080414F8: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80414C0 thumb_func_start sub_8041500 sub_8041500: push {lr} bl sub_800E7D0 lsls r0, 24 cmp r0, 0 beq _08041518 movs r0, 0x5C bl sub_803E46C movs r0, 0x5D bl sub_8052740 _08041518: pop {r0} bx r0 thumb_func_end sub_8041500 thumb_func_start sub_804151C sub_804151C: push {r4-r6,lr} sub sp, 0x8 adds r6, r0, 0 adds r5, r1, 0 lsls r4, r2, 24 lsrs r4, 24 adds r0, r5, 0 bl sub_800DC9C adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 movs r0, 0x2 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] adds r0, r6, 0 adds r1, r5, 0 adds r2, r4, 0 bl sub_8041550 add sp, 0x8 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_804151C thumb_func_start sub_8041550 sub_8041550: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x30 adds r7, r0, 0 mov r10, r1 ldr r0, [sp, 0x54] lsls r2, 24 lsrs r2, 24 str r2, [sp, 0x2C] lsls r3, 24 lsrs r3, 24 mov r9, r3 lsls r0, 24 lsrs r6, r0, 24 adds r0, r7, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0804159C ldr r0, [r7, 0x70] mov r8, r0 adds r0, r7, 0 bl sub_8042768 lsls r0, 24 cmp r0, 0 beq _0804159C cmp r6, 0 bne _080415A2 mov r0, r8 adds r0, 0xFF ldrb r0, [r0] cmp r0, 0x2 bne _080415A2 _0804159C: movs r0, 0x1 negs r0, r0 b _08041692 _080415A2: ldr r1, [sp, 0x50] cmp r1, 0 beq _080415B4 movs r0, 0 cmp r1, 0x2 bne _080415B0 movs r0, 0x1 _080415B0: bl sub_804178C _080415B4: add r6, sp, 0x28 adds r1, r7, 0 adds r1, 0x28 adds r0, r6, 0 mov r2, r9 bl sub_800569C movs r2, 0 ldrsh r0, [r6, r2] cmp r0, 0x63 beq _080415F2 ldrh r0, [r6, 0x2] cmp r0, 0x63 beq _080415F2 movs r1, 0 ldrsh r0, [r6, r1] lsls r0, 8 ldr r1, [r7, 0xC] adds r4, r1, r0 movs r2, 0x2 ldrsh r0, [r6, r2] lsls r0, 8 ldr r2, [r7, 0x10] adds r0, r2, r0 movs r1, 0xBA lsls r1, 1 add r1, r8 ldr r1, [r1] subs r5, r0, r1 adds r1, r2, 0 b _08041600 _080415F2: ldr r4, [r7, 0xC] movs r0, 0xBA lsls r0, 1 add r0, r8 ldr r1, [r7, 0x10] ldr r0, [r0] subs r5, r1, r0 _08041600: cmp r1, 0 bge _08041606 adds r1, 0xFF _08041606: asrs r1, 8 ldr r0, _0804166C ldr r0, [r0] ldr r2, _08041670 adds r0, r2 movs r2, 0 ldrsh r0, [r0, r2] subs r1, r0 lsrs r0, r1, 31 adds r0, r1, r0 asrs r1, r0, 1 adds r1, 0x1 mov r0, r10 str r0, [sp] movs r3, 0 str r3, [sp, 0x4] movs r6, 0x1 negs r6, r6 str r6, [sp, 0x8] mov r2, sp adds r0, r4, 0 cmp r4, 0 bge _08041636 adds r0, 0xFF _08041636: asrs r0, 8 strh r0, [r2, 0xC] mov r2, sp adds r0, r5, 0 cmp r0, 0 bge _08041644 adds r0, 0xFF _08041644: asrs r0, 8 strh r0, [r2, 0xE] str r6, [sp, 0x14] mov r0, sp strh r3, [r0, 0x10] strh r3, [r0, 0x12] str r1, [sp, 0x18] add r0, sp, 0x1C bl sub_8004E8C mov r0, sp movs r1, 0 bl sub_8041764 adds r4, r0, 0 ldr r1, [sp, 0x2C] cmp r1, 0 beq _08041690 movs r5, 0 b _0804167C .align 2, 0 _0804166C: .4byte gUnknown_203B418 _08041670: .4byte 0x000181f2 _08041674: movs r0, 0x42 bl sub_803E46C adds r5, 0x1 _0804167C: cmp r5, 0x63 bgt _0804168C adds r0, r4, 0 bl sub_800E9A8 lsls r0, 24 cmp r0, 0 bne _08041674 _0804168C: movs r4, 0x1 negs r4, r4 _08041690: adds r0, r4, 0 _08041692: add sp, 0x30 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8041550 thumb_func_start sub_80416A4 sub_80416A4: push {r4,lr} sub sp, 0x8 lsls r2, 24 lsrs r2, 24 movs r3, 0 ldrsh r4, [r0, r3] lsls r3, r4, 1 adds r3, r4 lsls r3, 11 movs r4, 0xC0 lsls r4, 4 adds r3, r4 str r3, [sp] movs r4, 0x2 ldrsh r3, [r0, r4] lsls r0, r3, 1 adds r0, r3 lsls r0, 11 movs r3, 0x80 lsls r3, 5 adds r0, r3 str r0, [sp, 0x4] mov r0, sp bl sub_80416E0 add sp, 0x8 pop {r4} pop {r1} bx r1 thumb_func_end sub_80416A4 thumb_func_start sub_80416E0 sub_80416E0: push {r4,r5,lr} sub sp, 0x28 adds r3, r0, 0 lsls r2, 24 lsrs r5, r2, 24 str r1, [sp] movs r2, 0 str r2, [sp, 0x4] movs r4, 0x1 negs r4, r4 str r4, [sp, 0x8] mov r1, sp ldr r0, [r3] cmp r0, 0 bge _08041700 adds r0, 0xFF _08041700: asrs r0, 8 strh r0, [r1, 0xC] mov r1, sp ldr r0, [r3, 0x4] cmp r0, 0 bge _0804170E adds r0, 0xFF _0804170E: asrs r0, 8 strh r0, [r1, 0xE] str r4, [sp, 0x14] mov r0, sp strh r2, [r0, 0x10] strh r2, [r0, 0x12] ldr r0, _08041738 str r0, [sp, 0x18] add r0, sp, 0x1C bl sub_8004E8C mov r0, sp movs r1, 0 bl sub_8041764 adds r4, r0, 0 cmp r5, 0 beq _08041758 movs r5, 0 b _08041744 .align 2, 0 _08041738: .4byte 0x0000ffff _0804173C: movs r0, 0x42 bl sub_803E46C adds r5, 0x1 _08041744: cmp r5, 0x63 bgt _08041754 adds r0, r4, 0 bl sub_800E9A8 lsls r0, 24 cmp r0, 0 bne _0804173C _08041754: movs r4, 0x1 negs r4, r4 _08041758: adds r0, r4, 0 add sp, 0x28 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80416E0 thumb_func_start sub_8041764 sub_8041764: push {r4,r5,lr} adds r5, r0, 0 lsls r4, r1, 24 lsrs r4, 24 ldr r0, [r5] bl sub_800EE5C bl sub_800EF64 cmp r4, 0 beq _08041780 movs r0, 0x42 bl sub_803E46C _08041780: adds r0, r5, 0 bl sub_800E890 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8041764 thumb_func_start sub_804178C sub_804178C: push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 ldr r0, _080417B0 ldr r0, [r0] ldr r1, _080417B4 adds r0, r1 str r4, [r0] adds r0, r5, 0 bl sub_800E9FC lsls r0, 24 cmp r0, 0 beq _080417E0 ldr r6, _080417B8 b _080417C4 .align 2, 0 _080417B0: .4byte gUnknown_203B418 _080417B4: .4byte 0x00018204 _080417B8: .4byte 0x000003e7 _080417BC: movs r0, 0x4A bl sub_803E46C adds r4, 0x1 _080417C4: cmp r4, r6 bgt _080417D4 adds r0, r5, 0 bl sub_800E9FC lsls r0, 24 cmp r0, 0 bne _080417BC _080417D4: movs r0, 0x4A bl sub_803E46C movs r0, 0x4A bl sub_803E46C _080417E0: movs r0, 0xFA lsls r0, 2 cmp r4, r0 beq _080417EC cmp r5, 0 beq _080417F0 _080417EC: bl sub_800DBBC _080417F0: ldr r2, _08041824 ldr r0, [r2] cmp r0, 0x1E bgt _08041860 ldr r1, _08041828 ldrb r7, [r1] movs r0, 0x1 strb r0, [r1] movs r4, 0 adds r5, r2, 0 ldr r6, _0804182C _08041806: ldr r0, [r5] cmp r0, 0x1E bgt _08041838 adds r0, 0x4 str r0, [r5] ldr r1, _08041830 ldrh r2, [r1] movs r3, 0 ldrsh r0, [r1, r3] cmp r0, r6 beq _0804183C ldr r3, _08041834 adds r0, r2, r3 strh r0, [r1] b _0804183C .align 2, 0 _08041824: .4byte gUnknown_202EDC8 _08041828: .4byte gUnknown_203B40D _0804182C: .4byte 0x00000808 _08041830: .4byte gUnknown_2026E4E _08041834: .4byte 0xfffffeff _08041838: movs r0, 0x1F str r0, [r5] _0804183C: bl sub_803EA10 movs r0, 0x4A bl sub_803E46C ldr r0, [r5] cmp r0, 0x1F beq _08041854 adds r4, 0x1 ldr r0, _0804186C cmp r4, r0 ble _08041806 _08041854: ldr r0, _08041870 ldr r2, _08041874 adds r1, r2, 0 strh r1, [r0] ldr r0, _08041878 strb r7, [r0] _08041860: bl sub_8042E98 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804186C: .4byte 0x000003e7 _08041870: .4byte gUnknown_2026E4E _08041874: .4byte 0x00000808 _08041878: .4byte gUnknown_203B40D thumb_func_end sub_804178C thumb_func_start sub_804187C sub_804187C: ldr r0, [r0, 0x70] movs r1, 0x80 lsls r1, 2 adds r0, r1 ldr r0, [r0] bx lr thumb_func_end sub_804187C thumb_func_start sub_8041888 sub_8041888: push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 movs r5, 0 _08041890: ldr r0, _080418CC ldr r0, [r0] lsls r1, r5, 2 ldr r2, _080418D0 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080418C0 ldr r1, [r4, 0x70] cmp r6, 0 beq _080418BA movs r0, 0xA6 lsls r0, 1 adds r1, r0 movs r0, 0x1 strb r0, [r1] _080418BA: adds r0, r4, 0 bl sub_80418D4 _080418C0: adds r5, 0x1 cmp r5, 0x13 ble _08041890 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080418CC: .4byte gUnknown_203B418 _080418D0: .4byte 0x000135cc thumb_func_end sub_8041888 thumb_func_start sub_80418D4 sub_80418D4: push {r4,lr} adds r4, r0, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _080418E4 b _08041A8C _080418E4: ldr r2, [r4, 0x70] movs r3, 0 movs r1, 0x1 movs r4, 0x2 ldrsh r0, [r2, r4] cmp r0, 0xB9 bne _08041902 adds r0, r2, 0 adds r0, 0xA9 ldrb r0, [r0] movs r1, 0x7F eors r0, r1 negs r1, r0 orrs r1, r0 lsrs r1, 31 _08041902: cmp r1, 0 beq _08041914 ldr r1, _08041A94 adds r0, r2, 0 adds r0, 0xA8 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r3, [r0] _08041914: ldr r1, _08041A98 adds r0, r2, 0 adds r0, 0xAC ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] orrs r3, r0 ldr r1, _08041A9C adds r0, r2, 0 adds r0, 0xB0 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] orrs r3, r0 ldr r1, _08041AA0 adds r0, r2, 0 adds r0, 0xBC ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] orrs r3, r0 ldr r1, _08041AA4 adds r0, r2, 0 adds r0, 0xC0 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] orrs r3, r0 ldr r1, _08041AA8 adds r0, r2, 0 adds r0, 0xC4 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] orrs r3, r0 ldr r1, _08041AAC adds r0, r2, 0 adds r0, 0xC8 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] orrs r3, r0 ldr r1, _08041AB0 adds r0, r2, 0 adds r0, 0xD0 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] orrs r3, r0 ldr r1, _08041AB4 adds r0, r2, 0 adds r0, 0xDC ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] orrs r3, r0 ldr r1, _08041AB8 adds r0, r2, 0 adds r0, 0xE0 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] orrs r3, r0 ldr r1, _08041ABC adds r0, r2, 0 adds r0, 0xE4 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] orrs r3, r0 ldr r1, _08041AC0 adds r0, r2, 0 adds r0, 0xE8 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] orrs r3, r0 ldr r1, _08041AC4 adds r0, r2, 0 adds r0, 0xEC ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] orrs r3, r0 adds r0, r2, 0 adds r0, 0xF4 ldrb r0, [r0] cmp r0, 0 beq _080419E4 movs r0, 0x80 lsls r0, 17 orrs r3, r0 _080419E4: adds r0, r2, 0 adds r0, 0xF5 ldrb r0, [r0] cmp r0, 0 beq _080419F4 movs r0, 0x80 lsls r0, 18 orrs r3, r0 _080419F4: ldrb r0, [r2, 0x6] cmp r0, 0 bne _08041A14 movs r0, 0x10 ldrsh r1, [r2, r0] cmp r1, 0 bge _08041A04 adds r1, 0x3 _08041A04: asrs r1, 2 movs r4, 0xE ldrsh r0, [r2, r4] cmp r1, r0 ble _08041A14 movs r0, 0x80 lsls r0, 6 orrs r3, r0 _08041A14: ldr r0, _08041AC8 ldr r0, [r0] ldr r1, _08041ACC adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _08041A36 adds r0, r2, 0 adds r0, 0x60 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08041A36 movs r0, 0x80 lsls r0, 6 orrs r3, r0 _08041A36: ldr r0, [r2, 0x2C] cmp r0, 0xFF ble _08041A7E ldr r0, [r2, 0x30] cmp r0, 0xFF ble _08041A7E ldr r0, [r2, 0x34] cmp r0, 0xFF ble _08041A7E ldr r0, [r2, 0x38] cmp r0, 0xFF ble _08041A7E movs r4, 0x1C ldrsh r0, [r2, r4] cmp r0, 0x9 ble _08041A7E movs r1, 0x1E ldrsh r0, [r2, r1] cmp r0, 0x9 ble _08041A7E movs r4, 0x20 ldrsh r0, [r2, r4] cmp r0, 0x9 ble _08041A7E movs r1, 0x22 ldrsh r0, [r2, r1] cmp r0, 0x9 ble _08041A7E movs r4, 0x24 ldrsh r0, [r2, r4] cmp r0, 0x9 ble _08041A7E movs r1, 0x26 ldrsh r0, [r2, r1] cmp r0, 0x9 bgt _08041A84 _08041A7E: movs r0, 0x80 lsls r0, 20 orrs r3, r0 _08041A84: movs r4, 0x80 lsls r4, 2 adds r0, r2, r4 str r3, [r0] _08041A8C: pop {r4} pop {r0} bx r0 .align 2, 0 _08041A94: .4byte gUnknown_80F669C _08041A98: .4byte gUnknown_80F66B4 _08041A9C: .4byte gUnknown_80F66C8 _08041AA0: .4byte gUnknown_80F66E8 _08041AA4: .4byte gUnknown_80F6708 _08041AA8: .4byte gUnknown_80F673C _08041AAC: .4byte gUnknown_80F6778 _08041AB0: .4byte gUnknown_80F6788 _08041AB4: .4byte gUnknown_80F6794 _08041AB8: .4byte gUnknown_80F67A8 _08041ABC: .4byte gUnknown_80F67B4 _08041AC0: .4byte gUnknown_80F67C4 _08041AC4: .4byte gUnknown_80F67D4 _08041AC8: .4byte gUnknown_203B418 _08041ACC: .4byte 0x00000676 thumb_func_end sub_80418D4 thumb_func_start sub_8041AD0 sub_8041AD0: push {lr} movs r1, 0xA2 lsls r1, 1 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_8041AD0 thumb_func_start sub_8041AE0 sub_8041AE0: push {lr} ldr r1, _08041AF0 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 .align 2, 0 _08041AF0: .4byte 0x00000143 thumb_func_end sub_8041AE0 thumb_func_start sub_8041AF4 sub_8041AF4: push {r4,lr} adds r4, r0, 0 movs r1, 0x25 movs r2, 0x1 bl sub_804151C ldr r1, _08041B10 adds r0, r4, 0 bl sub_80421C0 pop {r4} pop {r0} bx r0 .align 2, 0 _08041B10: .4byte 0x00000197 thumb_func_end sub_8041AF4 thumb_func_start nullsub_57 nullsub_57: bx lr thumb_func_end nullsub_57 thumb_func_start sub_8041B18 sub_8041B18: push {lr} ldr r1, _08041B28 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 .align 2, 0 _08041B28: .4byte 0x00000141 thumb_func_end sub_8041B18 thumb_func_start nullsub_58 nullsub_58: bx lr thumb_func_end nullsub_58 thumb_func_start nullsub_59 nullsub_59: bx lr thumb_func_end nullsub_59 thumb_func_start sub_8041B34 sub_8041B34: push {lr} movs r1, 0x7 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_8041B34 thumb_func_start nullsub_60 nullsub_60: bx lr thumb_func_end nullsub_60 thumb_func_start sub_8041B48 sub_8041B48: push {lr} movs r1, 0x4 movs r2, 0 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_8041B48 thumb_func_start nullsub_61 nullsub_61: bx lr thumb_func_end nullsub_61 thumb_func_start sub_8041B5C sub_8041B5C: push {lr} ldr r1, _08041B6C movs r2, 0x1 bl sub_804151C pop {r0} bx r0 .align 2, 0 _08041B6C: .4byte 0x00000171 thumb_func_end sub_8041B5C thumb_func_start nullsub_62 nullsub_62: bx lr thumb_func_end nullsub_62 thumb_func_start sub_8041B74 sub_8041B74: push {lr} ldr r1, _08041B84 movs r2, 0 bl sub_804151C pop {r0} bx r0 .align 2, 0 _08041B84: .4byte 0x00000171 thumb_func_end sub_8041B74 thumb_func_start nullsub_63 nullsub_63: bx lr thumb_func_end nullsub_63 thumb_func_start nullsub_64 nullsub_64: bx lr thumb_func_end nullsub_64 thumb_func_start sub_8041B90 sub_8041B90: push {lr} movs r1, 0xD6 lsls r1, 1 movs r2, 0 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_8041B90 thumb_func_start nullsub_65 nullsub_65: bx lr thumb_func_end nullsub_65 thumb_func_start nullsub_66 nullsub_66: bx lr thumb_func_end nullsub_66 thumb_func_start sub_8041BA8 sub_8041BA8: push {lr} movs r1, 0x4 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_8041BA8 thumb_func_start nullsub_67 nullsub_67: bx lr thumb_func_end nullsub_67 thumb_func_start sub_8041BBC sub_8041BBC: push {lr} movs r1, 0xD4 lsls r1, 1 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_8041BBC thumb_func_start nullsub_68 nullsub_68: bx lr thumb_func_end nullsub_68 thumb_func_start sub_8041BD0 sub_8041BD0: push {lr} lsls r1, 24 cmp r1, 0 beq _08041BDE ldr r1, _08041BE4 bl sub_80421C0 _08041BDE: pop {r0} bx r0 .align 2, 0 _08041BE4: .4byte 0x000001a5 thumb_func_end sub_8041BD0 thumb_func_start sub_8041BE8 sub_8041BE8: push {lr} movs r1, 0xCB lsls r1, 1 bl sub_80421C0 pop {r0} bx r0 thumb_func_end sub_8041BE8 thumb_func_start sub_8041BF8 sub_8041BF8: push {lr} movs r1, 0xA movs r2, 0x8 bl sub_806CDD4 pop {r0} bx r0 thumb_func_end sub_8041BF8 thumb_func_start sub_8041C08 sub_8041C08: push {lr} ldr r1, _08041C18 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 .align 2, 0 _08041C18: .4byte 0x000001a7 thumb_func_end sub_8041C08 thumb_func_start sub_8041C1C sub_8041C1C: push {lr} ldr r1, _08041C2C movs r2, 0x1 bl sub_804151C pop {r0} bx r0 .align 2, 0 _08041C2C: .4byte 0x000001a7 thumb_func_end sub_8041C1C thumb_func_start nullsub_69 nullsub_69: bx lr thumb_func_end nullsub_69 thumb_func_start sub_8041C34 sub_8041C34: push {lr} movs r1, 0x4C movs r2, 0x1 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_8041C34 thumb_func_start nullsub_70 nullsub_70: bx lr thumb_func_end nullsub_70 thumb_func_start nullsub_71 nullsub_71: bx lr thumb_func_end nullsub_71 thumb_func_start sub_8041C4C sub_8041C4C: push {lr} movs r2, 0x1 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_8041C4C thumb_func_start sub_8041C58 sub_8041C58: push {lr} ldr r1, _08041C68 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 .align 2, 0 _08041C68: .4byte 0x000001a9 thumb_func_end sub_8041C58 thumb_func_start sub_8041C6C sub_8041C6C: push {lr} movs r1, 0x9D lsls r1, 1 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_8041C6C thumb_func_start sub_8041C7C sub_8041C7C: push {lr} movs r1, 0x9D lsls r1, 1 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_8041C7C thumb_func_start nullsub_72 nullsub_72: bx lr thumb_func_end nullsub_72 thumb_func_start nullsub_73 nullsub_73: bx lr thumb_func_end nullsub_73 thumb_func_start sub_8041C94 sub_8041C94: push {lr} ldr r1, _08041CA4 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 .align 2, 0 _08041CA4: .4byte 0x00000171 thumb_func_end sub_8041C94 thumb_func_start sub_8041CA8 sub_8041CA8: push {lr} movs r1, 0x7 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_8041CA8 thumb_func_start sub_8041CB8 sub_8041CB8: push {lr} ldr r1, _08041CC8 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 .align 2, 0 _08041CC8: .4byte 0x0000018b thumb_func_end sub_8041CB8 thumb_func_start sub_8041CCC sub_8041CCC: push {lr} movs r1, 0xC5 lsls r1, 1 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_8041CCC thumb_func_start sub_8041CDC sub_8041CDC: push {lr} movs r1, 0x5 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_8041CDC thumb_func_start sub_8041CEC sub_8041CEC: push {lr} ldr r1, _08041CF8 bl sub_80421C0 pop {r0} bx r0 .align 2, 0 _08041CF8: .4byte 0x0000019d thumb_func_end sub_8041CEC thumb_func_start nullsub_74 nullsub_74: bx lr thumb_func_end nullsub_74 thumb_func_start sub_8041D00 sub_8041D00: push {r4,lr} adds r4, r0, 0 adds r0, r1, 0 movs r1, 0x2F movs r2, 0x1 bl sub_804151C adds r0, r4, 0 movs r1, 0x30 movs r2, 0x1 bl sub_804151C pop {r4} pop {r0} bx r0 thumb_func_end sub_8041D00 thumb_func_start nullsub_75 nullsub_75: bx lr thumb_func_end nullsub_75 thumb_func_start nullsub_76 nullsub_76: bx lr thumb_func_end nullsub_76 thumb_func_start nullsub_77 nullsub_77: bx lr thumb_func_end nullsub_77 thumb_func_start nullsub_78 nullsub_78: bx lr thumb_func_end nullsub_78 thumb_func_start nullsub_79 nullsub_79: bx lr thumb_func_end nullsub_79 thumb_func_start nullsub_80 nullsub_80: bx lr thumb_func_end nullsub_80 thumb_func_start sub_8041D38 sub_8041D38: push {lr} movs r1, 0x21 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_8041D38 thumb_func_start sub_8041D48 sub_8041D48: push {lr} ldr r1, _08041D54 bl sub_80421C0 pop {r0} bx r0 .align 2, 0 _08041D54: .4byte 0x00000191 thumb_func_end sub_8041D48 thumb_func_start nullsub_81 nullsub_81: bx lr thumb_func_end nullsub_81 thumb_func_start sub_8041D5C sub_8041D5C: push {r4,lr} adds r4, r0, 0 bl sub_8042768 lsls r0, 24 cmp r0, 0 beq _08041D7E ldr r0, [r4, 0x70] movs r1, 0x89 lsls r1, 1 adds r0, r1 ldrb r0, [r0] adds r1, r4, 0 movs r2, 0x1 movs r3, 0xB bl sub_803ED30 _08041D7E: pop {r4} pop {r0} bx r0 thumb_func_end sub_8041D5C thumb_func_start sub_8041D84 sub_8041D84: push {lr} ldr r1, _08041D90 bl sub_80421C0 pop {r0} bx r0 .align 2, 0 _08041D90: .4byte 0x0000019f thumb_func_end sub_8041D84 thumb_func_start nullsub_82 nullsub_82: bx lr thumb_func_end nullsub_82 thumb_func_start nullsub_83 nullsub_83: bx lr thumb_func_end nullsub_83 thumb_func_start sub_8041D9C sub_8041D9C: push {lr} ldr r1, _08041DAC movs r2, 0x1 bl sub_804151C pop {r0} bx r0 .align 2, 0 _08041DAC: .4byte 0x00000131 thumb_func_end sub_8041D9C thumb_func_start sub_8041DB0 sub_8041DB0: push {lr} movs r1, 0x30 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_8041DB0 thumb_func_start nullsub_84 nullsub_84: bx lr thumb_func_end nullsub_84 thumb_func_start nullsub_85 nullsub_85: bx lr thumb_func_end nullsub_85 thumb_func_start nullsub_204 nullsub_204: bx lr thumb_func_end nullsub_204 thumb_func_start nullsub_86 nullsub_86: bx lr thumb_func_end nullsub_86 thumb_func_start nullsub_87 nullsub_87: bx lr thumb_func_end nullsub_87 thumb_func_start nullsub_88 nullsub_88: bx lr thumb_func_end nullsub_88 thumb_func_start sub_8041DD8 sub_8041DD8: push {r4,r5,lr} adds r4, r0, 0 lsls r1, 16 asrs r5, r1, 16 movs r1, 0xE bl sub_8071858 lsls r0, 24 cmp r0, 0 beq _08041DF8 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x1 bl sub_804151C b _08041E02 _08041DF8: adds r0, r4, 0 movs r1, 0xE movs r2, 0x1 bl sub_804151C _08041E02: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8041DD8 thumb_func_start nullsub_89 nullsub_89: bx lr thumb_func_end nullsub_89 thumb_func_start sub_8041E0C sub_8041E0C: push {lr} movs r1, 0x41 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_8041E0C thumb_func_start sub_8041E1C sub_8041E1C: push {r4,lr} adds r4, r0, 0 movs r1, 0x8F lsls r1, 1 movs r2, 0x1 bl sub_804151C movs r1, 0xCE lsls r1, 1 adds r0, r4, 0 bl sub_80421C0 pop {r4} pop {r0} bx r0 thumb_func_end sub_8041E1C thumb_func_start sub_8041E3C sub_8041E3C: push {lr} movs r1, 0xD7 lsls r1, 1 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_8041E3C thumb_func_start sub_8041E4C sub_8041E4C: push {lr} ldr r1, _08041E5C movs r2, 0x1 bl sub_804151C pop {r0} bx r0 .align 2, 0 _08041E5C: .4byte 0x000001b1 thumb_func_end sub_8041E4C thumb_func_start sub_8041E60 sub_8041E60: push {lr} ldr r1, _08041E70 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 .align 2, 0 _08041E70: .4byte 0x000001a9 thumb_func_end sub_8041E60 thumb_func_start sub_8041E74 sub_8041E74: push {lr} movs r1, 0xC9 lsls r1, 1 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_8041E74 thumb_func_start sub_8041E84 sub_8041E84: push {lr} movs r1, 0xC7 lsls r1, 1 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_8041E84 thumb_func_start sub_8041E94 sub_8041E94: push {lr} movs r1, 0xC8 lsls r1, 1 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_8041E94 thumb_func_start sub_8041EA4 sub_8041EA4: push {lr} movs r1, 0x15 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_8041EA4 thumb_func_start sub_8041EB4 sub_8041EB4: push {lr} ldr r1, _08041EC4 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 .align 2, 0 _08041EC4: .4byte 0x00000171 thumb_func_end sub_8041EB4 thumb_func_start sub_8041EC8 sub_8041EC8: push {lr} ldr r1, _08041ED4 bl sub_80421C0 pop {r0} bx r0 .align 2, 0 _08041ED4: .4byte 0x00000197 thumb_func_end sub_8041EC8 thumb_func_start sub_8041ED8 sub_8041ED8: push {lr} ldr r1, _08041EE4 bl sub_80421C0 pop {r0} bx r0 .align 2, 0 _08041EE4: .4byte 0x00000197 thumb_func_end sub_8041ED8 thumb_func_start sub_8041EE8 sub_8041EE8: push {lr} movs r1, 0x15 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_8041EE8 thumb_func_start sub_8041EF8 sub_8041EF8: push {lr} movs r1, 0xF movs r2, 0x1 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_8041EF8 thumb_func_start sub_8041F08 sub_8041F08: push {lr} sub sp, 0x8 movs r1, 0x2 str r1, [sp] movs r1, 0 str r1, [sp, 0x4] movs r1, 0x15 movs r2, 0x1 movs r3, 0x3 bl sub_8041550 add sp, 0x8 pop {r0} bx r0 thumb_func_end sub_8041F08 thumb_func_start nullsub_90 nullsub_90: bx lr thumb_func_end nullsub_90 thumb_func_start sub_8041F28 sub_8041F28: push {lr} cmp r1, 0 bne _08041F3A movs r1, 0xCA lsls r1, 1 movs r2, 0x1 bl sub_804151C b _08041F42 _08041F3A: ldr r1, _08041F48 movs r2, 0x1 bl sub_804151C _08041F42: pop {r0} bx r0 .align 2, 0 _08041F48: .4byte 0x00000193 thumb_func_end sub_8041F28 thumb_func_start sub_8041F4C sub_8041F4C: push {lr} cmp r1, 0 bne _08041F60 ldr r1, _08041F5C movs r2, 0x1 bl sub_804151C b _08041F68 .align 2, 0 _08041F5C: .4byte 0x0000018f _08041F60: ldr r1, _08041F6C movs r2, 0x1 bl sub_804151C _08041F68: pop {r0} bx r0 .align 2, 0 _08041F6C: .4byte 0x00000191 thumb_func_end sub_8041F4C thumb_func_start sub_8041F70 sub_8041F70: push {lr} cmp r1, 0 bne _08041F84 ldr r1, _08041F80 movs r2, 0x1 bl sub_804151C b _08041F8E .align 2, 0 _08041F80: .4byte 0x000001a9 _08041F84: movs r1, 0xC9 lsls r1, 1 movs r2, 0x1 bl sub_804151C _08041F8E: pop {r0} bx r0 thumb_func_end sub_8041F70 thumb_func_start sub_8041F94 sub_8041F94: push {lr} cmp r1, 0 bne _08041FA6 movs r1, 0xC7 lsls r1, 1 movs r2, 0x1 bl sub_804151C b _08041FB0 _08041FA6: movs r1, 0xC8 lsls r1, 1 movs r2, 0x1 bl sub_804151C _08041FB0: pop {r0} bx r0 thumb_func_end sub_8041F94 thumb_func_start sub_8041FB4 sub_8041FB4: push {lr} cmp r1, 0 bne _08041FC8 ldr r1, _08041FC4 movs r2, 0x1 bl sub_804151C b _08041FD2 .align 2, 0 _08041FC4: .4byte 0x000001a9 _08041FC8: movs r1, 0xC9 lsls r1, 1 movs r2, 0x1 bl sub_804151C _08041FD2: pop {r0} bx r0 thumb_func_end sub_8041FB4 thumb_func_start sub_8041FD8 sub_8041FD8: push {lr} cmp r1, 0 bne _08041FEA movs r1, 0xCA lsls r1, 1 movs r2, 0x1 bl sub_804151C b _08041FF2 _08041FEA: ldr r1, _08041FF8 movs r2, 0x1 bl sub_804151C _08041FF2: pop {r0} bx r0 .align 2, 0 _08041FF8: .4byte 0x00000193 thumb_func_end sub_8041FD8 thumb_func_start sub_8041FFC sub_8041FFC: push {lr} cmp r1, 0 bne _0804200E movs r1, 0xC7 lsls r1, 1 movs r2, 0x1 bl sub_804151C b _08042018 _0804200E: movs r1, 0xC8 lsls r1, 1 movs r2, 0x1 bl sub_804151C _08042018: pop {r0} bx r0 thumb_func_end sub_8041FFC thumb_func_start sub_804201C sub_804201C: push {lr} cmp r1, 0 bne _08042030 ldr r1, _0804202C movs r2, 0x1 bl sub_804151C b _08042038 .align 2, 0 _0804202C: .4byte 0x0000018f _08042030: ldr r1, _0804203C movs r2, 0x1 bl sub_804151C _08042038: pop {r0} bx r0 .align 2, 0 _0804203C: .4byte 0x00000191 thumb_func_end sub_804201C thumb_func_start sub_8042040 sub_8042040: push {lr} cmp r1, 0 bne _08042052 movs r1, 0xC6 lsls r1, 1 movs r2, 0x1 bl sub_804151C b _0804205A _08042052: movs r1, 0xD movs r2, 0x1 bl sub_804151C _0804205A: pop {r0} bx r0 thumb_func_end sub_8042040 thumb_func_start sub_8042060 sub_8042060: push {lr} cmp r1, 0 bne _08042074 ldr r1, _08042070 movs r2, 0x1 bl sub_804151C b _0804207C .align 2, 0 _08042070: .4byte 0x0000018d _08042074: movs r1, 0xE movs r2, 0x1 bl sub_804151C _0804207C: pop {r0} bx r0 thumb_func_end sub_8042060 thumb_func_start sub_8042080 sub_8042080: push {lr} cmp r1, 0 bne _08042092 movs r1, 0xC6 lsls r1, 1 movs r2, 0x1 bl sub_804151C b _0804209A _08042092: movs r1, 0xD movs r2, 0x1 bl sub_804151C _0804209A: pop {r0} bx r0 thumb_func_end sub_8042080 thumb_func_start sub_80420A0 sub_80420A0: push {lr} ldr r1, _080420B0 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 .align 2, 0 _080420B0: .4byte 0x00000143 thumb_func_end sub_80420A0 thumb_func_start nullsub_91 nullsub_91: bx lr thumb_func_end nullsub_91 thumb_func_start sub_80420B8 sub_80420B8: push {lr} movs r1, 0x19 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_80420B8 thumb_func_start sub_80420C8 sub_80420C8: push {lr} sub sp, 0x8 movs r1, 0x2 str r1, [sp] movs r1, 0 str r1, [sp, 0x4] movs r1, 0x15 movs r2, 0x1 movs r3, 0x3 bl sub_8041550 add sp, 0x8 pop {r0} bx r0 thumb_func_end sub_80420C8 thumb_func_start nullsub_92 nullsub_92: bx lr thumb_func_end nullsub_92 thumb_func_start sub_80420E8 sub_80420E8: push {r4,lr} sub sp, 0x8 adds r4, r0, 0 ldr r1, [r1, 0x8] ldr r0, _0804211C ldr r0, [r0] ldr r2, _08042120 adds r0, r2 ldrb r0, [r0] cmp r0, 0 beq _08042106 adds r0, r1, 0 bl sub_806F62C adds r1, r0, 0 _08042106: cmp r1, 0x1 beq _08042124 cmp r1, 0x1 bcc _08042116 cmp r1, 0x2 beq _08042128 cmp r1, 0x3 beq _0804212C _08042116: movs r1, 0x8 b _0804212E .align 2, 0 _0804211C: .4byte gUnknown_203B418 _08042120: .4byte 0x0000016d _08042124: movs r1, 0x9 b _0804212E _08042128: movs r1, 0xA b _0804212E _0804212C: movs r1, 0xB _0804212E: movs r0, 0 str r0, [sp] movs r0, 0x1 str r0, [sp, 0x4] adds r0, r4, 0 movs r2, 0x1 movs r3, 0x3 bl sub_8041550 add sp, 0x8 pop {r4} pop {r0} bx r0 thumb_func_end sub_80420E8 thumb_func_start sub_8042148 sub_8042148: push {r4,lr} adds r4, r0, 0 ldr r1, _08042164 bl sub_80421C0 movs r1, 0x9F lsls r1, 1 adds r0, r4, 0 movs r2, 0x1 bl sub_804151C pop {r4} pop {r0} bx r0 .align 2, 0 _08042164: .4byte 0x000001a7 thumb_func_end sub_8042148 thumb_func_start nullsub_93 nullsub_93: bx lr thumb_func_end nullsub_93 thumb_func_start sub_804216C sub_804216C: push {lr} adds r0, r1, 0 cmp r2, 0x1 bne _0804217E movs r1, 0xF8 movs r2, 0x1 bl sub_804151C b _08042186 _0804217E: movs r1, 0xF9 movs r2, 0x1 bl sub_804151C _08042186: pop {r0} bx r0 thumb_func_end sub_804216C thumb_func_start sub_804218C sub_804218C: push {lr} adds r0, r1, 0 movs r1, 0x2A movs r2, 0x1 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_804218C thumb_func_start sub_804219C sub_804219C: push {lr} movs r1, 0x90 movs r2, 0x1 bl sub_80416E0 pop {r0} bx r0 thumb_func_end sub_804219C thumb_func_start sub_80421AC sub_80421AC: push {lr} adds r0, r1, 0 ldr r1, _080421BC movs r2, 0x1 bl sub_804151C pop {r0} bx r0 .align 2, 0 _080421BC: .4byte 0x00000167 thumb_func_end sub_80421AC thumb_func_start sub_80421C0 sub_80421C0: push {r4,lr} adds r2, r0, 0 lsls r1, 16 lsrs r0, r1, 16 adds r4, r0, 0 cmp r2, 0 bne _080421D4 bl sub_8083E38 b _080421E6 _080421D4: adds r0, r2, 0 bl sub_8042768 lsls r0, 24 cmp r0, 0 beq _080421E6 adds r0, r4, 0 bl sub_8083E38 _080421E6: pop {r4} pop {r0} bx r0 thumb_func_end sub_80421C0 thumb_func_start sub_80421EC sub_80421EC: push {r4,lr} lsls r1, 16 lsrs r4, r1, 16 bl sub_803F428 lsls r0, 24 cmp r0, 0 beq _08042202 adds r0, r4, 0 bl sub_8083E38 _08042202: pop {r4} pop {r0} bx r0 thumb_func_end sub_80421EC thumb_func_start sub_8042208 sub_8042208: push {lr} lsls r1, 24 lsrs r1, 24 cmp r1, 0 bne _0804221C movs r0, 0xA9 lsls r0, 1 bl sub_8083E38 b _08042234 _0804221C: cmp r1, 0x1 bne _0804222C ldr r0, _08042228 bl sub_8083E38 b _08042234 .align 2, 0 _08042228: .4byte 0x00000151 _0804222C: movs r0, 0xA8 lsls r0, 1 bl sub_8083E38 _08042234: pop {r0} bx r0 thumb_func_end sub_8042208 thumb_func_start sub_8042238 sub_8042238: push {lr} ldr r0, [r1, 0x70] ldrb r0, [r0, 0x6] cmp r0, 0 beq _08042250 ldr r0, _0804224C bl sub_8083E38 b _08042258 .align 2, 0 _0804224C: .4byte 0x00000157 _08042250: movs r0, 0xAB lsls r0, 1 bl sub_8083E38 _08042258: pop {r0} bx r0 thumb_func_end sub_8042238 thumb_func_start sub_804225C sub_804225C: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 mov r8, r0 adds r5, r1, 0 lsls r2, 24 lsrs r4, r2, 24 adds r7, r4, 0 cmp r4, 0x11 bne _08042274 b _08042384 _08042274: adds r0, r5, 0 bl sub_803F428 lsls r0, 24 cmp r0, 0 bne _08042282 b _08042384 _08042282: adds r0, r4, 0 bl sub_800EF28 bl sub_800EF64 movs r0, 0x4 movs r1, 0x42 bl sub_803E708 movs r0, 0 ldrsh r1, [r5, r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 11 movs r1, 0xC0 lsls r1, 4 adds r0, r1 cmp r0, 0 bge _080422AA adds r0, 0xFF _080422AA: lsls r0, 8 lsrs r0, 16 ldr r1, _080422FC ldr r2, [sp] ands r2, r1 orrs r2, r0 str r2, [sp] movs r0, 0x2 ldrsh r1, [r5, r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 11 movs r1, 0x80 lsls r1, 5 adds r0, r1 cmp r0, 0 bge _080422CE adds r0, 0xFF _080422CE: lsls r0, 8 lsrs r0, 16 lsls r0, 16 ldr r1, _08042300 ands r2, r1 orrs r2, r0 str r2, [sp] adds r0, r4, 0 mov r1, sp bl sub_800E448 adds r6, r0, 0 cmp r4, 0x4 bne _08042308 ldr r1, _08042304 movs r0, 0 bl sub_80421C0 movs r0, 0x28 movs r1, 0x33 bl sub_803E708 b _08042360 .align 2, 0 _080422FC: .4byte 0xffff0000 _08042300: .4byte 0x0000ffff _08042304: .4byte 0x00000193 _08042308: cmp r7, 0x8 bne _08042358 mov r0, r8 ldr r7, [r0, 0x70] adds r0, r7, 0 adds r0, 0x46 ldrb r4, [r0] movs r5, 0 b _0804231C _0804231A: adds r5, 0x2 _0804231C: ldr r0, _08042354 cmp r5, r0 bgt _08042346 subs r4, 0x1 movs r0, 0x7 ands r4, r0 mov r0, r8 movs r1, 0 adds r2, r4, 0 bl sub_806CDD4 movs r0, 0x2 movs r1, 0x33 bl sub_803E708 adds r0, r6, 0 bl sub_800E9A8 lsls r0, 24 cmp r0, 0 bne _0804231A _08042346: movs r0, 0x7 ands r4, r0 adds r0, r7, 0 adds r0, 0x46 strb r4, [r0] b _08042360 .align 2, 0 _08042354: .4byte 0x000003e7 _08042358: movs r0, 0x28 movs r1, 0x33 bl sub_803E708 _08042360: movs r5, 0 ldr r4, _08042368 b _0804236E .align 2, 0 _08042368: .4byte 0x000003e7 _0804236C: adds r5, 0x1 _0804236E: cmp r5, r4 bgt _08042384 movs r0, 0x42 bl sub_803E46C adds r0, r6, 0 bl sub_800E9A8 lsls r0, 24 cmp r0, 0 bne _0804236C _08042384: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_804225C thumb_func_start sub_8042390 sub_8042390: push {r4-r6,lr} sub sp, 0x18 adds r5, r0, 0 adds r4, r1, 0 bl sub_8042768 lsls r0, 24 cmp r0, 0 beq _08042454 ldrb r1, [r4] movs r0, 0x8 ands r0, r1 movs r6, 0 cmp r0, 0 bne _080423B0 ldrb r6, [r4, 0x2] _080423B0: adds r0, r6, 0 movs r1, 0 bl sub_800EF40 bl sub_800EF64 movs r0, 0x4 movs r1, 0x42 bl sub_803E708 ldr r0, [r5, 0xC] cmp r0, 0 bge _080423CC adds r0, 0xFF _080423CC: lsls r0, 8 lsrs r0, 16 ldr r1, _08042428 ldr r2, [sp, 0x14] ands r2, r1 orrs r2, r0 str r2, [sp, 0x14] ldr r0, [r5, 0x10] cmp r0, 0 bge _080423E2 adds r0, 0xFF _080423E2: lsls r0, 8 lsrs r0, 16 lsls r0, 16 ldr r4, _0804242C ands r4, r2 orrs r4, r0 str r4, [sp, 0x14] asrs r4, 16 ldr r0, _08042430 ldr r0, [r0] ldr r1, _08042434 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] subs r4, r0 lsrs r0, r4, 31 adds r4, r0 asrs r4, 1 adds r4, 0x1 adds r1, r5, 0 adds r1, 0x28 add r0, sp, 0x4 bl sub_8005700 add r1, sp, 0x14 str r4, [sp] adds r0, r6, 0 add r2, sp, 0x4 movs r3, 0 bl sub_800E49C adds r5, r0, 0 movs r4, 0 ldr r6, _08042438 b _0804243E .align 2, 0 _08042428: .4byte 0xffff0000 _0804242C: .4byte 0x0000ffff _08042430: .4byte gUnknown_203B418 _08042434: .4byte 0x000181f2 _08042438: .4byte 0x000003e7 _0804243C: adds r4, 0x1 _0804243E: cmp r4, r6 bgt _08042454 movs r0, 0x42 bl sub_803E46C adds r0, r5, 0 bl sub_800E9A8 lsls r0, 24 cmp r0, 0 bne _0804243C _08042454: add sp, 0x18 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8042390 thumb_func_start sub_804245C sub_804245C: push {r4-r6,lr} sub sp, 0x18 adds r5, r0, 0 adds r4, r1, 0 bl sub_8042768 lsls r0, 24 cmp r0, 0 beq _08042518 ldrb r1, [r4] movs r0, 0x8 ands r0, r1 movs r6, 0 cmp r0, 0 bne _0804247C ldrb r6, [r4, 0x2] _0804247C: bl sub_800EF64 movs r0, 0x4 movs r1, 0x42 bl sub_803E708 ldr r0, [r5, 0xC] cmp r0, 0 bge _08042490 adds r0, 0xFF _08042490: lsls r0, 8 lsrs r0, 16 ldr r1, _080424EC ldr r2, [sp, 0x14] ands r2, r1 orrs r2, r0 str r2, [sp, 0x14] ldr r0, [r5, 0x10] cmp r0, 0 bge _080424A6 adds r0, 0xFF _080424A6: lsls r0, 8 lsrs r0, 16 lsls r0, 16 ldr r4, _080424F0 ands r4, r2 orrs r4, r0 str r4, [sp, 0x14] asrs r4, 16 ldr r0, _080424F4 ldr r0, [r0] ldr r1, _080424F8 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] subs r4, r0 lsrs r0, r4, 31 adds r4, r0 asrs r4, 1 adds r4, 0x1 adds r1, r5, 0 adds r1, 0x28 add r0, sp, 0x4 bl sub_8005700 add r1, sp, 0x14 str r4, [sp] adds r0, r6, 0 add r2, sp, 0x4 movs r3, 0x1 bl sub_800E49C adds r5, r0, 0 movs r4, 0 ldr r6, _080424FC b _08042502 .align 2, 0 _080424EC: .4byte 0xffff0000 _080424F0: .4byte 0x0000ffff _080424F4: .4byte gUnknown_203B418 _080424F8: .4byte 0x000181f2 _080424FC: .4byte 0x000003e7 _08042500: adds r4, 0x1 _08042502: cmp r4, r6 bgt _08042518 movs r0, 0x42 bl sub_803E46C adds r0, r5, 0 bl sub_800E9A8 lsls r0, 24 cmp r0, 0 bne _08042500 _08042518: add sp, 0x18 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_804245C thumb_func_start sub_8042520 sub_8042520: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x3C adds r4, r0, 0 bl sub_8045888 lsls r0, 24 cmp r0, 0 bne _0804253A b _08042664 _0804253A: ldr r0, [r4, 0x70] adds r0, 0x46 ldrb r5, [r0] ldr r0, [r4, 0xC] cmp r0, 0 bge _08042548 adds r0, 0xFF _08042548: lsls r0, 8 lsrs r0, 16 ldr r1, _0804264C ldr r2, [sp, 0x2C] ands r2, r1 orrs r2, r0 str r2, [sp, 0x2C] ldr r0, [r4, 0x10] cmp r0, 0 bge _0804255E adds r0, 0xFF _0804255E: lsls r0, 8 lsrs r0, 16 lsls r0, 16 ldr r1, _08042650 ands r1, r2 orrs r1, r0 str r1, [sp, 0x2C] asrs r1, 16 ldr r0, _08042654 ldr r0, [r0] ldr r2, _08042658 adds r0, r2 movs r2, 0 ldrsh r0, [r0, r2] subs r1, r0 lsrs r0, r1, 31 adds r1, r0 asrs r7, r1, 1 ldr r0, _0804265C str r0, [sp, 0x4] movs r2, 0 str r2, [sp, 0x8] str r5, [sp, 0xC] add r1, sp, 0x4 add r4, sp, 0x2C ldrh r0, [r4] strh r0, [r1, 0xC] ldr r0, [sp, 0x2C] asrs r0, 16 strh r0, [r1, 0xE] adds r0, r1, 0 strh r2, [r0, 0x10] strh r2, [r0, 0x12] movs r0, 0x1 negs r0, r0 str r0, [sp, 0x18] str r7, [sp, 0x1C] add r0, sp, 0x20 bl sub_8004E8C add r0, sp, 0x4 movs r1, 0 bl sub_8041764 adds r6, r0, 0 mov r10, r4 lsls r1, r5, 2 mov r0, sp adds r0, 0x30 str r0, [sp, 0x38] ldr r0, _08042660 adds r5, r1, r0 movs r1, 0x5 mov r8, r1 mov r9, r10 _080425CC: movs r0, 0 str r0, [sp] adds r0, r6, 0 adds r1, r4, 0 movs r2, 0 adds r3, r7, 0 bl sub_800E8AC movs r0, 0x42 bl sub_803E46C movs r2, 0 ldrsh r0, [r5, r2] lsls r0, 2 mov r1, r9 ldrh r1, [r1] adds r0, r1 mov r2, r9 strh r0, [r2] movs r0, 0x2 ldrsh r1, [r5, r0] lsls r1, 2 ldrh r0, [r4, 0x2] adds r0, r1 strh r0, [r4, 0x2] movs r2, 0x2 ldrsh r1, [r4, r2] ldr r0, _08042654 ldr r0, [r0] ldr r2, _08042658 adds r0, r2 movs r2, 0 ldrsh r0, [r0, r2] subs r1, r0 lsrs r0, r1, 31 adds r1, r0 asrs r7, r1, 1 movs r0, 0x1 negs r0, r0 add r8, r0 mov r1, r8 cmp r1, 0 bge _080425CC bl sub_800DBBC mov r2, r10 movs r1, 0 ldrsh r0, [r2, r1] lsls r0, 8 str r0, [sp, 0x30] add r0, sp, 0x2C movs r2, 0x2 ldrsh r0, [r0, r2] lsls r0, 8 ldr r1, [sp, 0x38] str r0, [r1, 0x4] movs r1, 0xD0 lsls r1, 1 ldr r0, [sp, 0x38] movs r2, 0x1 bl sub_80416E0 adds r6, r0, 0 b _08042668 .align 2, 0 _0804264C: .4byte 0xffff0000 _08042650: .4byte 0x0000ffff _08042654: .4byte gUnknown_203B418 _08042658: .4byte 0x000181f2 _0804265C: .4byte 0x00000165 _08042660: .4byte gUnknown_80F4448 _08042664: movs r6, 0x1 negs r6, r6 _08042668: adds r0, r6, 0 add sp, 0x3C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8042520 thumb_func_start sub_804267C sub_804267C: push {r4,lr} ldr r4, _080426B8 bl sub_8043D10 lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _08042694 cmp r0, 0 blt _08042694 cmp r0, 0x2 ble _080426AC _08042694: ldr r0, _080426BC ldr r0, [r0] ldr r1, _080426C0 adds r0, r1 ldrb r0, [r0] bl sub_80900C0 lsls r0, 24 ldr r4, _080426C4 cmp r0, 0 beq _080426AC subs r4, 0x1 _080426AC: adds r0, r4, 0 bl sub_8083E38 pop {r4} pop {r0} bx r0 .align 2, 0 _080426B8: .4byte 0x000003e5 _080426BC: .4byte gUnknown_203B418 _080426C0: .4byte 0x00000644 _080426C4: .4byte 0x00000155 thumb_func_end sub_804267C thumb_func_start sub_80426C8 sub_80426C8: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 cmp r4, 0x3 bne _080426D8 movs r0, 0 bl sub_8083E88 _080426D8: cmp r5, 0x4 beq _080426F0 ldr r0, _080426EC lsls r1, r4, 1 adds r1, r0 ldrh r0, [r1] bl sub_8083E38 b _080426FC .align 2, 0 _080426EC: .4byte gUnknown_80F67DC _080426F0: ldr r0, _08042708 lsls r1, r4, 1 adds r1, r0 ldrh r0, [r1] bl sub_8083E38 _080426FC: adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x80 bl sub_8042B34 b _08042712 .align 2, 0 _08042708: .4byte gUnknown_80F67E4 _0804270C: movs r0, 0x46 bl sub_803E46C _08042712: bl sub_8042CC0 lsls r0, 24 cmp r0, 0 bne _0804270C bl sub_8042D7C bl sub_8040238 movs r0, 0x1 bl sub_8052210 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80426C8 thumb_func_start sub_8042730 sub_8042730: push {r4,r5,lr} adds r4, r0, 0 movs r1, 0x8 movs r2, 0x8 bl sub_806CDD4 movs r5, 0 b _08042742 _08042740: adds r5, 0x1 _08042742: cmp r5, 0x63 bgt _08042760 movs r0, 0x51 bl sub_803E46C ldr r0, [r4, 0x40] movs r1, 0x3 ands r0, r1 cmp r0, 0 bne _08042760 adds r0, r4, 0 adds r0, 0x6B ldrb r0, [r0] cmp r0, 0x8 beq _08042740 _08042760: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8042730 thumb_func_start sub_8042768 sub_8042768: push {lr} adds r1, r0, 0 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0 bne _08042778 _08042774: movs r0, 0 b _080427A6 _08042778: ldr r0, _08042794 ldr r2, [r0] ldr r3, _08042798 adds r0, r2, r3 ldrb r0, [r0] cmp r0, 0 beq _0804279C subs r3, 0x12 adds r0, r2, r3 ldr r0, [r0] cmp r0, r1 bne _08042774 movs r0, 0x1 b _080427A6 .align 2, 0 _08042794: .4byte gUnknown_203B418 _08042798: .4byte 0x0001820a _0804279C: adds r0, r1, 0 bl sub_8045888 lsls r0, 24 lsrs r0, 24 _080427A6: pop {r1} bx r1 thumb_func_end sub_8042768 thumb_func_start sub_80427AC sub_80427AC: push {r4-r6,lr} movs r6, 0 _080427B0: ldr r0, _08042808 ldr r0, [r0] lsls r1, r6, 2 ldr r2, _0804280C adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080427FA ldr r5, [r4, 0x70] adds r1, r5, 0 adds r1, 0xF3 ldrb r0, [r1] cmp r0, 0 beq _080427FA movs r0, 0 strb r0, [r1] adds r0, r4, 0 bl sub_80429A0 ldrb r0, [r5, 0x6] cmp r0, 0 bne _080427FA ldr r0, _08042810 adds r1, r4, 0 movs r2, 0 bl sub_8045B94 ldr r0, _08042814 ldr r1, [r0] adds r0, r4, 0 bl sub_805239C _080427FA: adds r6, 0x1 cmp r6, 0x13 ble _080427B0 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08042808: .4byte gUnknown_203B418 _0804280C: .4byte 0x000135cc _08042810: .4byte gUnknown_202DF98 _08042814: .4byte gUnknown_8100270 thumb_func_end sub_80427AC thumb_func_start sub_8042818 sub_8042818: push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r1, 24 lsrs r7, r1, 24 ldr r0, _08042874 ldr r0, [r0] ldr r1, _08042878 adds r0, r1 ldr r4, [r0] cmp r4, 0 bne _08042836 bl sub_8083600 adds r4, r0, 0 _08042836: ldr r1, _0804287C lsls r0, r5, 1 adds r2, r0, r1 ldrh r1, [r2] ldr r0, _08042880 cmp r1, r0 beq _0804284A adds r0, r4, 0 bl sub_80421C0 _0804284A: ldr r0, _08042884 lsls r1, r5, 2 adds r0, r1, r0 ldr r5, [r0] adds r6, r1, 0 cmp r5, 0 blt _08042896 cmp r7, 0 beq _08042888 bl sub_80441BC lsls r0, 24 cmp r0, 0 bne _08042888 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0 bl sub_804151C b _08042896 .align 2, 0 _08042874: .4byte gUnknown_203B418 _08042878: .4byte 0x000181f8 _0804287C: .4byte gUnknown_80F682C _08042880: .4byte 0x000003e5 _08042884: .4byte gUnknown_80F67EC _08042888: ldr r0, _0804289C adds r0, r6, r0 ldr r1, [r0] adds r0, r4, 0 movs r2, 0 bl sub_804151C _08042896: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804289C: .4byte gUnknown_80F680C thumb_func_end sub_8042818 thumb_func_start sub_80428A0 sub_80428A0: push {lr} movs r1, 0x29 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_80428A0 thumb_func_start sub_80428B0 sub_80428B0: push {lr} ldr r1, _080428C0 movs r2, 0 bl sub_804151C pop {r0} bx r0 .align 2, 0 _080428C0: .4byte 0x000001a9 thumb_func_end sub_80428B0 thumb_func_start sub_80428C4 sub_80428C4: push {lr} ldr r1, _080428D4 movs r2, 0 bl sub_804151C pop {r0} bx r0 .align 2, 0 _080428D4: .4byte 0x000001a9 thumb_func_end sub_80428C4 thumb_func_start sub_80428D8 sub_80428D8: push {lr} ldr r1, _080428E8 movs r2, 0 bl sub_804151C pop {r0} bx r0 .align 2, 0 _080428E8: .4byte 0x000001a9 thumb_func_end sub_80428D8 thumb_func_start sub_80428EC sub_80428EC: push {lr} ldr r1, _080428FC movs r2, 0 bl sub_804151C pop {r0} bx r0 .align 2, 0 _080428FC: .4byte 0x000001a9 thumb_func_end sub_80428EC thumb_func_start sub_8042900 sub_8042900: push {lr} movs r1, 0xD4 lsls r1, 1 movs r2, 0 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_8042900 thumb_func_start sub_8042910 sub_8042910: push {lr} movs r1, 0x29 movs r2, 0 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_8042910 thumb_func_start sub_8042920 sub_8042920: push {lr} movs r1, 0x48 movs r2, 0 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_8042920 thumb_func_start sub_8042930 sub_8042930: push {lr} movs r1, 0xD3 lsls r1, 1 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_8042930 thumb_func_start sub_8042940 sub_8042940: push {lr} movs r1, 0xC7 lsls r1, 1 movs r2, 0 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_8042940 thumb_func_start sub_8042950 sub_8042950: push {lr} movs r1, 0xD8 lsls r1, 1 movs r2, 0x1 bl sub_804151C movs r0, 0xA movs r1, 0x42 bl sub_803E708 pop {r0} bx r0 thumb_func_end sub_8042950 thumb_func_start sub_8042968 sub_8042968: push {lr} movs r1, 0xD4 lsls r1, 1 movs r2, 0 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_8042968 thumb_func_start sub_8042978 sub_8042978: push {lr} ldr r1, _08042988 movs r2, 0 bl sub_804151C pop {r0} bx r0 .align 2, 0 _08042988: .4byte 0x000001a9 thumb_func_end sub_8042978 thumb_func_start sub_804298C sub_804298C: push {lr} ldr r1, _0804299C movs r2, 0 bl sub_804151C pop {r0} bx r0 .align 2, 0 _0804299C: .4byte 0x000001a9 thumb_func_end sub_804298C thumb_func_start sub_80429A0 sub_80429A0: push {lr} ldr r1, _080429B0 movs r2, 0 bl sub_804151C pop {r0} bx r0 .align 2, 0 _080429B0: .4byte 0x00000199 thumb_func_end sub_80429A0 thumb_func_start sub_80429B4 sub_80429B4: push {lr} ldr r1, _080429C4 movs r2, 0 bl sub_804151C pop {r0} bx r0 .align 2, 0 _080429C4: .4byte 0x000001ab thumb_func_end sub_80429B4 thumb_func_start sub_80429C8 sub_80429C8: push {lr} movs r1, 0x4 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_80429C8 thumb_func_start sub_80429D8 sub_80429D8: push {lr} movs r1, 0x8F lsls r1, 1 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_80429D8 thumb_func_start sub_80429E8 sub_80429E8: push {lr} ldr r1, _080429F8 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 .align 2, 0 _080429F8: .4byte 0x0000011d thumb_func_end sub_80429E8 thumb_func_start sub_80429FC sub_80429FC: push {lr} movs r1, 0xCF lsls r1, 1 movs r2, 0x1 bl sub_80416A4 movs r0, 0 movs r1, 0xD4 bl sub_80421C0 pop {r0} bx r0 thumb_func_end sub_80429FC thumb_func_start sub_8042A14 sub_8042A14: push {lr} movs r1, 0x36 movs r2, 0x1 bl sub_80416A4 pop {r0} bx r0 thumb_func_end sub_8042A14 thumb_func_start sub_8042A24 sub_8042A24: push {lr} movs r1, 0x15 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_8042A24 thumb_func_start sub_8042A34 sub_8042A34: push {lr} movs r1, 0x9F lsls r1, 1 movs r2, 0 bl sub_80416A4 pop {r0} bx r0 thumb_func_end sub_8042A34 thumb_func_start sub_8042A44 sub_8042A44: push {lr} movs r1, 0xDA lsls r1, 1 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_8042A44 thumb_func_start sub_8042A54 sub_8042A54: push {lr} movs r1, 0x37 movs r2, 0x1 bl sub_80416A4 pop {r0} bx r0 thumb_func_end sub_8042A54 thumb_func_start sub_8042A64 sub_8042A64: push {lr} movs r1, 0x29 movs r2, 0x1 bl sub_80416A4 pop {r0} bx r0 thumb_func_end sub_8042A64 thumb_func_start sub_8042A74 sub_8042A74: push {lr} movs r1, 0x18 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_8042A74 thumb_func_start sub_8042A84 sub_8042A84: push {r4-r7,lr} adds r4, r1, 0 adds r7, r2, 0 lsls r0, 16 asrs r5, r0, 16 movs r6, 0x80 lsls r6, 2 adds r0, r4, 0 bl sub_8042768 lsls r0, 24 cmp r0, 0 beq _08042AF8 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0 bl sub_804151C adds r0, r7, 0 movs r1, 0x42 bl sub_803E708 adds r5, r4, 0 adds r5, 0x20 _08042AB4: ldr r1, [r4, 0x1C] ldr r0, _08042B00 cmp r1, r0 bgt _08042AF0 movs r0, 0x42 bl sub_803E46C ldr r1, [r4, 0x1C] adds r1, r6 str r1, [r4, 0x1C] movs r0, 0x80 lsls r0, 1 adds r6, r0 ldr r0, [r4, 0x10] subs r0, r1 cmp r0, 0 bge _08042AD8 adds r0, 0xFF _08042AD8: asrs r1, r0, 8 ldr r0, _08042B04 ldr r0, [r0] ldr r2, _08042B08 adds r0, r2 movs r2, 0 ldrsh r0, [r0, r2] subs r1, r0 movs r0, 0x8 negs r0, r0 cmp r1, r0 bge _08042AB4 _08042AF0: movs r0, 0 strb r0, [r5] bl sub_804178C _08042AF8: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08042B00: .4byte 0x0000c7ff _08042B04: .4byte gUnknown_203B418 _08042B08: .4byte 0x000181f2 thumb_func_end sub_8042A84 thumb_func_start sub_8042B0C sub_8042B0C: push {lr} adds r1, r0, 0 movs r0, 0x9F lsls r0, 1 movs r2, 0x5 bl sub_8042A84 pop {r0} bx r0 thumb_func_end sub_8042B0C thumb_func_start sub_8042B20 sub_8042B20: push {lr} adds r1, r0, 0 movs r0, 0xDE lsls r0, 1 movs r2, 0xE bl sub_8042A84 pop {r0} bx r0 thumb_func_end sub_8042B20 thumb_func_start sub_8042B34 sub_8042B34: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x28 adds r5, r0, 0 adds r4, r1, 0 adds r6, r2, 0 movs r0, 0 mov r8, r0 bl sub_8085480 mov r10, r0 ldr r7, _08042CB0 movs r0, 0xCC movs r1, 0x7 bl MemoryAlloc str r0, [r7] str r5, [r0] adds r4, 0x1 lsls r4, 2 str r4, [r0, 0x8] ldr r4, _08042CB4 lsls r0, r5, 1 adds r0, r5 lsls r0, 3 adds r0, r4 movs r1, 0 ldrsh r0, [r0, r1] bl sub_800EE5C bl sub_800EF64 movs r0, 0x46 bl sub_803E46C ldr r0, [r7] str r6, [r0, 0x4] movs r5, 0 ldr r0, [r0, 0x8] cmp r5, r0 blt _08042B8E b _08042C9E _08042B8E: mov r9, sp _08042B90: mov r2, r8 lsls r6, r2, 3 ldr r0, [r7] ldr r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r0, r6, r0 ldr r3, _08042CB4 adds r0, r3 movs r1, 0 ldrsh r0, [r0, r1] str r0, [sp] str r5, [sp, 0x4] movs r0, 0 str r0, [sp, 0x8] mov r2, r10 ldr r0, [r2, 0xC] cmp r0, 0 bge _08042BBA adds r0, 0xFF _08042BBA: asrs r0, 8 mov r3, r9 strh r0, [r3, 0xC] mov r1, sp mov r2, r10 ldr r0, [r2, 0x10] cmp r0, 0 bge _08042BCC adds r0, 0xFF _08042BCC: asrs r0, 8 strh r0, [r1, 0xE] movs r0, 0x2 bl RandomCapped ldr r1, [r7] lsls r4, r5, 2 adds r3, r1, 0 adds r3, 0x4C adds r3, r4 ldr r2, [r1] lsls r1, r2, 1 adds r1, r2 lsls r1, 3 adds r1, r6, r1 ldr r2, _08042CB4 adds r2, 0x4 adds r1, r2 ldr r1, [r1] lsls r1, 1 adds r1, r0 str r1, [r3] movs r0, 0xF0 bl RandomCapped ldr r1, [r7] adds r1, r4 adds r0, 0x98 adds r1, 0x8C strh r0, [r1] lsls r0, r5, 1 adds r0, 0x8 bl RandomCapped ldr r1, [r7] adds r2, r1, r4 adds r3, r0, 0 adds r3, 0x18 adds r1, r5, 0 cmp r5, 0 bge _08042C20 adds r1, r5, 0x3 _08042C20: asrs r1, 2 lsls r1, 2 subs r1, r5, r1 lsls r0, r1, 2 adds r0, r1 lsls r0, 3 subs r0, r3, r0 adds r1, r2, 0 adds r1, 0x8E strh r0, [r1] adds r0, r2, 0 adds r0, 0x8C ldrh r0, [r0] mov r3, r9 strh r0, [r3, 0x10] ldrh r0, [r1] strh r0, [r3, 0x12] movs r0, 0x4 str r0, [sp, 0x14] ldr r0, _08042CB8 str r0, [sp, 0x18] add r1, sp, 0x1C ldr r0, _08042CBC ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} mov r0, sp bl sub_800E890 ldr r2, [r7] adds r1, r2, 0 adds r1, 0xC adds r1, r4 str r0, [r1] movs r6, 0x1 add r8, r6 mov r0, r8 cmp r0, 0x2 bgt _08042C82 ldr r0, [r2] lsls r1, r0, 1 adds r1, r0 add r1, r8 lsls r1, 3 ldr r2, _08042CB4 adds r1, r2 movs r3, 0 ldrsh r0, [r1, r3] cmp r0, 0 bne _08042C86 _08042C82: movs r6, 0 mov r8, r6 _08042C86: ldr r0, [sp] bl sub_800ECA4 ldr r0, [r0, 0x4] bl sub_800F15C adds r5, 0x1 ldr r0, [r7] ldr r0, [r0, 0x8] cmp r5, r0 bge _08042C9E b _08042B90 _08042C9E: add sp, 0x28 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08042CB0: .4byte gUnknown_203B414 _08042CB4: .4byte gUnknown_80F6624 _08042CB8: .4byte 0x0000ffff _08042CBC: .4byte gUnknown_80F683C thumb_func_end sub_8042B34 thumb_func_start sub_8042CC0 sub_8042CC0: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 movs r7, 0 ldr r2, _08042D20 ldr r1, [r2] ldr r0, [r1, 0x4] cmp r0, 0 beq _08042CDC movs r7, 0x1 subs r0, 0x1 str r0, [r1, 0x4] _08042CDC: movs r5, 0 ldr r0, [r2] ldr r0, [r0, 0x8] cmp r5, r0 bge _08042D56 adds r6, r2, 0 movs r0, 0x98 negs r0, r0 mov r9, r0 movs r4, 0 ldr r1, _08042D24 mov r8, r1 _08042CF4: ldr r3, [r6] adds r0, r3, r4 adds r2, r0, 0 adds r2, 0x8C adds r0, r3, 0 adds r0, 0x4C adds r0, r4 ldr r1, [r0] ldrh r0, [r2] subs r0, r1 strh r0, [r2] lsls r0, 16 asrs r0, 16 cmp r0, r9 bgt _08042D2E ldr r0, [r3, 0x4] cmp r0, 0 ble _08042D28 movs r0, 0x98 strh r0, [r2] b _08042D30 .align 2, 0 _08042D20: .4byte gUnknown_203B414 _08042D24: .4byte 0x0000ff68 _08042D28: mov r0, r8 strh r0, [r2] b _08042D30 _08042D2E: movs r7, 0x1 _08042D30: ldr r2, [r6] adds r0, r2, 0 adds r0, 0xC adds r0, r4 ldr r0, [r0] adds r1, r4, 0 adds r1, 0x8C adds r2, r1 movs r1, 0 str r1, [sp] movs r3, 0 bl sub_800E8AC adds r4, 0x4 adds r5, 0x1 ldr r0, [r6] ldr r0, [r0, 0x8] cmp r5, r0 blt _08042CF4 _08042D56: ldr r0, _08042D74 ldr r0, [r0] ldr r1, _08042D78 adds r0, r1 bl sub_800E90C adds r0, r7, 0 add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08042D74: .4byte gUnknown_203B418 _08042D78: .4byte 0x000181f0 thumb_func_end sub_8042CC0 thumb_func_start sub_8042D7C sub_8042D7C: push {r4-r6,lr} ldr r1, _08042DD0 ldr r0, [r1] cmp r0, 0 beq _08042DCA movs r5, 0 ldr r0, [r0, 0x8] cmp r5, r0 bge _08042DBA adds r6, r1, 0 _08042D90: ldr r0, [r6] lsls r4, r5, 2 adds r0, 0xC adds r0, r4 ldr r0, [r0] bl sub_800E9A8 lsls r0, 24 cmp r0, 0 beq _08042DB0 ldr r0, [r6] adds r0, 0xC adds r0, r4 ldr r0, [r0] bl sub_800DC14 _08042DB0: adds r5, 0x1 ldr r0, [r6] ldr r0, [r0, 0x8] cmp r5, r0 blt _08042D90 _08042DBA: bl sub_800DBBC ldr r4, _08042DD0 ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _08042DCA: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08042DD0: .4byte gUnknown_203B414 thumb_func_end sub_8042D7C thumb_func_start sub_8042DD4 sub_8042DD4: push {r4-r7,lr} adds r5, r0, 0 adds r6, r1, 0 adds r7, r2, 0 movs r2, 0 ldr r0, _08042E04 mov r12, r0 ldr r3, _08042E08 _08042DE4: mov r1, r12 ldr r0, [r1] adds r4, r0, r3 ldr r1, [r4] movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _08042E0C str r5, [r4] str r6, [r4, 0xC] str r7, [r4, 0x4] adds r0, r5, 0 bl sub_800E6D8 str r0, [r4, 0x8] b _08042E14 .align 2, 0 _08042E04: .4byte gUnknown_203B418 _08042E08: .4byte 0x000005c4 _08042E0C: adds r3, 0x10 adds r2, 0x1 cmp r2, 0x2 ble _08042DE4 _08042E14: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8042DD4 thumb_func_start sub_8042E1C sub_8042E1C: push {r4-r6,lr} movs r5, 0 ldr r6, _08042E44 ldr r4, _08042E48 _08042E24: ldr r0, [r6] adds r0, r4 ldr r1, [r0] movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _08042E4C adds r0, r1, 0 bl sub_800E9A8 lsls r0, 24 cmp r0, 0 beq _08042E4C movs r0, 0x1 b _08042E56 .align 2, 0 _08042E44: .4byte gUnknown_203B418 _08042E48: .4byte 0x000005c4 _08042E4C: adds r4, 0x10 adds r5, 0x1 cmp r5, 0x2 ble _08042E24 movs r0, 0 _08042E56: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8042E1C thumb_func_start sub_8042E5C sub_8042E5C: push {r4-r7,lr} ldr r7, _08042E90 ldr r6, _08042E94 movs r5, 0x2 _08042E64: ldr r0, [r7] adds r4, r0, r6 ldr r0, [r4] cmp r0, 0 blt _08042E82 bl sub_800E9A8 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _08042E82 movs r0, 0x1 negs r0, r0 str r0, [r4] str r1, [r4, 0xC] _08042E82: adds r6, 0x10 subs r5, 0x1 cmp r5, 0 bge _08042E64 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08042E90: .4byte gUnknown_203B418 _08042E94: .4byte 0x000005c4 thumb_func_end sub_8042E5C thumb_func_start sub_8042E98 sub_8042E98: push {r4,r5,lr} ldr r5, _08042EC0 movs r4, 0x1 negs r4, r4 movs r3, 0 ldr r2, _08042EC4 movs r1, 0x2 _08042EA6: ldr r0, [r5] adds r0, r2 str r4, [r0] str r3, [r0, 0x4] str r3, [r0, 0xC] adds r2, 0x10 subs r1, 0x1 cmp r1, 0 bge _08042EA6 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08042EC0: .4byte gUnknown_203B418 _08042EC4: .4byte 0x000005c4 thumb_func_end sub_8042E98 thumb_func_start sub_8042EC8 sub_8042EC8: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xC adds r6, r0, 0 mov r8, r1 movs r7, 0 _08042ED6: ldr r1, _08042F5C lsls r0, r7, 4 ldr r2, _08042F60 adds r0, r2 ldr r1, [r1] adds r4, r1, r0 ldr r0, [r4] cmp r0, 0 blt _08042F4A ldr r0, [r4, 0xC] cmp r0, r6 bne _08042F4A ldr r0, [r6, 0xC] cmp r0, 0 bge _08042EF6 adds r0, 0xFF _08042EF6: lsls r0, 8 lsrs r0, 16 ldr r1, _08042F64 ldr r2, [sp, 0x8] ands r2, r1 orrs r2, r0 str r2, [sp, 0x8] ldr r1, [r6, 0x10] cmp r1, 0 bge _08042F0C adds r1, 0xFF _08042F0C: lsls r1, 8 lsrs r1, 16 lsls r1, 16 ldr r0, _08042F68 ands r2, r0 orrs r2, r1 str r2, [sp, 0x8] movs r0, 0 str r0, [sp, 0x4] ldr r5, [r6, 0x70] ldr r2, [r4, 0x8] subs r0, 0x1 cmp r2, r0 beq _08042F36 lsls r2, 24 lsrs r2, 24 add r0, sp, 0x4 adds r1, r6, 0 adds r1, 0x28 bl sub_800569C _08042F36: ldr r0, [r4] adds r1, r5, 0 adds r1, 0x46 ldrb r1, [r1] str r1, [sp] add r1, sp, 0x8 add r2, sp, 0x4 mov r3, r8 bl sub_800EB24 _08042F4A: adds r7, 0x1 cmp r7, 0x2 ble _08042ED6 add sp, 0xC pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08042F5C: .4byte gUnknown_203B418 _08042F60: .4byte 0x000005c4 _08042F64: .4byte 0xffff0000 _08042F68: .4byte 0x0000ffff thumb_func_end sub_8042EC8 thumb_func_start sub_8042F6C sub_8042F6C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 mov r8, r0 ldr r1, _0804310C movs r0, 0 strb r0, [r1] mov r0, r8 ldrb r6, [r0, 0x8] ldrb r1, [r0, 0x11] mov r9, r1 ldrb r2, [r0, 0x10] mov r10, r2 ldr r0, _08043110 mov r3, r8 ldr r1, [r3, 0x74] str r1, [r0] ldr r2, _08043114 ldr r0, [r3, 0x78] str r0, [r2] cmp r6, 0 bne _08042FA0 strb r6, [r1] _08042FA0: ldr r2, [r2] movs r1, 0 ldr r4, _08043118 ldr r5, _0804311C mov r0, sp adds r0, 0x4 str r0, [sp, 0x8] mov r3, r8 adds r3, 0x7C str r3, [sp, 0xC] movs r3, 0 _08042FB6: adds r0, r2, r1 strb r3, [r0] adds r1, 0x1 cmp r1, r4 bls _08042FB6 movs r7, 0 movs r0, 0x64 strh r0, [r5] cmp r6, 0 bne _0804300C ldr r4, _08043114 ldr r0, [r4] mov r5, r8 ldrb r1, [r5, 0xF] movs r2, 0xCF lsls r2, 3 adds r0, r2 strb r1, [r0] ldr r2, [r4] ldr r3, _08043120 adds r2, r3 ldr r0, [r5, 0x14] ldr r1, [r5, 0x18] str r0, [r2] str r1, [r2, 0x4] ldrb r0, [r5, 0x4] bl sub_80900D0 ldr r1, [r4] ldr r5, _08043124 adds r2, r1, r5 strh r0, [r2] ldr r0, _08043128 adds r1, r0 strb r7, [r1] mov r1, r8 ldrb r0, [r1, 0x4] bl sub_8090134 ldr r1, [r4] ldr r2, _0804312C adds r1, r2 strb r0, [r1] _0804300C: ldr r4, _08043114 ldr r0, [r4] movs r3, 0xD3 lsls r3, 3 adds r0, r3 strb r7, [r0] ldr r0, [r4] ldr r5, _08043130 adds r0, r5 strb r7, [r0] ldr r0, [r4] mov r2, r8 ldrb r1, [r2, 0x9] subs r3, 0x3C adds r0, r3 strb r1, [r0] ldr r0, [r4] ldrb r1, [r2, 0xC] subs r5, 0x3F adds r0, r5 strb r1, [r0] ldr r0, [r4] ldrb r1, [r2, 0xA] movs r2, 0xCB lsls r2, 3 adds r0, r2 strb r1, [r0] ldr r0, [r4] mov r3, r8 ldrb r1, [r3, 0xB] subs r5, 0x1 adds r0, r5 strb r1, [r0] ldr r0, [r4] ldrb r1, [r3, 0xD] adds r2, 0x3 adds r0, r2 strb r1, [r0] ldr r0, [r4] ldrb r1, [r3, 0xE] ldr r3, _08043134 adds r0, r3 strb r1, [r0] bl sub_8083F34 bl sub_803D4AC bl sub_804513C bl sub_8043CD8 bl sub_80495E4 bl sub_803E250 bl sub_8040130 bl sub_8040124 movs r0, 0x1 bl sub_803F27C ldr r1, _08043138 ldr r5, _0804313C adds r0, r5, 0 strh r0, [r1] movs r0, 0x1 movs r1, 0x14 bl sub_80095CC movs r0, 0 bl sub_800DAC0 movs r0, 0x1 bl xxx_update_some_bg_tiles bl sub_803DF60 bl sub_803E02C bl sub_8042E98 ldr r0, _08043140 strb r7, [r0] cmp r6, 0 beq _080430C8 ldr r0, _08043110 ldr r0, [r0] movs r1, 0x90 lsls r1, 7 bl sub_8081BF4 bl sub_8049840 _080430C8: mov r0, r9 cmp r0, 0 beq _080430D2 bl sub_8043D60 _080430D2: cmp r6, 0 beq _080430D8 b _080431DC _080430D8: ldr r0, [r4] ldr r1, _08043144 adds r0, r1 movs r1, 0x1 strb r1, [r0] ldr r0, [r4] ldr r2, _08043148 adds r0, r2 strb r1, [r0] ldr r2, [r4] movs r3, 0xCF lsls r3, 3 adds r0, r2, r3 ldrb r3, [r0] cmp r3, 0x1 bne _08043154 mov r5, r8 ldrb r1, [r5, 0x14] ldr r5, _0804314C adds r0, r2, r5 strb r1, [r0] ldr r0, [r4] ldr r1, _08043150 adds r0, r1 strb r3, [r0] b _0804315E .align 2, 0 _0804310C: .4byte gUnknown_203B40C _08043110: .4byte gUnknown_203B41C _08043114: .4byte gUnknown_203B418 _08043118: .4byte 0x0001cedb _0804311C: .4byte gUnknown_203B410 _08043120: .4byte 0x0000064c _08043124: .4byte 0x00000666 _08043128: .4byte 0x0000067a _0804312C: .4byte 0x0000067b _08043130: .4byte 0x00000699 _08043134: .4byte 0x0000065d _08043138: .4byte gUnknown_2026E4E _0804313C: .4byte 0x00000808 _08043140: .4byte gUnknown_202F32C _08043144: .4byte 0x0001820b _08043148: .4byte 0x0001820c _0804314C: .4byte 0x00000644 _08043150: .4byte 0x00000645 _08043154: ldr r3, _0804318C adds r1, r2, r3 mov r5, r8 ldr r0, [r5, 0x4] str r0, [r1] _0804315E: ldr r4, _08043190 ldr r0, [r4] ldr r1, _08043194 adds r0, r1 movs r1, 0 strb r1, [r0] bl sub_8044124 cmp r6, 0 bne _080431DC ldr r1, [r4] movs r2, 0xCF lsls r2, 3 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0x1 bne _0804319C ldr r3, _08043198 adds r1, r3 mov r5, r8 ldr r0, [r5, 0x18] str r0, [r1] b _080431AC .align 2, 0 _0804318C: .4byte 0x00000644 _08043190: .4byte gUnknown_203B418 _08043194: .4byte 0x00000674 _08043198: .4byte 0x0000067c _0804319C: bl Random ldr r2, [r4] ldr r1, _08043208 adds r2, r1 ldr r1, _0804320C ands r1, r0 str r1, [r2] _080431AC: ldr r4, _08043210 ldr r0, [r4] ldr r2, _08043208 adds r0, r2 ldr r0, [r0] bl sub_808408C cmp r6, 0 bne _080431DC bl sub_80980A4 lsls r0, 24 cmp r0, 0 bne _080431D8 ldr r0, [r4] ldr r3, _08043214 adds r0, r3 ldrb r0, [r0] cmp r0, 0 bne _080431D8 bl sub_8043FD0 _080431D8: bl sub_806890C _080431DC: mov r5, r9 cmp r5, 0 beq _08043230 ldr r1, _08043218 ldr r0, _08043210 ldr r0, [r0] ldr r2, _0804321C adds r0, r2 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 str r0, [r1] cmp r0, 0 beq _08043224 ldr r0, _08043220 ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage b _08043230 .align 2, 0 _08043208: .4byte 0x0000067c _0804320C: .4byte 0x00ffffff _08043210: .4byte gUnknown_203B418 _08043214: .4byte 0x00000644 _08043218: .4byte gUnknown_202DE30 _0804321C: .4byte 0x0000067b _08043220: .4byte gUnknown_80FEC48 _08043224: ldr r0, _080432B4 ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage _08043230: mov r3, r10 cmp r3, 0 beq _0804326A mov r1, r8 adds r1, 0x44 movs r0, 0 strb r0, [r1] ldr r0, _080432B8 ldr r0, [r0] ldr r5, _080432BC adds r0, r5 ldrb r0, [r0] bl sub_8090104 lsls r0, 24 mov r4, r8 adds r4, 0x1C cmp r0, 0 beq _0804325C adds r0, r4, 0 bl sub_808D0D8 _0804325C: adds r0, r4, 0 bl sub_8068A84 cmp r6, 0 beq _0804326A bl sub_806B404 _0804326A: bl sub_8068614 cmp r6, 0 bne _080432F4 ldr r0, _080432B8 ldr r0, [r0] movs r1, 0xCF lsls r1, 3 adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 bne _080432F4 mov r0, sp bl sub_8099394 lsls r0, 24 cmp r0, 0 beq _080432F4 mov r0, sp ldrb r0, [r0] bl sub_8095228 adds r2, r0, 0 adds r2, 0x2C movs r0, 0 ldrsb r0, [r2, r0] cmp r0, 0 beq _080432E8 ldr r1, _080432C0 str r0, [r1] ldr r0, _080432C4 ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage b _080432F4 .align 2, 0 _080432B4: .4byte gUnknown_80FEC7C _080432B8: .4byte gUnknown_203B418 _080432BC: .4byte 0x00000644 _080432C0: .4byte gUnknown_202DE30 _080432C4: .4byte gUnknown_81002B8 _080432C8: ldr r4, _080432CC b _080432D2 .align 2, 0 _080432CC: .4byte 0x00000226 _080432D0: ldr r4, _080432E4 _080432D2: bl sub_8083600 adds r2, r0, 0 adds r0, r4, 0 movs r1, 0 bl sub_8083AB0 bl _08043AF4 .align 2, 0 _080432E4: .4byte 0x00000227 _080432E8: ldr r0, _080434B8 ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage _080432F4: movs r2, 0 mov r10, r2 movs r3, 0 mov r9, r3 _080432FC: bl sub_8098080 bl nullsub_16 bl sub_80521D0 bl sub_80531A8 bl sub_800F690 cmp r6, 0 bne _08043318 bl sub_804513C _08043318: ldr r0, _080434BC movs r5, 0 str r5, [r0] ldr r4, _080434C0 ldr r0, [r4] strb r5, [r0] cmp r6, 0 bne _08043346 bl sub_80840A4 ldr r1, [r4] movs r3, 0xD0 lsls r3, 3 adds r2, r1, r3 str r0, [r2] movs r0, 0xCD lsls r0, 3 adds r1, r0 movs r0, 0xA strh r0, [r1] ldr r0, [r2] bl sub_80840D8 _08043346: ldr r0, [r4] ldr r1, _080434C4 adds r0, r1 strb r5, [r0] cmp r6, 0 bne _08043390 ldr r0, [r4] ldr r2, _080434C8 adds r0, r2 strb r6, [r0] movs r0, 0x4 bl sub_8084100 ldr r1, [r4] ldr r3, _080434CC adds r1, r3 strb r6, [r1] ldr r1, [r4] ldr r2, _080434D0 adds r1, r2 strb r6, [r1] ldr r2, [r4] ldr r1, _080434D4 lsls r0, 1 adds r0, r1 ldrh r1, [r0] adds r3, 0x3 adds r0, r2, r3 strh r1, [r0] ldr r0, _080434D8 adds r2, r0 mov r1, r10 strb r1, [r2] ldr r0, [r4] ldr r2, _080434DC adds r0, r2 strb r1, [r0] _08043390: bl sub_803D4D0 ldr r0, [r4] strb r5, [r0, 0x1] ldr r0, [r4] strb r5, [r0, 0x10] ldr r0, [r4] strb r5, [r0, 0x2] ldr r0, [r4] strb r5, [r0, 0x4] ldr r0, [r4] strb r5, [r0, 0x11] ldr r0, [r4] strb r5, [r0, 0x8] ldr r0, [r4] strb r5, [r0, 0x3] ldr r0, [r4] strb r5, [r0, 0x6] ldr r0, [r4] strb r5, [r0, 0xF] ldr r2, [r4] movs r3, 0xB8 lsls r3, 3 adds r1, r2, r3 movs r0, 0x1 negs r0, r0 str r0, [r1] strb r5, [r2, 0x7] ldr r0, [r4] strb r5, [r0, 0x9] ldr r0, [r4] strb r5, [r0, 0xA] ldr r0, [r4] movs r1, 0x1 strb r1, [r0, 0xB] ldr r0, [r4] strb r1, [r0, 0xD] ldr r0, [r4] strb r5, [r0, 0xE] ldr r0, [r4] ldr r2, _080434E0 adds r0, r2 strb r5, [r0] cmp r6, 0 bne _080434A6 ldr r0, [r4] adds r3, 0xB9 adds r0, r3 strb r6, [r0] ldr r1, [r4] ldr r5, _080434E4 adds r0, r1, r5 str r6, [r0] movs r2, 0xD2 lsls r2, 3 adds r0, r1, r2 str r6, [r0] adds r3, 0x1B adds r0, r1, r3 str r6, [r0] subs r5, 0x2C adds r0, r1, r5 strh r6, [r0] subs r2, 0x2E adds r0, r1, r2 strh r6, [r0] subs r3, 0x26 adds r1, r3 mov r5, r10 strb r5, [r1] ldr r0, [r4] ldr r1, _080434E8 adds r0, r1 strb r5, [r0] ldr r0, [r4] adds r2, 0xE adds r0, r2 strb r5, [r0] ldr r0, [r4] adds r3, 0x8 adds r0, r3 strb r5, [r0] ldr r0, [r4] ldr r5, _080434EC adds r0, r5 mov r1, r10 strb r1, [r0] ldr r0, [r4] adds r2, 0x2 adds r0, r2 strb r1, [r0] ldr r1, [r4] subs r3, 0xC adds r2, r1, r3 ldr r0, _080434F0 strh r0, [r2] adds r5, 0x17 adds r0, r1, r5 strh r6, [r0] ldr r0, _080434F4 adds r1, r0 mov r2, r10 strb r2, [r1] ldr r1, [r4] adds r3, 0x1A adds r0, r1, r3 movs r2, 0x63 strh r2, [r0] subs r5, 0x2 adds r0, r1, r5 strh r2, [r0] ldr r0, _080434F8 adds r1, r0 mov r2, r10 strb r2, [r1] ldr r1, [r4] ldr r3, _080434FC adds r0, r1, r3 ldrb r2, [r0] ldr r5, _08043500 adds r0, r1, r5 strh r2, [r0] ldr r2, _08043504 adds r0, r1, r2 ldrb r2, [r0] ldr r3, _08043508 adds r0, r1, r3 strh r2, [r0] ldr r5, _0804350C adds r0, r1, r5 ldrb r0, [r0] ldr r2, _08043510 adds r1, r2 strh r0, [r1] movs r0, 0 bl sub_807E5E4 bl sub_80842F0 _080434A6: bl sub_803D8F0 bl sub_8068658 cmp r6, 0 bne _08043514 bl sub_80687AC b _0804351C .align 2, 0 _080434B8: .4byte gUnknown_81002D8 _080434BC: .4byte gUnknown_203B450 _080434C0: .4byte gUnknown_203B418 _080434C4: .4byte 0x000037ec _080434C8: .4byte 0x000037fc _080434CC: .4byte 0x000037fd _080434D0: .4byte 0x000037fe _080434D4: .4byte gUnknown_80F6850 _080434D8: .4byte 0x000037ff _080434DC: .4byte 0x00000675 _080434E0: .4byte 0x0001c05e _080434E4: .4byte 0x0000068c _080434E8: .4byte 0x0000066f _080434EC: .4byte 0x00000671 _080434F0: .4byte 0x000003e7 _080434F4: .4byte 0x0000068a _080434F8: .4byte 0x0000e264 _080434FC: .4byte 0x0001c576 _08043500: .4byte 0x00003a0e _08043504: .4byte 0x0001c577 _08043508: .4byte 0x00003a10 _0804350C: .4byte 0x0001c586 _08043510: .4byte 0x00003a14 _08043514: bl sub_8068768 bl sub_8082B40 _0804351C: bl sub_806C42C bl sub_806AD3C cmp r6, 0 bne _08043544 ldr r1, _080435B4 ldr r3, _080435B8 ldr r0, [r3] ldr r5, _080435BC adds r0, r5 movs r2, 0 ldrsh r0, [r0, r2] lsls r0, 1 adds r0, r1 ldrh r0, [r0] bl sub_8083E88 bl sub_80847D4 _08043544: bl sub_8049840 bl sub_803E178 ldr r0, _080435C0 mov r3, r9 str r3, [r0] bl sub_8040124 movs r0, 0x4 movs r1, 0 bl sub_803EAF0 movs r0, 0 bl sub_8052210 adds r0, r6, 0 bl sub_803F27C bl sub_803DA7C cmp r6, 0 bne _08043594 bl sub_804AFAC ldr r5, _080435B8 ldr r0, [r5] ldr r1, _080435C4 adds r0, r1 ldrb r0, [r0] bl sub_80900D0 ldr r2, [r5] ldr r3, _080435C8 adds r1, r2, r3 strh r0, [r1] ldr r5, _080435CC adds r2, r5 mov r0, r10 strb r0, [r2] _08043594: bl sub_804AAD4 bl sub_8049B8C bl sub_804966C cmp r6, 0 bne _080435D0 bl sub_806B168 bl sub_806C3C0 bl sub_806B6C4 b _080435D4 .align 2, 0 _080435B4: .4byte gUnknown_80F5668 _080435B8: .4byte gUnknown_203B418 _080435BC: .4byte 0x00003a10 _080435C0: .4byte gUnknown_202EDC8 _080435C4: .4byte 0x00000644 _080435C8: .4byte 0x00000666 _080435CC: .4byte 0x0000067a _080435D0: bl sub_806B678 _080435D4: ldr r4, _0804362C ldr r1, [r4] ldr r2, _08043630 adds r0, r1, r2 mov r3, r9 str r3, [r0] ldr r5, _08043634 adds r0, r1, r5 str r3, [r0] adds r2, 0x4 adds r0, r1, r2 str r3, [r0] ldr r3, _08043638 adds r0, r1, r3 mov r5, r9 str r5, [r0] adds r2, 0x4 adds r0, r1, r2 str r5, [r0] adds r3, 0x4 adds r1, r3 str r5, [r1] cmp r6, 0 bne _08043644 bl sub_807FA18 bl sub_8045CB0 ldr r1, [r4] ldr r5, _0804363C adds r2, r1, r5 ldr r3, _08043640 adds r0, r1, r3 ldr r0, [r0] str r0, [r2] subs r5, 0x4 adds r1, r5 str r6, [r1] bl sub_8051E3C bl sub_804AAAC b _08043648 .align 2, 0 _0804362C: .4byte gUnknown_203B418 _08043630: .4byte 0x00017b2c _08043634: .4byte 0x00017b38 _08043638: .4byte 0x00017b3c _0804363C: .4byte 0x00000694 _08043640: .4byte 0x0000068c _08043644: bl sub_806A338 _08043648: bl sub_8068F80 bl sub_8049884 bl sub_8049ED4 cmp r6, 0 bne _08043664 movs r0, 0x1 movs r1, 0 movs r2, 0 bl sub_806A914 b _0804366C _08043664: bl sub_806CF60 bl sub_806A974 _0804366C: movs r0, 0x1 bl sub_8041888 cmp r6, 0 bne _0804367E bl sub_80848F0 bl sub_8097890 _0804367E: ldr r0, _080436A0 movs r1, 0x1 strb r1, [r0] cmp r6, 0 beq _08043690 bl sub_807E88C bl sub_806AB2C _08043690: ldr r2, _080436A4 ldr r0, [r2] ldrb r0, [r0, 0x7] cmp r0, 0 bne _080436A8 bl sub_803E748 b _080436AC .align 2, 0 _080436A0: .4byte gUnknown_203B40C _080436A4: .4byte gUnknown_203B418 _080436A8: bl sub_803E7C8 _080436AC: movs r0, 0 bl sub_8040094 movs r0, 0 movs r1, 0 bl sub_803EAF0 adds r0, r6, 0 bl sub_8040150 bl sub_8040A84 ldr r4, _08043730 ldr r1, [r4] adds r0, r1, 0 adds r0, 0xB8 mov r3, r9 str r3, [r0] ldr r5, _08043734 adds r1, r5 strb r3, [r1] ldr r0, [r4] ldr r1, _08043738 adds r0, r1 mov r2, r9 strb r2, [r0] ldr r1, [r4] movs r5, 0 movs r0, 0x63 strh r0, [r1, 0x12] movs r3, 0x1 strb r3, [r1] cmp r6, 0 bne _08043706 bl sub_8052DD0 ldr r1, [r4] ldrb r0, [r1, 0x9] cmp r0, 0 beq _08043706 strb r5, [r1, 0x9] bl sub_8083D68 bl sub_8052F80 _08043706: ldr r0, _0804373C mov r5, r9 str r5, [r0] ldr r4, _08043730 ldr r0, [r4] strb r5, [r0, 0x5] cmp r6, 0 bne _08043778 bl sub_8084B64 ldr r1, [r4] ldrb r0, [r1, 0x4] cmp r0, 0 bne _08043728 ldrb r0, [r1, 0x2] cmp r0, 0 beq _08043740 _08043728: movs r0, 0x1 strb r0, [r1, 0x5] b _0804374C .align 2, 0 _08043730: .4byte gUnknown_203B418 _08043734: .4byte 0x0000066c _08043738: .4byte 0x0000066d _0804373C: .4byte gUnknown_203B450 _08043740: bl sub_8083600 bl sub_803F4A0 bl sub_8040A84 _0804374C: cmp r6, 0 bne _08043778 ldr r1, _08043774 ldr r0, [r1] ldrb r0, [r0, 0x5] cmp r0, 0 bne _0804377C bl sub_807E5AC movs r0, 0 bl sub_807E580 lsls r0, 24 cmp r0, 0 beq _0804377C movs r0, 0x1 bl sub_807E7FC b _0804377C .align 2, 0 _08043774: .4byte gUnknown_203B418 _08043778: bl sub_8069E8C _0804377C: cmp r6, 0 beq _08043784 movs r6, 0 b _080437A2 _08043784: bl sub_80427AC bl sub_8083600 ldr r2, _08043960 ldr r1, [r2] ldr r3, _08043964 adds r1, r3 ldrb r1, [r1] bl sub_8075900 movs r0, 0x1 movs r1, 0 bl sub_807EAA0 _080437A2: bl nullsub_16 ldr r2, _08043960 ldr r0, [r2] ldrb r1, [r0, 0x5] cmp r1, 0 bne _080437DA movs r4, 0x1 ldr r5, _08043968 adds r0, r5 strb r1, [r0] ldr r0, [r2] ldr r3, _0804396C adds r0, r3 strb r1, [r0] ldr r0, [r2] ldr r5, _08043970 adds r0, r5 strb r4, [r0] _080437C8: adds r0, r4, 0 bl sub_804423C movs r4, 0 bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _080437C8 _080437DA: bl sub_8083600 adds r4, r0, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080437F0 adds r0, r4, 0 bl sub_8071DA4 _080437F0: ldr r5, _08043960 ldr r0, [r5] ldr r4, _08043968 adds r0, r4 ldrb r0, [r0] cmp r0, 0x1 beq _08043822 movs r0, 0x1 bl sub_8043ED0 lsls r0, 24 cmp r0, 0 beq _08043812 ldr r0, [r5] adds r0, r4 movs r1, 0x1 strb r1, [r0] _08043812: ldr r1, [r5] adds r0, r1, r4 ldrb r0, [r0] cmp r0, 0x1 beq _08043822 ldrb r0, [r1, 0x11] cmp r0, 0 beq _08043830 _08043822: ldr r2, _08043960 ldr r0, [r2] ldrb r0, [r0, 0x6] cmp r0, 0 bne _08043830 bl sub_806AA70 _08043830: bl sub_8083600 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0804384A movs r0, 0x4F bl sub_80526D0 movs r0, 0x4F bl sub_8052740 _0804384A: bl sub_8040124 movs r0, 0x1 movs r1, 0 bl sub_803EAF0 ldr r3, _08043960 ldr r0, [r3] ldr r5, _08043970 adds r0, r5 mov r1, r9 strb r1, [r0] ldr r0, [r3] ldr r2, _0804396C adds r0, r2 movs r3, 0x1 strb r3, [r0] ldr r5, _08043960 ldr r1, [r5] ldrb r0, [r1, 0x3] cmp r0, 0 bne _08043896 ldrb r0, [r1, 0x6] cmp r0, 0 bne _08043896 ldr r2, _08043974 adds r0, r1, r2 ldrh r0, [r0] cmp r0, 0x72 bne _08043896 ldr r3, _08043978 adds r0, r1, r3 ldrb r0, [r0] cmp r0, 0x1B bne _08043896 movs r0, 0x3C bl sub_8083ED8 _08043896: movs r0, 0x4 movs r1, 0x4F bl sub_803E708 ldr r5, _08043960 ldr r0, [r5] ldrb r0, [r0, 0x7] cmp r0, 0 bne _080438AC bl sub_803E830 _080438AC: movs r0, 0 bl SetBGOBJEnableFlags ldr r1, _0804397C ldr r0, [sp, 0x4] ands r0, r1 movs r1, 0x60 orrs r0, r1 ldr r1, _08043980 ands r0, r1 movs r1, 0x80 lsls r1, 8 orrs r0, r1 ldr r1, _08043984 ands r0, r1 movs r1, 0xF8 lsls r1, 16 orrs r0, r1 str r0, [sp, 0x4] ldr r0, _08043988 ldr r2, [r0] movs r0, 0xFD ldr r1, [sp, 0x8] movs r3, 0 bl SetBGPaletteBufferColorRGB movs r0, 0x1 bl sub_8040094 ldr r0, [r5] ldr r1, _0804396C adds r0, r1 movs r7, 0 movs r2, 0x1 strb r2, [r0] ldr r1, [r5] ldrb r0, [r1, 0x10] subs r0, 0x2 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _08043926 ldrb r0, [r1, 0x6] cmp r0, 0 beq _08043926 bl sub_8083600 adds r4, r0, 0 ldr r0, _0804398C ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage ldr r0, [r5] strb r7, [r0, 0x6] ldr r0, _08043990 adds r1, r4, 0 adds r2, r4, 0 bl sub_8083AB0 _08043926: bl sub_80688CC bl sub_8049820 ldr r0, _08043994 ldr r0, [r0] bl CloseFile bl sub_800F740 ldr r0, _08043998 mov r3, r10 strb r3, [r0] ldr r4, _08043960 ldr r1, [r4] ldrb r0, [r1, 0x3] cmp r0, 0 beq _0804394C b _08043BFC _0804394C: ldrb r0, [r1, 0x6] cmp r0, 0 beq _080439A0 ldr r0, _0804399C ldr r0, [r0] movs r1, 0x90 lsls r1, 7 bl sub_8080B30 b _080439A6 .align 2, 0 _08043960: .4byte gUnknown_203B418 _08043964: .4byte 0x00003a08 _08043968: .4byte 0x00000654 _0804396C: .4byte 0x00018218 _08043970: .4byte 0x00018219 _08043974: .4byte 0x0001ceda _08043978: .4byte 0x00000644 _0804397C: .4byte 0xffffff00 _08043980: .4byte 0xffff00ff _08043984: .4byte 0xff00ffff _08043988: .4byte gUnknown_202EDC8 _0804398C: .4byte gUnknown_81006A4 _08043990: .4byte 0x00000222 _08043994: .4byte gUnknown_202EC88 _08043998: .4byte gUnknown_203B40C _0804399C: .4byte gUnknown_203B41C _080439A0: movs r0, 0x2 bl sub_8046F84 _080439A6: bl sub_806C1D8 ldr r4, _080439CC ldr r1, [r4] ldr r5, _080439D0 adds r0, r1, r5 ldrb r0, [r0] cmp r0, 0x1 bne _080439D4 adds r5, 0x1A adds r0, r1, r5 ldrb r0, [r0] cmp r0, 0 bne _080439C4 b _08043AF4 _080439C4: bl sub_804700C b _08043AF4 .align 2, 0 _080439CC: .4byte gUnknown_203B418 _080439D0: .4byte 0x00000654 _080439D4: ldrb r0, [r1, 0x11] cmp r0, 0x1 bne _080439DC b _080432C8 _080439DC: cmp r0, 0x2 bne _08043A00 bl sub_8083600 adds r2, r0, 0 ldr r0, _080439F8 movs r1, 0 bl sub_8083AB0 ldr r0, [r4] ldr r1, _080439FC adds r0, r1 b _08043A62 .align 2, 0 _080439F8: .4byte 0x00000229 _080439FC: .4byte 0x0000066e _08043A00: cmp r0, 0x3 bne _08043A24 bl sub_8083600 adds r2, r0, 0 ldr r0, _08043A1C movs r1, 0 bl sub_8083AB0 ldr r0, [r4] ldr r2, _08043A20 adds r0, r2 b _08043A62 .align 2, 0 _08043A1C: .4byte 0x0000022a _08043A20: .4byte 0x0000066e _08043A24: cmp r0, 0x4 bne _08043A2A b _080432D0 _08043A2A: movs r3, 0xCF lsls r3, 3 adds r0, r1, r3 ldrb r0, [r0] cmp r0, 0x1 bne _08043A74 bl sub_8043D10 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _08043A74 ldr r0, [r4] adds r0, r5 ldrb r0, [r0] cmp r0, 0x2 bne _08043A74 bl sub_8083600 adds r2, r0, 0 movs r0, 0x8A lsls r0, 2 movs r1, 0 bl sub_8083AB0 ldr r0, [r4] ldr r5, _08043A70 adds r0, r5 _08043A62: ldrb r0, [r0] cmp r0, 0 beq _08043AF4 bl sub_8097810 b _08043AF4 .align 2, 0 _08043A70: .4byte 0x0000066e _08043A74: ldr r4, _08043ACC ldr r0, [r4] ldr r1, _08043AD0 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _08043A86 bl sub_8097810 _08043A86: ldr r1, [r4] ldr r3, _08043AD4 adds r2, r1, r3 ldrb r0, [r2] adds r0, 0x1 ldr r5, _08043AD8 adds r1, r5 ldrb r1, [r1] cmp r0, r1 bge _08043AE4 strb r0, [r2] ldr r0, [r4] ldr r1, _08043ADC adds r0, r1 ldrh r1, [r0] ldr r0, _08043AE0 cmp r1, r0 beq _08043AAC b _080432FC _08043AAC: movs r0, 0x1F bl sub_8098100 lsls r0, 24 cmp r0, 0 beq _08043ABA b _080432FC _08043ABA: movs r0, 0x1F bl sub_8097FA8 bl sub_8086130 bl sub_8097FF8 b _080432FC .align 2, 0 _08043ACC: .4byte gUnknown_203B418 _08043AD0: .4byte 0x0000066e _08043AD4: .4byte 0x00000645 _08043AD8: .4byte 0x0001cec8 _08043ADC: .4byte 0x00000644 _08043AE0: .4byte 0x0000060b _08043AE4: ldr r4, _08043B80 bl sub_8083600 adds r2, r0, 0 adds r0, r4, 0 movs r1, 0 bl sub_8083AB0 _08043AF4: ldr r1, _08043B84 movs r0, 0 strb r0, [r1] mov r4, r8 adds r4, 0x7E movs r0, 0 strb r0, [r4] bl sub_8097FF8 movs r0, 0x1 movs r1, 0x14 bl sub_80095CC bl sub_803E13C movs r0, 0x4 bl sub_800CDA8 ldr r0, _08043B88 ldr r1, [r0] ldrb r0, [r1, 0x6] cmp r0, 0 bne _08043B38 movs r2, 0xCF lsls r2, 3 adds r0, r1, r2 ldrb r0, [r0] bl sub_8083C88 lsls r0, 24 cmp r0, 0 beq _08043B38 bl sub_80841EC _08043B38: bl sub_8083C24 lsls r0, 24 cmp r0, 0 beq _08043BA4 ldr r5, _08043B88 ldr r0, [r5] ldrb r0, [r0, 0x6] cmp r0, 0 beq _08043B98 ldr r0, _08043B8C ldr r3, [sp, 0xC] strh r0, [r3] mov r4, r8 adds r4, 0x84 adds r0, r4, 0 movs r1, 0 movs r2, 0x8 bl memset mov r3, r8 adds r3, 0x80 ldr r1, [r5] ldr r5, _08043B90 adds r2, r1, r5 ldr r0, [r2] str r0, [r3] ldr r0, [r2] str r0, [r4] mov r2, r8 adds r2, 0x88 ldr r0, _08043B94 adds r1, r0 ldr r0, [r1] str r0, [r2] b _08043C32 .align 2, 0 _08043B80: .4byte 0x00000227 _08043B84: .4byte gUnknown_203B40C _08043B88: .4byte gUnknown_203B418 _08043B8C: .4byte 0x0000fffe _08043B90: .4byte 0x00000644 _08043B94: .4byte 0x0000067c _08043B98: ldr r0, _08043BA0 ldr r1, [sp, 0xC] strh r0, [r1] b _08043C32 .align 2, 0 _08043BA0: .4byte 0x0000ffff _08043BA4: bl sub_8083C50 lsls r0, 24 cmp r0, 0 beq _08043C28 ldr r0, _08043BC8 ldr r0, [r0] movs r2, 0xCF lsls r2, 3 adds r0, r2 ldrb r0, [r0] cmp r0, 0x1 bne _08043BCC movs r0, 0x4 ldr r3, [sp, 0xC] strh r0, [r3] b _08043BE6 .align 2, 0 _08043BC8: .4byte gUnknown_203B418 _08043BCC: cmp r0, 0 bne _08043BDC movs r0, 0x1 ldr r5, [sp, 0xC] strh r0, [r5] bl sub_8084424 b _08043BE6 _08043BDC: movs r0, 0x1 ldr r1, [sp, 0xC] strh r0, [r1] bl sub_8084424 _08043BE6: ldr r0, _08043BF4 ldr r0, [r0] ldr r2, _08043BF8 adds r0, r2 ldrb r0, [r0] strb r0, [r4] b _08043C32 .align 2, 0 _08043BF4: .4byte gUnknown_203B418 _08043BF8: .4byte 0x00000674 _08043BFC: ldr r0, _08043C20 ldr r0, [r0] movs r1, 0x90 lsls r1, 7 bl sub_8080B30 movs r0, 0x3 ldr r3, [sp, 0xC] strh r0, [r3] mov r1, r8 adds r1, 0x80 ldr r0, [r4] ldr r5, _08043C24 adds r0, r5 ldr r0, [r0] str r0, [r1] b _08043C32 .align 2, 0 _08043C20: .4byte gUnknown_203B41C _08043C24: .4byte 0x00000644 _08043C28: movs r0, 0x2 ldr r1, [sp, 0xC] strh r0, [r1] bl sub_8084424 _08043C32: bl sub_806863C bl sub_803E214 bl nullsub_56 bl sub_8040218 ldr r2, [sp, 0xC] movs r3, 0 ldrsh r0, [r2, r3] cmp r0, 0x1 beq _08043C54 cmp r0, 0x4 beq _08043C54 cmp r0, 0x2 bne _08043C58 _08043C54: bl sub_8047104 _08043C58: ldr r5, [sp, 0xC] movs r0, 0 ldrsh r1, [r5, r0] cmp r1, 0x1 beq _08043C8A movs r0, 0x2 negs r0, r0 cmp r1, r0 beq _08043C78 cmp r1, 0x4 beq _08043C78 adds r0, 0x1 cmp r1, r0 beq _08043C78 cmp r1, 0x2 bne _08043CAC _08043C78: ldr r2, [sp, 0xC] movs r3, 0 ldrsh r1, [r2, r3] cmp r1, 0x1 beq _08043C8A cmp r1, 0x4 beq _08043C8A cmp r1, 0x2 bne _08043C92 _08043C8A: movs r0, 0x1 bl sub_8068BDC b _08043CAC _08043C92: movs r0, 0x2 negs r0, r0 cmp r1, r0 bne _08043CA2 movs r0, 0 bl sub_8068BDC b _08043CAC _08043CA2: bl sub_8068F28 movs r0, 0 bl sub_8068BDC _08043CAC: bl sub_800DB7C ldr r0, _08043CD0 movs r1, 0 str r1, [r0] ldr r0, _08043CD4 str r1, [r0] bl nullsub_16 add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08043CD0: .4byte gUnknown_203B418 _08043CD4: .4byte gUnknown_203B41C thumb_func_end sub_8042F6C thumb_func_start sub_8043CD8 sub_8043CD8: push {lr} bl sub_8009804 pop {r0} bx r0 thumb_func_end sub_8043CD8 thumb_func_start sub_8043CE4 sub_8043CE4: push {lr} adds r1, r0, 0 ldr r0, _08043CF4 ldrb r0, [r0] cmp r0, 0 beq _08043CF8 movs r0, 0x1 b _08043D08 .align 2, 0 _08043CF4: .4byte gUnknown_202F1A8 _08043CF8: movs r2, 0 ldr r0, _08043D0C adds r0, r1, r0 ldrb r0, [r0] cmp r0, 0x2 bne _08043D06 movs r2, 0x1 _08043D06: adds r0, r2, 0 _08043D08: pop {r1} bx r1 .align 2, 0 _08043D0C: .4byte gUnknown_810ACC0 thumb_func_end sub_8043CE4 thumb_func_start sub_8043D10 sub_8043D10: push {lr} ldr r0, _08043D38 ldr r1, [r0] movs r2, 0xCF lsls r2, 3 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0x1 bne _08043D3C subs r2, 0x2B adds r0, r1, r2 subs r2, 0x8 adds r1, r2 ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 bne _08043D3C movs r0, 0x2 b _08043D4C .align 2, 0 _08043D38: .4byte gUnknown_203B418 _08043D3C: bl sub_80441BC lsls r0, 24 cmp r0, 0 bne _08043D4A movs r0, 0 b _08043D4C _08043D4A: movs r0, 0x1 _08043D4C: pop {r1} bx r1 thumb_func_end sub_8043D10 thumb_func_start sub_8043D50 sub_8043D50: ldr r2, _08043D5C str r2, [r1] movs r1, 0x90 lsls r1, 7 str r1, [r0] bx lr .align 2, 0 _08043D5C: .4byte 0x0001cedc thumb_func_end sub_8043D50 thumb_func_start sub_8043D60 sub_8043D60: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} movs r5, 0 _08043D6A: ldr r0, _08043DA4 ldr r0, [r0] lsls r1, r5, 2 ldr r2, _08043DA8 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08043DCE ldr r2, [r4, 0x70] movs r1, 0x1 ldrb r0, [r2, 0x8] eors r0, r1 negs r1, r0 orrs r1, r0 lsrs r1, 31 adds r0, r2, 0 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x4A beq _08043DA0 cmp r0, 0x47 bne _08043DAC _08043DA0: movs r0, 0x1 b _08043DAE .align 2, 0 _08043DA4: .4byte gUnknown_203B418 _08043DA8: .4byte 0x0001358c _08043DAC: movs r0, 0 _08043DAE: cmp r0, 0 beq _08043DB4 movs r1, 0 _08043DB4: adds r0, r2, 0 adds r0, 0xA4 ldrb r0, [r0] cmp r0, 0x1 bne _08043DC0 movs r1, 0 _08043DC0: cmp r1, 0 beq _08043DCE adds r0, r4, 0 ldr r1, _08043EC0 adds r2, r4, 0 bl sub_8068FE0 _08043DCE: adds r5, 0x1 cmp r5, 0xF ble _08043D6A movs r5, 0 ldr r0, _08043EC4 mov r9, r0 mov r8, r5 _08043DDC: mov r1, r9 ldr r0, [r1] lsls r1, r5, 2 ldr r2, _08043EC8 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 adds r7, r5, 0x1 cmp r0, 0 beq _08043E62 adds r0, r4, 0 adds r0, 0x22 mov r1, r8 strb r1, [r0] adds r1, r4, 0 adds r1, 0x20 movs r0, 0x1 strb r0, [r1] ldr r4, [r4, 0x70] ldrh r0, [r4, 0x10] strh r0, [r4, 0xE] movs r2, 0x9E lsls r2, 1 adds r1, r4, r2 adds r2, 0x4 adds r0, r4, r2 ldr r0, [r0] str r0, [r1] mov r1, r9 ldr r0, [r1] ldr r2, _08043ECC adds r0, r2 mov r1, r8 strb r1, [r0] adds r0, r4, 0 movs r1, 0 bl sub_806BFC0 ldrh r0, [r4, 0x2] strh r0, [r4, 0x4] adds r0, r4, 0 adds r0, 0xFD mov r2, r8 strb r2, [r0] movs r0, 0x8C lsls r0, 1 adds r5, r4, r0 adds r4, r5, 0 movs r6, 0x3 _08043E46: ldrb r1, [r4] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08043E58 adds r0, r5, 0 bl sub_8092BF4 strb r0, [r4, 0x4] _08043E58: adds r4, 0x8 adds r5, 0x8 subs r6, 0x1 cmp r6, 0 bge _08043E46 _08043E62: adds r5, r7, 0 cmp r5, 0x3 ble _08043DDC movs r6, 0 _08043E6A: movs r5, 0 adds r7, r6, 0x1 _08043E6E: adds r0, r5, 0 adds r1, r6, 0 bl sub_8049590 ldr r4, [r0, 0x14] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08043EA0 adds r0, r4, 0 bl sub_80450F8 cmp r0, 0x2 bne _08043EA0 adds r0, r4, 0 bl sub_8045104 adds r1, r0, 0 ldrb r0, [r1] cmp r0, 0x1B bne _08043EA0 movs r0, 0x5 strb r0, [r1] _08043EA0: adds r5, 0x1 cmp r5, 0x37 ble _08043E6E adds r6, r7, 0 cmp r6, 0x1F ble _08043E6A movs r0, 0x2 bl sub_8046F84 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08043EC0: .4byte 0x00000207 _08043EC4: .4byte gUnknown_203B418 _08043EC8: .4byte 0x0001357c _08043ECC: .4byte 0x00000676 thumb_func_end sub_8043D60 thumb_func_start sub_8043ED0 sub_8043ED0: push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 movs r7, 0 cmp r5, 0 bne _08043EEA bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _08043EEA movs r0, 0 b _08043FB8 _08043EEA: ldr r6, _08043F2C ldr r0, [r6] ldrb r0, [r0, 0x10] cmp r0, 0x1 bne _08043F40 bl sub_8083600 adds r4, r0, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08043FB6 cmp r5, 0 bne _08043F20 ldr r0, _08043F30 ldr r1, [r6] ldr r2, _08043F34 adds r1, r2 bl strcpy ldr r0, _08043F38 ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage _08043F20: adds r0, r4, 0 bl sub_8042B0C ldr r1, _08043F3C b _08043FAC .align 2, 0 _08043F2C: .4byte gUnknown_203B418 _08043F30: .4byte gUnknown_202DF98 _08043F34: .4byte 0x000005f4 _08043F38: .4byte gUnknown_80F89B4 _08043F3C: .4byte 0x0000021f _08043F40: cmp r0, 0x2 bne _08043F74 bl sub_8083600 adds r4, r0, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08043FB6 cmp r5, 0 bne _08043FA4 ldr r0, _08043F68 ldr r1, [r6] ldr r2, _08043F6C adds r1, r2 bl strcpy ldr r0, _08043F70 b _08043F9A .align 2, 0 _08043F68: .4byte gUnknown_202DF98 _08043F6C: .4byte 0x000005f4 _08043F70: .4byte gUnknown_80F89D4 _08043F74: cmp r0, 0x3 bne _08043FB6 bl sub_8083600 adds r4, r0, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08043FB6 cmp r5, 0 bne _08043FA4 ldr r0, _08043FC0 ldr r1, [r6] ldr r2, _08043FC4 adds r1, r2 bl strcpy ldr r0, _08043FC8 _08043F9A: ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage _08043FA4: adds r0, r4, 0 bl sub_8042B0C ldr r1, _08043FCC _08043FAC: adds r0, r4, 0 adds r2, r4, 0 bl sub_8068FE0 movs r7, 0x1 _08043FB6: adds r0, r7, 0 _08043FB8: pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08043FC0: .4byte gUnknown_202DF98 _08043FC4: .4byte 0x000005f4 _08043FC8: .4byte gUnknown_80F89D8 _08043FCC: .4byte 0x00000222 thumb_func_end sub_8043ED0 thumb_func_start sub_8043FD0 sub_8043FD0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x44 movs r0, 0x2 mov r9, r0 movs r1, 0x1 mov r10, r1 movs r0, 0xFF mov r8, r0 _08043FE8: movs r3, 0 mov r1, r9 adds r1, 0x1 str r1, [sp, 0x3C] _08043FF0: ldr r2, _080440E4 movs r0, 0x58 adds r1, r3, 0 muls r1, r0 ldr r0, [r2] adds r4, r0, r1 ldrh r1, [r4] mov r0, r10 ands r0, r1 adds r3, 0x1 str r3, [sp, 0x40] cmp r0, 0 beq _080440FE lsrs r0, r1, 1 mov r1, r10 ands r0, r1 cmp r0, 0 beq _080440FE add r5, sp, 0x20 movs r0, 0x8 ldrsh r1, [r4, r0] adds r0, r5, 0 mov r2, r9 bl sub_808E010 mov r1, r9 strb r1, [r4, 0x3] ldr r0, [sp, 0x20] str r0, [r4, 0x1C] ldrh r0, [r5, 0x4] ldrh r1, [r4, 0x16] adds r0, r1 movs r2, 0 strh r0, [r4, 0x16] lsls r0, 16 ldr r1, _080440E8 cmp r0, r1 ble _08044040 ldr r0, _080440EC strh r0, [r4, 0x16] _08044040: ldrb r0, [r4, 0x18] str r0, [sp, 0x2C] ldrb r0, [r4, 0x19] str r0, [sp, 0x30] ldrb r0, [r4, 0x1A] str r0, [sp, 0x34] ldrb r0, [r4, 0x1B] str r0, [sp, 0x38] ldrb r1, [r5, 0x6] ldr r0, [sp, 0x2C] adds r0, r1 str r0, [sp, 0x2C] ldrb r1, [r5, 0x7] ldr r0, [sp, 0x30] adds r0, r1 str r0, [sp, 0x30] ldrb r1, [r5, 0x8] ldr r0, [sp, 0x34] adds r0, r1 str r0, [sp, 0x34] ldrb r1, [r5, 0x9] ldr r0, [sp, 0x38] adds r0, r1 str r0, [sp, 0x38] ldr r0, [sp, 0x2C] cmp r0, 0xFE ble _0804407A mov r0, r8 str r0, [sp, 0x2C] _0804407A: ldr r0, [sp, 0x30] cmp r0, 0xFE ble _08044084 mov r1, r8 str r1, [sp, 0x30] _08044084: ldr r0, [sp, 0x34] cmp r0, 0xFE ble _0804408E mov r0, r8 str r0, [sp, 0x34] _0804408E: ldr r0, [sp, 0x38] cmp r0, 0xFE ble _08044098 mov r1, r8 str r1, [sp, 0x38] _08044098: ldr r0, [sp, 0x2C] strb r0, [r4, 0x18] ldr r0, [sp, 0x30] strb r0, [r4, 0x19] ldr r0, [sp, 0x34] strb r0, [r4, 0x1A] ldr r0, [sp, 0x38] strb r0, [r4, 0x1B] movs r0, 0x8 ldrsh r1, [r4, r0] ldrb r2, [r4, 0x3] mov r0, sp ldr r3, _080440EC bl sub_808E0AC adds r6, r0, 0 cmp r6, 0 beq _080440FE movs r0, 0 cmp r0, r6 bge _080440FE _080440C2: movs r3, 0 adds r7, r0, 0x1 lsls r0, 1 mov r1, sp adds r5, r1, r0 adds r2, r4, 0 adds r2, 0x2C _080440D0: ldrb r1, [r2] mov r0, r10 ands r0, r1 cmp r0, 0 bne _080440F0 ldrh r1, [r5] adds r0, r2, 0 bl sub_8092AD4 b _080440F8 .align 2, 0 _080440E4: .4byte gUnknown_203B45C _080440E8: .4byte 0x03e60000 _080440EC: .4byte 0x000003e7 _080440F0: adds r2, 0x8 adds r3, 0x1 cmp r3, 0x3 ble _080440D0 _080440F8: adds r0, r7, 0 cmp r0, r6 blt _080440C2 _080440FE: ldr r3, [sp, 0x40] movs r0, 0xCE lsls r0, 1 cmp r3, r0 bgt _0804410A b _08043FF0 _0804410A: ldr r0, [sp, 0x3C] mov r9, r0 cmp r0, 0x5 bgt _08044114 b _08043FE8 _08044114: add sp, 0x44 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8043FD0 thumb_func_start sub_8044124 sub_8044124: push {r4,r5,lr} ldr r0, _080441AC ldr r0, [r0] ldr r1, _080441B0 adds r0, r1 ldrb r0, [r0] bl sub_8090114 cmp r0, 0 bne _08044182 movs r3, 0 ldr r4, _080441B4 movs r2, 0 _0804413E: lsls r1, r3, 2 ldr r0, [r4] adds r1, r0 strb r2, [r1, 0x2] strb r2, [r1, 0x1] strb r2, [r1] adds r3, 0x1 cmp r3, 0x13 ble _0804413E movs r3, 0 ldr r5, _080441B8 movs r4, 0x1 _08044156: movs r0, 0x58 adds r1, r3, 0 muls r1, r0 ldr r0, [r5] adds r1, r0, r1 ldrh r2, [r1] adds r0, r4, 0 ands r0, r2 cmp r0, 0 beq _08044178 lsrs r0, r2, 1 ands r0, r4 cmp r0, 0 beq _08044178 adds r1, 0x28 movs r0, 0 strb r0, [r1] _08044178: adds r3, 0x1 movs r0, 0xCE lsls r0, 1 cmp r3, r0 ble _08044156 _08044182: ldr r0, _080441AC ldr r0, [r0] ldr r2, _080441B0 adds r0, r2 ldrb r0, [r0] bl sub_8090124 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _080441A4 ldr r0, _080441B4 ldr r0, [r0] movs r2, 0x98 lsls r2, 2 adds r0, r2 str r1, [r0] _080441A4: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080441AC: .4byte gUnknown_203B418 _080441B0: .4byte 0x00000644 _080441B4: .4byte gUnknown_203B460 _080441B8: .4byte gUnknown_203B45C thumb_func_end sub_8044124 thumb_func_start sub_80441BC sub_80441BC: push {lr} ldr r0, _080441D8 ldr r0, [r0] ldr r1, _080441DC adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 beq _080441E0 cmp r0, 0x31 bgt _080441E0 movs r0, 0x1 b _080441E2 .align 2, 0 _080441D8: .4byte gUnknown_203B418 _080441DC: .4byte 0x00003a14 _080441E0: movs r0, 0 _080441E2: pop {r1} bx r1 thumb_func_end sub_80441BC thumb_func_start sub_80441E8 sub_80441E8: push {lr} ldr r0, _08044200 ldr r0, [r0] ldr r1, _08044204 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0x3F bgt _08044208 movs r0, 0 b _0804420A .align 2, 0 _08044200: .4byte gUnknown_203B418 _08044204: .4byte 0x00003a0e _08044208: movs r0, 0x1 _0804420A: pop {r1} bx r1 thumb_func_end sub_80441E8 thumb_func_start sub_8044210 sub_8044210: push {lr} ldr r0, _0804422C ldr r0, [r0] ldr r1, _08044230 adds r0, r1 ldrb r0, [r0] subs r0, 0x4B lsls r0, 24 lsrs r0, 24 cmp r0, 0x16 bls _08044234 movs r0, 0 b _08044236 .align 2, 0 _0804422C: .4byte gUnknown_203B418 _08044230: .4byte 0x00000644 _08044234: movs r0, 0x1 _08044236: pop {r1} bx r1 thumb_func_end sub_8044210 thumb_func_start sub_804423C sub_804423C: push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _080442C6 bl sub_8044994 bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _080442C6 adds r0, r4, 0 bl sub_80442D0 lsls r0, 24 lsrs r4, r0, 24 bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _080442C6 cmp r4, 0 beq _08044280 bl sub_807E378 bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _080442C6 _08044280: bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _080442C6 bl sub_8044574 bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _080442C6 bl sub_8044820 bl sub_8044B28 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _080442C6 bl sub_8044AB4 ldr r0, _080442CC ldr r0, [r0] movs r2, 0xCC lsls r2, 3 adds r1, r0, r2 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] lsls r0, 16 asrs r0, 16 cmp r0, 0x18 bne _080442C6 strh r4, [r1] _080442C6: pop {r4} pop {r0} bx r0 .align 2, 0 _080442CC: .4byte gUnknown_203B418 thumb_func_end sub_804423C thumb_func_start sub_80442D0 sub_80442D0: push {r4-r7,lr} lsls r0, 24 lsrs r7, r0, 24 bl sub_8083600 adds r5, r0, 0 cmp r5, 0 beq _0804431A bl sub_8069E8C adds r0, r5, 0 bl sub_8070774 ldr r3, _08044320 ldr r1, _08044324 ldr r1, [r1] movs r2, 0xCC lsls r2, 3 adds r1, r2 movs r2, 0 ldrsh r1, [r1, r2] lsls r1, 1 movs r2, 0x32 muls r0, r2 adds r1, r0 adds r1, r3 movs r3, 0 ldrsh r0, [r1, r3] cmp r0, 0 beq _0804431A ldr r0, [r5, 0x70] movs r1, 0xA4 lsls r1, 1 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _08044328 _0804431A: movs r0, 0 b _0804444E .align 2, 0 _08044320: .4byte gUnknown_80F6860 _08044324: .4byte gUnknown_203B418 _08044328: bl sub_8083600 adds r5, r0, 0 cmp r5, 0 beq _0804431A movs r0, 0 bl sub_807520C lsls r0, 24 cmp r0, 0 bne _0804435C ldr r0, _08044388 ldr r1, [r0] ldr r2, _0804438C adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 bne _08044356 ldr r3, _08044390 adds r0, r1, r3 ldrb r0, [r0] cmp r0, 0 beq _0804435C _08044356: movs r0, 0xC bl sub_803E46C _0804435C: ldr r0, [r5, 0x70] adds r0, 0xF8 movs r1, 0 strb r1, [r0] bl sub_8044B28 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 bne _0804431A ldr r0, _08044388 ldr r1, [r0] adds r0, r1, 0 adds r0, 0xB8 str r5, [r0] adds r1, 0xBC str r2, [r1] cmp r7, 0 beq _08044394 movs r7, 0 b _0804439A .align 2, 0 _08044388: .4byte gUnknown_203B418 _0804438C: .4byte 0x0000066c _08044390: .4byte 0x00000673 _08044394: adds r0, r5, 0 bl sub_8074B54 _0804439A: bl sub_8044B28 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _0804431A adds r0, r5, 0 bl sub_8071DA4 ldr r6, _08044434 ldr r1, [r6] movs r0, 0x1 strb r0, [r1, 0xF] bl sub_805D8C8 ldr r0, [r6] strb r4, [r0, 0xF] bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _0804444C adds r0, r5, 0 bl sub_8072CF4 bl sub_8086AC0 movs r0, 0 bl sub_8043ED0 bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _0804444C ldr r2, [r5, 0x70] ldrh r1, [r2] movs r3, 0x80 lsls r3, 8 adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _08044400 subs r3, 0x1 adds r0, r3, 0 ands r0, r1 movs r3, 0x80 lsls r3, 7 adds r1, r3, 0 orrs r0, r1 strh r0, [r2] _08044400: bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _0804444C bl sub_8044454 bl sub_8044B28 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _0804444C ldr r2, [r6] adds r0, r2, 0 adds r0, 0xBC ldr r1, [r0] cmp r1, 0 beq _08044438 bl sub_805F02C ldr r0, [r6] adds r0, 0xBC str r4, [r0] movs r7, 0x1 b _08044328 .align 2, 0 _08044434: .4byte gUnknown_203B418 _08044438: ldr r0, [r5, 0x70] adds r0, 0xF8 ldrb r0, [r0] cmp r0, 0 beq _0804444C movs r3, 0xCC lsls r3, 3 adds r0, r2, r3 strh r1, [r0] b _08044328 _0804444C: movs r0, 0x1 _0804444E: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80442D0 thumb_func_start sub_8044454 sub_8044454: push {r4-r6,lr} ldr r0, _080444E8 ldr r1, [r0] ldrb r0, [r1, 0xE] cmp r0, 0 beq _080444E2 movs r0, 0 strb r0, [r1, 0xE] movs r6, 0 _08044466: ldr r0, _080444E8 ldr r0, [r0] lsls r1, r6, 2 ldr r2, _080444EC adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080444DC ldr r5, [r4, 0x70] ldrh r0, [r5] movs r2, 0x80 lsls r2, 8 adds r1, r2, 0 ands r0, r1 cmp r0, 0 beq _080444DC bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _080444E2 adds r0, r4, 0 bl sub_8074B54 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080444DC adds r0, r4, 0 bl sub_8071DA4 adds r0, r4, 0 movs r1, 0 bl sub_8075990 adds r0, r4, 0 bl sub_8072CF4 bl sub_8086AC0 movs r0, 0 bl sub_8043ED0 ldrh r0, [r5] ldr r2, _080444F0 adds r1, r2, 0 ands r0, r1 movs r2, 0x80 lsls r2, 7 adds r1, r2, 0 orrs r0, r1 strh r0, [r5] _080444DC: adds r6, 0x1 cmp r6, 0x13 ble _08044466 _080444E2: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080444E8: .4byte gUnknown_203B418 _080444EC: .4byte 0x000135cc _080444F0: .4byte 0x00007fff thumb_func_end sub_8044454 thumb_func_start sub_80444F4 sub_80444F4: push {r4-r6,lr} adds r6, r0, 0 bl sub_8083600 cmp r6, r0 bne _08044566 ldr r0, _0804456C ldr r1, [r0] ldrb r0, [r1, 0xE] cmp r0, 0 beq _08044566 movs r0, 0 strb r0, [r1, 0xE] movs r5, 0 _08044510: ldr r0, _0804456C ldr r0, [r0] lsls r1, r5, 2 ldr r2, _08044570 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08044560 cmp r6, r4 beq _08044560 ldr r0, [r4, 0x70] ldrh r0, [r0] movs r2, 0x80 lsls r2, 8 adds r1, r2, 0 ands r0, r1 cmp r0, 0 beq _08044560 bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _08044566 adds r0, r4, 0 movs r1, 0 bl sub_8075990 adds r0, r4, 0 bl sub_8072CF4 bl sub_8086AC0 movs r0, 0 bl sub_8043ED0 _08044560: adds r5, 0x1 cmp r5, 0x13 ble _08044510 _08044566: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0804456C: .4byte gUnknown_203B418 _08044570: .4byte 0x000135cc thumb_func_end sub_80444F4 thumb_func_start sub_8044574 sub_8044574: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x44 bl sub_8083600 mov r10, r0 movs r7, 0 mov r0, sp adds r0, 0x4 str r0, [sp, 0x40] ldr r1, _08044634 mov r9, r1 _08044592: mov r2, r9 ldr r0, [r2] lsls r1, r7, 2 ldr r3, _08044638 adds r0, r3 adds r0, r1 ldr r5, [r0] adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080446A4 ldr r6, [r5, 0x70] mov r8, r6 ldrb r0, [r6, 0x7] cmp r0, 0 bne _080446A4 bl sub_8044B28 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _080446AC mov r1, r9 ldr r0, [r1] adds r0, 0xB8 str r5, [r0] bl sub_8069E8C movs r2, 0xA2 lsls r2, 1 adds r0, r6, r2 strb r4, [r0] adds r0, r5, 0 bl sub_8070774 mov r3, r9 ldr r1, [r3] movs r2, 0xCC lsls r2, 3 adds r1, r2 movs r3, 0 ldrsh r1, [r1, r3] lsls r1, 1 movs r2, 0x32 muls r0, r2 adds r1, r0 ldr r0, _0804463C adds r1, r0 movs r2, 0 ldrsh r0, [r1, r2] cmp r0, 0 beq _080446A4 movs r3, 0xA4 lsls r3, 1 adds r0, r6, r3 ldrb r0, [r0] cmp r0, 0 bne _080446A4 ldrh r1, [r6] movs r2, 0x80 lsls r2, 8 adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _080446A4 movs r3, 0x80 lsls r3, 7 adds r0, r3, 0 ands r0, r1 lsls r0, 16 lsrs r0, 16 cmp r0, 0 beq _08044644 ldr r2, _08044640 adds r0, r2, 0 ands r0, r1 strh r0, [r6] b _080446A4 .align 2, 0 _08044634: .4byte gUnknown_203B418 _08044638: .4byte 0x0001357c _0804463C: .4byte gUnknown_80F6860 _08044640: .4byte 0x0000bfff _08044644: ldr r1, _08044668 add r1, r8 strb r0, [r1] adds r0, r5, 0 bl sub_8074B54 adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080446A4 adds r0, r5, 0 bl sub_8071DA4 movs r4, 0 b _0804466E .align 2, 0 _08044668: .4byte 0x00000145 _0804466C: adds r4, 0x1 _0804466E: cmp r4, 0x2 bgt _080446A4 adds r0, r5, 0 movs r1, 0 bl sub_8075990 bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _080446A4 adds r0, r5, 0 bl sub_8072CF4 lsls r0, 24 cmp r0, 0 beq _080446A4 bl sub_8086AC0 movs r0, 0 bl sub_8043ED0 bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _0804466C _080446A4: adds r7, 0x1 cmp r7, 0x3 bgt _080446AC b _08044592 _080446AC: movs r0, 0 mov r8, r0 _080446B0: adds r0, 0x1 mov r9, r0 add r2, sp, 0x8 ldr r1, [sp, 0x40] mov r0, sp movs r7, 0x2 _080446BC: mov r3, r8 str r3, [r0] str r2, [r1] adds r2, 0x8 adds r1, 0x8 adds r0, 0x8 subs r7, 0x1 cmp r7, 0 bge _080446BC str r3, [sp, 0x18] str r3, [sp, 0x1C] movs r7, 0 _080446D4: ldr r0, _08044710 ldr r0, [r0] lsls r1, r7, 2 ldr r2, _08044714 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08044760 ldr r1, [r4, 0x70] movs r3, 0xA2 lsls r3, 1 adds r2, r1, r3 ldrb r0, [r2] cmp r0, 0 beq _08044760 ldrb r0, [r1, 0x7] cmp r0, 0 beq _08044718 adds r3, 0x1 adds r0, r1, r3 mov r1, r8 strb r1, [r0] strb r1, [r2] b _08044760 .align 2, 0 _08044710: .4byte gUnknown_203B418 _08044714: .4byte 0x0001357c _08044718: mov r2, r10 movs r3, 0x4 ldrsh r1, [r2, r3] movs r2, 0x4 ldrsh r0, [r4, r2] subs r2, r1, r0 cmp r2, 0 bge _0804472A negs r2, r2 _0804472A: mov r3, r10 movs r0, 0x6 ldrsh r1, [r3, r0] movs r3, 0x6 ldrsh r0, [r4, r3] subs r1, r0 cmp r1, 0 bge _0804473C negs r1, r1 _0804473C: cmp r1, r2 bge _08044742 adds r1, r2, 0 _08044742: cmp r1, 0x2 ble _08044748 movs r1, 0x2 _08044748: add r3, sp, 0x20 lsls r0, r7, 3 adds r3, r0 str r4, [r3] add r2, sp, 0x24 adds r2, r0 lsls r1, 3 ldr r0, [sp, 0x40] adds r1, r0, r1 ldr r0, [r1] str r0, [r2] str r3, [r1] _08044760: adds r7, 0x1 cmp r7, 0x3 ble _080446D4 mov r5, sp movs r6, 0 _0804476A: ldr r4, [r5] cmp r4, 0 beq _080447A0 ldr r1, [r4, 0x70] ldr r3, _08044814 adds r2, r1, r3 movs r0, 0x1 strb r0, [r2] movs r2, 0xA2 lsls r2, 1 adds r0, r1, r2 strb r6, [r0] adds r0, r4, 0 movs r1, 0x1 bl sub_8075990 adds r0, r4, 0 bl sub_8072CF4 bl sub_8086AC0 movs r0, 0 bl sub_8043ED0 adds r0, r4, 0 bl sub_80450E0 _080447A0: ldr r5, [r5, 0x4] cmp r5, 0 bne _0804476A mov r0, r9 cmp r0, 0x2 ble _080446B0 bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _08044802 movs r7, 0 _080447B8: ldr r0, _08044818 ldr r0, [r0] lsls r1, r7, 2 ldr r3, _0804481C adds r0, r3 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080447FC ldr r0, [r4, 0x70] movs r1, 0xA2 lsls r1, 1 adds r5, r0, r1 ldrb r0, [r5] cmp r0, 0 beq _080447FC adds r0, r4, 0 bl sub_8074094 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080447FC adds r0, r4, 0 bl sub_8071DA4 movs r0, 0 strb r0, [r5] _080447FC: adds r7, 0x1 cmp r7, 0x3 ble _080447B8 _08044802: add sp, 0x44 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08044814: .4byte 0x00000145 _08044818: .4byte gUnknown_203B418 _0804481C: .4byte 0x0001357c thumb_func_end sub_8044574 thumb_func_start sub_8044820 sub_8044820: push {r4-r7,lr} mov r7, r8 push {r7} movs r7, 0 ldr r0, _08044830 mov r8, r0 b _080448FC .align 2, 0 _08044830: .4byte gUnknown_80F6860 _08044834: ldr r4, [r5, 0x70] ldr r0, [r6] adds r0, 0xB8 str r5, [r0] bl sub_8069E8C ldrh r2, [r4] movs r1, 0x80 lsls r1, 8 adds r0, r1, 0 ands r0, r2 cmp r0, 0 bne _080448FA movs r1, 0x80 lsls r1, 7 adds r0, r1, 0 ands r0, r2 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 beq _0804486C ldr r1, _08044868 adds r0, r1, 0 ands r0, r2 strh r0, [r4] b _080448FA .align 2, 0 _08044868: .4byte 0x0000bfff _0804486C: movs r2, 0xA2 lsls r2, 1 adds r0, r4, r2 strb r1, [r0] adds r0, r5, 0 bl sub_8070774 ldr r1, [r6] movs r2, 0xCC lsls r2, 3 adds r1, r2 movs r2, 0 ldrsh r1, [r1, r2] lsls r1, 1 movs r2, 0x32 muls r0, r2 adds r1, r0 add r1, r8 movs r2, 0 ldrsh r0, [r1, r2] cmp r0, 0 beq _080448FA movs r1, 0xA4 lsls r1, 1 adds r0, r4, r1 ldrb r0, [r0] cmp r0, 0 bne _080448FA ldrh r1, [r4] ldr r2, _08044984 adds r0, r2, 0 ands r1, r0 movs r0, 0 strh r1, [r4] ldr r2, _08044988 adds r1, r4, r2 strb r0, [r1] adds r0, r5, 0 bl sub_8074B54 adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080448FA adds r0, r5, 0 bl sub_8071DA4 adds r0, r5, 0 movs r1, 0 bl sub_8075990 bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _08044924 adds r0, r5, 0 bl sub_8072CF4 bl sub_8086AC0 movs r0, 0 bl sub_8043ED0 bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _08044924 _080448FA: adds r7, 0x1 _080448FC: cmp r7, 0xF bgt _08044924 ldr r6, _0804498C ldr r0, [r6] lsls r1, r7, 2 ldr r2, _08044990 adds r0, r2 adds r0, r1 ldr r5, [r0] adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080448FA bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _08044834 _08044924: bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _0804497A movs r7, 0 _08044930: ldr r0, _0804498C ldr r0, [r0] lsls r1, r7, 2 ldr r2, _08044990 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08044974 ldr r0, [r4, 0x70] movs r1, 0xA2 lsls r1, 1 adds r5, r0, r1 ldrb r0, [r5] cmp r0, 0 beq _08044974 adds r0, r4, 0 bl sub_8074094 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08044974 adds r0, r4, 0 bl sub_8071DA4 movs r0, 0 strb r0, [r5] _08044974: adds r7, 0x1 cmp r7, 0xF ble _08044930 _0804497A: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08044984: .4byte 0x00003fff _08044988: .4byte 0x00000145 _0804498C: .4byte gUnknown_203B418 _08044990: .4byte 0x0001358c thumb_func_end sub_8044820 thumb_func_start sub_8044994 sub_8044994: push {r4-r7,lr} mov r7, r8 push {r7} ldr r1, _08044A94 ldr r4, _08044A98 ldr r0, [r4] movs r2, 0xCC lsls r2, 3 adds r0, r2 movs r3, 0 ldrsh r0, [r0, r3] lsls r0, 1 adds r1, 0x32 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 beq _08044A8A bl sub_8071B48 ldr r0, [r4] ldr r2, _08044A9C adds r0, r2 movs r2, 0 strb r2, [r0] ldr r0, [r4] ldr r3, _08044AA0 adds r0, r3 strb r2, [r0] ldr r0, [r4] ldr r1, _08044AA4 adds r0, r1 strb r2, [r0] ldr r0, [r4] adds r3, 0x2 adds r0, r3 strb r2, [r0] ldr r0, [r4] ldr r3, _08044AA8 adds r1, r0, r3 str r2, [r1] ldr r1, _08044AAC adds r0, r1 movs r1, 0x2 str r1, [r0] mov r8, r2 adds r7, r4, 0 _080449F2: ldr r0, [r7] mov r2, r8 lsls r1, r2, 2 ldr r3, _08044AB0 adds r0, r3 adds r0, r1 ldr r5, [r0] adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08044A7A ldr r0, [r5, 0x70] adds r4, r0, 0 movs r0, 0xA4 lsls r0, 1 adds r1, r4, r0 movs r0, 0 strb r0, [r1] ldrb r0, [r4, 0x6] movs r6, 0x1 cmp r0, 0 beq _08044A24 movs r6, 0 _08044A24: adds r0, r5, 0 movs r1, 0x32 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _08044A46 ldr r1, [r7] ldr r2, _08044AA8 adds r0, r1, r2 str r5, [r0] ldr r3, _08044AAC adds r1, r3 adds r0, r4, 0 adds r0, 0x98 ldr r0, [r0] str r0, [r1] _08044A46: adds r0, r5, 0 movs r1, 0x3F bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _08044A60 ldr r0, [r7] ldr r1, _08044AA4 adds r0, r1 adds r0, r6 movs r1, 0x1 strb r1, [r0] _08044A60: adds r0, r5, 0 movs r1, 0x38 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _08044A7A ldr r0, [r7] ldr r2, _08044A9C adds r0, r2 adds r0, r6 movs r1, 0x1 strb r1, [r0] _08044A7A: movs r3, 0x1 add r8, r3 mov r0, r8 cmp r0, 0x13 ble _080449F2 movs r0, 0 bl sub_8043ED0 _08044A8A: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08044A94: .4byte gUnknown_80F6860 _08044A98: .4byte gUnknown_203B418 _08044A9C: .4byte 0x000037f8 _08044AA0: .4byte 0x000037f9 _08044AA4: .4byte 0x000037fa _08044AA8: .4byte 0x00017b2c _08044AAC: .4byte 0x00017b38 _08044AB0: .4byte 0x000135cc thumb_func_end sub_8044994 thumb_func_start sub_8044AB4 sub_8044AB4: push {r4,lr} ldr r1, _08044ADC ldr r0, _08044AE0 ldr r0, [r0] movs r2, 0xCC lsls r2, 3 adds r0, r2 movs r2, 0 ldrsh r0, [r0, r2] adds r0, 0x1 lsls r0, 1 adds r1, 0x32 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 beq _08044B1A movs r4, 0 b _08044AE6 .align 2, 0 _08044ADC: .4byte gUnknown_80F6860 _08044AE0: .4byte gUnknown_203B418 _08044AE4: adds r4, 0x1 _08044AE6: cmp r4, 0x13 bgt _08044B08 ldr r0, _08044B20 ldr r0, [r0] lsls r1, r4, 2 ldr r2, _08044B24 adds r0, r2 adds r0, r1 ldr r0, [r0] bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08044AE4 movs r0, 0 bl sub_807520C _08044B08: movs r0, 0x1 movs r1, 0 bl sub_807EAA0 bl sub_8086AC0 movs r0, 0 bl sub_8043ED0 _08044B1A: pop {r4} pop {r0} bx r0 .align 2, 0 _08044B20: .4byte gUnknown_203B418 _08044B24: .4byte 0x000135cc thumb_func_end sub_8044AB4 thumb_func_start sub_8044B28 sub_8044B28: push {r4,lr} ldr r4, _08044B48 ldr r0, [r4] ldrb r0, [r0, 0x4] cmp r0, 0 bne _08044B76 bl sub_8083600 cmp r0, 0 bne _08044B50 ldr r0, [r4] ldr r1, _08044B4C adds r0, r1 movs r1, 0x1 strb r1, [r0] b _08044B76 .align 2, 0 _08044B48: .4byte gUnknown_203B418 _08044B4C: .4byte 0x00000654 _08044B50: ldr r0, [r4] ldrb r2, [r0, 0x2] cmp r2, 0x1 bne _08044B68 ldr r2, _08044B64 adds r1, r0, r2 movs r0, 0x2 strb r0, [r1] b _08044B76 .align 2, 0 _08044B64: .4byte 0x00000654 _08044B68: cmp r2, 0x2 beq _08044B70 movs r0, 0 b _08044B78 _08044B70: ldr r1, _08044B80 adds r0, r1 strb r2, [r0] _08044B76: movs r0, 0x1 _08044B78: pop {r4} pop {r1} bx r1 .align 2, 0 _08044B80: .4byte 0x00000654 thumb_func_end sub_8044B28 thumb_func_start sub_8044B84 sub_8044B84: push {lr} ldr r0, _08044B9C ldr r0, [r0] ldrb r0, [r0, 0x10] cmp r0, 0 bne _08044BA0 bl sub_8044B28 lsls r0, 24 lsrs r0, 24 b _08044BA2 .align 2, 0 _08044B9C: .4byte gUnknown_203B418 _08044BA0: movs r0, 0x1 _08044BA2: pop {r1} bx r1 thumb_func_end sub_8044B84 thumb_func_start sub_8044BA8 sub_8044BA8: push {r4,r5,lr} lsls r0, 16 lsrs r4, r0, 16 lsls r1, 24 lsrs r5, r1, 24 cmp r4, 0x26 bne _08044BCC bl sub_8043D10 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _08044BCC ldr r0, _08044BC8 b _08044C02 .align 2, 0 _08044BC8: .4byte gUnknown_80F91EC _08044BCC: ldr r1, _08044BEC lsls r0, r4, 3 adds r4, r0, r1 ldr r0, [r4] ldr r1, _08044BF0 bl strcmp cmp r0, 0 beq _08044BE0 movs r0, 0x1 _08044BE0: lsls r0, 24 cmp r0, 0 beq _08044BF4 ldr r0, [r4] b _08044C04 .align 2, 0 _08044BEC: .4byte gUnknown_80F7C50 _08044BF0: .4byte gUnknown_80F697C _08044BF4: ldr r4, _08044C0C adds r0, r5, 0 bl sub_8090D6C lsls r0, 3 adds r4, 0x4 adds r0, r4 _08044C02: ldr r0, [r0] _08044C04: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08044C0C: .4byte gUnknown_80F7B14 thumb_func_end sub_8044BA8 thumb_func_start sub_8044C10 sub_8044C10: push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8083654 adds r2, r0, 0 adds r1, r2, 0 adds r1, 0x44 movs r3, 0 movs r0, 0 strh r0, [r1] cmp r4, 0 beq _08044C44 adds r0, r2, 0 adds r0, 0x48 strb r3, [r0] adds r0, 0x8 strb r3, [r0] adds r1, 0x14 ldr r0, _08044C4C strh r0, [r1] adds r1, 0x2 movs r0, 0x1 negs r0, r0 strh r0, [r1] _08044C44: pop {r4} pop {r0} bx r0 .align 2, 0 _08044C4C: .4byte 0x0000ffff thumb_func_end sub_8044C10 thumb_func_start sub_8044C50 sub_8044C50: push {r4,lr} adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 bl sub_8083654 adds r2, r0, 0 adds r0, 0x44 movs r1, 0 strh r4, [r0] adds r0, 0x4 strb r1, [r0] adds r0, 0x8 strb r1, [r0] adds r1, r2, 0 adds r1, 0x58 ldr r0, _08044C84 strh r0, [r1] adds r1, 0x2 movs r0, 0x1 negs r0, r0 strh r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _08044C84: .4byte 0x0000ffff thumb_func_end sub_8044C50 thumb_func_start sub_8044C88 sub_8044C88: movs r2, 0 movs r1, 0 strh r1, [r0] strb r2, [r0, 0x4] strb r2, [r0, 0xC] bx lr thumb_func_end sub_8044C88 thumb_func_start sub_8044C94 sub_8044C94: movs r2, 0 strh r1, [r0] strb r2, [r0, 0x4] strb r2, [r0, 0xC] bx lr thumb_func_end sub_8044C94 thumb_func_start sub_8044CA0 sub_8044CA0: push {r4,lr} adds r4, r0, 0 lsls r0, r1, 16 asrs r0, 16 bl sub_808DB48 lsls r0, 24 cmp r0, 0 beq _08044CB6 movs r0, 0x2 b _08044CB8 _08044CB6: movs r0, 0x1 _08044CB8: strh r0, [r4] movs r0, 0 strb r0, [r4, 0x4] strb r0, [r4, 0xC] pop {r4} pop {r0} bx r0 thumb_func_end sub_8044CA0 thumb_func_start sub_8044CC8 sub_8044CC8: push {lr} adds r3, r0, 0 adds r2, r1, 0 ldrb r1, [r2] subs r0, r1, 0x1 lsls r0, 24 lsrs r0, 24 cmp r0, 0x13 bhi _08044CEC ldr r0, _08044CE8 ldrb r1, [r2] lsls r1, 2 subs r1, 0x4 ldr r0, [r0] adds r0, r1 b _08044D34 .align 2, 0 _08044CE8: .4byte gUnknown_203B460 _08044CEC: adds r0, r1, 0 cmp r0, 0x80 bne _08044D06 movs r1, 0x4 ldrsh r0, [r2, r1] movs r3, 0x6 ldrsh r1, [r2, r3] bl sub_804954C ldr r0, [r0, 0x14] bl sub_8045108 b _08044D34 _08044D06: cmp r0, 0x81 bne _08044D0E ldr r0, [r3, 0x70] b _08044D32 _08044D0E: adds r0, r1, 0 adds r0, 0x70 lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bls _08044D1E movs r0, 0 b _08044D34 _08044D1E: ldr r0, _08044D38 ldr r1, [r0] ldrb r0, [r2] subs r0, 0x90 lsls r0, 2 ldr r2, _08044D3C adds r1, r2 adds r1, r0 ldr r0, [r1] ldr r0, [r0, 0x70] _08044D32: adds r0, 0x60 _08044D34: pop {r1} bx r1 .align 2, 0 _08044D38: .4byte gUnknown_203B418 _08044D3C: .4byte 0x0001357c thumb_func_end sub_8044CC8 thumb_func_start sub_8044D40 sub_8044D40: push {lr} lsls r1, 3 adds r1, 0x4 adds r2, r0, r1 ldrb r1, [r2] subs r0, r1, 0x1 lsls r0, 24 lsrs r0, 24 cmp r0, 0x13 bhi _08044D74 ldr r1, _08044D70 ldrb r0, [r2] lsls r0, 2 subs r0, 0x4 ldr r1, [r1] adds r1, r0 movs r0, 0 strb r0, [r1, 0x2] strb r0, [r1, 0x1] strb r0, [r1] bl sub_80910B4 b _08044D88 .align 2, 0 _08044D70: .4byte gUnknown_203B460 _08044D74: lsls r0, r1, 24 lsrs r0, 24 cmp r0, 0x80 beq _08044D80 movs r0, 0 b _08044D8A _08044D80: adds r0, r2, 0x4 movs r1, 0x1 bl sub_80461C8 _08044D88: movs r0, 0x1 _08044D8A: pop {r1} bx r1 thumb_func_end sub_8044D40 thumb_func_start sub_8044D90 sub_8044D90: push {lr} ldr r3, [r0, 0x70] lsls r1, 3 adds r1, 0x48 adds r3, r1 adds r1, r3, 0 bl sub_8044CC8 pop {r1} bx r1 thumb_func_end sub_8044D90 thumb_func_start sub_8044DA4 sub_8044DA4: ldr r0, [r0, 0x70] ldr r2, _08044DC0 ldr r2, [r2] lsls r1, 3 adds r0, r1 adds r0, 0x48 ldrb r0, [r0] lsls r0, 2 ldr r1, _08044DC4 adds r2, r1 adds r2, r0 ldr r0, [r2] bx lr .align 2, 0 _08044DC0: .4byte gUnknown_203B418 _08044DC4: .4byte 0x0001357c thumb_func_end sub_8044DA4 thumb_func_start sub_8044DC8 sub_8044DC8: push {r4,lr} adds r1, r0, 0 ldrb r0, [r1, 0x2] cmp r0, 0xE9 beq _08044DE8 ldr r4, _08044DE4 bl sub_8090BD0 lsls r0, 24 lsrs r0, 23 adds r0, r4 ldrh r0, [r0] b _08044DEA .align 2, 0 _08044DE4: .4byte gUnknown_80F6964 _08044DE8: movs r0, 0x35 _08044DEA: pop {r4} pop {r1} bx r1 thumb_func_end sub_8044DC8 thumb_func_start sub_8044DF0 sub_8044DF0: push {r4,lr} ldr r4, [r0, 0x70] bl sub_8044D90 adds r1, r0, 0 adds r0, r4, 0 adds r0, 0x48 ldrb r0, [r0] cmp r0, 0x80 bne _08044E10 adds r0, r4, 0 adds r0, 0x4C movs r1, 0x1 bl sub_80461C8 b _08044E1C _08044E10: movs r0, 0 strb r0, [r1, 0x2] strb r0, [r1, 0x1] strb r0, [r1] bl sub_80910B4 _08044E1C: pop {r4} pop {r0} bx r0 thumb_func_end sub_8044DF0 thumb_func_start sub_8044E24 sub_8044E24: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r4, r0, 0 adds r6, r1, 0 adds r7, r2, 0 bl sub_8044D90 adds r5, r0, 0 ldr r0, [r4, 0x70] mov r8, r0 ldrb r0, [r5, 0x2] bl sub_80915A0 lsls r0, 24 cmp r0, 0 bne _08044EBA ldrb r0, [r5, 0x2] bl sub_8090BD0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x5 bne _08044EB0 lsls r1, r6, 3 mov r2, r8 adds r0, r2, r1 adds r0, 0x48 ldrb r0, [r0] cmp r0, 0x80 bne _08044EA4 ldr r0, [r5] str r0, [sp] adds r4, r1, r2 adds r4, 0x4C adds r0, r4, 0 movs r1, 0x1 bl sub_80461C8 ldrb r1, [r5, 0x2] subs r1, 0x7D lsls r1, 24 lsrs r1, 16 ldr r2, _08044E9C ldr r0, [sp] ands r0, r2 orrs r0, r1 ldr r1, _08044EA0 ands r0, r1 movs r1, 0xF8 lsls r1, 15 orrs r0, r1 str r0, [sp] adds r0, r4, 0 mov r1, sp movs r2, 0x1 bl sub_80460F8 b _08044EBA .align 2, 0 _08044E9C: .4byte 0xffff00ff _08044EA0: .4byte 0xff00ffff _08044EA4: ldrb r0, [r5, 0x2] subs r0, 0x7D strb r0, [r5, 0x1] movs r0, 0x7C strb r0, [r5, 0x2] b _08044EBA _08044EB0: adds r0, r4, 0 adds r1, r6, 0 adds r2, r7, 0 bl sub_8044DF0 _08044EBA: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8044E24 thumb_func_start sub_8044EC8 sub_8044EC8: push {r4,r5,lr} adds r5, r0, 0 ldr r1, _08044EE8 lsls r0, r5, 2 adds r0, r1 ldrh r4, [r0] cmp r4, 0x26 bne _08044EF0 bl sub_8043D10 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _08044EF0 ldr r0, _08044EEC b _08044F2C .align 2, 0 _08044EE8: .4byte gUnknown_202EE44 _08044EEC: .4byte gUnknown_80F91EC _08044EF0: ldr r1, _08044F10 lsls r0, r4, 3 adds r4, r0, r1 ldr r0, [r4] ldr r1, _08044F14 bl strcmp cmp r0, 0 beq _08044F04 movs r0, 0x1 _08044F04: lsls r0, 24 cmp r0, 0 beq _08044F18 ldr r0, [r4] b _08044F2E .align 2, 0 _08044F10: .4byte gUnknown_80F7C50 _08044F14: .4byte gUnknown_80F697C _08044F18: ldr r4, _08044F34 ldr r1, _08044F38 lsls r0, r5, 2 adds r0, r1 ldrb r0, [r0, 0x2] bl sub_8090D6C lsls r0, 3 adds r4, 0x4 adds r0, r4 _08044F2C: ldr r0, [r0] _08044F2E: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08044F34: .4byte gUnknown_80F7B14 _08044F38: .4byte gUnknown_202EE44 thumb_func_end sub_8044EC8 thumb_func_start sub_8044F3C sub_8044F3C: push {lr} adds r1, r0, 0 cmp r1, 0 blt _08044F54 ldr r0, _08044F50 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0x3] b _08044F56 .align 2, 0 _08044F50: .4byte gUnknown_202EE44 _08044F54: movs r0, 0 _08044F56: pop {r1} bx r1 thumb_func_end sub_8044F3C thumb_func_start sub_8044F5C sub_8044F5C: push {r4-r7,lr} lsls r0, 16 lsrs r4, r0, 16 lsls r1, 24 lsrs r7, r1, 24 ldr r0, _08044FAC ldr r2, [r0] adds r6, r0, 0 cmp r2, 0x9 bgt _08044FA4 movs r3, 0 ldr r5, _08044FB0 cmp r3, r2 bge _08044F8A adds r1, r2, 0 adds r2, r5, 0 _08044F7C: ldrh r0, [r2] cmp r0, r4 beq _08044FA4 adds r2, 0x4 adds r3, 0x1 cmp r3, r1 blt _08044F7C _08044F8A: ldr r0, [r6] lsls r0, 2 adds r0, r5 strh r4, [r0] strb r7, [r0, 0x2] ldr r0, [r6] lsls r0, 2 adds r0, r5 movs r1, 0x1 strb r1, [r0, 0x3] ldr r0, [r6] adds r0, 0x1 str r0, [r6] _08044FA4: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08044FAC: .4byte gUnknown_202EE6C _08044FB0: .4byte gUnknown_202EE44 thumb_func_end sub_8044F5C thumb_func_start sub_8044FB4 sub_8044FB4: push {r4,lr} lsls r0, 16 lsrs r4, r0, 16 movs r1, 0 ldr r0, _08044FD4 ldr r0, [r0] cmp r1, r0 bge _08044FE4 adds r3, r0, 0 ldr r2, _08044FD8 _08044FC8: ldrh r0, [r2] cmp r0, r4 bne _08044FDC adds r0, r1, 0 b _08044FE8 .align 2, 0 _08044FD4: .4byte gUnknown_202EE6C _08044FD8: .4byte gUnknown_202EE44 _08044FDC: adds r2, 0x4 adds r1, 0x1 cmp r1, r3 blt _08044FC8 _08044FE4: movs r0, 0x1 negs r0, r0 _08044FE8: pop {r4} pop {r1} bx r1 thumb_func_end sub_8044FB4 thumb_func_start sub_8044FF0 sub_8044FF0: push {r4,r5,lr} lsls r0, 16 lsrs r3, r0, 16 movs r2, 0 ldr r1, _08045010 ldr r0, [r1] cmp r2, r0 bge _08045022 movs r5, 0 adds r4, r1, 0 ldr r1, _08045014 _08045006: ldrh r0, [r1] cmp r0, r3 bne _08045018 strb r5, [r1, 0x3] b _08045022 .align 2, 0 _08045010: .4byte gUnknown_202EE6C _08045014: .4byte gUnknown_202EE44 _08045018: adds r1, 0x4 adds r2, 0x1 ldr r0, [r4] cmp r2, r0 blt _08045006 _08045022: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8044FF0 thumb_func_start sub_8045028 sub_8045028: push {r4,lr} adds r2, r0, 0 lsls r1, 24 ldr r0, [r2, 0x70] adds r4, r0, 0 adds r4, 0x44 cmp r1, 0 beq _08045044 adds r0, r2, 0 bl sub_8045888 lsls r0, 24 cmp r0, 0 beq _0804505A _08045044: ldrh r0, [r4] cmp r0, 0 beq _0804505A cmp r0, 0x2 beq _0804505A cmp r0, 0x1 beq _0804505A cmp r0, 0x5 beq _0804505A movs r0, 0 b _0804505C _0804505A: movs r0, 0x1 _0804505C: pop {r4} pop {r1} bx r1 thumb_func_end sub_8045028 thumb_func_start sub_8045064 sub_8045064: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} movs r1, 0 ldr r0, _080450D4 mov r8, r0 ldr r0, [r0] cmp r1, r0 bge _080450C8 mov r7, r8 ldr r2, _080450D8 mov r9, r2 ldr r0, _080450DC mov r12, r0 _08045082: adds r4, r1, 0x1 ldr r0, [r7] adds r5, r4, 0 cmp r5, r0 bge _080450BE lsls r0, r1, 2 mov r1, r12 adds r3, r0, r1 mov r6, r9 lsls r0, r5, 2 adds r2, r0, r1 _08045098: ldrh r1, [r3] lsls r1, 3 adds r1, r6 ldrh r0, [r2] lsls r0, 3 adds r0, r6 ldr r1, [r1] ldr r0, [r0] cmp r1, r0 ble _080450B4 ldr r1, [r3] ldr r0, [r2] str r0, [r3] str r1, [r2] _080450B4: adds r2, 0x4 adds r4, 0x1 ldr r0, [r7] cmp r4, r0 blt _08045098 _080450BE: adds r1, r5, 0 mov r2, r8 ldr r0, [r2] cmp r1, r0 blt _08045082 _080450C8: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080450D4: .4byte gUnknown_202EE6C _080450D8: .4byte gUnknown_80F7C54 _080450DC: .4byte gUnknown_202EE44 thumb_func_end sub_8045064 thumb_func_start sub_80450E0 sub_80450E0: push {lr} cmp r0, 0 bne _080450EA movs r0, 0 b _080450F2 _080450EA: ldr r0, [r0] cmp r0, 0 beq _080450F2 movs r0, 0x1 _080450F2: pop {r1} bx r1 thumb_func_end sub_80450E0 thumb_func_start sub_80450F8 sub_80450F8: ldr r0, [r0] bx lr thumb_func_end sub_80450F8 thumb_func_start sub_80450FC sub_80450FC: adds r0, 0x25 ldrb r0, [r0] bx lr thumb_func_end sub_80450FC thumb_func_start sub_8045104 sub_8045104: ldr r0, [r0, 0x70] bx lr thumb_func_end sub_8045104 thumb_func_start sub_8045108 sub_8045108: ldr r0, [r0, 0x70] bx lr thumb_func_end sub_8045108 thumb_func_start sub_804510C sub_804510C: ldr r0, [r0, 0x70] bx lr thumb_func_end sub_804510C thumb_func_start sub_8045110 sub_8045110: ldr r0, [r0, 0x70] bx lr thumb_func_end sub_8045110 thumb_func_start sub_8045114 sub_8045114: push {lr} movs r1, 0x4 ldrsh r2, [r0, r1] movs r3, 0x6 ldrsh r1, [r0, r3] adds r0, r2, 0 bl sub_804954C pop {r1} bx r1 thumb_func_end sub_8045114 thumb_func_start sub_8045128 sub_8045128: push {lr} movs r1, 0x4 ldrsh r2, [r0, r1] movs r3, 0x6 ldrsh r1, [r0, r3] adds r0, r2, 0 bl sub_8049590 pop {r1} bx r1 thumb_func_end sub_8045128 thumb_func_start sub_804513C sub_804513C: push {r4-r7,lr} movs r3, 0 ldr r7, _080451FC ldr r6, _08045200 ldr r4, _08045204 movs r5, 0 _08045148: ldr r0, [r7] lsls r2, r3, 2 adds r1, r0, r6 adds r1, r2 adds r0, r4 str r0, [r1] str r5, [r0] adds r4, 0x74 adds r3, 0x1 cmp r3, 0x3 ble _08045148 ldr r1, _08045208 movs r2, 0 adds r0, r1, 0x5 _08045164: strb r2, [r0] subs r0, 0x1 cmp r0, r1 bge _08045164 movs r3, 0 ldr r7, _080451FC ldr r6, _0804520C ldr r4, _08045210 movs r5, 0 _08045176: ldr r0, [r7] lsls r2, r3, 2 adds r1, r0, r6 adds r1, r2 adds r0, r4 str r0, [r1] str r5, [r0] adds r4, 0x74 adds r3, 0x1 cmp r3, 0xF ble _08045176 ldr r1, _08045214 movs r2, 0 adds r0, r1, 0 adds r0, 0xF _08045194: strb r2, [r0] subs r0, 0x1 cmp r0, r1 bge _08045194 movs r3, 0 ldr r5, _080451FC ldr r4, _08045218 movs r2, 0 _080451A4: ldr r0, [r5] lsls r1, r3, 2 adds r0, r4 adds r0, r1 str r2, [r0] adds r3, 0x1 cmp r3, 0x13 ble _080451A4 movs r3, 0 ldr r7, _080451FC ldr r6, _0804521C ldr r4, _08045220 movs r5, 0 _080451BE: ldr r0, [r7] lsls r2, r3, 2 adds r1, r0, r6 adds r1, r2 adds r0, r4 str r0, [r1] str r5, [r0] adds r4, 0x74 adds r3, 0x1 cmp r3, 0x3F ble _080451BE movs r3, 0 ldr r7, _080451FC ldr r6, _08045224 ldr r4, _08045228 movs r5, 0 _080451DE: ldr r0, [r7] lsls r2, r3, 2 adds r1, r0, r6 adds r1, r2 adds r0, r4 str r0, [r1] str r5, [r0] adds r4, 0x74 adds r3, 0x1 cmp r3, 0x3F ble _080451DE pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080451FC: .4byte gUnknown_203B418 _08045200: .4byte 0x0001357c _08045204: .4byte 0x0001381c _08045208: .4byte gUnknown_202EE70 _0804520C: .4byte 0x0001358c _08045210: .4byte 0x000139ec _08045214: .4byte gUnknown_202EE76 _08045218: .4byte 0x000135cc _0804521C: .4byte 0x0001361c _08045220: .4byte 0x0001412c _08045224: .4byte 0x0001371c _08045228: .4byte 0x00015e2c thumb_func_end sub_804513C thumb_func_start sub_804522C sub_804522C: push {r4-r7,lr} sub sp, 0x4 ldr r2, _08045274 ldr r0, [r2] ldr r3, _08045278 adds r1, r0, r3 ldrb r7, [r1] ldr r1, _0804527C adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _080452AA movs r6, 0 adds r7, r2, 0 _08045248: ldr r0, [r7] lsls r1, r6, 2 ldr r2, _08045280 adds r0, r2 adds r0, r1 ldr r5, [r0] adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080452A2 ldr r0, [r7] ldr r3, _08045284 adds r0, r3 ldr r0, [r0] cmp r5, r0 bne _08045288 adds r0, r5, 0 bl sub_806C51C b _080452A2 .align 2, 0 _08045274: .4byte gUnknown_203B418 _08045278: .4byte 0x00018210 _0804527C: .4byte 0x0001820a _08045280: .4byte 0x000135cc _08045284: .4byte 0x000181f8 _08045288: ldr r4, [r5, 0x70] adds r0, r5, 0 bl sub_804187C adds r2, r0, 0 adds r0, r4, 0 adds r0, 0x98 ldr r0, [r0] movs r3, 0x4 ldrsh r1, [r4, r3] movs r3, 0 bl sub_800F75C _080452A2: adds r6, 0x1 cmp r6, 0x13 ble _08045248 b _0804533E _080452AA: movs r6, 0 _080452AC: ldr r0, _08045348 ldr r0, [r0] lsls r1, r6, 2 ldr r2, _0804534C adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080452CC adds r0, r4, 0 bl sub_806C51C _080452CC: adds r6, 0x1 cmp r6, 0x3 ble _080452AC movs r6, 0 _080452D4: ldr r5, _08045348 ldr r0, [r5] lsls r1, r6, 2 ldr r3, _08045350 adds r0, r3 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080452F4 adds r0, r4, 0 bl sub_806C51C _080452F4: adds r6, 0x1 cmp r6, 0xF ble _080452D4 movs r6, 0 ldr r0, [r5] ldr r1, _08045354 adds r0, r1 movs r2, 0 ldrsh r0, [r0, r2] cmp r6, r0 bge _08045336 adds r4, r5, 0 _0804530C: ldr r0, [r4] lsls r1, r6, 2 ldr r3, _08045358 adds r0, r3 adds r0, r1 ldr r0, [r0] movs r1, 0 str r1, [sp] adds r1, r7, 0 movs r2, 0x1 movs r3, 0xFF bl sub_80462AC adds r6, 0x1 ldr r0, [r4] ldr r1, _08045354 adds r0, r1 movs r2, 0 ldrsh r0, [r0, r2] cmp r6, r0 blt _0804530C _08045336: cmp r7, 0 beq _0804533E bl sub_807FA9C _0804533E: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08045348: .4byte gUnknown_203B418 _0804534C: .4byte 0x0001357c _08045350: .4byte 0x0001358c _08045354: .4byte 0x00003904 _08045358: .4byte 0x0001361c thumb_func_end sub_804522C thumb_func_start sub_804535C sub_804535C: push {lr} adds r2, r0, 0 cmp r1, 0 beq _0804536C ldr r0, [r1] str r0, [r2, 0xC] ldr r0, [r1, 0x4] b _0804538E _0804536C: movs r0, 0x4 ldrsh r1, [r2, r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 11 movs r1, 0xC0 lsls r1, 4 adds r0, r1 str r0, [r2, 0xC] movs r0, 0x6 ldrsh r1, [r2, r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 11 movs r1, 0x80 lsls r1, 5 adds r0, r1 _0804538E: str r0, [r2, 0x10] pop {r0} bx r0 thumb_func_end sub_804535C thumb_func_start sub_8045394 sub_8045394: str r1, [r0, 0xC] str r2, [r0, 0x10] bx lr thumb_func_end sub_8045394 thumb_func_start sub_804539C sub_804539C: ldr r3, [r0, 0xC] adds r3, r1 str r3, [r0, 0xC] ldr r1, [r0, 0x10] adds r1, r2 str r1, [r0, 0x10] bx lr thumb_func_end sub_804539C thumb_func_start sub_80453AC sub_80453AC: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 16 asrs r0, 16 mov r8, r0 movs r0, 0x1 negs r0, r0 mov r9, r0 mov r0, r8 bl sub_808DACC lsls r0, 24 lsrs r6, r0, 24 movs r5, 0 movs r0, 0x6 subs r3, r0, r6 ldr r4, _080453D8 b _080453DE .align 2, 0 _080453D8: .4byte gUnknown_202EE70 _080453DC: adds r5, 0x1 _080453DE: cmp r5, r3 bgt _08045400 movs r2, 0 cmp r2, r6 bge _080453FA adds r1, r5, r4 b _080453F4 _080453EC: adds r1, 0x1 adds r2, 0x1 cmp r2, r6 bge _080453FA _080453F4: ldrb r0, [r1] cmp r0, 0 beq _080453EC _080453FA: cmp r2, r6 bne _080453DC mov r9, r5 _08045400: movs r0, 0x1 negs r0, r0 cmp r9, r0 beq _080454FC movs r5, 0 ldr r7, _080454DC _0804540C: ldr r1, _080454E0 ldr r0, [r1] lsls r1, r5, 2 ldr r2, _080454E4 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 lsrs r0, 24 mov r10, r0 cmp r0, 0 bne _080454F0 movs r0, 0x1 str r0, [r4] adds r0, r4, 0 adds r0, 0x24 strb r5, [r0] ldr r1, _080454E0 ldr r0, [r1] adds r0, r7 str r0, [r4, 0x70] mov r2, r8 strh r2, [r0, 0x2] movs r0, 0 mov r1, r8 bl sub_8069F54 ldr r1, [r4, 0x70] strh r0, [r1, 0x4] ldr r0, [r4, 0x70] movs r5, 0 strb r5, [r0, 0x6] movs r0, 0 mov r1, r8 bl sub_8069F54 lsls r0, 16 asrs r0, 16 bl sub_80687D0 str r0, [r4, 0x64] mov r1, r9 lsls r0, r1, 4 adds r0, 0x40 adds r1, r4, 0 adds r1, 0x68 strh r0, [r1] adds r1, 0x2 movs r0, 0x7 strb r0, [r1] adds r0, r4, 0 adds r0, 0x6C movs r2, 0 strb r2, [r0] adds r1, 0x1 movs r0, 0xFF strb r0, [r1] adds r0, r4, 0 adds r0, 0x6D movs r5, 0x1 strb r5, [r0] adds r0, 0x2 strb r5, [r0] mov r0, r10 str r0, [r4, 0x1C] bl sub_8045ACC ldr r0, [r4, 0x70] ldr r1, _080454E8 adds r0, r1 mov r2, r9 strb r2, [r0] ldr r0, [r4, 0x70] movs r5, 0xB4 lsls r5, 1 adds r0, r5 strb r6, [r0] cmp r6, 0 beq _080454C6 ldr r3, _080454EC movs r2, 0x1 adds r1, r6, 0 _080454B6: mov r5, r9 adds r0, r5, r3 strb r2, [r0] movs r0, 0x1 add r9, r0 subs r1, 0x1 cmp r1, 0 bne _080454B6 _080454C6: ldr r1, _080454E0 ldr r0, [r1] movs r2, 0xCD lsls r2, 3 adds r0, r2 ldrh r2, [r0] adds r1, r2, 0x1 strh r1, [r0] strh r2, [r4, 0x26] adds r0, r4, 0 b _080454FE .align 2, 0 _080454DC: .4byte 0x0000069c _080454E0: .4byte gUnknown_203B418 _080454E4: .4byte 0x0001357c _080454E8: .4byte 0x00000167 _080454EC: .4byte gUnknown_202EE70 _080454F0: movs r0, 0x82 lsls r0, 2 adds r7, r0 adds r5, 0x1 cmp r5, 0x3 ble _0804540C _080454FC: movs r0, 0 _080454FE: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80453AC thumb_func_start sub_804550C sub_804550C: 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 r8, r0 movs r0, 0x1 negs r0, r0 mov r9, r0 mov r0, r8 bl sub_808DACC lsls r0, 24 lsrs r7, r0, 24 movs r5, 0 movs r0, 0x10 subs r3, r0, r7 ldr r4, _08045538 b _0804553E .align 2, 0 _08045538: .4byte gUnknown_202EE76 _0804553C: adds r5, 0x1 _0804553E: cmp r5, r3 bgt _08045560 movs r2, 0 cmp r2, r7 bge _0804555A adds r1, r5, r4 b _08045554 _0804554C: adds r1, 0x1 adds r2, 0x1 cmp r2, r7 bge _0804555A _08045554: ldrb r0, [r1] cmp r0, 0 beq _0804554C _0804555A: cmp r2, r7 bne _0804553C mov r9, r5 _08045560: movs r0, 0x1 negs r0, r0 cmp r9, r0 bne _0804556A b _08045670 _0804556A: movs r5, 0 movs r1, 0x1 mov r10, r1 ldr r2, _08045650 mov r3, r9 lsls r0, r3, 4 adds r0, 0xA0 str r0, [sp] _0804557A: ldr r1, _08045654 ldr r0, [r1] lsls r1, r5, 2 ldr r3, _08045658 adds r0, r3 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 str r2, [sp, 0x4] bl sub_80450E0 lsls r0, 24 lsrs r6, r0, 24 ldr r2, [sp, 0x4] cmp r6, 0 bne _08045664 mov r0, r10 str r0, [r4] adds r0, r4, 0 adds r0, 0x24 strb r5, [r0] subs r0, 0x2 strb r6, [r0] ldr r1, _08045654 ldr r0, [r1] adds r0, r2 str r0, [r4, 0x70] mov r2, r8 strh r2, [r0, 0x2] movs r0, 0 mov r1, r8 bl sub_8069F54 ldr r1, [r4, 0x70] strh r0, [r1, 0x4] ldr r0, [r4, 0x70] mov r3, r10 strb r3, [r0, 0x6] movs r0, 0 mov r1, r8 bl sub_8069F54 lsls r0, 16 asrs r0, 16 bl sub_80687D0 str r0, [r4, 0x64] adds r0, r4, 0 adds r0, 0x68 mov r5, sp ldrh r5, [r5] strh r5, [r0] adds r1, r4, 0 adds r1, 0x6A movs r0, 0x7 strb r0, [r1] adds r0, r4, 0 adds r0, 0x6C movs r1, 0 strb r1, [r0] adds r1, r4, 0 adds r1, 0x6B movs r0, 0xFF strb r0, [r1] adds r0, r4, 0 adds r0, 0x6D mov r2, r10 strb r2, [r0] adds r0, 0x2 strb r2, [r0] str r6, [r4, 0x1C] ldr r0, [r4, 0x70] ldr r3, _0804565C adds r0, r3 mov r5, r9 strb r5, [r0] ldr r0, [r4, 0x70] movs r1, 0xB4 lsls r1, 1 adds r0, r1 strb r7, [r0] cmp r7, 0 beq _08045636 ldr r3, _08045660 movs r2, 0x1 adds r1, r7, 0 _08045626: mov r5, r9 adds r0, r5, r3 strb r2, [r0] movs r0, 0x1 add r9, r0 subs r1, 0x1 cmp r1, 0 bne _08045626 _08045636: bl sub_8045ACC ldr r1, _08045654 ldr r0, [r1] movs r2, 0xCD lsls r2, 3 adds r0, r2 ldrh r2, [r0] adds r1, r2, 0x1 strh r1, [r0] strh r2, [r4, 0x26] adds r0, r4, 0 b _08045672 .align 2, 0 _08045650: .4byte 0x00000ebc _08045654: .4byte gUnknown_203B418 _08045658: .4byte 0x0001358c _0804565C: .4byte 0x00000167 _08045660: .4byte gUnknown_202EE76 _08045664: movs r3, 0x82 lsls r3, 2 adds r2, r3 adds r5, 0x1 cmp r5, 0xF ble _0804557A _08045670: movs r0, 0 _08045672: 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_804550C thumb_func_start sub_8045684 sub_8045684: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} mov r10, r1 lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r2, 24 lsrs r2, 24 mov r9, r2 movs r5, 0 ldr r7, _080456E4 ldr r6, _080456E8 _080456A2: ldr r0, [r7] lsls r1, r5, 2 ldr r2, _080456EC adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _080456F0 movs r0, 0x2 str r0, [r4] ldr r0, [r7] adds r0, r6 str r0, [r4, 0x70] mov r2, r8 strb r2, [r0] ldr r0, [r4, 0x70] mov r2, r9 strb r2, [r0, 0x1] str r1, [r4, 0x1C] adds r0, r4, 0 adds r0, 0x22 strb r1, [r0] mov r2, r10 ldr r0, [r2] str r0, [r4, 0x4] strh r1, [r4, 0x26] adds r0, r4, 0 b _080456FA .align 2, 0 _080456E4: .4byte gUnknown_203B418 _080456E8: .4byte 0x00003908 _080456EC: .4byte 0x0001371c _080456F0: adds r6, 0x4 adds r5, 0x1 cmp r5, 0x3F ble _080456A2 movs r0, 0 _080456FA: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8045684 thumb_func_start sub_8045708 sub_8045708: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} mov r8, r0 ldr r1, _08045744 ldr r0, _08045748 ldr r0, [r0] ldr r2, _0804574C adds r0, r2 movs r3, 0 ldrsh r0, [r0, r3] adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 bne _0804579C mov r1, r8 movs r2, 0 ldrsh r0, [r1, r2] movs r3, 0x2 ldrsh r1, [r1, r3] bl sub_8049590 ldrh r1, [r0] movs r0, 0x3 ands r0, r1 cmp r0, 0x2 bne _0804579C b _080457C4 .align 2, 0 _08045744: .4byte gUnknown_810ACC0 _08045748: .4byte gUnknown_203B418 _0804574C: .4byte 0x00003a0e _08045750: movs r0, 0x3 str r0, [r4] ldr r0, _08045798 adds r1, r6, r0 mov r2, r9 ldr r0, [r2] adds r0, r1 str r0, [r4, 0x70] mov r3, r8 ldr r0, [r3] str r0, [r4, 0x4] movs r1, 0 ldrsh r0, [r3, r1] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, 0x4 lsls r1, 8 movs r2, 0x2 ldrsh r0, [r3, r2] lsls r2, r0, 1 adds r2, r0 lsls r2, 3 adds r2, 0x4 lsls r2, 8 adds r0, r4, 0 bl sub_8045394 movs r0, 0 strh r7, [r4, 0x26] adds r1, r4, 0 adds r1, 0x22 strb r0, [r1] str r7, [r4, 0x1C] adds r0, r4, 0 b _080457C6 .align 2, 0 _08045798: .4byte 0x00003804 _0804579C: movs r5, 0 ldr r3, _080457D4 mov r9, r3 _080457A2: mov r1, r9 ldr r0, [r1] lsls r6, r5, 2 ldr r2, _080457D8 adds r0, r2 adds r0, r6 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0 beq _08045750 adds r5, 0x1 cmp r5, 0x3F ble _080457A2 _080457C4: movs r0, 0 _080457C6: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080457D4: .4byte gUnknown_203B418 _080457D8: .4byte 0x0001361c thumb_func_end sub_8045708 thumb_func_start sub_80457DC sub_80457DC: push {r4-r6,lr} adds r4, r0, 0 movs r0, 0x5 str r0, [r4] movs r6, 0 movs r5, 0 strh r5, [r4, 0x4] strh r5, [r4, 0x6] adds r0, r4, 0 movs r1, 0 movs r2, 0 bl sub_8045394 strh r5, [r4, 0x26] adds r4, 0x22 strb r6, [r4] pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80457DC thumb_func_start sub_8045804 sub_8045804: push {r4-r6,lr} adds r4, r0, 0 bl sub_80450F8 cmp r0, 0x1 beq _0804581C cmp r0, 0x1 bcc _08045880 cmp r0, 0x5 beq _08045880 _08045818: movs r0, 0x1 b _08045882 _0804581C: adds r0, r4, 0 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0 beq _08045880 ldr r0, _08045874 ldr r1, [r0] ldr r0, _08045878 adds r2, r1, r0 ldr r5, [r2, 0x10] ldr r3, [r4, 0x70] ldrb r0, [r3, 0x6] cmp r0, 0 beq _08045818 ldr r6, _0804587C adds r0, r1, r6 ldrb r0, [r0] cmp r0, 0 bne _0804584C adds r0, r3, 0 adds r0, 0xE4 ldrb r0, [r0] cmp r0, 0x1 beq _08045880 _0804584C: adds r0, r2, 0 adds r0, 0x23 ldrb r0, [r0] cmp r0, 0 bne _08045818 adds r0, r2, 0 adds r0, 0x25 ldrb r0, [r0] cmp r0, 0 bne _08045818 cmp r5, 0 beq _08045880 adds r1, r4, 0x4 adds r0, r2, 0 bl sub_8083294 lsls r0, 24 lsrs r0, 24 b _08045882 .align 2, 0 _08045874: .4byte gUnknown_203B418 _08045878: .4byte 0x000181e8 _0804587C: .4byte 0x0001820f _08045880: movs r0, 0 _08045882: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8045804 thumb_func_start sub_8045888 sub_8045888: push {r4,r5,lr} adds r4, r0, 0 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0 beq _08045988 ldr r1, [r4, 0xC] cmp r1, 0 bge _0804589C adds r1, 0xFF _0804589C: asrs r1, 8 ldr r0, _080458F0 ldr r2, [r0] ldr r3, _080458F4 adds r0, r2, r3 movs r5, 0 ldrsh r0, [r0, r5] subs r3, r1, r0 ldr r0, [r4, 0x10] cmp r0, 0 bge _080458B4 adds r0, 0xFF _080458B4: asrs r0, 8 ldr r5, _080458F8 adds r1, r2, r5 movs r5, 0 ldrsh r1, [r1, r5] subs r1, r0, r1 movs r0, 0x20 negs r0, r0 cmp r3, r0 blt _08045988 cmp r1, r0 blt _08045988 movs r0, 0x88 lsls r0, 1 cmp r3, r0 bgt _08045988 cmp r1, 0xC0 bgt _08045988 ldr r0, _080458FC adds r5, r2, r0 adds r0, r4, 0 bl sub_80450F8 cmp r0, 0x5 bhi _08045984 lsls r0, 2 ldr r1, _08045900 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080458F0: .4byte gUnknown_203B418 _080458F4: .4byte 0x000181f0 _080458F8: .4byte 0x000181f2 _080458FC: .4byte 0x000181e8 _08045900: .4byte _08045904 .align 2, 0 _08045904: .4byte _08045988 .4byte _08045934 .4byte _08045964 .4byte _0804591C .4byte _08045984 .4byte _08045988 _0804591C: adds r0, r5, 0 adds r0, 0x26 _08045920: ldrb r0, [r0] cmp r0, 0 bne _08045984 adds r0, r4, 0x4 bl sub_803F428 lsls r0, 24 _0804592E: cmp r0, 0 bne _08045984 b _08045988 _08045934: ldr r1, [r4, 0x70] ldrb r0, [r1, 0x6] cmp r0, 0 beq _08045984 ldr r0, _0804595C ldr r0, [r0] ldr r2, _08045960 adds r0, r2 ldrb r0, [r0] cmp r0, 0 bne _08045954 adds r0, r1, 0 adds r0, 0xE4 ldrb r0, [r0] cmp r0, 0x1 beq _08045988 _08045954: adds r0, r5, 0 adds r0, 0x25 b _08045920 .align 2, 0 _0804595C: .4byte gUnknown_203B418 _08045960: .4byte 0x0001820f _08045964: ldr r0, _0804597C ldr r0, [r0] ldr r3, _08045980 adds r0, r3 ldrb r0, [r0] cmp r0, 0 bne _08045984 adds r0, r4, 0 adds r0, 0x20 ldrb r0, [r0] b _0804592E .align 2, 0 _0804597C: .4byte gUnknown_203B418 _08045980: .4byte 0x0001820f _08045984: movs r0, 0x1 b _0804598A _08045988: movs r0, 0 _0804598A: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8045888 thumb_func_start sub_8045990 sub_8045990: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080459E8 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080459E8 adds r0, r4, 0 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0 beq _080459E8 ldr r0, [r4] cmp r0, 0x1 bne _080459EC ldr r0, [r5] cmp r0, 0x1 bne _080459DE adds r0, r5, 0 bl sub_8071884 lsls r0, 24 cmp r0, 0 bne _080459D8 ldr r0, [r4, 0x70] adds r0, 0xE4 ldrb r0, [r0] cmp r0, 0x1 beq _080459E8 _080459D8: ldr r0, [r5, 0x70] adds r0, 0xE8 b _080459E2 _080459DE: ldr r0, [r4, 0x70] adds r0, 0xE4 _080459E2: ldrb r0, [r0] cmp r0, 0x1 bne _080459EC _080459E8: movs r0, 0 b _080459F8 _080459EC: adds r0, r5, 0x4 adds r1, r4, 0x4 bl sub_8083294 lsls r0, 24 lsrs r0, 24 _080459F8: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8045990 thumb_func_start sub_8045A00 sub_8045A00: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08045A58 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08045A58 adds r0, r4, 0 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0 beq _08045A58 ldr r0, [r4] cmp r0, 0x1 bne _08045A5C ldr r0, [r5] cmp r0, 0x1 bne _08045A4E adds r0, r5, 0 bl sub_8071884 lsls r0, 24 cmp r0, 0 bne _08045A48 ldr r0, [r4, 0x70] adds r0, 0xE4 ldrb r0, [r0] cmp r0, 0x1 beq _08045A58 _08045A48: ldr r0, [r5, 0x70] adds r0, 0xE8 b _08045A52 _08045A4E: ldr r0, [r4, 0x70] adds r0, 0xE4 _08045A52: ldrb r0, [r0] cmp r0, 0x1 bne _08045A5C _08045A58: movs r0, 0 b _08045A68 _08045A5C: adds r0, r5, 0x4 adds r1, r4, 0x4 bl sub_808333C lsls r0, 24 lsrs r0, 24 _08045A68: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8045A00 thumb_func_start sub_8045A70 sub_8045A70: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08045AA4 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08045AA4 adds r0, r4, 0 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0 beq _08045AA4 adds r0, r5, 0x4 adds r1, r4, 0x4 bl sub_8083294 lsls r0, 24 lsrs r0, 24 b _08045AA6 _08045AA4: movs r0, 0 _08045AA6: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8045A70 thumb_func_start sub_8045AAC sub_8045AAC: push {lr} adds r0, 0x4 bl sub_8083294 lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end sub_8045AAC thumb_func_start sub_8045ABC sub_8045ABC: push {lr} adds r0, 0x4 bl sub_808333C lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end sub_8045ABC thumb_func_start sub_8045ACC sub_8045ACC: push {r4-r7,lr} movs r6, 0 movs r5, 0 ldr r7, _08045B50 _08045AD4: ldr r0, [r7] lsls r1, r5, 2 ldr r2, _08045B54 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08045AFA ldr r0, [r7] lsls r1, r6, 2 ldr r2, _08045B58 adds r0, r2 adds r0, r1 str r4, [r0] adds r6, 0x1 _08045AFA: adds r5, 0x1 cmp r5, 0x3 ble _08045AD4 movs r5, 0 ldr r7, _08045B50 _08045B04: ldr r0, [r7] lsls r1, r5, 2 ldr r2, _08045B5C adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08045B2A ldr r0, [r7] lsls r1, r6, 2 ldr r2, _08045B58 adds r0, r2 adds r0, r1 str r4, [r0] adds r6, 0x1 _08045B2A: adds r5, 0x1 cmp r5, 0xF ble _08045B04 cmp r6, 0x13 bgt _08045B4A ldr r4, _08045B50 ldr r3, _08045B58 movs r2, 0 _08045B3A: ldr r0, [r4] lsls r1, r6, 2 adds r0, r3 adds r0, r1 str r2, [r0] adds r6, 0x1 cmp r6, 0x13 ble _08045B3A _08045B4A: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08045B50: .4byte gUnknown_203B418 _08045B54: .4byte 0x0001357c _08045B58: .4byte 0x000135cc _08045B5C: .4byte 0x0001358c thumb_func_end sub_8045ACC thumb_func_start sub_8045B60 sub_8045B60: push {r4,lr} adds r3, r0, 0 movs r2, 0 ldr r0, _08045B78 ldr r0, [r0] ldr r4, _08045B7C adds r1, r0, r4 _08045B6E: ldr r0, [r1] cmp r3, r0 bne _08045B80 adds r0, r2, 0 b _08045B8C .align 2, 0 _08045B78: .4byte gUnknown_203B418 _08045B7C: .4byte 0x0001357c _08045B80: adds r1, 0x4 adds r2, 0x1 cmp r2, 0x3 ble _08045B6E movs r0, 0x1 negs r0, r0 _08045B8C: pop {r4} pop {r1} bx r1 thumb_func_end sub_8045B60 thumb_func_start sub_8045B94 sub_8045B94: push {r4-r6,lr} adds r5, r0, 0 adds r4, r1, 0 adds r6, r2, 0 adds r0, r4, 0 bl sub_80450F8 cmp r0, 0x2 beq _08045BD2 cmp r0, 0x2 bhi _08045BB0 cmp r0, 0x1 beq _08045BB6 b _08045BE2 _08045BB0: cmp r0, 0x3 beq _08045BC2 b _08045BE2 _08045BB6: ldr r1, [r4, 0x70] adds r0, r5, 0 adds r2, r6, 0 bl sub_80708B4 b _08045BEC _08045BC2: adds r0, r4, 0 bl sub_8045110 adds r1, r0, 0 adds r0, r5, 0 bl sub_8045BF8 b _08045BEC _08045BD2: adds r0, r4, 0 bl sub_804510C ldrb r1, [r0] adds r0, r5, 0 bl sub_807FE84 b _08045BEC _08045BE2: ldr r0, _08045BF4 ldr r1, [r0] adds r0, r5, 0 bl strcpy _08045BEC: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08045BF4: .4byte gUnknown_80FE6F4 thumb_func_end sub_8045B94 thumb_func_start sub_8045BF8 sub_8045BF8: push {lr} ldr r2, _08045C04 bl sub_8090E14 pop {r0} bx r0 .align 2, 0 _08045C04: .4byte gUnknown_80F699C thumb_func_end sub_8045BF8 thumb_func_start sub_8045C08 sub_8045C08: push {lr} ldr r2, _08045C14 bl sub_8090E14 pop {r0} bx r0 .align 2, 0 _08045C14: .4byte gUnknown_80F69A8 thumb_func_end sub_8045C08 thumb_func_start sub_8045C18 sub_8045C18: push {lr} ldr r2, _08045C24 bl sub_8090E14 pop {r0} bx r0 .align 2, 0 _08045C24: .4byte gUnknown_80F6990 thumb_func_end sub_8045C18 thumb_func_start sub_8045C28 sub_8045C28: push {r4-r7,lr} adds r5, r0, 0 adds r6, r2, 0 lsls r1, 24 lsrs r4, r1, 24 adds r1, r4, 0 movs r2, 0 bl sub_8090A8C movs r7, 0 adds r0, r4, 0 bl sub_8091544 lsls r0, 24 cmp r0, 0 beq _08045C72 cmp r6, 0 bne _08045C6C movs r0, 0x64 bl sub_8084100 ldr r1, _08045C64 ldr r1, [r1] ldr r2, _08045C68 adds r1, r2 ldrb r1, [r1] cmp r0, r1 bge _08045C72 b _08045C76 .align 2, 0 _08045C64: .4byte gUnknown_203B418 _08045C68: .4byte 0x0001c57e _08045C6C: cmp r6, 0x1 bne _08045C72 movs r7, 0x1 _08045C72: cmp r7, 0 beq _08045C7E _08045C76: ldrb r1, [r5] movs r0, 0x8 orrs r0, r1 strb r0, [r5] _08045C7E: adds r0, r4, 0 bl sub_8090BD0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x6 bne _08045CA2 ldr r0, _08045CA8 ldr r0, [r0] ldr r1, _08045CAC adds r0, r1 ldrb r0, [r0] lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r0, r5, 0 bl sub_8046CE4 _08045CA2: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08045CA8: .4byte gUnknown_203B418 _08045CAC: .4byte 0x0001c58b thumb_func_end sub_8045C28 thumb_func_start sub_8045CB0 sub_8045CB0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 movs r0, 0x38 bl sub_8084100 adds r5, r0, 0 movs r0, 0x20 bl sub_8084100 adds r6, r0, 0 ldr r0, _08045D34 ldr r0, [r0] ldr r1, _08045D38 adds r0, r1 movs r1, 0 strh r1, [r0] movs r0, 0 _08045CDA: adds r6, 0x1 cmp r6, 0x20 bne _08045CE2 movs r6, 0 _08045CE2: adds r0, 0x1 mov r10, r0 movs r3, 0x2 mov r9, r3 movs r0, 0x37 mov r8, r0 _08045CEE: adds r5, 0x1 cmp r5, 0x38 bne _08045CF6 movs r5, 0 _08045CF6: adds r0, r5, 0 adds r1, r6, 0 bl sub_804954C adds r2, r0, 0 ldrh r0, [r2] movs r3, 0x80 lsls r3, 2 adds r1, r3, 0 ands r0, r1 cmp r0, 0 bne _08045D92 ldrh r1, [r2, 0x4] mov r0, r9 ands r0, r1 cmp r0, 0 beq _08045D92 movs r7, 0 lsls r0, r5, 16 lsls r1, r6, 16 lsrs r0, 16 orrs r0, r1 str r0, [sp, 0x4] ldrh r1, [r2] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _08045D3C movs r7, 0x1 movs r0, 0x1 b _08045D58 .align 2, 0 _08045D34: .4byte gUnknown_203B418 _08045D38: .4byte 0x00003904 _08045D3C: movs r0, 0x3 ands r0, r1 cmp r0, 0 bne _08045D48 movs r0, 0x3 b _08045D58 _08045D48: movs r0, 0x40 ands r0, r1 lsls r0, 16 lsrs r0, 16 negs r0, r0 asrs r0, 31 mov r1, r9 ands r0, r1 _08045D58: bl sub_803D73C lsls r0, 24 lsrs r0, 24 adds r4, r0, 0 bl sub_80914E4 lsls r0, 24 cmp r0, 0 bne _08045D6E movs r7, 0 _08045D6E: mov r0, sp adds r1, r4, 0 movs r2, 0 bl sub_8045C28 cmp r7, 0 beq _08045D88 mov r0, sp ldrb r1, [r0] mov r0, r9 orrs r0, r1 mov r1, sp strb r0, [r1] _08045D88: add r0, sp, 0x4 mov r1, sp movs r2, 0x1 bl sub_80460F8 _08045D92: movs r3, 0x1 negs r3, r3 add r8, r3 mov r0, r8 cmp r0, 0 bge _08045CEE mov r0, r10 cmp r0, 0x1F ble _08045CDA add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8045CB0 thumb_func_start sub_8045DB4 sub_8045DB4: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xB8 mov r10, r0 lsls r1, 24 lsrs r1, 24 str r1, [sp, 0xA8] bl sub_8083600 adds r7, r0, 0 ldr r0, [r7, 0x70] str r0, [sp, 0xAC] mov r1, r10 movs r2, 0 ldrsh r0, [r1, r2] movs r3, 0x2 ldrsh r1, [r1, r3] bl sub_804954C ldr r4, [r0, 0x14] cmp r4, 0 bne _08045DE8 b _080460E0 _08045DE8: adds r0, r4, 0 bl sub_80450F8 cmp r0, 0x3 beq _08045DF4 b _080460E0 _08045DF4: adds r0, r4, 0 bl sub_8045108 adds r5, r0, 0 ldr r0, [sp, 0xAC] adds r0, 0x48 ldrb r0, [r0] cmp r0, 0 bne _08045E08 b _0804602E _08045E08: adds r0, r7, 0 movs r1, 0x1 bl sub_8071518 lsls r0, 24 cmp r0, 0 beq _08045E40 ldr r0, [sp, 0xA8] cmp r0, 0 bne _08045E1E b _080460E0 _08045E1E: ldr r0, _08045E34 adds r1, r5, 0 bl sub_8045BF8 ldr r0, _08045E38 adds r1, r7, 0 movs r2, 0 bl sub_8045B94 ldr r0, _08045E3C b _08046048 .align 2, 0 _08045E34: .4byte gUnknown_202DE58 _08045E38: .4byte gUnknown_202DF98 _08045E3C: .4byte gUnknown_80F8F88 _08045E40: ldrb r0, [r5, 0x2] bl sub_8090BD0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x6 bne _08045E7C movs r0, 0xA6 lsls r0, 1 bl sub_8083E38 adds r0, r5, 0 bl sub_80915D4 bl sub_80913A0 ldr r0, _08045E74 adds r1, r5, 0 bl sub_8045BF8 mov r0, r10 movs r1, 0x1 bl sub_80461C8 ldr r0, _08045E78 b _08045FD0 .align 2, 0 _08045E74: .4byte gUnknown_202DE58 _08045E78: .4byte gUnknown_80F8FFC _08045E7C: ldr r0, _08045EA8 ldr r0, [r0] ldr r1, _08045EAC adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _08045EB4 movs r4, 0 ldr r0, _08045EB0 mov r2, sp ldr r0, [r0] add r1, sp, 0x54 _08045E94: stm r1!, {r0} stm r2!, {r4} adds r0, 0x4 adds r4, 0x1 cmp r4, 0x13 ble _08045E94 movs r2, 0x14 mov r8, r2 b _08045EC4 .align 2, 0 _08045EA8: .4byte gUnknown_203B418 _08045EAC: .4byte 0x0000065b _08045EB0: .4byte gUnknown_203B460 _08045EB4: ldr r0, [sp, 0xAC] adds r0, 0x60 str r0, [sp, 0x54] movs r0, 0x1 negs r0, r0 str r0, [sp] movs r3, 0x1 mov r8, r3 _08045EC4: ldrb r0, [r5, 0x2] add r6, sp, 0xB0 strb r0, [r6] cmp r0, 0x8 bls _08045ED0 b _08046000 _08045ED0: ldrb r1, [r5] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08045EDC b _08046000 _08045EDC: movs r1, 0x1 negs r1, r1 mov r12, r1 mov r2, r12 str r2, [sp, 0xB4] movs r4, 0 cmp r4, r8 bge _08045F2C ldr r3, _08045FDC mov r9, r3 add r3, sp, 0x54 _08045EF2: ldr r2, [r3] ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08045F24 movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08045F24 ldr r1, [r5] mov r6, r9 ands r1, r6 ldr r0, [r2] ands r0, r6 cmp r1, r0 bne _08045F24 ldrb r0, [r2, 0x1] cmp r0, 0x63 beq _08045F24 ldr r1, [sp, 0xB4] cmp r1, r0 bge _08045F24 str r0, [sp, 0xB4] mov r12, r4 _08045F24: adds r3, 0x4 adds r4, 0x1 cmp r4, r8 blt _08045EF2 _08045F2C: movs r0, 0x1 negs r0, r0 cmp r12, r0 bne _08045F80 mov r2, r12 str r2, [sp, 0xB4] movs r4, 0 cmp r4, r8 bge _08045F78 add r3, sp, 0xB0 ldrb r3, [r3] mov r9, r3 add r3, sp, 0x54 _08045F46: ldr r2, [r3] ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08045F70 movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08045F70 ldrb r6, [r2, 0x2] cmp r9, r6 bne _08045F70 ldrb r0, [r2, 0x1] cmp r0, 0x63 beq _08045F70 ldr r1, [sp, 0xB4] cmp r1, r0 bge _08045F70 str r0, [sp, 0xB4] mov r12, r4 _08045F70: adds r3, 0x4 adds r4, 0x1 cmp r4, r8 blt _08045F46 _08045F78: movs r0, 0x1 negs r0, r0 cmp r12, r0 beq _08046000 _08045F80: add r0, sp, 0x54 mov r2, r12 lsls r4, r2, 2 adds r3, r0, r4 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r5, 0x1] adds r1, r0 cmp r1, 0x62 ble _08045F96 movs r1, 0x63 _08045F96: strb r1, [r2, 0x1] ldrb r1, [r5] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08045FAC ldr r0, [r3] ldrb r1, [r0] movs r2, 0x8 orrs r1, r2 strb r1, [r0] _08045FAC: ldr r0, _08045FE0 adds r1, r5, 0 bl sub_8045BF8 mov r0, r10 movs r1, 0x1 bl sub_80461C8 movs r0, 0xA5 lsls r0, 1 bl sub_8083E38 mov r3, sp adds r0, r3, r4 ldr r0, [r0] cmp r0, 0 bge _08045FE8 ldr r0, _08045FE4 _08045FD0: ldr r1, [r0] adds r0, r7, 0 bl sub_80522A8 b _08045FF2 .align 2, 0 _08045FDC: .4byte 0x00ff0008 _08045FE0: .4byte gUnknown_202DE58 _08045FE4: .4byte gUnknown_80F8FC4 _08045FE8: ldr r0, _08045FFC ldr r1, [r0] adds r0, r7, 0 bl sub_80522A8 _08045FF2: ldrb r0, [r5, 0x2] bl sub_8052EC0 b _080460E0 .align 2, 0 _08045FFC: .4byte gUnknown_80F8FF8 _08046000: movs r4, 0 cmp r4, r8 bge _0804602A ldr r0, [sp, 0x54] ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0804602A movs r3, 0x1 add r2, sp, 0x54 _08046016: adds r2, 0x4 adds r4, 0x1 cmp r4, r8 bge _0804602A ldr r0, [r2] ldrb r1, [r0] adds r0, r3, 0 ands r0, r1 cmp r0, 0 bne _08046016 _0804602A: cmp r4, r8 bne _08046060 _0804602E: ldr r6, [sp, 0xA8] cmp r6, 0 beq _080460E0 ldr r0, _08046054 adds r1, r5, 0 bl sub_8045BF8 ldr r0, _08046058 adds r1, r7, 0 movs r2, 0 bl sub_8045B94 ldr r0, _0804605C _08046048: ldr r1, [r0] adds r0, r7, 0 bl sub_80522A8 b _080460E0 .align 2, 0 _08046054: .4byte gUnknown_202DE58 _08046058: .4byte gUnknown_202DF98 _0804605C: .4byte gUnknown_80F8F54 _08046060: movs r0, 0xA5 lsls r0, 1 bl sub_8083E38 lsls r0, r4, 2 add r0, sp ldr r0, [r0] cmp r0, 0 bge _08046094 ldr r0, [r5] ldr r1, [sp, 0xAC] str r0, [r1, 0x60] ldr r0, _0804608C adds r1, r5, 0 bl sub_8045BF8 mov r0, r10 movs r1, 0x1 bl sub_80461C8 ldr r0, _08046090 b _080460AC .align 2, 0 _0804608C: .4byte gUnknown_202DE58 _08046090: .4byte gUnknown_80F8FC4 _08046094: adds r0, r5, 0 bl sub_8091290 lsls r0, 24 cmp r0, 0 beq _080460C0 ldr r0, _080460B8 adds r1, r7, 0 movs r2, 0 bl sub_8045B94 ldr r0, _080460BC _080460AC: ldr r1, [r0] adds r0, r7, 0 bl sub_80522A8 b _080460DA .align 2, 0 _080460B8: .4byte gUnknown_202DF98 _080460BC: .4byte gUnknown_80F8FAC _080460C0: ldr r0, _080460F0 adds r1, r5, 0 bl sub_8045BF8 mov r0, r10 movs r1, 0x1 bl sub_80461C8 ldr r0, _080460F4 ldr r1, [r0] adds r0, r7, 0 bl sub_80522A8 _080460DA: ldrb r0, [r5, 0x2] bl sub_8052EC0 _080460E0: add sp, 0xB8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080460F0: .4byte gUnknown_202DE58 _080460F4: .4byte gUnknown_80F8FF8 thumb_func_end sub_8045DB4 thumb_func_start sub_80460F8 sub_80460F8: push {r4-r7,lr} adds r5, r0, 0 adds r6, r1, 0 lsls r2, 24 lsrs r7, r2, 24 bl sub_8045708 adds r4, r0, 0 cmp r4, 0 bne _08046110 movs r0, 0 b _080461B6 _08046110: ldr r1, [r4, 0x70] ldr r0, [r6] str r0, [r1] ldr r2, [r4, 0x70] ldrb r1, [r2] movs r0, 0xEF ands r0, r1 strb r0, [r2] adds r1, r4, 0 adds r1, 0x20 movs r0, 0x1 strb r0, [r1] movs r1, 0 ldrsh r0, [r5, r1] movs r2, 0x2 ldrsh r1, [r5, r2] bl sub_8049590 str r4, [r0, 0x14] ldrh r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _08046186 ldrb r0, [r6, 0x2] bl sub_80914E4 lsls r0, 24 cmp r0, 0 beq _08046186 ldrb r1, [r6] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08046170 cmp r7, 0 beq _08046186 adds r0, r6, 0 bl sub_8090C7C ldr r1, _08046168 ldr r2, [r1] ldr r1, _0804616C b _0804617E .align 2, 0 _08046168: .4byte gUnknown_203B418 _0804616C: .4byte 0x0000068c _08046170: adds r0, r6, 0 bl sub_8090CCC ldr r1, _080461BC ldr r2, [r1] movs r1, 0xD2 lsls r1, 3 _0804617E: adds r2, r1 ldr r1, [r2] adds r1, r0 str r1, [r2] _08046186: movs r6, 0 movs r4, 0 _0804618A: ldr r5, _080461BC ldr r0, [r5] lsls r1, r4, 2 ldr r2, _080461C0 adds r0, r2 adds r0, r1 ldr r0, [r0] bl sub_80450E0 lsls r0, 24 adds r1, r4, 0x1 cmp r0, 0 beq _080461A6 adds r6, r1, 0 _080461A6: adds r4, r1, 0 cmp r4, 0x3F ble _0804618A ldr r0, [r5] ldr r1, _080461C4 adds r0, r1 strh r6, [r0] movs r0, 0x1 _080461B6: pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080461BC: .4byte gUnknown_203B418 _080461C0: .4byte 0x0001361c _080461C4: .4byte 0x00003904 thumb_func_end sub_80460F8 thumb_func_start sub_80461C8 sub_80461C8: push {r4-r7,lr} adds r2, r0, 0 lsls r1, 24 lsrs r7, r1, 24 movs r1, 0 ldrsh r0, [r2, r1] movs r3, 0x2 ldrsh r1, [r2, r3] bl sub_8049590 adds r6, r0, 0 ldr r5, [r6, 0x14] cmp r5, 0 beq _080461EE adds r0, r5, 0 bl sub_80450F8 cmp r0, 0x3 beq _080461F2 _080461EE: movs r0, 0 b _08046284 _080461F2: adds r0, r5, 0 bl sub_8045108 adds r4, r0, 0 ldrh r1, [r6] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _0804624E ldrb r0, [r4, 0x2] bl sub_80914E4 lsls r0, 24 cmp r0, 0 beq _0804624E ldrb r1, [r4] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08046238 cmp r7, 0 beq _0804624E adds r0, r4, 0 bl sub_8090C7C ldr r1, _08046230 ldr r2, [r1] ldr r1, _08046234 adds r2, r1 b _08046248 .align 2, 0 _08046230: .4byte gUnknown_203B418 _08046234: .4byte 0x0000068c _08046238: adds r0, r4, 0 bl sub_8090CCC ldr r1, _0804628C ldr r2, [r1] movs r3, 0xD2 lsls r3, 3 adds r2, r3 _08046248: ldr r1, [r2] subs r1, r0 str r1, [r2] _0804624E: movs r0, 0 str r0, [r6, 0x14] str r0, [r5] movs r6, 0 movs r4, 0 _08046258: ldr r5, _0804628C ldr r0, [r5] lsls r1, r4, 2 ldr r2, _08046290 adds r0, r2 adds r0, r1 ldr r0, [r0] bl sub_80450E0 lsls r0, 24 adds r1, r4, 0x1 cmp r0, 0 beq _08046274 adds r6, r1, 0 _08046274: adds r4, r1, 0 cmp r4, 0x3F ble _08046258 ldr r0, [r5] ldr r3, _08046294 adds r0, r3 strh r6, [r0] movs r0, 0x1 _08046284: pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0804628C: .4byte gUnknown_203B418 _08046290: .4byte 0x0001361c _08046294: .4byte 0x00003904 thumb_func_end sub_80461C8 thumb_func_start sub_8046298 sub_8046298: ldrb r0, [r0, 0x2] ldr r1, _080462A8 ldr r1, [r1] lsls r0, 5 adds r0, r1 ldrb r0, [r0, 0xD] bx lr .align 2, 0 _080462A8: .4byte gUnknown_20389A4 thumb_func_end sub_8046298 thumb_func_start sub_80462AC sub_80462AC: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 adds r4, r0, 0 ldr r0, [sp, 0x28] lsls r1, 24 lsrs r1, 24 mov r10, r1 lsls r2, 24 lsrs r5, r2, 24 lsls r3, 24 lsrs r3, 24 mov r9, r3 lsls r0, 24 lsrs r0, 24 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _080462E4 b _08046498 _080462E4: cmp r5, 0 beq _08046316 movs r1, 0x4 ldrsh r0, [r4, r1] movs r2, 0x6 ldrsh r1, [r4, r2] bl sub_804954C ldrh r0, [r0] movs r1, 0x3 ands r1, r0 cmp r1, 0 bne _08046300 b _08046498 _08046300: cmp r1, 0x2 bne _08046308 movs r3, 0x1 str r3, [sp, 0x4] _08046308: adds r0, r4, 0 bl sub_8045888 lsls r0, 24 cmp r0, 0 bne _08046316 b _08046498 _08046316: ldr r1, [r4, 0xC] cmp r1, 0 bge _0804631E adds r1, 0xFF _0804631E: asrs r1, 8 ldr r0, _080463A4 ldr r2, [r0] ldr r5, _080463A8 adds r0, r2, r5 movs r3, 0 ldrsh r0, [r0, r3] subs r6, r1, r0 ldr r3, [r4, 0x10] ldr r0, [r4, 0x1C] subs r1, r3, r0 cmp r1, 0 bge _0804633A adds r1, 0xFF _0804633A: asrs r1, 8 ldr r5, _080463AC adds r0, r2, r5 movs r5, 0 ldrsh r2, [r0, r5] subs r1, r2 mov r8, r1 adds r0, r3, 0 cmp r0, 0 bge _08046350 adds r0, 0xFF _08046350: asrs r0, 8 subs r0, r2 adds r7, r0, 0 adds r7, 0x8 lsrs r0, r7, 31 adds r0, r7, r0 asrs r7, r0, 1 movs r0, 0x20 negs r0, r0 cmp r6, r0 bge _08046368 b _08046498 _08046368: cmp r8, r0 bge _0804636E b _08046498 _0804636E: movs r0, 0x88 lsls r0, 1 cmp r6, r0 ble _08046378 b _08046498 _08046378: mov r0, r8 cmp r0, 0xC0 ble _08046380 b _08046498 _08046380: ldr r5, _080463B0 ldrh r1, [r5, 0x2] ldr r0, _080463B4 ands r0, r1 strh r0, [r5, 0x2] mov r1, r10 cmp r1, 0 beq _080463BC movs r2, 0x17 mov r10, r2 movs r2, 0xA0 lsls r2, 8 ldrh r1, [r5, 0x4] ldr r0, _080463B8 ands r0, r1 orrs r0, r2 strh r0, [r5, 0x4] b _08046408 .align 2, 0 _080463A4: .4byte gUnknown_203B418 _080463A8: .4byte 0x000181f0 _080463AC: .4byte 0x000181f2 _080463B0: .4byte gUnknown_202EDC0 _080463B4: .4byte 0x0000c1ff _080463B8: .4byte 0x00000fff _080463BC: ldr r0, [r4, 0x70] bl sub_8046298 mov r10, r0 mov r3, r9 cmp r3, 0xFF beq _080463EE cmp r0, 0 bne _080463EE ldr r0, _08046478 add r0, r9 ldrb r0, [r0] mov r10, r0 ldr r0, _0804647C add r0, r9 ldrb r1, [r0] lsls r1, 3 movs r0, 0x1F ands r1, r0 lsls r1, 9 ldrh r2, [r5, 0x2] ldr r0, _08046480 ands r0, r2 orrs r0, r1 strh r0, [r5, 0x2] _080463EE: ldr r0, [r4, 0x70] ldrb r0, [r0, 0x2] bl sub_8090D58 movs r1, 0xF ands r0, r1 lsls r0, 12 ldr r3, _08046484 ldrh r2, [r3, 0x4] ldr r1, _08046488 ands r1, r2 orrs r1, r0 strh r1, [r3, 0x4] _08046408: ldr r1, _08046488 mov r5, r8 ands r1, r5 lsls r1, 4 ldr r4, _08046484 ldrh r2, [r4, 0x6] movs r0, 0xF ands r0, r2 orrs r0, r1 strh r0, [r4, 0x6] ldr r0, _0804648C ands r6, r0 ldrh r1, [r4, 0x2] movs r0, 0xFE lsls r0, 8 ands r0, r1 orrs r0, r6 strh r0, [r4, 0x2] ldr r0, [sp, 0x4] lsls r3, r0, 10 ldrh r2, [r4] ldr r1, _08046490 adds r0, r1, 0 ands r0, r2 orrs r0, r3 strh r0, [r4] movs r2, 0xC0 lsls r2, 4 ldrh r0, [r4, 0x4] ands r1, r0 orrs r1, r2 mov r2, r10 lsls r0, r2, 2 movs r3, 0xD0 lsls r3, 1 adds r0, r3 ldr r2, _08046494 ands r0, r2 movs r2, 0xFC lsls r2, 8 ands r1, r2 orrs r1, r0 strh r1, [r4, 0x4] ldr r5, [sp] cmp r5, 0 bne _08046466 movs r7, 0x1 _08046466: adds r0, r4, 0 adds r1, r7, 0 movs r2, 0 movs r3, 0 bl AddSprite movs r0, 0x1 b _0804649A .align 2, 0 _08046478: .4byte gUnknown_203B420 _0804647C: .4byte gUnknown_203B428 _08046480: .4byte 0x0000c1ff _08046484: .4byte gUnknown_202EDC0 _08046488: .4byte 0x00000fff _0804648C: .4byte 0x000001ff _08046490: .4byte 0x0000f3ff _08046494: .4byte 0x000003ff _08046498: movs r0, 0 _0804649A: 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_80462AC thumb_func_start sub_80464AC sub_80464AC: push {r4,lr} ldr r4, _080464C4 ldrb r0, [r0, 0x2] bl sub_8090D6C lsls r0, 3 adds r0, r4 ldr r0, [r0] pop {r4} pop {r1} bx r1 .align 2, 0 _080464C4: .4byte gUnknown_80F7B14 thumb_func_end sub_80464AC thumb_func_start sub_80464C8 sub_80464C8: push {r4-r6,lr} sub sp, 0x78 adds r6, r0, 0 adds r3, r1, 0 adds r5, r2, 0 movs r0, 0x3 str r0, [sp, 0x4] add r0, sp, 0x28 movs r4, 0 strb r4, [r0] add r1, sp, 0x24 movs r0, 0x1 strb r0, [r1] mov r0, sp adds r0, 0x26 strb r4, [r0] str r5, [sp, 0x74] ldr r0, [r3] str r0, [sp, 0x8] movs r1, 0 ldrsh r0, [r3, r1] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, 0x4 lsls r1, 8 movs r2, 0x2 ldrsh r0, [r3, r2] lsls r2, r0, 1 adds r2, r0 lsls r2, 3 adds r2, 0x4 lsls r2, 8 add r0, sp, 0x4 bl sub_8045394 add r0, sp, 0x4 strh r4, [r0, 0x26] str r4, [sp] adds r0, r6, 0 add r1, sp, 0x4 adds r2, r5, 0 movs r3, 0x1 bl sub_804652C add sp, 0x78 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80464C8 thumb_func_start sub_804652C sub_804652C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 mov r10, r0 adds r5, r1, 0 mov r9, r2 lsls r3, 24 lsrs r6, r3, 24 movs r1, 0x4 ldrsh r0, [r5, r1] movs r2, 0x6 ldrsh r1, [r5, r2] bl sub_804954C adds r4, r0, 0 ldr r0, [r4, 0x14] movs r3, 0 str r3, [sp, 0xC] cmp r0, 0 beq _0804658C bl sub_80450F8 cmp r0, 0x2 bne _0804658C adds r4, r5, 0x4 adds r0, r5, 0 adds r1, r4, 0 bl sub_8046734 adds r0, r4, 0 movs r1, 0x1 bl sub_807FE44 ldr r0, _080465A4 ldr r1, [r0] mov r0, r10 bl sub_80522A8 mov r0, r9 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0804658C b _0804671E _0804658C: ldrh r1, [r5, 0x6] lsls r1, 16 ldrh r0, [r5, 0x4] orrs r0, r1 str r0, [sp] mov r8, r0 movs r7, 0x1 cmp r6, 0 beq _08046632 movs r7, 0 b _08046632 .align 2, 0 _080465A4: .4byte gUnknown_80FED30 _080465A8: lsls r3, r7, 2 adds r3, r0 ldrh r0, [r3] ldrh r1, [r5, 0x4] adds r0, r1 lsls r0, 16 lsrs r0, 16 ldr r1, _08046628 ldr r2, [sp] ands r2, r1 orrs r2, r0 str r2, [sp] ldrh r0, [r3, 0x2] ldrh r3, [r5, 0x6] adds r0, r3 lsls r0, 16 ldr r1, _0804662C ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp movs r2, 0 ldrsh r0, [r0, r2] asrs r1, 16 bl sub_804954C adds r4, r0, 0 ldrh r1, [r4] movs r6, 0x3 adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _08046630 movs r0, 0x80 lsls r0, 2 ands r0, r1 cmp r0, 0 bne _08046630 ldr r0, [r4, 0x14] cmp r0, 0 bne _08046630 adds r0, r5, 0 mov r1, sp bl sub_8046734 ldr r3, [sp] mov r8, r3 ldrh r1, [r4] adds r0, r6, 0 ands r0, r1 cmp r0, 0x3 beq _08046620 mov r0, sp mov r1, r9 movs r2, 0x1 bl sub_80460F8 lsls r0, 24 cmp r0, 0 beq _08046644 _08046620: movs r0, 0x1 str r0, [sp, 0xC] b _08046644 .align 2, 0 _08046628: .4byte 0xffff0000 _0804662C: .4byte 0x0000ffff _08046630: adds r7, 0x1 _08046632: ldr r0, _08046688 lsls r1, r7, 2 adds r1, r0 movs r2, 0 ldrsh r1, [r1, r2] cmp r1, 0x63 bne _080465A8 movs r3, 0 str r3, [sp, 0xC] _08046644: ldr r0, _0804668C mov r1, r9 bl sub_8045BF8 ldr r0, [sp, 0xC] cmp r0, 0 beq _080466C8 mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] mov r4, sp movs r2, 0x2 ldrsh r1, [r4, r2] bl sub_80402AC mov r0, sp movs r3, 0 ldrsh r0, [r0, r3] movs r2, 0x2 ldrsh r1, [r4, r2] bl sub_804954C ldrh r0, [r0] movs r1, 0x3 ands r1, r0 adds r0, r1, 0 cmp r1, 0x1 beq _0804669A cmp r1, 0x1 bgt _08046690 cmp r1, 0 beq _080466AC b _0804671E .align 2, 0 _08046688: .4byte gUnknown_80F4468 _0804668C: .4byte gUnknown_202DE58 _08046690: cmp r0, 0x2 beq _080466A4 cmp r0, 0x3 beq _080466B4 b _0804671E _0804669A: ldr r0, _080466A0 b _080466B6 .align 2, 0 _080466A0: .4byte gUnknown_80F93E8 _080466A4: ldr r0, _080466A8 b _080466B6 .align 2, 0 _080466A8: .4byte gUnknown_80F9408 _080466AC: ldr r0, _080466B0 b _080466B6 .align 2, 0 _080466B0: .4byte gUnknown_80F9424 _080466B4: ldr r0, _080466C4 _080466B6: ldr r2, [r0] mov r0, r10 mov r1, sp bl sub_8052364 b _0804671E .align 2, 0 _080466C4: .4byte gUnknown_80F949C _080466C8: mov r3, r8 lsls r1, r3, 16 asrs r1, 16 lsls r0, r1, 1 adds r0, r1 lsls r0, 11 movs r1, 0xC0 lsls r1, 4 adds r0, r1 str r0, [sp, 0x4] asrs r1, r3, 16 lsls r0, r1, 1 adds r0, r1 lsls r0, 11 movs r2, 0xC0 lsls r2, 4 adds r0, r2 add r2, sp, 0x4 str r0, [r2, 0x4] ldr r3, [sp, 0x30] cmp r3, 0 beq _0804670C movs r1, 0 ldrsh r0, [r3, r1] lsls r0, 8 ldr r1, [sp, 0x4] adds r0, r1 str r0, [sp, 0x4] movs r1, 0x2 ldrsh r0, [r3, r1] lsls r0, 8 ldr r1, [r2, 0x4] adds r0, r1 str r0, [r2, 0x4] _0804670C: adds r0, r2, 0 bl sub_804219C ldr r0, _08046730 ldr r2, [r0] mov r0, r10 mov r1, sp bl sub_8052364 _0804671E: add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08046730: .4byte gUnknown_80F943C thumb_func_end sub_804652C thumb_func_start sub_8046734 sub_8046734: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x18 mov r8, r0 ldr r0, _08046858 ldr r0, [r0] ldr r2, _0804685C adds r0, r2 ldrb r0, [r0] str r0, [sp, 0xC] movs r0, 0 ldrsh r2, [r1, r0] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r0, 0x4 lsls r4, r0, 8 movs r2, 0x2 ldrsh r1, [r1, r2] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r0, 0x4 lsls r5, r0, 8 mov r1, r8 ldr r0, [r1, 0xC] subs r0, r4 cmp r0, 0 bge _08046776 negs r0, r0 _08046776: mov r2, r8 ldr r2, [r2, 0x10] mov r9, r2 cmp r0, 0xB bgt _0804678C subs r0, r2, r5 cmp r0, 0 bge _08046788 negs r0, r0 _08046788: cmp r0, 0xB ble _08046822 _0804678C: movs r0, 0 mov r10, r0 movs r1, 0 str r1, [sp, 0x10] mov r2, r8 ldr r0, [r2, 0xC] str r0, [sp, 0x4] mov r1, r9 str r1, [sp, 0x8] subs r0, r4, r0 movs r1, 0x18 bl __divsi3 adds r6, r0, 0 mov r2, r9 subs r0, r5, r2 movs r1, 0x18 bl __divsi3 adds r7, r0, 0 movs r0, 0 mov r9, r0 mov r1, sp adds r1, 0x4 str r1, [sp, 0x14] _080467BE: ldr r0, [sp, 0x4] adds r0, r6 str r0, [sp, 0x4] ldr r2, [sp, 0x14] ldr r0, [r2, 0x4] adds r0, r7 str r0, [r2, 0x4] ldr r0, [sp, 0x10] bl sub_8009C7C lsls r1, r0, 1 adds r1, r0 lsls r1, 2 mov r0, r8 str r1, [r0, 0x1C] add r1, sp, 0x4 bl sub_804535C mov r1, r10 lsls r3, r1, 24 lsrs r3, 24 movs r0, 0 str r0, [sp] mov r0, r8 ldr r1, [sp, 0xC] movs r2, 0 bl sub_80462AC movs r0, 0x13 bl sub_803E46C ldr r2, [sp, 0x10] adds r2, 0x55 str r2, [sp, 0x10] movs r0, 0x3 mov r1, r9 ands r0, r1 cmp r0, 0 bne _08046810 movs r2, 0x1 add r10, r2 _08046810: movs r0, 0x7 mov r1, r10 ands r1, r0 mov r10, r1 movs r2, 0x1 add r9, r2 mov r0, r9 cmp r0, 0x17 ble _080467BE _08046822: mov r0, r8 adds r1, r4, 0 adds r2, r5, 0 bl sub_8045394 movs r0, 0 mov r1, r8 str r0, [r1, 0x1C] str r0, [sp] mov r0, r8 ldr r1, [sp, 0xC] movs r2, 0x1 movs r3, 0xFF bl sub_80462AC movs r0, 0x13 bl sub_803E46C add sp, 0x18 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08046858: .4byte gUnknown_203B418 _0804685C: .4byte 0x00018210 thumb_func_end sub_8046734 thumb_func_start sub_8046860 sub_8046860: push {r4,r5,lr} sub sp, 0x4 adds r4, r1, 0 adds r5, r2, 0 str r3, [sp] adds r2, r4, 0 adds r3, r5, 0 bl sub_804687C add sp, 0x4 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8046860 thumb_func_start sub_804687C sub_804687C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r4, _08046970 add sp, r4 ldr r5, _08046974 add r5, sp str r0, [r5] movs r0, 0xA5 lsls r0, 3 add r0, sp str r1, [r0] mov r8, r2 ldr r1, _08046978 add r1, sp str r3, [r1] movs r1, 0 movs r7, 0x1D ldr r0, _0804697C add r0, sp _080468A8: strb r1, [r0] subs r0, 0x1 subs r7, 0x1 cmp r7, 0 bge _080468A8 movs r7, 0 movs r2, 0xAD lsls r2, 3 add r2, sp ldr r2, [r2] cmp r7, r2 blt _080468C2 b _080469DE _080468C2: ldr r3, _08046980 mov r9, r3 ldr r5, _08046984 movs r0, 0 ldrsh r5, [r5, r0] ldr r0, _08046988 add r0, sp str r5, [r0] _080468D2: mov r1, r8 ldrh r0, [r1] ldr r1, _0804698C ands r4, r1 orrs r4, r0 mov r2, r8 ldrh r0, [r2, 0x2] lsls r0, 16 mov r3, r9 ands r4, r3 orrs r4, r0 movs r5, 0 adds r0, r7, 0x1 mov r10, r0 ldr r1, _08046984 ldr r2, _08046988 add r2, sp ldr r2, [r2] cmp r2, 0x63 beq _080469B0 ldr r3, _08046990 add r3, sp ldr r0, _08046994 add r0, sp str r3, [r0] _08046904: ldr r0, _08046998 add r0, sp adds r6, r0, r5 ldrb r0, [r6] cmp r0, 0 bne _0804699C lsls r2, r5, 2 adds r2, r1 ldrh r0, [r2] mov r1, r8 ldrh r1, [r1] adds r0, r1 lsls r0, 16 lsrs r0, 16 ldr r1, _0804698C ands r4, r1 orrs r4, r0 ldrh r0, [r2, 0x2] mov r2, r8 ldrh r2, [r2, 0x2] adds r0, r2 lsls r0, 16 mov r3, r9 ands r4, r3 orrs r4, r0 lsls r0, r4, 16 asrs r0, 16 asrs r1, r4, 16 bl sub_804954C adds r2, r0, 0 ldrh r1, [r2] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _0804699C movs r3, 0x80 lsls r3, 2 adds r0, r3, 0 ands r0, r1 cmp r0, 0 bne _0804699C ldr r0, [r2, 0x14] cmp r0, 0 bne _0804699C lsls r0, r7, 2 ldr r5, _08046994 add r5, sp ldr r5, [r5] adds r0, r5, r0 str r4, [r0] movs r0, 0x1 strb r0, [r6] b _080469CE .align 2, 0 _08046970: .4byte 0xfffffab8 _08046974: .4byte 0x00000524 _08046978: .4byte 0x0000052c _0804697C: .4byte 0x00000521 _08046980: .4byte 0x0000ffff _08046984: .4byte gUnknown_80F4468 _08046988: .4byte 0x00000534 _0804698C: .4byte 0xffff0000 _08046990: .4byte 0x0000048c _08046994: .4byte 0x00000544 _08046998: .4byte 0x00000504 _0804699C: adds r5, 0x1 cmp r5, 0x1D bgt _080469B0 lsls r0, r5, 2 ldr r1, _08046A18 adds r0, r1 movs r2, 0 ldrsh r0, [r0, r2] cmp r0, 0x63 bne _08046904 _080469B0: movs r3, 0 cmp r3, 0 bne _080469CE ldr r1, _08046A1C add r1, sp lsls r0, r7, 2 adds r1, r0 ldrh r2, [r1] mov r0, r9 orrs r0, r2 strh r0, [r1] ldrh r2, [r1, 0x2] mov r0, r9 orrs r0, r2 strh r0, [r1, 0x2] _080469CE: mov r7, r10 movs r5, 0xAD lsls r5, 3 add r5, sp ldr r5, [r5] cmp r7, r5 bge _080469DE b _080468D2 _080469DE: movs r1, 0 mov r9, r1 movs r7, 0 movs r0, 0xAD lsls r0, 3 add r0, sp ldr r0, [r0] cmp r7, r0 blt _080469F2 b _08046B0A _080469F2: movs r2, 0 mov r8, r2 _080469F6: ldr r0, _08046A1C add r0, sp lsls r2, r7, 2 adds r3, r0, r2 movs r4, 0 ldrsh r0, [r3, r4] cmp r0, 0 bge _08046A20 movs r0, 0x74 muls r0, r7 add r0, sp adds r0, 0x4 mov r5, r8 str r5, [r0] movs r0, 0x1 mov r9, r0 b _08046AFA .align 2, 0 _08046A18: .4byte gUnknown_80F4468 _08046A1C: .4byte 0x0000048c _08046A20: movs r0, 0x74 adds r6, r7, 0 muls r6, r0 mov r4, sp adds r4, r6 adds r4, 0x4 movs r0, 0x3 str r0, [r4] adds r0, r4, 0 adds r0, 0x24 mov r1, r8 strb r1, [r0] adds r1, r4, 0 adds r1, 0x20 movs r0, 0x1 strb r0, [r1] adds r0, r4, 0 adds r0, 0x22 mov r5, r8 strb r5, [r0] add r0, sp, 0x74 adds r0, r6 ldr r1, _08046B2C add r1, sp ldr r1, [r1] adds r2, r1, r2 str r2, [r0] add r0, sp, 0x8 adds r0, r6 ldr r1, [r3] str r1, [r0] movs r2, 0xA5 lsls r2, 3 add r2, sp ldr r2, [r2] movs r5, 0 ldrsh r0, [r2, r5] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, 0x4 lsls r1, 8 movs r5, 0x2 ldrsh r0, [r2, r5] lsls r2, r0, 1 adds r2, r0 lsls r2, 3 adds r2, 0x4 lsls r2, 8 adds r0, r4, 0 movs r5, 0xA8 lsls r5, 3 add r5, sp str r3, [r5] bl sub_8045394 mov r0, r8 strh r0, [r4, 0x26] ldr r4, _08046B30 add r4, sp lsls r5, r7, 3 adds r4, r5 movs r1, 0xA8 lsls r1, 3 add r1, sp ldr r3, [r1] movs r2, 0 ldrsh r1, [r3, r2] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r0, 0x4 lsls r0, 8 add r1, sp, 0x10 adds r1, r6 ldr r1, [r1] subs r0, r1 movs r1, 0x18 movs r2, 0xA8 lsls r2, 3 add r2, sp str r3, [r2] bl __divsi3 str r0, [r4] movs r4, 0x97 lsls r4, 3 add r4, sp adds r4, r5 movs r5, 0xA8 lsls r5, 3 add r5, sp ldr r3, [r5] movs r0, 0x2 ldrsh r1, [r3, r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r0, 0x4 lsls r0, 8 add r1, sp, 0x14 adds r1, r6 ldr r1, [r1] subs r0, r1 movs r1, 0x18 bl __divsi3 str r0, [r4] movs r1, 0x1 _08046AFA: adds r7, 0x1 movs r2, 0xAD lsls r2, 3 add r2, sp ldr r2, [r2] cmp r7, r2 bge _08046B0A b _080469F6 _08046B0A: cmp r1, 0 bne _08046B54 movs r3, 0xAD lsls r3, 3 add r3, sp ldr r3, [r3] cmp r3, 0x1 ble _08046B3C ldr r0, _08046B34 ldr r1, [r0] ldr r4, _08046B38 add r4, sp ldr r0, [r4] bl sub_80522A8 b _08046C7C .align 2, 0 _08046B2C: .4byte 0x0000052c _08046B30: .4byte 0x000004b4 _08046B34: .4byte gUnknown_80F945C _08046B38: .4byte 0x00000524 _08046B3C: ldr r0, _08046B4C ldr r1, [r0] ldr r5, _08046B50 add r5, sp ldr r0, [r5] bl sub_80522A8 b _08046C7C .align 2, 0 _08046B4C: .4byte gUnknown_80F943C _08046B50: .4byte 0x00000524 _08046B54: mov r0, r9 cmp r0, 0 beq _08046B68 ldr r0, _08046C90 ldr r1, [r0] ldr r2, _08046C94 add r2, sp ldr r0, [r2] bl sub_80522A8 _08046B68: movs r3, 0 mov r9, r3 ldr r0, _08046C98 ldr r0, [r0] ldr r4, _08046C9C adds r0, r4 ldrb r0, [r0] movs r5, 0xA6 lsls r5, 3 add r5, sp str r0, [r5] mov r10, r3 movs r6, 0 _08046B82: movs r7, 0 mov r0, r10 adds r0, 0x55 movs r1, 0xA7 lsls r1, 3 add r1, sp str r0, [r1] adds r2, r6, 0x1 ldr r3, _08046CA0 add r3, sp str r2, [r3] movs r4, 0xAD lsls r4, 3 add r4, sp ldr r4, [r4] cmp r7, r4 bge _08046C14 mov r5, r9 lsls r5, 24 mov r8, r5 _08046BAA: movs r0, 0x74 adds r5, r7, 0 muls r5, r0 mov r4, sp adds r4, r5 adds r4, 0x4 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08046C06 ldr r0, _08046CA4 add r0, sp lsls r2, r7, 3 adds r0, r2 ldr r1, [r0] movs r0, 0x97 lsls r0, 3 add r0, sp adds r0, r2 ldr r2, [r0] adds r0, r4, 0 bl sub_804539C mov r0, r10 bl sub_8009C7C add r2, sp, 0x20 adds r2, r5 lsls r1, r0, 1 adds r1, r0 lsls r1, 2 str r1, [r2] movs r0, 0 str r0, [sp] adds r0, r4, 0 movs r2, 0xA6 lsls r2, 3 add r2, sp ldr r1, [r2] movs r2, 0x1 mov r4, r8 lsrs r3, r4, 24 bl sub_80462AC _08046C06: adds r7, 0x1 movs r5, 0xAD lsls r5, 3 add r5, sp ldr r5, [r5] cmp r7, r5 blt _08046BAA _08046C14: movs r0, 0x13 bl sub_803E46C movs r0, 0xA7 lsls r0, 3 add r0, sp ldr r0, [r0] mov r10, r0 movs r0, 0x3 ands r0, r6 cmp r0, 0 bne _08046C30 movs r1, 0x1 add r9, r1 _08046C30: movs r0, 0x7 mov r2, r9 ands r2, r0 mov r9, r2 ldr r3, _08046CA0 add r3, sp ldr r6, [r3] cmp r6, 0x17 ble _08046B82 movs r4, 0xAD lsls r4, 3 add r4, sp ldr r4, [r4] cmp r4, 0 ble _08046C7C ldr r0, _08046CA8 add r0, sp ldr r5, [r0] ldr r4, _08046CAC add r4, sp movs r1, 0xAD lsls r1, 3 add r1, sp ldr r7, [r1] _08046C60: movs r2, 0 ldrsh r0, [r4, r2] cmp r0, 0 blt _08046C72 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x1 bl sub_80460F8 _08046C72: adds r5, 0x4 adds r4, 0x4 subs r7, 0x1 cmp r7, 0 bne _08046C60 _08046C7C: movs r3, 0xA9 lsls r3, 3 add sp, r3 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08046C90: .4byte gUnknown_80F947C _08046C94: .4byte 0x00000524 _08046C98: .4byte gUnknown_203B418 _08046C9C: .4byte 0x00018210 _08046CA0: .4byte 0x0000053c _08046CA4: .4byte 0x000004b4 _08046CA8: .4byte 0x0000052c _08046CAC: .4byte 0x0000048c thumb_func_end sub_804687C thumb_func_start sub_8046CB0 sub_8046CB0: push {lr} lsls r1, 24 lsrs r1, 24 ldr r0, [r0, 0x70] adds r3, r0, 0 adds r0, 0x60 ldrb r2, [r0] movs r0, 0x1 ands r0, r2 cmp r0, 0 beq _08046CDC movs r0, 0x8 ands r0, r2 cmp r0, 0 bne _08046CDC adds r0, r3, 0 adds r0, 0x62 ldrb r0, [r0] cmp r0, r1 bne _08046CDC movs r0, 0x1 b _08046CDE _08046CDC: movs r0, 0 _08046CDE: pop {r1} bx r1 thumb_func_end sub_8046CB0 thumb_func_start sub_8046CE4 sub_8046CE4: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r0, 0x64 bl sub_8084100 adds r1, r0, 0 movs r2, 0 ldr r3, _08046D04 _08046CF6: lsls r0, r1, 2 adds r0, r3 ldr r0, [r0] cmp r0, r5 bgt _08046D08 strb r1, [r4, 0x1] b _08046D18 .align 2, 0 _08046D04: .4byte gUnknown_810A3F0 _08046D08: lsrs r0, r1, 31 adds r0, r1, r0 asrs r1, r0, 1 adds r2, 0x1 cmp r2, 0xC7 ble _08046CF6 movs r0, 0x1 strb r0, [r4, 0x1] _08046D18: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8046CE4 thumb_func_start sub_8046D20 sub_8046D20: push {r4,r5,lr} ldr r4, _08046D5C ldr r0, [r4] ldrb r5, [r0, 0x8] bl sub_8046D70 ldr r1, [r4] strb r0, [r1, 0x8] ldr r0, [r4] ldrb r0, [r0, 0x8] cmp r0, 0x1 bne _08046D64 cmp r5, 0 bne _08046D64 ldr r0, _08046D60 ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl sub_8052B8C adds r1, r0, 0 cmp r1, 0x1 bne _08046D64 ldr r0, [r4] strb r1, [r0, 0x4] ldr r1, [r4] movs r0, 0x2 strb r0, [r1, 0x11] b _08046D68 .align 2, 0 _08046D5C: .4byte gUnknown_203B418 _08046D60: .4byte gUnknown_80FA408 _08046D64: bl sub_8046D8C _08046D68: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8046D20 thumb_func_start sub_8046D70 sub_8046D70: push {lr} ldr r0, _08046D84 ldr r0, [r0] ldr r1, _08046D88 adds r0, r1 ldrb r0, [r0] movs r0, 0 pop {r1} bx r1 .align 2, 0 _08046D84: .4byte gUnknown_203B418 _08046D88: .4byte 0x0000068a thumb_func_end sub_8046D70 thumb_func_start sub_8046D8C sub_8046D8C: push {r4-r7,lr} sub sp, 0xC movs r6, 0 ldr r5, _08046EDC movs r4, 0 _08046D96: movs r7, 0 movs r0, 0x1 negs r0, r0 str r0, [sp] str r0, [sp, 0x4] str r0, [sp, 0x8] movs r3, 0 ldr r2, [r5] _08046DA6: ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08046DC8 ldrb r0, [r2, 0x2] cmp r0, 0x79 bne _08046DB8 str r3, [sp] _08046DB8: ldrb r0, [r2, 0x2] cmp r0, 0x77 bne _08046DC0 str r3, [sp, 0x4] _08046DC0: ldrb r0, [r2, 0x2] cmp r0, 0x78 bne _08046DC8 str r3, [sp, 0x8] _08046DC8: adds r2, 0x4 adds r3, 0x1 cmp r3, 0x13 ble _08046DA6 ldr r1, [sp] cmp r1, 0 blt _08046E1E ldr r0, [sp, 0x4] cmp r0, 0 blt _08046E1E ldr r0, [sp, 0x8] cmp r0, 0 blt _08046E1E movs r7, 0x1 movs r6, 0x1 lsls r1, 2 ldr r0, [r5] adds r1, r0 strb r4, [r1, 0x2] strb r4, [r1, 0x1] strb r4, [r1] ldr r0, [sp, 0x4] lsls r0, 2 ldr r1, [r5] adds r0, r1 strb r4, [r0, 0x2] strb r4, [r0, 0x1] strb r4, [r0] ldr r0, [sp, 0x8] lsls r0, 2 ldr r1, [r5] adds r0, r1 strb r4, [r0, 0x2] strb r4, [r0, 0x1] strb r4, [r0] ldr r1, [sp] lsls r1, 2 ldr r0, [r5] adds r0, r1 movs r1, 0x7A movs r2, 0 bl sub_8090A8C _08046E1E: cmp r7, 0 bne _08046D96 bl sub_80910B4 cmp r6, 0 beq _08046ED4 bl sub_8083600 adds r4, r0, 0 ldr r0, _08046EE0 bl sub_80855E4 ldr r6, _08046EE4 ldr r0, [r6] ldr r5, _08046EE8 adds r0, r5 movs r1, 0x1 strb r1, [r0] ldr r0, _08046EEC ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage movs r0, 0x3C movs r1, 0x41 bl sub_803E708 ldr r0, _08046EF0 ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage adds r0, r4, 0 movs r1, 0x4 movs r2, 0xA movs r3, 0 bl sub_80869E4 adds r0, r4, 0 adds r0, 0xC movs r1, 0x86 lsls r1, 1 movs r2, 0 bl sub_80416E0 adds r0, r4, 0 movs r1, 0xD7 bl sub_80421C0 movs r0, 0x3C movs r1, 0x41 bl sub_803E708 ldr r0, _08046EF4 adds r1, r4, 0 movs r2, 0 bl sub_8045B94 ldr r0, _08046EF8 ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage movs r0, 0xA movs r1, 0x41 bl sub_803E708 movs r0, 0xD4 bl sub_8083E38 ldr r0, _08046EFC ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage movs r0, 0xA movs r1, 0x41 bl sub_803E708 movs r0, 0x1 bl sub_804178C ldr r0, [r6] adds r0, r5 strb r7, [r0] bl sub_8040A84 _08046ED4: add sp, 0xC pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08046EDC: .4byte gUnknown_203B460 _08046EE0: .4byte sub_80861A8 _08046EE4: .4byte gUnknown_203B418 _08046EE8: .4byte 0x0001356c _08046EEC: .4byte gUnknown_810531C _08046EF0: .4byte gUnknown_8105360 _08046EF4: .4byte gUnknown_202DF98 _08046EF8: .4byte gUnknown_81053A8 _08046EFC: .4byte gUnknown_8105434 thumb_func_end sub_8046D8C thumb_func_start sub_8046F00 sub_8046F00: push {r4-r7,lr} adds r4, r0, 0 ldrb r0, [r4, 0x2] bl sub_8090BD0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x5 bne _08046F7C ldrb r0, [r4, 0x2] bl sub_80913CC lsls r0, 16 lsrs r7, r0, 16 ldrb r0, [r4, 0x2] bl sub_80915A0 lsls r0, 24 cmp r0, 0 bne _08046F6E movs r6, 0 _08046F2A: ldr r0, _08046F74 ldr r0, [r0] lsls r1, r6, 2 ldr r2, _08046F78 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08046F68 ldr r0, [r4, 0x70] movs r2, 0x2 ldrsh r1, [r0, r2] adds r0, r7, 0 bl sub_808E190 lsls r0, 24 lsrs r5, r0, 24 adds r0, r4, 0 movs r1, 0 bl sub_8070B6C lsls r0, 24 cmp r0, 0 beq _08046F64 movs r5, 0 _08046F64: cmp r5, 0 bne _08046F7C _08046F68: adds r6, 0x1 cmp r6, 0x3 ble _08046F2A _08046F6E: movs r0, 0 b _08046F7E .align 2, 0 _08046F74: .4byte gUnknown_203B418 _08046F78: .4byte 0x0001357c _08046F7C: movs r0, 0x1 _08046F7E: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8046F00 thumb_func_start sub_8046F84 sub_8046F84: push {r4-r7,lr} adds r7, r0, 0 movs r5, 0 ldr r4, _08047000 movs r6, 0x1 movs r3, 0 _08046F90: lsls r1, r5, 2 ldr r0, [r4] adds r2, r0, r1 ldrb r1, [r2] adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _08046FAE ldrb r0, [r2] ands r0, r7 cmp r0, 0 beq _08046FAE strb r3, [r2, 0x2] strb r3, [r2, 0x1] strb r3, [r2] _08046FAE: adds r5, 0x1 cmp r5, 0x13 ble _08046F90 bl sub_80910B4 movs r5, 0 movs r6, 0 _08046FBC: ldr r0, _08047004 ldr r0, [r0] lsls r1, r5, 2 ldr r2, _08047008 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08046FF4 ldr r0, [r4, 0x70] adds r2, r0, 0 adds r2, 0x60 ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08046FF4 ldrb r0, [r2] ands r0, r7 cmp r0, 0 beq _08046FF4 strb r6, [r2, 0x2] strb r6, [r2, 0x1] strb r6, [r2] _08046FF4: adds r5, 0x1 cmp r5, 0x3 ble _08046FBC pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08047000: .4byte gUnknown_203B460 _08047004: .4byte gUnknown_203B418 _08047008: .4byte 0x0001357c thumb_func_end sub_8046F84 thumb_func_start sub_804700C sub_804700C: push {r4,r5,lr} movs r5, 0 ldr r4, _08047078 _08047012: lsls r1, r5, 2 ldr r0, [r4] adds r2, r0, r1 ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0804702C adds r0, r2, 0 movs r1, 0x46 movs r2, 0 bl sub_8090A8C _0804702C: adds r5, 0x1 cmp r5, 0x13 ble _08047012 bl sub_80910B4 movs r5, 0 _08047038: ldr r0, _0804707C ldr r0, [r0] lsls r1, r5, 2 ldr r2, _08047080 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0804706C ldr r0, [r4, 0x70] adds r2, r0, 0 adds r2, 0x60 ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0804706C adds r0, r2, 0 movs r1, 0x46 movs r2, 0 bl sub_8090A8C _0804706C: adds r5, 0x1 cmp r5, 0x3 ble _08047038 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08047078: .4byte gUnknown_203B460 _0804707C: .4byte gUnknown_203B418 _08047080: .4byte 0x0001357c thumb_func_end sub_804700C thumb_func_start sub_8047084 sub_8047084: push {r4-r6,lr} adds r6, r0, 0 movs r5, 0 ldr r0, _080470E8 ldr r2, [r0] movs r3, 0x1 _08047090: ldrb r1, [r2] adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _080470A2 ldrb r0, [r2] ands r0, r6 cmp r0, 0 bne _080470E2 _080470A2: adds r2, 0x4 adds r5, 0x1 cmp r5, 0x13 ble _08047090 bl sub_80910B4 movs r5, 0 _080470B0: ldr r0, _080470EC ldr r0, [r0] lsls r1, r5, 2 ldr r2, _080470F0 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080470F4 ldr r0, [r4, 0x70] adds r2, r0, 0 adds r2, 0x60 ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080470F4 ldrb r0, [r2] ands r0, r6 cmp r0, 0 beq _080470F4 _080470E2: movs r0, 0x1 b _080470FC .align 2, 0 _080470E8: .4byte gUnknown_203B460 _080470EC: .4byte gUnknown_203B418 _080470F0: .4byte 0x0001357c _080470F4: adds r5, 0x1 cmp r5, 0x3 ble _080470B0 movs r0, 0 _080470FC: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8047084 thumb_func_start sub_8047104 sub_8047104: push {r4-r6,lr} movs r6, 0 movs r5, 0 _0804710A: ldr r0, _08047154 lsls r1, r6, 2 ldr r0, [r0] adds r4, r0, r1 ldrb r1, [r4] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08047142 ldrb r0, [r4, 0x2] cmp r0, 0x69 bne _08047132 adds r0, r4, 0 bl sub_80915D4 bl sub_80913A0 strb r5, [r4, 0x2] strb r5, [r4, 0x1] strb r5, [r4] _08047132: ldrb r1, [r4] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08047142 strb r5, [r4, 0x2] strb r5, [r4, 0x1] strb r5, [r4] _08047142: adds r6, 0x1 cmp r6, 0x13 ble _0804710A bl sub_80910B4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08047154: .4byte gUnknown_203B460 thumb_func_end sub_8047104 thumb_func_start sub_8047158 sub_8047158: push {r4-r6,lr} movs r3, 0 ldr r5, _0804718C movs r6, 0x1 movs r4, 0x4 _08047162: lsls r1, r3, 2 ldr r0, [r5] adds r2, r0, r1 ldrb r1, [r2] adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _08047180 adds r0, r4, 0 ands r0, r1 cmp r0, 0 beq _08047180 movs r0, 0xFB ands r0, r1 strb r0, [r2] _08047180: adds r3, 0x1 cmp r3, 0x13 ble _08047162 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0804718C: .4byte gUnknown_203B460 thumb_func_end sub_8047158 thumb_func_start sub_8047190 sub_8047190: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r4, _080472E8 add sp, r4 mov r9, r0 str r1, [sp, 0x214] ldr r6, _080472EC ldr r1, [r6] ldr r4, _080472F0 adds r0, r1, r4 ldrb r0, [r0] str r0, [sp, 0x220] mov r8, r3 adds r7, r1, 0 adds r7, 0xC0 movs r0, 0x3 str r0, [r7] adds r0, r1, 0 adds r0, 0xE4 movs r4, 0 strb r4, [r0] subs r0, 0x4 movs r5, 0x1 strb r5, [r0] adds r0, 0x2 strb r4, [r0] ldr r0, [sp, 0x214] str r0, [r7, 0x70] str r4, [r7, 0x1C] ldr r0, [r2] str r0, [r7, 0x4] movs r1, 0 ldrsh r0, [r2, r1] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, 0x4 lsls r1, 8 movs r3, 0x2 ldrsh r0, [r2, r3] lsls r2, r0, 1 adds r2, r0 lsls r2, 11 adds r0, r7, 0 bl sub_8045394 strh r4, [r7, 0x26] str r4, [sp, 0x224] mov r0, r9 bl sub_80450F8 cmp r0, 0x1 bne _08047214 mov r0, r9 movs r1, 0x2A bl sub_8046CB0 lsls r0, 24 lsrs r0, 24 negs r1, r0 orrs r1, r0 lsrs r1, 31 str r1, [sp, 0x224] _08047214: ldr r0, [sp, 0x260] movs r1, 0x2 ldrsh r0, [r0, r1] str r0, [sp, 0x218] movs r2, 0 str r2, [sp, 0x21C] ldr r0, [r6] ldr r3, _080472F4 adds r0, r3 strb r5, [r0] _08047228: ldr r4, [r7, 0x4] mov r10, r4 ldr r1, [sp, 0x260] ldrb r0, [r1, 0x1] cmp r0, 0 beq _080472AE ldrb r0, [r1] cmp r0, 0 bne _080472AE movs r2, 0x4 ldrsh r0, [r7, r2] ldr r2, _080472F8 mov r3, r8 lsls r4, r3, 2 adds r2, r4, r2 movs r3, 0 ldrsh r1, [r2, r3] adds r0, r1 movs r3, 0x6 ldrsh r1, [r7, r3] movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 bl sub_804954C adds r5, r0, 0 ldrh r1, [r5] movs r0, 0x3 ands r0, r1 str r4, [sp, 0x230] cmp r0, 0 bne _080472AE movs r6, 0 ldr r1, _080472FC mov r4, r10 lsls r0, r4, 16 asrs r0, 16 str r0, [sp, 0x23C] ldr r0, [sp, 0x230] adds r5, r0, r1 asrs r2, r4, 16 _0804727A: ldrb r4, [r5] cmp r4, 0x7 bgt _080472A6 ldr r0, _080472F8 lsls r1, r4, 2 adds r1, r0 movs r3, 0 ldrsh r0, [r1, r3] ldr r3, [sp, 0x23C] adds r0, r3 movs r3, 0x2 ldrsh r1, [r1, r3] adds r1, r2 str r2, [sp, 0x234] bl sub_804954C ldrh r1, [r0] movs r0, 0x3 ands r0, r1 ldr r2, [sp, 0x234] cmp r0, 0 bne _08047300 _080472A6: adds r5, 0x1 adds r6, 0x1 cmp r6, 0x3 ble _0804727A _080472AE: ldr r0, _080472F8 mov r4, r8 lsls r2, r4, 2 adds r3, r2, r0 ldrh r1, [r3] ldrh r0, [r7, 0x4] adds r1, r0 strh r1, [r7, 0x4] ldrh r0, [r3, 0x2] ldrh r4, [r7, 0x6] adds r0, r4 strh r0, [r7, 0x6] lsls r1, 16 asrs r1, 16 str r2, [sp, 0x230] cmp r1, 0 blt _080472E0 lsls r0, 16 asrs r0, 16 cmp r0, 0 blt _080472E0 cmp r1, 0x37 bgt _080472E0 cmp r0, 0x1F ble _08047304 _080472E0: movs r0, 0x2 mov r10, r0 b _0804744C .align 2, 0 _080472E8: .4byte 0xfffffdc0 _080472EC: .4byte gUnknown_203B418 _080472F0: .4byte 0x00018210 _080472F4: .4byte 0x0001c05e _080472F8: .4byte gUnknown_80F4448 _080472FC: .4byte gUnknown_80F4D64 _08047300: mov r8, r4 b _080472AE _08047304: movs r1, 0 ldrsh r0, [r3, r1] lsls r0, 10 str r0, [sp, 0x228] movs r2, 0x2 ldrsh r0, [r3, r2] lsls r0, 10 str r0, [sp, 0x22C] mov r3, r8 lsls r6, r3, 24 movs r5, 0x5 _0804731A: movs r4, 0 adds r0, r7, 0 ldr r1, [sp, 0x228] ldr r2, [sp, 0x22C] bl sub_804539C bl sub_804AF74 lsls r0, 24 movs r2, 0 cmp r0, 0 beq _08047334 movs r2, 0x3 _08047334: ldr r0, [r7, 0xC] cmp r0, 0 bge _0804733C adds r0, 0xFF _0804733C: asrs r0, 8 adds r0, 0x8 ldr r1, [r7, 0x10] cmp r1, 0 bge _08047348 adds r1, 0xFF _08047348: asrs r1, 8 adds r1, 0x10 bl sub_8083568 lsls r0, 24 cmp r0, 0 beq _08047358 movs r4, 0x1 _08047358: movs r0, 0x1 str r0, [sp] adds r0, r7, 0 ldr r1, [sp, 0x220] movs r2, 0 lsrs r3, r6, 24 bl sub_80462AC lsls r0, 24 cmp r0, 0 beq _08047370 movs r4, 0x1 _08047370: cmp r4, 0 beq _0804737A movs r0, 0x12 bl sub_803E46C _0804737A: subs r5, 0x1 cmp r5, 0 bge _0804731A movs r4, 0x4 ldrsh r0, [r7, r4] movs r2, 0x6 ldrsh r1, [r7, r2] bl sub_804954C adds r5, r0, 0 ldrh r1, [r5] movs r0, 0x3 ands r0, r1 cmp r0, 0 bne _080473A2 ldr r3, [sp, 0x260] ldrb r0, [r3] cmp r0, 0 bne _080473A2 b _0804757A _080473A2: ldr r1, [r5, 0x10] cmp r1, 0 beq _08047436 movs r4, 0 ldr r2, [sp, 0x260] ldrb r0, [r2] cmp r0, 0 bne _080473CE adds r0, r1, 0 bl sub_80450F8 cmp r0, 0x1 bne _080473CE ldr r0, [r5, 0x10] movs r1, 0x26 bl sub_8046CB0 lsls r0, 24 lsrs r0, 24 negs r1, r0 orrs r1, r0 lsrs r4, r1, 31 _080473CE: cmp r4, 0 beq _080473E0 movs r3, 0x4 add r8, r3 movs r0, 0x7 mov r4, r8 ands r4, r0 mov r8, r4 b _08047436 _080473E0: movs r6, 0x1 ldr r0, [r5, 0x10] bl sub_80450F8 cmp r0, 0x1 bne _08047406 add r4, sp, 0x208 adds r0, r4, 0 ldr r1, _080474B8 bl sub_8092A88 ldr r0, [r5, 0x10] adds r1, r4, 0 bl sub_80571F0 lsls r0, 24 cmp r0, 0 beq _08047406 movs r6, 0 _08047406: cmp r6, 0 beq _08047436 ldr r0, [sp, 0x21C] cmp r0, 0x3F bgt _0804742C lsls r0, 3 mov r4, sp adds r4, r0 adds r4, 0x8 ldr r0, [r5, 0x10] str r0, [r4] ldr r1, [r5, 0x10] mov r0, r9 bl sub_8047930 strb r0, [r4, 0x4] ldr r1, [sp, 0x21C] adds r1, 0x1 str r1, [sp, 0x21C] _0804742C: ldr r2, [sp, 0x260] ldrb r0, [r2] cmp r0, 0 bne _08047436 b _08047574 _08047436: ldr r3, [sp, 0x218] subs r3, 0x1 str r3, [sp, 0x218] cmp r3, 0 ble _08047442 b _08047228 _08047442: movs r4, 0x1 mov r10, r4 mov r0, r8 lsls r0, 2 str r0, [sp, 0x230] _0804744C: ldr r0, _080474BC ldr r0, [r0] ldr r1, _080474C0 adds r0, r1 movs r1, 0 strb r1, [r0] ldr r2, [sp, 0x21C] cmp r2, 0 ble _0804752C add r5, sp, 0x8 adds r6, r2, 0 _08047462: ldr r4, [r5] ldrb r0, [r5, 0x4] cmp r0, 0 beq _080474D0 ldr r0, _080474C4 adds r1, r4, 0 movs r2, 0 bl sub_8045B94 ldr r0, _080474C8 ldr r1, [sp, 0x214] bl sub_8045C08 ldr r0, _080474CC ldr r2, [r0] mov r0, r9 adds r1, r4, 0 bl sub_80522F4 mov r0, r9 adds r1, r4, 0 bl sub_807A96C lsls r0, 24 lsrs r2, r0, 24 movs r1, 0 ldr r3, [sp, 0x224] cmp r3, 0 bne _080474A4 ldr r3, [sp, 0x260] ldrb r0, [r3] cmp r0, 0 beq _080474A6 _080474A4: movs r1, 0x1 _080474A6: str r4, [sp] ldr r4, [sp, 0x214] str r4, [sp, 0x4] movs r0, 0x1 mov r3, r9 bl sub_80479B8 b _08047524 .align 2, 0 _080474B8: .4byte 0x00000195 _080474BC: .4byte gUnknown_203B418 _080474C0: .4byte 0x0001c05e _080474C4: .4byte gUnknown_202DF98 _080474C8: .4byte gUnknown_202DE58 _080474CC: .4byte gUnknown_80F94C4 _080474D0: ldr r1, [sp, 0x260] ldrb r0, [r1] cmp r0, 0 bne _080474E2 ldr r2, [sp, 0x21C] cmp r2, 0x1 bne _080474E2 movs r3, 0x1 mov r10, r3 _080474E2: ldr r0, _0804750C adds r1, r4, 0 movs r2, 0 bl sub_8045B94 ldr r0, _08047510 ldr r1, [sp, 0x214] bl sub_8045BF8 ldr r1, [sp, 0x260] ldrb r0, [r1] cmp r0, 0 beq _08047518 ldr r0, _08047514 ldr r2, [r0] mov r0, r9 adds r1, r4, 0 bl sub_80522F4 b _08047524 .align 2, 0 _0804750C: .4byte gUnknown_202DF98 _08047510: .4byte gUnknown_202DE58 _08047514: .4byte gUnknown_80F94D8 _08047518: ldr r0, _08047564 ldr r2, [r0] mov r0, r9 adds r1, r4, 0 bl sub_80522F4 _08047524: adds r5, 0x8 subs r6, 0x1 cmp r6, 0 bne _08047462 _0804752C: ldr r2, _08047568 ldr r3, [sp, 0x230] adds r2, r3, r2 movs r4, 0 ldrsh r1, [r2, r4] lsls r1, 19 lsrs r1, 16 ldr r4, _0804756C add r3, sp, 0x210 ldr r0, [r3] ands r0, r4 orrs r0, r1 str r0, [r3] movs r4, 0x2 ldrsh r1, [r2, r4] lsls r1, 19 ldr r2, _08047570 ands r0, r2 orrs r0, r1 str r0, [r3] mov r0, r10 cmp r0, 0x1 beq _08047584 cmp r0, 0x1 bcc _080475A8 cmp r0, 0x2 beq _08047596 b _080475A8 .align 2, 0 _08047564: .4byte gUnknown_80F94F0 _08047568: .4byte gUnknown_80F4448 _0804756C: .4byte 0xffff0000 _08047570: .4byte 0x0000ffff _08047574: movs r1, 0 mov r10, r1 b _0804744C _0804757A: mov r2, r10 str r2, [r7, 0x4] movs r3, 0x1 mov r10, r3 b _0804744C _08047584: add r0, sp, 0x210 str r0, [sp] mov r0, r9 adds r1, r7, 0 ldr r2, [sp, 0x214] movs r3, 0x1 bl sub_804652C b _080475A8 _08047596: ldr r0, _080475BC ldr r1, [sp, 0x214] bl sub_8045C08 ldr r0, _080475C0 ldr r1, [r0] mov r0, r9 bl sub_80522A8 _080475A8: movs r3, 0x90 lsls r3, 2 add sp, r3 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080475BC: .4byte gUnknown_202DE58 _080475C0: .4byte gUnknown_80F9530 thumb_func_end sub_8047190 thumb_func_start sub_80475C4 sub_80475C4: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x44 str r0, [sp, 0x10] str r1, [sp, 0x14] adds r7, r2, 0 str r3, [sp, 0x18] ldr r0, _08047848 mov r8, r0 ldr r2, [r0] ldr r1, _0804784C adds r0, r2, r1 ldrb r0, [r0] str r0, [sp, 0x24] movs r4, 0 movs r5, 0 adds r3, r2, 0 adds r3, 0xC0 str r3, [sp, 0x1C] movs r0, 0x3 str r0, [r3] adds r0, r2, 0 adds r0, 0xE4 strb r4, [r0] adds r1, r2, 0 adds r1, 0xE0 movs r0, 0x1 strb r0, [r1] adds r0, r2, 0 adds r0, 0xE2 strb r4, [r0] ldr r0, [sp, 0x14] str r0, [r3, 0x70] str r5, [r3, 0x1C] ldr r0, [r7] str r0, [r3, 0x4] movs r1, 0 ldrsh r0, [r7, r1] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, 0x4 lsls r1, 8 movs r2, 0x2 ldrsh r0, [r7, r2] lsls r2, r0, 1 adds r2, r0 lsls r2, 3 adds r2, 0x4 lsls r2, 8 ldr r0, [sp, 0x1C] bl sub_8045394 ldr r3, [sp, 0x1C] strh r4, [r3, 0x26] movs r0, 0x1 str r0, [sp, 0x20] movs r1, 0 str r1, [sp, 0x28] ldr r0, [sp, 0x10] bl sub_80450F8 cmp r0, 0x1 bne _0804765E ldr r0, [sp, 0x10] movs r1, 0x2A bl sub_8046CB0 lsls r0, 24 lsrs r0, 24 negs r1, r0 orrs r1, r0 lsrs r1, 31 str r1, [sp, 0x28] _0804765E: adds r0, r7, 0 bl sub_803F428 lsls r0, 24 lsrs r0, 24 negs r1, r0 orrs r1, r0 lsrs r4, r1, 31 ldr r0, [sp, 0x18] bl sub_803F428 lsls r0, 24 cmp r0, 0 beq _0804767C movs r4, 0x1 _0804767C: mov r2, r8 ldr r0, [r2] ldr r3, _08047850 adds r0, r3 add r1, sp, 0x20 ldrb r1, [r1] strb r1, [r0] cmp r4, 0 bne _08047690 b _080477D0 _08047690: ldr r2, [sp, 0x1C] movs r3, 0x4 ldrsh r0, [r2, r3] ldr r1, [sp, 0x18] movs r2, 0 ldrsh r1, [r1, r2] mov r9, r1 subs r1, r0, r1 cmp r1, 0 bge _080476A6 negs r1, r1 _080476A6: ldr r3, [sp, 0x1C] movs r2, 0x6 ldrsh r0, [r3, r2] ldr r3, [sp, 0x18] movs r2, 0x2 ldrsh r3, [r3, r2] mov r10, r3 subs r0, r3 cmp r0, 0 bge _080476BC negs r0, r0 _080476BC: adds r1, r0 lsls r0, r1, 1 adds r0, r1 lsls r4, r0, 2 adds r3, r4, 0 adds r3, 0xC str r3, [sp, 0x30] cmp r3, 0x3F ble _080476D2 movs r0, 0x40 str r0, [sp, 0x30] _080476D2: movs r1, 0 str r1, [sp, 0x3C] movs r0, 0x80 lsls r0, 12 adds r1, r4, 0 bl __divsi3 str r0, [sp, 0x40] movs r2, 0 ldrsh r1, [r7, r2] lsls r0, r1, 1 adds r0, r1 lsls r0, 11 mov r8, r0 movs r3, 0x2 ldrsh r1, [r7, r3] lsls r0, r1, 1 adds r0, r1 lsls r7, r0, 11 mov r1, r9 lsls r0, r1, 1 add r0, r9 lsls r0, 11 mov r2, r8 subs r0, r2 adds r1, r4, 0 bl __divsi3 str r0, [sp, 0x34] mov r3, r10 lsls r0, r3, 1 add r0, r10 lsls r0, 11 subs r0, r7 adds r1, r4, 0 bl __divsi3 str r0, [sp, 0x38] subs r0, r4, 0x3 cmp r0, 0 ble _080477D0 str r0, [sp, 0x2C] _08047726: movs r0, 0 mov r10, r0 ldr r0, [sp, 0x3C] cmp r0, 0 bge _08047732 adds r0, 0xFF _08047732: asrs r0, 8 bl sub_8009C7C ldr r2, [sp, 0x30] adds r1, r0, 0 muls r1, r2 movs r0, 0x80 lsls r0, 3 mov r2, r8 adds r3, r2, r0 adds r2, r7, r0 ldr r0, [sp, 0x1C] str r1, [r0, 0x1C] mov r0, r8 cmp r0, 0 bge _08047754 adds r0, 0xFF _08047754: asrs r0, 8 adds r0, 0x8 mov r9, r0 adds r0, r7, 0 cmp r7, 0 bge _08047762 adds r0, 0xFF _08047762: asrs r0, 8 adds r4, r0, 0 adds r4, 0x10 ldr r1, [sp, 0x3C] ldr r0, [sp, 0x40] adds r1, r0 str r1, [sp, 0x3C] ldr r0, [sp, 0x1C] adds r1, r3, 0 bl sub_8045394 bl sub_804AF74 lsls r0, 24 movs r2, 0 cmp r0, 0 beq _08047786 movs r2, 0x3 _08047786: mov r0, r9 adds r1, r4, 0 bl sub_8083568 lsls r0, 24 cmp r0, 0 beq _08047798 movs r1, 0x1 mov r10, r1 _08047798: movs r0, 0x1 str r0, [sp] ldr r0, [sp, 0x1C] ldr r1, [sp, 0x24] movs r2, 0 movs r3, 0xFF bl sub_80462AC lsls r0, 24 cmp r0, 0 beq _080477B2 movs r2, 0x1 mov r10, r2 _080477B2: mov r3, r10 cmp r3, 0 beq _080477BE movs r0, 0x17 bl sub_803E46C _080477BE: ldr r0, [sp, 0x34] add r8, r0 ldr r1, [sp, 0x38] adds r7, r1 ldr r2, [sp, 0x2C] subs r2, 0x1 str r2, [sp, 0x2C] cmp r2, 0 bne _08047726 _080477D0: ldr r3, [sp, 0x18] ldr r0, [r3] ldr r1, [sp, 0x1C] str r0, [r1, 0x4] ldr r0, _08047848 ldr r0, [r0] ldr r2, _08047850 adds r0, r2 movs r1, 0 strb r1, [r0] movs r1, 0 ldrsh r0, [r3, r1] movs r2, 0x2 ldrsh r1, [r3, r2] bl sub_804954C adds r4, r0, 0 ldr r0, [r4, 0x10] cmp r0, 0 bne _080477FA b _08047904 _080477FA: movs r3, 0x1 mov r8, r3 movs r7, 0 bl sub_80450F8 cmp r0, 0x1 bne _08047834 ldr r0, [r4, 0x10] movs r1, 0x26 bl sub_8046CB0 lsls r0, 24 lsrs r0, 24 negs r1, r0 orrs r1, r0 lsrs r7, r1, 31 ldr r1, _08047854 add r0, sp, 0x8 bl sub_8092A88 ldr r0, [r4, 0x10] add r1, sp, 0x8 bl sub_80571F0 lsls r0, 24 cmp r0, 0 beq _08047834 movs r0, 0 mov r8, r0 _08047834: mov r1, r8 cmp r1, 0 beq _08047904 ldr r1, [r4, 0x10] adds r5, r1, 0 cmp r7, 0 beq _0804785C ldr r0, _08047858 ands r6, r0 b _0804786E .align 2, 0 _08047848: .4byte gUnknown_203B418 _0804784C: .4byte 0x00018210 _08047850: .4byte 0x0001c05e _08047854: .4byte 0x00000195 _08047858: .4byte 0xffffff00 _0804785C: ldr r0, [sp, 0x10] bl sub_8047930 lsls r0, 24 lsrs r0, 24 ldr r1, _080478CC ands r1, r6 adds r6, r1, 0 orrs r6, r0 _0804786E: ldr r0, _080478D0 ldr r1, [sp, 0x14] bl sub_8045C08 ldr r0, _080478D4 adds r1, r5, 0 movs r2, 0 bl sub_8045B94 lsls r0, r6, 24 cmp r0, 0 beq _080478DC adds r0, r5, 0 movs r1, 0x8 bl sub_806CE94 ldr r0, _080478D8 ldr r2, [r0] ldr r0, [sp, 0x10] adds r1, r5, 0 bl sub_80522F4 ldr r0, [sp, 0x10] adds r1, r5, 0 bl sub_807A96C lsls r0, 24 lsrs r2, r0, 24 movs r1, 0 ldr r3, [sp, 0x28] cmp r3, 0 bne _080478B6 ldr r0, [sp, 0x64] ldrb r0, [r0] cmp r0, 0 beq _080478B8 _080478B6: movs r1, 0x1 _080478B8: str r5, [sp] ldr r0, [sp, 0x14] str r0, [sp, 0x4] movs r0, 0x1 ldr r3, [sp, 0x10] bl sub_80479B8 movs r1, 0 str r1, [sp, 0x20] b _08047904 .align 2, 0 _080478CC: .4byte 0xffffff00 _080478D0: .4byte gUnknown_202DE58 _080478D4: .4byte gUnknown_202DF98 _080478D8: .4byte gUnknown_80F94C4 _080478DC: cmp r7, 0 beq _080478F4 ldr r0, _080478F0 ldr r2, [r0] ldr r0, [sp, 0x10] adds r1, r5, 0 bl sub_80522F4 b _08047900 .align 2, 0 _080478F0: .4byte gUnknown_80F9510 _080478F4: ldr r0, _0804792C ldr r2, [r0] ldr r0, [sp, 0x10] adds r1, r5, 0 bl sub_80522F4 _08047900: movs r2, 0x1 str r2, [sp, 0x20] _08047904: ldr r3, [sp, 0x20] cmp r3, 0x1 bne _0804791A movs r0, 0 str r0, [sp] ldr r0, [sp, 0x10] ldr r1, [sp, 0x1C] ldr r2, [sp, 0x14] movs r3, 0 bl sub_804652C _0804791A: add sp, 0x44 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804792C: .4byte gUnknown_80F94F0 thumb_func_end sub_80475C4 thumb_func_start sub_8047930 sub_8047930: push {r4-r6,lr} adds r4, r0, 0 adds r5, r1, 0 ldr r1, [r5, 0x70] ldrb r0, [r1, 0x8] cmp r0, 0x1 beq _0804794C adds r0, r1, 0 adds r0, 0xA4 ldrb r0, [r0] cmp r0, 0x4 beq _0804794C cmp r0, 0x1 bne _08047950 _0804794C: movs r0, 0 b _080479B0 _08047950: movs r0, 0x64 bl sub_8084100 ldr r1, _08047980 movs r2, 0 ldrsh r1, [r1, r2] movs r6, 0 cmp r0, r1 bge _08047964 movs r6, 0x1 _08047964: adds r0, r4, 0 bl sub_80450F8 cmp r0, 0x1 bne _08047994 adds r0, r4, 0 movs r1, 0x28 bl sub_8046CB0 lsls r0, 24 cmp r0, 0 beq _08047984 movs r6, 0 b _08047994 .align 2, 0 _08047980: .4byte gUnknown_80F4FA2 _08047984: adds r0, r4, 0 movs r1, 0x2A bl sub_8046CB0 lsls r0, 24 cmp r0, 0 beq _08047994 movs r6, 0x1 _08047994: adds r0, r5, 0 bl sub_80450F8 cmp r0, 0x1 bne _080479AE adds r0, r5, 0 movs r1, 0x25 bl sub_8046CB0 lsls r0, 24 cmp r0, 0 beq _080479AE movs r6, 0 _080479AE: adds r0, r6, 0 _080479B0: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8047930 thumb_func_start sub_80479B8 sub_80479B8: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C adds r4, r3, 0 ldr r5, [sp, 0x3C] ldr r7, [sp, 0x40] lsls r0, 24 lsrs r6, r0, 24 lsls r1, 24 lsrs r1, 24 lsls r2, 24 lsrs r2, 24 mov r10, r2 cmp r6, 0 beq _08047AD0 cmp r1, 0 bne _08047ABC movs r0, 0 mov r8, r0 ldr r1, [r5, 0x70] mov r9, r1 ldrb r0, [r1, 0x6] cmp r0, 0 beq _08047A20 ldrb r0, [r7, 0x2] bl sub_8090BD0 lsls r0, 24 cmp r0, 0 beq _08047A3C ldrb r0, [r7, 0x2] bl sub_8090BD0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 beq _08047A3C ldrb r0, [r7, 0x2] bl sub_8090BD0 lsls r0, 24 lsrs r0, 24 movs r1, 0x1 eors r0, r1 negs r1, r0 orrs r1, r0 lsrs r1, 31 mov r8, r1 b _08047A3C _08047A20: ldrb r0, [r7, 0x2] bl sub_8090BD0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 beq _08047A3C adds r0, r5, 0 movs r1, 0x2 bl sub_80718D8 lsls r0, 24 lsrs r0, 24 mov r8, r0 _08047A3C: adds r0, r5, 0 bl sub_8070C60 lsls r0, 24 cmp r0, 0 beq _08047A4C movs r0, 0 mov r8, r0 _08047A4C: mov r1, r8 cmp r1, 0 beq _08047ABC mov r0, r9 adds r0, 0x60 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08047ABC mov r1, r9 ldrb r0, [r1, 0x8] cmp r0, 0x1 bne _08047A76 adds r1, r5, 0x4 adds r0, r4, 0 adds r2, r7, 0 bl sub_80464C8 bl _080482BA _08047A76: ldr r0, _08047AAC bl sub_8083E38 ldr r0, _08047AB0 adds r1, r7, 0 bl sub_8045BF8 ldr r0, _08047AB4 adds r1, r5, 0 movs r2, 0 bl sub_8045B94 ldr r0, _08047AB8 ldr r2, [r0] adds r0, r4, 0 adds r1, r5, 0 bl sub_80522F4 ldr r0, [r7] mov r1, r9 str r0, [r1, 0x60] adds r0, r5, 0 bl sub_806A6E8 bl _080482BA .align 2, 0 _08047AAC: .4byte 0x0000014d _08047AB0: .4byte gUnknown_202DE58 _08047AB4: .4byte gUnknown_202DF98 _08047AB8: .4byte gUnknown_80FDBB8 _08047ABC: cmp r6, 0 beq _08047AD0 adds r0, r5, 0 adds r1, r7, 0 bl sub_8042390 adds r0, r4, 0 adds r1, r5, 0 bl sub_806F450 _08047AD0: ldrb r1, [r7] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08047B2C ldr r0, _08047B1C adds r1, r7, 0 bl sub_8045BF8 ldr r0, _08047B20 ldr r2, [r0] adds r0, r4, 0 adds r1, r5, 0 bl sub_80522F4 cmp r6, 0 beq _08047B30 ldr r0, _08047B24 movs r1, 0 ldrsh r2, [r0, r1] add r0, sp, 0x18 str r0, [sp] movs r1, 0 str r1, [sp, 0x4] ldr r0, _08047B28 str r0, [sp, 0x8] str r1, [sp, 0xC] str r1, [sp, 0x10] str r1, [sp, 0x14] adds r0, r4, 0 adds r1, r5, 0 movs r3, 0x1 bl sub_806F370 adds r0, r4, 0 bl sub_8071DA4 b _080482BA .align 2, 0 _08047B1C: .4byte gUnknown_202DE58 _08047B20: .4byte gUnknown_80FE3E8 _08047B24: .4byte gUnknown_80F4FAE _08047B28: .4byte 0x00000217 _08047B2C: cmp r6, 0 bne _08047B38 _08047B30: adds r0, r5, 0 adds r1, r7, 0 bl sub_804245C _08047B38: ldrb r0, [r7, 0x2] bl sub_8090BD0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _08047B56 movs r0, 0 str r0, [sp] adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x5 movs r3, 0 bl sub_8078B5C _08047B56: ldrb r0, [r7, 0x2] bl sub_8090BD0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x5 beq _08047B72 ldrb r0, [r7, 0x2] bl sub_8090BD0 lsls r0, 24 lsrs r0, 24 cmp r0, 0xA bne _08047B9C _08047B72: cmp r6, 0 beq _08047B88 ldr r0, _08047B84 movs r1, 0 ldrsh r2, [r0, r1] mov r0, sp adds r0, 0x19 b _08048284 .align 2, 0 _08047B84: .4byte gUnknown_80F4FAC _08047B88: ldr r0, _08047B98 ldr r2, [r0] adds r0, r4, 0 adds r1, r5, 0 bl sub_80522F4 b _080482B4 .align 2, 0 _08047B98: .4byte gUnknown_80FE458 _08047B9C: ldrb r0, [r7, 0x2] subs r0, 0x1 cmp r0, 0xE8 bls _08047BA6 b _08048276 _08047BA6: lsls r0, 2 ldr r1, _08047BB0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08047BB0: .4byte _08047BB4 .align 2, 0 _08047BB4: .4byte _08047F58 .4byte _08047F70 .4byte _08047F88 .4byte _08047FA0 .4byte _08047FB8 .4byte _08047FD0 .4byte _08047FF0 .4byte _08047FE8 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048004 .4byte _0804825E .4byte _08048010 .4byte _0804801A .4byte _0804804C .4byte _08048276 .4byte _0804802E .4byte _0804809C .4byte _08048038 .4byte _08048024 .4byte _080480BA .4byte _080480C4 .4byte _08048042 .4byte _0804806A .4byte _08048060 .4byte _08048056 .4byte _0804807E .4byte _080480B0 .4byte _08048074 .4byte _080480D8 .4byte _080480CE .4byte _08048092 .4byte _08048088 .4byte _080480A6 .4byte _080480E4 .4byte _080480EE .4byte _080480F8 .4byte _08048102 .4byte _0804810C .4byte _08048212 .4byte _08048122 .4byte _0804813C .4byte _0804812A .4byte _08048146 .4byte _08048152 .4byte _0804815E .4byte _0804816A .4byte _08048176 .4byte _08048182 .4byte _0804818E .4byte _0804819A .4byte _080481A6 .4byte _080481B2 .4byte _080481BE .4byte _080481CA .4byte _080481D6 .4byte _080481E2 .4byte _080481EE .4byte _080481FA .4byte _08048206 .4byte _08048212 .4byte _08048220 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _0804823A .4byte _08048252 .4byte _08048246 .4byte _0804826A .4byte _0804822E .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048116 _08047F58: ldr r0, _08047F6C movs r1, 0 ldrsh r2, [r0, r1] adds r0, r4, 0 adds r1, r5, 0 movs r3, 0x1 bl sub_80482FC b _080482B4 .align 2, 0 _08047F6C: .4byte gUnknown_80F503A _08047F70: ldr r0, _08047F84 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r4, 0 adds r1, r5, 0 movs r3, 0x2 bl sub_80482FC b _080482B4 .align 2, 0 _08047F84: .4byte gUnknown_80F503C _08047F88: ldr r0, _08047F9C movs r1, 0 ldrsh r2, [r0, r1] adds r0, r4, 0 adds r1, r5, 0 movs r3, 0x3 bl sub_80482FC b _080482B4 .align 2, 0 _08047F9C: .4byte gUnknown_80F503E _08047FA0: ldr r0, _08047FB4 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r4, 0 adds r1, r5, 0 movs r3, 0x4 bl sub_80482FC b _080482B4 .align 2, 0 _08047FB4: .4byte gUnknown_80F5040 _08047FB8: ldr r0, _08047FCC movs r1, 0 ldrsh r2, [r0, r1] adds r0, r4, 0 adds r1, r5, 0 movs r3, 0x5 bl sub_80482FC b _080482B4 .align 2, 0 _08047FCC: .4byte gUnknown_80F5042 _08047FD0: ldr r0, _08047FE4 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r4, 0 adds r1, r5, 0 movs r3, 0x6 bl sub_80482FC b _080482B4 .align 2, 0 _08047FE4: .4byte gUnknown_80F5044 _08047FE8: ldr r0, _08047FEC b _08047FF2 .align 2, 0 _08047FEC: .4byte gUnknown_80F5048 _08047FF0: ldr r0, _08048000 _08047FF2: movs r1, 0 ldrsh r2, [r0, r1] adds r0, r4, 0 adds r1, r5, 0 bl sub_8048340 b _080482B4 .align 2, 0 _08048000: .4byte gUnknown_80F5046 _08048004: adds r0, r4, 0 adds r1, r5, 0 mov r2, r10 bl sub_8048364 b _080482B4 _08048010: adds r0, r4, 0 adds r1, r5, 0 bl sub_8048374 b _080482B4 _0804801A: adds r0, r4, 0 adds r1, r5, 0 bl sub_804839C b _080482B4 _08048024: adds r0, r4, 0 adds r1, r5, 0 bl sub_80483D4 b _080482B4 _0804802E: adds r0, r4, 0 adds r1, r5, 0 bl sub_80483F4 b _080482B4 _08048038: adds r0, r4, 0 adds r1, r5, 0 bl sub_8048400 b _080482B4 _08048042: adds r0, r4, 0 adds r1, r5, 0 bl sub_804840C b _080482B4 _0804804C: adds r0, r4, 0 adds r1, r5, 0 bl sub_804841C b _080482B4 _08048056: adds r0, r4, 0 adds r1, r5, 0 bl sub_804849C b _080482B4 _08048060: adds r0, r4, 0 adds r1, r5, 0 bl sub_8048428 b _080482B4 _0804806A: adds r0, r4, 0 adds r1, r5, 0 bl sub_8048450 b _080482B4 _08048074: adds r0, r4, 0 adds r1, r5, 0 bl sub_8048480 b _080482B4 _0804807E: adds r0, r4, 0 adds r1, r5, 0 bl sub_80482D4 b _080482B4 _08048088: adds r0, r4, 0 adds r1, r5, 0 bl sub_8048490 b _080482B4 _08048092: adds r0, r4, 0 adds r1, r5, 0 bl sub_80484A8 b _080482B4 _0804809C: adds r0, r4, 0 adds r1, r5, 0 bl sub_80484DC b _080482B4 _080480A6: adds r0, r4, 0 adds r1, r5, 0 bl sub_80484BC b _080482B4 _080480B0: adds r0, r4, 0 adds r1, r5, 0 bl sub_80484C8 b _080482B4 _080480BA: adds r0, r4, 0 adds r1, r5, 0 bl sub_80484E8 b _080482B4 _080480C4: adds r0, r4, 0 adds r1, r5, 0 bl sub_8048524 b _080482B4 _080480CE: adds r0, r4, 0 adds r1, r5, 0 bl sub_80485B0 b _080482B4 _080480D8: adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 bl sub_804869C b _080482B4 _080480E4: adds r0, r4, 0 adds r1, r5, 0 bl sub_80483C4 b _080482B4 _080480EE: adds r0, r4, 0 adds r1, r5, 0 bl sub_804891C b _080482B4 _080480F8: adds r0, r4, 0 adds r1, r5, 0 bl sub_8048928 b _080482B4 _08048102: adds r0, r4, 0 adds r1, r5, 0 bl sub_8048934 b _080482B4 _0804810C: adds r0, r4, 0 adds r1, r5, 0 bl sub_8048940 b _080482B4 _08048116: adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 bl nullsub_94 b _080482B4 _08048122: adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x64 b _08048130 _0804812A: ldr r2, _08048138 adds r0, r4, 0 adds r1, r5, 0 _08048130: movs r3, 0xA bl sub_80487CC b _080482B4 .align 2, 0 _08048138: .4byte 0x000003e7 _0804813C: adds r0, r4, 0 adds r1, r5, 0 bl sub_8048E04 b _080482B4 _08048146: adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x1 bl sub_80487E0 b _080482B4 _08048152: adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x2 bl sub_80487E0 b _080482B4 _0804815E: adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x3 bl sub_80487E0 b _080482B4 _0804816A: adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x4 bl sub_80487E0 b _080482B4 _08048176: adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x5 bl sub_80487E0 b _080482B4 _08048182: adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x6 bl sub_80487E0 b _080482B4 _0804818E: adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x7 bl sub_80487E0 b _080482B4 _0804819A: adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x8 bl sub_80487E0 b _080482B4 _080481A6: adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x9 bl sub_80487E0 b _080482B4 _080481B2: adds r0, r4, 0 adds r1, r5, 0 movs r2, 0xA bl sub_80487E0 b _080482B4 _080481BE: adds r0, r4, 0 adds r1, r5, 0 movs r2, 0xB bl sub_80487E0 b _080482B4 _080481CA: adds r0, r4, 0 adds r1, r5, 0 movs r2, 0xC bl sub_80487E0 b _080482B4 _080481D6: adds r0, r4, 0 adds r1, r5, 0 movs r2, 0xD bl sub_80487E0 b _080482B4 _080481E2: adds r0, r4, 0 adds r1, r5, 0 movs r2, 0xE bl sub_80487E0 b _080482B4 _080481EE: adds r0, r4, 0 adds r1, r5, 0 movs r2, 0xF bl sub_80487E0 b _080482B4 _080481FA: adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x10 bl sub_80487E0 b _080482B4 _08048206: adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x11 bl sub_80487E0 b _080482B4 _08048212: adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x32 movs r3, 0x5 bl sub_80487CC b _080482B4 _08048220: adds r0, r4, 0 adds r1, r5, 0 movs r2, 0xA movs r3, 0 bl sub_80487CC b _080482B4 _0804822E: adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 bl sub_8048DB8 b _080482B4 _0804823A: adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 bl sub_8048EB0 b _080482B4 _08048246: adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 bl sub_8048EC4 b _080482B4 _08048252: adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 bl sub_8048ED8 b _080482B4 _0804825E: adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 bl sub_8048EEC b _080482B4 _0804826A: adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 bl sub_8048F00 b _080482B4 _08048276: cmp r6, 0 beq _080482A8 ldr r0, _080482A0 movs r1, 0 ldrsh r2, [r0, r1] mov r0, sp adds r0, 0x1A _08048284: str r0, [sp] movs r1, 0 str r1, [sp, 0x4] ldr r0, _080482A4 str r0, [sp, 0x8] str r1, [sp, 0xC] str r1, [sp, 0x10] str r1, [sp, 0x14] adds r0, r4, 0 adds r1, r5, 0 movs r3, 0x1 bl sub_806F370 b _080482B4 .align 2, 0 _080482A0: .4byte gUnknown_80F4FAC _080482A4: .4byte 0x00000217 _080482A8: ldr r0, _080482CC ldr r2, [r0] adds r0, r4, 0 adds r1, r5, 0 bl sub_80522F4 _080482B4: adds r0, r4, 0 bl sub_8071DA4 _080482BA: add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080482CC: .4byte gUnknown_80FE458 thumb_func_end sub_80479B8 thumb_func_start nullsub_205 nullsub_205: bx lr thumb_func_end nullsub_205 thumb_func_start sub_80482D4 sub_80482D4: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 ldr r1, _080482F8 adds r0, r4, 0 movs r2, 0x1 bl sub_808417C adds r2, r0, 0 adds r0, r5, 0 adds r1, r4, 0 movs r3, 0x1 bl sub_8075C58 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080482F8: .4byte gUnknown_80F4E74 thumb_func_end sub_80482D4 thumb_func_start sub_80482FC sub_80482FC: push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0xC mov r8, r0 mov r9, r1 adds r6, r2, 0 lsls r4, r3, 24 lsrs r4, 24 add r5, sp, 0x4 ldr r1, _0804833C adds r0, r5, 0 bl sub_8092A88 strb r6, [r5, 0x4] movs r3, 0x80 lsls r3, 1 str r4, [sp] mov r0, r8 mov r1, r9 add r2, sp, 0x4 bl sub_8055640 add sp, 0xC pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0804833C: .4byte 0x00000195 thumb_func_end sub_80482FC thumb_func_start sub_8048340 sub_8048340: push {r4,lr} sub sp, 0x18 movs r4, 0 str r4, [sp] str r4, [sp, 0x4] movs r3, 0x84 lsls r3, 2 str r3, [sp, 0x8] str r4, [sp, 0xC] str r4, [sp, 0x10] str r4, [sp, 0x14] movs r3, 0x1 bl sub_806F370 add sp, 0x18 pop {r4} pop {r0} bx r0 thumb_func_end sub_8048340 thumb_func_start sub_8048364 sub_8048364: push {lr} lsls r3, r2, 24 lsrs r3, 24 movs r2, 0x1 bl sub_8079F20 pop {r0} bx r0 thumb_func_end sub_8048364 thumb_func_start sub_8048374 sub_8048374: push {r4,lr} sub sp, 0x4 ldr r2, _08048394 movs r3, 0 ldrsh r2, [r2, r3] ldr r3, _08048398 movs r4, 0 ldrsh r3, [r3, r4] movs r4, 0x1 str r4, [sp] bl sub_8077C44 add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08048394: .4byte gUnknown_80F4FB6 _08048398: .4byte gUnknown_80F4FB8 thumb_func_end sub_8048374 thumb_func_start sub_804839C sub_804839C: push {r4,lr} sub sp, 0x4 ldr r2, _080483BC movs r3, 0 ldrsh r2, [r2, r3] ldr r3, _080483C0 movs r4, 0 ldrsh r3, [r3, r4] movs r4, 0x1 str r4, [sp] bl sub_8077C44 add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080483BC: .4byte gUnknown_80F4FBA _080483C0: .4byte gUnknown_80F4FBC thumb_func_end sub_804839C thumb_func_start sub_80483C4 sub_80483C4: push {lr} ldr r2, _080483D0 bl sub_80792F8 pop {r0} bx r0 .align 2, 0 _080483D0: .4byte 0x000003e7 thumb_func_end sub_80483C4 thumb_func_start sub_80483D4 sub_80483D4: push {r4,lr} sub sp, 0x4 ldr r2, _080483F0 movs r4, 0 ldrsh r3, [r2, r4] movs r2, 0x1 str r2, [sp] movs r2, 0 bl sub_8077C44 add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080483F0: .4byte gUnknown_80F4FBE thumb_func_end sub_80483D4 thumb_func_start sub_80483F4 sub_80483F4: push {lr} bl sub_8079140 pop {r0} bx r0 thumb_func_end sub_80483F4 thumb_func_start sub_8048400 sub_8048400: push {lr} bl sub_80791D8 pop {r0} bx r0 thumb_func_end sub_8048400 thumb_func_start sub_804840C sub_804840C: push {lr} movs r2, 0 movs r3, 0x1 bl sub_8077910 pop {r0} bx r0 thumb_func_end sub_804840C thumb_func_start sub_804841C sub_804841C: push {lr} bl sub_8079270 pop {r0} bx r0 thumb_func_end sub_804841C thumb_func_start sub_8048428 sub_8048428: push {lr} adds r3, r0, 0 ldr r0, [r1, 0x70] adds r0, 0xAC ldrb r0, [r0] cmp r0, 0x4 bne _0804843E adds r0, r3, 0 bl sub_807A290 b _08048448 _0804843E: ldr r0, _0804844C ldr r2, [r0] adds r0, r3, 0 bl sub_80522F4 _08048448: pop {r0} bx r0 .align 2, 0 _0804844C: .4byte gUnknown_80F89F4 thumb_func_end sub_8048428 thumb_func_start sub_8048450 sub_8048450: push {lr} adds r3, r0, 0 ldr r0, [r1, 0x70] adds r0, 0xAC ldrb r0, [r0] subs r0, 0x2 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _0804846C adds r0, r3, 0 bl sub_807A290 b _08048476 _0804846C: ldr r0, _0804847C ldr r2, [r0] adds r0, r3, 0 bl sub_80522F4 _08048476: pop {r0} bx r0 .align 2, 0 _0804847C: .4byte gUnknown_80F89F4 thumb_func_end sub_8048450 thumb_func_start sub_8048480 sub_8048480: push {lr} movs r2, 0 movs r3, 0 bl sub_807D148 pop {r0} bx r0 thumb_func_end sub_8048480 thumb_func_start sub_8048490 sub_8048490: push {lr} bl sub_8075FCC pop {r0} bx r0 thumb_func_end sub_8048490 thumb_func_start sub_804849C sub_804849C: push {lr} movs r2, 0x1 bl sub_8077AE4 pop {r0} bx r0 thumb_func_end sub_804849C thumb_func_start sub_80484A8 sub_80484A8: push {lr} sub sp, 0x4 movs r2, 0x1 str r2, [sp] movs r3, 0x1 bl sub_8072008 add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80484A8 thumb_func_start sub_80484BC sub_80484BC: push {lr} bl sub_8076D10 pop {r0} bx r0 thumb_func_end sub_80484BC thumb_func_start sub_80484C8 sub_80484C8: push {lr} ldr r2, _080484D8 ldr r2, [r2] bl sub_80522F4 pop {r0} bx r0 .align 2, 0 _080484D8: .4byte gUnknown_80F89F4 thumb_func_end sub_80484C8 thumb_func_start sub_80484DC sub_80484DC: push {lr} movs r2, 0x1 bl sub_807232C pop {r0} bx r0 thumb_func_end sub_80484DC thumb_func_start sub_80484E8 sub_80484E8: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 ldr r0, [r4, 0x70] adds r0, 0xAC ldrb r0, [r0] cmp r0, 0x1 bne _08048500 adds r0, r5, 0 bl sub_807A290 b _08048516 _08048500: ldr r0, _0804851C adds r1, r4, 0 movs r2, 0 bl sub_8045B94 ldr r0, _08048520 ldr r2, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_80522F4 _08048516: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0804851C: .4byte gUnknown_202DF98 _08048520: .4byte gUnknown_80FB580 thumb_func_end sub_80484E8 thumb_func_start sub_8048524 sub_8048524: push {r4-r6,lr} sub sp, 0x4 adds r6, r0, 0 adds r4, r1, 0 ldr r0, [r4, 0x70] adds r5, r0, 0 ldrb r0, [r5, 0x7] cmp r0, 0 beq _08048542 adds r0, r6, 0 movs r2, 0 movs r3, 0x5 bl sub_8078A58 b _080485A4 _08048542: ldr r0, _08048560 adds r1, r4, 0 movs r2, 0 bl sub_8045B94 adds r0, r4, 0 movs r1, 0x12 bl sub_80718D8 lsls r0, 24 cmp r0, 0 beq _08048568 ldr r0, _08048564 b _08048586 .align 2, 0 _08048560: .4byte gUnknown_202DF98 _08048564: .4byte gUnknown_8100298 _08048568: movs r0, 0x9E lsls r0, 1 adds r5, r0 ldr r0, [r5] bl sub_8094450 cmp r0, 0 beq _08048598 mov r0, sp movs r1, 0 bl sub_80943A0 ldr r0, [sp] str r0, [r5] ldr r0, _08048594 _08048586: ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 b _080485A4 .align 2, 0 _08048594: .4byte gUnknown_80F9740 _08048598: ldr r0, _080485AC ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 _080485A4: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080485AC: .4byte gUnknown_80F9760 thumb_func_end sub_8048524 thumb_func_start sub_80485B0 sub_80485B0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 mov r9, r0 mov r8, r1 movs r0, 0 str r0, [sp] movs r2, 0x1 mov r10, r2 ldr r4, [r1, 0x70] movs r0, 0x64 bl sub_8084100 ldr r1, _0804865C movs r2, 0 ldrsh r1, [r1, r2] cmp r0, r1 bge _080485DE movs r0, 0x3 mov r10, r0 _080485DE: ldrb r0, [r4, 0x7] cmp r0, 0 beq _0804867C movs r2, 0x8C lsls r2, 1 adds r4, r2 adds r5, r4, 0 movs r7, 0x3 _080485EE: ldrb r1, [r4] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0804862C movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _0804862C adds r0, r5, 0 bl sub_8092BC0 cmp r0, 0 beq _0804862C ldrb r6, [r4, 0x5] adds r0, r5, 0 bl sub_8092C0C adds r1, r0, 0 ldrb r0, [r4, 0x5] add r0, r10 strb r0, [r4, 0x5] ldrb r0, [r4, 0x5] cmp r0, r1 blt _08048622 strb r1, [r4, 0x5] _08048622: ldrb r0, [r4, 0x5] cmp r6, r0 beq _0804862C movs r2, 0x1 str r2, [sp] _0804862C: adds r4, 0x8 adds r5, 0x8 subs r7, 0x1 cmp r7, 0 bge _080485EE ldr r0, [sp] cmp r0, 0 beq _08048668 ldr r0, _08048660 ldr r2, [r0] mov r0, r9 mov r1, r8 bl sub_80522F4 mov r2, r10 cmp r2, 0x1 beq _08048688 movs r0, 0xA movs r1, 0x40 bl sub_803E708 ldr r0, _08048664 b _0804866A .align 2, 0 _0804865C: .4byte gUnknown_80F4F46 _08048660: .4byte gUnknown_80FE454 _08048664: .4byte gUnknown_80FE434 _08048668: ldr r0, _08048678 _0804866A: ldr r2, [r0] mov r0, r9 mov r1, r8 bl sub_80522F4 b _08048688 .align 2, 0 _08048678: .4byte gUnknown_80FE40C _0804867C: ldr r0, _08048698 ldr r2, [r0] mov r0, r9 mov r1, r8 bl sub_80522F4 _08048688: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08048698: .4byte gUnknown_80FE40C thumb_func_end sub_80485B0 thumb_func_start sub_804869C sub_804869C: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x1C adds r4, r0, 0 adds r7, r1, 0 lsls r2, 24 cmp r2, 0 beq _08048724 ldr r5, [r7, 0x70] ldr r0, _080486D4 ldr r0, [r0] ldr r1, _080486D8 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _080486E4 ldr r0, _080486DC movs r1, 0 ldrsh r6, [r0, r1] ldr r0, _080486E0 ldr r2, [r0] adds r0, r4, 0 adds r1, r7, 0 bl sub_80522F4 b _080486EA .align 2, 0 _080486D4: .4byte gUnknown_203B418 _080486D8: .4byte 0x00000675 _080486DC: .4byte gUnknown_80F4FA8 _080486E0: .4byte gUnknown_80FEAE8 _080486E4: ldr r0, _0804871C movs r1, 0 ldrsh r6, [r0, r1] _080486EA: adds r0, r5, 0 adds r0, 0xB0 ldrb r0, [r0] cmp r0, 0x1 bne _080486FC adds r0, r4, 0 adds r1, r7, 0 bl sub_807A324 _080486FC: add r0, sp, 0x18 str r0, [sp] movs r1, 0 str r1, [sp, 0x4] ldr r0, _08048720 str r0, [sp, 0x8] str r1, [sp, 0xC] str r1, [sp, 0x10] str r1, [sp, 0x14] adds r0, r4, 0 adds r1, r7, 0 adds r2, r6, 0 movs r3, 0x1 bl sub_806F370 b _080487B6 .align 2, 0 _0804871C: .4byte gUnknown_80F4FA4 _08048720: .4byte 0x00000216 _08048724: adds r0, r4, 0 bl sub_8042520 adds r0, r4, 0 bl sub_80696FC adds r5, r0, 0 cmp r5, 0 bne _08048748 ldr r0, _08048744 ldr r2, [r0] adds r0, r4, 0 adds r1, r7, 0 bl sub_80522F4 b _080487B6 .align 2, 0 _08048744: .4byte gUnknown_80FDBA0 _08048748: ldr r1, [r5, 0x70] mov r8, r1 ldr r0, _08048770 ldr r0, [r0] ldr r1, _08048774 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _08048780 ldr r0, _08048778 movs r1, 0 ldrsh r6, [r0, r1] ldr r0, _0804877C ldr r2, [r0] adds r0, r4, 0 adds r1, r7, 0 bl sub_80522F4 b _08048786 .align 2, 0 _08048770: .4byte gUnknown_203B418 _08048774: .4byte 0x00000675 _08048778: .4byte gUnknown_80F4FAA _0804877C: .4byte gUnknown_80FEAE8 _08048780: ldr r0, _080487C4 movs r1, 0 ldrsh r6, [r0, r1] _08048786: mov r0, r8 adds r0, 0xB0 ldrb r0, [r0] cmp r0, 0x1 bne _08048798 adds r0, r4, 0 adds r1, r5, 0 bl sub_807A324 _08048798: add r0, sp, 0x18 str r0, [sp] movs r1, 0 str r1, [sp, 0x4] ldr r0, _080487C8 str r0, [sp, 0x8] str r1, [sp, 0xC] str r1, [sp, 0x10] str r1, [sp, 0x14] adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 movs r3, 0x1 bl sub_806F370 _080487B6: add sp, 0x1C pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080487C4: .4byte gUnknown_80F4FA6 _080487C8: .4byte 0x00000216 thumb_func_end sub_804869C thumb_func_start sub_80487CC sub_80487CC: push {r4,lr} sub sp, 0x4 movs r4, 0x1 str r4, [sp] bl sub_8078B5C add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_80487CC thumb_func_start sub_80487E0 sub_80487E0: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 mov r9, r0 mov r8, r1 lsls r3, r2, 24 ldr r5, [r1, 0x70] ldr r4, _08048858 lsrs r3, 23 adds r0, r5, 0 adds r0, 0x5C ldrb r0, [r0] lsls r1, r0, 3 adds r1, r0 lsls r1, 2 adds r1, r3, r1 adds r0, r1, r4 movs r2, 0 ldrsh r6, [r0, r2] adds r0, r5, 0 adds r0, 0x5D ldrb r2, [r0] lsls r0, r2, 3 adds r0, r2 lsls r0, 2 adds r3, r0 adds r4, r3, r4 movs r2, 0 ldrsh r0, [r4, r2] adds r6, r0 ldr r0, _0804885C adds r1, r0 movs r4, 0 ldrsh r2, [r1, r4] adds r3, r0 movs r1, 0 ldrsh r0, [r3, r1] adds r2, r0 movs r0, 0x1 str r0, [sp] mov r0, r9 mov r1, r8 movs r3, 0 bl sub_8078B5C ldrb r0, [r5, 0x6] cmp r0, 0 bne _08048906 adds r0, r5, 0 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x4A beq _08048852 cmp r0, 0x47 bne _08048860 _08048852: movs r0, 0x1 b _08048862 .align 2, 0 _08048858: .4byte gUnknown_810A580 _0804885C: .4byte gUnknown_810A808 _08048860: movs r0, 0 _08048862: cmp r0, 0 bne _08048906 movs r2, 0xC ldrsh r7, [r5, r2] ldrh r0, [r5, 0xC] adds r0, r6 strh r0, [r5, 0xC] adds r2, r7, r6 lsls r0, 16 cmp r0, 0 bgt _0804887C movs r0, 0x1 strh r0, [r5, 0xC] _0804887C: movs r4, 0xC ldrsh r0, [r5, r4] ldr r1, _080488A0 cmp r0, r1 ble _08048888 strh r1, [r5, 0xC] _08048888: movs r1, 0xC ldrsh r0, [r5, r1] cmp r7, r0 bne _080488A8 ldr r0, _080488A4 ldr r2, [r0] mov r0, r9 mov r1, r8 bl sub_80522F4 b _08048906 .align 2, 0 _080488A0: .4byte 0x000003e7 _080488A4: .4byte gUnknown_80FD644 _080488A8: subs r0, r2, r7 movs r2, 0 cmp r0, 0x8 bgt _080488BE movs r2, 0x1 cmp r0, 0x4 bgt _080488BE movs r2, 0x3 cmp r0, 0x2 ble _080488BE movs r2, 0x2 _080488BE: movs r4, 0xC ldrsh r0, [r5, r4] subs r0, r7 movs r4, 0 cmp r0, 0x8 bgt _080488D8 movs r4, 0x1 cmp r0, 0x4 bgt _080488D8 movs r4, 0x3 cmp r0, 0x2 ble _080488D8 movs r4, 0x2 _080488D8: ldr r1, _08048914 lsls r0, r2, 2 adds r0, r1 ldr r2, [r0] mov r0, r9 mov r1, r8 bl sub_80522F4 ldr r1, _08048918 lsls r0, r4, 2 adds r0, r1 ldr r2, [r0] mov r0, r9 mov r1, r8 bl sub_80522F4 mov r0, r8 bl sub_807191C adds r0, r5, 0 adds r1, r7, 0 bl sub_806A7E8 _08048906: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08048914: .4byte gUnknown_80FD648 _08048918: .4byte gUnknown_80FD6E8 thumb_func_end sub_80487E0 thumb_func_start sub_804891C sub_804891C: push {lr} movs r2, 0x3 bl sub_80793B0 pop {r0} bx r0 thumb_func_end sub_804891C thumb_func_start sub_8048928 sub_8048928: push {lr} movs r2, 0x3 bl sub_8079420 pop {r0} bx r0 thumb_func_end sub_8048928 thumb_func_start sub_8048934 sub_8048934: push {lr} movs r2, 0x3 bl sub_8079490 pop {r0} bx r0 thumb_func_end sub_8048934 thumb_func_start sub_8048940 sub_8048940: push {lr} movs r2, 0x3 bl sub_8079500 pop {r0} bx r0 thumb_func_end sub_8048940 thumb_func_start nullsub_94 nullsub_94: bx lr thumb_func_end nullsub_94 thumb_func_start sub_8048950 sub_8048950: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} mov r10, r0 mov r8, r1 ldrb r0, [r1, 0x2] bl sub_80913CC lsls r0, 16 lsrs r0, 16 mov r9, r0 mov r0, r8 ldrb r1, [r0] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08048988 ldr r0, _08048984 _08048978: ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage b _08048A58 .align 2, 0 _08048984: .4byte gUnknown_80FE3E8 _08048988: mov r1, r8 ldrb r0, [r1, 0x2] bl sub_80915A0 lsls r0, 24 cmp r0, 0 beq _080489A0 ldr r0, _0804899C b _08048978 .align 2, 0 _0804899C: .4byte gUnknown_81006CC _080489A0: movs r7, 0 _080489A2: ldr r0, _080489FC ldr r0, [r0] lsls r1, r7, 2 ldr r2, _08048A00 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08048A12 ldr r6, [r4, 0x70] movs r0, 0x2 ldrsh r1, [r6, r0] mov r0, r9 bl sub_808E190 lsls r0, 24 lsrs r5, r0, 24 adds r0, r4, 0 movs r1, 0 bl sub_8070B6C lsls r0, 24 cmp r0, 0 beq _080489DC movs r5, 0 _080489DC: adds r0, r6, 0 adds r0, 0xA4 ldrb r0, [r0] cmp r0, 0x1 bne _080489E8 movs r5, 0 _080489E8: adds r0, r6, 0 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x4A beq _080489F6 cmp r0, 0x47 bne _08048A04 _080489F6: movs r0, 0x1 b _08048A06 .align 2, 0 _080489FC: .4byte gUnknown_203B418 _08048A00: .4byte 0x0001357c _08048A04: movs r0, 0 _08048A06: cmp r0, 0 beq _08048A0C movs r5, 0 _08048A0C: ldr r1, _08048A50 adds r0, r6, r1 strb r5, [r0] _08048A12: adds r7, 0x1 cmp r7, 0x3 ble _080489A2 movs r0, 0 movs r1, 0x1 bl sub_8062978 adds r4, r0, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08048A58 mov r0, r10 mov r1, r8 bl sub_804245C adds r0, r4, 0 mov r1, r9 bl sub_8072938 lsls r0, 24 cmp r0, 0 beq _08048A58 ldr r2, _08048A54 mov r0, r10 movs r1, 0 bl sub_8044E24 movs r0, 0x1 b _08048A5A .align 2, 0 _08048A50: .4byte 0x00000157 _08048A54: .4byte 0x00000141 _08048A58: movs r0, 0 _08048A5A: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8048950 thumb_func_start sub_8048A68 sub_8048A68: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} mov r9, r0 mov r8, r1 ldrb r1, [r1] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08048A90 ldr r0, _08048A8C _08048A80: ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage b _08048B8C .align 2, 0 _08048A8C: .4byte gUnknown_80FE3E8 _08048A90: ldr r0, _08048AA4 ldr r0, [r0] ldr r1, _08048AA8 adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _08048AB0 ldr r0, _08048AAC b _08048A80 .align 2, 0 _08048AA4: .4byte gUnknown_203B418 _08048AA8: .4byte 0x0000065c _08048AAC: .4byte gUnknown_80F9BD8 _08048AB0: movs r7, 0 _08048AB2: ldr r0, _08048B24 ldr r0, [r0] lsls r1, r7, 2 ldr r2, _08048B28 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08048B4A ldr r5, [r4, 0x70] movs r6, 0x1 ldrb r0, [r5, 0xA] cmp r0, 0x3 bhi _08048AF4 ldr r2, _08048B2C ldrb r1, [r5, 0xA] movs r0, 0x64 muls r1, r0 ldr r0, _08048B30 adds r1, r0 ldr r0, [r2] adds r0, r1 movs r1, 0xA ldrsh r0, [r0, r1] bl sub_806A538 lsls r0, 24 cmp r0, 0 beq _08048AF6 _08048AF4: movs r6, 0 _08048AF6: adds r0, r4, 0 movs r1, 0 bl sub_8070B6C lsls r0, 24 cmp r0, 0 beq _08048B06 movs r6, 0 _08048B06: adds r0, r5, 0 adds r0, 0xA4 ldrb r0, [r0] cmp r0, 0x1 bne _08048B12 movs r6, 0 _08048B12: adds r0, r5, 0 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x4A beq _08048B20 cmp r0, 0x47 bne _08048B34 _08048B20: movs r0, 0x1 b _08048B36 .align 2, 0 _08048B24: .4byte gUnknown_203B418 _08048B28: .4byte 0x0001357c _08048B2C: .4byte gUnknown_203B45C _08048B30: .4byte 0x00008df8 _08048B34: movs r0, 0 _08048B36: cmp r0, 0 beq _08048B3C movs r6, 0 _08048B3C: ldrb r0, [r5, 0x7] cmp r0, 0 beq _08048B44 movs r6, 0 _08048B44: ldr r2, _08048B84 adds r0, r5, r2 strb r6, [r0] _08048B4A: adds r7, 0x1 cmp r7, 0x3 ble _08048AB2 movs r0, 0 movs r1, 0x1 bl sub_8062978 adds r4, r0, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08048B8C mov r0, r9 mov r1, r8 bl sub_804245C ldr r0, _08048B88 ldr r0, [r0] adds r0, 0xBC str r4, [r0] movs r2, 0xA1 lsls r2, 1 mov r0, r9 movs r1, 0 bl sub_8044E24 movs r0, 0x1 b _08048B8E .align 2, 0 _08048B84: .4byte 0x00000157 _08048B88: .4byte gUnknown_203B418 _08048B8C: movs r0, 0 _08048B8E: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8048A68 thumb_func_start sub_8048B9C sub_8048B9C: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x20 mov r9, r0 movs r0, 0 mov r8, r0 mov r2, r9 ldr r0, [r2, 0x70] adds r6, r0, 0 adds r6, 0x44 ldrb r1, [r1] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08048BD4 ldr r0, _08048BD0 ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage movs r0, 0 b _08048D40 .align 2, 0 _08048BD0: .4byte gUnknown_80FE3E8 _08048BD4: movs r2, 0 _08048BD6: ldr r0, _08048C28 ldr r0, [r0] lsls r1, r2, 2 ldr r3, _08048C2C adds r0, r3 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 str r2, [sp, 0x1C] bl sub_80450E0 lsls r0, 24 ldr r2, [sp, 0x1C] cmp r0, 0 beq _08048C3E ldr r5, [r4, 0x70] movs r7, 0x1 adds r0, r4, 0 movs r1, 0 bl sub_8070B6C lsls r0, 24 ldr r2, [sp, 0x1C] cmp r0, 0 beq _08048C0A movs r7, 0 _08048C0A: adds r0, r5, 0 adds r0, 0xA4 ldrb r0, [r0] cmp r0, 0x1 bne _08048C16 movs r7, 0 _08048C16: adds r0, r5, 0 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x4A beq _08048C24 cmp r0, 0x47 bne _08048C30 _08048C24: movs r0, 0x1 b _08048C32 .align 2, 0 _08048C28: .4byte gUnknown_203B418 _08048C2C: .4byte 0x0001357c _08048C30: movs r0, 0 _08048C32: cmp r0, 0 beq _08048C38 movs r7, 0 _08048C38: ldr r4, _08048C5C adds r0, r5, r4 strb r7, [r0] _08048C3E: adds r2, 0x1 cmp r2, 0x3 ble _08048BD6 movs r0, 0 movs r1, 0x1 bl sub_8062978 adds r4, r0, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _08048C60 movs r0, 0 b _08048D40 .align 2, 0 _08048C5C: .4byte 0x00000157 _08048C60: add r1, sp, 0x4 adds r0, r6, 0 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} b _08048CE2 _08048C6E: ldrh r0, [r6] cmp r0, 0x1D bne _08048C7C adds r0, r6, 0 bl sub_80637E8 b _08048CE2 _08048C7C: cmp r0, 0x20 bne _08048C9A movs r0, 0 movs r1, 0 bl sub_803EAF0 adds r0, r6, 0 bl sub_8063BB4 movs r0, 0x1 bl sub_8044C10 movs r5, 0x1 mov r8, r5 b _08048CE2 _08048C9A: cmp r0, 0x21 bne _08048CB6 movs r0, 0 movs r1, 0 bl sub_803EAF0 adds r0, r6, 0 movs r1, 0 bl sub_8063CF0 movs r0, 0x1 bl sub_8044C10 b _08048CE2 _08048CB6: cmp r0, 0x1E beq _08048CBE cmp r0, 0x33 bne _08048CD0 _08048CBE: movs r0, 0 movs r1, 0 bl sub_803EAF0 adds r0, r6, 0 movs r1, 0 bl sub_8063A70 b _08048CE2 _08048CD0: cmp r0, 0x1F bne _08048CE2 movs r0, 0 movs r1, 0 bl sub_803EAF0 adds r0, r6, 0 bl sub_8063B54 _08048CE2: adds r0, r6, 0 bl sub_8044C88 movs r0, 0x1 str r0, [sp] adds r0, r4, 0 movs r1, 0x1 movs r2, 0 movs r3, 0 bl sub_8062F90 lsls r0, 24 cmp r0, 0 beq _08048C6E mov r0, r8 cmp r0, 0 beq _08048D38 ldr r0, _08048D34 ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl sub_8052B8C cmp r0, 0x1 bne _08048C6E adds r1, r6, 0 add r0, sp, 0x4 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} mov r0, r9 movs r1, 0 movs r2, 0x6E bl sub_8044DF0 adds r0, r6, 0 movs r1, 0x2C bl sub_8044C94 b _08048D3E .align 2, 0 _08048D34: .4byte gUnknown_80FECA0 _08048D38: movs r0, 0x1 bl sub_8044C10 _08048D3E: mov r0, r8 _08048D40: add sp, 0x20 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8048B9C thumb_func_start sub_8048D50 sub_8048D50: push {r4,lr} adds r4, r0, 0 adds r2, r1, 0 ldr r3, [r4, 0x70] ldrb r1, [r2] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08048D78 ldr r0, _08048D70 adds r1, r2, 0 bl sub_8045BF8 ldr r0, _08048D74 b _08048D9A .align 2, 0 _08048D70: .4byte gUnknown_202DE58 _08048D74: .4byte gUnknown_80FE3E8 _08048D78: adds r0, r3, 0 adds r0, 0xEC ldrb r0, [r0] cmp r0, 0x1 bne _08048DB0 ldrb r0, [r2, 0x2] bl sub_8091570 lsls r0, 24 cmp r0, 0 beq _08048DB0 ldr r0, _08048DA8 adds r1, r4, 0 movs r2, 0 bl sub_8045B94 ldr r0, _08048DAC _08048D9A: ldr r1, [r0] adds r0, r4, 0 bl sub_80522A8 movs r0, 0 b _08048DB2 .align 2, 0 _08048DA8: .4byte gUnknown_202DF98 _08048DAC: .4byte gUnknown_80FDCA4 _08048DB0: movs r0, 0x1 _08048DB2: pop {r4} pop {r1} bx r1 thumb_func_end sub_8048D50 thumb_func_start sub_8048DB8 sub_8048DB8: push {r4,lr} sub sp, 0x1C adds r3, r0, 0 adds r4, r1, 0 lsls r2, 24 cmp r2, 0 beq _08048DF4 ldr r0, _08048DEC movs r1, 0 ldrsh r2, [r0, r1] add r0, sp, 0x18 str r0, [sp] movs r1, 0 str r1, [sp, 0x4] ldr r0, _08048DF0 str r0, [sp, 0x8] str r1, [sp, 0xC] str r1, [sp, 0x10] str r1, [sp, 0x14] adds r0, r3, 0 adds r1, r4, 0 movs r3, 0x1 bl sub_806F370 b _08048DFA .align 2, 0 _08048DEC: .4byte gUnknown_80F4FAC _08048DF0: .4byte 0x00000217 _08048DF4: adds r0, r3, 0 bl sub_8051E7C _08048DFA: add sp, 0x1C pop {r4} pop {r0} bx r0 thumb_func_end sub_8048DB8 thumb_func_start sub_8048E04 sub_8048E04: push {r4-r6,lr} sub sp, 0x8 adds r5, r0, 0 adds r6, r1, 0 movs r0, 0x1 str r0, [sp] adds r0, r5, 0 movs r2, 0x1E movs r3, 0 bl sub_8078B5C movs r0, 0x5 bl sub_8084100 cmp r0, 0x4 bhi _08048E9E lsls r0, 2 ldr r1, _08048E30 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08048E30: .4byte _08048E34 .align 2, 0 _08048E34: .4byte _08048E48 .4byte _08048E54 .4byte _08048E5E .4byte _08048E6C .4byte _08048E78 _08048E48: adds r0, r5, 0 adds r1, r6, 0 movs r2, 0x1 bl sub_80763F8 b _08048E9E _08048E54: adds r0, r5, 0 adds r1, r6, 0 bl sub_80769CC b _08048E9E _08048E5E: adds r0, r5, 0 adds r1, r6, 0 movs r2, 0x1 movs r3, 0x1 bl sub_8076210 b _08048E9E _08048E6C: adds r0, r5, 0 adds r1, r6, 0 movs r2, 0x1 bl sub_8077780 b _08048E9E _08048E78: ldr r0, _08048EA8 ldr r2, [r0] movs r4, 0x1 str r4, [sp] str r4, [sp, 0x4] adds r0, r5, 0 adds r1, r6, 0 movs r3, 0x3 bl sub_8076E20 ldr r0, _08048EAC ldr r2, [r0] str r4, [sp] str r4, [sp, 0x4] adds r0, r5, 0 adds r1, r6, 0 movs r3, 0x3 bl sub_8076E20 _08048E9E: add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08048EA8: .4byte gUnknown_8106A4C _08048EAC: .4byte gUnknown_8106A50 thumb_func_end sub_8048E04 thumb_func_start sub_8048EB0 sub_8048EB0: push {lr} ldr r1, _08048EC0 ldr r1, [r1] bl sub_80522A8 pop {r0} bx r0 .align 2, 0 _08048EC0: .4byte gUnknown_81003E0 thumb_func_end sub_8048EB0 thumb_func_start sub_8048EC4 sub_8048EC4: push {lr} ldr r1, _08048ED4 ldr r1, [r1] bl sub_80522A8 pop {r0} bx r0 .align 2, 0 _08048ED4: .4byte gUnknown_8100404 thumb_func_end sub_8048EC4 thumb_func_start sub_8048ED8 sub_8048ED8: push {lr} ldr r1, _08048EE8 ldr r1, [r1] bl sub_80522A8 pop {r0} bx r0 .align 2, 0 _08048EE8: .4byte gUnknown_8100428 thumb_func_end sub_8048ED8 thumb_func_start sub_8048EEC sub_8048EEC: push {lr} ldr r1, _08048EFC ldr r1, [r1] bl sub_80522A8 pop {r0} bx r0 .align 2, 0 _08048EFC: .4byte gUnknown_810044C thumb_func_end sub_8048EEC thumb_func_start sub_8048F00 sub_8048F00: push {r4,lr} adds r4, r0, 0 movs r1, 0xD6 bl sub_80421C0 ldr r0, _08048F24 ldr r1, [r0] adds r0, r4, 0 bl sub_80522A8 movs r0, 0x3C movs r1, 0x46 bl sub_803E708 pop {r4} pop {r0} bx r0 .align 2, 0 _08048F24: .4byte gUnknown_8100494 thumb_func_end sub_8048F00 thumb_func_start sub_8048F28 sub_8048F28: push {r4-r7,lr} sub sp, 0x4 adds r4, r0, 0 ldr r3, [r4, 0x70] movs r6, 0 movs r0, 0x1 adds r5, r2, 0 ands r5, r0 lsrs r2, 1 movs r0, 0x1 ands r2, r0 ldrb r0, [r1, 0x2] subs r0, 0x1 cmp r0, 0xCC bls _08048F48 b _080494E0 _08048F48: lsls r0, 2 ldr r1, _08048F54 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08048F54: .4byte _08048F58 .align 2, 0 _08048F58: .4byte _0804928C .4byte _0804928C .4byte _0804928C .4byte _0804928C .4byte _0804928C .4byte _0804928C .4byte _0804928C .4byte _0804928C .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _08049408 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _08049296 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080492B0 .4byte _080492B0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _08049320 .4byte _080494E0 .4byte _080492B8 .4byte _080492B8 .4byte _0804935E .4byte _080494E0 .4byte _080493E0 .4byte _0804948E .4byte _08049394 .4byte _08049344 .4byte _0804946E .4byte _0804947A .4byte _08049378 .4byte _080493CE .4byte _080493AC .4byte _080493B8 .4byte _08049436 .4byte _080494E0 .4byte _080493F6 .4byte _080494B2 .4byte _0804946A .4byte _08049462 .4byte _08049454 .4byte _08049498 .4byte _080492DC .4byte _0804932C .4byte _08049338 .4byte _0804933C .4byte _08049340 .4byte _080494C2 .4byte _080494C2 .4byte _080494D6 .4byte _080494C2 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494DA _0804928C: cmp r5, 0 bne _08049292 b _080494E2 _08049292: movs r6, 0x46 b _080494E2 _08049296: cmp r5, 0 bne _0804929C b _080494E0 _0804929C: movs r1, 0x9E lsls r1, 1 adds r0, r3, r1 ldr r0, [r0] bl sub_8094450 cmp r0, 0 ble _080492AE b _0804948A _080492AE: b _080494E0 _080492B0: cmp r5, 0 beq _080492B6 b _0804948A _080492B6: b _080494E0 _080492B8: movs r2, 0xE ldrsh r1, [r3, r2] movs r2, 0x10 ldrsh r0, [r3, r2] cmp r1, r0 blt _080492C6 b _080494E2 _080492C6: cmp r0, 0 bge _080492CC adds r0, 0x3 _080492CC: asrs r0, 2 cmp r1, r0 ble _080492D4 b _080494E2 _080492D4: cmp r5, 0 bne _080492DA b _08049420 _080492DA: b _08049432 _080492DC: movs r6, 0 movs r0, 0x8C lsls r0, 1 adds r5, r3, r0 adds r7, r5, 0 movs r2, 0x3 _080492E8: ldrb r1, [r5] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0804930C ldrb r0, [r5, 0x4] cmp r0, 0 bne _080492FA adds r6, 0x1E _080492FA: ldrb r4, [r5, 0x4] adds r0, r7, 0 str r2, [sp] bl sub_8092BF4 ldr r2, [sp] cmp r4, r0 beq _0804930C adds r6, 0x6 _0804930C: adds r5, 0x8 adds r7, 0x8 subs r2, 0x1 cmp r2, 0 bge _080492E8 cmp r6, 0x62 bgt _0804931C b _080494E2 _0804931C: movs r6, 0x63 b _080494E2 _08049320: adds r0, r4, 0 bl sub_8070A58 lsls r0, 24 movs r6, 0 b _080494BC _0804932C: ldrb r0, [r3, 0x14] _0804932E: movs r6, 0x64 cmp r0, 0xF9 bhi _08049336 b _080494E2 _08049336: b _080494E0 _08049338: ldrb r0, [r3, 0x15] b _0804932E _0804933C: ldrb r0, [r3, 0x16] b _0804932E _08049340: ldrb r0, [r3, 0x17] b _0804932E _08049344: cmp r5, 0 beq _0804934A b _080494E0 _0804934A: adds r0, r4, 0 bl sub_80494EC lsls r0, 24 movs r6, 0x64 cmp r0, 0 bne _0804935A b _080494E2 _0804935A: movs r6, 0xA b _080494E2 _0804935E: adds r0, r4, 0 bl sub_8071884 lsls r0, 24 cmp r0, 0 beq _0804936C b _080494A2 _0804936C: adds r0, r4, 0 bl sub_80494EC lsls r0, 24 movs r6, 0x5 b _080494BC _08049378: ldr r0, [r4, 0x70] movs r1, 0x82 lsls r1, 1 adds r0, r1 ldr r0, [r0] cmp r0, 0x3 ble _08049388 b _080494A2 _08049388: adds r0, r4, 0 bl sub_80494EC lsls r0, 24 movs r6, 0x5 b _080494BC _08049394: adds r0, r3, 0 adds r0, 0xE8 ldrb r0, [r0] cmp r0, 0x2 bne _080493A0 b _080494A2 _080493A0: adds r0, r4, 0 bl sub_80494EC lsls r0, 24 movs r6, 0x5 b _080494BC _080493AC: adds r0, r3, 0 adds r0, 0xAC ldrb r0, [r0] cmp r0, 0x4 bne _080494A2 b _080494B2 _080493B8: adds r0, r3, 0 adds r0, 0xBC ldrb r0, [r0] cmp r0, 0x2 beq _080494A2 adds r0, r4, 0 bl sub_80494EC lsls r0, 24 movs r6, 0xF b _080494BC _080493CE: adds r0, r3, 0 adds r0, 0xAC ldrb r0, [r0] subs r0, 0x2 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _080494A2 b _08049420 _080493E0: adds r0, r3, 0 adds r0, 0xE8 ldrb r0, [r0] cmp r0, 0x1 beq _080494A2 adds r0, r4, 0 bl sub_80494EC lsls r0, 24 movs r6, 0x5 b _080494BC _080493F6: cmp r2, 0 bne _0804940C adds r0, r4, 0 bl sub_80494EC lsls r0, 24 movs r6, 0x5 cmp r0, 0 beq _080494E2 _08049408: movs r6, 0x28 b _080494E2 _0804940C: movs r2, 0xE ldrsh r1, [r3, r2] movs r2, 0x10 ldrsh r0, [r3, r2] cmp r1, r0 bge _080494E2 cmp r1, 0x13 bgt _080494E2 cmp r5, 0 bne _08049432 _08049420: adds r0, r4, 0 bl sub_80494EC lsls r0, 24 movs r6, 0x32 cmp r0, 0 beq _080494E2 movs r6, 0x64 b _080494E2 _08049432: movs r6, 0x32 b _080494E2 _08049436: adds r0, r3, 0 adds r0, 0xA8 ldrb r0, [r0] cmp r0, 0x1 beq _080494A2 cmp r0, 0x5 beq _080494A2 cmp r0, 0x3 beq _080494A2 adds r0, r4, 0 bl sub_80494EC lsls r0, 24 movs r6, 0x5 b _080494BC _08049454: adds r0, r3, 0 adds r0, 0xA8 ldrb r0, [r0] cmp r0, 0x2 beq _080494A2 movs r6, 0x5 b _080494E2 _08049462: ldrb r0, [r3, 0x9] movs r6, 0 cmp r0, 0x62 bhi _080494E2 _0804946A: movs r6, 0x50 b _080494E2 _0804946E: adds r0, r3, 0 adds r0, 0xAC ldrb r0, [r0] cmp r0, 0x1 beq _0804948A b _080494E0 _0804947A: movs r1, 0x9E lsls r1, 1 adds r0, r3, r1 ldr r0, [r0] bl sub_8094450 cmp r0, 0 ble _080494E0 _0804948A: movs r0, 0x32 b _080494E4 _0804948E: ldrb r0, [r3, 0x9] movs r6, 0 cmp r0, 0x1 bls _080494E2 b _0804946A _08049498: adds r0, r3, 0 adds r0, 0xB0 ldrb r0, [r0] cmp r0, 0x6 bne _080494A6 _080494A2: movs r0, 0 b _080494E4 _080494A6: adds r0, r4, 0 bl sub_80494EC lsls r0, 24 movs r6, 0x5 b _080494BC _080494B2: adds r0, r4, 0 bl sub_80494EC lsls r0, 24 movs r6, 0x1E _080494BC: cmp r0, 0 beq _080494E2 b _0804946A _080494C2: movs r2, 0x9E lsls r2, 1 adds r0, r3, r2 ldr r0, [r0] bl sub_8094450 cmp r0, 0x9 bgt _080494E0 movs r0, 0x64 b _080494E4 _080494D6: movs r6, 0x1E b _080494E2 _080494DA: movs r6, 0x14 cmp r5, 0 beq _080494E2 _080494E0: movs r6, 0 _080494E2: adds r0, r6, 0 _080494E4: add sp, 0x4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8048F28 thumb_func_start sub_80494EC sub_80494EC: push {r4-r6,lr} adds r5, r0, 0 movs r6, 0 _080494F2: movs r1, 0x4 ldrsh r0, [r5, r1] ldr r1, _08049538 lsls r2, r6, 2 adds r2, r1 movs r3, 0 ldrsh r1, [r2, r3] adds r0, r1 movs r3, 0x6 ldrsh r1, [r5, r3] movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 bl sub_804954C ldr r4, [r0, 0x10] cmp r4, 0 beq _0804953C adds r0, r4, 0 bl sub_80450F8 cmp r0, 0 beq _0804953C adds r0, r5, 0 adds r1, r4, 0 movs r2, 0 movs r3, 0x1 bl sub_8071598 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0804953C movs r0, 0x1 b _08049544 .align 2, 0 _08049538: .4byte gUnknown_80F4448 _0804953C: adds r6, 0x1 cmp r6, 0x7 ble _080494F2 movs r0, 0 _08049544: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80494EC thumb_func_start sub_804954C sub_804954C: push {lr} adds r2, r0, 0 adds r3, r1, 0 cmp r2, 0 blt _08049584 cmp r3, 0 blt _08049584 cmp r2, 0x37 bgt _08049584 cmp r3, 0x1F bgt _08049584 ldr r0, _0804957C ldr r1, [r0] lsls r2, 2 lsls r0, r3, 3 subs r0, r3 lsls r0, 5 adds r2, r0 ldr r0, _08049580 adds r1, r0 adds r1, r2 ldr r0, [r1] b _08049588 .align 2, 0 _0804957C: .4byte gUnknown_203B418 _08049580: .4byte 0x0000e8c0 _08049584: ldr r0, _0804958C ldr r0, [r0] _08049588: pop {r1} bx r1 .align 2, 0 _0804958C: .4byte gUnknown_203B430 thumb_func_end sub_804954C thumb_func_start sub_8049590 sub_8049590: push {r4,r5,lr} adds r2, r0, 0 adds r3, r1, 0 cmp r2, 0 blt _080495A6 cmp r3, 0 blt _080495A6 cmp r2, 0x37 bgt _080495A6 cmp r3, 0x1F ble _080495C0 _080495A6: ldr r0, _080495B8 ldr r1, _080495BC adds r2, r0, 0 ldr r1, [r1] ldm r1!, {r3-r5} stm r2!, {r3-r5} ldm r1!, {r3-r5} stm r2!, {r3-r5} b _080495D6 .align 2, 0 _080495B8: .4byte gUnknown_202F190 _080495BC: .4byte gUnknown_203B430 _080495C0: ldr r0, _080495DC ldr r1, [r0] lsls r2, 2 lsls r0, r3, 3 subs r0, r3 lsls r0, 5 adds r2, r0 ldr r0, _080495E0 adds r1, r0 adds r1, r2 ldr r0, [r1] _080495D6: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080495DC: .4byte gUnknown_203B418 _080495E0: .4byte 0x0000e8c0 thumb_func_end sub_8049590 thumb_func_start sub_80495E4 sub_80495E4: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} movs r2, 0 ldr r0, _08049658 mov r9, r0 mov r12, r9 ldr r7, _0804965C ldr r1, _08049660 mov r8, r1 _080495FA: lsls r1, r2, 3 lsls r0, r2, 2 adds r6, r2, 0x1 subs r1, r2 adds r0, r2 lsls r0, 2 adds r0, r2 lsls r0, 6 movs r4, 0 lsls r2, r1, 5 mov r3, r8 adds r5, r0, r3 movs r3, 0x37 _08049614: mov r1, r12 ldr r0, [r1] adds r1, r0, r7 adds r1, r2 adds r0, r5 adds r0, r4 str r0, [r1] adds r4, 0x18 adds r2, 0x4 subs r3, 0x1 cmp r3, 0 bge _08049614 adds r2, r6, 0 cmp r2, 0x1F ble _080495FA movs r2, 0 mov r3, r9 ldr r1, [r3] ldr r4, _08049664 adds r0, r1, r4 movs r3, 0 strh r2, [r0] adds r4, 0x2 adds r0, r1, r4 strh r2, [r0] ldr r0, _08049668 adds r1, r0 strb r3, [r1] pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08049658: .4byte gUnknown_203B418 _0804965C: .4byte 0x0000e8c0 _08049660: .4byte 0x00003a18 _08049664: .4byte 0x00003a0e _08049668: .4byte 0x00013570 thumb_func_end sub_80495E4 thumb_func_start sub_804966C sub_804966C: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xC ldr r1, _08049734 ldr r0, _08049738 mov r8, r0 ldr r6, _0804973C ldr r0, [r6] ldr r5, _08049740 adds r0, r5 movs r2, 0 ldrsh r0, [r0, r2] add r0, r8 ldrb r2, [r0] mov r0, sp bl sprintf ldr r7, _08049744 mov r0, sp adds r1, r7, 0 bl OpenFileAndGetFileDataPtr adds r4, r0, 0 ldr r0, _08049748 movs r1, 0 adds r2, r4, 0 bl sub_800AE28 adds r0, r4, 0 bl CloseFile ldr r1, _0804974C ldr r0, [r6] adds r0, r5 movs r3, 0 ldrsh r2, [r0, r3] mov r0, sp bl sprintf mov r0, sp adds r1, r7, 0 bl OpenFileAndGetFileDataPtr ldr r1, _08049750 str r0, [r1] ldr r1, _08049754 ldr r0, [r6] adds r0, r5 movs r4, 0 ldrsh r0, [r0, r4] add r0, r8 ldrb r2, [r0] mov r0, sp bl sprintf mov r0, sp adds r1, r7, 0 bl OpenFileAndGetFileDataPtr adds r4, r0, 0 ldr r0, [r6] ldr r1, _08049758 adds r0, r1 ldr r1, _0804975C adds r2, r4, 0 bl sub_800AAA8 adds r0, r4, 0 bl CloseFile ldr r0, [r6] adds r2, r0, r5 movs r3, 0 ldrsh r0, [r2, r3] cmp r0, 0x3F bgt _08049768 ldr r1, _08049760 add r0, r8 ldrb r2, [r0] mov r0, sp bl sprintf mov r0, sp adds r1, r7, 0 bl OpenFileAndGetFileDataPtr adds r4, r0, 0 ldr r0, [r6] ldr r1, _08049764 adds r0, r1 movs r1, 0x93 lsls r1, 4 adds r2, r4, 0 bl sub_800AAA8 adds r0, r4, 0 bl CloseFile b _08049794 .align 2, 0 _08049734: .4byte gUnknown_80F6A04 _08049738: .4byte gUnknown_8108EC0 _0804973C: .4byte gUnknown_203B418 _08049740: .4byte 0x00003a0e _08049744: .4byte gUnknown_83B0000 _08049748: .4byte 0x06008000 _0804974C: .4byte gUnknown_80F6A10 _08049750: .4byte gUnknown_202EE88 _08049754: .4byte gUnknown_80F6A1C _08049758: .4byte 0x00011884 _0804975C: .4byte 0x00001194 _08049760: .4byte gUnknown_80F6A28 _08049764: .4byte 0x00012c24 _08049768: ldr r1, _080497E8 movs r3, 0 ldrsh r2, [r2, r3] mov r0, sp bl sprintf mov r0, sp adds r1, r7, 0 bl OpenFileAndGetFileDataPtr adds r4, r0, 0 ldr r0, [r6] ldr r1, _080497EC adds r0, r1 movs r1, 0x90 lsls r1, 2 adds r2, r4, 0 bl sub_800AAA8 adds r0, r4, 0 bl CloseFile _08049794: ldr r1, _080497F0 ldr r5, _080497F4 ldr r0, [r5] ldr r4, _080497F8 adds r0, r4 movs r3, 0 ldrsh r2, [r0, r3] mov r0, sp bl sprintf ldr r1, _080497FC mov r0, sp bl OpenFileAndGetFileDataPtr adds r1, r0, 0 ldr r0, _08049800 str r1, [r0] ldr r0, _08049804 movs r2, 0x20 bl sub_8004AA4 ldr r2, _08049808 movs r6, 0 strb r6, [r2] movs r3, 0x1 strb r3, [r2, 0x1] movs r0, 0x2 strb r0, [r2, 0x2] movs r0, 0x3 strb r0, [r2, 0x3] ldr r1, _0804980C ldr r0, [r5] adds r0, r4 movs r4, 0 ldrsh r0, [r0, r4] adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 bne _08049810 strb r3, [r2, 0x4] strb r6, [r2, 0x5] b _08049814 .align 2, 0 _080497E8: .4byte gUnknown_80F6A34 _080497EC: .4byte 0x00012c24 _080497F0: .4byte gUnknown_80F6A40 _080497F4: .4byte gUnknown_203B418 _080497F8: .4byte 0x00003a0e _080497FC: .4byte gUnknown_83B0000 _08049800: .4byte gUnknown_202F18C _08049804: .4byte gUnknown_202EE8C _08049808: .4byte gUnknown_202F314 _0804980C: .4byte gUnknown_810ACC0 _08049810: strb r6, [r2, 0x4] strb r3, [r2, 0x5] _08049814: add sp, 0xC pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_804966C thumb_func_start sub_8049820 sub_8049820: push {lr} ldr r0, _08049838 ldr r0, [r0] bl CloseFile ldr r0, _0804983C ldr r0, [r0] bl CloseFile pop {r0} bx r0 .align 2, 0 _08049838: .4byte gUnknown_202F18C _0804983C: .4byte gUnknown_202EE88 thumb_func_end sub_8049820 thumb_func_start sub_8049840 sub_8049840: push {lr} ldr r0, _08049860 ldr r0, [r0] ldr r1, _08049864 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] bl sub_8043CE4 lsls r0, 24 cmp r0, 0 beq _08049870 ldr r1, _08049868 ldr r0, _0804986C b _08049874 .align 2, 0 _08049860: .4byte gUnknown_203B418 _08049864: .4byte 0x00003a0e _08049868: .4byte gUnknown_203B430 _0804986C: .4byte gUnknown_80F69EC _08049870: ldr r1, _0804987C ldr r0, _08049880 _08049874: str r0, [r1] pop {r0} bx r0 .align 2, 0 _0804987C: .4byte gUnknown_203B430 _08049880: .4byte gUnknown_80F69D4 thumb_func_end sub_8049840 thumb_func_start sub_8049884 sub_8049884: push {r4-r6,lr} movs r5, 0 _08049888: movs r4, 0 adds r6, r5, 0x1 _0804988C: adds r0, r4, 0 adds r1, r5, 0 bl sub_80498A8 adds r4, 0x1 cmp r4, 0x37 ble _0804988C adds r5, r6, 0 cmp r5, 0x1F ble _08049888 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8049884 thumb_func_start sub_80498A8 sub_80498A8: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x28 mov r10, r0 mov r9, r1 cmp r0, 0 bge _080498BE b _08049B72 _080498BE: cmp r1, 0 bge _080498C4 b _08049B72 _080498C4: cmp r0, 0x37 ble _080498CA b _08049B72 _080498CA: cmp r1, 0x1F ble _080498D0 b _08049B72 _080498D0: movs r7, 0 bl sub_804954C ldrh r0, [r0] movs r1, 0x3 mov r8, r1 mov r6, r8 ands r6, r0 str r6, [sp, 0x20] ldr r4, _08049914 ldr r0, [r4] ldr r3, _08049918 adds r0, r3 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0x3F ble _08049928 mov r3, r10 cmp r3, 0x17 bgt _0804991C mov r0, r9 cmp r0, 0x17 bgt _0804991C mov r0, r10 mov r1, r9 bl sub_8049590 ldr r2, [r4] mov r3, r9 lsls r1, r3, 1 add r1, r9 lsls r1, 3 add r1, r10 b _08049B68 .align 2, 0 _08049914: .4byte gUnknown_203B418 _08049918: .4byte 0x00003a0e _0804991C: mov r0, r10 mov r1, r9 bl sub_8049590 movs r1, 0 b _08049B70 _08049928: mov r0, r9 adds r0, 0x1 str r0, [sp, 0x24] mov r0, r10 ldr r1, [sp, 0x24] bl sub_804954C ldrh r1, [r0] mov r0, r8 ands r0, r1 str r0, [sp] mov r4, r10 adds r4, 0x1 adds r0, r4, 0 ldr r1, [sp, 0x24] bl sub_804954C ldrh r1, [r0] mov r0, r8 ands r0, r1 str r0, [sp, 0x4] adds r0, r4, 0 mov r1, r9 bl sub_804954C ldrh r1, [r0] mov r0, r8 ands r0, r1 str r0, [sp, 0x8] mov r5, r9 subs r5, 0x1 adds r0, r4, 0 adds r1, r5, 0 bl sub_804954C ldrh r1, [r0] mov r0, r8 ands r0, r1 str r0, [sp, 0xC] mov r0, r10 adds r1, r5, 0 bl sub_804954C ldrh r1, [r0] mov r0, r8 ands r0, r1 str r0, [sp, 0x10] subs r4, 0x2 adds r0, r4, 0 adds r1, r5, 0 bl sub_804954C ldrh r1, [r0] mov r0, r8 ands r0, r1 str r0, [sp, 0x14] adds r0, r4, 0 mov r1, r9 bl sub_804954C ldrh r1, [r0] mov r0, r8 ands r0, r1 str r0, [sp, 0x18] adds r0, r4, 0 ldr r1, [sp, 0x24] bl sub_804954C ldrh r0, [r0] mov r1, r8 ands r1, r0 str r1, [sp, 0x1C] cmp r6, 0x1 bne _08049A1E movs r7, 0xFF ldr r0, [sp] cmp r0, 0 bne _080499C6 movs r7, 0xFE _080499C6: ldr r0, [sp, 0x4] cmp r0, 0 bne _080499D2 movs r0, 0x3 negs r0, r0 ands r7, r0 _080499D2: ldr r0, [sp, 0x8] cmp r0, 0 bne _080499DE movs r0, 0x5 negs r0, r0 ands r7, r0 _080499DE: ldr r0, [sp, 0xC] cmp r0, 0 bne _080499EA movs r0, 0x9 negs r0, r0 ands r7, r0 _080499EA: ldr r0, [sp, 0x10] cmp r0, 0 bne _080499F6 movs r0, 0x11 negs r0, r0 ands r7, r0 _080499F6: ldr r0, [sp, 0x14] cmp r0, 0 bne _08049A02 movs r0, 0x21 negs r0, r0 ands r7, r0 _08049A02: ldr r0, [sp, 0x18] cmp r0, 0 bne _08049A0E movs r0, 0x41 negs r0, r0 ands r7, r0 _08049A0E: cmp r1, 0 bne _08049A18 movs r0, 0x81 negs r0, r0 ands r7, r0 _08049A18: movs r0, 0x80 lsls r0, 2 b _08049B3A _08049A1E: cmp r6, 0x2 bne _08049A84 movs r7, 0xFF ldr r0, [sp] cmp r0, 0x2 beq _08049A2C movs r7, 0xFE _08049A2C: ldr r0, [sp, 0x4] cmp r0, 0x2 beq _08049A38 movs r0, 0x3 negs r0, r0 ands r7, r0 _08049A38: ldr r0, [sp, 0x8] cmp r0, 0x2 beq _08049A44 movs r0, 0x5 negs r0, r0 ands r7, r0 _08049A44: ldr r0, [sp, 0xC] cmp r0, 0x2 beq _08049A50 movs r0, 0x9 negs r0, r0 ands r7, r0 _08049A50: ldr r0, [sp, 0x10] cmp r0, 0x2 beq _08049A5C movs r0, 0x11 negs r0, r0 ands r7, r0 _08049A5C: ldr r0, [sp, 0x14] cmp r0, 0x2 beq _08049A68 movs r0, 0x21 negs r0, r0 ands r7, r0 _08049A68: ldr r0, [sp, 0x18] cmp r0, 0x2 beq _08049A74 movs r0, 0x41 negs r0, r0 ands r7, r0 _08049A74: cmp r1, 0x2 beq _08049A7E movs r0, 0x81 negs r0, r0 ands r7, r0 _08049A7E: movs r0, 0x80 lsls r0, 1 b _08049B3A _08049A84: ldr r1, [sp, 0x20] cmp r1, 0x3 bne _08049AEE movs r7, 0xFF ldr r0, [sp] cmp r0, 0x3 beq _08049A94 movs r7, 0xFE _08049A94: ldr r0, [sp, 0x4] cmp r0, 0x3 beq _08049AA0 movs r0, 0x3 negs r0, r0 ands r7, r0 _08049AA0: ldr r0, [sp, 0x8] cmp r0, 0x3 beq _08049AAC movs r0, 0x5 negs r0, r0 ands r7, r0 _08049AAC: ldr r0, [sp, 0xC] cmp r0, 0x3 beq _08049AB8 movs r0, 0x9 negs r0, r0 ands r7, r0 _08049AB8: ldr r0, [sp, 0x10] cmp r0, 0x3 beq _08049AC4 movs r0, 0x11 negs r0, r0 ands r7, r0 _08049AC4: ldr r0, [sp, 0x14] cmp r0, 0x3 beq _08049AD0 movs r0, 0x21 negs r0, r0 ands r7, r0 _08049AD0: ldr r0, [sp, 0x18] cmp r0, 0x3 beq _08049ADC movs r0, 0x41 negs r0, r0 ands r7, r0 _08049ADC: ldr r0, [sp, 0x1C] cmp r0, 0x3 beq _08049AE8 movs r0, 0x81 negs r0, r0 ands r7, r0 _08049AE8: movs r0, 0x80 lsls r0, 1 b _08049B3A _08049AEE: ldr r0, [sp] cmp r0, 0 bne _08049AF6 movs r7, 0x1 _08049AF6: ldr r0, [sp, 0x4] cmp r0, 0 bne _08049B00 movs r0, 0x2 orrs r7, r0 _08049B00: ldr r0, [sp, 0x8] cmp r0, 0 bne _08049B0A movs r0, 0x4 orrs r7, r0 _08049B0A: ldr r0, [sp, 0xC] cmp r0, 0 bne _08049B14 movs r0, 0x8 orrs r7, r0 _08049B14: ldr r0, [sp, 0x10] cmp r0, 0 bne _08049B1E movs r0, 0x10 orrs r7, r0 _08049B1E: ldr r0, [sp, 0x14] cmp r0, 0 bne _08049B28 movs r0, 0x20 orrs r7, r0 _08049B28: ldr r0, [sp, 0x18] cmp r0, 0 bne _08049B32 movs r0, 0x40 orrs r7, r0 _08049B32: ldr r0, [sp, 0x1C] cmp r0, 0 bne _08049B3C movs r0, 0x80 _08049B3A: orrs r7, r0 _08049B3C: movs r0, 0x4 bl RandomCapped adds r4, r0, 0 cmp r4, 0x3 bne _08049B4A movs r4, 0 _08049B4A: bl sub_80441BC lsls r0, 24 cmp r0, 0 beq _08049B56 movs r4, 0 _08049B56: mov r0, r10 mov r1, r9 bl sub_8049590 ldr r1, _08049B84 ldr r2, [r1] lsls r1, r7, 1 adds r1, r7 adds r1, r4, r1 _08049B68: ldr r3, _08049B88 adds r2, r3 adds r2, r1 ldrb r1, [r2] _08049B70: strb r1, [r0, 0x8] _08049B72: add sp, 0x28 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08049B84: .4byte gUnknown_203B418 _08049B88: .4byte 0x00012c24 thumb_func_end sub_80498A8 thumb_func_start sub_8049B8C sub_8049B8C: push {r4-r6,lr} movs r5, 0 _08049B90: movs r4, 0 adds r6, r5, 0x1 _08049B94: adds r0, r4, 0 adds r1, r5, 0 bl sub_8049BB0 adds r4, 0x1 cmp r4, 0x37 ble _08049B94 adds r5, r6, 0 cmp r5, 0x1F ble _08049B90 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8049B8C thumb_func_start sub_8049BB0 sub_8049BB0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x44 mov r10, r0 str r1, [sp, 0x40] movs r0, 0 str r0, [sp] str r0, [sp, 0x4] str r0, [sp, 0x8] str r0, [sp, 0xC] adds r0, r1, 0 adds r0, 0x1 mov r9, r0 mov r0, r10 mov r1, r9 bl sub_804954C ldrh r1, [r0] movs r4, 0x3 adds r0, r4, 0 ands r0, r1 add r6, sp, 0x18 str r0, [sp, 0x18] mov r5, r10 adds r5, 0x1 adds r0, r5, 0 mov r1, r9 bl sub_804954C ldrh r1, [r0] adds r0, r4, 0 ands r0, r1 str r0, [r6, 0x4] adds r0, r5, 0 ldr r1, [sp, 0x40] bl sub_804954C ldrh r1, [r0] adds r0, r4, 0 ands r0, r1 str r0, [r6, 0x8] ldr r0, [sp, 0x40] subs r0, 0x1 mov r8, r0 adds r0, r5, 0 mov r1, r8 bl sub_804954C ldrh r1, [r0] adds r0, r4, 0 ands r0, r1 str r0, [r6, 0xC] mov r0, r10 mov r1, r8 bl sub_804954C ldrh r1, [r0] adds r0, r4, 0 ands r0, r1 str r0, [r6, 0x10] subs r5, 0x2 adds r0, r5, 0 mov r1, r8 bl sub_804954C ldrh r1, [r0] adds r0, r4, 0 ands r0, r1 str r0, [r6, 0x14] adds r0, r5, 0 ldr r1, [sp, 0x40] bl sub_804954C ldrh r1, [r0] adds r0, r4, 0 ands r0, r1 str r0, [r6, 0x18] adds r0, r5, 0 mov r1, r9 bl sub_804954C ldrh r0, [r0] ands r4, r0 str r4, [r6, 0x1C] ldr r1, [sp, 0x18] cmp r1, 0x1 bne _08049C6A ldr r0, [sp] orrs r0, r1 str r0, [sp] _08049C6A: ldr r0, [r6, 0x8] cmp r0, 0x1 bne _08049C78 ldr r0, [sp] movs r1, 0x4 orrs r0, r1 str r0, [sp] _08049C78: ldr r0, [r6, 0x10] cmp r0, 0x1 bne _08049C86 ldr r0, [sp] movs r1, 0x10 orrs r0, r1 str r0, [sp] _08049C86: ldr r0, [r6, 0x18] cmp r0, 0x1 bne _08049C94 ldr r0, [sp] movs r1, 0x40 orrs r0, r1 str r0, [sp] _08049C94: ldr r2, [sp, 0x18] cmp r2, 0 beq _08049CAE ldr r0, [r6, 0x4] cmp r0, 0x1 bne _08049CAE ldr r0, [r6, 0x8] cmp r0, 0 beq _08049CC8 ldr r0, [sp] movs r1, 0x2 orrs r0, r1 str r0, [sp] _08049CAE: ldr r0, [r6, 0x8] cmp r0, 0 beq _08049CC8 ldr r0, [r6, 0xC] cmp r0, 0x1 bne _08049CC8 ldr r0, [r6, 0x10] cmp r0, 0 beq _08049CE2 ldr r0, [sp] movs r1, 0x8 orrs r0, r1 str r0, [sp] _08049CC8: ldr r0, [r6, 0x10] cmp r0, 0 beq _08049CE2 ldr r0, [r6, 0x14] cmp r0, 0x1 bne _08049CE2 ldr r0, [r6, 0x18] cmp r0, 0 beq _08049CFA ldr r0, [sp] movs r1, 0x20 orrs r0, r1 str r0, [sp] _08049CE2: ldr r0, [r6, 0x18] cmp r0, 0 beq _08049CFA ldr r0, [r6, 0x1C] cmp r0, 0x1 bne _08049CFA cmp r2, 0 beq _08049CFA ldr r0, [sp] movs r1, 0x80 orrs r0, r1 str r0, [sp] _08049CFA: add r4, sp, 0x38 movs r7, 0x1 adds r2, r4, 0 adds r1, r6, 0 movs r5, 0 movs r3, 0x7 _08049D06: ldr r0, [r1] subs r0, 0x1 cmp r0, 0x1 bhi _08049D12 strb r7, [r2] b _08049D14 _08049D12: strb r5, [r2] _08049D14: adds r2, 0x1 adds r1, 0x4 subs r3, 0x1 cmp r3, 0 bge _08049D06 ldrb r0, [r4] cmp r0, 0 beq _08049D2C ldr r0, [sp, 0x4] movs r1, 0x1 orrs r0, r1 str r0, [sp, 0x4] _08049D2C: ldrb r0, [r4, 0x2] cmp r0, 0 beq _08049D3A ldr r0, [sp, 0x4] movs r1, 0x4 orrs r0, r1 str r0, [sp, 0x4] _08049D3A: ldrb r0, [r4, 0x4] cmp r0, 0 beq _08049D48 ldr r0, [sp, 0x4] movs r1, 0x10 orrs r0, r1 str r0, [sp, 0x4] _08049D48: ldrb r0, [r4, 0x6] cmp r0, 0 beq _08049D56 ldr r0, [sp, 0x4] movs r1, 0x40 orrs r0, r1 str r0, [sp, 0x4] _08049D56: ldr r2, [sp, 0x18] cmp r2, 0 beq _08049D70 ldrb r0, [r4, 0x1] cmp r0, 0 beq _08049D70 ldr r0, [r6, 0x8] cmp r0, 0 beq _08049D8A ldr r0, [sp, 0x4] movs r1, 0x2 orrs r0, r1 str r0, [sp, 0x4] _08049D70: ldr r0, [r6, 0x8] cmp r0, 0 beq _08049D8A ldrb r0, [r4, 0x3] cmp r0, 0 beq _08049D8A ldr r0, [r6, 0x10] cmp r0, 0 beq _08049DA4 ldr r0, [sp, 0x4] movs r1, 0x8 orrs r0, r1 str r0, [sp, 0x4] _08049D8A: ldr r0, [r6, 0x10] cmp r0, 0 beq _08049DA4 ldrb r0, [r4, 0x5] cmp r0, 0 beq _08049DA4 ldr r0, [r6, 0x18] cmp r0, 0 beq _08049DBC ldr r0, [sp, 0x4] movs r1, 0x20 orrs r0, r1 str r0, [sp, 0x4] _08049DA4: ldr r0, [r6, 0x18] cmp r0, 0 beq _08049DBC ldrb r0, [r4, 0x7] cmp r0, 0 beq _08049DBC cmp r2, 0 beq _08049DC8 ldr r0, [sp, 0x4] movs r1, 0x80 orrs r0, r1 str r0, [sp, 0x4] _08049DBC: cmp r2, 0 beq _08049DC8 ldr r0, [sp, 0x8] movs r1, 0x1 orrs r0, r1 str r0, [sp, 0x8] _08049DC8: ldr r0, [r6, 0x8] cmp r0, 0 beq _08049DD6 ldr r0, [sp, 0x8] movs r1, 0x4 orrs r0, r1 str r0, [sp, 0x8] _08049DD6: ldr r0, [r6, 0x10] cmp r0, 0 beq _08049DE4 ldr r0, [sp, 0x8] movs r1, 0x10 orrs r0, r1 str r0, [sp, 0x8] _08049DE4: ldr r0, [r6, 0x18] cmp r0, 0 beq _08049DF2 ldr r0, [sp, 0x8] movs r1, 0x40 orrs r0, r1 str r0, [sp, 0x8] _08049DF2: cmp r2, 0 beq _08049E0A ldr r0, [r6, 0x4] cmp r0, 0 beq _08049E0A ldr r0, [r6, 0x8] cmp r0, 0 beq _08049E24 ldr r0, [sp, 0x8] movs r1, 0x2 orrs r0, r1 str r0, [sp, 0x8] _08049E0A: ldr r0, [r6, 0x8] cmp r0, 0 beq _08049E24 ldr r0, [r6, 0xC] cmp r0, 0 beq _08049E24 ldr r0, [r6, 0x10] cmp r0, 0 beq _08049E3E ldr r0, [sp, 0x8] movs r1, 0x8 orrs r0, r1 str r0, [sp, 0x8] _08049E24: ldr r0, [r6, 0x10] cmp r0, 0 beq _08049E3E ldr r0, [r6, 0x14] cmp r0, 0 beq _08049E3E ldr r0, [r6, 0x18] cmp r0, 0 beq _08049E56 ldr r0, [sp, 0x8] movs r1, 0x20 orrs r0, r1 str r0, [sp, 0x8] _08049E3E: ldr r0, [r6, 0x18] cmp r0, 0 beq _08049E56 ldr r0, [r6, 0x1C] cmp r0, 0 beq _08049E56 cmp r2, 0 beq _08049E56 ldr r0, [sp, 0x8] movs r1, 0x80 orrs r0, r1 str r0, [sp, 0x8] _08049E56: movs r0, 0xFF str r0, [sp, 0xC] mov r0, r10 cmp r0, 0x1 bgt _08049E64 movs r0, 0x1F str r0, [sp, 0xC] _08049E64: ldr r0, [sp, 0x40] cmp r0, 0x1 bgt _08049E74 ldr r0, [sp, 0xC] movs r1, 0x39 negs r1, r1 ands r0, r1 str r0, [sp, 0xC] _08049E74: mov r0, r10 cmp r0, 0x35 ble _08049E84 ldr r0, [sp, 0xC] movs r1, 0xF negs r1, r1 ands r0, r1 str r0, [sp, 0xC] _08049E84: ldr r0, [sp, 0x40] cmp r0, 0x1D ble _08049E94 ldr r0, [sp, 0xC] movs r1, 0x84 negs r1, r1 ands r0, r1 str r0, [sp, 0xC] _08049E94: mov r0, r10 ldr r1, [sp, 0x40] bl sub_8049590 ldr r1, [sp] strb r1, [r0, 0xA] mov r0, r10 ldr r1, [sp, 0x40] bl sub_8049590 ldr r1, [sp, 0x4] strb r1, [r0, 0xB] mov r0, r10 ldr r1, [sp, 0x40] bl sub_8049590 ldr r1, [sp, 0x8] strb r1, [r0, 0xC] mov r0, r10 ldr r1, [sp, 0x40] bl sub_8049590 ldr r1, [sp, 0xC] strb r1, [r0, 0xD] add sp, 0x44 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8049BB0 thumb_func_start sub_8049ED4 sub_8049ED4: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x38 ldr r0, _08049F78 ldr r6, [r0] ldr r1, _08049F7C adds r0, r6, r1 ldrb r0, [r0] str r0, [sp] ldr r2, _08049F80 adds r0, r6, r2 ldrb r0, [r0] str r0, [sp, 0x4] ldr r4, _08049F84 adds r0, r6, r4 ldrh r0, [r0] lsls r0, 16 asrs r3, r0, 19 ldr r1, _08049F88 adds r0, r3, 0 adds r0, 0x1E lsls r0, 1 adds r1, r0, r1 movs r4, 0 ldrsh r2, [r1, r4] mov r10, r2 ldr r1, _08049F8C adds r0, r1 movs r2, 0 ldrsh r1, [r0, r2] str r1, [sp, 0x10] movs r4, 0 str r4, [sp, 0x8] _08049F1C: ldr r1, _08049F90 adds r0, r6, r1 ldrh r0, [r0] lsls r0, 16 asrs r0, 19 subs r2, r0, 0x1 mov r9, r2 movs r1, 0x1F ands r3, r1 ldr r1, _08049F88 adds r0, 0x1D lsls r0, 1 adds r1, r0, r1 movs r2, 0 ldrsh r4, [r1, r2] mov r8, r4 ldr r1, _08049F8C adds r0, r1 movs r1, 0 ldrsh r4, [r0, r1] str r4, [sp, 0x14] mov r2, r8 lsls r0, r2, 1 add r0, r8 mov r4, r10 adds r7, r4, r0 ldr r0, [sp, 0x10] ldr r1, [sp, 0x14] str r3, [sp, 0x34] bl sub_804954C adds r5, r0, 0 ldrh r2, [r5] movs r1, 0x80 lsls r1, 5 adds r0, r1, 0 ands r0, r2 ldr r3, [sp, 0x34] cmp r0, 0 beq _08049F98 lsls r0, r7, 1 ldr r2, _08049F94 adds r0, r2 adds r2, r6, r0 b _0804A06A .align 2, 0 _08049F78: .4byte gUnknown_203B418 _08049F7C: .4byte 0x00018210 _08049F80: .4byte 0x0001820f _08049F84: .4byte 0x000181f0 _08049F88: .4byte gUnknown_80F6A4A _08049F8C: .4byte gUnknown_80F6C06 _08049F90: .4byte 0x000181f2 _08049F94: .4byte 0x00012bec _08049F98: movs r0, 0x20 ands r0, r2 cmp r0, 0 beq _08049FAC lsls r0, r7, 1 ldr r4, _08049FA8 b _08049FD2 .align 2, 0 _08049FA8: .4byte 0x00012bda _08049FAC: ldr r0, [sp] cmp r0, 0 beq _08049FC4 ldrb r0, [r5, 0x8] lsls r1, r0, 3 adds r1, r0 lsls r1, 1 ldr r2, _08049FC0 adds r1, r2 b _0804A064 .align 2, 0 _08049FC0: .4byte 0x00011884 _08049FC4: ldrh r1, [r5, 0x4] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08049FDC lsls r0, r7, 1 ldr r4, _08049FD8 _08049FD2: adds r0, r4 adds r2, r6, r0 b _0804A06A .align 2, 0 _08049FD8: .4byte 0x00012bfe _08049FDC: ldr r4, [r5, 0x14] cmp r4, 0 beq _0804A028 adds r0, r4, 0 str r3, [sp, 0x34] bl sub_80450F8 ldr r3, [sp, 0x34] cmp r0, 0x2 bne _0804A014 adds r0, r4, 0 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0 bne _0804A000 ldr r0, [sp, 0x4] cmp r0, 0 beq _0804A014 _0804A000: ldr r0, [r4, 0x70] ldrb r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 1 ldr r1, _0804A010 adds r0, r1 b _0804A046 .align 2, 0 _0804A010: .4byte 0x00012a18 _0804A014: ldrb r0, [r5, 0x8] lsls r1, r0, 3 adds r1, r0 lsls r1, 1 ldr r2, _0804A024 adds r1, r2 b _0804A064 .align 2, 0 _0804A024: .4byte 0x00011884 _0804A028: movs r4, 0x80 lsls r4, 2 adds r0, r4, 0 ands r0, r2 cmp r0, 0 beq _0804A058 ldr r1, _0804A050 adds r0, r6, r1 movs r2, 0 ldrsh r1, [r0, r2] lsls r0, r1, 3 adds r0, r1 lsls r0, 1 ldr r4, _0804A054 adds r0, r4 _0804A046: adds r0, r6, r0 lsls r1, r7, 1 adds r2, r0, r1 b _0804A06A .align 2, 0 _0804A050: .4byte 0x00003a12 _0804A054: .4byte 0x00012a18 _0804A058: ldrb r0, [r5, 0x8] lsls r1, r0, 3 adds r1, r0 lsls r1, 1 ldr r0, _0804A0E8 adds r1, r0 _0804A064: adds r1, r6, r1 lsls r0, r7, 1 adds r2, r1, r0 _0804A06A: lsls r1, r3, 1 str r1, [sp, 0x30] adds r3, 0x1 str r3, [sp, 0x2C] mov r4, r10 adds r4, 0x1 str r4, [sp, 0x28] ldr r0, [sp, 0x8] adds r0, 0x1 str r0, [sp, 0x24] mov r1, r10 lsls r3, r1, 1 ldr r4, _0804A0EC adds r4, r3, r4 str r4, [sp, 0x18] ldr r0, _0804A0F0 adds r0, r3, r0 str r0, [sp, 0x1C] ldr r1, _0804A0F4 adds r1, r3, r1 str r1, [sp, 0x20] movs r4, 0x16 str r4, [sp, 0xC] _0804A098: movs r0, 0x1F mov r1, r9 ands r1, r0 mov r9, r1 lsls r0, r1, 6 ldr r4, [sp, 0x30] adds r0, r4, r0 ldr r1, _0804A0F8 adds r0, r1 ldrh r1, [r2] strh r1, [r0] adds r2, 0x6 movs r4, 0x1 add r9, r4 add r8, r4 mov r0, r8 cmp r0, 0x3 bne _0804A1AC movs r1, 0 mov r8, r1 ldr r2, [sp, 0x14] adds r2, 0x1 str r2, [sp, 0x14] mov r7, r10 ldr r0, [sp, 0x10] adds r1, r2, 0 str r3, [sp, 0x34] bl sub_804954C adds r5, r0, 0 ldrh r2, [r5] movs r0, 0x20 ands r0, r2 ldr r3, [sp, 0x34] cmp r0, 0 beq _0804A0FC ldr r4, [sp, 0x18] adds r2, r6, r4 b _0804A1AC .align 2, 0 _0804A0E8: .4byte 0x00011884 _0804A0EC: .4byte 0x00012bda _0804A0F0: .4byte 0x00012bec _0804A0F4: .4byte 0x00012bfe _0804A0F8: .4byte gUnknown_202C838 _0804A0FC: movs r1, 0x80 lsls r1, 5 adds r0, r1, 0 ands r0, r2 cmp r0, 0 beq _0804A10E ldr r4, [sp, 0x1C] adds r2, r6, r4 b _0804A1AC _0804A10E: ldr r0, [sp] cmp r0, 0 bne _0804A19C ldrh r1, [r5, 0x4] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _0804A124 ldr r4, [sp, 0x20] adds r2, r6, r4 b _0804A1AC _0804A124: ldr r4, [r5, 0x14] cmp r4, 0 beq _0804A174 adds r0, r4, 0 str r3, [sp, 0x34] bl sub_80450F8 ldr r3, [sp, 0x34] cmp r0, 0x2 bne _0804A15C adds r0, r4, 0 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0 bne _0804A148 ldr r0, [sp, 0x4] cmp r0, 0 beq _0804A15C _0804A148: ldr r0, [r4, 0x70] ldrb r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 1 ldr r1, _0804A158 b _0804A1A6 .align 2, 0 _0804A158: .4byte 0x00012a18 _0804A15C: ldrb r0, [r5, 0x8] lsls r1, r0, 3 adds r1, r0 lsls r1, 1 ldr r2, _0804A170 adds r1, r2 adds r1, r6, r1 lsls r0, r7, 1 adds r2, r1, r0 b _0804A1AC .align 2, 0 _0804A170: .4byte 0x00011884 _0804A174: movs r4, 0x80 lsls r4, 2 adds r0, r4, 0 ands r0, r2 cmp r0, 0 beq _0804A19C ldr r1, _0804A194 adds r0, r6, r1 movs r2, 0 ldrsh r1, [r0, r2] lsls r0, r1, 3 adds r0, r1 lsls r0, 1 ldr r4, _0804A198 adds r0, r4 b _0804A1A8 .align 2, 0 _0804A194: .4byte 0x00003a12 _0804A198: .4byte 0x00012a18 _0804A19C: ldrb r1, [r5, 0x8] lsls r0, r1, 3 adds r0, r1 lsls r0, 1 ldr r1, _0804A1EC _0804A1A6: adds r0, r1 _0804A1A8: adds r0, r6, r0 adds r2, r0, r3 _0804A1AC: ldr r4, [sp, 0xC] subs r4, 0x1 str r4, [sp, 0xC] cmp r4, 0 blt _0804A1B8 b _0804A098 _0804A1B8: ldr r3, [sp, 0x2C] ldr r0, [sp, 0x28] mov r10, r0 cmp r0, 0x3 bne _0804A1CC movs r1, 0 mov r10, r1 ldr r2, [sp, 0x10] adds r2, 0x1 str r2, [sp, 0x10] _0804A1CC: ldr r4, [sp, 0x24] str r4, [sp, 0x8] cmp r4, 0x1E bgt _0804A1D6 b _08049F1C _0804A1D6: movs r0, 0x3 bl sub_80098F8 add sp, 0x38 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804A1EC: .4byte 0x00011884 thumb_func_end sub_8049ED4 thumb_func_start sub_804A1F0 sub_804A1F0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x18 ldr r2, _0804A284 ldr r7, [r2] ldr r3, _0804A288 adds r2, r7, r3 ldrb r2, [r2] str r2, [sp] ldr r4, _0804A28C adds r2, r7, r4 ldrb r2, [r2] str r2, [sp, 0x4] ldr r5, _0804A290 adds r2, r7, r5 movs r3, 0 ldrsh r2, [r2, r3] adds r2, r0 subs r4, 0x1D adds r0, r7, r4 movs r5, 0 ldrsh r0, [r0, r5] adds r0, r1 asrs r0, 3 asrs r2, 3 str r2, [sp, 0x14] subs r1, r0, 0x1 mov r9, r1 ldr r3, _0804A294 adds r1, r2, 0 adds r1, 0x1E lsls r1, 1 adds r2, r1, r3 movs r5, 0 ldrsh r4, [r2, r5] str r4, [sp, 0x10] ldr r2, _0804A298 adds r1, r2 movs r5, 0 ldrsh r4, [r1, r5] str r4, [sp, 0xC] adds r0, 0x1D lsls r0, 1 adds r3, r0, r3 movs r4, 0 ldrsh r1, [r3, r4] mov r8, r1 adds r0, r2 movs r1, 0 ldrsh r5, [r0, r1] mov r10, r5 mov r2, r8 lsls r0, r2, 1 add r0, r8 ldr r3, [sp, 0x10] adds r6, r3, r0 ldr r0, [sp, 0xC] mov r1, r10 bl sub_804954C adds r5, r0, 0 ldrh r1, [r5] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _0804A2A0 lsls r0, r6, 1 ldr r4, _0804A29C adds r0, r4 adds r2, r7, r0 b _0804A356 .align 2, 0 _0804A284: .4byte gUnknown_203B418 _0804A288: .4byte 0x00018210 _0804A28C: .4byte 0x0001820f _0804A290: .4byte 0x000181f0 _0804A294: .4byte gUnknown_80F6A4A _0804A298: .4byte gUnknown_80F6C06 _0804A29C: .4byte 0x00012bda _0804A2A0: movs r0, 0x80 lsls r0, 5 ands r0, r1 cmp r0, 0 beq _0804A2B8 lsls r0, r6, 1 ldr r5, _0804A2B4 adds r0, r5 adds r2, r7, r0 b _0804A356 .align 2, 0 _0804A2B4: .4byte 0x00012bec _0804A2B8: ldr r0, [sp] cmp r0, 0 beq _0804A2D0 ldrb r0, [r5, 0x8] lsls r1, r0, 3 adds r1, r0 lsls r1, 1 ldr r2, _0804A2CC adds r1, r2 b _0804A350 .align 2, 0 _0804A2CC: .4byte 0x00011884 _0804A2D0: ldr r4, [r5, 0x14] cmp r4, 0 beq _0804A318 adds r0, r4, 0 bl sub_80450F8 cmp r0, 0x2 bne _0804A304 adds r0, r4, 0 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0 bne _0804A2F0 ldr r3, [sp, 0x4] cmp r3, 0 beq _0804A304 _0804A2F0: ldr r0, [r4, 0x70] ldrb r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 1 ldr r4, _0804A300 adds r0, r4 b _0804A334 .align 2, 0 _0804A300: .4byte 0x00012a18 _0804A304: ldrb r0, [r5, 0x8] lsls r1, r0, 3 adds r1, r0 lsls r1, 1 ldr r5, _0804A314 adds r1, r5 b _0804A350 .align 2, 0 _0804A314: .4byte 0x00011884 _0804A318: movs r0, 0x80 lsls r0, 2 ands r0, r1 cmp r0, 0 beq _0804A344 ldr r1, _0804A33C adds r0, r7, r1 movs r2, 0 ldrsh r1, [r0, r2] lsls r0, r1, 3 adds r0, r1 lsls r0, 1 ldr r3, _0804A340 adds r0, r3 _0804A334: adds r0, r7, r0 lsls r1, r6, 1 adds r2, r0, r1 b _0804A356 .align 2, 0 _0804A33C: .4byte 0x00003a12 _0804A340: .4byte 0x00012a18 _0804A344: ldrb r0, [r5, 0x8] lsls r1, r0, 3 adds r1, r0 lsls r1, 1 ldr r4, _0804A3AC adds r1, r4 _0804A350: adds r1, r7, r1 lsls r0, r6, 1 adds r2, r1, r0 _0804A356: movs r5, 0x16 str r5, [sp, 0x8] _0804A35A: movs r0, 0x1F ldr r1, [sp, 0x14] ands r1, r0 str r1, [sp, 0x14] mov r3, r9 ands r3, r0 mov r9, r3 lsls r1, 1 lsls r0, r3, 6 adds r1, r0 ldr r4, _0804A3B0 adds r1, r4 ldrh r0, [r2] strh r0, [r1] adds r2, 0x6 movs r5, 0x1 add r9, r5 add r8, r5 mov r0, r8 cmp r0, 0x3 beq _0804A386 b _0804A476 _0804A386: movs r1, 0 mov r8, r1 add r10, r5 ldr r6, [sp, 0x10] ldr r0, [sp, 0xC] mov r1, r10 bl sub_804954C adds r5, r0, 0 ldrh r1, [r5] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _0804A3B8 lsls r0, r6, 1 ldr r2, _0804A3B4 adds r0, r2 adds r2, r7, r0 b _0804A476 .align 2, 0 _0804A3AC: .4byte 0x00011884 _0804A3B0: .4byte gUnknown_202C838 _0804A3B4: .4byte 0x00012bda _0804A3B8: movs r3, 0x80 lsls r3, 5 adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _0804A3D4 lsls r0, r6, 1 ldr r4, _0804A3D0 adds r0, r4 adds r2, r7, r0 b _0804A476 .align 2, 0 _0804A3D0: .4byte 0x00012bec _0804A3D4: ldr r0, [sp] cmp r0, 0 beq _0804A3EC ldrb r0, [r5, 0x8] lsls r1, r0, 3 adds r1, r0 lsls r1, 1 ldr r2, _0804A3E8 adds r1, r2 b _0804A470 .align 2, 0 _0804A3E8: .4byte 0x00011884 _0804A3EC: ldr r4, [r5, 0x14] cmp r4, 0 beq _0804A434 adds r0, r4, 0 bl sub_80450F8 cmp r0, 0x2 bne _0804A420 adds r0, r4, 0 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0 bne _0804A40C ldr r3, [sp, 0x4] cmp r3, 0 beq _0804A420 _0804A40C: ldr r0, [r4, 0x70] ldrb r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 1 ldr r4, _0804A41C adds r0, r4 b _0804A452 .align 2, 0 _0804A41C: .4byte 0x00012a18 _0804A420: ldrb r0, [r5, 0x8] lsls r1, r0, 3 adds r1, r0 lsls r1, 1 ldr r5, _0804A430 adds r1, r5 b _0804A470 .align 2, 0 _0804A430: .4byte 0x00011884 _0804A434: movs r2, 0x80 lsls r2, 2 adds r0, r2, 0 ands r0, r1 cmp r0, 0 beq _0804A464 ldr r3, _0804A45C adds r0, r7, r3 movs r4, 0 ldrsh r1, [r0, r4] lsls r0, r1, 3 adds r0, r1 lsls r0, 1 ldr r5, _0804A460 adds r0, r5 _0804A452: adds r0, r7, r0 lsls r1, r6, 1 adds r2, r0, r1 b _0804A476 .align 2, 0 _0804A45C: .4byte 0x00003a12 _0804A460: .4byte 0x00012a18 _0804A464: ldrb r0, [r5, 0x8] lsls r1, r0, 3 adds r1, r0 lsls r1, 1 ldr r0, _0804A498 adds r1, r0 _0804A470: adds r1, r7, r1 lsls r0, r6, 1 adds r2, r1, r0 _0804A476: ldr r1, [sp, 0x8] subs r1, 0x1 str r1, [sp, 0x8] cmp r1, 0 blt _0804A482 b _0804A35A _0804A482: movs r0, 0x3 bl sub_80098F8 add sp, 0x18 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804A498: .4byte 0x00011884 thumb_func_end sub_804A1F0 thumb_func_start sub_804A49C sub_804A49C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x18 ldr r2, _0804A52C ldr r7, [r2] ldr r3, _0804A530 adds r2, r7, r3 ldrb r2, [r2] str r2, [sp] ldr r4, _0804A534 adds r2, r7, r4 ldrb r2, [r2] str r2, [sp, 0x4] subs r3, 0x20 adds r2, r7, r3 movs r4, 0 ldrsh r2, [r2, r4] adds r2, r0 adds r3, 0x2 adds r0, r7, r3 movs r4, 0 ldrsh r0, [r0, r4] adds r0, r1 asrs r2, 3 mov r8, r2 asrs r0, 3 str r0, [sp, 0x14] ldr r2, _0804A538 mov r0, r8 adds r0, 0x1E lsls r0, 1 adds r1, r0, r2 movs r4, 0 ldrsh r3, [r1, r4] mov r9, r3 ldr r1, _0804A53C adds r0, r1 movs r4, 0 ldrsh r3, [r0, r4] mov r10, r3 ldr r0, [sp, 0x14] adds r0, 0x1E lsls r0, 1 adds r2, r0, r2 movs r4, 0 ldrsh r3, [r2, r4] str r3, [sp, 0x10] adds r0, r1 movs r2, 0 ldrsh r1, [r0, r2] str r1, [sp, 0xC] lsls r0, r3, 1 adds r0, r3 mov r3, r9 adds r6, r3, r0 mov r0, r10 bl sub_804954C adds r5, r0, 0 ldrh r1, [r5] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _0804A544 lsls r0, r6, 1 ldr r4, _0804A540 adds r0, r4 adds r2, r7, r0 b _0804A5DA .align 2, 0 _0804A52C: .4byte gUnknown_203B418 _0804A530: .4byte 0x00018210 _0804A534: .4byte 0x0001820f _0804A538: .4byte gUnknown_80F6A4A _0804A53C: .4byte gUnknown_80F6C06 _0804A540: .4byte 0x00012bda _0804A544: movs r0, 0x80 lsls r0, 5 ands r0, r1 cmp r0, 0 beq _0804A55C lsls r0, r6, 1 ldr r1, _0804A558 adds r0, r1 adds r2, r7, r0 b _0804A5DA .align 2, 0 _0804A558: .4byte 0x00012bec _0804A55C: ldr r2, [sp] cmp r2, 0 beq _0804A574 ldrb r0, [r5, 0x8] lsls r1, r0, 3 adds r1, r0 lsls r1, 1 ldr r3, _0804A570 adds r1, r3 b _0804A5D4 .align 2, 0 _0804A570: .4byte 0x00011884 _0804A574: ldr r4, [r5, 0x14] cmp r4, 0 beq _0804A59A adds r0, r4, 0 bl sub_80450F8 cmp r0, 0x2 bne _0804A5C8 adds r0, r4, 0 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0 bne _0804A594 ldr r0, [sp, 0x4] cmp r0, 0 beq _0804A5C8 _0804A594: ldr r0, [r4, 0x70] ldrb r1, [r0] b _0804A5AC _0804A59A: movs r0, 0x80 lsls r0, 2 ands r0, r1 cmp r0, 0 beq _0804A5C8 ldr r3, _0804A5C0 adds r0, r7, r3 movs r4, 0 ldrsh r1, [r0, r4] _0804A5AC: lsls r0, r1, 3 adds r0, r1 lsls r0, 1 ldr r1, _0804A5C4 adds r0, r1 adds r0, r7, r0 lsls r1, r6, 1 adds r2, r0, r1 b _0804A5DA .align 2, 0 _0804A5C0: .4byte 0x00003a12 _0804A5C4: .4byte 0x00012a18 _0804A5C8: ldrb r0, [r5, 0x8] lsls r1, r0, 3 adds r1, r0 lsls r1, 1 ldr r2, _0804A638 adds r1, r2 _0804A5D4: adds r1, r7, r1 lsls r0, r6, 1 adds r2, r1, r0 _0804A5DA: movs r3, 0x1E str r3, [sp, 0x8] _0804A5DE: movs r0, 0x1F mov r4, r8 ands r4, r0 mov r8, r4 ldr r1, [sp, 0x14] ands r1, r0 str r1, [sp, 0x14] lsls r1, r4, 1 ldr r3, [sp, 0x14] lsls r0, r3, 6 adds r1, r0 ldr r4, _0804A63C adds r1, r4 ldrh r0, [r2] strh r0, [r1] adds r2, 0x2 movs r0, 0x1 add r8, r0 add r9, r0 mov r1, r9 cmp r1, 0x3 beq _0804A60C b _0804A702 _0804A60C: movs r2, 0 mov r9, r2 add r10, r0 ldr r3, [sp, 0x10] lsls r0, r3, 1 adds r6, r0, r3 mov r0, r10 ldr r1, [sp, 0xC] bl sub_804954C adds r5, r0, 0 ldrh r1, [r5] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _0804A644 lsls r0, r6, 1 ldr r4, _0804A640 adds r0, r4 adds r2, r7, r0 b _0804A702 .align 2, 0 _0804A638: .4byte 0x00011884 _0804A63C: .4byte gUnknown_202C838 _0804A640: .4byte 0x00012bda _0804A644: movs r2, 0x80 lsls r2, 5 adds r0, r2, 0 ands r0, r1 cmp r0, 0 beq _0804A660 lsls r0, r6, 1 ldr r3, _0804A65C adds r0, r3 adds r2, r7, r0 b _0804A702 .align 2, 0 _0804A65C: .4byte 0x00012bec _0804A660: ldr r4, [sp] cmp r4, 0 beq _0804A678 ldrb r0, [r5, 0x8] lsls r1, r0, 3 adds r1, r0 lsls r1, 1 ldr r0, _0804A674 adds r1, r0 b _0804A6FC .align 2, 0 _0804A674: .4byte 0x00011884 _0804A678: ldr r4, [r5, 0x14] cmp r4, 0 beq _0804A6C0 adds r0, r4, 0 bl sub_80450F8 cmp r0, 0x2 bne _0804A6AC adds r0, r4, 0 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0 bne _0804A698 ldr r1, [sp, 0x4] cmp r1, 0 beq _0804A6AC _0804A698: ldr r0, [r4, 0x70] ldrb r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 1 ldr r2, _0804A6A8 adds r0, r2 b _0804A6DE .align 2, 0 _0804A6A8: .4byte 0x00012a18 _0804A6AC: ldrb r0, [r5, 0x8] lsls r1, r0, 3 adds r1, r0 lsls r1, 1 ldr r3, _0804A6BC adds r1, r3 b _0804A6FC .align 2, 0 _0804A6BC: .4byte 0x00011884 _0804A6C0: movs r4, 0x80 lsls r4, 2 adds r0, r4, 0 ands r0, r1 cmp r0, 0 beq _0804A6F0 ldr r1, _0804A6E8 adds r0, r7, r1 movs r2, 0 ldrsh r1, [r0, r2] lsls r0, r1, 3 adds r0, r1 lsls r0, 1 ldr r3, _0804A6EC adds r0, r3 _0804A6DE: adds r0, r7, r0 lsls r1, r6, 1 adds r2, r0, r1 b _0804A702 .align 2, 0 _0804A6E8: .4byte 0x00003a12 _0804A6EC: .4byte 0x00012a18 _0804A6F0: ldrb r0, [r5, 0x8] lsls r1, r0, 3 adds r1, r0 lsls r1, 1 ldr r4, _0804A724 adds r1, r4 _0804A6FC: adds r1, r7, r1 lsls r0, r6, 1 adds r2, r1, r0 _0804A702: ldr r0, [sp, 0x8] subs r0, 0x1 str r0, [sp, 0x8] cmp r0, 0 blt _0804A70E b _0804A5DE _0804A70E: movs r0, 0x3 bl sub_80098F8 add sp, 0x18 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804A724: .4byte 0x00011884 thumb_func_end sub_804A49C thumb_func_start sub_804A728 sub_804A728: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x40 str r0, [sp, 0x1C] adds r5, r1, 0 adds r4, r3, 0 lsls r2, 24 lsrs r2, 24 str r2, [sp, 0x20] lsls r4, 24 lsrs r4, 24 ldr r6, _0804A814 ldr r0, [r6] mov r8, r0 bl sub_8083600 str r0, [sp, 0x24] ldr r0, _0804A818 add r0, r8 ldrh r0, [r0] lsls r0, 16 asrs r0, 19 str r0, [sp, 0x30] adds r1, r0, 0 ldr r0, [r6] ldr r2, _0804A81C adds r0, r2 strb r4, [r0] ldr r3, [sp, 0x1C] movs r4, 0 ldrsh r7, [r3, r4] movs r0, 0x2 ldrsh r6, [r3, r0] ldr r0, _0804A820 lsls r5, 2 adds r5, r0 movs r2, 0 ldrsh r4, [r5, r2] movs r0, 0x2 ldrsh r3, [r5, r0] mov r0, sp movs r2, 0x5 _0804A782: strh r7, [r0] strh r6, [r0, 0x2] adds r7, r4 adds r6, r3 adds r0, 0x4 subs r2, 0x1 cmp r2, 0 bge _0804A782 ldr r0, _0804A824 adds r1, 0x1E lsls r1, 1 adds r0, r1, r0 movs r3, 0 ldrsh r2, [r0, r3] str r2, [sp, 0x28] ldr r0, _0804A828 adds r1, r0 movs r0, 0 ldrsh r4, [r1, r0] mov r10, r4 movs r7, 0 _0804A7AC: ldr r0, _0804A82C add r0, r8 ldrh r0, [r0] lsls r0, 16 asrs r0, 19 str r0, [sp, 0x34] ldr r0, _0804A824 ldr r1, [sp, 0x34] adds r1, 0x1E lsls r1, 1 adds r0, r1, r0 movs r3, 0 ldrsh r2, [r0, r3] str r2, [sp, 0x2C] ldr r0, _0804A828 adds r1, r0 movs r0, 0 ldrsh r4, [r1, r0] mov r9, r4 lsls r0, r2, 1 adds r0, r2 ldr r1, [sp, 0x28] adds r5, r1, r0 mov r2, r10 lsls r0, r2, 16 lsls r1, r4, 16 lsrs r0, 16 orrs r0, r1 str r0, [sp, 0x18] ldr r3, [sp, 0x20] cmp r3, 0 beq _0804A850 ldr r4, [sp, 0x1C] movs r1, 0 ldrsh r0, [r4, r1] cmp r10, r0 bne _0804A834 movs r2, 0x2 ldrsh r0, [r4, r2] cmp r9, r0 bne _0804A834 lsls r0, r5, 1 ldr r3, _0804A830 adds r0, r3 mov r4, r8 adds r2, r4, r0 ldr r0, [sp, 0x28] adds r0, 0x1 str r0, [sp, 0x3C] adds r1, r7, 0x1 str r1, [sp, 0x38] b _0804A8FC .align 2, 0 _0804A814: .4byte gUnknown_203B418 _0804A818: .4byte 0x000181f0 _0804A81C: .4byte 0x0001821a _0804A820: .4byte gUnknown_80F4448 _0804A824: .4byte gUnknown_80F6A4A _0804A828: .4byte gUnknown_80F6C06 _0804A82C: .4byte 0x000181f2 _0804A830: .4byte 0x00012b92 _0804A834: lsls r0, r5, 1 ldr r2, _0804A84C adds r0, r2 mov r3, r8 adds r2, r3, r0 ldr r4, [sp, 0x28] adds r4, 0x1 str r4, [sp, 0x3C] adds r0, r7, 0x1 str r0, [sp, 0x38] b _0804A8FC .align 2, 0 _0804A84C: .4byte 0x00013554 _0804A850: add r4, sp, 0x18 ldr r0, [sp, 0x24] adds r1, r4, 0 bl sub_807049C lsls r0, 24 cmp r0, 0 bne _0804A8E8 ldr r0, [sp, 0x24] adds r1, r4, 0 bl sub_8045AAC lsls r0, 24 cmp r0, 0 beq _0804A8E8 movs r2, 0 mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] lsls r3, r5, 1 ldr r4, [sp, 0x28] adds r4, 0x1 str r4, [sp, 0x3C] adds r1, r7, 0x1 str r1, [sp, 0x38] cmp r0, r10 bne _0804A890 mov r0, sp movs r4, 0x2 ldrsh r0, [r0, r4] cmp r0, r9 beq _0804A8AC _0804A890: adds r2, 0x1 cmp r2, 0x5 bgt _0804A8AC lsls r0, r2, 2 mov r4, sp adds r1, r4, r0 movs r4, 0 ldrsh r0, [r1, r4] cmp r0, r10 bne _0804A890 movs r4, 0x2 ldrsh r0, [r1, r4] cmp r0, r9 bne _0804A890 _0804A8AC: cmp r2, 0x6 bne _0804A8D8 ldr r0, _0804A8C0 ldr r0, [r0] ldrb r0, [r0, 0x3] cmp r0, 0 beq _0804A8C8 ldr r1, _0804A8C4 adds r0, r3, r1 b _0804A8DC .align 2, 0 _0804A8C0: .4byte gUnknown_203B46C _0804A8C4: .4byte 0x00012b80 _0804A8C8: ldr r4, _0804A8D4 adds r0, r3, r4 mov r1, r8 adds r2, r1, r0 b _0804A8FC .align 2, 0 _0804A8D4: .4byte 0x00013554 _0804A8D8: ldr r2, _0804A8E4 adds r0, r3, r2 _0804A8DC: mov r3, r8 adds r2, r3, r0 b _0804A8FC .align 2, 0 _0804A8E4: .4byte 0x00012b92 _0804A8E8: lsls r0, r5, 1 ldr r4, _0804A968 adds r0, r4 mov r1, r8 adds r2, r1, r0 ldr r3, [sp, 0x28] adds r3, 0x1 str r3, [sp, 0x3C] adds r4, r7, 0x1 str r4, [sp, 0x38] _0804A8FC: movs r6, 0 _0804A8FE: movs r0, 0x1F ldr r1, [sp, 0x30] ands r1, r0 str r1, [sp, 0x30] ldr r3, [sp, 0x34] ands r3, r0 lsls r0, r1, 1 lsls r1, r3, 6 adds r0, r1 ldr r4, _0804A96C adds r0, r4 ldrh r1, [r2] strh r1, [r0] adds r2, 0x6 adds r3, 0x1 str r3, [sp, 0x34] ldr r0, [sp, 0x2C] adds r0, 0x1 str r0, [sp, 0x2C] adds r7, r6, 0x1 cmp r0, 0x3 beq _0804A92C b _0804AA20 _0804A92C: movs r1, 0 str r1, [sp, 0x2C] movs r2, 0x1 add r9, r2 ldr r5, [sp, 0x28] add r4, sp, 0x18 mov r3, r10 strh r3, [r4] adds r0, r4, 0 mov r1, r9 strh r1, [r0, 0x2] ldr r2, [sp, 0x20] cmp r2, 0 beq _0804A984 ldr r3, [sp, 0x1C] movs r4, 0 ldrsh r0, [r3, r4] cmp r10, r0 bne _0804A974 movs r1, 0x2 ldrsh r0, [r3, r1] cmp r9, r0 bne _0804A974 ldr r2, [sp, 0x28] lsls r0, r2, 1 ldr r3, _0804A970 adds r0, r3 mov r4, r8 adds r2, r4, r0 b _0804AA20 .align 2, 0 _0804A968: .4byte 0x00013554 _0804A96C: .4byte gUnknown_202C038 _0804A970: .4byte 0x00012b92 _0804A974: lsls r0, r5, 1 ldr r1, _0804A980 adds r0, r1 mov r3, r8 adds r2, r3, r0 b _0804AA1E .align 2, 0 _0804A980: .4byte 0x00013554 _0804A984: ldr r0, [sp, 0x24] adds r1, r4, 0 bl sub_807049C lsls r0, 24 cmp r0, 0 bne _0804AA14 ldr r0, [sp, 0x24] adds r1, r4, 0 bl sub_8045AAC lsls r0, 24 cmp r0, 0 beq _0804AA14 movs r2, 0 mov r0, sp movs r4, 0 ldrsh r0, [r0, r4] ldr r1, [sp, 0x28] lsls r3, r1, 1 cmp r0, r10 bne _0804A9BA mov r0, sp movs r4, 0x2 ldrsh r0, [r0, r4] cmp r0, r9 beq _0804A9D6 _0804A9BA: adds r2, 0x1 cmp r2, 0x5 bgt _0804A9D6 lsls r0, r2, 2 mov r4, sp adds r1, r4, r0 movs r4, 0 ldrsh r0, [r1, r4] cmp r0, r10 bne _0804A9BA movs r4, 0x2 ldrsh r0, [r1, r4] cmp r0, r9 bne _0804A9BA _0804A9D6: cmp r2, 0x6 bne _0804AA04 ldr r0, _0804A9EC ldr r0, [r0] ldrb r0, [r0, 0x3] cmp r0, 0 beq _0804A9F4 ldr r1, _0804A9F0 adds r0, r3, r1 b _0804AA08 .align 2, 0 _0804A9EC: .4byte gUnknown_203B46C _0804A9F0: .4byte 0x00012b80 _0804A9F4: ldr r4, _0804AA00 adds r0, r3, r4 mov r1, r8 adds r2, r1, r0 b _0804AA20 .align 2, 0 _0804AA00: .4byte 0x00013554 _0804AA04: ldr r2, _0804AA10 adds r0, r3, r2 _0804AA08: mov r3, r8 adds r2, r3, r0 b _0804AA20 .align 2, 0 _0804AA10: .4byte 0x00012b92 _0804AA14: lsls r0, r5, 1 ldr r4, _0804AA5C adds r0, r4 mov r1, r8 adds r2, r1, r0 _0804AA1E: adds r7, r6, 0x1 _0804AA20: adds r6, r7, 0 cmp r6, 0x14 bgt _0804AA28 b _0804A8FE _0804AA28: ldr r2, [sp, 0x30] adds r2, 0x1 str r2, [sp, 0x30] ldr r3, [sp, 0x3C] str r3, [sp, 0x28] cmp r3, 0x3 bne _0804AA3E movs r4, 0 str r4, [sp, 0x28] movs r0, 0x1 add r10, r0 _0804AA3E: ldr r7, [sp, 0x38] cmp r7, 0x1E bgt _0804AA46 b _0804A7AC _0804AA46: movs r0, 0x2 bl sub_80098F8 add sp, 0x40 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804AA5C: .4byte 0x00013554 thumb_func_end sub_804A728 thumb_func_start sub_804AA60 sub_804AA60: push {r4,lr} movs r1, 0 ldr r0, _0804AAA0 movs r3, 0 movs r2, 0x80 lsls r2, 5 adds r4, r0, r2 _0804AA6E: lsls r0, r1, 6 adds r2, r1, 0x1 movs r1, 0x1F adds r0, r4 adds r0, 0x3E _0804AA78: strh r3, [r0] subs r0, 0x2 subs r1, 0x1 cmp r1, 0 bge _0804AA78 adds r1, r2, 0 cmp r1, 0x1F ble _0804AA6E movs r4, 0 movs r0, 0x2 bl sub_80098F8 ldr r0, _0804AAA4 ldr r0, [r0] ldr r1, _0804AAA8 adds r0, r1 strb r4, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _0804AAA0: .4byte gUnknown_202B038 _0804AAA4: .4byte gUnknown_203B418 _0804AAA8: .4byte 0x0001821a thumb_func_end sub_804AA60 thumb_func_start sub_804AAAC sub_804AAAC: push {r4-r7,lr} movs r5, 0 movs r7, 0 _0804AAB2: movs r4, 0 adds r6, r5, 0x1 _0804AAB6: adds r0, r4, 0 adds r1, r5, 0 bl sub_8049590 strh r7, [r0, 0x4] adds r4, 0x1 cmp r4, 0x37 ble _0804AAB6 adds r5, r6, 0 cmp r5, 0x1F ble _0804AAB2 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_804AAAC thumb_func_start sub_804AAD4 sub_804AAD4: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r4, _0804AC04 movs r0, 0 mov r8, r0 ldr r6, _0804AC08 ldr r5, _0804AC0C movs r2, 0 movs r3, 0x1F _0804AAEA: ldr r0, [r4] adds r0, r2 ldr r1, _0804AC10 adds r0, r1 mov r7, r8 strb r7, [r0] ldr r0, [r4] adds r0, r2 adds r1, 0x1 adds r0, r1 strb r7, [r0] ldr r0, [r4] adds r0, r2 ldr r7, _0804AC14 adds r1, r0, r7 strh r6, [r1] adds r7, 0x2 adds r1, r0, r7 strh r6, [r1] adds r7, 0x2 adds r1, r0, r7 strh r5, [r1] ldr r1, _0804AC18 adds r0, r1 strh r5, [r0] adds r2, 0x1C subs r3, 0x1 cmp r3, 0 bge _0804AAEA movs r4, 0 mov r9, r4 movs r6, 0 ldr r7, _0804AC04 mov r8, r7 _0804AB2E: movs r4, 0 adds r5, r6, 0x1 _0804AB32: adds r0, r4, 0 adds r1, r6, 0 bl sub_804954C ldrb r2, [r0, 0x9] adds r3, r4, 0x1 cmp r2, 0xFF beq _0804AB84 lsls r0, r2, 3 subs r0, r2 lsls r0, 2 ldr r1, _0804AC10 adds r0, r1 mov r7, r8 ldr r1, [r7] adds r1, r0 movs r0, 0x1 strb r0, [r1] movs r7, 0x2 ldrsh r0, [r1, r7] cmp r0, r4 ble _0804AB60 strh r4, [r1, 0x2] _0804AB60: movs r4, 0x4 ldrsh r0, [r1, r4] cmp r0, r6 ble _0804AB6A strh r6, [r1, 0x4] _0804AB6A: movs r7, 0x6 ldrsh r0, [r1, r7] cmp r0, r3 bge _0804AB74 strh r3, [r1, 0x6] _0804AB74: movs r4, 0x8 ldrsh r0, [r1, r4] cmp r0, r5 bge _0804AB7E strh r5, [r1, 0x8] _0804AB7E: cmp r9, r2 bge _0804AB84 mov r9, r2 _0804AB84: adds r4, r3, 0 cmp r4, 0x37 ble _0804AB32 adds r6, r5, 0 cmp r6, 0x1F ble _0804AB2E ldr r7, _0804AC04 mov r8, r7 mov r5, r9 adds r5, 0x1 mov r6, r8 movs r4, 0 movs r3, 0x1F _0804AB9E: ldr r1, _0804AC10 adds r0, r4, r1 ldr r1, [r6] adds r2, r1, r0 ldrb r0, [r2] cmp r0, 0 beq _0804ABE4 movs r7, 0x2 ldrsh r1, [r2, r7] subs r1, 0x1 lsls r0, r1, 1 adds r0, r1 lsls r0, 3 str r0, [r2, 0xC] movs r0, 0x4 ldrsh r1, [r2, r0] subs r1, 0x1 lsls r0, r1, 1 adds r0, r1 lsls r0, 3 str r0, [r2, 0x10] movs r7, 0x6 ldrsh r1, [r2, r7] adds r1, 0x1 lsls r0, r1, 1 adds r0, r1 lsls r0, 3 str r0, [r2, 0x14] movs r0, 0x8 ldrsh r1, [r2, r0] adds r1, 0x1 lsls r0, r1, 1 adds r0, r1 lsls r0, 3 str r0, [r2, 0x18] _0804ABE4: adds r4, 0x1C subs r3, 0x1 cmp r3, 0 bge _0804AB9E mov r1, r8 ldr r0, [r1] ldr r4, _0804AC1C adds r0, r4 strb r5, [r0] pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804AC04: .4byte gUnknown_203B418 _0804AC08: .4byte 0x0000270f _0804AC0C: .4byte 0x0000d8f1 _0804AC10: .4byte 0x000104c4 _0804AC14: .4byte 0x000104c6 _0804AC18: .4byte 0x000104cc _0804AC1C: .4byte 0x000104c0 thumb_func_end sub_804AAD4 thumb_func_start sub_804AC20 sub_804AC20: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r4, r0, 0 movs r1, 0 ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] bl sub_804954C ldrb r1, [r0, 0x9] ldr r0, _0804AC6C ldr r3, [r0] ldr r5, _0804AC70 adds r0, r3, r5 ldrb r2, [r0] adds r5, 0x1 adds r0, r3, r5 ldrb r0, [r0] cmp r0, 0 bne _0804ACD4 cmp r2, 0 bne _0804AC52 movs r2, 0x2 _0804AC52: cmp r1, 0xFF bne _0804AC74 movs r0, 0 ldrsh r1, [r4, r0] subs r3, r1, r2 mov r9, r3 movs r5, 0x2 ldrsh r0, [r4, r5] subs r3, r0, r2 adds r6, r1, r2 adds r0, r2 mov r8, r0 b _0804ACA2 .align 2, 0 _0804AC6C: .4byte gUnknown_203B418 _0804AC70: .4byte 0x00018209 _0804AC74: lsls r0, r1, 3 subs r0, r1 lsls r0, 2 ldr r1, _0804ACE0 adds r0, r1 adds r2, r3, r0 ldrb r0, [r2, 0x1] cmp r0, 0 bne _0804ACD4 movs r0, 0x1 strb r0, [r2, 0x1] movs r3, 0x2 ldrsh r0, [r2, r3] subs r0, 0x1 mov r9, r0 movs r5, 0x4 ldrsh r0, [r2, r5] subs r3, r0, 0x1 movs r0, 0x6 ldrsh r6, [r2, r0] movs r5, 0x8 ldrsh r1, [r2, r5] mov r8, r1 _0804ACA2: adds r5, r3, 0 cmp r5, r8 bgt _0804ACD4 _0804ACA8: mov r4, r9 adds r7, r5, 0x1 cmp r4, r6 bgt _0804ACCE _0804ACB0: adds r0, r4, 0 adds r1, r5, 0 bl sub_8049590 ldrh r2, [r0, 0x4] movs r1, 0x3 orrs r1, r2 strh r1, [r0, 0x4] adds r0, r4, 0 adds r1, r5, 0 bl sub_80402AC adds r4, 0x1 cmp r4, r6 ble _0804ACB0 _0804ACCE: adds r5, r7, 0 cmp r5, r8 ble _0804ACA8 _0804ACD4: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804ACE0: .4byte 0x000104c4 thumb_func_end sub_804AC20 thumb_func_start sub_804ACE4 sub_804ACE4: push {lr} movs r1, 0 ldrsh r2, [r0, r1] movs r3, 0x2 ldrsh r1, [r0, r3] adds r0, r2, 0 bl sub_804954C ldr r0, [r0, 0x14] cmp r0, 0 beq _0804AD06 bl sub_80450F8 cmp r0, 0x3 bne _0804AD06 movs r0, 0x1 b _0804AD08 _0804AD06: movs r0, 0 _0804AD08: pop {r1} bx r1 thumb_func_end sub_804ACE4 thumb_func_start sub_804AD0C sub_804AD0C: push {lr} movs r1, 0 ldrsh r2, [r0, r1] movs r3, 0x2 ldrsh r1, [r0, r3] adds r0, r2, 0 bl sub_804954C ldr r1, [r0, 0x10] cmp r1, 0 beq _0804AD2C ldr r0, [r1] cmp r0, 0x1 bne _0804AD2C adds r0, r1, 0 b _0804AD2E _0804AD2C: movs r0, 0 _0804AD2E: pop {r1} bx r1 thumb_func_end sub_804AD0C thumb_func_start sub_804AD34 sub_804AD34: push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 movs r0, 0 mov r8, r0 movs r1, 0 ldrsh r0, [r6, r1] movs r2, 0x2 ldrsh r1, [r6, r2] bl sub_8049590 adds r2, r0, 0 ldrh r1, [r2] movs r0, 0x3 ands r0, r1 cmp r0, 0 bne _0804ADB6 movs r0, 0x88 lsls r0, 1 ands r0, r1 cmp r0, 0 bne _0804ADB6 movs r0, 0x1 mov r8, r0 ldr r0, _0804ADFC ands r0, r1 movs r1, 0x1 orrs r0, r1 strh r0, [r2] movs r5, 0x1 negs r5, r5 _0804AD74: movs r4, 0x1 negs r4, r4 adds r7, r5, 0x1 _0804AD7A: movs r1, 0 ldrsh r0, [r6, r1] adds r0, r4, r0 movs r2, 0x2 ldrsh r1, [r6, r2] adds r1, r5, r1 bl sub_80498A8 movs r1, 0 ldrsh r0, [r6, r1] adds r0, r4, r0 movs r2, 0x2 ldrsh r1, [r6, r2] adds r1, r5, r1 bl sub_8049BB0 movs r1, 0 ldrsh r0, [r6, r1] adds r0, r4, r0 movs r2, 0x2 ldrsh r1, [r6, r2] adds r1, r5, r1 bl sub_80402AC adds r4, 0x1 cmp r4, 0x1 ble _0804AD7A adds r5, r7, 0 cmp r5, 0x1 ble _0804AD74 _0804ADB6: mov r0, r8 cmp r0, 0 beq _0804ADEE movs r5, 0 _0804ADBE: ldr r0, _0804AE00 ldr r0, [r0] lsls r1, r5, 2 ldr r2, _0804AE04 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0804ADDE adds r0, r4, 0 bl sub_806CF98 _0804ADDE: adds r5, 0x1 cmp r5, 0x13 ble _0804ADBE bl sub_8049ED4 adds r0, r6, 0 bl sub_8042A14 _0804ADEE: mov r0, r8 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0804ADFC: .4byte 0x0000fffc _0804AE00: .4byte gUnknown_203B418 _0804AE04: .4byte 0x000135cc thumb_func_end sub_804AD34 thumb_func_start sub_804AE08 sub_804AE08: push {r4-r7,lr} mov r7, r8 push {r7} adds r7, r0, 0 movs r0, 0 mov r8, r0 movs r1, 0 ldrsh r0, [r7, r1] movs r2, 0x2 ldrsh r1, [r7, r2] bl sub_8049590 adds r2, r0, 0 ldrh r1, [r2] movs r0, 0x3 ands r0, r1 cmp r0, 0 bne _0804AE72 movs r0, 0x88 lsls r0, 1 ands r0, r1 cmp r0, 0 bne _0804AE72 movs r0, 0x1 mov r8, r0 ldr r0, _0804AE80 ands r0, r1 movs r1, 0x1 orrs r0, r1 strh r0, [r2] ldrh r1, [r2, 0x4] movs r0, 0x10 orrs r0, r1 strh r0, [r2, 0x4] movs r5, 0x1 negs r5, r5 _0804AE50: movs r4, 0x1 negs r4, r4 adds r6, r5, 0x1 _0804AE56: movs r1, 0 ldrsh r0, [r7, r1] adds r0, r4, r0 movs r2, 0x2 ldrsh r1, [r7, r2] adds r1, r5, r1 bl sub_8049BB0 adds r4, 0x1 cmp r4, 0x1 ble _0804AE56 adds r5, r6, 0 cmp r5, 0x1 ble _0804AE50 _0804AE72: mov r0, r8 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0804AE80: .4byte 0x0000fffc thumb_func_end sub_804AE08 thumb_func_start sub_804AE84 sub_804AE84: push {r4-r7,lr} adds r5, r0, 0 movs r1, 0 ldrsh r0, [r5, r1] movs r2, 0x2 ldrsh r1, [r5, r2] bl sub_8049590 adds r2, r0, 0 ldrh r1, [r2, 0x4] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _0804AF0E ldr r0, _0804AF14 ands r0, r1 strh r0, [r2, 0x4] movs r6, 0x1 negs r6, r6 _0804AEAA: movs r4, 0x1 negs r4, r4 adds r7, r6, 0x1 _0804AEB0: movs r1, 0 ldrsh r0, [r5, r1] adds r0, r4, r0 movs r2, 0x2 ldrsh r1, [r5, r2] adds r1, r6, r1 bl sub_80498A8 movs r1, 0 ldrsh r0, [r5, r1] adds r0, r4, r0 movs r2, 0x2 ldrsh r1, [r5, r2] adds r1, r6, r1 bl sub_80402AC adds r4, 0x1 cmp r4, 0x1 ble _0804AEB0 adds r6, r7, 0 cmp r6, 0x1 ble _0804AEAA movs r6, 0 _0804AEDE: ldr r0, _0804AF18 ldr r0, [r0] lsls r1, r6, 2 ldr r2, _0804AF1C adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0804AEFE adds r0, r4, 0 bl sub_806CF98 _0804AEFE: adds r6, 0x1 cmp r6, 0x13 ble _0804AEDE bl sub_8049ED4 adds r0, r5, 0 bl sub_8042A14 _0804AF0E: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804AF14: .4byte 0x0000ffef _0804AF18: .4byte gUnknown_203B418 _0804AF1C: .4byte 0x000135cc thumb_func_end sub_804AE84 thumb_func_start sub_804AF20 sub_804AF20: push {r4,r5,lr} adds r4, r0, 0 movs r5, 0 bl sub_804AF74 lsls r0, 24 cmp r0, 0 beq _0804AF3C ldrh r1, [r4] movs r0, 0x3 ands r0, r1 cmp r0, 0 bne _0804AF5E b _0804AF5C _0804AF3C: ldrh r1, [r4] movs r0, 0x3 ands r0, r1 cmp r0, 0x2 bne _0804AF5C ldr r1, _0804AF68 ldr r0, _0804AF6C ldr r0, [r0] ldr r2, _0804AF70 adds r0, r2 movs r2, 0 ldrsh r0, [r0, r2] adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 bne _0804AF5E _0804AF5C: movs r5, 0x1 _0804AF5E: adds r0, r5, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0804AF68: .4byte gUnknown_810ACC0 _0804AF6C: .4byte gUnknown_203B418 _0804AF70: .4byte 0x00003a0e thumb_func_end sub_804AF20 thumb_func_start sub_804AF74 sub_804AF74: push {lr} ldr r0, _0804AF9C ldr r0, [r0] ldr r1, _0804AFA0 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 beq _0804AF96 cmp r0, 0x31 beq _0804AF96 cmp r0, 0x20 beq _0804AF96 cmp r0, 0x21 beq _0804AF96 cmp r0, 0x36 bne _0804AFA4 _0804AF96: movs r0, 0x1 b _0804AFA6 .align 2, 0 _0804AF9C: .4byte gUnknown_203B418 _0804AFA0: .4byte 0x00003a0e _0804AFA4: movs r0, 0 _0804AFA6: pop {r1} bx r1 thumb_func_end sub_804AF74 thumb_func_start sub_804AFAC sub_804AFAC: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x44 movs r0, 0 mov r10, r0 ldr r4, _0804B0E8 ldr r0, [r4] ldr r1, _0804B0EC adds r1, r0 mov r8, r1 ldr r0, _0804B0F0 ldr r1, _0804B0F4 bl OpenFileAndGetFileDataPtr ldr r2, [r4] ldr r3, _0804B0F8 adds r1, r2, r3 str r0, [r1] ldr r0, _0804B0FC mov r6, r10 strb r6, [r0] ldr r0, _0804B100 strb r6, [r0] ldr r0, _0804B104 strb r6, [r0] ldr r5, _0804B108 movs r3, 0 ldr r1, _0804B10C ldr r0, _0804B110 adds r2, r0 movs r6, 0 ldrsh r0, [r2, r6] adds r0, r1 ldrb r0, [r0] cmp r0, 0x2 bne _0804AFFC movs r3, 0x1 _0804AFFC: strb r3, [r5] ldr r1, _0804B114 movs r0, 0xFF strb r0, [r1] ldr r0, _0804B118 mov r1, r10 strb r1, [r0] ldr r1, _0804B11C mov r2, r8 ldrb r0, [r2, 0x7] strh r0, [r1] ldr r1, _0804B120 ldrb r0, [r2, 0x8] strh r0, [r1] ldr r1, _0804B124 movs r0, 0x1 strb r0, [r1] ldr r1, _0804B128 movs r0, 0x1 negs r0, r0 str r0, [r1] str r0, [r1, 0x8] str r0, [r1, 0x4] str r0, [r1, 0xC] bl sub_804FD30 ldr r3, [r4] mov r6, r8 ldrb r2, [r6, 0x6] ldr r1, _0804B12C adds r0, r3, r1 movs r1, 0 strh r2, [r0] ldr r2, _0804B130 adds r0, r3, r2 strb r1, [r0] ldr r0, [r4] ldr r3, _0804B134 adds r0, r3 strb r1, [r0] ldr r1, _0804B138 mov r6, r8 ldrb r0, [r6, 0xC] str r0, [r1] movs r0, 0 str r0, [sp, 0x40] _0804B058: ldr r0, _0804B0E8 ldr r2, [r0] ldr r3, _0804B13C adds r1, r2, r3 ldr r0, _0804B140 strh r0, [r1] ldr r6, _0804B144 adds r1, r2, r6 movs r0, 0x1 negs r0, r0 strh r0, [r1] ldr r0, _0804B148 adds r1, r2, r0 movs r0, 0x1 negs r0, r0 strh r0, [r1] ldr r1, _0804B14C adds r2, r1 strh r0, [r2] movs r2, 0 mov r9, r2 _0804B082: ldr r4, _0804B0E8 ldr r0, [r4] ldr r3, _0804B150 adds r0, r3 movs r5, 0 movs r1, 0 mov r6, r9 strh r6, [r0] mov r0, r9 cmp r0, 0 ble _0804B09C ldr r0, _0804B138 str r1, [r0] _0804B09C: ldr r0, _0804B154 strb r5, [r0] ldr r1, _0804B158 ldr r0, _0804B140 strh r0, [r1] movs r0, 0x1 negs r0, r0 strh r0, [r1, 0x2] bl sub_804FD30 ldr r1, [r4] ldr r3, _0804B13C adds r2, r1, r3 movs r0, 0x1 negs r0, r0 strh r0, [r2] ldr r6, _0804B144 adds r2, r1, r6 strh r0, [r2] ldr r0, _0804B15C adds r1, r0 strb r5, [r1] ldr r0, [r4] ldr r2, _0804B160 adds r1, r0, r2 movs r3, 0 ldrsh r0, [r1, r3] cmp r0, 0 beq _0804B164 mov r1, r8 bl sub_804C70C lsls r0, 24 cmp r0, 0 beq _0804B0E4 b _0804B376 _0804B0E4: b _0804B2F6 .align 2, 0 _0804B0E8: .4byte gUnknown_203B418 _0804B0EC: .4byte 0x0001c574 _0804B0F0: .4byte gUnknown_80F6DCC _0804B0F4: .4byte gUnknown_83B0000 _0804B0F8: .4byte 0x00013568 _0804B0FC: .4byte gUnknown_202F1AA _0804B100: .4byte gUnknown_202F1AB _0804B104: .4byte gUnknown_202F1AC _0804B108: .4byte gUnknown_202F1A8 _0804B10C: .4byte gUnknown_810ACC0 _0804B110: .4byte 0x00003a0e _0804B114: .4byte gUnknown_202F1B4 _0804B118: .4byte gUnknown_202F1AE _0804B11C: .4byte gUnknown_202F1B0 _0804B120: .4byte gUnknown_202F1B2 _0804B124: .4byte gUnknown_202F1AD _0804B128: .4byte gUnknown_202F1B8 _0804B12C: .4byte 0x00000664 _0804B130: .4byte 0x00003a09 _0804B134: .4byte 0x00003a0a _0804B138: .4byte gUnknown_202F1C8 _0804B13C: .4byte 0x0000e218 _0804B140: .4byte 0x0000ffff _0804B144: .4byte 0x0000e21a _0804B148: .4byte 0x0000e21c _0804B14C: .4byte 0x0000e21e _0804B150: .4byte 0x00003a16 _0804B154: .4byte gUnknown_202F1A9 _0804B158: .4byte gUnknown_202F1D8 _0804B15C: .4byte 0x00003a08 _0804B160: .4byte 0x00003a14 _0804B164: mov r0, r8 ldrb r7, [r0] movs r6, 0x20 _0804B16A: cmp r7, 0x8 beq _0804B17E movs r0, 0x2 movs r1, 0x9 bl sub_808411C adds r5, r0, 0 movs r0, 0x2 movs r1, 0x8 b _0804B18C _0804B17E: movs r0, 0x2 movs r1, 0x5 bl sub_808411C adds r5, r0, 0 movs r0, 0x2 movs r1, 0x4 _0804B18C: bl sub_808411C adds r4, r0, 0 cmp r5, 0x6 bgt _0804B19A cmp r4, 0x4 ble _0804B1A4 _0804B19A: subs r6, 0x1 cmp r6, 0 bne _0804B16A movs r5, 0x4 movs r4, 0x4 _0804B1A4: movs r0, 0x38 adds r1, r5, 0 bl __divsi3 cmp r0, 0x7 bgt _0804B1B2 movs r5, 0x1 _0804B1B2: movs r0, 0x20 adds r1, r4, 0 bl __divsi3 cmp r0, 0x7 bgt _0804B1C0 movs r4, 0x1 _0804B1C0: ldr r2, _0804B1EC ldr r0, [r2] ldr r1, _0804B1F0 adds r0, r1 movs r1, 0 strb r1, [r0] ldr r0, [r2] ldr r2, _0804B1F4 adds r0, r2 movs r1, 0xFF strb r1, [r0] ldr r0, _0804B1F8 str r7, [r0] movs r0, 0xF ands r0, r7 cmp r0, 0xB bhi _0804B274 lsls r0, 2 ldr r1, _0804B1FC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0804B1EC: .4byte gUnknown_203B418 _0804B1F0: .4byte 0x00003a08 _0804B1F4: .4byte 0x00003a0c _0804B1F8: .4byte gUnknown_202F1D0 _0804B1FC: .4byte _0804B200 .align 2, 0 _0804B200: .4byte _0804B274 .4byte _0804B230 .4byte _0804B280 .4byte _0804B298 .4byte _0804B2A4 .4byte _0804B2B0 .4byte _0804B2CC .4byte _0804B2D8 .4byte _0804B274 .4byte _0804B2E0 .4byte _0804B2E8 .4byte _0804B250 _0804B230: movs r0, 0x2 bl sub_8084100 adds r4, r0, 0x2 ldr r1, _0804B24C movs r0, 0x1 strb r0, [r1] movs r0, 0x4 adds r1, r4, 0 mov r2, r8 bl sub_804B634 b _0804B2AA .align 2, 0 _0804B24C: .4byte gUnknown_202F1AE _0804B250: movs r0, 0x2 bl sub_8084100 adds r4, r0, 0x2 ldr r1, _0804B270 movs r0, 0x2 strb r0, [r1] movs r0, 0x4 adds r1, r4, 0 mov r2, r8 bl sub_804B634 movs r6, 0x1 mov r10, r6 b _0804B2F6 .align 2, 0 _0804B270: .4byte gUnknown_202F1AE _0804B274: adds r0, r5, 0 adds r1, r4, 0 mov r2, r8 bl sub_804B634 b _0804B2D2 _0804B280: bl sub_804C918 ldr r0, _0804B290 ldr r0, [r0] ldr r1, _0804B294 adds r0, r1 b _0804B2BC .align 2, 0 _0804B290: .4byte gUnknown_203B418 _0804B294: .4byte 0x00003a08 _0804B298: mov r0, r8 bl sub_804B72C movs r2, 0x1 mov r10, r2 b _0804B2F6 _0804B2A4: mov r0, r8 bl sub_804BC80 _0804B2AA: movs r3, 0x1 mov r10, r3 b _0804B2F6 _0804B2B0: bl sub_804C9D0 ldr r0, _0804B2C4 ldr r0, [r0] ldr r6, _0804B2C8 adds r0, r6 _0804B2BC: movs r1, 0x1 strb r1, [r0] b _0804B2F6 .align 2, 0 _0804B2C4: .4byte gUnknown_203B418 _0804B2C8: .4byte 0x00003a08 _0804B2CC: mov r0, r8 bl sub_804C0A8 _0804B2D2: movs r0, 0x1 mov r10, r0 b _0804B2F6 _0804B2D8: mov r0, r8 bl sub_804C190 b _0804B2F6 _0804B2E0: mov r0, r8 bl sub_804C2F4 b _0804B2F6 _0804B2E8: adds r0, r5, 0 adds r1, r4, 0 mov r2, r8 bl sub_804C53C movs r1, 0x1 mov r10, r1 _0804B2F6: bl sub_80518F0 bl sub_804FCCC ldr r0, _0804B4B4 ldrb r0, [r0] cmp r0, 0 bne _0804B36A movs r7, 0 movs r1, 0 mov r0, sp adds r0, 0x3F _0804B30E: strb r1, [r0] subs r0, 0x1 cmp r0, sp bge _0804B30E movs r5, 0 _0804B318: movs r4, 0 adds r6, r5, 0x1 _0804B31C: adds r0, r5, 0 adds r1, r4, 0 bl sub_804954C adds r1, r0, 0 ldrh r0, [r1] movs r2, 0x3 ands r2, r0 cmp r2, 0x1 bne _0804B340 ldrb r0, [r1, 0x9] cmp r0, 0xF0 bhi _0804B340 adds r7, 0x1 cmp r0, 0x3F bhi _0804B340 add r0, sp strb r2, [r0] _0804B340: adds r4, 0x1 cmp r4, 0x1F ble _0804B31C adds r5, r6, 0 cmp r5, 0x37 ble _0804B318 movs r1, 0 movs r4, 0 _0804B350: mov r2, sp adds r0, r2, r4 ldrb r0, [r0] cmp r0, 0 beq _0804B35C adds r1, 0x1 _0804B35C: adds r4, 0x1 cmp r4, 0x3F ble _0804B350 cmp r7, 0x1D ble _0804B36A cmp r1, 0x1 bgt _0804B376 _0804B36A: movs r3, 0x1 add r9, r3 mov r6, r9 cmp r6, 0x9 bgt _0804B376 b _0804B082 _0804B376: mov r0, r9 cmp r0, 0xA bne _0804B398 ldr r1, _0804B4B8 ldr r0, _0804B4BC strh r0, [r1] movs r0, 0x1 negs r0, r0 strh r0, [r1, 0x2] bl sub_804C918 ldr r0, _0804B4C0 ldr r0, [r0] ldr r1, _0804B4C4 adds r0, r1 movs r1, 0x1 strb r1, [r0] _0804B398: bl sub_804E9DC mov r2, r10 cmp r2, 0 beq _0804B3AA movs r0, 0x1 mov r1, r8 bl sub_80506F0 _0804B3AA: movs r0, 0x64 bl sub_8084100 movs r4, 0 mov r3, r8 ldrb r3, [r3, 0x19] cmp r0, r3 bge _0804B3BC movs r4, 0x1 _0804B3BC: mov r0, r8 adds r1, r4, 0 bl sub_804FF08 mov r0, r8 adds r1, r4, 0 bl sub_8050438 bl sub_804FBE8 ldr r5, _0804B4C0 ldr r1, [r5] ldr r6, _0804B4C8 adds r0, r1, r6 movs r2, 0 ldrsh r0, [r0, r2] movs r4, 0x1 negs r4, r4 cmp r0, r4 beq _0804B42A ldr r3, _0804B4CC adds r0, r1, r3 movs r6, 0 ldrsh r0, [r0, r6] cmp r0, r4 beq _0804B42A bl sub_8043D10 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0804B436 ldr r1, [r5] ldr r0, _0804B4D0 adds r2, r1, r0 movs r3, 0 ldrsh r0, [r2, r3] cmp r0, r4 beq _0804B42A ldr r6, _0804B4D4 adds r1, r6 movs r3, 0 ldrsh r0, [r1, r3] cmp r0, r4 beq _0804B42A movs r6, 0 ldrsh r0, [r2, r6] movs r2, 0 ldrsh r1, [r1, r2] movs r2, 0 bl sub_8050C30 lsls r0, 24 cmp r0, 0 bne _0804B436 _0804B42A: ldr r3, [sp, 0x40] adds r3, 0x1 str r3, [sp, 0x40] cmp r3, 0x9 bgt _0804B436 b _0804B058 _0804B436: ldr r6, [sp, 0x40] cmp r6, 0xA bne _0804B474 ldr r1, _0804B4B8 ldr r0, _0804B4BC strh r0, [r1] movs r0, 0x1 negs r0, r0 strh r0, [r1, 0x2] bl sub_804FD30 bl sub_804C918 ldr r0, _0804B4C0 ldr r0, [r0] ldr r1, _0804B4C4 adds r0, r1 movs r1, 0x1 strb r1, [r0] bl sub_804E9DC mov r0, r8 movs r1, 0 bl sub_804FF08 mov r0, r8 movs r1, 0 bl sub_8050438 bl sub_804FBE8 _0804B474: ldr r1, _0804B4B8 movs r2, 0 ldrsh r0, [r1, r2] cmp r0, 0 blt _0804B498 movs r3, 0x2 ldrsh r0, [r1, r3] cmp r0, 0 blt _0804B498 movs r6, 0 ldrsh r0, [r1, r6] movs r2, 0x2 ldrsh r1, [r1, r2] movs r2, 0xBE lsls r2, 1 movs r3, 0 bl sub_806C330 _0804B498: ldr r0, _0804B4D8 ldr r0, [r0] cmp r0, 0 blt _0804B4E0 mov r0, r8 bl sub_8051654 ldr r0, _0804B4C0 ldr r0, [r0] ldr r3, _0804B4DC adds r0, r3 movs r1, 0x1 b _0804B4EA .align 2, 0 _0804B4B4: .4byte gUnknown_202F1A9 _0804B4B8: .4byte gUnknown_202F1D8 _0804B4BC: .4byte 0x0000ffff _0804B4C0: .4byte gUnknown_203B418 _0804B4C4: .4byte 0x00003a08 _0804B4C8: .4byte 0x0000e218 _0804B4CC: .4byte 0x0000e21a _0804B4D0: .4byte 0x0000e21c _0804B4D4: .4byte 0x0000e21e _0804B4D8: .4byte gUnknown_202F1B8 _0804B4DC: .4byte 0x00003a0a _0804B4E0: ldr r0, _0804B524 ldr r0, [r0] ldr r6, _0804B528 adds r0, r6 movs r1, 0 _0804B4EA: strb r1, [r0] movs r0, 0 movs r1, 0 movs r2, 0x38 movs r3, 0x20 bl sub_804B534 ldr r0, _0804B52C ldrb r0, [r0] cmp r0, 0 beq _0804B504 bl sub_804FC74 _0804B504: ldr r0, _0804B524 ldr r0, [r0] ldr r1, _0804B530 adds r0, r1 ldr r0, [r0] bl CloseFile add sp, 0x44 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804B524: .4byte gUnknown_203B418 _0804B528: .4byte 0x00003a0a _0804B52C: .4byte gUnknown_202F1A8 _0804B530: .4byte 0x00013568 thumb_func_end sub_804AFAC thumb_func_start sub_804B534 sub_804B534: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 str r1, [sp] str r2, [sp, 0x4] mov r10, r3 adds r5, r0, 0 cmp r5, r2 bge _0804B620 _0804B54C: ldr r4, [sp] adds r0, r5, 0x1 mov r9, r0 cmp r4, r10 bge _0804B618 movs r6, 0x3 mov r8, r6 _0804B55A: movs r3, 0 adds r0, r5, 0 adds r1, r4, 0 str r3, [sp, 0xC] bl sub_8049590 adds r2, r0, 0 ldrh r0, [r2] ldr r6, _0804B630 adds r1, r6, 0 ands r1, r0 strh r1, [r2] ldrb r0, [r2, 0x9] adds r6, r4, 0x1 ldr r3, [sp, 0xC] cmp r0, 0xFF bne _0804B612 movs r7, 0x3 adds r0, r1, 0 ands r0, r7 cmp r0, 0x1 bne _0804B612 cmp r5, 0 ble _0804B5A4 subs r0, r5, 0x1 adds r1, r4, 0 str r2, [sp, 0x8] bl sub_804954C ldrh r1, [r0] adds r0, r7, 0 ands r0, r1 ldr r2, [sp, 0x8] ldr r3, [sp, 0xC] cmp r0, 0x1 bne _0804B5A4 movs r3, 0x1 _0804B5A4: cmp r4, 0 ble _0804B5C4 subs r1, r4, 0x1 adds r0, r5, 0 str r2, [sp, 0x8] str r3, [sp, 0xC] bl sub_804954C ldrh r1, [r0] mov r0, r8 ands r0, r1 ldr r2, [sp, 0x8] ldr r3, [sp, 0xC] cmp r0, 0x1 bne _0804B5C4 adds r3, 0x1 _0804B5C4: cmp r5, 0x35 bgt _0804B5E4 mov r0, r9 adds r1, r4, 0 str r2, [sp, 0x8] str r3, [sp, 0xC] bl sub_804954C ldrh r1, [r0] mov r0, r8 ands r0, r1 ldr r2, [sp, 0x8] ldr r3, [sp, 0xC] cmp r0, 0x1 bne _0804B5E4 adds r3, 0x1 _0804B5E4: adds r6, r4, 0x1 cmp r5, 0x1D bgt _0804B606 adds r0, r5, 0 adds r1, r6, 0 str r2, [sp, 0x8] str r3, [sp, 0xC] bl sub_804954C ldrh r1, [r0] mov r0, r8 ands r0, r1 ldr r2, [sp, 0x8] ldr r3, [sp, 0xC] cmp r0, 0x1 bne _0804B606 adds r3, 0x1 _0804B606: cmp r3, 0x2 ble _0804B612 ldrh r1, [r2] movs r0, 0x8 orrs r0, r1 strh r0, [r2] _0804B612: adds r4, r6, 0 cmp r4, r10 blt _0804B55A _0804B618: mov r5, r9 ldr r0, [sp, 0x4] cmp r5, r0 blt _0804B54C _0804B620: add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804B630: .4byte 0x0000fffb thumb_func_end sub_804B534 thumb_func_start sub_804B634 sub_804B634: push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} ldr r4, _0804B718 add sp, r4 adds r4, r0, 0 adds r5, r1, 0 mov r9, r2 ldr r0, _0804B71C add r0, sp mov r8, r0 ldr r6, _0804B720 add r6, sp adds r1, r6, 0 adds r2, r4, 0 adds r3, r5, 0 bl sub_804D024 add r0, sp, 0x8 adds r1, r4, 0 adds r2, r5, 0 bl sub_804D084 mov r1, r9 movs r3, 0x1 ldrsb r3, [r1, r3] add r0, sp, 0x8 adds r1, r4, 0 adds r2, r5, 0 bl sub_804D154 str r6, [sp] mov r1, r9 ldrb r0, [r1, 0xD] str r0, [sp, 0x4] add r0, sp, 0x8 adds r1, r4, 0 adds r2, r5, 0 mov r3, r8 bl sub_804D2D0 add r0, sp, 0x8 adds r1, r4, 0 adds r2, r5, 0 mov r3, r9 bl sub_804D5B0 str r6, [sp] movs r0, 0 str r0, [sp, 0x4] add r0, sp, 0x8 adds r1, r4, 0 adds r2, r5, 0 mov r3, r8 bl sub_804D8C8 str r6, [sp] add r0, sp, 0x8 adds r1, r4, 0 adds r2, r5, 0 mov r3, r8 bl sub_804E590 mov r0, r9 ldrb r3, [r0, 0x9] add r0, sp, 0x8 adds r1, r4, 0 adds r2, r5, 0 bl sub_804F0D0 ldr r0, _0804B724 movs r1, 0 ldrsh r3, [r0, r1] add r0, sp, 0x8 adds r1, r4, 0 adds r2, r5, 0 bl sub_804EBC8 ldr r0, _0804B728 movs r1, 0 ldrsh r3, [r0, r1] add r0, sp, 0x8 adds r1, r4, 0 adds r2, r5, 0 bl sub_804EEE4 mov r0, r9 ldrb r3, [r0, 0x13] add r0, sp, 0x8 adds r1, r4, 0 adds r2, r5, 0 bl sub_804CBEC add r0, sp, 0x8 adds r1, r4, 0 adds r2, r5, 0 bl sub_804E03C add r0, sp, 0x8 adds r1, r4, 0 adds r2, r5, 0 bl sub_804D534 movs r3, 0xE5 lsls r3, 5 add sp, r3 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0804B718: .4byte 0xffffe360 _0804B71C: .4byte 0x00001c28 _0804B720: .4byte 0x00001c64 _0804B724: .4byte gUnknown_202F1B0 _0804B728: .4byte gUnknown_202F1B2 thumb_func_end sub_804B634 thumb_func_start sub_804B72C sub_804B72C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r4, _0804B9AC add sp, r4 movs r1, 0xE5 lsls r1, 5 add r1, sp str r0, [r1] movs r5, 0 movs r6, 0x1 ldr r1, _0804B9B0 add r1, sp str r5, [r1] movs r0, 0x5 str r0, [r1, 0x4] movs r0, 0x1C str r0, [r1, 0xC] movs r0, 0x33 str r0, [r1, 0x14] movs r0, 0x38 str r0, [r1, 0x18] movs r2, 0x10 str r2, [r1, 0x8] movs r0, 0x27 str r0, [r1, 0x10] ldr r1, _0804B9B4 add r1, sp movs r0, 0x2 str r0, [r1] movs r0, 0x7 str r0, [r1, 0x4] str r2, [r1, 0x8] movs r0, 0x19 str r0, [r1, 0xC] movs r0, 0x1E str r0, [r1, 0x10] add r0, sp, 0x8 movs r1, 0x6 movs r2, 0x4 bl sub_804D084 mov r2, sp adds r2, 0x3B ldr r3, _0804B9B8 add r3, sp str r2, [r3] mov r4, sp adds r4, 0x3C ldr r0, _0804B9BC add r0, sp str r4, [r0] mov r1, sp adds r1, 0x5B ldr r2, _0804B9C0 add r2, sp str r1, [r2] mov r3, sp adds r3, 0x5C movs r4, 0xE6 lsls r4, 5 add r4, sp str r3, [r4] mov r0, sp adds r0, 0x7B ldr r1, _0804B9C4 add r1, sp str r0, [r1] mov r2, sp adds r2, 0x7E ldr r3, _0804B9C8 add r3, sp str r2, [r3] add r1, sp, 0x68 add r0, sp, 0x8 movs r2, 0xF0 lsls r2, 1 movs r4, 0x6 _0804B7CC: strb r5, [r0, 0xA] strb r5, [r1, 0xA] adds r1, r2 adds r0, r2 subs r4, 0x1 cmp r4, 0 bne _0804B7CC movs r2, 0x6 subs r2, 0x1 movs r4, 0x4 cmp r4, 0 beq _0804B80C lsls r0, r2, 4 subs r0, r2 lsls r0, 5 add r0, sp adds r0, 0x8 add r1, sp, 0x8 ldr r3, _0804B9CC add r3, sp str r4, [r3] _0804B7F6: strb r5, [r1, 0xA] strb r5, [r0, 0xA] adds r0, 0x20 adds r1, 0x20 ldr r3, _0804B9CC add r3, sp ldr r4, [r3] subs r4, 0x1 str r4, [r3] cmp r4, 0 bne _0804B7F6 _0804B80C: movs r4, 0x1 cmp r4, r2 bge _0804B848 movs r1, 0x3 _0804B814: adds r5, r4, 0x1 mov r8, r5 cmp r1, 0x1 ble _0804B842 lsls r0, r4, 4 subs r0, r4 lsls r0, 5 add r0, sp adds r0, 0x8 adds r0, 0x20 subs r3, r1, 0x1 ldr r4, _0804B9CC add r4, sp str r3, [r4] _0804B830: strb r6, [r0, 0xA] adds r0, 0x20 ldr r3, _0804B9CC add r3, sp ldr r5, [r3] subs r5, 0x1 str r5, [r3] cmp r5, 0 bne _0804B830 _0804B842: mov r4, r8 cmp r4, r2 blt _0804B814 _0804B848: movs r4, 0 ldr r5, _0804B9D0 add r5, sp str r4, [r5] ldr r0, _0804B9CC add r0, sp str r4, [r0] cmp r4, 0x4 blt _0804B85C b _0804BA8C _0804B85C: movs r4, 0 ldr r2, _0804B9CC add r2, sp ldr r1, [r2] adds r1, 0x1 ldr r2, _0804B9D4 add r2, sp str r1, [r2] cmp r4, 0x6 blt _0804B872 b _0804BA7A _0804B872: ldr r3, _0804B9B0 add r3, sp ldr r5, _0804B9D8 add r5, sp str r3, [r5] ldr r0, _0804B9B4 add r0, sp ldr r1, _0804B9DC add r1, sp str r0, [r1] ldr r2, _0804B9CC add r2, sp ldr r2, [r2] lsls r0, r2, 2 ldr r3, [r1] adds r0, r3, r0 ldr r3, _0804B9E0 add r3, sp str r0, [r3] _0804B898: lsls r0, r4, 4 subs r0, r4 ldr r5, _0804B9CC add r5, sp ldr r5, [r5] adds r0, r5 lsls r0, 5 mov r7, sp adds r7, r0 adds r7, 0x8 ldrb r0, [r7, 0xA] cmp r0, 0 bne _0804B8B4 b _0804B9F4 _0804B8B4: lsls r0, r4, 2 ldr r1, _0804B9D8 add r1, sp ldr r1, [r1] adds r0, r1, r0 ldr r1, [r0] adds r2, r1, 0x2 mov r10, r2 ldr r3, _0804B9E0 add r3, sp ldr r3, [r3] ldr r2, [r3] adds r5, r2, 0x2 ldr r0, _0804B9E4 add r0, sp str r5, [r0] adds r4, 0x1 mov r9, r4 lsls r0, r4, 2 ldr r3, _0804B9D8 add r3, sp ldr r3, [r3] adds r0, r3, r0 ldr r4, [r0] subs r4, r1 subs r4, 0x3 ldr r5, _0804B9D4 add r5, sp ldr r5, [r5] lsls r0, r5, 2 ldr r1, _0804B9DC add r1, sp ldr r1, [r1] adds r0, r1, r0 ldr r5, [r0] subs r5, r2 subs r5, 0x3 movs r0, 0x5 adds r1, r4, 0 bl sub_808411C mov r8, r0 movs r0, 0x4 adds r1, r5, 0 bl sub_808411C adds r6, r0, 0 mov r2, r8 subs r4, r2 adds r0, r4, 0 bl sub_8084100 adds r4, r0, 0 add r4, r10 subs r5, r6 adds r0, r5, 0 bl sub_8084100 ldr r5, _0804B9E4 add r5, sp ldr r3, [r5] adds r3, r0 mov r10, r3 mov r0, r8 adds r3, r4, r0 add r6, r10 strh r4, [r7] strh r3, [r7, 0x4] mov r1, r10 strh r1, [r7, 0x2] strh r6, [r7, 0x6] mov r8, r9 ldr r5, _0804B9D0 add r5, sp ldr r2, [r5] adds r2, 0x1 ldr r5, _0804B9E8 add r5, sp str r2, [r5] cmp r4, r3 bge _0804B99E _0804B956: mov r5, r10 adds r7, r4, 0x1 cmp r5, r6 bge _0804B998 ldr r0, _0804B9EC mov r9, r0 _0804B962: adds r0, r4, 0 adds r1, r5, 0 ldr r2, _0804B9F0 add r2, sp str r3, [r2] bl sub_8049590 ldrh r1, [r0] mov r2, r9 ands r1, r2 movs r2, 0x1 orrs r1, r2 strh r1, [r0] adds r0, r4, 0 adds r1, r5, 0 bl sub_8049590 ldr r1, _0804B9D0 add r1, sp ldrb r1, [r1] strb r1, [r0, 0x9] adds r5, 0x1 ldr r2, _0804B9F0 add r2, sp ldr r3, [r2] cmp r5, r6 blt _0804B962 _0804B998: adds r4, r7, 0 cmp r4, r3 blt _0804B956 _0804B99E: ldr r3, _0804B9E8 add r3, sp ldr r3, [r3] ldr r4, _0804B9D0 add r4, sp str r3, [r4] b _0804BA72 .align 2, 0 _0804B9AC: .4byte 0xffffe320 _0804B9B0: .4byte 0x00001c28 _0804B9B4: .4byte 0x00001c64 _0804B9B8: .4byte 0x00001cd4 _0804B9BC: .4byte 0x00001cd8 _0804B9C0: .4byte 0x00001cbc _0804B9C4: .4byte 0x00001cc4 _0804B9C8: .4byte 0x00001cc8 _0804B9CC: .4byte 0x00001ca4 _0804B9D0: .4byte 0x00001ca8 _0804B9D4: .4byte 0x00001ccc _0804B9D8: .4byte 0x00001cac _0804B9DC: .4byte 0x00001cb4 _0804B9E0: .4byte 0x00001cb8 _0804B9E4: .4byte 0x00001cb0 _0804B9E8: .4byte 0x00001cd0 _0804B9EC: .4byte 0x0000fffc _0804B9F0: .4byte 0x00001cdc _0804B9F4: lsls r0, r4, 2 ldr r5, _0804BBE8 add r5, sp ldr r5, [r5] adds r0, r5, r0 ldr r2, [r0] adds r0, r2, 0x1 ldr r1, _0804BBEC add r1, sp ldr r1, [r1] ldr r3, [r1] adds r6, r3, 0x1 adds r4, 0x1 mov r8, r4 lsls r1, r4, 2 adds r1, r5, r1 ldr r1, [r1] subs r1, r2 subs r1, 0x3 ldr r5, _0804BBF0 add r5, sp ldr r5, [r5] lsls r2, r5, 2 ldr r4, _0804BBF4 add r4, sp ldr r4, [r4] adds r2, r4, r2 ldr r4, [r2] subs r4, r3 subs r4, 0x3 adds r1, r0, r1 bl sub_808411C adds r5, r0, 0 adds r4, r6, r4 adds r0, r6, 0 adds r1, r4, 0 bl sub_808411C adds r4, r0, 0 strh r5, [r7] adds r0, r5, 0x1 strh r0, [r7, 0x4] strh r4, [r7, 0x2] adds r0, r4, 0x1 strh r0, [r7, 0x6] adds r0, r5, 0 adds r1, r4, 0 bl sub_8049590 ldrh r1, [r0] ldr r3, _0804BBF8 adds r2, r3, 0 ands r1, r2 movs r2, 0x1 orrs r1, r2 strh r1, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_8049590 movs r1, 0xFF strb r1, [r0, 0x9] _0804BA72: mov r4, r8 cmp r4, 0x6 bge _0804BA7A b _0804B898 _0804BA7A: ldr r4, _0804BBF0 add r4, sp ldr r4, [r4] ldr r5, _0804BBFC add r5, sp str r4, [r5] cmp r4, 0x4 bge _0804BA8C b _0804B85C _0804BA8C: add r1, sp, 0x8 movs r6, 0 movs r0, 0x1 strb r0, [r1, 0x16] ldr r1, _0804BC00 add r1, sp strb r0, [r1] movs r1, 0xFF lsls r1, 1 add r1, sp strb r0, [r1] ldr r1, _0804BC04 add r1, sp strb r0, [r1] ldr r1, _0804BC08 add r1, sp strb r0, [r1] ldr r1, _0804BC0C add r1, sp strb r0, [r1] ldr r1, _0804BC10 add r1, sp strb r0, [r1] ldr r1, _0804BC14 add r1, sp strb r0, [r1] ldr r1, _0804BC18 add r1, sp strb r0, [r1] ldr r1, _0804BC1C add r1, sp strb r0, [r1] add r1, sp, 0x8 strb r0, [r1, 0x14] ldr r5, _0804BC20 add r5, sp ldr r5, [r5] strb r0, [r5] ldr r1, _0804BC24 add r1, sp ldr r1, [r1] strb r0, [r1] ldr r2, _0804BC28 add r2, sp ldr r2, [r2] strb r0, [r2] movs r3, 0xE6 lsls r3, 5 add r3, sp ldr r3, [r3] strb r0, [r3] ldr r4, _0804BC2C add r4, sp ldr r4, [r4] strb r0, [r4] ldr r5, _0804BC30 add r5, sp ldr r5, [r5] strb r0, [r5] ldr r1, _0804BC34 add r1, sp strb r0, [r1] ldr r1, _0804BC38 add r1, sp strb r0, [r1] ldr r1, _0804BC3C add r1, sp strb r0, [r1] ldr r1, _0804BC40 add r1, sp strb r0, [r1] ldr r1, _0804BC44 add r1, sp strb r0, [r1] ldr r1, _0804BC48 add r1, sp strb r0, [r1] ldr r1, _0804BC4C add r1, sp strb r0, [r1] ldr r1, _0804BC50 add r1, sp strb r0, [r1] ldr r1, _0804BC54 add r1, sp strb r0, [r1] ldr r1, _0804BC58 add r1, sp strb r0, [r1] ldr r1, _0804BC5C add r1, sp strb r0, [r1] ldr r1, _0804BC60 add r1, sp strb r0, [r1] ldr r1, _0804BC64 add r1, sp strb r0, [r1] ldr r1, _0804BC68 add r1, sp strb r0, [r1] ldr r1, _0804BC6C add r1, sp strb r0, [r1] add r0, sp, 0x8 movs r1, 0x6 movs r2, 0x4 movs r4, 0xE5 lsls r4, 5 add r4, sp ldr r3, [r4] bl sub_804D5B0 ldr r5, _0804BC70 add r5, sp ldr r4, _0804BC74 add r4, sp str r4, [sp] str r6, [sp, 0x4] add r0, sp, 0x8 movs r1, 0x6 movs r2, 0x4 adds r3, r5, 0 bl sub_804D8C8 str r4, [sp] add r0, sp, 0x8 movs r1, 0x6 movs r2, 0x4 adds r3, r5, 0 bl sub_804E590 ldr r0, _0804BC78 movs r5, 0 ldrsh r3, [r0, r5] add r0, sp, 0x8 movs r1, 0x6 movs r2, 0x4 bl sub_804EBC8 ldr r0, _0804BC7C movs r1, 0 ldrsh r3, [r0, r1] add r0, sp, 0x8 movs r1, 0x6 movs r2, 0x4 bl sub_804EEE4 movs r2, 0xE5 lsls r2, 5 add r2, sp ldr r2, [r2] ldrb r3, [r2, 0x13] add r0, sp, 0x8 movs r1, 0x6 movs r2, 0x4 bl sub_804CBEC add r0, sp, 0x8 movs r1, 0x6 movs r2, 0x4 bl sub_804E03C movs r3, 0xE7 lsls r3, 5 add sp, r3 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804BBE8: .4byte 0x00001cac _0804BBEC: .4byte 0x00001cb8 _0804BBF0: .4byte 0x00001ccc _0804BBF4: .4byte 0x00001cb4 _0804BBF8: .4byte 0x0000fffc _0804BBFC: .4byte 0x00001ca4 _0804BC00: .4byte 0x000001fd _0804BC04: .4byte 0x000003dd _0804BC08: .4byte 0x000003de _0804BC0C: .4byte 0x000005bd _0804BC10: .4byte 0x000005be _0804BC14: .4byte 0x0000079d _0804BC18: .4byte 0x0000079e _0804BC1C: .4byte 0x0000097d _0804BC20: .4byte 0x00001cd4 _0804BC24: .4byte 0x00001cd8 _0804BC28: .4byte 0x00001cbc _0804BC2C: .4byte 0x00001cc4 _0804BC30: .4byte 0x00001cc8 _0804BC34: .4byte 0x0000025d _0804BC38: .4byte 0x0000025e _0804BC3C: .4byte 0x0000043d _0804BC40: .4byte 0x0000043e _0804BC44: .4byte 0x0000061d _0804BC48: .4byte 0x0000061e _0804BC4C: .4byte 0x000007fd _0804BC50: .4byte 0x000007fe _0804BC54: .4byte 0x000009dd _0804BC58: .4byte 0x0000097c _0804BC5C: .4byte 0x0000099b _0804BC60: .4byte 0x0000099c _0804BC64: .4byte 0x000009bb _0804BC68: .4byte 0x000009bc _0804BC6C: .4byte 0x000009db _0804BC70: .4byte 0x00001c28 _0804BC74: .4byte 0x00001c64 _0804BC78: .4byte gUnknown_202F1B0 _0804BC7C: .4byte gUnknown_202F1B2 thumb_func_end sub_804B72C thumb_func_start sub_804BC80 sub_804BC80: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r4, _0804BED0 add sp, r4 movs r1, 0xE5 lsls r1, 5 add r1, sp str r0, [r1] movs r4, 0x1 movs r5, 0 ldr r1, _0804BED4 add r1, sp str r5, [r1] movs r0, 0xB str r0, [r1, 0x4] movs r0, 0x16 str r0, [r1, 0x8] movs r0, 0x21 str r0, [r1, 0xC] movs r0, 0x2C str r0, [r1, 0x10] movs r0, 0x38 str r0, [r1, 0x14] ldr r1, _0804BED8 add r1, sp str r4, [r1] movs r0, 0x9 str r0, [r1, 0x4] movs r0, 0x10 str r0, [r1, 0x8] movs r0, 0x17 str r0, [r1, 0xC] movs r0, 0x1F str r0, [r1, 0x10] add r0, sp, 0x8 movs r1, 0x5 movs r2, 0x4 bl sub_804D084 add r6, sp, 0x70 add r1, sp, 0x68 add r0, sp, 0x8 movs r3, 0xF0 lsls r3, 1 movs r2, 0x5 _0804BCE0: strb r4, [r0, 0xA] strb r4, [r1, 0xA] adds r1, r3 adds r0, r3 subs r2, 0x1 cmp r2, 0 bne _0804BCE0 movs r3, 0x5 subs r3, 0x1 movs r2, 0x4 cmp r2, 0 beq _0804BD1A lsls r0, r3, 4 subs r0, r3 lsls r0, 5 add r0, sp adds r0, 0x8 add r1, sp, 0x8 mov r10, r2 _0804BD06: strb r4, [r1, 0xA] strb r4, [r0, 0xA] adds r0, 0x20 adds r1, 0x20 movs r2, 0x1 negs r2, r2 add r10, r2 mov r2, r10 cmp r2, 0 bne _0804BD06 _0804BD1A: movs r2, 0x1 cmp r2, r3 bge _0804BD58 movs r1, 0x3 _0804BD22: adds r4, r2, 0x1 ldr r0, _0804BEDC add r0, sp str r4, [r0] cmp r1, 0x1 ble _0804BD4E lsls r0, r2, 4 subs r0, r2 lsls r0, 5 add r0, sp adds r0, 0x8 adds r0, 0x20 subs r2, r1, 0x1 mov r10, r2 _0804BD3E: strb r5, [r0, 0xA] adds r0, 0x20 movs r4, 0x1 negs r4, r4 add r10, r4 mov r2, r10 cmp r2, 0 bne _0804BD3E _0804BD4E: ldr r4, _0804BEDC add r4, sp ldr r2, [r4] cmp r2, r3 blt _0804BD22 _0804BD58: add r0, sp, 0x8 movs r1, 0x1 strb r1, [r0, 0x8] movs r0, 0xF2 lsls r0, 3 add r0, sp strb r1, [r0] strb r1, [r6] movs r0, 0xFE lsls r0, 3 add r0, sp strb r1, [r0] movs r5, 0 ldr r6, _0804BEE0 add r6, sp str r5, [r6] mov r10, r5 cmp r5, 0x4 blt _0804BD80 b _0804BFAC _0804BD80: movs r0, 0x4 movs r1, 0xE6 lsls r1, 5 add r1, sp str r0, [r1] _0804BD8A: movs r2, 0 cmp r2, 0x5 blt _0804BD92 b _0804BF94 _0804BD92: ldr r3, _0804BED4 add r3, sp ldr r4, _0804BEE4 add r4, sp str r3, [r4] ldr r5, _0804BED8 add r5, sp ldr r6, _0804BEE8 add r6, sp str r5, [r6] mov r1, r10 lsls r0, r1, 2 adds r0, r5, r0 ldr r3, _0804BEEC add r3, sp str r0, [r3] _0804BDB2: lsls r0, r2, 4 subs r0, r2 add r0, r10 lsls r0, 5 mov r7, sp adds r7, r0 adds r7, 0x8 ldrb r0, [r7, 0x8] adds r4, r2, 0x1 ldr r5, _0804BEDC add r5, sp str r4, [r5] cmp r0, 0 beq _0804BDD0 b _0804BF88 _0804BDD0: ldrb r0, [r7, 0xA] cmp r0, 0 bne _0804BDD8 b _0804BF00 _0804BDD8: lsls r0, r2, 2 ldr r6, _0804BEE4 add r6, sp ldr r6, [r6] adds r0, r6, r0 ldr r1, [r0] adds r0, r1, 0x2 mov r9, r0 ldr r3, _0804BEEC add r3, sp ldr r3, [r3] ldr r2, [r3] adds r4, r2, 0x2 ldr r5, _0804BEF0 add r5, sp str r4, [r5] ldr r6, _0804BEDC add r6, sp ldr r6, [r6] lsls r0, r6, 2 ldr r3, _0804BEE4 add r3, sp ldr r3, [r3] adds r0, r3, r0 ldr r4, [r0] subs r4, r1 subs r4, 0x3 ldr r5, _0804BEE8 add r5, sp ldr r5, [r5] movs r6, 0xE6 lsls r6, 5 add r6, sp ldr r6, [r6] adds r0, r5, r6 ldr r5, [r0] subs r5, r2 subs r5, 0x3 movs r0, 0x5 adds r1, r4, 0 bl sub_808411C mov r8, r0 movs r0, 0x4 adds r1, r5, 0 bl sub_808411C adds r6, r0, 0 mov r0, r8 subs r4, r0 adds r0, r4, 0 bl sub_8084100 adds r4, r0, 0 add r4, r9 subs r5, r6 adds r0, r5, 0 bl sub_8084100 ldr r2, _0804BEF0 add r2, sp ldr r1, [r2] adds r1, r0 mov r9, r1 mov r5, r8 adds r3, r4, r5 add r6, r9 strh r4, [r7] strh r3, [r7, 0x4] strh r1, [r7, 0x2] strh r6, [r7, 0x6] ldr r1, _0804BEE0 add r1, sp ldr r0, [r1] adds r0, 0x1 ldr r1, _0804BEF4 add r1, sp str r0, [r1] cmp r4, r3 bge _0804BEC0 _0804BE78: mov r5, r9 adds r7, r4, 0x1 cmp r5, r6 bge _0804BEBA ldr r2, _0804BEF8 mov r8, r2 _0804BE84: adds r0, r4, 0 adds r1, r5, 0 ldr r2, _0804BEFC add r2, sp str r3, [r2] bl sub_8049590 ldrh r1, [r0] mov r2, r8 ands r1, r2 movs r2, 0x1 orrs r1, r2 strh r1, [r0] adds r0, r4, 0 adds r1, r5, 0 bl sub_8049590 ldr r1, _0804BEE0 add r1, sp ldrb r1, [r1] strb r1, [r0, 0x9] adds r5, 0x1 ldr r2, _0804BEFC add r2, sp ldr r3, [r2] cmp r5, r6 blt _0804BE84 _0804BEBA: adds r4, r7, 0 cmp r4, r3 blt _0804BE78 _0804BEC0: ldr r3, _0804BEF4 add r3, sp ldr r3, [r3] ldr r4, _0804BEE0 add r4, sp str r3, [r4] b _0804BF88 .align 2, 0 _0804BED0: .4byte 0xffffe338 _0804BED4: .4byte 0x00001c28 _0804BED8: .4byte 0x00001c64 _0804BEDC: .4byte 0x00001cb8 _0804BEE0: .4byte 0x00001ca4 _0804BEE4: .4byte 0x00001ca8 _0804BEE8: .4byte 0x00001cb0 _0804BEEC: .4byte 0x00001cb4 _0804BEF0: .4byte 0x00001cac _0804BEF4: .4byte 0x00001cbc _0804BEF8: .4byte 0x0000fffc _0804BEFC: .4byte 0x00001cc4 _0804BF00: lsls r0, r2, 2 ldr r4, _0804C080 add r4, sp ldr r4, [r4] adds r0, r4, r0 ldr r2, [r0] adds r0, r2, 0x1 ldr r5, _0804C084 add r5, sp ldr r5, [r5] ldr r3, [r5] adds r6, r3, 0x1 mov r8, r6 ldr r4, _0804C088 add r4, sp ldr r4, [r4] lsls r1, r4, 2 ldr r5, _0804C080 add r5, sp ldr r5, [r5] adds r1, r5, r1 ldr r1, [r1] subs r1, r2 subs r1, 0x3 ldr r6, _0804C08C add r6, sp ldr r6, [r6] movs r4, 0xE6 lsls r4, 5 add r4, sp ldr r4, [r4] adds r2, r6, r4 ldr r4, [r2] subs r4, r3 subs r4, 0x3 adds r1, r0, r1 bl sub_808411C adds r5, r0, 0 add r4, r8 mov r0, r8 adds r1, r4, 0 bl sub_808411C adds r4, r0, 0 strh r5, [r7] adds r0, r5, 0x1 strh r0, [r7, 0x4] strh r4, [r7, 0x2] adds r0, r4, 0x1 strh r0, [r7, 0x6] adds r0, r5, 0 adds r1, r4, 0 bl sub_8049590 ldrh r1, [r0] ldr r6, _0804C090 adds r2, r6, 0 ands r1, r2 movs r2, 0x1 orrs r1, r2 strh r1, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_8049590 movs r1, 0xFF strb r1, [r0, 0x9] _0804BF88: ldr r0, _0804C088 add r0, sp ldr r2, [r0] cmp r2, 0x5 bge _0804BF94 b _0804BDB2 _0804BF94: movs r2, 0xE6 lsls r2, 5 add r2, sp ldr r1, [r2] adds r1, 0x4 str r1, [r2] movs r3, 0x1 add r10, r3 mov r4, r10 cmp r4, 0x4 bge _0804BFAC b _0804BD8A _0804BFAC: movs r2, 0x1 movs r1, 0x1 movs r3, 0xF add r4, sp, 0x1C _0804BFB4: movs r5, 0 mov r10, r5 lsls r0, r3, 5 adds r0, r4 _0804BFBC: strb r1, [r0] strb r1, [r0, 0x1F] adds r0, 0x20 movs r6, 0x1 add r10, r6 mov r5, r10 cmp r5, 0x2 ble _0804BFBC movs r0, 0xF0 lsls r0, 1 adds r3, 0xF adds r2, 0x1 cmp r2, 0x3 ble _0804BFB4 mov r10, r6 movs r5, 0x1 adds r4, r0, 0 mov r6, sp adds r6, r4 adds r6, 0x8 _0804BFE4: movs r2, 0 mov r1, r10 lsls r0, r1, 5 mov r3, r10 adds r3, 0x1 adds r1, r0, r6 add r0, sp adds r0, 0x8 _0804BFF4: strb r5, [r0, 0x16] strb r5, [r1, 0x15] adds r1, r4 adds r0, r4 adds r2, 0x1 cmp r2, 0x3 ble _0804BFF4 mov r10, r3 cmp r3, 0x2 ble _0804BFE4 ldr r5, _0804C094 add r5, sp ldr r4, _0804C098 add r4, sp str r4, [sp] movs r0, 0x1 str r0, [sp, 0x4] add r0, sp, 0x8 movs r1, 0x5 movs r2, 0x4 adds r3, r5, 0 bl sub_804D8C8 str r4, [sp] add r0, sp, 0x8 movs r1, 0x5 movs r2, 0x4 adds r3, r5, 0 bl sub_804E590 ldr r0, _0804C09C movs r2, 0 ldrsh r3, [r0, r2] add r0, sp, 0x8 movs r1, 0x5 movs r2, 0x4 bl sub_804EBC8 ldr r0, _0804C0A0 movs r4, 0 ldrsh r3, [r0, r4] add r0, sp, 0x8 movs r1, 0x5 movs r2, 0x4 bl sub_804EEE4 movs r5, 0xE5 lsls r5, 5 add r5, sp ldr r5, [r5] ldrb r3, [r5, 0x13] add r0, sp, 0x8 movs r1, 0x5 movs r2, 0x4 bl sub_804CBEC add r0, sp, 0x8 movs r1, 0x5 movs r2, 0x4 bl sub_804E03C ldr r3, _0804C0A4 add sp, r3 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804C080: .4byte 0x00001ca8 _0804C084: .4byte 0x00001cb4 _0804C088: .4byte 0x00001cb8 _0804C08C: .4byte 0x00001cb0 _0804C090: .4byte 0x0000fffc _0804C094: .4byte 0x00001c28 _0804C098: .4byte 0x00001c64 _0804C09C: .4byte gUnknown_202F1B0 _0804C0A0: .4byte gUnknown_202F1B2 _0804C0A4: .4byte 0x00001cc8 thumb_func_end sub_804BC80 thumb_func_start sub_804C0A8 sub_804C0A8: push {r4-r6,lr} mov r6, r8 push {r6} ldr r4, _0804C17C add sp, r4 adds r6, r0, 0 ldr r4, _0804C180 add r4, sp movs r0, 0 str r0, [r4] movs r0, 0xB str r0, [r4, 0x4] movs r0, 0x16 str r0, [r4, 0x8] movs r0, 0x21 str r0, [r4, 0xC] movs r0, 0x2C str r0, [r4, 0x10] movs r0, 0x38 str r0, [r4, 0x14] ldr r5, _0804C184 add r5, sp movs r0, 0x4 str r0, [r5] movs r0, 0xF str r0, [r5, 0x4] movs r0, 0x1 mov r8, r0 add r0, sp, 0x8 movs r1, 0x5 movs r2, 0x1 bl sub_804D084 movs r3, 0x1 ldrsb r3, [r6, r3] add r0, sp, 0x8 movs r1, 0x5 movs r2, 0x1 bl sub_804D154 str r5, [sp] ldrb r0, [r6, 0xD] str r0, [sp, 0x4] add r0, sp, 0x8 movs r1, 0x5 movs r2, 0x1 adds r3, r4, 0 bl sub_804D2D0 add r0, sp, 0x8 movs r1, 0x5 movs r2, 0x1 adds r3, r6, 0 bl sub_804D5B0 str r5, [sp] mov r1, r8 str r1, [sp, 0x4] add r0, sp, 0x8 movs r1, 0x5 movs r2, 0x1 adds r3, r4, 0 bl sub_804D8C8 str r5, [sp] add r0, sp, 0x8 movs r1, 0x5 movs r2, 0x1 adds r3, r4, 0 bl sub_804E590 ldr r0, _0804C188 movs r1, 0 ldrsh r3, [r0, r1] add r0, sp, 0x8 movs r1, 0x5 movs r2, 0x1 bl sub_804EBC8 ldr r0, _0804C18C movs r1, 0 ldrsh r3, [r0, r1] add r0, sp, 0x8 movs r1, 0x5 movs r2, 0x1 bl sub_804EEE4 ldrb r3, [r6, 0x13] add r0, sp, 0x8 movs r1, 0x5 movs r2, 0x1 bl sub_804CBEC add r0, sp, 0x8 movs r1, 0x5 movs r2, 0x1 bl sub_804E03C movs r3, 0xE5 lsls r3, 5 add sp, r3 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0804C17C: .4byte 0xffffe360 _0804C180: .4byte 0x00001c28 _0804C184: .4byte 0x00001c64 _0804C188: .4byte gUnknown_202F1B0 _0804C18C: .4byte gUnknown_202F1B2 thumb_func_end sub_804C0A8 thumb_func_start sub_804C190 sub_804C190: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r4, _0804C2CC add sp, r4 mov r10, r0 ldr r1, _0804C2D0 add r1, sp movs r2, 0xB str r2, [r1] movs r0, 0x16 str r0, [r1, 0x4] movs r0, 0x21 str r0, [r1, 0x8] movs r0, 0x2C str r0, [r1, 0xC] ldr r1, _0804C2D4 add r1, sp movs r0, 0x2 str r0, [r1] str r2, [r1, 0x4] movs r0, 0x14 str r0, [r1, 0x8] movs r0, 0x1E str r0, [r1, 0xC] movs r0, 0x3 mov r8, r0 movs r7, 0x3 add r0, sp, 0x8 movs r1, 0x3 movs r2, 0x3 bl sub_804D084 movs r1, 0 add r5, sp, 0x50 movs r0, 0x3E add r0, sp mov r9, r0 mov r0, r10 ldrb r0, [r0, 0xD] mov r12, r0 _0804C1E6: adds r3, r1, 0x1 cmp r7, 0 beq _0804C204 lsls r0, r1, 4 subs r0, r1 movs r2, 0x1 lsls r0, 5 add r0, sp adds r0, 0x8 adds r1, r7, 0 _0804C1FA: strb r2, [r0, 0xA] adds r0, 0x20 subs r1, 0x1 cmp r1, 0 bne _0804C1FA _0804C204: adds r1, r3, 0 cmp r1, r8 blt _0804C1E6 add r0, sp, 0x8 movs r4, 0x1 strb r4, [r0, 0x8] add r0, sp, 0x3D0 strb r4, [r0] strb r4, [r5] movs r0, 0x82 lsls r0, 3 add r0, sp strb r4, [r0] ldr r6, _0804C2D0 add r6, sp ldr r5, _0804C2D4 add r5, sp str r5, [sp] mov r1, r12 str r1, [sp, 0x4] add r0, sp, 0x8 mov r1, r8 adds r2, r7, 0 adds r3, r6, 0 bl sub_804D2D0 mov r0, r9 strb r4, [r0] ldr r0, _0804C2D8 add r0, sp strb r4, [r0] ldr r0, _0804C2DC add r0, sp strb r4, [r0] ldr r0, _0804C2E0 add r0, sp strb r4, [r0] add r0, sp, 0x1FC strb r4, [r0] ldr r0, _0804C2E4 add r0, sp strb r4, [r0] add r0, sp, 0x21C strb r4, [r0] ldr r0, _0804C2E8 add r0, sp strb r4, [r0] str r5, [sp] str r4, [sp, 0x4] add r0, sp, 0x8 mov r1, r8 adds r2, r7, 0 adds r3, r6, 0 bl sub_804D8C8 str r5, [sp] add r0, sp, 0x8 mov r1, r8 adds r2, r7, 0 adds r3, r6, 0 bl sub_804E590 ldr r0, _0804C2EC movs r1, 0 ldrsh r3, [r0, r1] add r0, sp, 0x8 mov r1, r8 adds r2, r7, 0 bl sub_804EBC8 ldr r0, _0804C2F0 movs r1, 0 ldrsh r3, [r0, r1] add r0, sp, 0x8 mov r1, r8 adds r2, r7, 0 bl sub_804EEE4 mov r0, r10 ldrb r3, [r0, 0x13] add r0, sp, 0x8 mov r1, r8 adds r2, r7, 0 bl sub_804CBEC add r0, sp, 0x8 mov r1, r8 adds r2, r7, 0 bl sub_804E03C movs r3, 0xE5 lsls r3, 5 add sp, r3 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804C2CC: .4byte 0xffffe360 _0804C2D0: .4byte 0x00001c28 _0804C2D4: .4byte 0x00001c64 _0804C2D8: .4byte 0x0000021d _0804C2DC: .4byte 0x0000021e _0804C2E0: .4byte 0x000003fd _0804C2E4: .4byte 0x0000021b _0804C2E8: .4byte 0x0000023b _0804C2EC: .4byte gUnknown_202F1B0 _0804C2F0: .4byte gUnknown_202F1B2 thumb_func_end sub_804C190 thumb_func_start sub_804C2F4 sub_804C2F4: push {r4-r7,lr} mov r7, r8 push {r7} ldr r4, _0804C420 add sp, r4 mov r8, r0 ldr r1, _0804C424 add r1, sp movs r0, 0x5 str r0, [r1] movs r0, 0xF str r0, [r1, 0x4] movs r0, 0x23 str r0, [r1, 0x8] movs r0, 0x32 str r0, [r1, 0xC] ldr r1, _0804C428 add r1, sp movs r0, 0x2 str r0, [r1] movs r0, 0xB str r0, [r1, 0x4] movs r0, 0x14 str r0, [r1, 0x8] movs r0, 0x1E str r0, [r1, 0xC] movs r7, 0x3 movs r6, 0x3 add r0, sp, 0x8 movs r1, 0x3 movs r2, 0x3 bl sub_804D084 movs r1, 0 mov r0, r8 ldrb r4, [r0, 0xD] _0804C33C: adds r3, r1, 0x1 cmp r6, 0 beq _0804C35A lsls r0, r1, 4 subs r0, r1 movs r2, 0x1 lsls r0, 5 add r0, sp adds r0, 0x8 adds r1, r6, 0 _0804C350: strb r2, [r0, 0xA] adds r0, 0x20 subs r1, 0x1 cmp r1, 0 bne _0804C350 _0804C35A: adds r1, r3, 0 cmp r1, r7 blt _0804C33C ldr r3, _0804C424 add r3, sp ldr r0, _0804C428 add r0, sp str r0, [sp] str r4, [sp, 0x4] add r0, sp, 0x8 adds r1, r7, 0 adds r2, r6, 0 bl sub_804D2D0 movs r4, 0x1 ldr r3, _0804C42C add r3, sp ldr r0, _0804C430 add r0, sp add r2, sp, 0x8 movs r1, 0x2 _0804C384: strb r4, [r2, 0x16] strb r4, [r0] strb r4, [r0, 0x1] strb r4, [r3] adds r3, 0x20 adds r0, 0x20 adds r2, 0x20 subs r1, 0x1 cmp r1, 0 bge _0804C384 ldr r5, _0804C424 add r5, sp ldr r4, _0804C428 add r4, sp str r4, [sp] movs r0, 0x1 str r0, [sp, 0x4] add r0, sp, 0x8 adds r1, r7, 0 adds r2, r6, 0 adds r3, r5, 0 bl sub_804D8C8 movs r0, 0x1 movs r1, 0 movs r2, 0x1 add r3, sp, 0x8 bl sub_804C43C movs r0, 0x1 movs r1, 0 movs r2, 0x2 add r3, sp, 0x8 bl sub_804C43C str r4, [sp] add r0, sp, 0x8 adds r1, r7, 0 adds r2, r6, 0 adds r3, r5, 0 bl sub_804E590 ldr r0, _0804C434 movs r1, 0 ldrsh r3, [r0, r1] add r0, sp, 0x8 adds r1, r7, 0 adds r2, r6, 0 bl sub_804EBC8 ldr r0, _0804C438 movs r1, 0 ldrsh r3, [r0, r1] add r0, sp, 0x8 adds r1, r7, 0 adds r2, r6, 0 bl sub_804EEE4 mov r0, r8 ldrb r3, [r0, 0x13] add r0, sp, 0x8 adds r1, r7, 0 adds r2, r6, 0 bl sub_804CBEC add r0, sp, 0x8 adds r1, r7, 0 adds r2, r6, 0 bl sub_804E03C movs r3, 0xE5 lsls r3, 5 add sp, r3 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804C420: .4byte 0xffffe360 _0804C424: .4byte 0x00001c28 _0804C428: .4byte 0x00001c64 _0804C42C: .4byte 0x000003dd _0804C430: .4byte 0x000001fd _0804C434: .4byte gUnknown_202F1B0 _0804C438: .4byte gUnknown_202F1B2 thumb_func_end sub_804C2F4 thumb_func_start sub_804C43C sub_804C43C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x20 str r0, [sp] str r3, [sp, 0x4] lsls r7, r1, 5 lsls r0, 4 str r0, [sp, 0xC] ldr r3, [sp] subs r0, r3 lsls r0, 5 ldr r4, [sp, 0x4] adds r0, r4 adds r3, r7, r0 adds r6, r1, r2 lsls r1, r6, 5 adds r2, r1, r0 movs r5, 0 ldrsh r1, [r2, r5] adds r4, r1, 0 ldrh r0, [r3] mov r8, r0 movs r5, 0 ldrsh r0, [r3, r5] cmp r1, r0 ble _0804C478 mov r4, r8 _0804C478: lsls r0, r4, 16 asrs r0, 16 str r0, [sp, 0x8] movs r1, 0x2 ldrsh r0, [r3, r1] mov r10, r0 movs r4, 0x4 ldrsh r1, [r2, r4] adds r4, r1, 0 ldrh r5, [r3, 0x4] mov r8, r5 movs r5, 0x4 ldrsh r0, [r3, r5] cmp r1, r0 bge _0804C498 mov r4, r8 _0804C498: lsls r0, r4, 16 asrs r0, 16 str r0, [sp, 0x10] movs r1, 0x6 ldrsh r0, [r2, r1] mov r8, r0 movs r2, 0 ldrsh r0, [r3, r2] mov r1, r10 bl sub_804954C ldrb r0, [r0, 0x9] mov r9, r0 ldr r5, [sp, 0x8] str r7, [sp, 0x1C] ldr r3, [sp, 0xC] str r3, [sp, 0x18] str r6, [sp, 0x14] ldr r4, [sp, 0x10] cmp r5, r4 bge _0804C4F2 _0804C4C2: mov r4, r10 adds r6, r5, 0x1 cmp r10, r8 bge _0804C4EA ldr r0, _0804C538 adds r7, r0, 0 _0804C4CE: adds r0, r5, 0 adds r1, r4, 0 bl sub_8049590 ldrh r1, [r0] ands r1, r7 movs r2, 0x1 orrs r1, r2 strh r1, [r0] mov r1, r9 strb r1, [r0, 0x9] adds r4, 0x1 cmp r4, r8 blt _0804C4CE _0804C4EA: adds r5, r6, 0 ldr r2, [sp, 0x10] cmp r5, r2 blt _0804C4C2 _0804C4F2: ldr r3, [sp, 0x18] ldr r4, [sp] subs r1, r3, r4 lsls r1, 5 ldr r5, [sp, 0x4] adds r1, r5 ldr r0, [sp, 0x1C] adds r2, r0, r1 movs r3, 0 mov r4, sp ldrh r4, [r4, 0x8] strh r4, [r2] mov r5, sp ldrh r5, [r5, 0x10] strh r5, [r2, 0x4] mov r0, r10 strh r0, [r2, 0x2] mov r4, r8 strh r4, [r2, 0x6] ldr r5, [sp, 0x14] lsls r0, r5, 5 adds r0, r1 movs r1, 0x1 strb r1, [r0, 0x12] strb r1, [r2, 0x12] strb r3, [r0, 0xB] strb r1, [r0, 0x11] add sp, 0x20 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804C538: .4byte 0x0000fffc thumb_func_end sub_804C43C thumb_func_start sub_804C53C sub_804C53C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r4, _0804C6F8 add sp, r4 mov r10, r2 adds r7, r0, 0 adds r6, r1, 0 ldr r0, _0804C6FC add r0, sp ldr r1, _0804C700 add r1, sp adds r2, r7, 0 adds r3, r6, 0 bl sub_804D024 add r0, sp, 0x8 adds r1, r7, 0 adds r2, r6, 0 bl sub_804D084 movs r2, 0 cmp r2, r7 bge _0804C594 _0804C570: adds r3, r2, 0x1 cmp r6, 0 ble _0804C58E lsls r0, r2, 4 subs r0, r2 movs r2, 0x1 lsls r0, 5 add r0, sp adds r0, 0x8 adds r1, r6, 0 _0804C584: strb r2, [r0, 0xA] adds r0, 0x20 subs r1, 0x1 cmp r1, 0 bne _0804C584 _0804C58E: adds r2, r3, 0 cmp r2, r7 blt _0804C570 _0804C594: movs r2, 0x1 subs r0, r7, 0x1 mov r8, r0 subs r1, r6, 0x1 mov r9, r1 mov r0, r10 ldrb r0, [r0, 0xD] mov r12, r0 cmp r2, r8 bge _0804C5D2 mov r4, r9 mov r5, r8 _0804C5AC: adds r3, r2, 0x1 cmp r4, 0x1 ble _0804C5CC lsls r0, r2, 4 subs r0, r2 movs r2, 0x1 lsls r0, 5 add r0, sp adds r0, 0x8 adds r0, 0x20 subs r1, r4, 0x1 _0804C5C2: strb r2, [r0, 0x8] adds r0, 0x20 subs r1, 0x1 cmp r1, 0 bne _0804C5C2 _0804C5CC: adds r2, r3, 0 cmp r2, r5 blt _0804C5AC _0804C5D2: ldr r3, _0804C6FC add r3, sp ldr r0, _0804C700 add r0, sp str r0, [sp] mov r1, r12 str r1, [sp, 0x4] add r0, sp, 0x8 adds r1, r7, 0 adds r2, r6, 0 bl sub_804D2D0 movs r2, 0 cmp r2, r8 bge _0804C636 movs r4, 0x1 mov r0, r9 lsls r5, r0, 5 subs r1, r7, 0x2 mov r12, r1 _0804C5FA: cmp r2, 0 beq _0804C614 lsls r0, r2, 4 subs r0, r2 lsls r0, 5 mov r1, sp adds r1, r0 adds r1, 0x8 strb r4, [r1, 0x16] adds r0, r5, r0 add r0, sp adds r0, 0x8 strb r4, [r0, 0x16] _0804C614: adds r3, r2, 0x1 cmp r2, r12 bge _0804C630 lsls r0, r3, 4 subs r0, r3 lsls r0, 5 mov r1, sp adds r1, r0 adds r1, 0x8 strb r4, [r1, 0x15] adds r0, r5, r0 add r0, sp adds r0, 0x8 strb r4, [r0, 0x15] _0804C630: adds r2, r3, 0 cmp r2, r8 blt _0804C5FA _0804C636: movs r1, 0 cmp r1, r9 bge _0804C66A movs r3, 0x1 mov r2, r8 lsls r0, r2, 4 subs r0, r2 lsls r0, 5 add r0, sp adds r0, 0x8 add r2, sp, 0x8 subs r5, r6, 0x2 mov r4, r9 _0804C650: cmp r1, 0 beq _0804C658 strb r3, [r2, 0x13] strb r3, [r0, 0x13] _0804C658: cmp r1, r5 bge _0804C660 strb r3, [r2, 0x14] strb r3, [r0, 0x14] _0804C660: adds r0, 0x20 adds r2, 0x20 adds r1, 0x1 cmp r1, r4 blt _0804C650 _0804C66A: ldr r5, _0804C6FC add r5, sp ldr r4, _0804C700 add r4, sp str r4, [sp] movs r0, 0 str r0, [sp, 0x4] add r0, sp, 0x8 adds r1, r7, 0 adds r2, r6, 0 adds r3, r5, 0 bl sub_804D8C8 str r4, [sp] add r0, sp, 0x8 adds r1, r7, 0 adds r2, r6, 0 adds r3, r5, 0 bl sub_804E590 mov r0, r10 ldrb r3, [r0, 0x9] add r0, sp, 0x8 adds r1, r7, 0 adds r2, r6, 0 bl sub_804F0D0 ldr r0, _0804C704 movs r1, 0 ldrsh r3, [r0, r1] add r0, sp, 0x8 adds r1, r7, 0 adds r2, r6, 0 bl sub_804EBC8 ldr r0, _0804C708 movs r2, 0 ldrsh r3, [r0, r2] add r0, sp, 0x8 adds r1, r7, 0 adds r2, r6, 0 bl sub_804EEE4 mov r0, r10 ldrb r3, [r0, 0x13] add r0, sp, 0x8 adds r1, r7, 0 adds r2, r6, 0 bl sub_804CBEC add r0, sp, 0x8 adds r1, r7, 0 adds r2, r6, 0 bl sub_804E03C add r0, sp, 0x8 adds r1, r7, 0 adds r2, r6, 0 bl sub_804D534 movs r3, 0xE5 lsls r3, 5 add sp, r3 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804C6F8: .4byte 0xffffe360 _0804C6FC: .4byte 0x00001c28 _0804C700: .4byte 0x00001c64 _0804C704: .4byte gUnknown_202F1B0 _0804C708: .4byte gUnknown_202F1B2 thumb_func_end sub_804C53C thumb_func_start sub_804C70C sub_804C70C: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 adds r7, r0, 0 mov r8, r1 ldr r0, _0804C73C ldr r0, [r0] ldr r1, _0804C740 adds r0, r1 ldr r0, [r0] ldr r1, [r0, 0x4] lsls r0, r7, 2 adds r0, r1 ldr r0, [r0] ldrb r5, [r0] ldrb r6, [r0, 0x1] cmp r5, 0 beq _0804C736 cmp r6, 0 bne _0804C744 _0804C736: bl sub_804C918 b _0804C782 .align 2, 0 _0804C73C: .4byte gUnknown_203B418 _0804C740: .4byte 0x00013568 _0804C744: cmp r7, 0x31 bgt _0804C752 adds r0, r7, 0 bl sub_8051288 movs r0, 0x1 b _0804C784 _0804C752: adds r1, r5, 0x4 movs r0, 0x38 bl __divsi3 adds r4, r0, 0 cmp r4, 0x1 bgt _0804C762 movs r4, 0x1 _0804C762: adds r1, r6, 0x4 movs r0, 0x20 bl __divsi3 adds r1, r0, 0 cmp r1, 0x1 bgt _0804C772 movs r1, 0x1 _0804C772: str r7, [sp] mov r0, r8 str r0, [sp, 0x4] adds r0, r4, 0 adds r2, r5, 0 adds r3, r6, 0 bl sub_804C790 _0804C782: movs r0, 0 _0804C784: add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_804C70C thumb_func_start sub_804C790 sub_804C790: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r4, _0804C81C add sp, r4 adds r5, r0, 0 adds r4, r1, 0 ldr r0, _0804C820 add r0, sp str r2, [r0] ldr r1, _0804C824 add r1, sp str r3, [r1] movs r2, 0 mov r10, r2 mov r8, r2 ldr r0, _0804C828 add r0, sp ldr r1, _0804C82C add r1, sp adds r2, r5, 0 adds r3, r4, 0 bl sub_804D024 add r0, sp, 0x10 adds r1, r5, 0 adds r2, r4, 0 bl sub_804D084 ldr r0, _0804C830 add r0, sp ldr r0, [r0] movs r3, 0x1 ldrsb r3, [r0, r3] add r0, sp, 0x10 adds r1, r5, 0 adds r2, r4, 0 bl sub_804D154 mov r6, r8 cmp r8, r5 bge _0804C818 _0804C7E8: movs r1, 0 mov r8, r1 adds r2, r6, 0x1 cmp r8, r4 bge _0804C812 lsls r0, r6, 4 subs r0, r6 movs r1, 0x1 lsls r0, 5 add r0, sp adds r0, 0x10 mov r8, r4 _0804C800: strb r1, [r0, 0x1B] adds r0, 0x20 movs r3, 0x1 negs r3, r3 add r8, r3 mov r3, r8 cmp r3, 0 bne _0804C800 mov r8, r4 _0804C812: adds r6, r2, 0 cmp r6, r5 blt _0804C7E8 _0804C818: movs r7, 0 b _0804C836 .align 2, 0 _0804C81C: .4byte 0xffffe350 _0804C820: .4byte 0x00001ca8 _0804C824: .4byte 0x00001cac _0804C828: .4byte 0x00001c30 _0804C82C: .4byte 0x00001c6c _0804C830: .4byte 0x00001cd4 _0804C834: adds r7, 0x1 _0804C836: cmp r7, 0x3F bgt _0804C864 adds r0, r5, 0 bl sub_8084100 adds r6, r0, 0 adds r0, r4, 0 bl sub_8084100 mov r8, r0 mov r0, r8 muls r0, r5 adds r0, r6 mov r10, r0 lsls r0, r6, 4 subs r0, r6 add r0, r8 lsls r0, 5 add r0, sp adds r0, 0x10 ldrb r0, [r0, 0xA] cmp r0, 0 beq _0804C834 _0804C864: ldr r0, _0804C8FC add r0, sp mov r9, r0 ldr r7, _0804C900 add r7, sp str r7, [sp] mov r1, r10 str r1, [sp, 0x4] ldr r2, _0804C904 add r2, sp ldr r2, [r2] str r2, [sp, 0x8] ldr r3, _0804C908 add r3, sp ldr r3, [r3] str r3, [sp, 0xC] add r0, sp, 0x10 adds r1, r5, 0 adds r2, r4, 0 mov r3, r9 bl sub_8050F90 cmp r5, 0x1 bne _0804C898 cmp r4, 0x1 beq _0804C8D0 _0804C898: mov r0, r8 str r0, [sp] ldr r1, _0804C90C add r1, sp ldr r1, [r1] str r1, [sp, 0x4] add r0, sp, 0x10 adds r1, r5, 0 adds r2, r4, 0 adds r3, r6, 0 bl sub_804D5F0 str r7, [sp] movs r0, 0x1 str r0, [sp, 0x4] add r0, sp, 0x10 adds r1, r5, 0 adds r2, r4, 0 mov r3, r9 bl sub_804D8C8 str r7, [sp] add r0, sp, 0x10 adds r1, r5, 0 adds r2, r4, 0 mov r3, r9 bl sub_804E590 _0804C8D0: lsls r0, r6, 4 subs r0, r6 lsls r0, 5 add r0, sp adds r0, 0x10 mov r2, r8 lsls r1, r2, 5 adds r0, r1 ldr r3, _0804C910 add r3, sp ldr r1, [r3] bl sub_8051438 ldr r3, _0804C914 add sp, r3 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804C8FC: .4byte 0x00001c30 _0804C900: .4byte 0x00001c6c _0804C904: .4byte 0x00001ca8 _0804C908: .4byte 0x00001cac _0804C90C: .4byte 0x00001cd4 _0804C910: .4byte 0x00001cd0 _0804C914: .4byte 0x00001cb0 thumb_func_end sub_804C790 thumb_func_start sub_804C918 sub_804C918: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r4, _0804C9C4 add sp, r4 mov r0, sp movs r1, 0x1 movs r2, 0x1 bl sub_804D084 mov r0, sp movs r3, 0 movs r2, 0x2 strh r2, [r0] mov r1, sp movs r0, 0x36 strh r0, [r1, 0x4] mov r0, sp strh r2, [r0, 0x2] movs r0, 0x1E strh r0, [r1, 0x6] mov r0, sp movs r1, 0x1 strb r1, [r0, 0xA] strb r1, [r0, 0xB] strb r3, [r0, 0x8] movs r1, 0 ldrsh r5, [r0, r1] movs r2, 0x4 ldrsh r0, [r0, r2] cmp r5, r0 bge _0804C9A6 mov r6, sp _0804C95C: movs r0, 0x2 ldrsh r4, [r6, r0] movs r1, 0x6 ldrsh r0, [r6, r1] adds r7, r5, 0x1 cmp r4, r0 bge _0804C99C movs r2, 0 mov r9, r2 ldr r0, _0804C9C8 mov r8, r0 _0804C972: adds r0, r5, 0 adds r1, r4, 0 bl sub_8049590 ldrh r1, [r0] mov r2, r8 ands r1, r2 movs r2, 0x1 orrs r1, r2 strh r1, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_8049590 mov r1, r9 strb r1, [r0, 0x9] adds r4, 0x1 movs r2, 0x6 ldrsh r0, [r6, r2] cmp r4, r0 blt _0804C972 _0804C99C: adds r5, r7, 0 movs r1, 0x4 ldrsh r0, [r6, r1] cmp r5, r0 blt _0804C95C _0804C9A6: ldr r3, _0804C9CC mov r0, sp movs r1, 0x1 movs r2, 0x1 bl sub_804EEE4 movs r3, 0xE1 lsls r3, 5 add sp, r3 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804C9C4: .4byte 0xffffe3e0 _0804C9C8: .4byte 0x0000fffc _0804C9CC: .4byte 0x000003e7 thumb_func_end sub_804C918 thumb_func_start sub_804C9D0 sub_804C9D0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r4, _0804CBB4 add sp, r4 movs r0, 0 movs r1, 0xE5 lsls r1, 5 add r1, sp str r0, [r1] ldr r1, _0804CBB8 add r1, sp movs r2, 0x2 str r2, [r1] movs r0, 0x1C str r0, [r1, 0x4] movs r0, 0x36 str r0, [r1, 0x8] ldr r1, _0804CBBC add r1, sp str r2, [r1] movs r0, 0x1E str r0, [r1, 0x4] add r0, sp, 0x8 movs r1, 0x2 movs r2, 0x1 bl sub_804D084 movs r0, 0 ldr r2, _0804CBB8 add r2, sp ldr r3, _0804CBC0 add r3, sp str r2, [r3] ldr r4, _0804CBBC add r4, sp ldr r1, _0804CBC4 add r1, sp str r4, [r1] _0804CA22: movs r7, 0 lsls r2, r0, 2 ldr r3, _0804CBC8 add r3, sp str r2, [r3] adds r4, r0, 0x1 ldr r1, _0804CBCC add r1, sp str r4, [r1] lsls r0, 5 ldr r2, _0804CBD0 add r2, sp str r0, [r2] _0804CA3C: lsls r0, r7, 2 ldr r3, _0804CBC0 add r3, sp ldr r3, [r3] adds r0, r3, r0 ldr r1, [r0] adds r4, r1, 0x1 mov r10, r4 ldr r2, _0804CBC4 add r2, sp ldr r2, [r2] ldr r3, _0804CBC8 add r3, sp ldr r3, [r3] adds r0, r2, r3 ldr r2, [r0] adds r4, r2, 0x1 ldr r0, _0804CBD4 add r0, sp str r4, [r0] adds r3, r7, 0x1 mov r9, r3 lsls r0, r3, 2 ldr r4, _0804CBC0 add r4, sp ldr r4, [r4] adds r0, r4, r0 ldr r4, [r0] subs r4, r1 subs r4, 0x3 ldr r1, _0804CBCC add r1, sp ldr r1, [r1] lsls r0, r1, 2 ldr r3, _0804CBC4 add r3, sp ldr r3, [r3] adds r0, r3, r0 ldr r5, [r0] subs r5, r2 subs r5, 0x3 movs r0, 0xA adds r1, r4, 0 bl sub_808411C mov r8, r0 movs r0, 0x10 adds r1, r5, 0 bl sub_808411C adds r6, r0, 0 mov r0, r8 subs r4, r0 adds r0, r4, 0 bl sub_8084100 adds r4, r0, 0 add r4, r10 subs r5, r6 adds r0, r5, 0 bl sub_8084100 ldr r2, _0804CBD4 add r2, sp ldr r1, [r2] adds r1, r0 mov r10, r1 mov r0, r8 adds r3, r4, r0 add r6, r10 lsls r0, r7, 4 subs r0, r7 lsls r0, 5 ldr r1, _0804CBD0 add r1, sp ldr r1, [r1] adds r0, r1, r0 add r0, sp adds r0, 0x8 movs r1, 0x1 strb r1, [r0, 0xA] strh r4, [r0] strh r3, [r0, 0x4] mov r2, r10 strh r2, [r0, 0x2] strh r6, [r0, 0x6] mov r0, r9 ldr r1, _0804CBD8 add r1, sp str r0, [r1] movs r0, 0xE5 lsls r0, 5 add r0, sp ldr r2, [r0] adds r2, 0x1 mov r9, r2 cmp r4, r3 bge _0804CB4E _0804CB00: mov r5, r10 adds r7, r4, 0x1 cmp r5, r6 bge _0804CB48 ldr r1, _0804CBDC mov r8, r1 _0804CB0C: adds r0, r4, 0 adds r1, r5, 0 movs r2, 0xE6 lsls r2, 5 add r2, sp str r3, [r2] bl sub_8049590 ldrh r1, [r0] mov r2, r8 ands r1, r2 movs r2, 0x1 orrs r1, r2 strh r1, [r0] adds r0, r4, 0 adds r1, r5, 0 bl sub_8049590 movs r1, 0xE5 lsls r1, 5 add r1, sp ldrb r1, [r1] strb r1, [r0, 0x9] adds r5, 0x1 movs r2, 0xE6 lsls r2, 5 add r2, sp ldr r3, [r2] cmp r5, r6 blt _0804CB0C _0804CB48: adds r4, r7, 0 cmp r4, r3 blt _0804CB00 _0804CB4E: mov r3, r9 movs r4, 0xE5 lsls r4, 5 add r4, sp str r3, [r4] ldr r0, _0804CBD8 add r0, sp ldr r7, [r0] cmp r7, 0x1 bgt _0804CB64 b _0804CA3C _0804CB64: ldr r1, _0804CBCC add r1, sp ldr r0, [r1] cmp r0, 0 bgt _0804CB70 b _0804CA22 _0804CB70: add r0, sp, 0x8 movs r2, 0 movs r1, 0x1 strb r1, [r0, 0x16] ldr r0, _0804CBE0 add r0, sp strb r1, [r0] ldr r3, _0804CBB8 add r3, sp ldr r0, _0804CBBC add r0, sp str r0, [sp] str r2, [sp, 0x4] add r0, sp, 0x8 movs r1, 0x2 movs r2, 0x1 bl sub_804D8C8 ldr r3, _0804CBE4 add r0, sp, 0x8 movs r1, 0x2 movs r2, 0x1 bl sub_804EEE4 ldr r3, _0804CBE8 add sp, r3 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804CBB4: .4byte 0xffffe33c _0804CBB8: .4byte 0x00001c28 _0804CBBC: .4byte 0x00001c64 _0804CBC0: .4byte 0x00001ca4 _0804CBC4: .4byte 0x00001cac _0804CBC8: .4byte 0x00001cb0 _0804CBCC: .4byte 0x00001cbc _0804CBD0: .4byte 0x00001cb4 _0804CBD4: .4byte 0x00001ca8 _0804CBD8: .4byte 0x00001cb8 _0804CBDC: .4byte 0x0000fffc _0804CBE0: .4byte 0x000001fd _0804CBE4: .4byte 0x000003e7 _0804CBE8: .4byte 0x00001cc4 thumb_func_end sub_804C9D0 thumb_func_start sub_804CBEC sub_804CBEC: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x20 str r0, [sp] str r1, [sp, 0x4] str r2, [sp, 0x8] str r3, [sp, 0xC] cmp r3, 0 bne _0804CC06 b _0804D006 _0804CC06: movs r5, 0 cmp r5, r3 blt _0804CC0E b _0804D006 _0804CC0E: ldr r0, [sp, 0x4] bl sub_8084100 mov r9, r0 ldr r0, [sp, 0x8] bl sub_8084100 mov r10, r0 lsls r0, 5 mov r2, r9 lsls r1, r2, 4 subs r1, r2 lsls r1, 5 ldr r3, [sp] adds r1, r3 adds r4, r0, r1 ldrb r0, [r4, 0xA] adds r5, 0x1 str r5, [sp, 0x18] cmp r0, 0 bne _0804CC3A b _0804CFFC _0804CC3A: ldrb r0, [r4, 0xB] cmp r0, 0 bne _0804CC42 b _0804CFFC _0804CC42: ldrb r0, [r4, 0x8] cmp r0, 0 beq _0804CC4A b _0804CFFC _0804CC4A: ldrb r0, [r4, 0x10] cmp r0, 0 beq _0804CC52 b _0804CFFC _0804CC52: movs r1, 0 ldrsh r0, [r4, r1] movs r2, 0x4 ldrsh r1, [r4, r2] bl sub_808411C adds r7, r0, 0 movs r3, 0x2 ldrsh r0, [r4, r3] movs r2, 0x6 ldrsh r1, [r4, r2] bl sub_808411C adds r6, r0, 0 movs r0, 0x4 bl sub_8084100 lsls r0, 1 mov r8, r0 ldr r1, [sp, 0x8] subs r1, 0x1 movs r3, 0x2 str r3, [sp, 0x10] ldr r0, [sp, 0x4] subs r0, 0x1 _0804CC84: mov r2, r8 cmp r2, 0 bne _0804CC92 cmp r10, r1 blt _0804CC92 movs r3, 0x2 mov r8, r3 _0804CC92: mov r2, r8 cmp r2, 0x2 bne _0804CCA0 cmp r9, r0 blt _0804CCA0 movs r3, 0x4 mov r8, r3 _0804CCA0: mov r2, r8 cmp r2, 0x4 bne _0804CCB0 mov r3, r10 cmp r3, 0 bgt _0804CCB0 movs r2, 0x6 mov r8, r2 _0804CCB0: mov r3, r8 cmp r3, 0x6 bne _0804CCC0 mov r2, r9 cmp r2, 0 bgt _0804CCC0 movs r3, 0 mov r8, r3 _0804CCC0: ldr r2, [sp, 0x10] subs r2, 0x1 str r2, [sp, 0x10] cmp r2, 0 bge _0804CC84 adds r0, r7, 0 adds r1, r6, 0 bl sub_804954C ldrb r5, [r0, 0x9] ldr r1, _0804CCE0 mov r3, r8 lsls r0, r3, 2 adds r4, r0, r1 b _0804CCF0 .align 2, 0 _0804CCE0: .4byte gUnknown_80F4448 _0804CCE4: movs r1, 0 ldrsh r0, [r4, r1] adds r7, r0 movs r2, 0x2 ldrsh r0, [r4, r2] adds r6, r0 _0804CCF0: adds r0, r7, 0 adds r1, r6, 0 bl sub_804954C ldrb r0, [r0, 0x9] cmp r5, r0 beq _0804CCE4 ldr r1, _0804CD08 mov r3, r8 lsls r0, r3, 2 adds r4, r0, r1 b _0804CD18 .align 2, 0 _0804CD08: .4byte gUnknown_80F4448 _0804CD0C: movs r1, 0 ldrsh r0, [r4, r1] adds r7, r0 movs r2, 0x2 ldrsh r0, [r4, r2] adds r6, r0 _0804CD18: adds r0, r7, 0 adds r1, r6, 0 bl sub_804954C ldrh r1, [r0] movs r5, 0x3 adds r0, r5, 0 ands r0, r1 cmp r0, 0x1 beq _0804CD0C adds r0, r7, 0 adds r1, r6, 0 bl sub_804954C ldrh r1, [r0] adds r0, r5, 0 ands r0, r1 cmp r0, 0x2 bne _0804CD40 b _0804CFFC _0804CD40: movs r3, 0 subs r2, r7, 0x2 adds r4, r7, 0x2 b _0804CD4A _0804CD48: adds r2, 0x1 _0804CD4A: cmp r2, r4 bgt _0804CD6C subs r0, r6, 0x2 adds r1, r6, 0x2 b _0804CD56 _0804CD54: adds r0, 0x1 _0804CD56: cmp r0, r1 bgt _0804CD68 cmp r2, 0x37 bhi _0804CD66 cmp r0, 0 blt _0804CD66 cmp r0, 0x1F ble _0804CD54 _0804CD66: movs r3, 0x1 _0804CD68: cmp r3, 0 beq _0804CD48 _0804CD6C: cmp r3, 0 beq _0804CD72 b _0804CFFC _0804CD72: ldr r2, _0804CDD4 mov r1, r8 adds r1, 0x2 movs r4, 0x6 ands r1, r4 lsls r1, 2 adds r1, r2 movs r3, 0 ldrsh r0, [r1, r3] movs r3, 0x2 ldrsh r1, [r1, r3] adds r0, r7, r0 adds r1, r6, r1 str r2, [sp, 0x1C] bl sub_804954C ldrh r1, [r0] movs r5, 0x3 adds r0, r5, 0 ands r0, r1 ldr r2, [sp, 0x1C] cmp r0, 0x1 bne _0804CDA2 b _0804CFFC _0804CDA2: mov r1, r8 subs r1, 0x2 ands r1, r4 lsls r1, 2 adds r1, r2 movs r2, 0 ldrsh r0, [r1, r2] movs r3, 0x2 ldrsh r1, [r1, r3] adds r0, r7, r0 adds r1, r6, r1 bl sub_804954C ldrh r1, [r0] adds r0, r5, 0 ands r0, r1 cmp r0, 0x1 bne _0804CDC8 b _0804CFFC _0804CDC8: movs r0, 0x3 bl sub_8084100 adds r0, 0x3 str r0, [sp, 0x10] b _0804CFD4 .align 2, 0 _0804CDD4: .4byte gUnknown_80F4448 _0804CDD8: adds r0, r7, 0 adds r1, r6, 0 bl sub_804954C ldrh r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _0804CDEC b _0804CFFC _0804CDEC: movs r0, 0x1 str r0, [sp, 0x14] adds r4, r7, 0x1 adds r0, r4, 0 adds r1, r6, 0 bl sub_804954C ldrh r1, [r0] mov r0, r10 ands r0, r1 mov r9, r4 cmp r0, 0x1 bne _0804CE32 adds r5, r6, 0x1 adds r0, r4, 0 adds r1, r5, 0 bl sub_804954C ldrh r0, [r0] mov r4, r10 ands r4, r0 cmp r4, 0x1 bne _0804CE32 adds r0, r7, 0 adds r1, r5, 0 bl sub_804954C ldrh r0, [r0] mov r1, r10 ands r0, r1 eors r0, r4 negs r1, r0 orrs r1, r0 lsrs r1, 31 str r1, [sp, 0x14] _0804CE32: mov r0, r9 adds r1, r6, 0 bl sub_804954C ldrh r1, [r0] movs r5, 0x3 adds r0, r5, 0 ands r0, r1 cmp r0, 0x1 bne _0804CE70 subs r4, r6, 0x1 mov r0, r9 adds r1, r4, 0 bl sub_804954C ldrh r1, [r0] adds r0, r5, 0 ands r0, r1 cmp r0, 0x1 bne _0804CE70 adds r0, r7, 0 adds r1, r4, 0 bl sub_804954C ldrh r1, [r0] adds r0, r5, 0 ands r0, r1 cmp r0, 0x1 bne _0804CE70 movs r2, 0 str r2, [sp, 0x14] _0804CE70: subs r4, r7, 0x1 adds r0, r4, 0 adds r1, r6, 0 bl sub_804954C ldrh r1, [r0] movs r2, 0x3 adds r0, r2, 0 ands r0, r1 cmp r0, 0x1 bne _0804CEB6 adds r5, r6, 0x1 adds r0, r4, 0 adds r1, r5, 0 str r2, [sp, 0x1C] bl sub_804954C ldrh r1, [r0] ldr r2, [sp, 0x1C] adds r0, r2, 0 ands r0, r1 cmp r0, 0x1 bne _0804CEB6 adds r0, r7, 0 adds r1, r5, 0 bl sub_804954C ldrh r1, [r0] ldr r2, [sp, 0x1C] adds r0, r2, 0 ands r0, r1 cmp r0, 0x1 bne _0804CEB6 movs r3, 0 str r3, [sp, 0x14] _0804CEB6: adds r0, r4, 0 adds r1, r6, 0 bl sub_804954C ldrh r1, [r0] movs r2, 0x3 adds r0, r2, 0 ands r0, r1 cmp r0, 0x1 bne _0804CEFA subs r5, r6, 0x1 adds r0, r4, 0 adds r1, r5, 0 str r2, [sp, 0x1C] bl sub_804954C ldrh r1, [r0] ldr r2, [sp, 0x1C] adds r0, r2, 0 ands r0, r1 cmp r0, 0x1 bne _0804CEFA adds r0, r7, 0 adds r1, r5, 0 bl sub_804954C ldrh r1, [r0] ldr r2, [sp, 0x1C] adds r0, r2, 0 ands r0, r1 cmp r0, 0x1 bne _0804CEFA movs r0, 0 str r0, [sp, 0x14] _0804CEFA: ldr r1, [sp, 0x14] cmp r1, 0 beq _0804CF16 adds r0, r7, 0 adds r1, r6, 0 bl sub_8049590 ldrh r1, [r0] ldr r3, _0804D018 adds r2, r3, 0 ands r1, r2 movs r2, 0x1 orrs r1, r2 strh r1, [r0] _0804CF16: ldr r2, _0804D01C movs r0, 0x2 add r0, r8 mov r9, r0 movs r1, 0x6 mov r10, r1 mov r1, r9 mov r3, r10 ands r1, r3 lsls r1, 2 adds r1, r2 movs r3, 0 ldrsh r0, [r1, r3] movs r3, 0x2 ldrsh r1, [r1, r3] adds r0, r7, r0 adds r1, r6, r1 str r2, [sp, 0x1C] bl sub_804954C ldrh r1, [r0] movs r5, 0x3 adds r0, r5, 0 ands r0, r1 ldr r2, [sp, 0x1C] cmp r0, 0x1 beq _0804CFFC mov r4, r8 subs r4, 0x2 adds r1, r4, 0 mov r0, r10 ands r1, r0 lsls r1, 2 adds r1, r2 movs r2, 0 ldrsh r0, [r1, r2] movs r3, 0x2 ldrsh r1, [r1, r3] adds r0, r7, r0 adds r1, r6, r1 bl sub_804954C ldrh r1, [r0] adds r0, r5, 0 ands r0, r1 cmp r0, 0x1 beq _0804CFFC ldr r0, [sp, 0x10] subs r0, 0x1 str r0, [sp, 0x10] cmp r0, 0 bne _0804CFC0 movs r0, 0x3 bl sub_8084100 adds r0, 0x3 str r0, [sp, 0x10] movs r0, 0x64 bl sub_8084100 mov r8, r4 cmp r0, 0x31 bgt _0804CF96 mov r8, r9 _0804CF96: mov r1, r8 mov r2, r10 ands r1, r2 mov r8, r1 cmp r7, 0x1F ble _0804CFAE ldr r0, _0804D020 ldrb r0, [r0] cmp r0, 0x1 bne _0804CFAE cmp r1, 0x2 beq _0804CFFC _0804CFAE: cmp r7, 0x2F ble _0804CFC0 ldr r0, _0804D020 ldrb r0, [r0] cmp r0, 0x2 bne _0804CFC0 mov r3, r8 cmp r3, 0x2 beq _0804CFFC _0804CFC0: ldr r0, _0804D01C mov r2, r8 lsls r1, r2, 2 adds r1, r0 movs r3, 0 ldrsh r0, [r1, r3] adds r7, r0 movs r2, 0x2 ldrsh r0, [r1, r2] adds r6, r0 _0804CFD4: cmp r7, 0x1 ble _0804CFFC cmp r6, 0x1 ble _0804CFFC cmp r7, 0x36 bgt _0804CFFC cmp r6, 0x1E bgt _0804CFFC adds r0, r7, 0 adds r1, r6, 0 bl sub_804954C ldrh r1, [r0] movs r3, 0x3 mov r10, r3 mov r0, r10 ands r0, r1 cmp r0, 0x1 beq _0804CFFC b _0804CDD8 _0804CFFC: ldr r5, [sp, 0x18] ldr r0, [sp, 0xC] cmp r5, r0 bge _0804D006 b _0804CC0E _0804D006: add sp, 0x20 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804D018: .4byte 0x0000fffc _0804D01C: .4byte gUnknown_80F4448 _0804D020: .4byte gUnknown_202F1AE thumb_func_end sub_804CBEC thumb_func_start sub_804D024 sub_804D024: push {r4-r7,lr} mov r7, r8 push {r7} adds r7, r0, 0 mov r8, r1 adds r5, r2, 0 adds r6, r3, 0 movs r4, 0 cmp r4, r5 bge _0804D04E movs r0, 0x38 adds r1, r5, 0 bl __divsi3 adds r2, r7, 0 adds r1, r5, 0 _0804D044: stm r2!, {r4} adds r4, r0 subs r1, 0x1 cmp r1, 0 bne _0804D044 _0804D04E: lsls r0, r5, 2 adds r0, r7 str r4, [r0] movs r4, 0 lsls r5, r6, 2 cmp r4, r6 bge _0804D072 movs r0, 0x20 adds r1, r6, 0 bl __divsi3 mov r2, r8 adds r1, r6, 0 _0804D068: stm r2!, {r4} adds r4, r0 subs r1, 0x1 cmp r1, 0 bne _0804D068 _0804D072: mov r1, r8 adds r0, r5, r1 str r4, [r0] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_804D024 thumb_func_start sub_804D084 sub_804D084: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 mov r8, r0 adds r5, r1, 0 mov r9, r2 movs r2, 0 cmp r2, r5 bge _0804D144 lsrs r0, r5, 31 adds r0, r5, r0 asrs r0, 1 str r0, [sp] movs r3, 0 _0804D0A6: adds r0, r2, 0x1 mov r10, r0 mov r4, r9 cmp r4, 0 ble _0804D13E ldr r6, _0804D0D8 ldrb r6, [r6] str r6, [sp, 0x4] lsls r0, r2, 4 subs r0, r2 lsls r0, 5 mov r4, r8 adds r1, r0, r4 movs r7, 0 movs r6, 0x1 mov r12, r6 mov r4, r9 _0804D0C8: ldr r0, [sp, 0x4] cmp r0, 0x1 bne _0804D0DC ldr r6, [sp] cmp r2, r6 blt _0804D0DC strb r0, [r1, 0x8] b _0804D102 .align 2, 0 _0804D0D8: .4byte gUnknown_202F1AE _0804D0DC: ldr r6, _0804D0FC ldrb r0, [r6] cmp r0, 0x2 bne _0804D100 lsls r0, r5, 1 adds r0, r5 cmp r0, 0 bge _0804D0EE adds r0, 0x3 _0804D0EE: asrs r0, 2 cmp r2, r0 blt _0804D100 mov r0, r12 strb r0, [r1, 0x8] b _0804D102 .align 2, 0 _0804D0FC: .4byte gUnknown_202F1AE _0804D100: strb r3, [r1, 0x8] _0804D102: lsls r0, r2, 4 subs r0, r2 lsls r0, 5 add r0, r8 adds r0, r7, r0 mov r6, r12 strb r6, [r0, 0xA] strb r3, [r0, 0xB] strb r3, [r0, 0xF] strb r3, [r0, 0xE] strb r3, [r0, 0xC] strb r3, [r0, 0x16] strb r3, [r0, 0x15] strb r3, [r0, 0x14] strb r3, [r0, 0x13] strb r3, [r0, 0x1A] strb r3, [r0, 0x19] strb r3, [r0, 0x18] strb r3, [r0, 0x17] strb r3, [r0, 0x9] strb r3, [r0, 0x11] strb r3, [r0, 0x10] strb r3, [r0, 0x12] strb r3, [r0, 0x1C] strb r3, [r0, 0x1D] adds r1, 0x20 adds r7, 0x20 subs r4, 0x1 cmp r4, 0 bne _0804D0C8 _0804D13E: mov r2, r10 cmp r2, r5 blt _0804D0A6 _0804D144: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_804D084 thumb_func_start sub_804D154 sub_804D154: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x114 str r0, [sp, 0x100] mov r9, r1 mov r8, r2 adds r4, r3, 0 movs r0, 0x3 bl sub_8084100 adds r3, r0, 0 cmp r4, 0 bge _0804D17E negs r4, r4 b _0804D180 _0804D178: movs r0, 0x1 strb r0, [r4, 0xA] b _0804D2B6 _0804D17E: adds r4, r3 _0804D180: movs r3, 0 mov r0, r8 mov r2, r9 muls r2, r0 cmp r3, r4 bge _0804D19A movs r1, 0x1 _0804D18E: mov r5, sp adds r0, r5, r3 strb r1, [r0] adds r3, 0x1 cmp r3, r4 blt _0804D18E _0804D19A: cmp r3, 0xFF bgt _0804D1AC movs r1, 0 _0804D1A0: mov r6, sp adds r0, r6, r3 strb r1, [r0] adds r3, 0x1 cmp r3, 0xFF ble _0804D1A0 _0804D1AC: adds r5, r2, 0 movs r6, 0x3F _0804D1B0: adds r0, r5, 0 bl sub_8084100 adds r4, r0, 0 adds r0, r5, 0 bl sub_8084100 mov r1, sp adds r2, r1, r4 ldrb r3, [r2] adds r1, r0 ldrb r0, [r1] strb r0, [r2] strb r3, [r1] subs r6, 0x1 cmp r6, 0 bge _0804D1B0 movs r3, 0 ldr r0, _0804D24C str r3, [r0] movs r7, 0 mov r12, r0 cmp r7, r9 bge _0804D262 _0804D1E0: movs r5, 0 adds r4, r7, 0x1 str r4, [sp, 0x104] cmp r5, r8 bge _0804D25C lsls r2, r7, 4 subs r2, r7 lsls r2, 5 ldr r6, [sp, 0x100] adds r0, r2, r6 mov r1, r9 movs r4, 0x1 ands r1, r4 str r1, [sp, 0x110] mov r1, r9 subs r1, 0x1 adds r0, 0x20 mov r10, r0 adds r0, r6, 0 adds r0, 0x8 adds r2, r0 lsrs r0, r1, 31 adds r1, r0 asrs r1, 1 _0804D210: ldrb r4, [r2] cmp r4, 0 bne _0804D254 mov r6, r12 ldr r0, [r6] cmp r0, 0x1F ble _0804D220 strb r4, [r2, 0x2] _0804D220: mov r6, sp adds r0, r6, r3 ldrb r0, [r0] cmp r0, 0 beq _0804D250 movs r0, 0x1 strb r0, [r2, 0x2] mov r6, r12 ldr r0, [r6] adds r0, 0x1 str r0, [r6] ldr r0, [sp, 0x110] cmp r0, 0 beq _0804D252 cmp r7, r1 bne _0804D252 cmp r5, 0x1 bne _0804D252 mov r6, r10 strb r4, [r6, 0xA] b _0804D252 .align 2, 0 _0804D24C: .4byte gUnknown_202F1CC _0804D250: strb r0, [r2, 0x2] _0804D252: adds r3, 0x1 _0804D254: adds r2, 0x20 adds r5, 0x1 cmp r5, r8 blt _0804D210 _0804D25C: ldr r7, [sp, 0x104] cmp r7, r9 blt _0804D1E0 _0804D262: mov r1, r12 ldr r0, [r1] cmp r0, 0x1 bgt _0804D2BC movs r1, 0 movs r2, 0 _0804D26E: movs r7, 0 cmp r2, r9 bge _0804D2AC movs r6, 0 _0804D276: movs r5, 0 cmp r5, r8 bge _0804D2A4 lsls r0, r6, 5 ldr r3, [sp, 0x100] adds r4, r0, r3 _0804D282: ldrb r0, [r4, 0x8] cmp r0, 0 bne _0804D29C movs r0, 0x64 str r1, [sp, 0x108] str r2, [sp, 0x10C] bl sub_8084100 ldr r1, [sp, 0x108] ldr r2, [sp, 0x10C] cmp r0, 0x3B bgt _0804D29C b _0804D178 _0804D29C: adds r4, 0x20 adds r5, 0x1 cmp r5, r8 blt _0804D282 _0804D2A4: adds r6, 0xF adds r7, 0x1 cmp r7, r9 blt _0804D276 _0804D2AC: cmp r2, 0 bne _0804D2B6 adds r1, 0x1 cmp r1, 0xC7 ble _0804D26E _0804D2B6: ldr r1, _0804D2CC movs r0, 0 strb r0, [r1] _0804D2BC: add sp, 0x114 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804D2CC: .4byte gUnknown_202F1AD thumb_func_end sub_804D154 thumb_func_start sub_804D2D0 sub_804D2D0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x38 str r0, [sp] str r1, [sp, 0x4] str r2, [sp, 0x8] str r3, [sp, 0xC] movs r0, 0 str r0, [sp, 0x10] movs r1, 0 str r1, [sp, 0x14] cmp r1, r2 blt _0804D2F2 b _0804D520 _0804D2F2: movs r2, 0 mov r10, r2 ldr r3, [sp, 0x14] adds r3, 0x1 str r3, [sp, 0x28] ldr r4, [sp, 0x4] cmp r10, r4 blt _0804D304 b _0804D514 _0804D304: ldr r5, [sp, 0x14] lsls r5, 5 str r5, [sp, 0x1C] _0804D30A: mov r1, r10 lsls r0, r1, 2 ldr r2, [sp, 0xC] adds r0, r2 ldr r3, [r0] adds r4, r3, 0x2 mov r9, r4 ldr r5, [sp, 0x14] lsls r1, r5, 2 ldr r2, [sp, 0x58] adds r1, r2 ldr r2, [r1] adds r4, r2, 0x2 str r4, [sp, 0x18] ldr r0, [r0, 0x4] subs r0, r3 subs r4, r0, 0x4 ldr r0, [r1, 0x4] subs r0, r2 subs r0, 0x3 mov r8, r0 mov r5, r10 lsls r1, r5, 4 subs r0, r1, r5 lsls r0, 5 ldr r2, [sp] adds r0, r2 ldr r3, [sp, 0x1C] adds r7, r3, r0 ldrb r0, [r7, 0x8] str r1, [sp, 0x2C] adds r5, 0x1 str r5, [sp, 0x24] cmp r0, 0 beq _0804D352 b _0804D508 _0804D352: ldrb r0, [r7, 0xA] cmp r0, 0 bne _0804D35A b _0804D48C _0804D35A: movs r0, 0x5 adds r1, r4, 0 bl sub_808411C adds r6, r0, 0 movs r0, 0x4 mov r1, r8 bl sub_808411C adds r5, r0, 0 movs r1, 0x1 adds r0, r6, 0 orrs r0, r1 cmp r0, r4 bge _0804D37A adds r6, r0, 0 _0804D37A: adds r0, r5, 0 orrs r0, r1 cmp r0, r8 bge _0804D384 adds r5, r0, 0 _0804D384: lsls r0, r5, 1 adds r0, r5 lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 cmp r6, r0 ble _0804D394 adds r6, r0, 0 _0804D394: lsls r0, r6, 1 adds r0, r6 lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 cmp r5, r0 ble _0804D3A4 adds r5, r0, 0 _0804D3A4: subs r0, r4, r6 bl sub_8084100 adds r4, r0, 0 add r4, r9 mov r1, r8 subs r0, r1, r5 bl sub_8084100 ldr r2, [sp, 0x18] adds r0, r2 mov r8, r0 adds r3, r4, r6 adds r6, r0, r5 strh r4, [r7] strh r3, [r7, 0x4] mov r5, r8 strh r5, [r7, 0x2] strh r6, [r7, 0x6] ldr r0, [sp, 0x10] adds r0, 0x1 str r0, [sp, 0x20] cmp r4, r3 bge _0804D412 _0804D3D4: mov r5, r8 adds r7, r4, 0x1 cmp r5, r6 bge _0804D40C ldr r1, _0804D484 mov r9, r1 _0804D3E0: adds r0, r4, 0 adds r1, r5, 0 str r3, [sp, 0x34] bl sub_8049590 ldrh r1, [r0] mov r2, r9 ands r1, r2 movs r2, 0x1 orrs r1, r2 strh r1, [r0] adds r0, r4, 0 adds r1, r5, 0 bl sub_8049590 mov r1, sp ldrb r1, [r1, 0x10] strb r1, [r0, 0x9] adds r5, 0x1 ldr r3, [sp, 0x34] cmp r5, r6 blt _0804D3E0 _0804D40C: adds r4, r7, 0 cmp r4, r3 blt _0804D3D4 _0804D412: movs r5, 0x1 movs r0, 0x64 bl sub_8084100 movs r1, 0 cmp r0, 0x4F bgt _0804D422 movs r1, 0x1 _0804D422: adds r4, r1, 0 ldr r0, _0804D488 ldr r0, [r0] cmp r0, 0 bne _0804D42E movs r4, 0 _0804D42E: movs r0, 0x4 ldr r2, [sp, 0x5C] ands r0, r2 cmp r0, 0 bne _0804D43A movs r5, 0 _0804D43A: cmp r5, 0 beq _0804D466 cmp r4, 0 beq _0804D44E movs r0, 0x64 bl sub_8084100 cmp r0, 0x31 ble _0804D466 movs r4, 0 _0804D44E: cmp r5, 0 beq _0804D466 ldr r3, [sp, 0x2C] mov r5, r10 subs r0, r3, r5 lsls r0, 5 ldr r1, [sp] adds r0, r1 ldr r2, [sp, 0x1C] adds r0, r2, r0 movs r1, 0x1 strb r1, [r0, 0x1C] _0804D466: cmp r4, 0 beq _0804D47E ldr r3, [sp, 0x2C] mov r4, r10 subs r0, r3, r4 lsls r0, 5 ldr r5, [sp] adds r0, r5 ldr r1, [sp, 0x1C] adds r0, r1, r0 movs r1, 0x1 strb r1, [r0, 0x1D] _0804D47E: ldr r2, [sp, 0x20] str r2, [sp, 0x10] b _0804D508 .align 2, 0 _0804D484: .4byte 0x0000fffc _0804D488: .4byte gUnknown_202F1C8 _0804D48C: movs r1, 0x2 movs r3, 0x4 movs r6, 0x2 movs r2, 0x4 mov r5, r10 cmp r5, 0 bne _0804D49C movs r1, 0x1 _0804D49C: ldr r0, [sp, 0x14] cmp r0, 0 bne _0804D4A4 movs r6, 0x1 _0804D4A4: ldr r0, [sp, 0x4] subs r0, 0x1 cmp r10, r0 bne _0804D4AE movs r3, 0x2 _0804D4AE: ldr r0, [sp, 0x8] subs r0, 0x1 ldr r5, [sp, 0x14] cmp r5, r0 bne _0804D4BA movs r2, 0x2 _0804D4BA: mov r5, r9 adds r0, r5, r1 adds r1, r5, r4 subs r1, r3 str r2, [sp, 0x30] bl sub_808411C adds r5, r0, 0 ldr r1, [sp, 0x18] adds r0, r1, r6 add r1, r8 ldr r2, [sp, 0x30] subs r1, r2 bl sub_808411C adds r4, r0, 0 strh r5, [r7] adds r0, r5, 0x1 strh r0, [r7, 0x4] strh r4, [r7, 0x2] adds r0, r4, 0x1 strh r0, [r7, 0x6] adds r0, r5, 0 adds r1, r4, 0 bl sub_8049590 ldrh r1, [r0] ldr r3, _0804D530 adds r2, r3, 0 ands r1, r2 movs r2, 0x1 orrs r1, r2 strh r1, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_8049590 movs r1, 0xFE strb r1, [r0, 0x9] _0804D508: ldr r4, [sp, 0x24] mov r10, r4 ldr r5, [sp, 0x4] cmp r10, r5 bge _0804D514 b _0804D30A _0804D514: ldr r0, [sp, 0x28] str r0, [sp, 0x14] ldr r1, [sp, 0x8] cmp r0, r1 bge _0804D520 b _0804D2F2 _0804D520: add sp, 0x38 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804D530: .4byte 0x0000fffc thumb_func_end sub_804D2D0 thumb_func_start sub_804D534 sub_804D534: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 adds r3, r0, 0 adds r7, r1, 0 mov r9, r2 movs r1, 0 cmp r1, r9 bge _0804D5A0 _0804D54A: adds r0, r1, 0x1 mov r8, r0 cmp r7, 0 ble _0804D59A lsls r1, 5 adds r0, r1, 0 adds r0, 0x8 adds r4, r3, r0 adds r5, r3, r1 adds r6, r7, 0 _0804D55E: ldrb r0, [r4] cmp r0, 0 bne _0804D58C ldrb r0, [r4, 0x6] cmp r0, 0 bne _0804D58C ldrb r0, [r4, 0xA] cmp r0, 0 bne _0804D58C ldrb r0, [r4, 0x2] cmp r0, 0 beq _0804D58C ldrb r0, [r4, 0x14] cmp r0, 0 bne _0804D58C ldrb r0, [r4, 0x15] cmp r0, 0 beq _0804D58C adds r0, r5, 0 str r3, [sp] bl sub_804F694 ldr r3, [sp] _0804D58C: movs r0, 0xF0 lsls r0, 1 adds r4, r0 adds r5, r0 subs r6, 0x1 cmp r6, 0 bne _0804D55E _0804D59A: mov r1, r8 cmp r1, r9 blt _0804D54A _0804D5A0: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_804D534 thumb_func_start sub_804D5B0 sub_804D5B0: push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x8 mov r9, r0 adds r4, r1, 0 adds r5, r2, 0 adds r6, r3, 0 adds r0, r4, 0 bl sub_8084100 mov r8, r0 adds r0, r5, 0 bl sub_8084100 str r0, [sp] str r6, [sp, 0x4] mov r0, r9 adds r1, r4, 0 adds r2, r5, 0 mov r3, r8 bl sub_804D5F0 add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_804D5B0 thumb_func_start sub_804D5F0 sub_804D5F0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x20 str r0, [sp] str r1, [sp, 0x4] str r2, [sp, 0x8] adds r7, r3, 0 ldr r6, [sp, 0x40] ldr r0, [sp, 0x44] ldrb r0, [r0, 0x5] str r0, [sp, 0xC] movs r0, 0x4 bl sub_8084100 adds r5, r0, 0 movs r1, 0 mov r10, r1 ldr r2, [sp, 0xC] cmp r10, r2 blt _0804D620 b _0804D726 _0804D620: lsls r4, r6, 5 mov r9, r4 lsls r0, r7, 4 subs r0, r7 lsls r0, 5 ldr r1, [sp] adds r0, r1 mov r8, r0 _0804D630: movs r0, 0x8 bl sub_8084100 adds r4, r0, 0 movs r0, 0x4 bl sub_8084100 cmp r4, 0x3 bgt _0804D644 adds r5, r0, 0 _0804D644: mov r4, r10 adds r4, 0x1 _0804D648: movs r1, 0 movs r0, 0x3 ands r0, r5 cmp r0, 0x1 beq _0804D670 cmp r0, 0x1 bgt _0804D65C cmp r0, 0 beq _0804D666 b _0804D686 _0804D65C: cmp r0, 0x2 beq _0804D676 cmp r0, 0x3 beq _0804D67C b _0804D686 _0804D666: ldr r0, [sp, 0x4] subs r0, 0x1 cmp r7, r0 blt _0804D68A b _0804D684 _0804D670: cmp r6, 0 bgt _0804D68A b _0804D684 _0804D676: cmp r7, 0 bgt _0804D68A b _0804D684 _0804D67C: ldr r0, [sp, 0x8] subs r0, 0x1 cmp r6, r0 blt _0804D68A _0804D684: adds r5, 0x1 _0804D686: cmp r1, 0 beq _0804D648 _0804D68A: movs r1, 0x3 ands r1, r5 cmp r1, 0x1 beq _0804D6C6 cmp r1, 0x1 bgt _0804D69C cmp r1, 0 beq _0804D6A6 b _0804D71E _0804D69C: cmp r1, 0x2 beq _0804D6E2 cmp r1, 0x3 beq _0804D704 b _0804D71E _0804D6A6: mov r1, r9 add r1, r8 movs r0, 0xF0 lsls r0, 1 adds r2, r1, r0 ldrb r0, [r2, 0x8] cmp r0, 0 bne _0804D71E movs r0, 0x1 strb r0, [r1, 0x16] strb r0, [r2, 0x15] movs r1, 0xF0 lsls r1, 1 add r8, r1 adds r7, 0x1 b _0804D71E _0804D6C6: mov r2, r9 add r2, r8 adds r3, r2, 0 subs r3, 0x20 ldrb r0, [r3, 0x8] cmp r0, 0 bne _0804D71E strb r1, [r2, 0x13] strb r1, [r3, 0x14] movs r2, 0x20 negs r2, r2 add r9, r2 subs r6, 0x1 b _0804D71E _0804D6E2: mov r1, r9 add r1, r8 ldr r0, _0804D700 adds r2, r1, r0 ldrb r0, [r2, 0x8] cmp r0, 0 bne _0804D71E movs r0, 0x1 strb r0, [r1, 0x15] strb r0, [r2, 0x16] ldr r1, _0804D700 add r8, r1 subs r7, 0x1 b _0804D71E .align 2, 0 _0804D700: .4byte 0xfffffe20 _0804D704: mov r1, r9 add r1, r8 adds r2, r1, 0 adds r2, 0x20 ldrb r0, [r2, 0x8] cmp r0, 0 bne _0804D71E movs r0, 0x1 strb r0, [r1, 0x14] strb r0, [r2, 0x13] movs r1, 0x20 add r9, r1 adds r6, 0x1 _0804D71E: mov r10, r4 ldr r2, [sp, 0xC] cmp r10, r2 blt _0804D630 _0804D726: ldr r4, [sp, 0x44] ldrb r0, [r4, 0xB] cmp r0, 0 beq _0804D730 b _0804D8B8 _0804D730: movs r0, 0 mov r9, r0 movs r7, 0 ldr r1, [sp, 0x4] cmp r9, r1 blt _0804D73E b _0804D8B0 _0804D73E: movs r2, 0x1 mov r8, r2 _0804D742: movs r6, 0 adds r4, r7, 0x1 str r4, [sp, 0x14] ldr r0, [sp, 0x8] cmp r6, r0 blt _0804D750 b _0804D8A6 _0804D750: lsls r1, r7, 4 str r1, [sp, 0x10] subs r0, r1, r7 lsls r0, 5 ldr r2, [sp] adds r3, r0, r2 _0804D75C: lsls r0, r6, 5 adds r2, r0, r3 ldrb r1, [r2, 0x8] adds r4, r0, 0 adds r0, r6, 0x1 str r0, [sp, 0x18] cmp r1, 0 beq _0804D76E b _0804D89C _0804D76E: ldrb r0, [r2, 0xA] cmp r0, 0 beq _0804D776 b _0804D89C _0804D776: ldrb r0, [r2, 0x13] negs r1, r0 orrs r1, r0 lsrs r1, 31 ldrb r0, [r2, 0x14] cmp r0, 0 beq _0804D786 adds r1, 0x1 _0804D786: ldrb r0, [r2, 0x15] cmp r0, 0 beq _0804D78E adds r1, 0x1 _0804D78E: ldrb r0, [r2, 0x16] cmp r0, 0 beq _0804D796 adds r1, 0x1 _0804D796: cmp r1, 0x1 beq _0804D79C b _0804D89C _0804D79C: movs r0, 0x4 str r3, [sp, 0x1C] bl sub_8084100 adds r5, r0, 0 movs r2, 0 mov r10, r2 ldr r1, [sp, 0x10] subs r0, r1, r7 lsls r0, 5 ldr r1, [sp] adds r0, r1 adds r1, r4, r0 ldr r3, [sp, 0x1C] _0804D7B8: movs r0, 0x3 ands r0, r5 cmp r0, 0x1 beq _0804D7E0 cmp r0, 0x1 bgt _0804D7CA cmp r0, 0 beq _0804D7D4 b _0804D800 _0804D7CA: cmp r0, 0x2 beq _0804D7E8 cmp r0, 0x3 beq _0804D7F0 b _0804D800 _0804D7D4: ldr r0, [sp, 0x4] subs r0, 0x1 cmp r7, r0 bge _0804D7FE ldrb r0, [r1, 0x16] b _0804D7FA _0804D7E0: cmp r6, 0 ble _0804D7FE ldrb r0, [r1, 0x13] b _0804D7FA _0804D7E8: cmp r7, 0 ble _0804D7FE ldrb r0, [r1, 0x15] b _0804D7FA _0804D7F0: ldr r0, [sp, 0x8] subs r0, 0x1 cmp r6, r0 bge _0804D7FE ldrb r0, [r1, 0x14] _0804D7FA: cmp r0, 0 beq _0804D80E _0804D7FE: adds r5, 0x1 _0804D800: mov r0, r10 cmp r0, 0 bne _0804D80E adds r2, 0x1 cmp r2, 0x7 ble _0804D7B8 b _0804D89C _0804D80E: movs r2, 0x3 ands r2, r5 cmp r2, 0x1 beq _0804D844 cmp r2, 0x1 bgt _0804D820 cmp r2, 0 beq _0804D82A b _0804D89C _0804D820: cmp r2, 0x2 beq _0804D85C cmp r2, 0x3 beq _0804D880 b _0804D89C _0804D82A: adds r1, r4, r3 movs r4, 0xF0 lsls r4, 1 adds r2, r1, r4 ldrb r0, [r2, 0x8] cmp r0, 0 bne _0804D89C mov r0, r8 strb r0, [r1, 0x16] strb r0, [r2, 0x15] movs r1, 0x1 mov r9, r1 b _0804D89C _0804D844: adds r1, r4, r3 movs r4, 0xF0 lsls r4, 1 adds r0, r1, r4 ldrb r0, [r0, 0x8] cmp r0, 0 bne _0804D89C strb r2, [r1, 0x13] adds r0, r1, 0 subs r0, 0x20 strb r2, [r0, 0x14] b _0804D898 _0804D85C: adds r1, r4, r3 movs r2, 0xF0 lsls r2, 1 adds r0, r1, r2 ldrb r0, [r0, 0x8] cmp r0, 0 bne _0804D89C mov r4, r8 strb r4, [r1, 0x15] ldr r2, _0804D87C adds r0, r1, r2 strb r4, [r0, 0x16] movs r4, 0x1 mov r9, r4 b _0804D89C .align 2, 0 _0804D87C: .4byte 0xfffffe20 _0804D880: adds r1, r4, r3 movs r2, 0xF0 lsls r2, 1 adds r0, r1, r2 ldrb r0, [r0, 0x8] cmp r0, 0 bne _0804D89C mov r4, r8 strb r4, [r1, 0x14] adds r0, r1, 0 adds r0, 0x20 strb r4, [r0, 0x13] _0804D898: movs r0, 0x1 mov r9, r0 _0804D89C: ldr r6, [sp, 0x18] ldr r1, [sp, 0x8] cmp r6, r1 bge _0804D8A6 b _0804D75C _0804D8A6: ldr r7, [sp, 0x14] ldr r2, [sp, 0x4] cmp r7, r2 bge _0804D8B0 b _0804D742 _0804D8B0: mov r4, r9 cmp r4, 0 beq _0804D8B8 b _0804D730 _0804D8B8: add sp, 0x20 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_804D5F0 thumb_func_start sub_804D8C8 sub_804D8C8: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x58 str r0, [sp, 0xC] str r1, [sp, 0x10] str r2, [sp, 0x14] str r3, [sp, 0x18] ldr r0, [sp, 0x7C] lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x1C] movs r0, 0 str r0, [sp, 0x20] cmp r0, r1 bge _0804D968 _0804D8EC: movs r1, 0 mov r10, r1 ldr r2, [sp, 0x20] adds r2, 0x1 str r2, [sp, 0x38] ldr r3, [sp, 0x14] cmp r10, r3 bge _0804D95E ldr r4, [sp, 0x20] lsls r1, r4, 4 subs r1, r4 movs r3, 0 lsls r1, 5 ldr r0, [sp, 0xC] adds r0, 0x8 adds r1, r0 _0804D90C: ldrb r2, [r1] cmp r2, 0 beq _0804D91C strb r3, [r1, 0xF] strb r3, [r1, 0x10] strb r3, [r1, 0x11] strb r3, [r1, 0x12] b _0804D952 _0804D91C: ldr r5, [sp, 0x20] cmp r5, 0 bgt _0804D924 strb r2, [r1, 0xD] _0804D924: mov r6, r10 cmp r6, 0 bgt _0804D92C strb r2, [r1, 0xB] _0804D92C: ldr r0, [sp, 0x10] subs r0, 0x1 ldr r7, [sp, 0x20] cmp r7, r0 blt _0804D938 strb r2, [r1, 0xE] _0804D938: ldr r0, [sp, 0x14] subs r0, 0x1 cmp r10, r0 blt _0804D942 strb r2, [r1, 0xC] _0804D942: ldrb r0, [r1, 0xB] strb r0, [r1, 0xF] ldrb r0, [r1, 0xC] strb r0, [r1, 0x10] ldrb r0, [r1, 0xD] strb r0, [r1, 0x11] ldrb r0, [r1, 0xE] strb r0, [r1, 0x12] _0804D952: adds r1, 0x20 movs r0, 0x1 add r10, r0 ldr r2, [sp, 0x14] cmp r10, r2 blt _0804D90C _0804D95E: ldr r3, [sp, 0x38] str r3, [sp, 0x20] ldr r4, [sp, 0x10] cmp r3, r4 blt _0804D8EC _0804D968: movs r5, 0 str r5, [sp, 0x20] ldr r6, [sp, 0x10] cmp r5, r6 blt _0804D974 b _0804DBC6 _0804D974: movs r7, 0 mov r10, r7 ldr r0, [sp, 0x20] adds r0, 0x1 str r0, [sp, 0x38] ldr r1, [sp, 0x14] cmp r10, r1 blt _0804D986 b _0804DBBA _0804D986: ldr r2, [sp, 0x20] lsls r2, 4 str r2, [sp, 0x40] ldr r3, [sp, 0x20] subs r1, r2, r3 lsls r1, 5 movs r4, 0 str r4, [sp, 0x48] ldr r5, [sp, 0xC] movs r6, 0xF0 lsls r6, 1 adds r0, r5, r6 adds r0, r1 mov r8, r0 adds r5, r1, r5 ldr r7, [sp, 0xC] ldr r2, _0804DA0C adds r0, r7, r2 adds r7, r1, r0 ldr r3, [sp, 0x78] str r3, [sp, 0x4C] ldr r0, [sp, 0xC] adds r0, 0x20 adds r0, r1, r0 str r0, [sp, 0x50] ldr r0, [sp, 0xC] subs r0, 0x20 adds r6, r1, r0 ldr r4, [sp, 0x20] lsls r0, r4, 2 ldr r1, [sp, 0x18] adds r0, r1 str r0, [sp, 0x24] _0804D9C8: ldr r2, [sp, 0x20] lsls r0, r2, 4 subs r0, r2 lsls r0, 5 ldr r3, [sp, 0xC] adds r0, r3 ldr r1, [sp, 0x48] adds r4, r1, r0 ldrb r0, [r4, 0x8] cmp r0, 0 beq _0804D9E0 b _0804DB92 _0804D9E0: ldrb r0, [r4, 0xA] cmp r0, 0 beq _0804DA10 movs r2, 0 ldrsh r0, [r4, r2] adds r0, 0x1 movs r3, 0x4 ldrsh r1, [r4, r3] subs r1, 0x1 bl sub_808411C mov r9, r0 movs r1, 0x2 ldrsh r0, [r4, r1] adds r0, 0x1 movs r2, 0x6 ldrsh r1, [r4, r2] subs r1, 0x1 bl sub_808411C adds r4, r0, 0 b _0804DA1A .align 2, 0 _0804DA0C: .4byte 0xfffffe20 _0804DA10: movs r0, 0 ldrsh r3, [r4, r0] mov r9, r3 movs r1, 0x2 ldrsh r4, [r4, r1] _0804DA1A: ldrb r0, [r5, 0x17] cmp r0, 0 beq _0804DA74 ldrb r0, [r6, 0x8] cmp r0, 0 bne _0804DA68 ldrb r0, [r6, 0xA] cmp r0, 0 beq _0804DA40 movs r2, 0 ldrsh r0, [r6, r2] adds r0, 0x1 movs r3, 0x4 ldrsh r1, [r6, r3] subs r1, 0x1 bl sub_808411C adds r2, r0, 0 b _0804DA44 _0804DA40: movs r0, 0 ldrsh r2, [r6, r0] _0804DA44: movs r3, 0x2 ldrsh r1, [r5, r3] movs r0, 0x6 ldrsh r3, [r6, r0] subs r3, 0x1 mov r12, r3 movs r3, 0x1 str r3, [sp] ldr r3, [sp, 0x24] ldr r0, [r3] str r0, [sp, 0x4] ldr r3, [sp, 0x4C] ldr r0, [r3] str r0, [sp, 0x8] mov r0, r9 mov r3, r12 bl sub_804E328 _0804DA68: movs r0, 0 strb r0, [r5, 0x17] strb r0, [r6, 0x18] movs r1, 0x1 strb r1, [r5, 0xB] strb r1, [r6, 0xB] _0804DA74: ldrb r0, [r5, 0x18] cmp r0, 0 beq _0804DAD4 ldr r2, [sp, 0x50] ldrb r0, [r2, 0x8] cmp r0, 0 bne _0804DAC6 ldrb r0, [r2, 0xA] cmp r0, 0 beq _0804DA9C movs r3, 0x20 ldrsh r0, [r5, r3] adds r0, 0x1 movs r2, 0x24 ldrsh r1, [r5, r2] subs r1, 0x1 bl sub_808411C adds r2, r0, 0 b _0804DAA0 _0804DA9C: movs r3, 0x20 ldrsh r2, [r5, r3] _0804DAA0: movs r0, 0x6 ldrsh r1, [r5, r0] subs r1, 0x1 movs r0, 0x22 ldrsh r3, [r5, r0] mov r12, r3 movs r3, 0x1 str r3, [sp] ldr r3, [sp, 0x24] ldr r0, [r3] str r0, [sp, 0x4] ldr r3, [sp, 0x4C] ldr r0, [r3, 0x4] subs r0, 0x1 str r0, [sp, 0x8] mov r0, r9 mov r3, r12 bl sub_804E328 _0804DAC6: movs r0, 0 strb r0, [r5, 0x18] ldr r1, [sp, 0x50] strb r0, [r1, 0x17] movs r2, 0x1 strb r2, [r5, 0xB] strb r2, [r1, 0xB] _0804DAD4: ldrb r0, [r5, 0x19] cmp r0, 0 beq _0804DB2E ldrb r0, [r7, 0x8] cmp r0, 0 bne _0804DB22 ldrb r0, [r7, 0xA] cmp r0, 0 beq _0804DAFA movs r3, 0x2 ldrsh r0, [r7, r3] adds r0, 0x1 movs r2, 0x6 ldrsh r1, [r7, r2] subs r1, 0x1 bl sub_808411C adds r3, r0, 0 b _0804DAFE _0804DAFA: movs r0, 0x2 ldrsh r3, [r7, r0] _0804DAFE: movs r1, 0 ldrsh r0, [r5, r1] movs r1, 0 ldrsh r2, [r7, r1] subs r2, 0x1 mov r9, r2 movs r2, 0 str r2, [sp] ldr r2, [sp, 0x24] ldr r1, [r2] str r1, [sp, 0x4] ldr r2, [sp, 0x4C] ldr r1, [r2] str r1, [sp, 0x8] adds r1, r4, 0 mov r2, r9 bl sub_804E328 _0804DB22: movs r3, 0 strb r3, [r5, 0x19] strb r3, [r7, 0x1A] movs r0, 0x1 strb r0, [r5, 0xB] strb r0, [r7, 0xB] _0804DB2E: ldrb r0, [r5, 0x1A] cmp r0, 0 beq _0804DB92 mov r1, r8 ldrb r0, [r1, 0x8] cmp r0, 0 bne _0804DB84 ldrb r0, [r1, 0xA] cmp r0, 0 beq _0804DB56 movs r2, 0x2 ldrsh r0, [r1, r2] adds r0, 0x1 movs r3, 0x6 ldrsh r1, [r1, r3] subs r1, 0x1 bl sub_808411C adds r3, r0, 0 b _0804DB5C _0804DB56: mov r0, r8 movs r1, 0x2 ldrsh r3, [r0, r1] _0804DB5C: movs r2, 0x4 ldrsh r0, [r5, r2] subs r0, 0x1 mov r1, r8 movs r2, 0 ldrsh r1, [r1, r2] mov r9, r1 movs r1, 0 str r1, [sp] ldr r2, [sp, 0x24] ldr r1, [r2, 0x4] subs r1, 0x1 str r1, [sp, 0x4] ldr r2, [sp, 0x4C] ldr r1, [r2] str r1, [sp, 0x8] adds r1, r4, 0 mov r2, r9 bl sub_804E328 _0804DB84: movs r3, 0 strb r3, [r5, 0x1A] mov r4, r8 strb r3, [r4, 0x19] movs r0, 0x1 strb r0, [r5, 0xB] strb r0, [r4, 0xB] _0804DB92: ldr r1, [sp, 0x48] adds r1, 0x20 str r1, [sp, 0x48] movs r2, 0x20 add r8, r2 adds r5, 0x20 adds r7, 0x20 ldr r3, [sp, 0x4C] adds r3, 0x4 str r3, [sp, 0x4C] ldr r4, [sp, 0x50] adds r4, 0x20 str r4, [sp, 0x50] adds r6, 0x20 movs r0, 0x1 add r10, r0 ldr r1, [sp, 0x14] cmp r10, r1 bge _0804DBBA b _0804D9C8 _0804DBBA: ldr r2, [sp, 0x38] str r2, [sp, 0x20] ldr r3, [sp, 0x10] cmp r2, r3 bge _0804DBC6 b _0804D974 _0804DBC6: ldr r4, [sp, 0x1C] cmp r4, 0 beq _0804DBCE b _0804E026 _0804DBCE: movs r5, 0 str r5, [sp, 0x20] ldr r6, [sp, 0x10] cmp r5, r6 blt _0804DBDA b _0804E026 _0804DBDA: movs r7, 0 mov r10, r7 ldr r0, [sp, 0x20] adds r0, 0x1 str r0, [sp, 0x38] ldr r1, [sp, 0x14] cmp r10, r1 blt _0804DBEC b _0804E018 _0804DBEC: movs r0, 0x64 bl sub_8084100 mov r2, r10 adds r2, 0x1 str r2, [sp, 0x3C] cmp r0, 0x4 ble _0804DBFE b _0804E00C _0804DBFE: mov r3, r10 lsls r1, r3, 5 ldr r4, [sp, 0x20] lsls r2, r4, 4 subs r0, r2, r4 lsls r0, 5 ldr r5, [sp, 0xC] adds r0, r5 adds r4, r1, r0 ldrb r0, [r4, 0x8] str r1, [sp, 0x44] str r2, [sp, 0x40] cmp r0, 0 beq _0804DC1C b _0804E00C _0804DC1C: ldrb r0, [r4, 0xB] cmp r0, 0 bne _0804DC24 b _0804E00C _0804DC24: ldrb r0, [r4, 0x12] cmp r0, 0 beq _0804DC2C b _0804E00C _0804DC2C: ldrb r0, [r4, 0x9] cmp r0, 0 beq _0804DC34 b _0804E00C _0804DC34: ldrb r0, [r4, 0xA] cmp r0, 0 bne _0804DC3C b _0804E00C _0804DC3C: movs r0, 0x4 bl sub_8084100 cmp r0, 0x1 bne _0804DC48 b _0804DD50 _0804DC48: cmp r0, 0x1 bgt _0804DC52 cmp r0, 0 beq _0804DC60 b _0804E00C _0804DC52: cmp r0, 0x2 bne _0804DC58 b _0804DE3C _0804DC58: cmp r0, 0x3 bne _0804DC5E b _0804DF30 _0804DC5E: b _0804E00C _0804DC60: ldr r6, [sp, 0x20] cmp r6, 0 bgt _0804DC68 b _0804E00C _0804DC68: ldr r7, _0804DD48 adds r2, r4, r7 ldrb r0, [r2, 0xB] cmp r0, 0 bne _0804DC74 b _0804E00C _0804DC74: ldrb r0, [r2, 0x8] cmp r0, 0 beq _0804DC7C b _0804E00C _0804DC7C: ldrb r0, [r2, 0xA] cmp r0, 0 bne _0804DC84 b _0804E00C _0804DC84: ldrb r0, [r2, 0x9] cmp r0, 0 beq _0804DC8C b _0804E00C _0804DC8C: ldrb r0, [r2, 0x12] cmp r0, 0 beq _0804DC94 b _0804E00C _0804DC94: movs r1, 0 ldrsh r0, [r2, r1] str r0, [sp, 0x28] ldrh r3, [r4, 0x2] movs r5, 0x2 ldrsh r1, [r4, r5] ldrh r5, [r2, 0x2] movs r6, 0x2 ldrsh r0, [r2, r6] cmp r1, r0 ble _0804DCAC adds r3, r5, 0 _0804DCAC: lsls r0, r3, 16 asrs r0, 16 mov r9, r0 movs r0, 0x4 ldrsh r7, [r4, r0] mov r10, r7 ldrh r3, [r4, 0x6] movs r5, 0x6 ldrsh r1, [r4, r5] ldrh r5, [r2, 0x6] movs r6, 0x6 ldrsh r0, [r2, r6] cmp r1, r0 bge _0804DCCA adds r3, r5, 0 _0804DCCA: lsls r0, r3, 16 asrs r7, r0, 16 movs r1, 0 ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] bl sub_804954C ldrb r0, [r0, 0x9] mov r8, r0 ldr r5, [sp, 0x28] cmp r5, r10 bge _0804DD16 _0804DCE4: mov r4, r9 adds r6, r5, 0x1 cmp r9, r7 bge _0804DD10 ldr r0, _0804DD4C adds r3, r0, 0 _0804DCF0: adds r0, r5, 0 adds r1, r4, 0 str r3, [sp, 0x54] bl sub_8049590 ldrh r1, [r0] ldr r3, [sp, 0x54] ands r1, r3 movs r2, 0x1 orrs r1, r2 strh r1, [r0] mov r1, r8 strb r1, [r0, 0x9] adds r4, 0x1 cmp r4, r7 blt _0804DCF0 _0804DD10: adds r5, r6, 0 cmp r5, r10 blt _0804DCE4 _0804DD16: ldr r2, [sp, 0x40] ldr r3, [sp, 0x20] subs r0, r2, r3 lsls r0, 5 ldr r4, [sp, 0xC] adds r0, r4 ldr r5, [sp, 0x44] adds r0, r5, r0 ldr r6, _0804DD48 adds r3, r0, r6 mov r1, sp ldrh r1, [r1, 0x28] strh r1, [r3] mov r2, r10 strh r2, [r3, 0x4] mov r4, r9 strh r4, [r3, 0x2] strh r7, [r3, 0x6] movs r5, 0x1 strb r5, [r0, 0x12] strb r5, [r3, 0x12] movs r6, 0 strb r6, [r0, 0xB] strb r5, [r0, 0x11] b _0804E00C .align 2, 0 _0804DD48: .4byte 0xfffffe20 _0804DD4C: .4byte 0x0000fffc _0804DD50: mov r7, r10 cmp r7, 0 bgt _0804DD58 b _0804E00C _0804DD58: adds r2, r4, 0 subs r2, 0x20 ldrb r0, [r2, 0xB] cmp r0, 0 bne _0804DD64 b _0804E00C _0804DD64: ldrb r0, [r2, 0x8] cmp r0, 0 beq _0804DD6C b _0804E00C _0804DD6C: ldrb r0, [r2, 0xA] cmp r0, 0 bne _0804DD74 b _0804E00C _0804DD74: ldrb r0, [r2, 0x9] cmp r0, 0 beq _0804DD7C b _0804E00C _0804DD7C: ldrb r0, [r2, 0x12] cmp r0, 0 beq _0804DD84 b _0804E00C _0804DD84: ldrh r3, [r4] movs r0, 0 ldrsh r1, [r4, r0] ldrh r5, [r2] movs r6, 0 ldrsh r0, [r2, r6] cmp r1, r0 ble _0804DD96 adds r3, r5, 0 _0804DD96: lsls r0, r3, 16 asrs r0, 16 str r0, [sp, 0x2C] movs r0, 0x2 ldrsh r7, [r2, r0] mov r10, r7 ldrh r3, [r4, 0x4] movs r5, 0x4 ldrsh r1, [r4, r5] ldrh r5, [r2, 0x4] movs r6, 0x4 ldrsh r0, [r2, r6] cmp r1, r0 bge _0804DDB4 adds r3, r5, 0 _0804DDB4: lsls r0, r3, 16 asrs r0, 16 mov r8, r0 movs r0, 0x6 ldrsh r7, [r4, r0] movs r1, 0 ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] bl sub_804954C ldrb r0, [r0, 0x9] mov r9, r0 ldr r5, [sp, 0x2C] cmp r5, r8 bge _0804DE06 _0804DDD4: mov r4, r10 adds r6, r5, 0x1 cmp r10, r7 bge _0804DE00 ldr r0, _0804DE38 adds r3, r0, 0 _0804DDE0: adds r0, r5, 0 adds r1, r4, 0 str r3, [sp, 0x54] bl sub_8049590 ldrh r1, [r0] ldr r3, [sp, 0x54] ands r1, r3 movs r2, 0x1 orrs r1, r2 strh r1, [r0] mov r1, r9 strb r1, [r0, 0x9] adds r4, 0x1 cmp r4, r7 blt _0804DDE0 _0804DE00: adds r5, r6, 0 cmp r5, r8 blt _0804DDD4 _0804DE06: ldr r2, [sp, 0x40] ldr r3, [sp, 0x20] subs r0, r2, r3 lsls r0, 5 ldr r4, [sp, 0xC] adds r0, r4 ldr r5, [sp, 0x44] adds r0, r5, r0 adds r3, r0, 0 subs r3, 0x20 mov r6, sp ldrh r6, [r6, 0x2C] strh r6, [r3] mov r1, r8 strh r1, [r3, 0x4] mov r2, r10 strh r2, [r3, 0x2] strh r7, [r3, 0x6] movs r4, 0x1 strb r4, [r0, 0x12] strb r4, [r3, 0x12] movs r5, 0 strb r5, [r0, 0xB] strb r4, [r0, 0x11] b _0804E00C .align 2, 0 _0804DE38: .4byte 0x0000fffc _0804DE3C: ldr r0, [sp, 0x10] subs r0, 0x2 ldr r6, [sp, 0x20] cmp r6, r0 ble _0804DE48 b _0804E00C _0804DE48: movs r7, 0xF0 lsls r7, 1 adds r2, r4, r7 ldrb r0, [r2, 0xB] cmp r0, 0 bne _0804DE56 b _0804E00C _0804DE56: ldrb r0, [r2, 0x8] cmp r0, 0 beq _0804DE5E b _0804E00C _0804DE5E: ldrb r0, [r2, 0xA] cmp r0, 0 bne _0804DE66 b _0804E00C _0804DE66: ldrb r0, [r2, 0x9] cmp r0, 0 beq _0804DE6E b _0804E00C _0804DE6E: ldrb r0, [r2, 0x12] cmp r0, 0 beq _0804DE76 b _0804E00C _0804DE76: movs r1, 0 ldrsh r0, [r4, r1] str r0, [sp, 0x30] ldrh r3, [r2, 0x2] movs r5, 0x2 ldrsh r1, [r2, r5] ldrh r5, [r4, 0x2] movs r6, 0x2 ldrsh r0, [r4, r6] cmp r1, r0 ble _0804DE8E adds r3, r5, 0 _0804DE8E: lsls r0, r3, 16 asrs r0, 16 mov r9, r0 movs r0, 0x4 ldrsh r7, [r2, r0] mov r10, r7 ldrh r3, [r2, 0x6] movs r5, 0x6 ldrsh r1, [r2, r5] ldrh r2, [r4, 0x6] movs r6, 0x6 ldrsh r0, [r4, r6] cmp r1, r0 bge _0804DEAC adds r3, r2, 0 _0804DEAC: lsls r0, r3, 16 asrs r7, r0, 16 movs r0, 0x2 ldrsh r1, [r4, r0] ldr r0, [sp, 0x30] bl sub_804954C ldrb r0, [r0, 0x9] mov r8, r0 ldr r5, [sp, 0x30] cmp r5, r10 bge _0804DEF6 _0804DEC4: mov r4, r9 adds r6, r5, 0x1 cmp r9, r7 bge _0804DEF0 ldr r1, _0804DF2C adds r3, r1, 0 _0804DED0: adds r0, r5, 0 adds r1, r4, 0 str r3, [sp, 0x54] bl sub_8049590 ldrh r1, [r0] ldr r3, [sp, 0x54] ands r1, r3 movs r2, 0x1 orrs r1, r2 strh r1, [r0] mov r2, r8 strb r2, [r0, 0x9] adds r4, 0x1 cmp r4, r7 blt _0804DED0 _0804DEF0: adds r5, r6, 0 cmp r5, r10 blt _0804DEC4 _0804DEF6: ldr r3, [sp, 0x40] ldr r4, [sp, 0x20] subs r0, r3, r4 lsls r0, 5 ldr r5, [sp, 0xC] adds r0, r5 ldr r6, [sp, 0x44] adds r0, r6, r0 mov r1, sp ldrh r1, [r1, 0x30] strh r1, [r0] mov r2, r10 strh r2, [r0, 0x4] mov r3, r9 strh r3, [r0, 0x2] strh r7, [r0, 0x6] movs r4, 0xF0 lsls r4, 1 adds r1, r0, r4 movs r5, 0x1 strb r5, [r1, 0x12] strb r5, [r0, 0x12] movs r6, 0 strb r6, [r1, 0xB] strb r5, [r1, 0x11] b _0804E00C .align 2, 0 _0804DF2C: .4byte 0x0000fffc _0804DF30: ldr r0, [sp, 0x14] subs r0, 0x2 cmp r10, r0 bgt _0804E00C adds r3, r4, 0 adds r3, 0x20 ldrb r0, [r3, 0xB] cmp r0, 0 beq _0804E00C ldrb r0, [r3, 0x8] cmp r0, 0 bne _0804E00C ldrb r0, [r3, 0xA] cmp r0, 0 beq _0804E00C ldrb r0, [r3, 0x9] cmp r0, 0 bne _0804E00C ldrb r0, [r3, 0x12] cmp r0, 0 bne _0804E00C ldrh r2, [r4, 0x20] movs r7, 0x20 ldrsh r1, [r4, r7] ldrh r5, [r4] movs r6, 0 ldrsh r0, [r4, r6] cmp r1, r0 ble _0804DF6C adds r2, r5, 0 _0804DF6C: lsls r0, r2, 16 asrs r0, 16 str r0, [sp, 0x34] movs r7, 0x2 ldrsh r6, [r4, r7] ldrh r2, [r3, 0x4] movs r0, 0x4 ldrsh r1, [r3, r0] ldrh r5, [r4, 0x4] movs r7, 0x4 ldrsh r0, [r4, r7] cmp r1, r0 bge _0804DF88 adds r2, r5, 0 _0804DF88: lsls r0, r2, 16 asrs r0, 16 mov r8, r0 movs r0, 0x6 ldrsh r3, [r3, r0] movs r1, 0 ldrsh r0, [r4, r1] adds r1, r6, 0 str r3, [sp, 0x54] bl sub_804954C ldrb r0, [r0, 0x9] mov r10, r0 ldr r5, [sp, 0x34] ldr r3, [sp, 0x54] cmp r5, r8 bge _0804DFDE _0804DFAA: adds r4, r6, 0 adds r7, r5, 0x1 cmp r6, r3 bge _0804DFD8 ldr r2, _0804E038 mov r9, r2 _0804DFB6: adds r0, r5, 0 adds r1, r4, 0 str r3, [sp, 0x54] bl sub_8049590 ldrh r1, [r0] mov r2, r9 ands r1, r2 movs r2, 0x1 orrs r1, r2 strh r1, [r0] mov r1, r10 strb r1, [r0, 0x9] adds r4, 0x1 ldr r3, [sp, 0x54] cmp r4, r3 blt _0804DFB6 _0804DFD8: adds r5, r7, 0 cmp r5, r8 blt _0804DFAA _0804DFDE: ldr r2, [sp, 0x40] ldr r4, [sp, 0x20] subs r0, r2, r4 lsls r0, 5 ldr r5, [sp, 0xC] adds r0, r5 ldr r7, [sp, 0x44] adds r0, r7, r0 mov r1, sp ldrh r1, [r1, 0x34] strh r1, [r0] mov r2, r8 strh r2, [r0, 0x4] strh r6, [r0, 0x2] strh r3, [r0, 0x6] adds r1, r0, 0 adds r1, 0x20 movs r3, 0x1 strb r3, [r1, 0x12] strb r3, [r0, 0x12] movs r4, 0 strb r4, [r1, 0xB] strb r3, [r1, 0x11] _0804E00C: ldr r5, [sp, 0x3C] mov r10, r5 ldr r6, [sp, 0x14] cmp r10, r6 bge _0804E018 b _0804DBEC _0804E018: ldr r7, [sp, 0x38] str r7, [sp, 0x20] adds r0, r7, 0 ldr r1, [sp, 0x10] cmp r0, r1 bge _0804E026 b _0804DBDA _0804E026: add sp, 0x58 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804E038: .4byte 0x0000fffc thumb_func_end sub_804D8C8 thumb_func_start sub_804E03C sub_804E03C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x44 str r0, [sp] str r1, [sp, 0x4] str r2, [sp, 0x8] movs r0, 0 str r0, [sp, 0xC] cmp r0, r1 blt _0804E058 b _0804E318 _0804E058: movs r2, 0 ldr r1, [sp, 0xC] adds r1, 0x1 str r1, [sp, 0x28] ldr r3, [sp, 0x8] cmp r2, r3 blt _0804E068 b _0804E30C _0804E068: ldr r4, [sp, 0xC] lsls r4, 4 str r4, [sp, 0x14] ldr r6, [sp, 0xC] subs r0, r4, r6 lsls r0, 5 ldr r1, [sp] adds r0, r1 str r0, [sp, 0x18] _0804E07A: lsls r0, r2, 5 ldr r3, [sp, 0x18] adds r4, r0, r3 ldrb r1, [r4, 0x8] str r0, [sp, 0x34] adds r2, 0x1 str r2, [sp, 0x2C] cmp r1, 0 beq _0804E08E b _0804E302 _0804E08E: ldrb r0, [r4, 0x11] cmp r0, 0 beq _0804E096 b _0804E302 _0804E096: ldrb r0, [r4, 0x12] cmp r0, 0 beq _0804E09E b _0804E302 _0804E09E: ldrb r0, [r4, 0xB] cmp r0, 0 bne _0804E0A6 b _0804E302 _0804E0A6: ldrb r0, [r4, 0xA] cmp r0, 0 bne _0804E0AE b _0804E302 _0804E0AE: ldrb r0, [r4, 0x9] cmp r0, 0 beq _0804E0B6 b _0804E302 _0804E0B6: ldrb r0, [r4, 0x10] cmp r0, 0 beq _0804E0BE b _0804E302 _0804E0BE: ldrb r0, [r4, 0x1C] cmp r0, 0 bne _0804E0C6 b _0804E302 _0804E0C6: movs r0, 0x64 bl sub_8084100 cmp r0, 0x3B bgt _0804E0D2 b _0804E302 _0804E0D2: movs r6, 0x4 ldrsh r2, [r4, r6] movs r1, 0 ldrsh r0, [r4, r1] subs r2, r0 movs r3, 0x6 ldrsh r0, [r4, r3] movs r6, 0x2 ldrsh r1, [r4, r6] subs r0, r1 adds r2, r0 str r2, [sp, 0x10] adds r0, r2, 0 cmp r2, 0 bge _0804E0F2 adds r0, 0x3 _0804E0F2: asrs r0, 2 str r0, [sp, 0x10] cmp r0, 0 bne _0804E0FE movs r0, 0x1 str r0, [sp, 0x10] _0804E0FE: movs r1, 0 ldr r2, [sp, 0x10] cmp r1, r2 blt _0804E108 b _0804E302 _0804E108: ldr r3, [sp, 0x14] ldr r4, [sp, 0xC] subs r0, r3, r4 lsls r0, 5 ldr r6, [sp] adds r0, r6 ldr r2, [sp, 0x34] adds r0, r2, r0 str r0, [sp, 0x20] _0804E11A: movs r4, 0 adds r1, 0x1 str r1, [sp, 0x30] _0804E120: movs r0, 0x4 bl sub_8084100 str r0, [sp, 0x1C] cmp r0, 0x1 beq _0804E14A cmp r0, 0x1 ble _0804E138 cmp r0, 0x2 beq _0804E168 cmp r0, 0x3 beq _0804E182 _0804E138: ldr r3, [sp, 0x20] movs r6, 0 ldrsh r7, [r3, r6] movs r1, 0x2 ldrsh r0, [r3, r1] mov r8, r0 cmp r4, 0 bne _0804E19C b _0804E15C _0804E14A: ldr r2, [sp, 0x20] movs r3, 0x4 ldrsh r0, [r2, r3] subs r7, r0, 0x1 movs r0, 0x2 ldrsh r6, [r2, r0] mov r8, r6 cmp r4, 0 beq _0804E162 _0804E15C: movs r3, 0 movs r2, 0x1 b _0804E1A0 _0804E162: movs r3, 0x1 negs r3, r3 b _0804E19E _0804E168: ldr r1, [sp, 0x20] movs r2, 0x4 ldrsh r0, [r1, r2] subs r7, r0, 0x1 movs r3, 0x6 ldrsh r0, [r1, r3] subs r0, 0x1 mov r8, r0 cmp r4, 0 beq _0804E194 movs r3, 0x1 negs r3, r3 b _0804E19E _0804E182: ldr r6, [sp, 0x20] movs r0, 0 ldrsh r7, [r6, r0] movs r1, 0x6 ldrsh r0, [r6, r1] subs r0, 0x1 mov r8, r0 cmp r4, 0 beq _0804E19C _0804E194: movs r3, 0 movs r2, 0x1 negs r2, r2 b _0804E1A0 _0804E19C: movs r3, 0x1 _0804E19E: movs r2, 0 _0804E1A0: movs r6, 0 mov r9, r6 ldr r5, [sp, 0x34] ldr r0, [sp, 0x14] str r0, [sp, 0x40] ldr r6, [sp, 0x18] adds r1, r5, r6 movs r6, 0 ldrsh r0, [r1, r6] mov r10, r0 adds r4, 0x1 str r4, [sp, 0x24] cmp r7, r10 bge _0804E1BE b _0804E2F0 _0804E1BE: movs r4, 0x4 ldrsh r0, [r1, r4] cmp r7, r0 blt _0804E1C8 b _0804E2F0 _0804E1C8: ldr r6, [sp, 0x40] ldr r1, [sp, 0xC] subs r0, r6, r1 lsls r0, 5 ldr r4, [sp] adds r0, r4 adds r4, r5, r0 movs r6, 0x2 ldrsh r0, [r4, r6] cmp r8, r0 bge _0804E1E0 b _0804E2F0 _0804E1E0: movs r1, 0x6 ldrsh r0, [r4, r1] cmp r8, r0 blt _0804E1EA b _0804E2F0 _0804E1EA: adds r0, r7, 0 mov r1, r8 str r2, [sp, 0x38] str r3, [sp, 0x3C] bl sub_804954C ldrh r1, [r0] movs r0, 0x3 ands r0, r1 ldr r2, [sp, 0x38] ldr r3, [sp, 0x3C] cmp r0, 0x1 bne _0804E2D0 movs r6, 0 _0804E206: ldr r1, _0804E228 lsls r0, r6, 2 adds r0, r1 movs r2, 0 ldrsh r1, [r0, r2] adds r1, r7 mov r10, r1 movs r3, 0x2 ldrsh r0, [r0, r3] add r0, r8 mov r9, r0 movs r3, 0 movs r5, 0x1 negs r5, r5 _0804E222: movs r4, 0x1 negs r4, r4 b _0804E22E .align 2, 0 _0804E228: .4byte gUnknown_80F4448 _0804E22C: adds r4, 0x1 _0804E22E: cmp r4, 0x1 bgt _0804E25A mov r1, r10 adds r0, r1, r4 mov r2, r9 adds r1, r2, r5 str r3, [sp, 0x3C] bl sub_804954C adds r2, r0, 0 ldrh r1, [r2] movs r0, 0x3 ands r0, r1 ldr r3, [sp, 0x3C] cmp r0, 0x1 bne _0804E22C ldrb r0, [r2, 0x9] cmp r0, 0xFF bne _0804E256 movs r3, 0x1 _0804E256: cmp r3, 0 beq _0804E22C _0804E25A: cmp r3, 0 bne _0804E26A adds r5, 0x1 cmp r5, 0x1 ble _0804E222 adds r6, 0x1 cmp r6, 0x7 ble _0804E206 _0804E26A: cmp r6, 0x8 bne _0804E2F0 movs r6, 0 ldr r3, [sp, 0x1C] lsls r1, r3, 3 ldr r0, _0804E2C4 adds r4, r1, r0 _0804E278: ldr r0, _0804E2C8 lsls r1, r6, 2 adds r1, r0 movs r2, 0 ldrsh r0, [r1, r2] movs r3, 0x2 ldrsh r1, [r1, r3] adds r0, r7, r0 add r1, r8 bl sub_804954C ldrh r1, [r0] movs r0, 0x3 ands r0, r1 movs r1, 0 cmp r0, 0x1 bne _0804E29C movs r1, 0x1 _0804E29C: ldrb r0, [r4] cmp r0, r1 bne _0804E2AA adds r4, 0x2 adds r6, 0x2 cmp r6, 0x7 ble _0804E278 _0804E2AA: cmp r6, 0x8 bne _0804E2F0 adds r0, r7, 0 mov r1, r8 bl sub_8049590 ldrh r2, [r0] ldr r4, _0804E2CC adds r1, r4, 0 ands r2, r1 strh r2, [r0] b _0804E2F0 .align 2, 0 _0804E2C4: .4byte gUnknown_80F6DD5 _0804E2C8: .4byte gUnknown_80F4448 _0804E2CC: .4byte 0x0000fffc _0804E2D0: adds r7, r3 add r8, r2 movs r6, 0x1 add r9, r6 mov r0, r9 cmp r0, 0x9 bgt _0804E2F0 movs r1, 0 ldrsh r0, [r4, r1] cmp r7, r0 blt _0804E2F0 movs r6, 0x4 ldrsh r0, [r4, r6] cmp r7, r0 bge _0804E2F0 b _0804E1C8 _0804E2F0: ldr r4, [sp, 0x24] cmp r4, 0x1 bgt _0804E2F8 b _0804E120 _0804E2F8: ldr r1, [sp, 0x30] ldr r0, [sp, 0x10] cmp r1, r0 bge _0804E302 b _0804E11A _0804E302: ldr r2, [sp, 0x2C] ldr r1, [sp, 0x8] cmp r2, r1 bge _0804E30C b _0804E07A _0804E30C: ldr r2, [sp, 0x28] str r2, [sp, 0xC] ldr r3, [sp, 0x4] cmp r2, r3 bge _0804E318 b _0804E058 _0804E318: add sp, 0x44 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_804E03C thumb_func_start sub_804E328 sub_804E328: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 adds r5, r0, 0 adds r4, r1, 0 str r2, [sp] str r3, [sp, 0x4] ldr r0, [sp, 0x28] lsls r0, 24 mov r10, r5 mov r9, r4 ldr r1, [sp, 0x2C] mov r8, r1 ldr r7, [sp, 0x30] cmp r0, 0 bne _0804E350 b _0804E470 _0804E350: movs r6, 0 _0804E352: cmp r4, r7 beq _0804E3A8 adds r0, r6, 0 adds r6, 0x1 cmp r0, 0x37 ble _0804E360 b _0804E57E _0804E360: adds r0, r5, 0 adds r1, r4, 0 bl sub_804954C ldrh r1, [r0] movs r0, 0x3 ands r0, r1 cmp r0, 0x1 beq _0804E390 adds r0, r5, 0 adds r1, r4, 0 bl sub_8049590 ldrh r2, [r0] ldr r3, _0804E38C adds r1, r3, 0 ands r2, r1 movs r1, 0x1 orrs r2, r1 strh r2, [r0] b _0804E39C .align 2, 0 _0804E38C: .4byte 0x0000fffc _0804E390: cmp r5, r10 beq _0804E396 b _0804E57E _0804E396: cmp r4, r9 beq _0804E39C b _0804E57E _0804E39C: cmp r4, r7 bge _0804E3A4 adds r4, 0x1 b _0804E352 _0804E3A4: subs r4, 0x1 b _0804E352 _0804E3A8: movs r6, 0 ldr r0, [sp] cmp r5, r0 beq _0804E40A movs r7, 0 _0804E3B2: adds r0, r6, 0 adds r6, 0x1 cmp r0, 0x37 ble _0804E3BC b _0804E57E _0804E3BC: adds r0, r5, 0 adds r1, r4, 0 bl sub_804954C ldrh r1, [r0] movs r0, 0x3 ands r0, r1 cmp r0, 0x1 beq _0804E3EC adds r0, r5, 0 adds r1, r4, 0 bl sub_8049590 ldrh r2, [r0] ldr r3, _0804E3E8 adds r1, r3, 0 ands r2, r1 movs r1, 0x1 orrs r2, r1 strh r2, [r0] b _0804E3F8 .align 2, 0 _0804E3E8: .4byte 0x0000fffc _0804E3EC: cmp r5, r10 beq _0804E3F2 b _0804E57E _0804E3F2: cmp r4, r9 beq _0804E3F8 b _0804E57E _0804E3F8: ldr r0, [sp] cmp r5, r0 bge _0804E402 adds r5, 0x1 b _0804E404 _0804E402: subs r5, 0x1 _0804E404: ldr r1, [sp] cmp r5, r1 bne _0804E3B2 _0804E40A: movs r6, 0 ldr r3, [sp, 0x4] cmp r4, r3 bne _0804E414 b _0804E57E _0804E414: movs r7, 0 _0804E416: adds r0, r6, 0 adds r6, 0x1 cmp r0, 0x37 ble _0804E420 b _0804E57E _0804E420: adds r0, r5, 0 adds r1, r4, 0 bl sub_804954C ldrh r1, [r0] movs r0, 0x3 ands r0, r1 cmp r0, 0x1 beq _0804E450 adds r0, r5, 0 adds r1, r4, 0 bl sub_8049590 ldrh r2, [r0] ldr r3, _0804E44C adds r1, r3, 0 ands r2, r1 movs r1, 0x1 orrs r2, r1 strh r2, [r0] b _0804E45C .align 2, 0 _0804E44C: .4byte 0x0000fffc _0804E450: cmp r5, r10 beq _0804E456 b _0804E57E _0804E456: cmp r4, r9 beq _0804E45C b _0804E57E _0804E45C: ldr r0, [sp, 0x4] cmp r4, r0 bge _0804E466 adds r4, 0x1 b _0804E468 _0804E466: subs r4, 0x1 _0804E468: ldr r1, [sp, 0x4] cmp r4, r1 bne _0804E416 b _0804E57E _0804E470: movs r6, 0 cmp r5, r8 beq _0804E4C6 movs r7, 0 _0804E478: adds r0, r6, 0 adds r6, 0x1 cmp r0, 0x37 ble _0804E482 b _0804E57E _0804E482: adds r0, r5, 0 adds r1, r4, 0 bl sub_804954C ldrh r1, [r0] movs r0, 0x3 ands r0, r1 cmp r0, 0x1 beq _0804E4B0 adds r0, r5, 0 adds r1, r4, 0 bl sub_8049590 ldrh r2, [r0] ldr r3, _0804E4AC adds r1, r3, 0 ands r2, r1 movs r1, 0x1 orrs r2, r1 strh r2, [r0] b _0804E4B8 .align 2, 0 _0804E4AC: .4byte 0x0000fffc _0804E4B0: cmp r5, r10 bne _0804E57E cmp r4, r9 bne _0804E57E _0804E4B8: cmp r5, r8 bge _0804E4C0 adds r5, 0x1 b _0804E4C2 _0804E4C0: subs r5, 0x1 _0804E4C2: cmp r5, r8 bne _0804E478 _0804E4C6: movs r6, 0 ldr r0, [sp, 0x4] cmp r4, r0 beq _0804E522 movs r7, 0 _0804E4D0: adds r0, r6, 0 adds r6, 0x1 cmp r0, 0x37 bgt _0804E57E adds r0, r5, 0 adds r1, r4, 0 bl sub_804954C ldrh r1, [r0] movs r0, 0x3 ands r0, r1 cmp r0, 0x1 beq _0804E508 adds r0, r5, 0 adds r1, r4, 0 bl sub_8049590 ldrh r2, [r0] ldr r3, _0804E504 adds r1, r3, 0 ands r2, r1 movs r1, 0x1 orrs r2, r1 strh r2, [r0] b _0804E510 .align 2, 0 _0804E504: .4byte 0x0000fffc _0804E508: cmp r5, r10 bne _0804E57E cmp r4, r9 bne _0804E57E _0804E510: ldr r0, [sp, 0x4] cmp r4, r0 bge _0804E51A adds r4, 0x1 b _0804E51C _0804E51A: subs r4, 0x1 _0804E51C: ldr r1, [sp, 0x4] cmp r4, r1 bne _0804E4D0 _0804E522: movs r6, 0 ldr r3, [sp] cmp r5, r3 beq _0804E57E movs r7, 0 _0804E52C: adds r0, r6, 0 adds r6, 0x1 cmp r0, 0x37 bgt _0804E57E adds r0, r5, 0 adds r1, r4, 0 bl sub_804954C ldrh r1, [r0] movs r0, 0x3 ands r0, r1 cmp r0, 0x1 beq _0804E564 adds r0, r5, 0 adds r1, r4, 0 bl sub_8049590 ldrh r2, [r0] ldr r3, _0804E560 adds r1, r3, 0 ands r2, r1 movs r1, 0x1 orrs r2, r1 strh r2, [r0] b _0804E56C .align 2, 0 _0804E560: .4byte 0x0000fffc _0804E564: cmp r5, r10 bne _0804E57E cmp r4, r9 bne _0804E57E _0804E56C: ldr r0, [sp] cmp r5, r0 bge _0804E576 adds r5, 0x1 b _0804E578 _0804E576: subs r5, 0x1 _0804E578: ldr r1, [sp] cmp r5, r1 bne _0804E52C _0804E57E: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_804E328 thumb_func_start sub_804E590 sub_804E590: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x40 str r0, [sp, 0xC] str r1, [sp, 0x10] str r2, [sp, 0x14] str r3, [sp, 0x18] movs r0, 0 str r0, [sp, 0x1C] cmp r0, r1 blt _0804E5AE b _0804E8AA _0804E5AE: movs r1, 0x1 mov r10, r1 _0804E5B2: movs r2, 0 str r2, [sp, 0x20] ldr r3, [sp, 0x1C] adds r3, 0x1 str r3, [sp, 0x2C] ldr r4, [sp, 0x14] cmp r2, r4 blt _0804E5C4 b _0804E89E _0804E5C4: ldr r5, [sp, 0x1C] lsls r5, 4 ldr r6, [sp, 0x1C] subs r1, r5, r6 lsls r1, 5 ldr r2, [sp, 0xC] movs r3, 0xF0 lsls r3, 1 adds r0, r2, r3 adds r0, r1 mov r8, r0 adds r6, r1, r2 ldr r4, _0804E6A4 adds r0, r2, r4 adds r7, r1, r0 adds r0, r2, 0 adds r0, 0x20 adds r0, r1 mov r9, r0 ldr r5, [sp, 0x60] str r5, [sp, 0x34] adds r0, r2, 0 subs r0, 0x20 adds r1, r0 str r1, [sp, 0x38] movs r0, 0 str r0, [sp, 0x3C] ldr r1, [sp, 0x1C] lsls r0, r1, 2 ldr r2, [sp, 0x18] adds r0, r2 str r0, [sp, 0x28] _0804E604: ldr r3, [sp, 0x1C] lsls r0, r3, 4 subs r0, r3 lsls r0, 5 ldr r4, [sp, 0xC] adds r0, r4 ldr r5, [sp, 0x3C] adds r4, r5, r0 ldrb r0, [r4, 0x8] cmp r0, 0 beq _0804E61C b _0804E874 _0804E61C: ldrb r0, [r4, 0x11] cmp r0, 0 beq _0804E624 b _0804E874 _0804E624: ldrb r0, [r4, 0xB] cmp r0, 0 beq _0804E62C b _0804E874 _0804E62C: ldrb r0, [r4, 0xA] cmp r0, 0 bne _0804E634 b _0804E848 _0804E634: ldrb r0, [r4, 0x9] cmp r0, 0 beq _0804E63C b _0804E848 _0804E63C: movs r1, 0 ldrsh r0, [r4, r1] adds r0, 0x1 movs r2, 0x4 ldrsh r1, [r4, r2] subs r1, 0x1 bl sub_808411C str r0, [sp, 0x24] movs r3, 0x2 ldrsh r0, [r4, r3] adds r0, 0x1 movs r5, 0x6 ldrsh r1, [r4, r5] subs r1, 0x1 bl sub_808411C adds r5, r0, 0 ldr r0, [sp, 0x20] cmp r0, 0 ble _0804E6DC subs r4, 0x20 ldrb r0, [r4, 0x8] cmp r0, 0 bne _0804E6DC ldrb r0, [r4, 0x12] cmp r0, 0 bne _0804E6DC ldrb r0, [r4, 0xB] cmp r0, 0 beq _0804E6DC ldrb r0, [r4, 0xA] cmp r0, 0 beq _0804E6A8 movs r1, 0 ldrsh r0, [r4, r1] adds r0, 0x1 movs r2, 0x4 ldrsh r1, [r4, r2] subs r1, 0x1 bl sub_808411C adds r5, r0, 0 movs r3, 0x2 ldrsh r0, [r4, r3] adds r0, 0x1 movs r2, 0x6 ldrsh r1, [r4, r2] subs r1, 0x1 bl sub_808411C b _0804E6AC .align 2, 0 _0804E6A4: .4byte 0xfffffe20 _0804E6A8: movs r3, 0 ldrsh r5, [r4, r3] _0804E6AC: movs r4, 0x2 ldrsh r1, [r6, r4] ldr r0, [sp, 0x38] movs r2, 0x6 ldrsh r3, [r0, r2] subs r3, 0x1 mov r4, r10 str r4, [sp] ldr r2, [sp, 0x28] ldr r0, [r2] str r0, [sp, 0x4] ldr r4, [sp, 0x34] ldr r0, [r4] str r0, [sp, 0x8] ldr r0, [sp, 0x24] adds r2, r5, 0 bl sub_804E328 mov r5, r10 strb r5, [r6, 0xB] strb r5, [r6, 0x13] ldr r0, [sp, 0x38] strb r5, [r0, 0x14] b _0804E874 _0804E6DC: ldr r0, [sp, 0x14] subs r0, 0x1 ldr r1, [sp, 0x20] cmp r1, r0 bge _0804E758 mov r2, r9 ldrb r0, [r2, 0x8] cmp r0, 0 bne _0804E758 ldrb r0, [r2, 0x12] cmp r0, 0 bne _0804E758 ldrb r0, [r2, 0xB] cmp r0, 0 beq _0804E758 ldrb r0, [r2, 0xA] cmp r0, 0 beq _0804E724 movs r3, 0x20 ldrsh r0, [r6, r3] adds r0, 0x1 movs r4, 0x24 ldrsh r1, [r6, r4] subs r1, 0x1 bl sub_808411C adds r5, r0, 0 movs r1, 0x22 ldrsh r0, [r6, r1] adds r0, 0x1 movs r2, 0x26 ldrsh r1, [r6, r2] subs r1, 0x1 bl sub_808411C b _0804E728 _0804E724: movs r3, 0x20 ldrsh r5, [r6, r3] _0804E728: movs r4, 0x6 ldrsh r1, [r6, r4] subs r1, 0x1 movs r0, 0x22 ldrsh r3, [r6, r0] mov r2, r10 str r2, [sp] ldr r4, [sp, 0x28] ldr r0, [r4] str r0, [sp, 0x4] ldr r2, [sp, 0x34] ldr r0, [r2, 0x4] subs r0, 0x1 str r0, [sp, 0x8] ldr r0, [sp, 0x24] adds r2, r5, 0 bl sub_804E328 mov r3, r10 strb r3, [r6, 0xB] strb r3, [r6, 0x14] mov r4, r9 strb r3, [r4, 0x13] b _0804E874 _0804E758: ldr r0, [sp, 0x1C] cmp r0, 0 ble _0804E7C8 ldrb r0, [r7, 0x8] cmp r0, 0 bne _0804E7C8 ldrb r0, [r7, 0x12] cmp r0, 0 bne _0804E7C8 ldrb r0, [r7, 0xB] cmp r0, 0 beq _0804E7C8 ldrb r0, [r7, 0xA] cmp r0, 0 beq _0804E79A movs r1, 0 ldrsh r0, [r7, r1] adds r0, 0x1 movs r2, 0x4 ldrsh r1, [r7, r2] subs r1, 0x1 bl sub_808411C movs r3, 0x2 ldrsh r0, [r7, r3] adds r0, 0x1 movs r4, 0x6 ldrsh r1, [r7, r4] subs r1, 0x1 bl sub_808411C adds r3, r0, 0 b _0804E79E _0804E79A: movs r0, 0x2 ldrsh r3, [r7, r0] _0804E79E: movs r1, 0 ldrsh r0, [r6, r1] movs r4, 0 ldrsh r2, [r7, r4] subs r2, 0x1 movs r1, 0 str r1, [sp] ldr r4, [sp, 0x28] ldr r1, [r4] str r1, [sp, 0x4] ldr r4, [sp, 0x34] ldr r1, [r4] str r1, [sp, 0x8] adds r1, r5, 0 bl sub_804E328 mov r5, r10 strb r5, [r6, 0xB] strb r5, [r6, 0x15] strb r5, [r7, 0x16] b _0804E874 _0804E7C8: ldr r0, [sp, 0x10] subs r0, 0x1 ldr r1, [sp, 0x1C] cmp r1, r0 bge _0804E874 mov r2, r8 ldrb r0, [r2, 0x8] cmp r0, 0 bne _0804E874 ldrb r0, [r2, 0x12] cmp r0, 0 bne _0804E874 ldrb r0, [r2, 0xB] cmp r0, 0 beq _0804E874 ldrb r0, [r2, 0xA] cmp r0, 0 beq _0804E812 movs r3, 0 ldrsh r0, [r2, r3] adds r0, 0x1 movs r4, 0x4 ldrsh r1, [r2, r4] subs r1, 0x1 bl sub_808411C mov r1, r8 movs r2, 0x2 ldrsh r0, [r1, r2] adds r0, 0x1 movs r3, 0x6 ldrsh r1, [r1, r3] subs r1, 0x1 bl sub_808411C adds r3, r0, 0 b _0804E818 _0804E812: mov r4, r8 movs r0, 0x2 ldrsh r3, [r4, r0] _0804E818: movs r1, 0x4 ldrsh r0, [r6, r1] subs r0, 0x1 mov r4, r8 movs r1, 0 ldrsh r2, [r4, r1] movs r1, 0 str r1, [sp] ldr r4, [sp, 0x28] ldr r1, [r4, 0x4] subs r1, 0x1 str r1, [sp, 0x4] ldr r4, [sp, 0x34] ldr r1, [r4] str r1, [sp, 0x8] adds r1, r5, 0 bl sub_804E328 mov r5, r10 strb r5, [r6, 0xB] strb r5, [r6, 0x16] mov r0, r8 strb r5, [r0, 0x15] b _0804E874 _0804E848: movs r1, 0 ldrsh r0, [r6, r1] movs r2, 0x2 ldrsh r1, [r6, r2] bl sub_8049590 ldrh r1, [r0] ldr r3, _0804E99C adds r2, r3, 0 ands r1, r2 strh r1, [r0] ldrh r1, [r0, 0x4] ldr r4, _0804E9A0 adds r2, r4, 0 ands r1, r2 ldr r5, _0804E9A4 adds r2, r5, 0 ands r1, r2 subs r3, 0x1 adds r2, r3, 0 ands r1, r2 strh r1, [r0, 0x4] _0804E874: movs r4, 0x20 add r8, r4 adds r6, 0x20 adds r7, 0x20 add r9, r4 ldr r5, [sp, 0x34] adds r5, 0x4 str r5, [sp, 0x34] ldr r0, [sp, 0x38] adds r0, 0x20 str r0, [sp, 0x38] ldr r1, [sp, 0x3C] adds r1, 0x20 str r1, [sp, 0x3C] ldr r2, [sp, 0x20] adds r2, 0x1 str r2, [sp, 0x20] ldr r3, [sp, 0x14] cmp r2, r3 bge _0804E89E b _0804E604 _0804E89E: ldr r4, [sp, 0x2C] str r4, [sp, 0x1C] ldr r5, [sp, 0x10] cmp r4, r5 bge _0804E8AA b _0804E5B2 _0804E8AA: movs r6, 0 str r6, [sp, 0x1C] ldr r0, [sp, 0x10] cmp r6, r0 bge _0804E98A _0804E8B4: movs r1, 0 str r1, [sp, 0x20] ldr r2, [sp, 0x1C] adds r2, 0x1 str r2, [sp, 0x2C] ldr r3, [sp, 0x14] cmp r1, r3 bge _0804E980 ldr r4, [sp, 0x1C] lsls r4, 4 mov r9, r4 _0804E8CA: ldr r5, [sp, 0x20] lsls r2, r5, 5 ldr r6, [sp, 0x1C] lsls r3, r6, 4 subs r0, r3, r6 lsls r0, 5 ldr r1, [sp, 0xC] adds r4, r0, r1 adds r1, r2, r4 ldrb r0, [r1, 0x8] mov r8, r2 adds r5, 0x1 str r5, [sp, 0x30] cmp r0, 0 bne _0804E976 ldrb r0, [r1, 0x11] cmp r0, 0 bne _0804E976 ldrb r0, [r1, 0xB] cmp r0, 0 bne _0804E976 ldrb r0, [r1, 0xF] cmp r0, 0 bne _0804E976 movs r6, 0 ldrsh r5, [r1, r6] movs r6, 0x4 ldrsh r0, [r1, r6] cmp r5, r0 bge _0804E976 mov r10, r4 _0804E908: ldr r1, [sp, 0x1C] subs r0, r3, r1 lsls r0, 5 ldr r3, [sp, 0xC] adds r0, r3 adds r0, r2, r0 movs r6, 0x2 ldrsh r4, [r0, r6] movs r1, 0x6 ldrsh r0, [r0, r1] adds r7, r5, 0x1 cmp r4, r0 bge _0804E95C mov r6, r8 add r6, r10 _0804E926: adds r0, r5, 0 adds r1, r4, 0 bl sub_8049590 ldrh r2, [r0] ldr r3, _0804E99C adds r1, r3, 0 ands r2, r1 strh r2, [r0] ldrh r2, [r0, 0x4] adds r3, 0x1 adds r1, r3, 0 ands r2, r1 adds r3, 0x1 adds r1, r3, 0 ands r2, r1 subs r3, 0x3 adds r1, r3, 0 ands r2, r1 strh r2, [r0, 0x4] movs r1, 0xFF strb r1, [r0, 0x9] adds r4, 0x1 movs r1, 0x6 ldrsh r0, [r6, r1] cmp r4, r0 blt _0804E926 _0804E95C: adds r5, r7, 0 mov r2, r8 mov r3, r9 ldr r4, [sp, 0x1C] subs r0, r3, r4 lsls r0, 5 ldr r6, [sp, 0xC] adds r0, r6 adds r0, r2, r0 movs r1, 0x4 ldrsh r0, [r0, r1] cmp r5, r0 blt _0804E908 _0804E976: ldr r2, [sp, 0x30] str r2, [sp, 0x20] ldr r3, [sp, 0x14] cmp r2, r3 blt _0804E8CA _0804E980: ldr r4, [sp, 0x2C] str r4, [sp, 0x1C] ldr r5, [sp, 0x10] cmp r4, r5 blt _0804E8B4 _0804E98A: add sp, 0x40 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804E99C: .4byte 0x0000fffc _0804E9A0: .4byte 0x0000fffe _0804E9A4: .4byte 0x0000fffd thumb_func_end sub_804E590 thumb_func_start sub_804E9A8 sub_804E9A8: push {r4,r5,lr} adds r4, r0, 0 lsls r1, 24 lsls r2, 24 lsrs r2, 24 ldrh r0, [r4] ldr r5, _0804E9D8 adds r3, r5, 0 ands r3, r0 strh r3, [r4] cmp r1, 0 beq _0804E9D0 ldrb r0, [r4, 0x9] cmp r0, r2 bne _0804E9D0 adds r0, r3, 0 ands r0, r5 movs r1, 0x2 orrs r0, r1 strh r0, [r4] _0804E9D0: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0804E9D8: .4byte 0x0000fffc thumb_func_end sub_804E9A8 thumb_func_start sub_804E9DC sub_804E9DC: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} movs r5, 0 movs r0, 0x3 mov r8, r0 movs r7, 0x8 ldr r3, _0804EAF0 mov r9, r3 _0804E9F2: movs r4, 0 adds r6, r5, 0x1 mov r10, r6 _0804E9F8: adds r0, r5, 0 adds r1, r4, 0 bl sub_804954C ldrh r1, [r0] mov r0, r8 ands r0, r1 adds r6, r4, 0x1 cmp r0, 0x1 beq _0804EA0E b _0804EB0E _0804EA0E: adds r0, r5, 0 adds r1, r4, 0 bl sub_804954C ldrb r0, [r0, 0x9] cmp r0, 0xFF bne _0804EAF4 cmp r5, 0 ble _0804EA4E subs r0, r5, 0x1 adds r1, r4, 0 bl sub_8049590 adds r2, r0, 0 ldrb r0, [r2, 0x9] cmp r0, 0xFF beq _0804EA4E ldrh r0, [r2] adds r1, r0, 0 orrs r1, r7 movs r3, 0 strh r1, [r2] adds r0, r1, 0 mov r6, r8 ands r0, r6 cmp r0, 0x2 bne _0804EA4E mov r0, r9 ands r1, r0 movs r0, 0x1 orrs r1, r0 strh r1, [r2] _0804EA4E: cmp r4, 0 ble _0804EA82 subs r1, r4, 0x1 adds r0, r5, 0 bl sub_8049590 adds r2, r0, 0 ldrb r0, [r2, 0x9] cmp r0, 0xFF beq _0804EA82 ldrh r0, [r2] adds r1, r0, 0 orrs r1, r7 movs r3, 0 orrs r1, r7 strh r1, [r2] adds r0, r1, 0 mov r6, r8 ands r0, r6 cmp r0, 0x2 bne _0804EA82 mov r0, r9 ands r1, r0 movs r0, 0x1 orrs r1, r0 strh r1, [r2] _0804EA82: adds r6, r4, 0x1 cmp r4, 0x1E bgt _0804EABA adds r0, r5, 0 adds r1, r6, 0 bl sub_8049590 adds r2, r0, 0 ldrb r0, [r2, 0x9] cmp r0, 0xFF beq _0804EABA ldrh r0, [r2] adds r1, r0, 0 orrs r1, r7 movs r3, 0 mov r12, r3 orrs r1, r7 strh r1, [r2] adds r0, r1, 0 mov r3, r8 ands r0, r3 cmp r0, 0x2 bne _0804EABA mov r0, r9 ands r1, r0 movs r0, 0x1 orrs r1, r0 strh r1, [r2] _0804EABA: cmp r5, 0x36 bgt _0804EB0E mov r0, r10 adds r1, r4, 0 bl sub_8049590 adds r2, r0, 0 ldrb r0, [r2, 0x9] cmp r0, 0xFF beq _0804EB0E ldrh r0, [r2] adds r1, r0, 0 orrs r1, r7 movs r3, 0 orrs r1, r7 strh r1, [r2] adds r0, r1, 0 mov r4, r8 ands r0, r4 cmp r0, 0x2 bne _0804EB0E mov r0, r9 ands r1, r0 movs r0, 0x1 orrs r1, r0 strh r1, [r2] b _0804EB0E .align 2, 0 _0804EAF0: .4byte 0x0000fffc _0804EAF4: adds r0, r5, 0 adds r1, r4, 0 bl sub_804954C ldrb r0, [r0, 0x9] cmp r0, 0xFE bne _0804EB0E adds r0, r5, 0 adds r1, r4, 0 bl sub_8049590 movs r1, 0xFF strb r1, [r0, 0x9] _0804EB0E: adds r4, r6, 0 cmp r4, 0x1F bgt _0804EB16 b _0804E9F8 _0804EB16: mov r5, r10 cmp r5, 0x37 bgt _0804EB1E b _0804E9F2 _0804EB1E: bl sub_804EB30 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_804E9DC thumb_func_start sub_804EB30 sub_804EB30: push {r4-r7,lr} ldr r0, _0804EBB4 ldr r6, [r0] movs r2, 0 movs r1, 0x1F ldr r3, _0804EBB8 adds r0, r6, r3 _0804EB3E: strh r2, [r0] subs r0, 0x2 subs r1, 0x1 cmp r1, 0 bge _0804EB3E movs r5, 0 _0804EB4A: movs r4, 0 adds r7, r5, 0x1 _0804EB4E: adds r0, r5, 0 adds r1, r4, 0 bl sub_804954C ldrh r1, [r0] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _0804EBA2 adds r0, r5, 0 adds r1, r4, 0 bl sub_804954C ldrb r3, [r0, 0x9] cmp r3, 0x1F bhi _0804EBA2 lsls r0, r3, 1 ldr r2, _0804EBBC adds r1, r6, r2 adds r2, r1, r0 movs r1, 0 ldrsh r0, [r2, r1] cmp r0, 0x1F bgt _0804EBA2 lsls r0, 2 lsls r1, r3, 7 adds r0, r1 adds r0, r6, r0 ldr r3, _0804EBC0 adds r0, r3 strh r5, [r0] movs r3, 0 ldrsh r0, [r2, r3] lsls r0, 2 adds r0, r1 adds r0, r6, r0 ldr r1, _0804EBC4 adds r0, r1 strh r4, [r0] ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] _0804EBA2: adds r4, 0x1 cmp r4, 0x1F ble _0804EB4E adds r5, r7, 0 cmp r5, 0x37 ble _0804EB4A pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804EBB4: .4byte gUnknown_203B418 _0804EBB8: .4byte 0x00010882 _0804EBBC: .4byte 0x00010844 _0804EBC0: .4byte 0x00010884 _0804EBC4: .4byte 0x00010886 thumb_func_end sub_804EB30 thumb_func_start sub_804EBC8 sub_804EBC8: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x58 str r0, [sp, 0x40] str r1, [sp, 0x44] mov r10, r2 adds r4, r3, 0 ldr r0, _0804EE90 ldr r0, [r0] mov r8, r0 ldr r1, _0804EE94 ldr r0, _0804EE98 strh r0, [r1] movs r0, 0x1 negs r0, r0 strh r0, [r1, 0x2] ldr r0, _0804EE9C ldrb r0, [r0] cmp r0, 0 beq _0804EBF8 b _0804EED4 _0804EBF8: bl sub_8043D10 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _0804EC06 b _0804EED4 _0804EC06: cmp r4, 0 bne _0804EC0C b _0804EED4 _0804EC0C: movs r0, 0x64 bl sub_8084100 cmp r4, r0 bgt _0804EC18 b _0804EED4 _0804EC18: movs r5, 0 add r7, sp, 0x20 adds r1, r7, 0 mov r0, sp _0804EC20: strh r5, [r0] strh r5, [r1] adds r1, 0x2 adds r0, 0x2 adds r5, 0x1 cmp r5, 0xE ble _0804EC20 movs r5, 0xC7 _0804EC30: movs r0, 0xF bl sub_8084100 adds r4, r0, 0 movs r0, 0xF bl sub_8084100 lsls r4, 1 mov r1, sp adds r2, r1, r4 movs r4, 0 ldrsh r3, [r2, r4] lsls r0, 1 adds r1, r0 ldrh r0, [r1] strh r0, [r2] strh r3, [r1] subs r5, 0x1 cmp r5, 0 bge _0804EC30 adds r6, r7, 0 movs r5, 0xC7 _0804EC5C: movs r0, 0xF bl sub_8084100 adds r4, r0, 0 movs r0, 0xF bl sub_8084100 lsls r4, 1 adds r4, r6, r4 movs r1, 0 ldrsh r2, [r4, r1] lsls r0, 1 adds r0, r6, r0 ldrh r1, [r0] strh r1, [r4] strh r2, [r0] subs r5, 0x1 cmp r5, 0 bge _0804EC5C movs r5, 0 _0804EC84: lsls r0, r5, 1 add r0, sp movs r3, 0 ldrsh r2, [r0, r3] mov r9, r2 ldr r4, [sp, 0x44] cmp r9, r4 blt _0804EC96 b _0804EECC _0804EC96: movs r4, 0 _0804EC98: lsls r0, r4, 1 adds r0, r7, r0 movs r2, 0 ldrsh r1, [r0, r2] cmp r1, r10 blt _0804ECA6 b _0804EEC4 _0804ECA6: lsls r1, 5 mov r3, r9 lsls r2, r3, 4 subs r0, r2, r3 lsls r0, 5 ldr r3, [sp, 0x40] adds r0, r3 adds r3, r1, r0 ldrb r0, [r3, 0x8] str r1, [sp, 0x4C] str r2, [sp, 0x48] cmp r0, 0 beq _0804ECC2 b _0804EEC4 _0804ECC2: ldrb r0, [r3, 0x11] cmp r0, 0 beq _0804ECCA b _0804EEC4 _0804ECCA: ldrb r0, [r3, 0x12] cmp r0, 0 beq _0804ECD2 b _0804EEC4 _0804ECD2: ldrb r0, [r3, 0xB] cmp r0, 0 bne _0804ECDA b _0804EEC4 _0804ECDA: ldrb r0, [r3, 0xA] cmp r0, 0 bne _0804ECE2 b _0804EEC4 _0804ECE2: ldrb r0, [r3, 0x9] cmp r0, 0 beq _0804ECEA b _0804EEC4 _0804ECEA: ldrb r0, [r3, 0x10] cmp r0, 0 beq _0804ECF2 b _0804EEC4 _0804ECF2: ldrb r0, [r3, 0x1D] cmp r0, 0 beq _0804ECFA b _0804EEC4 _0804ECFA: movs r0, 0x4 ldrsh r1, [r3, r0] movs r2, 0 ldrsh r0, [r3, r2] subs r1, r0 cmp r1, 0 bge _0804ED0A negs r1, r1 _0804ED0A: cmp r1, 0x4 bgt _0804ED10 b _0804EEC4 _0804ED10: movs r0, 0x6 ldrsh r1, [r3, r0] movs r2, 0x2 ldrsh r0, [r3, r2] subs r1, r0 cmp r1, 0 bge _0804ED20 negs r1, r1 _0804ED20: cmp r1, 0x3 bgt _0804ED26 b _0804EEC4 _0804ED26: ldr r1, _0804EEA0 movs r0, 0x1 strb r0, [r1] movs r0, 0x1 strb r0, [r3, 0xC] ldr r2, _0804EEA4 movs r4, 0 ldrsh r0, [r3, r4] adds r0, 0x1 str r0, [r2] movs r7, 0x4 ldrsh r0, [r3, r7] subs r0, 0x1 str r0, [r2, 0x8] movs r0, 0x2 ldrsh r1, [r3, r0] adds r1, 0x1 str r1, [r2, 0x4] movs r4, 0x6 ldrsh r3, [r3, r4] subs r0, r3, 0x1 str r0, [r2, 0xC] subs r0, r1 mov r10, r2 cmp r0, 0x2 bgt _0804ED5C str r3, [r2, 0xC] _0804ED5C: ldr r0, _0804EEA8 add r0, r8 ldr r1, _0804EEAC str r1, [r0] ldr r0, _0804EEB0 add r0, r8 str r1, [r0] ldr r0, _0804EEB4 add r0, r8 ldr r1, _0804EEB8 str r1, [r0] ldr r0, _0804EEBC add r0, r8 str r1, [r0] mov r7, r10 ldr r5, [r7] ldr r0, [r7, 0x8] cmp r5, r0 bge _0804EDFA mov r3, r10 _0804ED84: ldr r4, [r3, 0x4] ldr r0, [r3, 0xC] adds r1, r5, 0x1 str r1, [sp, 0x54] cmp r4, r0 bge _0804EDF0 ldr r6, _0804EEA8 add r6, r8 ldr r2, _0804EEA4 mov r10, r2 _0804ED98: adds r0, r5, 0 adds r1, r4, 0 str r3, [sp, 0x50] bl sub_8049590 ldrh r2, [r0] movs r1, 0x20 orrs r1, r2 strh r1, [r0] ldrh r2, [r0, 0x4] ldr r7, _0804EEC0 adds r1, r7, 0 ands r2, r1 adds r7, 0x7 adds r1, r7, 0 ands r2, r1 strh r2, [r0, 0x4] ldr r0, [r6] ldr r3, [sp, 0x50] cmp r0, r5 ble _0804EDC4 str r5, [r6] _0804EDC4: ldr r1, _0804EEB0 add r1, r8 ldr r0, [r1] cmp r0, r4 ble _0804EDD0 str r4, [r1] _0804EDD0: ldr r1, _0804EEB4 add r1, r8 ldr r0, [r1] cmp r0, r5 bge _0804EDDC str r5, [r1] _0804EDDC: ldr r1, _0804EEBC add r1, r8 ldr r0, [r1] cmp r0, r4 bge _0804EDE8 str r4, [r1] _0804EDE8: adds r4, 0x1 ldr r0, [r3, 0xC] cmp r4, r0 blt _0804ED98 _0804EDF0: ldr r5, [sp, 0x54] mov r1, r10 ldr r0, [r1, 0x8] cmp r5, r0 blt _0804ED84 _0804EDFA: ldr r3, [sp, 0x4C] ldr r2, [sp, 0x48] mov r4, r9 subs r0, r2, r4 lsls r0, 5 ldr r7, [sp, 0x40] adds r1, r0, r7 adds r0, r3, r1 movs r4, 0 ldrsh r5, [r0, r4] movs r7, 0x4 ldrsh r0, [r0, r7] cmp r5, r0 bge _0804EE6C mov r8, r1 _0804EE18: mov r1, r9 subs r0, r2, r1 lsls r0, 5 ldr r2, [sp, 0x40] adds r0, r2 adds r0, r3, r0 movs r3, 0x2 ldrsh r4, [r0, r3] movs r7, 0x6 ldrsh r0, [r0, r7] adds r1, r5, 0x1 str r1, [sp, 0x54] cmp r4, r0 bge _0804EE52 ldr r6, [sp, 0x4C] add r6, r8 _0804EE38: adds r0, r5, 0 adds r1, r4, 0 bl sub_8049590 ldrh r2, [r0, 0x4] movs r1, 0x10 orrs r1, r2 strh r1, [r0, 0x4] adds r4, 0x1 movs r2, 0x6 ldrsh r0, [r6, r2] cmp r4, r0 blt _0804EE38 _0804EE52: ldr r5, [sp, 0x54] ldr r3, [sp, 0x4C] ldr r2, [sp, 0x48] mov r4, r9 subs r0, r2, r4 lsls r0, 5 ldr r7, [sp, 0x40] adds r0, r7 adds r0, r3, r0 movs r1, 0x4 ldrsh r0, [r0, r1] cmp r5, r0 blt _0804EE18 _0804EE6C: ldr r2, _0804EEA4 ldr r0, [r2] ldr r1, [r2, 0x8] adds r0, r1 lsrs r1, r0, 31 adds r0, r1 asrs r5, r0, 1 ldr r0, [r2, 0x4] ldr r1, [r2, 0xC] adds r0, r1 lsrs r1, r0, 31 adds r0, r1 asrs r4, r0, 1 ldr r0, _0804EE94 strh r5, [r0] strh r4, [r0, 0x2] b _0804EED4 .align 2, 0 _0804EE90: .4byte gUnknown_203B418 _0804EE94: .4byte gUnknown_202F1D8 _0804EE98: .4byte 0x0000ffff _0804EE9C: .4byte gUnknown_202F1AB _0804EEA0: .4byte gUnknown_202F1AA _0804EEA4: .4byte gUnknown_202F1B8 _0804EEA8: .4byte 0x0000e240 _0804EEAC: .4byte 0x0000270f _0804EEB0: .4byte 0x0000e244 _0804EEB4: .4byte 0x0000e248 _0804EEB8: .4byte 0xffffd8f1 _0804EEBC: .4byte 0x0000e24c _0804EEC0: .4byte 0x0000fff7 _0804EEC4: adds r4, 0x1 cmp r4, 0xE bgt _0804EECC b _0804EC98 _0804EECC: adds r5, 0x1 cmp r5, 0xE bgt _0804EED4 b _0804EC84 _0804EED4: add sp, 0x58 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_804EBC8 thumb_func_start sub_804EEE4 sub_804EEE4: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x108 str r0, [sp, 0x100] mov r8, r1 adds r7, r2, 0 adds r4, r3, 0 ldr r5, _0804F094 ldr r0, [r5] str r0, [sp, 0x104] cmp r4, 0 bne _0804EF04 b _0804F0C0 _0804EF04: movs r0, 0x64 bl sub_8084100 cmp r4, r0 bgt _0804EF10 b _0804F0C0 _0804EF10: ldr r0, _0804F098 ldrb r0, [r0] cmp r0, 0 beq _0804EF1A b _0804F0C0 _0804EF1A: ldr r0, [r5] movs r1, 0xD1 lsls r1, 3 adds r0, r1 movs r2, 0 ldrsh r0, [r0, r2] cmp r0, 0 beq _0804EF2C b _0804F0C0 _0804EF2C: bl sub_8043D10 lsls r0, 24 cmp r0, 0 beq _0804EF38 b _0804F0C0 _0804EF38: movs r6, 0 movs r1, 0 cmp r1, r8 bge _0804EF94 _0804EF40: adds r2, r1, 0x1 cmp r7, 0 ble _0804EF8E lsls r0, r1, 4 subs r0, r1 lsls r0, 5 ldr r1, [sp, 0x100] adds r1, 0x8 adds r1, r0, r1 adds r3, r7, 0 _0804EF54: ldrb r0, [r1] cmp r0, 0 bne _0804EF86 ldrb r0, [r1, 0x9] cmp r0, 0 bne _0804EF86 ldrb r0, [r1, 0x3] cmp r0, 0 beq _0804EF86 ldrb r0, [r1, 0x2] cmp r0, 0 beq _0804EF86 ldrb r0, [r1, 0x4] cmp r0, 0 bne _0804EF86 ldrb r0, [r1, 0x7] cmp r0, 0 bne _0804EF86 ldrb r0, [r1, 0x8] cmp r0, 0 bne _0804EF86 ldrb r0, [r1, 0x1] cmp r0, 0 bne _0804EF86 adds r6, 0x1 _0804EF86: adds r1, 0x20 subs r3, 0x1 cmp r3, 0 bne _0804EF54 _0804EF8E: adds r1, r2, 0 cmp r1, r8 blt _0804EF40 _0804EF94: cmp r6, 0 bne _0804EF9A b _0804F0C0 _0804EF9A: movs r1, 0 mov r0, sp adds r0, 0xFF _0804EFA0: strb r1, [r0] subs r0, 0x1 cmp r0, sp bge _0804EFA0 mov r1, sp movs r0, 0x1 strb r0, [r1] movs r5, 0x3F _0804EFB0: adds r0, r6, 0 bl sub_8084100 adds r4, r0, 0 adds r0, r6, 0 bl sub_8084100 mov r3, sp adds r2, r3, r4 ldrb r3, [r2] mov r4, sp adds r1, r4, r0 ldrb r0, [r1] strb r0, [r2] strb r3, [r1] subs r5, 0x1 cmp r5, 0 bge _0804EFB0 movs r5, 0 movs r1, 0 cmp r1, r8 bge _0804F0C0 ldr r6, [sp, 0x100] mov r9, r6 movs r4, 0 _0804EFE2: movs r3, 0 cmp r3, r7 bge _0804F0B2 mov r10, r3 lsls r0, r4, 5 ldr r6, [sp, 0x100] adds r2, r0, r6 _0804EFF0: ldrb r0, [r2, 0x8] cmp r0, 0 bne _0804F0A6 ldrb r0, [r2, 0x11] cmp r0, 0 bne _0804F0A6 ldrb r0, [r2, 0xB] cmp r0, 0 beq _0804F0A6 ldrb r0, [r2, 0xA] cmp r0, 0 beq _0804F0A6 ldrb r0, [r2, 0xC] cmp r0, 0 bne _0804F0A6 ldrb r0, [r2, 0xF] cmp r0, 0 bne _0804F0A6 ldrb r0, [r2, 0x10] cmp r0, 0 bne _0804F0A6 ldrb r0, [r2, 0x9] cmp r0, 0 bne _0804F0A6 mov r6, sp adds r0, r6, r5 ldrb r0, [r0] cmp r0, 0 beq _0804F0A4 ldr r1, _0804F09C movs r0, 0x1 strb r0, [r1] movs r0, 0x1 strb r0, [r2, 0xE] movs r0, 0 ldrsh r5, [r2, r0] movs r1, 0x4 ldrsh r0, [r2, r1] cmp r5, r0 bge _0804F0C0 mov r2, r10 add r2, r9 mov r8, r2 _0804F046: mov r1, r10 add r1, r9 movs r3, 0x2 ldrsh r4, [r1, r3] movs r6, 0x6 ldrsh r0, [r1, r6] adds r7, r5, 0x1 cmp r4, r0 bge _0804F086 adds r6, r1, 0 _0804F05A: adds r0, r5, 0 adds r1, r4, 0 bl sub_8049590 ldrh r2, [r0] movs r1, 0x40 orrs r1, r2 strh r1, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_804954C ldrb r1, [r0, 0x9] ldr r2, [sp, 0x104] ldr r3, _0804F0A0 adds r0, r2, r3 strb r1, [r0] adds r4, 0x1 movs r1, 0x6 ldrsh r0, [r6, r1] cmp r4, r0 blt _0804F05A _0804F086: adds r5, r7, 0 mov r2, r8 movs r3, 0x4 ldrsh r0, [r2, r3] cmp r5, r0 blt _0804F046 b _0804F0C0 .align 2, 0 _0804F094: .4byte gUnknown_203B418 _0804F098: .4byte gUnknown_202F1AA _0804F09C: .4byte gUnknown_202F1AB _0804F0A0: .4byte 0x00003a0c _0804F0A4: adds r5, 0x1 _0804F0A6: movs r6, 0x20 add r10, r6 adds r2, 0x20 adds r3, 0x1 cmp r3, r7 blt _0804EFF0 _0804F0B2: movs r0, 0xF0 lsls r0, 1 add r9, r0 adds r4, 0xF adds r1, 0x1 cmp r1, r8 blt _0804EFE2 _0804F0C0: add sp, 0x108 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_804EEE4 thumb_func_start sub_804F0D0 sub_804F0D0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x104 str r0, [sp, 0x100] mov r10, r1 mov r9, r2 adds r4, r3, 0 ldr r0, _0804F244 ldr r5, [r0] cmp r4, 0 bne _0804F0EE b _0804F266 _0804F0EE: movs r0, 0x64 bl sub_8084100 cmp r4, r0 bgt _0804F0FA b _0804F266 _0804F0FA: ldr r1, _0804F248 adds r0, r5, r1 movs r3, 0 ldrsh r0, [r0, r3] cmp r0, 0 blt _0804F108 b _0804F266 _0804F108: movs r5, 0 movs r6, 0 cmp r6, r10 bge _0804F184 _0804F110: adds r7, r6, 0x1 mov r4, r9 cmp r4, 0 ble _0804F17E lsls r0, r6, 4 subs r0, r6 lsls r0, 5 ldr r6, [sp, 0x100] adds r2, r0, r6 _0804F122: ldrb r0, [r2, 0x8] cmp r0, 0 bne _0804F176 ldrb r0, [r2, 0x11] cmp r0, 0 bne _0804F176 ldrb r0, [r2, 0xB] cmp r0, 0 beq _0804F176 ldrb r0, [r2, 0xA] cmp r0, 0 beq _0804F176 ldrb r0, [r2, 0xC] cmp r0, 0 bne _0804F176 ldrb r0, [r2, 0xF] cmp r0, 0 bne _0804F176 ldrb r0, [r2, 0xE] cmp r0, 0 bne _0804F176 ldrb r0, [r2, 0x9] cmp r0, 0 bne _0804F176 movs r1, 0x4 ldrsh r0, [r2, r1] movs r3, 0 ldrsh r1, [r2, r3] subs r0, r1 movs r3, 0x1 ands r0, r3 cmp r0, 0 beq _0804F176 movs r6, 0x6 ldrsh r0, [r2, r6] movs r6, 0x2 ldrsh r1, [r2, r6] subs r0, r1 ands r0, r3 cmp r0, 0 beq _0804F176 adds r5, 0x1 _0804F176: adds r2, 0x20 subs r4, 0x1 cmp r4, 0 bne _0804F122 _0804F17E: adds r6, r7, 0 cmp r6, r10 blt _0804F110 _0804F184: cmp r5, 0 beq _0804F266 movs r1, 0 mov r0, sp adds r0, 0xFF _0804F18E: strb r1, [r0] subs r0, 0x1 cmp r0, sp bge _0804F18E mov r1, sp movs r0, 0x1 strb r0, [r1] movs r7, 0x3F mov r8, r7 _0804F1A0: adds r0, r5, 0 bl sub_8084100 adds r4, r0, 0 adds r0, r5, 0 bl sub_8084100 mov r1, sp adds r2, r1, r4 ldrb r3, [r2] adds r1, r0 ldrb r0, [r1] strb r0, [r2] strb r3, [r1] movs r3, 0x1 negs r3, r3 add r8, r3 mov r4, r8 cmp r4, 0 bge _0804F1A0 movs r6, 0 mov r8, r6 cmp r6, r10 bge _0804F266 ldr r7, [sp, 0x100] mov r12, r7 _0804F1D4: movs r4, 0 cmp r4, r9 bge _0804F25A mov r2, r12 mov r5, r12 _0804F1DE: ldrb r0, [r2, 0x8] cmp r0, 0 bne _0804F250 ldrb r0, [r2, 0x11] cmp r0, 0 bne _0804F250 ldrb r0, [r2, 0xB] cmp r0, 0 beq _0804F250 ldrb r0, [r2, 0xA] cmp r0, 0 beq _0804F250 ldrb r0, [r2, 0xC] cmp r0, 0 bne _0804F250 ldrb r0, [r2, 0xF] cmp r0, 0 bne _0804F250 ldrb r0, [r2, 0xE] cmp r0, 0 bne _0804F250 ldrb r0, [r2, 0x9] cmp r0, 0 bne _0804F250 movs r1, 0x4 ldrsh r0, [r2, r1] movs r3, 0 ldrsh r1, [r2, r3] subs r0, r1 movs r3, 0x1 ands r0, r3 cmp r0, 0 beq _0804F250 movs r7, 0x6 ldrsh r0, [r2, r7] movs r7, 0x2 ldrsh r1, [r2, r7] subs r0, r1 ands r0, r3 cmp r0, 0 beq _0804F250 mov r0, sp add r0, r8 ldrb r0, [r0] cmp r0, 0 beq _0804F24C adds r0, r5, 0 movs r1, 0 bl sub_804F278 b _0804F266 .align 2, 0 _0804F244: .4byte gUnknown_203B418 _0804F248: .4byte 0x00003a16 _0804F24C: movs r0, 0x1 add r8, r0 _0804F250: adds r2, 0x20 adds r5, 0x20 adds r4, 0x1 cmp r4, r9 blt _0804F1DE _0804F25A: movs r1, 0xF0 lsls r1, 1 add r12, r1 adds r6, 0x1 cmp r6, r10 blt _0804F1D4 _0804F266: add sp, 0x104 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_804F0D0 thumb_func_start sub_804F278 sub_804F278: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 adds r4, r0, 0 lsls r1, 24 lsrs r1, 24 mov r8, r1 ldr r1, _0804F2B0 movs r0, 0x1 strb r0, [r1] movs r0, 0x1 strb r0, [r4, 0x10] movs r1, 0 ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] bl sub_804954C ldrb r0, [r0, 0x9] mov r9, r0 movs r5, 0 ldrsh r0, [r4, r5] adds r6, r0, 0x1 b _0804F2F0 .align 2, 0 _0804F2B0: .4byte gUnknown_202F1AC _0804F2B4: movs r2, 0x2 ldrsh r1, [r4, r2] subs r1, 0x1 adds r0, r6, 0 bl sub_804954C ldrh r1, [r0] movs r0, 0x3 ands r0, r1 cmp r0, 0x1 beq _0804F2EE movs r5, 0x2 ldrsh r3, [r4, r5] subs r1, r3, 0x1 movs r0, 0 ldrsh r2, [r4, r0] movs r5, 0x4 ldrsh r0, [r4, r5] str r0, [sp] movs r5, 0x6 ldrsh r0, [r4, r5] str r0, [sp, 0x4] mov r0, r8 str r0, [sp, 0x8] mov r5, r9 str r5, [sp, 0xC] adds r0, r6, 0 bl sub_804F494 _0804F2EE: adds r6, 0x2 _0804F2F0: movs r1, 0x4 ldrsh r0, [r4, r1] subs r0, 0x1 cmp r6, r0 blt _0804F2B4 movs r2, 0x2 ldrsh r0, [r4, r2] adds r5, r0, 0x1 movs r6, 0x6 ldrsh r0, [r4, r6] b _0804F342 _0804F306: movs r1, 0x4 ldrsh r0, [r4, r1] adds r1, r5, 0 bl sub_804954C ldrh r1, [r0] movs r0, 0x3 ands r0, r1 cmp r0, 0x1 beq _0804F33C movs r2, 0x4 ldrsh r0, [r4, r2] movs r6, 0 ldrsh r2, [r4, r6] movs r1, 0x2 ldrsh r3, [r4, r1] str r0, [sp] movs r6, 0x6 ldrsh r1, [r4, r6] str r1, [sp, 0x4] mov r1, r8 str r1, [sp, 0x8] mov r6, r9 str r6, [sp, 0xC] adds r1, r5, 0 bl sub_804F494 _0804F33C: adds r5, 0x2 movs r1, 0x6 ldrsh r0, [r4, r1] _0804F342: subs r0, 0x1 cmp r5, r0 blt _0804F306 movs r2, 0 ldrsh r0, [r4, r2] adds r6, r0, 0x1 movs r5, 0x4 ldrsh r0, [r4, r5] b _0804F392 _0804F354: movs r0, 0x6 ldrsh r1, [r4, r0] adds r0, r6, 0 bl sub_804954C ldrh r1, [r0] movs r0, 0x3 ands r0, r1 cmp r0, 0x1 beq _0804F38C movs r2, 0x6 ldrsh r1, [r4, r2] movs r5, 0 ldrsh r2, [r4, r5] movs r0, 0x2 ldrsh r3, [r4, r0] movs r5, 0x4 ldrsh r0, [r4, r5] str r0, [sp] adds r0, r1, 0 str r0, [sp, 0x4] mov r0, r8 str r0, [sp, 0x8] mov r5, r9 str r5, [sp, 0xC] adds r0, r6, 0 bl sub_804F494 _0804F38C: adds r6, 0x2 movs r1, 0x4 ldrsh r0, [r4, r1] _0804F392: subs r0, 0x1 cmp r6, r0 blt _0804F354 movs r2, 0x2 ldrsh r0, [r4, r2] adds r5, r0, 0x1 movs r6, 0x6 ldrsh r0, [r4, r6] b _0804F3E4 _0804F3A4: movs r1, 0 ldrsh r0, [r4, r1] subs r0, 0x1 adds r1, r5, 0 bl sub_804954C ldrh r1, [r0] movs r0, 0x3 ands r0, r1 cmp r0, 0x1 beq _0804F3DE movs r6, 0 ldrsh r2, [r4, r6] subs r0, r2, 0x1 movs r1, 0x2 ldrsh r3, [r4, r1] movs r6, 0x4 ldrsh r1, [r4, r6] str r1, [sp] movs r6, 0x6 ldrsh r1, [r4, r6] str r1, [sp, 0x4] mov r1, r8 str r1, [sp, 0x8] mov r6, r9 str r6, [sp, 0xC] adds r1, r5, 0 bl sub_804F494 _0804F3DE: adds r5, 0x2 movs r1, 0x6 ldrsh r0, [r4, r1] _0804F3E4: subs r0, 0x1 cmp r5, r0 blt _0804F3A4 movs r2, 0 ldrsh r0, [r4, r2] adds r6, r0, 0x3 b _0804F478 _0804F3F2: movs r1, 0x2 ldrsh r0, [r4, r1] adds r5, r0, 0x3 movs r2, 0x6 ldrsh r0, [r4, r2] subs r0, 0x3 adds r1, r6, 0x2 mov r10, r1 cmp r5, r0 bge _0804F476 ldr r2, _0804F434 adds r7, r2, 0 _0804F40A: adds r0, r6, 0 adds r1, r5, 0 bl sub_804954C ldrh r1, [r0] movs r0, 0x3 ands r0, r1 cmp r0, 0x1 bne _0804F46A mov r0, r8 cmp r0, 0 beq _0804F438 subs r0, r6, 0x1 adds r1, r5, 0 bl sub_8049590 ldrh r1, [r0] ands r1, r7 movs r2, 0x2 orrs r1, r2 b _0804F444 .align 2, 0 _0804F434: .4byte 0x0000fffc _0804F438: subs r0, r6, 0x1 adds r1, r5, 0 bl sub_8049590 ldrh r1, [r0] ands r1, r7 _0804F444: strh r1, [r0] movs r1, 0 ldrsh r2, [r4, r1] movs r0, 0x2 ldrsh r3, [r4, r0] movs r1, 0x4 ldrsh r0, [r4, r1] str r0, [sp] movs r1, 0x6 ldrsh r0, [r4, r1] str r0, [sp, 0x4] mov r0, r8 str r0, [sp, 0x8] mov r1, r9 str r1, [sp, 0xC] adds r0, r6, 0 adds r1, r5, 0 bl sub_804F494 _0804F46A: adds r5, 0x2 movs r2, 0x6 ldrsh r0, [r4, r2] subs r0, 0x3 cmp r5, r0 blt _0804F40A _0804F476: mov r6, r10 _0804F478: movs r5, 0x4 ldrsh r0, [r4, r5] subs r0, 0x3 cmp r6, r0 blt _0804F3F2 add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_804F278 thumb_func_start sub_804F494 sub_804F494: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 adds r5, r0, 0 adds r4, r1, 0 str r2, [sp] str r3, [sp, 0x4] ldr r0, [sp, 0x30] ldr r1, [sp, 0x34] lsls r0, 24 lsrs r0, 24 mov r9, r0 lsls r1, 24 mov r8, r1 movs r0, 0x3 mov r10, r0 _0804F4BA: movs r0, 0x4 bl sub_8084100 adds r6, r0, 0 movs r7, 0 adds r0, r5, 0 adds r1, r4, 0 bl sub_8049590 mov r1, r9 mov r3, r8 lsrs r2, r3, 24 bl sub_804E9A8 _0804F4D6: adds r0, r6, 0 mov r1, r10 ands r0, r1 cmp r0, 0x1 beq _0804F4F6 cmp r0, 0x1 bgt _0804F4EA cmp r0, 0 beq _0804F4F0 b _0804F506 _0804F4EA: cmp r0, 0x2 beq _0804F4FE b _0804F506 _0804F4F0: movs r0, 0x2 movs r1, 0 b _0804F50A _0804F4F6: movs r0, 0 movs r1, 0x2 negs r1, r1 b _0804F50A _0804F4FE: movs r0, 0x2 negs r0, r0 movs r1, 0 b _0804F50A _0804F506: movs r0, 0 movs r1, 0x2 _0804F50A: adds r0, r5, r0 ldr r2, [sp] cmp r2, r0 bgt _0804F534 ldr r3, [sp, 0x28] cmp r3, r0 ble _0804F534 adds r1, r4, r1 ldr r2, [sp, 0x4] cmp r2, r1 bgt _0804F534 ldr r3, [sp, 0x2C] cmp r3, r1 ble _0804F534 bl sub_804954C ldrh r1, [r0] mov r0, r10 ands r0, r1 cmp r0, 0x1 beq _0804F53E _0804F534: adds r6, 0x1 adds r7, 0x1 cmp r7, 0x3 bgt _0804F5B2 b _0804F4D6 _0804F53E: mov r0, r10 ands r0, r6 cmp r0, 0x1 beq _0804F570 cmp r0, 0x1 bgt _0804F550 cmp r0, 0 beq _0804F55A b _0804F4BA _0804F550: cmp r0, 0x2 beq _0804F586 cmp r0, 0x3 beq _0804F59C b _0804F4BA _0804F55A: adds r0, r5, 0x1 adds r1, r4, 0 bl sub_8049590 mov r1, r9 mov r3, r8 lsrs r2, r3, 24 bl sub_804E9A8 adds r5, 0x2 b _0804F4BA _0804F570: subs r1, r4, 0x1 adds r0, r5, 0 bl sub_8049590 mov r1, r9 mov r3, r8 lsrs r2, r3, 24 bl sub_804E9A8 subs r4, 0x2 b _0804F4BA _0804F586: subs r0, r5, 0x1 adds r1, r4, 0 bl sub_8049590 mov r1, r9 mov r3, r8 lsrs r2, r3, 24 bl sub_804E9A8 subs r5, 0x2 b _0804F4BA _0804F59C: adds r1, r4, 0x1 adds r0, r5, 0 bl sub_8049590 mov r1, r9 mov r3, r8 lsrs r2, r3, 24 bl sub_804E9A8 adds r4, 0x2 b _0804F4BA _0804F5B2: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_804F494 thumb_func_start sub_804F5C4 sub_804F5C4: ldrh r3, [r0] ldr r2, _0804F5D4 ands r2, r3 movs r3, 0x2 orrs r2, r3 orrs r2, r1 strh r2, [r0] bx lr .align 2, 0 _0804F5D4: .4byte 0x0000fffc thumb_func_end sub_804F5C4 thumb_func_start sub_804F5D8 sub_804F5D8: push {r4-r7,lr} adds r5, r0, 0 movs r0, 0 ldrsh r6, [r5, r0] b _0804F60C _0804F5E2: movs r0, 0x2 ldrsh r4, [r5, r0] movs r1, 0x6 ldrsh r0, [r5, r1] adds r7, r6, 0x1 cmp r4, r0 bge _0804F60A _0804F5F0: adds r0, r6, 0 adds r1, r4, 0 bl sub_8049590 ldrh r2, [r0, 0x4] movs r1, 0x20 orrs r1, r2 strh r1, [r0, 0x4] adds r4, 0x1 movs r1, 0x6 ldrsh r0, [r5, r1] cmp r4, r0 blt _0804F5F0 _0804F60A: adds r6, r7, 0 _0804F60C: movs r1, 0x4 ldrsh r0, [r5, r1] cmp r6, r0 blt _0804F5E2 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_804F5D8 thumb_func_start sub_804F61C sub_804F61C: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} mov r9, r0 mov r8, r1 movs r7, 0x1 negs r7, r7 b _0804F67A _0804F62E: movs r5, 0x1 negs r5, r5 b _0804F666 _0804F634: cmp r7, 0 beq _0804F63C cmp r5, 0 bne _0804F660 _0804F63C: adds r0, r6, 0 adds r1, r4, 0 bl sub_804954C ldrh r1, [r0] movs r0, 0x3 ands r0, r1 cmp r0, 0x1 bne _0804F660 adds r0, r6, 0 adds r1, r4, 0 bl sub_804954C ldrb r0, [r0, 0x9] cmp r0, 0xFF bne _0804F660 movs r0, 0x1 b _0804F686 _0804F660: adds r5, 0x1 cmp r5, 0x1 bgt _0804F672 _0804F666: mov r0, r8 adds r4, r0, r5 cmp r4, 0 blt _0804F660 cmp r4, 0x1F ble _0804F634 _0804F672: adds r7, 0x1 cmp r7, 0x1 bgt _0804F684 mov r0, r9 _0804F67A: adds r6, r0, r7 cmp r6, 0 blt _0804F672 cmp r6, 0x37 ble _0804F62E _0804F684: movs r0, 0 _0804F686: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_804F61C thumb_func_start sub_804F694 sub_804F694: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 adds r7, r0, 0 movs r0, 0x6 bl sub_8084100 subs r0, 0x1 cmp r0, 0x4 bls _0804F6B0 b _0804FBD6 _0804F6B0: lsls r0, 2 ldr r1, _0804F6BC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0804F6BC: .4byte _0804F6C0 .align 2, 0 _0804F6C0: .4byte _0804FB24 .4byte _0804FA98 .4byte _0804F9DC .4byte _0804F826 .4byte _0804F6D4 _0804F6D4: ldr r1, _0804F70C ldr r0, [r1] cmp r0, 0 bne _0804F6DE b _0804FBD6 _0804F6DE: subs r0, 0x1 str r0, [r1] adds r0, r7, 0 bl sub_804F5D8 movs r0, 0x2 bl sub_8084100 cmp r0, 0 beq _0804F78E movs r5, 0 movs r1, 0 ldrsh r0, [r7, r1] movs r2, 0x4 ldrsh r1, [r7, r2] adds r0, r1 lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 mov r8, r0 movs r3, 0x2 ldrsh r4, [r7, r3] b _0804F712 .align 2, 0 _0804F70C: .4byte gUnknown_202F1C8 _0804F710: adds r4, 0x1 _0804F712: movs r1, 0x6 ldrsh r0, [r7, r1] cmp r4, r0 bge _0804F72A mov r0, r8 adds r1, r4, 0 bl sub_804F61C lsls r0, 24 cmp r0, 0 beq _0804F710 movs r5, 0x1 _0804F72A: cmp r5, 0 beq _0804F730 b _0804FBD6 _0804F730: movs r2, 0x2 ldrsh r4, [r7, r2] movs r3, 0x6 ldrsh r0, [r7, r3] cmp r4, r0 bge _0804F754 _0804F73C: mov r0, r8 adds r1, r4, 0 bl sub_8049590 movs r1, 0 bl sub_804F5C4 adds r4, 0x1 movs r5, 0x6 ldrsh r0, [r7, r5] cmp r4, r0 blt _0804F73C _0804F754: movs r0, 0 ldrsh r5, [r7, r0] cmp r5, r8 blt _0804F75E b _0804FBD2 _0804F75E: movs r1, 0x2 ldrsh r4, [r7, r1] movs r2, 0x6 ldrsh r0, [r7, r2] adds r6, r5, 0x1 cmp r4, r0 bge _0804F786 _0804F76C: adds r0, r5, 0 adds r1, r4, 0 bl sub_8049590 ldrh r2, [r0] movs r1, 0x80 orrs r1, r2 strh r1, [r0] adds r4, 0x1 movs r3, 0x6 ldrsh r0, [r7, r3] cmp r4, r0 blt _0804F76C _0804F786: adds r5, r6, 0 cmp r5, r8 blt _0804F75E b _0804FBD2 _0804F78E: movs r5, 0 movs r4, 0x2 ldrsh r0, [r7, r4] movs r2, 0x6 ldrsh r1, [r7, r2] adds r0, r1 lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 mov r8, r0 movs r3, 0 ldrsh r4, [r7, r3] b _0804F7AA _0804F7A8: adds r4, 0x1 _0804F7AA: movs r1, 0x4 ldrsh r0, [r7, r1] cmp r4, r0 bge _0804F7C2 adds r0, r4, 0 mov r1, r8 bl sub_804F61C lsls r0, 24 cmp r0, 0 beq _0804F7A8 movs r5, 0x1 _0804F7C2: cmp r5, 0 beq _0804F7C8 b _0804FBD6 _0804F7C8: movs r2, 0 ldrsh r4, [r7, r2] movs r3, 0x4 ldrsh r0, [r7, r3] cmp r4, r0 bge _0804F7EC _0804F7D4: adds r0, r4, 0 mov r1, r8 bl sub_8049590 movs r1, 0 bl sub_804F5C4 adds r4, 0x1 movs r5, 0x4 ldrsh r0, [r7, r5] cmp r4, r0 blt _0804F7D4 _0804F7EC: movs r0, 0x2 ldrsh r5, [r7, r0] cmp r5, r8 blt _0804F7F6 b _0804FBD2 _0804F7F6: movs r1, 0 ldrsh r4, [r7, r1] movs r2, 0x4 ldrsh r0, [r7, r2] adds r6, r5, 0x1 cmp r4, r0 bge _0804F81E _0804F804: adds r0, r4, 0 adds r1, r5, 0 bl sub_8049590 ldrh r2, [r0] movs r1, 0x80 orrs r1, r2 strh r1, [r0] adds r4, 0x1 movs r3, 0x4 ldrsh r0, [r7, r3] cmp r4, r0 blt _0804F804 _0804F81E: adds r5, r6, 0 cmp r5, r8 blt _0804F7F6 b _0804FBD2 _0804F826: movs r4, 0x4 ldrsh r3, [r7, r4] movs r5, 0 ldrsh r1, [r7, r5] subs r0, r3, r1 cmp r0, 0x5 bgt _0804F836 b _0804FBD6 _0804F836: movs r0, 0x6 ldrsh r4, [r7, r0] movs r5, 0x2 ldrsh r2, [r7, r5] subs r0, r4, r2 cmp r0, 0x5 bgt _0804F846 b _0804FBD6 _0804F846: adds r0, r1, r3 lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 str r0, [sp] adds r0, r2, r4 lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 str r0, [sp, 0x4] ldr r1, _0804F9D8 ldr r0, [r1] cmp r0, 0 bne _0804F864 b _0804FBD6 _0804F864: subs r0, 0x1 str r0, [r1] adds r0, r7, 0 bl sub_804F5D8 ldr r5, [sp] subs r5, 0x2 ldr r0, [sp, 0x4] subs r0, 0x2 mov r10, r0 adds r0, r5, 0 mov r1, r10 bl sub_8049590 movs r1, 0x4 bl sub_804F5C4 ldr r1, [sp] subs r1, 0x1 mov r9, r1 mov r0, r9 mov r1, r10 bl sub_8049590 movs r1, 0x4 bl sub_804F5C4 ldr r0, [sp] mov r1, r10 bl sub_8049590 movs r1, 0x4 bl sub_804F5C4 ldr r2, [sp] adds r2, 0x1 mov r8, r2 mov r0, r8 mov r1, r10 bl sub_8049590 movs r1, 0x4 bl sub_804F5C4 ldr r6, [sp, 0x4] subs r6, 0x1 adds r0, r5, 0 adds r1, r6, 0 bl sub_8049590 movs r1, 0x4 bl sub_804F5C4 adds r0, r5, 0 ldr r1, [sp, 0x4] bl sub_8049590 movs r1, 0x4 bl sub_804F5C4 ldr r4, [sp, 0x4] adds r4, 0x1 adds r0, r5, 0 adds r1, r4, 0 bl sub_8049590 movs r1, 0x4 bl sub_804F5C4 adds r0, r5, 0 adds r1, r4, 0 bl sub_8049590 movs r1, 0x4 bl sub_804F5C4 mov r0, r9 adds r1, r4, 0 bl sub_8049590 movs r1, 0x4 bl sub_804F5C4 ldr r0, [sp] adds r1, r4, 0 bl sub_8049590 movs r1, 0x4 bl sub_804F5C4 mov r0, r8 mov r1, r10 bl sub_8049590 movs r1, 0x4 bl sub_804F5C4 mov r0, r8 adds r1, r6, 0 bl sub_8049590 movs r1, 0x4 bl sub_804F5C4 mov r0, r8 ldr r1, [sp, 0x4] bl sub_8049590 movs r1, 0x4 bl sub_804F5C4 mov r0, r8 adds r1, r4, 0 bl sub_8049590 movs r1, 0x4 bl sub_804F5C4 mov r0, r9 adds r1, r6, 0 bl sub_8049590 ldrh r2, [r0, 0x4] movs r1, 0x4 orrs r1, r2 strh r1, [r0, 0x4] mov r0, r9 adds r1, r6, 0 bl sub_8049590 ldrh r1, [r0, 0x4] movs r2, 0x40 orrs r1, r2 strh r1, [r0, 0x4] ldr r0, [sp] adds r1, r6, 0 bl sub_8049590 ldrh r1, [r0, 0x4] movs r4, 0x2 orrs r1, r4 strh r1, [r0, 0x4] mov r0, r9 ldr r1, [sp, 0x4] bl sub_8049590 ldrh r1, [r0, 0x4] orrs r1, r4 strh r1, [r0, 0x4] ldr r0, [sp] ldr r1, [sp, 0x4] bl sub_8049590 ldrh r1, [r0, 0x4] orrs r1, r4 strh r1, [r0, 0x4] mov r0, r9 adds r1, r6, 0 bl sub_8049590 ldrh r1, [r0, 0x4] movs r4, 0x10 orrs r1, r4 strh r1, [r0, 0x4] ldr r0, [sp] adds r1, r6, 0 bl sub_8049590 ldrh r1, [r0, 0x4] orrs r1, r4 strh r1, [r0, 0x4] mov r0, r9 ldr r1, [sp, 0x4] bl sub_8049590 ldrh r1, [r0, 0x4] orrs r1, r4 strh r1, [r0, 0x4] ldr r0, [sp] ldr r1, [sp, 0x4] bl sub_8049590 ldrh r1, [r0, 0x4] orrs r4, r1 strh r4, [r0, 0x4] b _0804FBD2 .align 2, 0 _0804F9D8: .4byte gUnknown_202F1C8 _0804F9DC: movs r4, 0x4 ldrsh r3, [r7, r4] movs r5, 0 ldrsh r2, [r7, r5] subs r0, r3, r2 cmp r0, 0x4 bgt _0804F9EC b _0804FBD6 _0804F9EC: movs r1, 0x6 ldrsh r0, [r7, r1] movs r4, 0x2 ldrsh r1, [r7, r4] subs r0, r1 cmp r0, 0x4 bgt _0804F9FC b _0804FBD6 _0804F9FC: adds r0, r2, 0x2 subs r1, r3, 0x3 bl sub_808411C adds r4, r0, 0 movs r5, 0x2 ldrsh r0, [r7, r5] adds r0, 0x2 movs r2, 0x6 ldrsh r1, [r7, r2] subs r1, 0x3 bl sub_808411C mov r10, r0 movs r3, 0 ldrsh r0, [r7, r3] adds r0, 0x2 movs r5, 0x4 ldrsh r1, [r7, r5] subs r1, 0x3 bl sub_808411C mov r9, r0 movs r1, 0x2 ldrsh r0, [r7, r1] adds r0, 0x2 movs r2, 0x6 ldrsh r1, [r7, r2] subs r1, 0x3 bl sub_808411C adds r6, r0, 0 ldr r1, _0804FA94 ldr r0, [r1] cmp r0, 0 bne _0804FA46 b _0804FBD6 _0804FA46: subs r0, 0x1 str r0, [r1] adds r0, r7, 0 bl sub_804F5D8 cmp r4, r9 ble _0804FA5A adds r0, r4, 0 mov r4, r9 mov r9, r0 _0804FA5A: cmp r10, r6 ble _0804FA64 mov r0, r10 mov r10, r6 adds r6, r0, 0 _0804FA64: adds r5, r4, 0 cmp r5, r9 ble _0804FA6C b _0804FBD2 _0804FA6C: mov r4, r10 adds r3, r5, 0x1 mov r8, r3 cmp r4, r6 bgt _0804FA8A _0804FA76: adds r0, r5, 0 adds r1, r4, 0 bl sub_8049590 movs r1, 0 bl sub_804F5C4 adds r4, 0x1 cmp r4, r6 ble _0804FA76 _0804FA8A: mov r5, r8 cmp r5, r9 ble _0804FA6C b _0804FBD2 .align 2, 0 _0804FA94: .4byte gUnknown_202F1C8 _0804FA98: movs r4, 0x4 ldrsh r0, [r7, r4] movs r5, 0 ldrsh r1, [r7, r5] subs r0, r1 movs r2, 0x1 ands r0, r2 cmp r0, 0 bne _0804FAAC b _0804FBD6 _0804FAAC: movs r1, 0x6 ldrsh r0, [r7, r1] movs r3, 0x2 ldrsh r1, [r7, r3] subs r0, r1 ands r0, r2 cmp r0, 0 bne _0804FABE b _0804FBD6 _0804FABE: ldr r1, _0804FB20 ldr r0, [r1] cmp r0, 0 bne _0804FAC8 b _0804FBD6 _0804FAC8: subs r0, 0x1 str r0, [r1] adds r0, r7, 0 bl sub_804F5D8 movs r6, 0x3F _0804FAD4: movs r4, 0x4 ldrsh r0, [r7, r4] movs r5, 0 ldrsh r1, [r7, r5] subs r0, r1 bl sub_8084100 adds r4, r0, 0 movs r1, 0x6 ldrsh r0, [r7, r1] movs r2, 0x2 ldrsh r1, [r7, r2] subs r0, r1 bl sub_8084100 adds r2, r0, 0 adds r0, r4, r2 movs r5, 0x1 ands r0, r5 cmp r0, 0 beq _0804FB14 movs r3, 0 ldrsh r0, [r7, r3] adds r0, r4 movs r4, 0x2 ldrsh r1, [r7, r4] adds r1, r2 bl sub_8049590 movs r1, 0 bl sub_804F5C4 _0804FB14: subs r6, 0x1 cmp r6, 0 bge _0804FAD4 strb r5, [r7, 0x9] b _0804FBD6 .align 2, 0 _0804FB20: .4byte gUnknown_202F1C8 _0804FB24: ldr r1, _0804FBC0 ldr r0, [r1] cmp r0, 0 beq _0804FBD6 subs r0, 0x1 str r0, [r1] movs r5, 0x4 ldrsh r3, [r7, r5] movs r0, 0 ldrsh r2, [r7, r0] subs r6, r3, r2 movs r4, 0x1 adds r0, r6, 0 ands r0, r4 cmp r0, 0 beq _0804FB54 movs r1, 0x6 ldrsh r0, [r7, r1] movs r5, 0x2 ldrsh r1, [r7, r5] subs r0, r1 ands r0, r4 cmp r0, 0 bne _0804FBC4 _0804FB54: adds r0, r2, r3 lsrs r1, r0, 31 adds r0, r1 asrs r5, r0, 1 movs r0, 0x2 ldrsh r3, [r7, r0] movs r1, 0x6 ldrsh r2, [r7, r1] adds r0, r3, r2 lsrs r1, r0, 31 adds r0, r1 asrs r4, r0, 1 cmp r6, 0x4 ble _0804FBAE subs r0, r2, r3 cmp r0, 0x4 ble _0804FBAE adds r0, r5, 0x1 adds r1, r4, 0 bl sub_8049590 movs r1, 0 bl sub_804F5C4 adds r1, r4, 0x1 adds r0, r5, 0 bl sub_8049590 movs r1, 0 bl sub_804F5C4 subs r0, r5, 0x1 adds r1, r4, 0 bl sub_8049590 movs r1, 0 bl sub_804F5C4 subs r1, r4, 0x1 adds r0, r5, 0 bl sub_8049590 movs r1, 0 bl sub_804F5C4 _0804FBAE: adds r0, r5, 0 adds r1, r4, 0 bl sub_8049590 movs r1, 0 bl sub_804F5C4 b _0804FBD2 .align 2, 0 _0804FBC0: .4byte gUnknown_202F1C8 _0804FBC4: adds r0, r7, 0 bl sub_804F5D8 adds r0, r7, 0 movs r1, 0x1 bl sub_804F278 _0804FBD2: movs r0, 0x1 strb r0, [r7, 0x9] _0804FBD6: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_804F694 thumb_func_start sub_804FBE8 sub_804FBE8: push {r4-r7,lr} mov r7, r8 push {r7} movs r6, 0 ldr r0, _0804FC6C adds r5, r0, 0 _0804FBF4: movs r4, 0 adds r3, r6, 0x1 mov r8, r3 _0804FBFA: adds r0, r6, 0 adds r1, r4, 0 bl sub_8049590 adds r2, r0, 0 ldrh r1, [r2] movs r0, 0x3 ands r0, r1 cmp r0, 0x1 beq _0804FC2A movs r7, 0x88 lsls r7, 1 adds r0, r7, 0 ands r0, r1 cmp r0, 0 beq _0804FC24 ldrh r0, [r2, 0x4] ldr r3, _0804FC70 adds r1, r3, 0 ands r0, r1 strh r0, [r2, 0x4] _0804FC24: ldrh r0, [r2, 0x4] ands r0, r5 strh r0, [r2, 0x4] _0804FC2A: ldrh r3, [r2, 0x4] movs r0, 0x1 ands r0, r3 cmp r0, 0 beq _0804FC46 ldrh r0, [r2] movs r7, 0x80 lsls r7, 2 adds r1, r7, 0 orrs r1, r0 strh r1, [r2] adds r0, r3, 0 ands r0, r5 strh r0, [r2, 0x4] _0804FC46: ldrh r1, [r2, 0x4] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0804FC56 adds r0, r1, 0 ands r0, r5 strh r0, [r2, 0x4] _0804FC56: adds r4, 0x1 cmp r4, 0x1F ble _0804FBFA mov r6, r8 cmp r6, 0x37 ble _0804FBF4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804FC6C: .4byte 0x0000fffb _0804FC70: .4byte 0x0000fffd thumb_func_end sub_804FBE8 thumb_func_start sub_804FC74 sub_804FC74: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} movs r5, 0 movs r0, 0x3 mov r8, r0 ldr r0, _0804FCC8 adds r7, r0, 0 _0804FC86: movs r4, 0 adds r6, r5, 0x1 _0804FC8A: adds r0, r5, 0 adds r1, r4, 0 bl sub_804954C ldrh r1, [r0] movs r0, 0x3 ands r0, r1 cmp r0, 0x2 bne _0804FCAE adds r0, r5, 0 adds r1, r4, 0 bl sub_8049590 ldrh r1, [r0] ands r1, r7 mov r2, r8 orrs r1, r2 strh r1, [r0] _0804FCAE: adds r4, 0x1 cmp r4, 0x1F ble _0804FC8A adds r5, r6, 0 cmp r5, 0x37 ble _0804FC86 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804FCC8: .4byte 0x0000fffc thumb_func_end sub_804FC74 thumb_func_start sub_804FCCC sub_804FCCC: push {r4-r7,lr} movs r5, 0 ldr r0, _0804FD0C adds r7, r0, 0 _0804FCD4: movs r4, 0 adds r6, r5, 0x1 _0804FCD8: adds r0, r5, 0 adds r1, r4, 0 bl sub_804954C ldrh r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _0804FCF8 adds r0, r5, 0 adds r1, r4, 0 bl sub_8049590 ldrh r1, [r0] ands r1, r7 strh r1, [r0] _0804FCF8: adds r4, 0x1 cmp r4, 0x1F ble _0804FCD8 adds r5, r6, 0 cmp r5, 0x37 ble _0804FCD4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804FD0C: .4byte 0x0000fffc thumb_func_end sub_804FCCC thumb_func_start sub_804FD10 sub_804FD10: movs r2, 0 movs r3, 0 strh r3, [r0] strh r3, [r0, 0x4] movs r1, 0xFF strb r1, [r0, 0x9] strb r2, [r0, 0x8] strb r2, [r0, 0xA] strb r2, [r0, 0xB] strb r2, [r0, 0xC] strb r2, [r0, 0xD] strb r2, [r0, 0xE] str r3, [r0, 0x10] str r3, [r0, 0x14] bx lr thumb_func_end sub_804FD10 thumb_func_start sub_804FD30 sub_804FD30: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 movs r6, 0 _0804FD3A: movs r7, 0 adds r4, r6, 0x1 _0804FD3E: adds r0, r6, 0 adds r1, r7, 0 bl sub_8049590 bl sub_804FD10 subs r3, r7, 0x1 cmp r6, 0 blt _0804FD5C cmp r3, 0 blt _0804FD5C cmp r6, 0x37 bgt _0804FD5C cmp r3, 0x1F ble _0804FD60 _0804FD5C: movs r0, 0x1 b _0804FD62 _0804FD60: movs r0, 0 _0804FD62: cmp r0, 0 bne _0804FE24 cmp r4, 0 blt _0804FD76 cmp r3, 0 blt _0804FD76 cmp r4, 0x37 bgt _0804FD76 cmp r3, 0x1F ble _0804FD7A _0804FD76: movs r0, 0x1 b _0804FD7C _0804FD7A: movs r0, 0 _0804FD7C: cmp r0, 0 bne _0804FE24 cmp r4, 0 blt _0804FD90 cmp r3, 0 blt _0804FD90 cmp r4, 0x37 bgt _0804FD90 cmp r3, 0x1F ble _0804FD94 _0804FD90: movs r0, 0x1 b _0804FD96 _0804FD94: movs r0, 0 _0804FD96: cmp r0, 0 bne _0804FE24 adds r2, r7, 0x1 cmp r4, 0 blt _0804FDAC cmp r2, 0 blt _0804FDAC cmp r4, 0x37 bgt _0804FDAC cmp r2, 0x1F ble _0804FDB0 _0804FDAC: movs r0, 0x1 b _0804FDB2 _0804FDB0: movs r0, 0 _0804FDB2: cmp r0, 0 bne _0804FE24 cmp r6, 0 blt _0804FDC6 cmp r2, 0 blt _0804FDC6 cmp r6, 0x37 bgt _0804FDC6 cmp r2, 0x1F ble _0804FDCA _0804FDC6: movs r0, 0x1 b _0804FDCC _0804FDCA: movs r0, 0 _0804FDCC: cmp r0, 0 bne _0804FE24 adds r0, r2, 0 subs r1, r6, 0x1 cmp r1, 0 blt _0804FDE4 cmp r0, 0 blt _0804FDE4 cmp r1, 0x37 bgt _0804FDE4 cmp r2, 0x1F ble _0804FDE8 _0804FDE4: movs r0, 0x1 b _0804FDEA _0804FDE8: movs r0, 0 _0804FDEA: cmp r0, 0 bne _0804FE24 cmp r1, 0 blt _0804FDFE cmp r7, 0 blt _0804FDFE cmp r1, 0x37 bgt _0804FDFE cmp r7, 0x1F ble _0804FE02 _0804FDFE: movs r0, 0x1 b _0804FE04 _0804FE02: movs r0, 0 _0804FE04: cmp r0, 0 bne _0804FE24 adds r0, r3, 0 cmp r1, 0 blt _0804FE1A cmp r0, 0 blt _0804FE1A cmp r1, 0x37 bgt _0804FE1A cmp r3, 0x1F ble _0804FE1E _0804FE1A: movs r0, 0x1 b _0804FE20 _0804FE1E: movs r0, 0 _0804FE20: cmp r0, 0 beq _0804FE34 _0804FE24: adds r0, r6, 0 adds r1, r7, 0 bl sub_8049590 ldrh r2, [r0] movs r1, 0x10 orrs r1, r2 strh r1, [r0] _0804FE34: adds r7, 0x1 cmp r7, 0x1F ble _0804FD3E adds r6, 0x1 cmp r6, 0x37 bgt _0804FE42 b _0804FD3A _0804FE42: ldr r3, _0804FEB4 ldr r1, [r3] ldr r0, _0804FEB8 adds r2, r1, r0 ldr r0, _0804FEBC strh r0, [r2] ldr r2, _0804FEC0 adds r1, r2 movs r0, 0x1 negs r0, r0 strh r0, [r1] movs r6, 0 mov r8, r3 ldr r1, _0804FEC4 _0804FE5E: adds r5, r1, 0 movs r4, 0 movs r7, 0x7 _0804FE64: mov r2, r8 ldr r0, [r2] adds r0, r5 adds r0, r4 str r1, [sp] bl sub_804FD10 adds r4, 0x18 subs r7, 0x1 ldr r1, [sp] cmp r7, 0 bge _0804FE64 adds r1, 0xC0 adds r6, 0x1 cmp r6, 0x7 ble _0804FE5E ldr r0, _0804FEB4 ldr r1, [r0] ldr r2, _0804FEC8 adds r1, r2 movs r2, 0 strh r2, [r1] movs r6, 0 adds r4, r0, 0 ldr r3, _0804FECC _0804FE96: ldr r0, [r4] lsls r1, r6, 2 adds r0, r3 adds r0, r1 ldr r0, [r0] str r2, [r0] adds r6, 0x1 cmp r6, 0x3F ble _0804FE96 add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804FEB4: .4byte gUnknown_203B418 _0804FEB8: .4byte 0x0000e21c _0804FEBC: .4byte 0x0000ffff _0804FEC0: .4byte 0x0000e21e _0804FEC4: .4byte 0x0000e27c _0804FEC8: .4byte 0x00003904 _0804FECC: .4byte 0x0001371c thumb_func_end sub_804FD30 thumb_func_start sub_804FED0 sub_804FED0: push {r4-r7,lr} adds r7, r0, 0 adds r5, r1, 0 movs r6, 0 b _0804FEFA _0804FEDA: adds r0, r5, 0 bl sub_8084100 adds r4, r0, 0 adds r0, r5, 0 bl sub_8084100 lsls r4, 2 adds r4, r7 ldr r2, [r4] lsls r0, 2 adds r0, r7 ldr r1, [r0] str r1, [r4] str r2, [r0] adds r6, 0x1 _0804FEFA: lsls r0, r5, 1 cmp r6, r0 blt _0804FEDA pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_804FED0 thumb_func_start sub_804FF08 sub_804FF08: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r4, _08050234 add sp, r4 mov r10, r0 lsls r1, 24 lsrs r1, 24 movs r0, 0xE0 lsls r0, 5 add r0, sp str r1, [r0] ldr r0, _08050238 ldr r0, [r0] mov r9, r0 ldr r0, _0805023C add r0, r9 movs r1, 0 ldrsh r0, [r0, r1] movs r1, 0x1 negs r1, r1 cmp r0, r1 beq _0804FF46 ldr r0, _08050240 add r0, r9 movs r2, 0 ldrsh r0, [r0, r2] cmp r0, r1 bne _08050038 _0804FF46: movs r0, 0 mov r8, r0 movs r6, 0 _0804FF4C: movs r5, 0 mov r1, r8 lsls r0, r1, 2 mov r2, sp adds r4, r0, r2 _0804FF56: adds r0, r6, 0 adds r1, r5, 0 bl sub_804954C adds r1, r0, 0 ldrh r2, [r1] movs r0, 0x3 ands r0, r2 cmp r0, 0x1 bne _0804FFAA ldrb r0, [r1, 0x9] cmp r0, 0xFF beq _0804FFAA movs r0, 0x20 ands r0, r2 cmp r0, 0 bne _0804FFAA ldrh r1, [r1, 0x4] movs r3, 0x8 adds r0, r3, 0 ands r0, r1 cmp r0, 0 bne _0804FFAA movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _0804FFAA adds r0, r3, 0 ands r0, r2 cmp r0, 0 bne _0804FFAA movs r1, 0x80 lsls r1, 1 adds r0, r1, 0 ands r0, r2 cmp r0, 0 bne _0804FFAA strb r6, [r4] strb r5, [r4, 0x1] adds r4, 0x4 movs r2, 0x1 add r8, r2 _0804FFAA: adds r5, 0x1 cmp r5, 0x1F ble _0804FF56 adds r6, 0x1 cmp r6, 0x37 ble _0804FF4C mov r0, r8 cmp r0, 0 beq _08050038 bl sub_8084100 lsls r0, 2 mov r1, sp adds r4, r1, r0 ldrb r0, [r4] ldrb r1, [r4, 0x1] bl sub_8049590 adds r5, r0, 0 ldrh r1, [r5, 0x4] movs r0, 0x1 orrs r0, r1 ldr r1, _08050244 ands r0, r1 strh r0, [r5, 0x4] ldr r1, _08050248 ldrb r0, [r5, 0x9] strb r0, [r1] ldrb r1, [r4] ldr r0, _0805023C add r0, r9 strh r1, [r0] ldrb r1, [r4, 0x1] ldr r0, _08050240 add r0, r9 strh r1, [r0] bl sub_8043D10 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _08050038 ldrb r4, [r5, 0x9] movs r6, 0 _08050002: movs r5, 0 _08050004: adds r0, r6, 0 adds r1, r5, 0 bl sub_8049590 adds r1, r0, 0 ldrh r2, [r1] movs r0, 0x3 ands r0, r2 cmp r0, 0x1 bne _0805002C ldrb r0, [r1, 0x9] cmp r0, r4 bne _0805002C movs r0, 0x40 orrs r0, r2 strh r0, [r1] ldrb r1, [r1, 0x9] ldr r0, _0805024C add r0, r9 strb r1, [r0] _0805002C: adds r5, 0x1 cmp r5, 0x1F ble _08050004 adds r6, 0x1 cmp r6, 0x37 ble _08050002 _08050038: movs r2, 0 mov r8, r2 movs r6, 0 _0805003E: movs r5, 0 adds r7, r6, 0x1 mov r1, r8 lsls r0, r1, 2 mov r2, sp adds r4, r0, r2 _0805004A: adds r0, r6, 0 adds r1, r5, 0 bl sub_804954C adds r1, r0, 0 ldrh r2, [r1] movs r0, 0x3 ands r0, r2 cmp r0, 0x1 bne _08050092 ldrb r0, [r1, 0x9] cmp r0, 0xFF beq _08050092 movs r0, 0x20 ands r0, r2 cmp r0, 0 bne _08050092 movs r0, 0x40 ands r0, r2 cmp r0, 0 bne _08050092 movs r0, 0x8 ands r0, r2 cmp r0, 0 bne _08050092 movs r1, 0x80 lsls r1, 1 adds r0, r1, 0 ands r0, r2 cmp r0, 0 bne _08050092 strb r6, [r4] strb r5, [r4, 0x1] adds r4, 0x4 movs r2, 0x1 add r8, r2 _08050092: adds r5, 0x1 cmp r5, 0x1F ble _0805004A adds r6, r7, 0 cmp r6, 0x37 ble _0805003E mov r0, r8 cmp r0, 0 beq _080500FA mov r1, r10 ldrb r4, [r1, 0xF] cmp r4, 0 beq _080500FA subs r0, r4, 0x2 adds r1, r4, 0x2 bl sub_808411C adds r4, r0, 0 cmp r4, 0 bgt _080500BC movs r4, 0x1 _080500BC: mov r0, sp mov r1, r8 bl sub_804FED0 mov r0, r8 bl sub_8084100 adds r5, r0, 0 cmp r4, 0 ble _080500FA adds r6, r4, 0 lsls r0, r5, 2 mov r2, sp adds r4, r0, r2 _080500D8: ldrb r0, [r4] ldrb r1, [r4, 0x1] bl sub_8049590 ldrh r2, [r0, 0x4] movs r1, 0x2 orrs r1, r2 strh r1, [r0, 0x4] adds r4, 0x4 adds r5, 0x1 cmp r5, r8 bne _080500F4 mov r4, sp movs r5, 0 _080500F4: subs r6, 0x1 cmp r6, 0 bne _080500D8 _080500FA: movs r0, 0 mov r8, r0 movs r6, 0 _08050100: movs r5, 0 adds r7, r6, 0x1 mov r1, r8 lsls r0, r1, 2 mov r2, sp adds r4, r0, r2 _0805010C: adds r0, r6, 0 adds r1, r5, 0 bl sub_804954C ldrh r1, [r0] movs r0, 0x3 ands r0, r1 cmp r0, 0 bne _08050128 strb r6, [r4] strb r5, [r4, 0x1] adds r4, 0x4 movs r0, 0x1 add r8, r0 _08050128: adds r5, 0x1 cmp r5, 0x1F ble _0805010C adds r6, r7, 0 cmp r6, 0x37 ble _08050100 mov r1, r8 cmp r1, 0 beq _0805018E mov r2, r10 ldrb r4, [r2, 0x14] cmp r4, 0 beq _0805018E subs r0, r4, 0x2 adds r1, r4, 0x2 bl sub_808411C adds r4, r0, 0 cmp r4, 0 ble _0805018E mov r0, sp mov r1, r8 bl sub_804FED0 mov r0, r8 bl sub_8084100 adds r5, r0, 0 cmp r4, 0 ble _0805018E adds r6, r4, 0 lsls r0, r5, 2 mov r1, sp adds r4, r0, r1 _0805016C: ldrb r0, [r4] ldrb r1, [r4, 0x1] bl sub_8049590 ldrh r2, [r0, 0x4] movs r1, 0x2 orrs r1, r2 strh r1, [r0, 0x4] adds r4, 0x4 adds r5, 0x1 cmp r5, r8 bne _08050188 mov r4, sp movs r5, 0 _08050188: subs r6, 0x1 cmp r6, 0 bne _0805016C _0805018E: movs r2, 0 mov r8, r2 movs r0, 0xE0 lsls r0, 5 add r0, sp ldr r0, [r0] cmp r0, 0 bne _080501E4 movs r6, 0 _080501A0: movs r5, 0 adds r7, r6, 0x1 mov r1, r8 lsls r0, r1, 2 mov r2, sp adds r4, r0, r2 _080501AC: adds r0, r6, 0 adds r1, r5, 0 bl sub_804954C ldrh r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _080501D8 movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _080501D8 movs r0, 0x8 ands r0, r1 cmp r0, 0 bne _080501D8 strb r6, [r4] strb r5, [r4, 0x1] adds r4, 0x4 movs r0, 0x1 add r8, r0 _080501D8: adds r5, 0x1 cmp r5, 0x1F ble _080501AC adds r6, r7, 0 cmp r6, 0x37 ble _080501A0 _080501E4: mov r1, r8 cmp r1, 0 beq _08050294 lsrs r4, r1, 31 add r4, r8 asrs r4, 1 lsls r0, r1, 3 movs r1, 0xA bl __divsi3 adds r1, r0, 0 adds r0, r4, 0 bl sub_808411C adds r4, r0, 0 cmp r4, 0x5 bgt _08050208 movs r4, 0x6 _08050208: ldr r0, _08050250 movs r2, 0 ldrsh r0, [r0, r2] cmp r4, r0 blt _08050214 adds r4, r0, 0 _08050214: mov r0, sp mov r1, r8 bl sub_804FED0 mov r0, r8 bl sub_8084100 adds r5, r0, 0 cmp r4, 0 ble _08050294 adds r6, r4, 0 lsls r0, r5, 2 mov r1, sp adds r7, r0, r1 _08050230: ldrb r0, [r7] b _08050254 .align 2, 0 _08050234: .4byte 0xffffe3fc _08050238: .4byte gUnknown_203B418 _0805023C: .4byte 0x0000e21c _08050240: .4byte 0x0000e21e _08050244: .4byte 0x0000fffd _08050248: .4byte gUnknown_202F1B4 _0805024C: .4byte 0x00003a0c _08050250: .4byte gUnknown_80F4DA0 _08050254: ldrb r1, [r7, 0x1] bl sub_8049590 adds r4, r0, 0 movs r0, 0x2 bl sub_8084100 cmp r0, 0 beq _0805026C ldrh r0, [r4, 0x4] movs r1, 0x2 b _0805027E _0805026C: ldr r0, _08050424 ldr r0, [r0] ldr r2, _08050428 adds r0, r2 ldrb r0, [r0] cmp r0, 0 beq _08050282 ldrh r0, [r4, 0x4] movs r1, 0x4 _0805027E: orrs r0, r1 strh r0, [r4, 0x4] _08050282: adds r7, 0x4 adds r5, 0x1 cmp r5, r8 bne _0805028E mov r7, sp movs r5, 0 _0805028E: subs r6, 0x1 cmp r6, 0 bne _08050230 _08050294: movs r0, 0 mov r8, r0 movs r6, 0 _0805029A: movs r5, 0 adds r7, r6, 0x1 mov r1, r8 lsls r0, r1, 2 mov r2, sp adds r4, r0, r2 _080502A6: adds r0, r6, 0 adds r1, r5, 0 bl sub_804954C adds r1, r0, 0 ldrh r2, [r1] movs r0, 0x3 ands r0, r2 cmp r0, 0x1 bne _080502F0 ldrb r0, [r1, 0x9] cmp r0, 0xFF beq _080502F0 movs r0, 0x20 ands r0, r2 cmp r0, 0 bne _080502F0 ldrh r1, [r1, 0x4] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _080502F0 movs r0, 0x8 ands r0, r2 cmp r0, 0 bne _080502F0 movs r1, 0x80 lsls r1, 1 adds r0, r1, 0 ands r0, r2 cmp r0, 0 bne _080502F0 strb r6, [r4] strb r5, [r4, 0x1] adds r4, 0x4 movs r2, 0x1 add r8, r2 _080502F0: adds r5, 0x1 cmp r5, 0x1F ble _080502A6 adds r6, r7, 0 cmp r6, 0x37 ble _0805029A mov r0, r8 cmp r0, 0 beq _08050356 mov r2, r10 ldrb r1, [r2, 0x10] lsrs r0, r1, 1 bl sub_808411C adds r4, r0, 0 cmp r4, 0 ble _08050356 cmp r4, 0x37 ble _08050318 movs r4, 0x38 _08050318: mov r0, sp mov r1, r8 bl sub_804FED0 mov r0, r8 bl sub_8084100 adds r5, r0, 0 cmp r4, 0 ble _08050356 adds r6, r4, 0 lsls r0, r5, 2 mov r1, sp adds r4, r0, r1 _08050334: ldrb r0, [r4] ldrb r1, [r4, 0x1] bl sub_8049590 ldrh r2, [r0, 0x4] movs r1, 0x4 orrs r1, r2 strh r1, [r0, 0x4] adds r4, 0x4 adds r5, 0x1 cmp r5, r8 bne _08050350 mov r4, sp movs r5, 0 _08050350: subs r6, 0x1 cmp r6, 0 bne _08050334 _08050356: ldr r0, _0805042C add r0, r9 movs r2, 0 ldrsh r0, [r0, r2] movs r1, 0x1 negs r1, r1 cmp r0, r1 beq _08050372 ldr r0, _08050430 add r0, r9 movs r2, 0 ldrsh r0, [r0, r2] cmp r0, r1 bne _08050410 _08050372: movs r0, 0 mov r8, r0 movs r6, 0 _08050378: movs r5, 0 adds r7, r6, 0x1 mov r1, r8 lsls r0, r1, 2 mov r2, sp adds r4, r0, r2 _08050384: adds r0, r6, 0 adds r1, r5, 0 bl sub_804954C adds r2, r0, 0 ldrh r1, [r2] movs r0, 0x3 ands r0, r1 cmp r0, 0x1 bne _080503E2 ldrb r0, [r2, 0x9] cmp r0, 0xFF beq _080503E2 movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _080503E2 movs r3, 0x8 adds r0, r3, 0 ands r0, r1 cmp r0, 0 bne _080503E2 movs r0, 0x80 lsls r0, 1 mov r10, r0 mov r0, r10 ands r0, r1 cmp r0, 0 bne _080503E2 ldrh r1, [r2, 0x4] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _080503E2 adds r0, r3, 0 ands r0, r1 cmp r0, 0 bne _080503E2 movs r0, 0x4 ands r0, r1 cmp r0, 0 bne _080503E2 strb r6, [r4] strb r5, [r4, 0x1] adds r4, 0x4 movs r1, 0x1 add r8, r1 _080503E2: adds r5, 0x1 cmp r5, 0x1F ble _08050384 adds r6, r7, 0 cmp r6, 0x37 ble _08050378 mov r2, r8 cmp r2, 0 beq _08050410 mov r0, r8 bl sub_8084100 lsls r0, 2 mov r1, sp adds r2, r1, r0 ldrb r1, [r2] ldr r0, _0805042C add r0, r9 strh r1, [r0] ldrb r1, [r2, 0x1] ldr r0, _08050430 add r0, r9 strh r1, [r0] _08050410: ldr r3, _08050434 add sp, r3 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08050424: .4byte gUnknown_203B418 _08050428: .4byte 0x0000065c _0805042C: .4byte 0x0000e218 _08050430: .4byte 0x0000e21a _08050434: .4byte 0x00001c04 thumb_func_end sub_804FF08 thumb_func_start sub_8050438 sub_8050438: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r4, _08050470 add sp, r4 lsls r1, 24 lsrs r1, 24 movs r2, 0xE0 lsls r2, 5 add r2, sp str r1, [r2] ldr r1, _08050474 ldr r1, [r1] mov r10, r1 ldrb r1, [r0, 0x6] cmp r1, 0 ble _08050478 lsrs r0, r1, 1 bl sub_808411C adds r7, r0, 0 cmp r7, 0 bgt _0805047A movs r7, 0x1 b _0805047A .align 2, 0 _08050470: .4byte 0xffffe3f8 _08050474: .4byte gUnknown_203B418 _08050478: adds r7, r1, 0 _0805047A: movs r0, 0 mov r8, r0 movs r6, 0 _08050480: movs r5, 0 adds r1, r6, 0x1 mov r9, r1 mov r2, r8 lsls r0, r2, 2 mov r1, sp adds r4, r0, r1 _0805048E: adds r0, r6, 0 adds r1, r5, 0 bl sub_804954C adds r1, r0, 0 ldrh r3, [r1] movs r2, 0x3 ands r2, r3 cmp r2, 0x1 bne _080504F6 ldrb r0, [r1, 0x9] cmp r0, 0xFF beq _080504F6 movs r0, 0x20 ands r0, r3 cmp r0, 0 bne _080504F6 ldrh r1, [r1, 0x4] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _080504F6 ands r2, r1 cmp r2, 0 bne _080504F6 movs r0, 0x8 ands r0, r3 cmp r0, 0 bne _080504F6 movs r2, 0x80 lsls r2, 1 adds r0, r2, 0 ands r0, r3 cmp r0, 0 bne _080504F6 ldr r0, _080506A0 add r0, r10 movs r1, 0 ldrsh r0, [r0, r1] cmp r6, r0 bne _080504EC ldr r0, _080506A4 add r0, r10 movs r2, 0 ldrsh r0, [r0, r2] cmp r5, r0 beq _080504F6 _080504EC: strb r6, [r4] strb r5, [r4, 0x1] adds r4, 0x4 movs r0, 0x1 add r8, r0 _080504F6: adds r5, 0x1 cmp r5, 0x1F ble _0805048E mov r6, r9 cmp r6, 0x37 ble _08050480 mov r1, r8 cmp r1, 0 beq _0805055E ldr r0, _080506A8 ldr r0, [r0] movs r2, 0xD1 lsls r2, 3 adds r0, r2 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 beq _0805051C adds r7, 0x1 _0805051C: cmp r7, 0 beq _0805055E mov r0, sp mov r1, r8 bl sub_804FED0 mov r0, r8 bl sub_8084100 adds r5, r0, 0 cmp r7, 0 ble _0805055E adds r6, r7, 0 lsls r0, r5, 2 mov r2, sp adds r4, r0, r2 _0805053C: ldrb r0, [r4] ldrb r1, [r4, 0x1] bl sub_8049590 ldrh r2, [r0, 0x4] movs r1, 0x8 orrs r1, r2 strh r1, [r0, 0x4] adds r4, 0x4 adds r5, 0x1 cmp r5, r8 bne _08050558 mov r4, sp movs r5, 0 _08050558: subs r6, 0x1 cmp r6, 0 bne _0805053C _0805055E: ldr r0, _080506AC add r0, r10 ldrb r0, [r0] cmp r0, 0 bne _0805056A b _0805068C _0805056A: ldr r0, _080506B0 movs r2, 0 ldrsh r1, [r0, r2] ldr r2, _080506B4 add r2, sp str r1, [r2] movs r0, 0 mov r8, r0 movs r1, 0xE0 lsls r1, 5 add r1, sp ldr r1, [r1] cmp r1, 0 beq _0805058A movs r0, 0x3 str r0, [r2] _0805058A: ldr r1, _080506B4 add r1, sp ldr r1, [r1] lsls r0, r1, 1 adds r0, r1 lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 ldr r1, _080506B4 add r1, sp str r0, [r1] movs r6, 0 _080505A2: movs r5, 0 adds r2, r6, 0x1 mov r9, r2 mov r1, r8 lsls r0, r1, 2 mov r2, sp adds r4, r0, r2 _080505B0: adds r0, r6, 0 adds r1, r5, 0 bl sub_804954C adds r1, r0, 0 ldrh r2, [r1] movs r0, 0x3 ands r0, r2 cmp r0, 0x1 bne _08050608 ldrb r0, [r1, 0x9] cmp r0, 0xFF beq _08050608 movs r0, 0x20 ands r0, r2 cmp r0, 0 bne _08050608 movs r1, 0x80 lsls r1, 1 adds r0, r1, 0 ands r0, r2 cmp r0, 0 bne _08050608 movs r0, 0x40 ands r0, r2 cmp r0, 0 beq _08050608 ldr r0, _080506A0 add r0, r10 movs r2, 0 ldrsh r0, [r0, r2] cmp r6, r0 bne _080505FE ldr r0, _080506A4 add r0, r10 movs r1, 0 ldrsh r0, [r0, r1] cmp r5, r0 beq _08050608 _080505FE: strb r6, [r4] strb r5, [r4, 0x1] adds r4, 0x4 movs r2, 0x1 add r8, r2 _08050608: adds r5, 0x1 cmp r5, 0x1F ble _080505B0 mov r6, r9 cmp r6, 0x37 ble _080505A2 mov r0, r8 cmp r0, 0 beq _0805068C lsls r4, r0, 3 subs r0, r4, r0 movs r1, 0xA bl __divsi3 adds r5, r0, 0 adds r0, r4, 0 movs r1, 0xA bl __divsi3 adds r1, r0, 0 adds r0, r5, 0 bl sub_808411C adds r7, r0, 0 cmp r7, 0 bne _0805063E movs r7, 0x1 _0805063E: ldr r1, _080506B4 add r1, sp ldr r1, [r1] cmp r7, r1 blt _0805064E ldr r2, _080506B4 add r2, sp ldr r7, [r2] _0805064E: mov r0, sp mov r1, r8 bl sub_804FED0 mov r0, r8 bl sub_8084100 adds r5, r0, 0 cmp r7, 0 ble _0805068C adds r6, r7, 0 lsls r0, r5, 2 mov r1, sp adds r4, r0, r1 _0805066A: ldrb r0, [r4] ldrb r1, [r4, 0x1] bl sub_8049590 ldrh r2, [r0, 0x4] movs r1, 0x8 orrs r1, r2 strh r1, [r0, 0x4] adds r4, 0x4 adds r5, 0x1 cmp r5, r8 bne _08050686 mov r4, sp movs r5, 0 _08050686: subs r6, 0x1 cmp r6, 0 bne _0805066A _0805068C: ldr r3, _080506B8 add sp, r3 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080506A0: .4byte 0x0000e218 _080506A4: .4byte 0x0000e21a _080506A8: .4byte gUnknown_203B418 _080506AC: .4byte 0x00003a08 _080506B0: .4byte gUnknown_80F4DA4 _080506B4: .4byte 0x00001c04 _080506B8: .4byte 0x00001c08 thumb_func_end sub_8050438 thumb_func_start sub_80506BC sub_80506BC: push {lr} adds r3, r0, 0 movs r2, 0x1 ldrh r1, [r3] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _080506CE movs r2, 0 _080506CE: movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080506D8 movs r2, 0 _080506D8: cmp r2, 0 beq _080506E6 ldr r0, _080506EC ands r0, r1 movs r1, 0x2 orrs r0, r1 strh r0, [r3] _080506E6: pop {r0} bx r0 .align 2, 0 _080506EC: .4byte 0x0000fffc thumb_func_end sub_80506BC thumb_func_start sub_80506F0 sub_80506F0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xA4 str r1, [sp, 0x64] ldrb r1, [r1, 0xD] ands r1, r0 cmp r1, 0 bne _08050708 b _08050C20 _08050708: ldr r4, _08050738 movs r0, 0x8 bl sub_8084100 lsls r0, 2 adds r0, r4 ldr r4, [r0] cmp r4, 0 bne _0805071C b _08050A7C _0805071C: movs r0, 0x64 bl sub_8084100 cmp r0, 0x31 bgt _0805073C movs r0, 0x1 str r0, [sp, 0x74] movs r1, 0x1F mov r10, r1 movs r2, 0x1 negs r2, r2 str r2, [sp, 0x70] b _08050746 .align 2, 0 _08050738: .4byte gUnknown_80F6DF8 _0805073C: movs r0, 0 str r0, [sp, 0x74] mov r10, r0 movs r1, 0x1 str r1, [sp, 0x70] _08050746: movs r0, 0x32 bl sub_8084100 adds r0, 0xA str r0, [sp, 0x78] movs r0, 0x2 movs r1, 0x36 bl sub_808411C mov r9, r0 movs r2, 0 str r2, [sp, 0x6C] subs r4, 0x1 str r4, [sp, 0x98] _08050762: movs r0, 0x6 bl sub_8084100 adds r0, 0x2 str r0, [sp, 0x68] cmp r0, 0 bne _08050772 b _08050A38 _08050772: mov r0, r9 cmp r0, 0x37 bhi _080507B8 mov r1, r10 bl sub_804954C ldrh r1, [r0] movs r0, 0x3 ands r0, r1 cmp r0, 0x2 bne _0805078A b _08050A74 _0805078A: mov r1, r9 cmp r1, 0 blt _080507A2 mov r2, r10 cmp r2, 0 blt _080507A2 mov r0, r9 cmp r0, 0x37 bgt _080507A2 mov r1, r10 cmp r1, 0x1F ble _080507A6 _080507A2: movs r0, 0x1 b _080507A8 _080507A6: movs r0, 0 _080507A8: cmp r0, 0 bne _080507B8 mov r0, r9 mov r1, r10 bl sub_8049590 bl sub_80506BC _080507B8: ldr r2, [sp, 0x68] subs r2, 0x1 str r2, [sp, 0x68] ldr r0, [sp, 0x6C] add r9, r0 ldr r1, [sp, 0x70] add r10, r1 mov r2, r10 cmp r2, 0x1F bls _080507CE b _08050A38 _080507CE: ldr r0, [sp, 0x78] subs r0, 0x1 str r0, [sp, 0x78] cmp r0, 0 beq _080507DA b _08050A30 _080507DA: movs r1, 0x3F str r1, [sp, 0x7C] _080507DE: movs r0, 0x7 bl sub_8084100 subs r0, 0x3 str r0, [sp, 0x84] movs r0, 0x7 bl sub_8084100 subs r1, r0, 0x3 ldr r6, [sp, 0x84] add r6, r9 subs r0, r6, 0x2 cmp r0, 0x33 bhi _080508DA mov r2, r10 adds r5, r1, r2 cmp r5, 0x1 ble _080508DA cmp r5, 0x1D bgt _080508DA adds r4, r6, 0x1 adds r0, r5, 0x1 mov r8, r0 adds r0, r4, 0 mov r1, r8 bl sub_804954C ldrh r1, [r0] movs r2, 0x3 adds r0, r2, 0 ands r0, r1 cmp r0, 0x2 beq _080508B2 adds r0, r4, 0 adds r1, r5, 0 str r2, [sp, 0x9C] bl sub_804954C ldrh r1, [r0] ldr r2, [sp, 0x9C] adds r0, r2, 0 ands r0, r1 cmp r0, 0x2 beq _080508B2 subs r7, r5, 0x1 adds r0, r4, 0 adds r1, r7, 0 bl sub_804954C ldrh r1, [r0] ldr r2, [sp, 0x9C] adds r0, r2, 0 ands r0, r1 cmp r0, 0x2 beq _080508B2 adds r0, r6, 0 mov r1, r8 bl sub_804954C ldrh r1, [r0] ldr r2, [sp, 0x9C] adds r0, r2, 0 ands r0, r1 cmp r0, 0x2 beq _080508B2 adds r0, r6, 0 adds r1, r7, 0 bl sub_804954C ldrh r1, [r0] ldr r2, [sp, 0x9C] adds r0, r2, 0 ands r0, r1 cmp r0, 0x2 beq _080508B2 subs r4, r6, 0x1 adds r0, r4, 0 mov r1, r8 bl sub_804954C ldrh r1, [r0] ldr r2, [sp, 0x9C] adds r0, r2, 0 ands r0, r1 cmp r0, 0x2 beq _080508B2 adds r0, r4, 0 adds r1, r5, 0 bl sub_804954C ldrh r1, [r0] ldr r2, [sp, 0x9C] adds r0, r2, 0 ands r0, r1 cmp r0, 0x2 beq _080508B2 adds r0, r4, 0 adds r1, r7, 0 bl sub_804954C ldrh r1, [r0] ldr r2, [sp, 0x9C] adds r0, r2, 0 ands r0, r1 cmp r0, 0x2 bne _080508DA _080508B2: ldr r0, [sp, 0x84] add r0, r9 cmp r0, 0 blt _080508C6 cmp r5, 0 blt _080508C6 cmp r0, 0x37 bgt _080508C6 cmp r5, 0x1F ble _080508CA _080508C6: movs r1, 0x1 b _080508CC _080508CA: movs r1, 0 _080508CC: cmp r1, 0 bne _080508DA adds r1, r5, 0 bl sub_8049590 bl sub_80506BC _080508DA: ldr r1, [sp, 0x7C] subs r1, 0x1 str r1, [sp, 0x7C] cmp r1, 0 blt _080508E6 b _080507DE _080508E6: movs r0, 0x3 negs r0, r0 _080508EA: movs r2, 0x3 negs r2, r2 str r2, [sp, 0x80] mov r1, r9 adds r1, r0, r1 str r1, [sp, 0x90] adds r0, 0x1 str r0, [sp, 0x8C] adds r7, r1, 0 mov r5, r10 subs r5, 0x3 _08050900: movs r6, 0 subs r0, r7, 0x2 cmp r0, 0x33 bls _0805090A b _08050A1A _0805090A: str r5, [sp, 0x88] str r5, [sp, 0x94] cmp r5, 0x1 bgt _08050914 b _08050A1A _08050914: cmp r5, 0x1D ble _0805091A b _08050A1A _0805091A: adds r4, r7, 0x1 adds r3, r5, 0x1 adds r0, r4, 0 adds r1, r3, 0 str r3, [sp, 0xA0] bl sub_804954C ldrh r1, [r0] movs r2, 0x3 mov r8, r2 mov r0, r8 ands r0, r1 ldr r3, [sp, 0xA0] cmp r0, 0x2 bne _0805093A movs r6, 0x1 _0805093A: adds r0, r4, 0 adds r1, r5, 0 str r3, [sp, 0xA0] bl sub_804954C ldrh r1, [r0] mov r0, r8 ands r0, r1 ldr r3, [sp, 0xA0] cmp r0, 0x2 bne _08050952 adds r6, 0x1 _08050952: subs r2, r5, 0x1 adds r0, r4, 0 adds r1, r2, 0 str r2, [sp, 0x9C] str r3, [sp, 0xA0] bl sub_804954C ldrh r1, [r0] mov r0, r8 ands r0, r1 ldr r2, [sp, 0x9C] ldr r3, [sp, 0xA0] cmp r0, 0x2 bne _08050970 adds r6, 0x1 _08050970: adds r0, r7, 0 adds r1, r3, 0 str r2, [sp, 0x9C] str r3, [sp, 0xA0] bl sub_804954C ldrh r1, [r0] mov r0, r8 ands r0, r1 ldr r2, [sp, 0x9C] ldr r3, [sp, 0xA0] cmp r0, 0x2 bne _0805098C adds r6, 0x1 _0805098C: adds r0, r7, 0 adds r1, r2, 0 str r2, [sp, 0x9C] str r3, [sp, 0xA0] bl sub_804954C ldrh r1, [r0] mov r0, r8 ands r0, r1 ldr r2, [sp, 0x9C] ldr r3, [sp, 0xA0] cmp r0, 0x2 bne _080509A8 adds r6, 0x1 _080509A8: subs r4, r7, 0x1 adds r0, r4, 0 adds r1, r3, 0 str r2, [sp, 0x9C] bl sub_804954C ldrh r1, [r0] mov r0, r8 ands r0, r1 ldr r2, [sp, 0x9C] cmp r0, 0x2 bne _080509C2 adds r6, 0x1 _080509C2: adds r0, r4, 0 adds r1, r5, 0 str r2, [sp, 0x9C] bl sub_804954C ldrh r1, [r0] mov r0, r8 ands r0, r1 ldr r2, [sp, 0x9C] cmp r0, 0x2 bne _080509DA adds r6, 0x1 _080509DA: adds r0, r4, 0 adds r1, r2, 0 bl sub_804954C ldrh r1, [r0] mov r0, r8 ands r0, r1 cmp r0, 0x2 bne _080509EE adds r6, 0x1 _080509EE: cmp r6, 0x3 ble _08050A1A cmp r7, 0 blt _08050A04 cmp r5, 0 blt _08050A04 cmp r7, 0x37 bgt _08050A04 ldr r0, [sp, 0x88] cmp r0, 0x1F ble _08050A08 _08050A04: movs r0, 0x1 b _08050A0A _08050A08: movs r0, 0 _08050A0A: cmp r0, 0 bne _08050A1A ldr r0, [sp, 0x90] ldr r1, [sp, 0x94] bl sub_8049590 bl sub_80506BC _08050A1A: adds r5, 0x1 ldr r1, [sp, 0x80] adds r1, 0x1 str r1, [sp, 0x80] cmp r1, 0x3 bgt _08050A28 b _08050900 _08050A28: ldr r0, [sp, 0x8C] cmp r0, 0x3 bgt _08050A30 b _080508EA _08050A30: ldr r2, [sp, 0x68] cmp r2, 0 beq _08050A38 b _08050772 _08050A38: ldr r0, [sp, 0x6C] cmp r0, 0 beq _08050A54 movs r1, 0x1 str r1, [sp, 0x70] ldr r2, [sp, 0x74] cmp r2, 0 beq _08050A4E movs r0, 0x1 negs r0, r0 str r0, [sp, 0x70] _08050A4E: movs r1, 0 str r1, [sp, 0x6C] b _08050A6C _08050A54: movs r0, 0x64 bl sub_8084100 movs r2, 0x1 str r2, [sp, 0x6C] cmp r0, 0x31 bgt _08050A68 movs r0, 0x1 negs r0, r0 str r0, [sp, 0x6C] _08050A68: movs r1, 0 str r1, [sp, 0x70] _08050A6C: mov r2, r10 cmp r2, 0x1F bhi _08050A74 b _08050762 _08050A74: ldr r4, [sp, 0x98] cmp r4, 0 beq _08050A7C b _0805071C _08050A7C: movs r0, 0 ldr r1, [sp, 0x64] ldrb r1, [r1, 0x15] cmp r0, r1 blt _08050A88 b _08050BAE _08050A88: movs r2, 0 mov r8, r2 mov r9, r2 movs r5, 0 adds r0, 0x1 mov r10, r0 b _08050A98 _08050A96: adds r5, 0x1 _08050A98: cmp r5, 0xC7 bgt _08050AC2 movs r0, 0 movs r1, 0x38 bl sub_808411C mov r9, r0 movs r0, 0 movs r1, 0x20 bl sub_808411C mov r8, r0 mov r0, r9 subs r0, 0x1 cmp r0, 0x35 bhi _08050A96 mov r0, r8 cmp r0, 0 ble _08050A96 cmp r0, 0x1E bgt _08050A96 _08050AC2: cmp r5, 0xC8 beq _08050BA2 movs r7, 0 movs r3, 0x1 movs r1, 0 _08050ACC: movs r2, 0 lsls r0, r7, 2 adds r4, r7, 0x1 adds r0, r7 lsls r0, 1 add r0, sp _08050AD8: cmp r7, 0 beq _08050AE8 cmp r7, 0x9 beq _08050AE8 cmp r2, 0 beq _08050AE8 cmp r2, 0x9 bne _08050AEC _08050AE8: strb r3, [r0] b _08050AEE _08050AEC: strb r1, [r0] _08050AEE: adds r0, 0x1 adds r2, 0x1 cmp r2, 0x9 ble _08050AD8 adds r7, r4, 0 cmp r7, 0x9 ble _08050ACC movs r5, 0x4F _08050AFE: movs r0, 0x8 bl sub_8084100 adds r4, r0, 0 adds r7, r4, 0x1 movs r0, 0x8 bl sub_8084100 adds r2, r0, 0x1 lsls r0, r4, 2 adds r0, r4 lsls r0, 1 adds r0, r2, r0 add r0, sp ldrb r0, [r0] cmp r0, 0 bne _08050B50 adds r1, r7, 0x1 lsls r0, r1, 2 adds r0, r1 lsls r0, 1 adds r0, r2, r0 add r0, sp ldrb r0, [r0] cmp r0, 0 bne _08050B50 lsls r0, r7, 2 adds r0, r7 lsls r1, r0, 1 subs r0, r1, 0x1 adds r0, r2, r0 add r0, sp ldrb r0, [r0] cmp r0, 0 bne _08050B50 adds r0, r1, 0x1 adds r0, r2, r0 add r0, sp ldrb r0, [r0] cmp r0, 0 beq _08050B60 _08050B50: lsls r0, r7, 2 adds r0, r7 lsls r0, 1 adds r0, r2, r0 mov r2, sp adds r1, r2, r0 movs r0, 0x1 strb r0, [r1] _08050B60: subs r5, 0x1 cmp r5, 0 bge _08050AFE movs r7, 0 _08050B68: lsls r0, r7, 2 adds r4, r7, 0x1 adds r0, r7 lsls r0, 1 mov r6, r8 subs r6, 0x5 mov r1, sp adds r5, r0, r1 add r7, r9 movs r2, 0x9 _08050B7C: ldrb r0, [r5] cmp r0, 0 bne _08050B92 subs r0, r7, 0x5 adds r1, r6, 0 str r2, [sp, 0x9C] bl sub_8049590 bl sub_80506BC ldr r2, [sp, 0x9C] _08050B92: adds r6, 0x1 adds r5, 0x1 subs r2, 0x1 cmp r2, 0 bge _08050B7C adds r7, r4, 0 cmp r7, 0x9 ble _08050B68 _08050BA2: mov r0, r10 ldr r2, [sp, 0x64] ldrb r2, [r2, 0x15] cmp r0, r2 bge _08050BAE b _08050A88 _08050BAE: movs r0, 0 mov r9, r0 movs r6, 0x1 ldr r1, _08050BF4 adds r5, r1, 0 _08050BB8: movs r2, 0 mov r10, r2 mov r4, r9 adds r4, 0x1 _08050BC0: mov r0, r9 mov r1, r10 bl sub_8049590 adds r2, r0, 0 ldrh r3, [r2] movs r0, 0x3 ands r0, r3 cmp r0, 0x2 bne _08050C10 movs r1, 0xB0 lsls r1, 1 adds r0, r1, 0 ands r0, r3 cmp r0, 0 bne _08050BEA ldrh r1, [r2, 0x4] adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _08050BF8 _08050BEA: adds r0, r3, 0 ands r0, r5 orrs r0, r6 b _08050C0E .align 2, 0 _08050BF4: .4byte 0x0000fffc _08050BF8: mov r0, r9 subs r0, 0x2 cmp r0, 0x34 bhi _08050C0A mov r0, r10 cmp r0, 0x1 ble _08050C0A cmp r0, 0x1E ble _08050C10 _08050C0A: ldrh r0, [r2] ands r0, r5 _08050C0E: strh r0, [r2] _08050C10: movs r1, 0x1 add r10, r1 mov r2, r10 cmp r2, 0x1F ble _08050BC0 mov r9, r4 cmp r4, 0x37 ble _08050BB8 _08050C20: add sp, 0xA4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80506F0 thumb_func_start sub_8050C30 sub_8050C30: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r4, _08050F3C add sp, r4 mov r8, r0 mov r9, r1 lsls r2, 24 lsrs r2, 24 movs r0, 0xE0 lsls r0, 3 add r0, sp str r2, [r0] movs r7, 0 mov r1, r8 lsls r1, 5 movs r2, 0xE2 lsls r2, 3 add r2, sp str r1, [r2] _08050C5C: movs r6, 0 lsls r2, r7, 5 adds r3, r7, 0x1 mov r10, r3 mov r5, sp adds r4, r2, r5 _08050C68: adds r0, r7, 0 adds r1, r6, 0 bl sub_8049590 adds r2, r0, 0 ldrh r0, [r2] movs r3, 0x3 ands r3, r0 movs r0, 0 strb r0, [r4] movs r0, 0xE0 lsls r0, 3 add r0, sp ldr r0, [r0] cmp r0, 0 beq _08050C92 ldrh r0, [r2] ldr r5, _08050F40 adds r1, r5, 0 ands r0, r1 strh r0, [r2] _08050C92: cmp r3, 0x1 beq _08050CA8 ldrh r1, [r2] movs r0, 0x4 ands r0, r1 cmp r0, 0 bne _08050CA8 ldrb r0, [r4] movs r1, 0x1 orrs r0, r1 strb r0, [r4] _08050CA8: cmp r3, 0x2 bne _08050CBE ldrh r1, [r2] movs r0, 0x4 ands r0, r1 cmp r0, 0 bne _08050CBE ldrb r0, [r4] movs r1, 0x2 orrs r0, r1 strb r0, [r4] _08050CBE: adds r4, 0x1 adds r6, 0x1 cmp r6, 0x1F ble _08050C68 mov r7, r10 cmp r7, 0x37 ble _08050C5C movs r1, 0xE2 lsls r1, 3 add r1, sp ldr r0, [r1] add r0, r9 mov r3, sp adds r2, r3, r0 ldrb r1, [r2] movs r0, 0x50 orrs r0, r1 strb r0, [r2] ldr r0, _08050F44 ldr r1, [r0] ldr r5, _08050F48 adds r0, r1, r5 movs r2, 0 ldrsh r0, [r0, r2] cmp r0, r8 beq _08050CF4 b _08050F36 _08050CF4: ldr r3, _08050F4C adds r0, r1, r3 movs r5, 0 ldrsh r0, [r0, r5] cmp r0, r9 beq _08050D02 b _08050F36 _08050D02: ldr r1, _08050F50 movs r0, 0 str r0, [r1] movs r0, 0x40 mov r9, r0 _08050D0C: movs r1, 0 ldr r2, _08050F54 add r2, sp str r1, [r2] ldr r3, _08050F50 ldr r0, [r3] adds r0, 0x1 str r0, [r3] movs r7, 0 _08050D1E: movs r6, 0 lsls r2, r7, 5 adds r5, r7, 0x1 mov r10, r5 subs r0, r7, 0x1 movs r1, 0xE1 lsls r1, 3 add r1, sp str r0, [r1] lsls r0, 5 mov r1, sp subs r1, 0x1 adds r5, r2, r1 add r0, sp mov r8, r0 mov r2, r10 ldr r3, _08050F58 add r3, sp str r2, [r3] lsls r0, r2, 5 add r0, sp mov r12, r0 _08050D4A: ldrb r1, [r5, 0x1] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08050D56 b _08050EDA _08050D56: movs r3, 0x40 mov r0, r9 ands r0, r1 cmp r0, 0 bne _08050D62 b _08050EDA _08050D62: ldr r2, _08050F54 add r2, sp ldr r0, [r2] adds r0, 0x1 str r0, [r2] movs r0, 0xBF ands r0, r1 movs r2, 0 movs r1, 0x80 orrs r0, r1 strb r0, [r5, 0x1] cmp r7, 0 ble _08050D90 mov r0, r8 ldrb r1, [r0] movs r0, 0x83 ands r0, r1 cmp r0, 0 bne _08050D90 adds r0, r1, 0 orrs r0, r3 mov r1, r8 strb r0, [r1] _08050D90: cmp r6, 0 ble _08050DA4 ldrb r1, [r5] movs r0, 0x83 ands r0, r1 cmp r0, 0 bne _08050DA4 mov r0, r9 orrs r0, r1 strb r0, [r5] _08050DA4: cmp r7, 0x36 bgt _08050DBA mov r2, r12 ldrb r1, [r2] movs r0, 0x83 ands r0, r1 cmp r0, 0 bne _08050DBA mov r0, r9 orrs r0, r1 strb r0, [r2] _08050DBA: cmp r6, 0x1E bgt _08050DCE ldrb r1, [r5, 0x2] movs r0, 0x83 ands r0, r1 cmp r0, 0 bne _08050DCE mov r0, r9 orrs r0, r1 strb r0, [r5, 0x2] _08050DCE: cmp r7, 0 ble _08050E12 cmp r6, 0 ble _08050E12 movs r3, 0xE1 lsls r3, 3 add r3, sp ldr r3, [r3] lsls r1, r3, 5 subs r0, r1, 0x1 adds r0, r6, r0 mov r2, sp adds r4, r2, r0 ldrb r3, [r4] movs r0, 0x87 ands r0, r3 cmp r0, 0 bne _08050E12 adds r0, r6, r1 add r0, sp ldrb r1, [r0] movs r2, 0x1 adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _08050E12 ldrb r1, [r5] adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _08050E12 mov r0, r9 orrs r0, r3 strb r0, [r4] _08050E12: cmp r7, 0x36 bgt _08050E54 cmp r6, 0 ble _08050E54 ldr r3, _08050F58 add r3, sp ldr r3, [r3] lsls r1, r3, 5 subs r0, r1, 0x1 adds r0, r6, r0 mov r2, sp adds r4, r2, r0 ldrb r3, [r4] movs r0, 0x87 ands r0, r3 cmp r0, 0 bne _08050E54 adds r0, r6, r1 add r0, sp ldrb r1, [r0] movs r2, 0x1 adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _08050E54 ldrb r1, [r5] adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _08050E54 mov r0, r9 orrs r0, r3 strb r0, [r4] _08050E54: cmp r7, 0 ble _08050E98 cmp r6, 0x1E bgt _08050E98 movs r3, 0xE1 lsls r3, 3 add r3, sp ldr r3, [r3] lsls r1, r3, 5 adds r0, r1, 0x1 adds r0, r6, r0 mov r2, sp adds r4, r2, r0 ldrb r3, [r4] movs r0, 0x87 ands r0, r3 cmp r0, 0 bne _08050E98 adds r0, r6, r1 add r0, sp ldrb r1, [r0] movs r2, 0x1 adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _08050E98 ldrb r1, [r5, 0x2] adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _08050E98 mov r0, r9 orrs r0, r3 strb r0, [r4] _08050E98: cmp r7, 0x36 bgt _08050EDA cmp r6, 0x1E bgt _08050EDA ldr r3, _08050F58 add r3, sp ldr r3, [r3] lsls r1, r3, 5 adds r0, r1, 0x1 adds r0, r6, r0 mov r2, sp adds r4, r2, r0 ldrb r3, [r4] movs r0, 0x87 ands r0, r3 cmp r0, 0 bne _08050EDA adds r0, r6, r1 add r0, sp ldrb r1, [r0] movs r2, 0x1 adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _08050EDA ldrb r1, [r5, 0x2] adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _08050EDA mov r0, r9 orrs r0, r3 strb r0, [r4] _08050EDA: adds r5, 0x1 movs r3, 0x1 add r8, r3 add r12, r3 adds r6, 0x1 cmp r6, 0x1F bgt _08050EEA b _08050D4A _08050EEA: mov r7, r10 cmp r7, 0x37 bgt _08050EF2 b _08050D1E _08050EF2: ldr r5, _08050F54 add r5, sp ldr r5, [r5] cmp r5, 0 beq _08050EFE b _08050D0C _08050EFE: movs r7, 0 _08050F00: movs r6, 0 lsls r2, r7, 5 mov r0, sp adds r4, r2, r0 _08050F08: adds r0, r7, 0 adds r1, r6, 0 bl sub_8049590 adds r2, r0, 0 ldrb r1, [r4] movs r0, 0x87 ands r0, r1 cmp r0, 0 bne _08050F68 movs r1, 0xE0 lsls r1, 3 add r1, sp ldr r1, [r1] cmp r1, 0 bne _08050F5C ldrh r0, [r2] movs r2, 0x80 lsls r2, 1 adds r1, r2, 0 ands r0, r1 cmp r0, 0 bne _08050F68 _08050F36: movs r0, 0 b _08050F78 .align 2, 0 _08050F3C: .4byte 0xfffff8ec _08050F40: .4byte 0x00007fff _08050F44: .4byte gUnknown_203B418 _08050F48: .4byte 0x0000e21c _08050F4C: .4byte 0x0000e21e _08050F50: .4byte gUnknown_202F1D4 _08050F54: .4byte 0x00000704 _08050F58: .4byte 0x0000070c _08050F5C: ldrh r1, [r2] movs r3, 0x80 lsls r3, 8 adds r0, r3, 0 orrs r0, r1 strh r0, [r2] _08050F68: adds r4, 0x1 adds r6, 0x1 cmp r6, 0x1F ble _08050F08 adds r7, 0x1 cmp r7, 0x37 ble _08050F00 movs r0, 0x1 _08050F78: ldr r3, _08050F8C add sp, r3 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08050F8C: .4byte 0x00000714 thumb_func_end sub_8050C30 thumb_func_start sub_8050F90 sub_8050F90: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x3C str r0, [sp] str r1, [sp, 0x4] str r2, [sp, 0x8] str r3, [sp, 0xC] movs r0, 0 str r0, [sp, 0x10] movs r1, 0 str r1, [sp, 0x14] movs r2, 0 b _080511D0 _08050FB0: movs r4, 0 str r4, [sp, 0x18] ldr r5, [sp, 0x1C] adds r5, 0x1 str r5, [sp, 0x28] ldr r6, [sp, 0x4] cmp r4, r6 blt _08050FC2 b _080511CE _08050FC2: ldr r1, [sp, 0x18] lsls r0, r1, 2 ldr r2, [sp, 0xC] adds r0, r2 ldr r3, [r0] adds r4, r3, 0x2 mov r9, r4 ldr r5, [sp, 0x1C] lsls r1, r5, 2 ldr r6, [sp, 0x5C] adds r1, r6 ldr r2, [r1] adds r4, r2, 0x2 mov r10, r4 ldr r0, [r0, 0x4] subs r0, r3 subs r4, r0, 0x4 ldr r0, [r1, 0x4] subs r0, r2 subs r7, r0, 0x4 movs r3, 0x5 movs r5, 0x5 ldr r6, [sp, 0x4] cmp r6, 0x2 bgt _08050FF8 movs r3, 0xA movs r4, 0xE _08050FF8: ldr r0, [sp, 0x8] cmp r0, 0x1 bne _08051002 movs r5, 0x10 movs r7, 0x18 _08051002: ldr r2, [sp, 0x1C] lsls r1, r2, 5 ldr r6, [sp, 0x18] lsls r2, r6, 4 subs r0, r2, r6 lsls r0, 5 ldr r6, [sp] adds r0, r6 adds r6, r1, r0 ldrb r0, [r6, 0xA] str r1, [sp, 0x30] str r2, [sp, 0x2C] cmp r0, 0 bne _08051020 b _08051130 _08051020: ldr r0, [sp, 0x14] ldr r1, [sp, 0x60] cmp r0, r1 beq _0805108C adds r0, r3, 0 adds r1, r4, 0 bl sub_808411C adds r6, r0, 0 adds r0, r5, 0 adds r1, r7, 0 bl sub_808411C adds r5, r0, 0 movs r1, 0x1 adds r0, r6, 0 orrs r0, r1 cmp r0, r4 bge _08051048 adds r6, r0, 0 _08051048: adds r0, r5, 0 orrs r0, r1 cmp r0, r7 bge _08051052 adds r5, r0, 0 _08051052: lsls r0, r5, 1 adds r0, r5 lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 cmp r6, r0 ble _08051062 adds r6, r0, 0 _08051062: lsls r0, r6, 1 adds r0, r6 lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 cmp r5, r0 ble _08051072 adds r5, r0, 0 _08051072: subs r0, r4, r6 bl sub_8084100 mov r2, r9 adds r4, r0, r2 subs r0, r7, r5 bl sub_8084100 mov r3, r10 adds r7, r0, r3 adds r3, r4, r6 adds r6, r7, r5 b _08051098 _0805108C: mov r4, r9 mov r7, r10 ldr r5, [sp, 0x64] adds r3, r4, r5 ldr r0, [sp, 0x68] adds r6, r7, r0 _08051098: ldr r1, [sp, 0x2C] ldr r2, [sp, 0x18] subs r0, r1, r2 lsls r0, 5 ldr r5, [sp] adds r0, r5 ldr r1, [sp, 0x30] adds r0, r1, r0 strh r4, [r0] strh r3, [r0, 0x4] strh r7, [r0, 0x2] strh r6, [r0, 0x6] adds r5, r4, 0 ldr r2, [sp, 0x10] adds r2, 0x1 str r2, [sp, 0x20] ldr r4, [sp, 0x14] adds r4, 0x1 str r4, [sp, 0x24] ldr r0, [sp, 0x18] adds r0, 0x1 mov r10, r0 cmp r5, r3 bge _08051108 _080510C8: adds r4, r7, 0 adds r1, r5, 0x1 mov r8, r1 cmp r4, r6 bge _08051102 ldr r2, _0805112C mov r9, r2 _080510D6: adds r0, r5, 0 adds r1, r4, 0 str r3, [sp, 0x38] bl sub_8049590 ldrh r1, [r0] mov r2, r9 ands r1, r2 movs r2, 0x1 orrs r1, r2 strh r1, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_8049590 mov r1, sp ldrb r1, [r1, 0x10] strb r1, [r0, 0x9] adds r4, 0x1 ldr r3, [sp, 0x38] cmp r4, r6 blt _080510D6 _08051102: mov r5, r8 cmp r5, r3 blt _080510C8 _08051108: ldr r2, [sp, 0x14] ldr r3, [sp, 0x60] cmp r2, r3 beq _08051124 ldr r4, [sp, 0x2C] ldr r5, [sp, 0x18] subs r0, r4, r5 lsls r0, 5 ldr r6, [sp] adds r0, r6 ldr r1, [sp, 0x30] adds r0, r1, r0 movs r1, 0x1 strb r1, [r0, 0x1D] _08051124: ldr r2, [sp, 0x20] str r2, [sp, 0x10] b _080511BE .align 2, 0 _0805112C: .4byte 0x0000fffc _08051130: movs r1, 0x2 movs r3, 0x4 movs r2, 0x2 mov r8, r3 ldr r5, [sp, 0x18] cmp r5, 0 bne _08051140 movs r1, 0x1 _08051140: ldr r0, [sp, 0x1C] cmp r0, 0 bne _08051148 movs r2, 0x1 _08051148: ldr r0, [sp, 0x4] subs r0, 0x1 ldr r5, [sp, 0x18] cmp r5, r0 bne _08051154 movs r3, 0x2 _08051154: ldr r0, [sp, 0x8] subs r0, 0x1 ldr r5, [sp, 0x1C] cmp r5, r0 bne _08051162 movs r0, 0x2 mov r8, r0 _08051162: mov r5, r9 adds r0, r5, r1 adds r1, r5, r4 subs r1, r3 str r2, [sp, 0x34] bl sub_808411C adds r5, r0, 0 ldr r2, [sp, 0x34] mov r1, r10 adds r0, r1, r2 adds r1, r7 mov r2, r8 subs r1, r2 bl sub_808411C adds r4, r0, 0 strh r5, [r6] adds r0, r5, 0x1 strh r0, [r6, 0x4] strh r4, [r6, 0x2] adds r0, r4, 0x1 strh r0, [r6, 0x6] adds r0, r5, 0 adds r1, r4, 0 bl sub_8049590 ldrh r1, [r0] ldr r3, _080511EC adds r2, r3, 0 ands r1, r2 movs r2, 0x1 orrs r1, r2 strh r1, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_8049590 movs r1, 0xFF strb r1, [r0, 0x9] ldr r4, [sp, 0x14] adds r4, 0x1 str r4, [sp, 0x24] ldr r5, [sp, 0x18] adds r5, 0x1 mov r10, r5 _080511BE: ldr r6, [sp, 0x24] str r6, [sp, 0x14] mov r0, r10 str r0, [sp, 0x18] ldr r1, [sp, 0x4] cmp r0, r1 bge _080511CE b _08050FC2 _080511CE: ldr r2, [sp, 0x28] _080511D0: str r2, [sp, 0x1C] ldr r3, [sp, 0x8] cmp r2, r3 bge _080511DA b _08050FB0 _080511DA: add sp, 0x3C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080511EC: .4byte 0x0000fffc thumb_func_end sub_8050F90 thumb_func_start sub_80511F0 sub_80511F0: push {r4-r6,lr} ldr r6, _08051204 ldrb r0, [r6] cmp r0, 0 beq _0805120C subs r0, 0x1 strb r0, [r6] ldr r0, _08051208 ldrb r0, [r0] b _08051244 .align 2, 0 _08051204: .4byte gUnknown_202F1E1 _08051208: .4byte gUnknown_202F1E0 _0805120C: ldr r1, _0805122C ldr r5, _08051230 ldr r2, [r5] ldrb r3, [r2] strb r3, [r1] adds r4, r2, 0x1 str r4, [r5] lsls r0, r3, 24 lsrs r0, 24 cmp r0, 0xE bne _08051234 ldrb r0, [r2, 0x1] strb r0, [r1] adds r0, r4, 0x1 str r0, [r5] b _08051242 .align 2, 0 _0805122C: .4byte gUnknown_202F1E0 _08051230: .4byte gUnknown_202F1DC _08051234: movs r0, 0xF ands r0, r3 strb r0, [r6] movs r0, 0xF0 ands r0, r3 lsrs r0, 4 strb r0, [r1] _08051242: ldrb r0, [r1] _08051244: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80511F0 thumb_func_start sub_805124C sub_805124C: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 ldr r5, [sp, 0x1C] lsls r1, 24 lsrs r1, 24 lsls r5, 24 lsrs r5, 24 ldrh r6, [r0] movs r7, 0x80 lsls r7, 1 adds r4, r7, 0 movs r7, 0 mov r8, r7 orrs r4, r6 strh r4, [r0] mov r4, r8 strb r4, [r0, 0xE] str r5, [sp] bl sub_8051A74 lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_805124C thumb_func_start sub_8051288 sub_8051288: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC str r0, [sp, 0x4] ldr r0, _08051374 ldr r7, [r0] ldr r0, _08051378 adds r3, r7, r0 ldr r0, [r3] ldr r0, [r0, 0x4] ldr r2, [sp, 0x4] lsls r1, r2, 2 adds r0, r1, r0 ldr r0, [r0] ldrb r2, [r0] mov r10, r2 ldrb r0, [r0, 0x1] mov r9, r0 ldr r2, _0805137C adds r0, r7, r2 movs r4, 0 mov r2, r10 strh r2, [r0] ldr r2, _08051380 adds r0, r7, r2 mov r2, r9 strh r2, [r0] ldr r2, _08051384 ldr r0, [r3] ldr r0, [r0, 0x4] adds r1, r0 ldr r0, [r1] adds r0, 0x3 str r0, [r2] ldr r0, _08051388 strb r4, [r0] movs r6, 0x5 mov r0, r9 adds r0, 0x5 cmp r6, r0 bge _0805132E movs r1, 0x5 add r1, r10 mov r8, r1 str r0, [sp, 0x8] _080512E8: movs r5, 0x5 cmp r5, r8 bge _08051326 _080512EE: bl sub_80511F0 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 adds r1, r6, 0 bl sub_8049590 movs r1, 0x1 str r1, [sp] adds r1, r4, 0 adds r2, r5, 0 adds r3, r6, 0 bl sub_805124C lsls r0, 24 cmp r0, 0 beq _08051320 ldr r2, _0805138C adds r0, r7, r2 strh r5, [r0] ldr r1, _08051390 adds r0, r7, r1 strh r6, [r0] _08051320: adds r5, 0x1 cmp r5, r8 blt _080512EE _08051326: adds r6, 0x1 ldr r2, [sp, 0x8] cmp r6, r2 blt _080512E8 _0805132E: movs r6, 0 ldr r0, _08051394 adds r7, r0, 0 _08051334: movs r5, 0 adds r4, r6, 0x1 _08051338: cmp r5, 0x4 ble _08051350 mov r0, r10 adds r0, 0x5 cmp r5, r0 bge _08051350 cmp r6, 0x4 ble _08051350 mov r0, r9 adds r0, 0x5 cmp r6, r0 blt _080513A0 _08051350: adds r0, r5, 0 adds r1, r6, 0 bl sub_8049590 adds r2, r0, 0 ldrh r1, [r2] movs r0, 0x10 movs r3, 0 orrs r1, r0 strh r1, [r2] ldr r0, _08051398 ldrb r0, [r0] cmp r0, 0 beq _0805139C ands r1, r7 movs r0, 0x3 orrs r1, r0 b _0805139E .align 2, 0 _08051374: .4byte gUnknown_203B418 _08051378: .4byte 0x00013568 _0805137C: .4byte 0x0000e260 _08051380: .4byte 0x0000e262 _08051384: .4byte gUnknown_202F1DC _08051388: .4byte gUnknown_202F1E1 _0805138C: .4byte 0x0000e21c _08051390: .4byte 0x0000e21e _08051394: .4byte 0x0000fffc _08051398: .4byte gUnknown_202F1A8 _0805139C: ands r1, r7 _0805139E: strh r1, [r2] _080513A0: adds r5, 0x1 cmp r5, 0x37 ble _08051338 adds r6, r4, 0 cmp r6, 0x1F ble _08051334 ldr r1, [sp, 0x4] cmp r1, 0x4 bne _080513DA movs r6, 0x5 ldr r2, _0805142C adds r7, r2, 0 _080513B8: movs r5, 0x2 adds r4, r6, 0x1 _080513BC: adds r0, r5, 0 adds r1, r6, 0 bl sub_8049590 ldrh r2, [r0] movs r1, 0x10 orrs r1, r2 ands r1, r7 strh r1, [r0] adds r5, 0x1 cmp r5, 0x4 ble _080513BC adds r6, r4, 0 cmp r6, 0x10 ble _080513B8 _080513DA: ldr r0, _08051430 ldr r0, [r0] ldr r1, _08051434 adds r0, r1 movs r2, 0 ldrsh r0, [r0, r2] cmp r0, 0x3F ble _08051416 movs r6, 0 _080513EC: movs r5, 0 adds r4, r6, 0x1 _080513F0: adds r0, r5, 0 adds r1, r6, 0 bl sub_8049590 adds r2, r0, 0 ldrh r1, [r2] movs r0, 0x3 ands r0, r1 cmp r0, 0 bne _0805140A movs r0, 0x10 orrs r0, r1 strh r0, [r2] _0805140A: adds r5, 0x1 cmp r5, 0x37 ble _080513F0 adds r6, r4, 0 cmp r6, 0x1F ble _080513EC _08051416: bl sub_804E9DC add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0805142C: .4byte 0x0000fffc _08051430: .4byte gUnknown_203B418 _08051434: .4byte 0x00003a0e thumb_func_end sub_8051288 thumb_func_start sub_8051438 sub_8051438: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C mov r9, r0 ldr r0, _080515AC ldr r0, [r0] str r0, [sp, 0x4] ldr r2, _080515B0 ldr r4, _080515B4 adds r3, r0, r4 ldr r0, [r3] ldr r0, [r0, 0x4] lsls r1, 2 adds r0, r1, r0 ldr r0, [r0] adds r0, 0x3 str r0, [r2] ldr r2, _080515B8 movs r0, 0 strb r0, [r2] ldr r0, [r3] ldr r0, [r0, 0x4] adds r1, r0 ldr r0, [r1] ldrb r1, [r0, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0805147A b _080515D8 _0805147A: ldr r5, [sp, 0x4] ldr r0, _080515BC adds r1, r5, r0 mov r2, r9 movs r3, 0 ldrsh r0, [r2, r3] str r0, [r1] ldr r4, _080515C0 adds r1, r5, r4 movs r5, 0x2 ldrsh r0, [r2, r5] str r0, [r1] ldr r0, [sp, 0x4] ldr r2, _080515C4 adds r1, r0, r2 mov r3, r9 movs r4, 0x4 ldrsh r0, [r3, r4] str r0, [r1] ldr r5, [sp, 0x4] ldr r0, _080515C8 adds r1, r5, r0 movs r2, 0x6 ldrsh r0, [r3, r2] str r0, [r1] movs r3, 0 str r3, [sp, 0x8] mov r4, r9 movs r5, 0x2 ldrsh r4, [r4, r5] mov r8, r4 mov r1, r9 movs r2, 0x6 ldrsh r0, [r1, r2] cmp r8, r0 blt _080514C4 b _08051640 _080514C4: mov r3, r9 movs r4, 0 ldrsh r7, [r3, r4] movs r5, 0x4 ldrsh r0, [r3, r5] ldr r1, [sp, 0x8] adds r1, 0x1 str r1, [sp, 0x10] mov r2, r8 adds r2, 0x1 str r2, [sp, 0xC] cmp r7, r0 bge _08051598 ldr r4, _080515CC ldr r3, [sp, 0x4] adds r4, r3, r4 str r4, [sp, 0x14] movs r5, 0 str r5, [sp, 0x18] ldr r0, [sp, 0x8] mov r10, r0 _080514EE: bl sub_80511F0 adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 adds r0, r7, 0 mov r1, r8 bl sub_8049590 adds r6, r0, 0 ldr r1, [sp, 0x4] ldr r2, _080515D0 adds r0, r1, r2 add r0, r10 strb r5, [r0] ldr r3, [sp, 0x8] lsls r4, r3, 1 adds r4, r3 lsls r4, 3 ldr r1, [sp, 0x14] adds r0, r1, r4 movs r2, 0 str r2, [sp] adds r1, r5, 0 adds r2, r7, 0 mov r3, r8 bl sub_805124C ldrb r1, [r6, 0x9] ldr r3, [sp, 0x18] adds r4, r3 ldr r5, [sp, 0x4] adds r4, r5, r4 adds r0, r6, 0 ldr r2, _080515CC adds r4, r2 ldm r4!, {r2,r3,r5} stm r0!, {r2,r3,r5} ldm r4!, {r2,r3,r5} stm r0!, {r2,r3,r5} mov r3, r9 movs r4, 0 ldrsh r0, [r3, r4] adds r0, 0x2 cmp r7, r0 blt _08051572 movs r5, 0x4 ldrsh r0, [r3, r5] subs r0, 0x2 cmp r7, r0 bge _08051572 movs r2, 0x2 ldrsh r0, [r3, r2] adds r0, 0x2 cmp r8, r0 blt _08051572 movs r4, 0x6 ldrsh r0, [r3, r4] subs r0, 0x2 cmp r8, r0 bge _08051572 movs r0, 0x88 lsls r0, 1 strh r0, [r6] movs r0, 0xE strb r0, [r6, 0xE] _08051572: strb r1, [r6, 0x9] ldr r5, [sp, 0x4] ldr r2, _080515D4 adds r0, r5, r2 strb r1, [r0] ldr r3, [sp, 0x14] adds r3, 0xC0 str r3, [sp, 0x14] ldr r4, [sp, 0x18] adds r4, 0xC0 str r4, [sp, 0x18] movs r5, 0x8 add r10, r5 adds r7, 0x1 mov r1, r9 movs r2, 0x4 ldrsh r0, [r1, r2] cmp r7, r0 blt _080514EE _08051598: ldr r3, [sp, 0x10] str r3, [sp, 0x8] ldr r4, [sp, 0xC] mov r8, r4 mov r5, r9 movs r1, 0x6 ldrsh r0, [r5, r1] cmp r8, r0 blt _080514C4 b _08051640 .align 2, 0 _080515AC: .4byte gUnknown_203B418 _080515B0: .4byte gUnknown_202F1DC _080515B4: .4byte 0x00013568 _080515B8: .4byte gUnknown_202F1E1 _080515BC: .4byte 0x0000e250 _080515C0: .4byte 0x0000e254 _080515C4: .4byte 0x0000e258 _080515C8: .4byte 0x0000e25c _080515CC: .4byte 0x0000e27c _080515D0: .4byte 0x0000e87c _080515D4: .4byte 0x0000e8bc _080515D8: mov r2, r9 movs r3, 0x2 ldrsh r2, [r2, r3] mov r8, r2 b _08051636 _080515E2: mov r0, r9 movs r1, 0 ldrsh r7, [r0, r1] movs r2, 0x4 ldrsh r0, [r0, r2] mov r3, r8 adds r3, 0x1 str r3, [sp, 0xC] cmp r7, r0 bge _08051632 _080515F6: bl sub_80511F0 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r7, 0 mov r1, r8 bl sub_8049590 adds r5, r0, 0 ldrb r6, [r5, 0x9] movs r0, 0x1 str r0, [sp] adds r0, r5, 0 adds r1, r4, 0 adds r2, r7, 0 mov r3, r8 bl sub_805124C strb r6, [r5, 0x9] ldr r4, [sp, 0x4] ldr r5, _08051650 adds r0, r4, r5 strb r6, [r0] adds r7, 0x1 mov r1, r9 movs r2, 0x4 ldrsh r0, [r1, r2] cmp r7, r0 blt _080515F6 _08051632: ldr r3, [sp, 0xC] mov r8, r3 _08051636: mov r4, r9 movs r5, 0x6 ldrsh r0, [r4, r5] cmp r8, r0 blt _080515E2 _08051640: add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08051650: .4byte 0x0000e8bc thumb_func_end sub_8051438 thumb_func_start sub_8051654 sub_8051654: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 str r0, [sp] ldr r4, _080516EC ldr r1, [r4, 0x8] ldr r0, [r4] subs r1, r0 subs r1, 0x2 movs r0, 0x3 bl sub_808411C mov r8, r0 cmp r0, 0x2 bgt _0805167C movs r0, 0x3 mov r8, r0 _0805167C: ldr r1, [r4, 0xC] ldr r0, [r4, 0x4] subs r1, r0 subs r1, 0x2 movs r0, 0x3 bl sub_808411C mov r9, r0 cmp r0, 0x2 bgt _08051694 movs r1, 0x3 mov r9, r1 _08051694: movs r0, 0x2 movs r1, 0x4 bl sub_808411C mov r10, r0 movs r5, 0 cmp r5, r10 bge _08051734 ldr r0, [r4, 0x8] ldr r1, [r4] subs r0, r1 cmp r0, r8 ble _08051734 adds r6, r4, 0 _080516B0: movs r0, 0x64 bl sub_8084100 cmp r0, 0x31 bgt _080516F4 ldr r4, [r6, 0x4] ldr r0, [r6, 0xC] adds r7, r5, 0x1 cmp r4, r0 bge _080516E4 ldr r5, _080516EC ldr r0, _080516F0 adds r2, r0, 0 _080516CA: ldr r0, [r5] adds r1, r4, 0 str r2, [sp, 0xC] bl sub_8049590 ldrh r1, [r0] ldr r2, [sp, 0xC] ands r1, r2 strh r1, [r0] adds r4, 0x1 ldr r0, [r5, 0xC] cmp r4, r0 blt _080516CA _080516E4: ldr r0, [r6] adds r0, 0x1 str r0, [r6] b _08051724 .align 2, 0 _080516EC: .4byte gUnknown_202F1B8 _080516F0: .4byte 0x0000ffdf _080516F4: ldr r0, [r6, 0x8] subs r0, 0x1 str r0, [r6, 0x8] ldr r4, [r6, 0x4] ldr r0, [r6, 0xC] adds r7, r5, 0x1 cmp r4, r0 bge _08051724 ldr r5, _08051784 ldr r1, _08051788 adds r2, r1, 0 _0805170A: ldr r0, [r5, 0x8] adds r1, r4, 0 str r2, [sp, 0xC] bl sub_8049590 ldrh r1, [r0] ldr r2, [sp, 0xC] ands r1, r2 strh r1, [r0] adds r4, 0x1 ldr r0, [r5, 0xC] cmp r4, r0 blt _0805170A _08051724: adds r5, r7, 0 cmp r5, r10 bge _08051734 ldr r0, [r6, 0x8] ldr r1, [r6] subs r0, r1 cmp r0, r8 bgt _080516B0 _08051734: movs r5, 0 ldr r3, _08051784 cmp r5, r10 bge _080517CE ldr r0, [r3, 0xC] ldr r1, [r3, 0x4] subs r0, r1 cmp r0, r9 ble _080517CE adds r6, r3, 0 _08051748: movs r0, 0x64 bl sub_8084100 cmp r0, 0x31 bgt _0805178C ldr r4, [r6] ldr r0, [r6, 0x8] adds r7, r5, 0x1 cmp r4, r0 bge _0805177C ldr r5, _08051784 ldr r0, _08051788 adds r2, r0, 0 _08051762: ldr r1, [r5, 0x4] adds r0, r4, 0 str r2, [sp, 0xC] bl sub_8049590 ldrh r1, [r0] ldr r2, [sp, 0xC] ands r1, r2 strh r1, [r0] adds r4, 0x1 ldr r0, [r5, 0x8] cmp r4, r0 blt _08051762 _0805177C: ldr r0, [r6, 0x4] adds r0, 0x1 str r0, [r6, 0x4] b _080517BC .align 2, 0 _08051784: .4byte gUnknown_202F1B8 _08051788: .4byte 0x0000ffdf _0805178C: ldr r0, [r6, 0xC] subs r0, 0x1 str r0, [r6, 0xC] ldr r4, [r6] ldr r0, [r6, 0x8] adds r7, r5, 0x1 cmp r4, r0 bge _080517BC ldr r5, _080518E4 ldr r1, _080518E8 adds r2, r1, 0 _080517A2: ldr r1, [r5, 0xC] adds r0, r4, 0 str r2, [sp, 0xC] bl sub_8049590 ldrh r1, [r0] ldr r2, [sp, 0xC] ands r1, r2 strh r1, [r0] adds r4, 0x1 ldr r0, [r5, 0x8] cmp r4, r0 blt _080517A2 _080517BC: adds r5, r7, 0 ldr r3, _080518E4 cmp r5, r10 bge _080517CE ldr r1, [r6, 0xC] ldr r0, [r6, 0x4] subs r1, r0 cmp r1, r9 bgt _08051748 _080517CE: ldr r7, [r3] ldr r0, [r3, 0x8] cmp r7, r0 bge _08051824 adds r4, r3, 0 mov r9, r3 _080517DA: ldr r5, [r4, 0x4] ldr r0, [r4, 0xC] adds r1, r7, 0x1 mov r8, r1 cmp r5, r0 bge _0805181A ldr r3, _080518E4 ldr r0, _080518E8 adds r6, r0, 0 _080517EC: adds r0, r7, 0 adds r1, r5, 0 str r3, [sp, 0x10] bl sub_8049590 adds r2, r0, 0 ldrh r1, [r2] movs r0, 0x20 ands r0, r1 ldr r3, [sp, 0x10] cmp r0, 0 beq _08051812 movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08051812 adds r0, r1, 0 ands r0, r6 strh r0, [r2] _08051812: adds r5, 0x1 ldr r0, [r4, 0xC] cmp r5, r0 blt _080517EC _0805181A: mov r7, r8 mov r1, r9 ldr r0, [r1, 0x8] cmp r7, r0 blt _080517DA _08051824: ldr r0, [r3] ldr r1, [r3, 0x8] adds r0, r1 lsrs r1, r0, 31 adds r0, r1 asrs r2, r0, 1 ldr r0, [r3, 0x4] ldr r1, [r3, 0xC] adds r0, r1 lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 subs r0, 0x1 mov r10, r0 movs r0, 0 mov r9, r0 subs r7, r2, 0x1 adds r0, r2, 0x2 cmp r7, r0 bge _080518D2 adds r2, r0, 0 str r2, [sp, 0x4] _08051850: mov r5, r10 adds r0, r5, 0x3 adds r1, r7, 0x1 mov r8, r1 mov r1, r9 adds r1, 0x1 str r1, [sp, 0x8] cmp r5, r0 bge _080518C6 movs r3, 0 _08051864: adds r0, r7, 0 adds r1, r5, 0 str r3, [sp, 0x10] bl sub_8049590 adds r6, r0, 0 ldrh r1, [r6] movs r0, 0x20 ands r0, r1 ldr r3, [sp, 0x10] cmp r0, 0 beq _080518BA movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _080518BA movs r0, 0x8 ands r0, r1 cmp r0, 0 bne _080518BA mov r0, r9 lsls r2, r0, 1 adds r2, r3 ldr r0, [sp] ldrb r1, [r0, 0x18] lsls r0, r1, 3 adds r0, r1 lsls r0, 1 adds r2, r0 ldr r1, _080518EC adds r2, r1 movs r0, 0 ldrsh r4, [r2, r0] movs r0, 0x64 bl sub_8084100 ldr r3, [sp, 0x10] cmp r4, r0 ble _080518BA ldrh r1, [r6, 0x4] movs r0, 0x2 orrs r0, r1 strh r0, [r6, 0x4] _080518BA: adds r5, 0x1 adds r3, 0x6 mov r0, r10 adds r0, 0x3 cmp r5, r0 blt _08051864 _080518C6: mov r7, r8 ldr r1, [sp, 0x8] mov r9, r1 ldr r0, [sp, 0x4] cmp r7, r0 blt _08051850 _080518D2: add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080518E4: .4byte gUnknown_202F1B8 _080518E8: .4byte 0x0000ffdf _080518EC: .4byte gUnknown_80F57D4 thumb_func_end sub_8051654 thumb_func_start sub_80518F0 sub_80518F0: push {r4-r7,lr} movs r5, 0 movs r6, 0x10 movs r7, 0 _080518F8: adds r0, r5, 0 movs r1, 0x1 bl sub_8049590 adds r4, r0, 0 bl sub_804FD10 cmp r5, 0 beq _0805190E cmp r5, 0x37 bne _08051914 _0805190E: ldrh r0, [r4] orrs r0, r6 strh r0, [r4] _08051914: adds r0, r5, 0 movs r1, 0x1E bl sub_8049590 adds r4, r0, 0 bl sub_804FD10 cmp r5, 0 beq _0805192A cmp r5, 0x37 bne _08051930 _0805192A: ldrh r0, [r4] orrs r0, r6 strh r0, [r4] _08051930: adds r5, 0x1 cmp r5, 0x37 ble _080518F8 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80518F0 thumb_func_start sub_805193C sub_805193C: push {r4-r6,lr} sub sp, 0x8 adds r6, r3, 0 ldr r4, [sp, 0x18] lsls r0, 24 lsrs r5, r0, 24 lsls r1, 16 lsls r2, 16 lsrs r1, 16 orrs r1, r2 str r1, [sp, 0x4] adds r0, r5, 0 bl sub_805210C lsls r0, 24 cmp r0, 0 beq _0805196A mov r0, sp movs r1, 0x76 movs r2, 0 bl sub_8090A8C b _08051974 _0805196A: mov r0, sp adds r1, r5, 0 movs r2, 0 bl sub_8090A8C _08051974: mov r0, sp ldrb r0, [r0] orrs r4, r0 mov r0, sp strb r4, [r0] cmp r6, 0 beq _08051984 strb r6, [r0, 0x1] _08051984: add r0, sp, 0x4 mov r1, sp movs r2, 0x1 bl sub_80460F8 add sp, 0x8 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_805193C thumb_func_start sub_8051998 sub_8051998: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x14 mov r8, r1 mov r9, r2 lsls r0, 16 asrs r0, 16 adds r1, r0, 0 lsls r3, 24 lsrs r6, r3, 24 adds r7, r6, 0 ldr r0, _080519E4 cmp r1, r0 bne _080519E8 mov r1, sp movs r5, 0 movs r4, 0 movs r0, 0x3C strh r0, [r1] bl sub_803DA20 mov r1, sp strh r0, [r1, 0x8] mov r0, sp strb r6, [r0, 0x2] str r4, [sp, 0x4] strb r5, [r0, 0x10] mov r1, r8 strh r1, [r0, 0xC] mov r1, r9 strh r1, [r0, 0xE] movs r1, 0x1 bl sub_806B7F8 b _08051A14 .align 2, 0 _080519E4: .4byte 0x000001a5 _080519E8: cmp r1, 0 beq _08051A14 mov r0, sp movs r5, 0 movs r4, 0 strh r1, [r0] adds r0, r1, 0 bl sub_803DA20 mov r1, sp strh r0, [r1, 0x8] mov r0, sp strb r7, [r0, 0x2] str r4, [sp, 0x4] strb r5, [r0, 0x10] mov r1, r8 strh r1, [r0, 0xC] mov r1, r9 strh r1, [r0, 0xE] movs r1, 0x1 bl sub_806B7F8 _08051A14: add sp, 0x14 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8051998 thumb_func_start sub_8051A24 sub_8051A24: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r6, r0, 0 adds r4, r1, 0 adds r5, r2, 0 lsls r6, 24 lsrs r6, 24 lsls r3, 24 lsrs r3, 24 mov r8, r3 adds r0, r4, 0 adds r1, r5, 0 bl sub_8049590 adds r7, r0, 0 lsls r4, 16 lsls r5, 16 lsrs r4, 16 orrs r4, r5 str r4, [sp] adds r0, r6, 0 mov r1, sp movs r2, 0 bl sub_8045684 cmp r0, 0 beq _08051A66 str r0, [r7, 0x14] adds r0, 0x20 mov r1, r8 strb r1, [r0] _08051A66: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8051A24 thumb_func_start sub_8051A74 sub_8051A74: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 adds r4, r0, 0 adds r6, r2, 0 adds r7, r3, 0 ldr r0, [sp, 0x20] lsls r1, 24 lsrs r1, 24 mov r8, r1 lsls r0, 24 lsrs r0, 24 mov r9, r0 cmp r1, 0xF bls _08051AA2 ldrh r0, [r4] ldr r1, _08051AB4 ands r1, r0 movs r0, 0x1 orrs r1, r0 strh r1, [r4] _08051AA2: mov r0, r8 cmp r0, 0x45 bls _08051AAA b _08051D68 _08051AAA: lsls r0, 2 ldr r1, _08051AB8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08051AB4: .4byte 0x0000fffc _08051AB8: .4byte _08051ABC .align 2, 0 _08051ABC: .4byte _08051BF0 .4byte _08051C0C .4byte _08051D50 .4byte _08051E1A .4byte _08051C20 .4byte _08051C54 .4byte _08051C64 .4byte _08051C74 .4byte _08051C94 .4byte _08051D00 .4byte _08051C7E .4byte _08051D10 .4byte _08051D24 .4byte _08051D50 .4byte _08051D50 .4byte _08051E1A .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051C94 .4byte _08051CD4 .4byte _08051BD4 _08051BD4: ldr r0, _08051BFC ldr r0, [r0] ldr r2, _08051C00 adds r1, r0, r2 strh r6, [r1] ldr r3, _08051C04 adds r0, r3 strh r7, [r0] movs r0, 0xB adds r1, r6, 0 adds r2, r7, 0 movs r3, 0 bl sub_8051A24 _08051BF0: ldrh r1, [r4] ldr r0, _08051C08 ands r0, r1 movs r1, 0x1 movs r2, 0 b _08051D42 .align 2, 0 _08051BFC: .4byte gUnknown_203B418 _08051C00: .4byte 0x00000684 _08051C04: .4byte 0x00000686 _08051C08: .4byte 0x0000fffc _08051C0C: ldrh r1, [r4] ldr r0, _08051C18 ands r0, r1 ldr r1, _08051C1C ands r0, r1 b _08051D5A .align 2, 0 _08051C18: .4byte 0x0000fffc _08051C1C: .4byte 0x0000feff _08051C20: ldrh r1, [r4] ldr r0, _08051C44 ands r0, r1 movs r1, 0x1 movs r2, 0 orrs r0, r1 strh r0, [r4] ldr r0, _08051C48 ldr r0, [r0] ldr r3, _08051C4C adds r1, r0, r3 strh r6, [r1] ldr r1, _08051C50 adds r0, r1 strh r7, [r0] strb r2, [r4, 0x9] b _08051E1A .align 2, 0 _08051C44: .4byte 0x0000fffc _08051C48: .4byte gUnknown_203B418 _08051C4C: .4byte 0x0000e218 _08051C50: .4byte 0x0000e21a _08051C54: ldrh r1, [r4] ldr r0, _08051C60 ands r0, r1 movs r2, 0 movs r1, 0x2 b _08051D42 .align 2, 0 _08051C60: .4byte 0x0000fffc _08051C64: ldrh r1, [r4] ldr r0, _08051C70 ands r0, r1 movs r1, 0x3 b _08051D58 .align 2, 0 _08051C70: .4byte 0x0000fffc _08051C74: ldr r1, _08051C8C movs r0, 0x1 strb r0, [r1] bl sub_8049840 _08051C7E: ldrh r1, [r4] ldr r0, _08051C90 ands r0, r1 movs r1, 0x3 orrs r0, r1 b _08051D56 .align 2, 0 _08051C8C: .4byte gUnknown_202F1A8 _08051C90: .4byte 0x0000fffc _08051C94: ldrh r1, [r4] ldr r0, _08051CC0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strh r0, [r4] ldrh r0, [r4, 0x4] movs r2, 0 orrs r0, r1 ldr r1, _08051CC4 ands r0, r1 strh r0, [r4, 0x4] strb r2, [r4, 0x9] ldr r0, _08051CC8 ldr r0, [r0] ldr r2, _08051CCC adds r1, r0, r2 strh r6, [r1] ldr r3, _08051CD0 adds r0, r3 strh r7, [r0] b _08051E1A .align 2, 0 _08051CC0: .4byte 0x0000fffc _08051CC4: .4byte 0x0000fffd _08051CC8: .4byte gUnknown_203B418 _08051CCC: .4byte 0x0000e21c _08051CD0: .4byte 0x0000e21e _08051CD4: ldrh r1, [r4] movs r2, 0x80 lsls r2, 4 adds r0, r2, 0 orrs r0, r1 ldr r1, _08051CF8 ands r0, r1 movs r1, 0x1 movs r2, 0 orrs r0, r1 strh r0, [r4] ldrh r1, [r4, 0x4] ldr r0, _08051CFC ands r0, r1 strh r0, [r4, 0x4] strb r2, [r4, 0x9] b _08051E1A .align 2, 0 _08051CF8: .4byte 0x0000fffc _08051CFC: .4byte 0x0000fffd _08051D00: ldrh r1, [r4] ldr r0, _08051D0C ands r0, r1 movs r1, 0x1 b _08051D58 .align 2, 0 _08051D0C: .4byte 0x0000fffc _08051D10: ldrh r1, [r4] ldr r0, _08051D20 ands r0, r1 movs r1, 0x1 movs r2, 0 orrs r0, r1 b _08051D3C .align 2, 0 _08051D20: .4byte 0x0000fffc _08051D24: ldrh r1, [r4] ldr r0, _08051D4C ands r0, r1 movs r1, 0x1 orrs r0, r1 movs r2, 0x80 lsls r2, 5 adds r1, r2, 0 orrs r0, r1 movs r1, 0x10 orrs r0, r1 movs r2, 0 _08051D3C: movs r3, 0x80 lsls r3, 4 adds r1, r3, 0 _08051D42: orrs r0, r1 strh r0, [r4] strb r2, [r4, 0x9] b _08051E1A .align 2, 0 _08051D4C: .4byte 0x0000fffc _08051D50: ldrh r1, [r4] ldr r0, _08051D64 ands r0, r1 _08051D56: movs r1, 0x10 _08051D58: orrs r0, r1 _08051D5A: strh r0, [r4] movs r0, 0xFF strb r0, [r4, 0x9] b _08051E1A .align 2, 0 _08051D64: .4byte 0x0000fffc _08051D68: mov r0, r8 subs r0, 0x10 lsls r0, 24 lsrs r0, 24 cmp r0, 0xCB bhi _08051E1A mov r1, r8 lsls r0, r1, 4 ldr r1, _08051DA0 adds r5, r0, r1 ldrb r0, [r5, 0xC] strb r0, [r4, 0x9] ldrb r1, [r5] cmp r1, 0 beq _08051DB8 mov r2, r9 cmp r2, 0 beq _08051DA4 ldrb r0, [r5] movs r1, 0x2 ldrsh r3, [r5, r1] ldr r1, [r5, 0x4] str r1, [sp] adds r1, r6, 0 adds r2, r7, 0 bl sub_805193C b _08051DDC .align 2, 0 _08051DA0: .4byte gUnknown_80F6D20 _08051DA4: ldr r0, _08051DB0 ldr r0, [r0] ldr r2, _08051DB4 adds r0, r2 strb r1, [r0] b _08051DDC .align 2, 0 _08051DB0: .4byte gUnknown_203B418 _08051DB4: .4byte 0x0000068b _08051DB8: ldr r2, [r5, 0x4] cmp r2, 0 beq _08051DDC ldr r0, _08051E2C ldr r1, [r0] subs r0, r2, 0x1 lsls r0, 2 adds r0, r1, r0 ldr r3, _08051E30 adds r0, r3 strh r6, [r0] ldr r0, [r5, 0x4] subs r0, 0x1 lsls r0, 2 adds r1, r0 ldr r0, _08051E34 adds r1, r0 strh r7, [r1] _08051DDC: movs r1, 0x8 ldrsh r0, [r5, r1] cmp r0, 0 beq _08051DF2 ldrb r3, [r5, 0xA] mov r1, r8 str r1, [sp] adds r1, r6, 0 adds r2, r7, 0 bl sub_8051998 _08051DF2: ldrb r0, [r5, 0xB] cmp r0, 0x14 beq _08051E08 mov r2, r9 cmp r2, 0 beq _08051E08 ldrb r3, [r5, 0xD] adds r1, r6, 0 adds r2, r7, 0 bl sub_8051A24 _08051E08: ldrb r0, [r5, 0xE] cmp r0, 0 beq _08051E1A ldrh r0, [r4] ldr r1, _08051E38 ands r1, r0 movs r0, 0x2 orrs r1, r0 strh r1, [r4] _08051E1A: movs r0, 0 add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08051E2C: .4byte gUnknown_203B418 _08051E30: .4byte 0x0000e220 _08051E34: .4byte 0x0000e222 _08051E38: .4byte 0x0000fffc thumb_func_end sub_8051A74 thumb_func_start sub_8051E3C sub_8051E3C: push {r4-r6,lr} sub sp, 0x4 movs r5, 0 _08051E42: movs r4, 0 adds r6, r5, 0x1 _08051E46: adds r0, r4, 0 adds r1, r5, 0 bl sub_8049590 adds r2, r0, 0 ldrb r0, [r2, 0xE] cmp r0, 0xF bls _08051E66 adds r1, r0, 0 movs r0, 0 str r0, [sp] adds r0, r2, 0 adds r2, r4, 0 adds r3, r5, 0 bl sub_8051A74 _08051E66: adds r4, 0x1 cmp r4, 0x37 ble _08051E46 adds r5, r6, 0 cmp r5, 0x1F ble _08051E42 add sp, 0x4 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8051E3C thumb_func_start sub_8051E7C sub_8051E7C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 mov r9, r0 movs r1, 0x4 ldrsh r0, [r0, r1] mov r2, r9 movs r3, 0x6 ldrsh r1, [r2, r3] subs r1, 0x1 bl sub_8049590 str r0, [sp, 0x8] ldrh r1, [r0] movs r0, 0x80 lsls r0, 5 ands r0, r1 cmp r0, 0 bne _08051EB8 ldr r0, _08051EB4 ldr r1, [r0] mov r0, r9 bl sub_80522A8 b _080520F6 .align 2, 0 _08051EB4: .4byte gUnknown_80FDDF0 _08051EB8: ldr r0, _08051EF0 ldr r0, [r0] ldr r1, _08051EF4 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _08051EC8 b _080520EC _08051EC8: mov r2, r9 ldrh r1, [r2, 0x6] subs r1, 0x1 lsls r1, 16 ldrh r0, [r2, 0x4] orrs r0, r1 str r0, [sp, 0x4] mov r0, r9 bl sub_80450FC lsls r0, 24 lsrs r0, 24 str r0, [sp, 0xC] mov r3, r9 movs r1, 0x6 ldrsh r0, [r3, r1] adds r6, r0, 0 subs r6, 0x15 b _08051FE0 .align 2, 0 _08051EF0: .4byte gUnknown_203B418 _08051EF4: .4byte 0x00003a09 _08051EF8: mov r2, r9 movs r3, 0x4 ldrsh r0, [r2, r3] adds r5, r0, 0 subs r5, 0x14 adds r0, 0x14 adds r1, r6, 0x1 str r1, [sp, 0x10] cmp r5, r0 bgt _08051FD8 ldr r2, _080520C0 mov r10, r2 _08051F10: mov r0, r10 ldr r3, [r0] ldr r1, _080520C4 adds r0, r3, r1 ldr r1, [r0] subs r2, r5, r1 mov r8, r2 ldr r2, _080520C8 adds r0, r3, r2 ldr r2, [r0] subs r7, r6, r2 mov r0, r8 cmp r0, 0 blt _08051FCA cmp r7, 0 blt _08051FCA cmp r0, 0x7 bgt _08051FCA cmp r7, 0x7 bgt _08051FCA adds r0, r1, 0x1 cmp r5, r0 blt _08051FCA adds r0, r2, 0x1 cmp r6, r0 blt _08051FCA ldr r1, _080520CC adds r0, r3, r1 ldr r0, [r0] subs r0, 0x1 cmp r5, r0 bge _08051FCA ldr r2, _080520D0 adds r0, r3, r2 ldr r0, [r0] subs r0, 0x1 cmp r6, r0 bge _08051FCA adds r0, r5, 0 adds r1, r6, 0 bl sub_8049590 adds r4, r0, 0 ldrh r0, [r4] movs r3, 0x80 lsls r3, 1 adds r1, r3, 0 ands r0, r1 cmp r0, 0 beq _08051F9A mov r0, r10 ldr r2, [r0] lsls r1, r7, 1 adds r1, r7 lsls r1, 3 mov r3, r8 lsls r0, r3, 1 add r0, r8 lsls r0, 6 adds r1, r0 adds r2, r1 ldr r1, _080520D4 adds r0, r2, r1 ldrh r0, [r0] strh r0, [r4] ldr r3, _080520D8 adds r2, r3 ldrh r0, [r2] strh r0, [r4, 0x4] _08051F9A: mov r1, r10 ldr r0, [r1] mov r2, r8 lsls r1, r2, 3 adds r1, r7, r1 ldr r3, _080520DC adds r0, r3 adds r0, r1 ldrb r1, [r0] movs r0, 0x1 str r0, [sp] adds r0, r4, 0 adds r2, r5, 0 adds r3, r6, 0 bl sub_8051A74 ldrh r1, [r4, 0x4] movs r0, 0x3 orrs r0, r1 strh r0, [r4, 0x4] ldr r0, [sp, 0xC] cmp r0, 0xFF beq _08051FCA strb r0, [r4, 0x9] _08051FCA: adds r5, 0x1 mov r2, r9 movs r3, 0x4 ldrsh r0, [r2, r3] adds r0, 0x14 cmp r5, r0 ble _08051F10 _08051FD8: ldr r6, [sp, 0x10] mov r1, r9 movs r2, 0x6 ldrsh r0, [r1, r2] _08051FE0: adds r0, 0x13 cmp r6, r0 ble _08051EF8 mov r3, r9 movs r1, 0x6 ldrsh r0, [r3, r1] adds r6, r0, 0 subs r6, 0x15 adds r0, 0x13 ldr r7, _080520C0 cmp r6, r0 bgt _0805207A _08051FF8: mov r2, r9 movs r3, 0x4 ldrsh r0, [r2, r3] adds r5, r0, 0 subs r5, 0x14 adds r0, 0x14 adds r1, r6, 0x1 str r1, [sp, 0x10] cmp r5, r0 bgt _0805206C ldr r7, _080520C0 _0805200E: ldr r0, _080520C0 ldr r4, [r0] ldr r2, _080520C4 adds r0, r4, r2 ldr r2, [r0] subs r1, r5, r2 ldr r3, _080520C8 adds r0, r4, r3 ldr r3, [r0] subs r0, r6, r3 cmp r1, 0 blt _0805205E cmp r0, 0 blt _0805205E cmp r1, 0x7 bgt _0805205E cmp r0, 0x7 bgt _0805205E adds r0, r2, 0x1 cmp r5, r0 blt _0805205E adds r0, r3, 0x1 cmp r6, r0 blt _0805205E ldr r1, _080520CC adds r0, r4, r1 ldr r0, [r0] subs r0, 0x1 cmp r5, r0 bge _0805205E ldr r2, _080520D0 adds r0, r4, r2 ldr r0, [r0] subs r0, 0x1 cmp r6, r0 bge _0805205E adds r0, r5, 0 adds r1, r6, 0 bl sub_80498A8 _0805205E: adds r5, 0x1 mov r3, r9 movs r1, 0x4 ldrsh r0, [r3, r1] adds r0, 0x14 cmp r5, r0 ble _0805200E _0805206C: ldr r6, [sp, 0x10] mov r2, r9 movs r3, 0x6 ldrsh r0, [r2, r3] adds r0, 0x13 cmp r6, r0 ble _08051FF8 _0805207A: ldr r0, [r7] ldr r1, _080520E0 adds r0, r1 movs r1, 0x1 strb r1, [r0] ldr r2, [sp, 0x8] ldrh r1, [r2] ldr r0, _080520E4 ands r0, r1 strh r0, [r2] mov r3, r9 movs r1, 0x4 ldrsh r0, [r3, r1] movs r2, 0x6 ldrsh r1, [r3, r2] subs r1, 0x1 bl sub_80498A8 bl sub_8049B8C bl sub_8049ED4 add r0, sp, 0x4 bl sub_80429FC ldr r0, _080520E8 ldr r1, [r0] mov r0, r9 bl sub_80522A8 movs r0, 0x14 movs r1, 0x3C bl sub_803E708 b _080520F6 .align 2, 0 _080520C0: .4byte gUnknown_203B418 _080520C4: .4byte 0x0000e250 _080520C8: .4byte 0x0000e254 _080520CC: .4byte 0x0000e258 _080520D0: .4byte 0x0000e25c _080520D4: .4byte 0x0000e27c _080520D8: .4byte 0x0000e280 _080520DC: .4byte 0x0000e87c _080520E0: .4byte 0x00003a09 _080520E4: .4byte 0x0000efef _080520E8: .4byte gUnknown_80FDDD0 _080520EC: ldr r0, _08052108 ldr r1, [r0] mov r0, r9 bl sub_80522A8 _080520F6: add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08052108: .4byte gUnknown_80FDDF0 thumb_func_end sub_8051E7C thumb_func_start sub_805210C sub_805210C: push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 movs r3, 0 ldr r7, _080521B4 movs r4, 0x1 ldr r2, [r7] _0805211A: ldrb r1, [r2] adds r0, r4, 0 ands r0, r1 cmp r0, 0 beq _0805212A ldrb r0, [r2, 0x2] cmp r0, r5 beq _080521C8 _0805212A: adds r2, 0x4 adds r3, 0x1 cmp r3, 0x13 ble _0805211A movs r3, 0 ldr r0, _080521B8 ldr r4, [r0] movs r6, 0x1 _0805213A: movs r0, 0x64 adds r2, r3, 0 muls r2, r0 adds r0, r2, r4 ldr r1, _080521BC adds r0, r1 ldrb r1, [r0] adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _0805216C adds r0, r2, r4 ldr r1, _080521C0 adds r0, r1 ldrb r1, [r0] adds r0, r6, 0 ands r0, r1 adds r1, r2, r4 cmp r0, 0 beq _0805216C ldr r2, _080521C4 adds r0, r1, r2 ldrb r0, [r0] cmp r0, r5 beq _080521C8 _0805216C: adds r3, 0x1 cmp r3, 0x3 ble _0805213A movs r3, 0 ldr r0, _080521B8 ldr r4, [r0] _08052178: movs r0, 0x58 muls r0, r3 adds r2, r0, r4 ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08052196 adds r0, r2, 0 adds r0, 0x28 ldrb r0, [r0] cmp r0, 0 beq _08052196 cmp r0, r5 beq _080521C8 _08052196: adds r3, 0x1 movs r0, 0xCE lsls r0, 1 cmp r3, r0 ble _08052178 ldr r0, [r7] lsls r1, r5, 1 adds r0, 0x50 adds r0, r1 ldrh r0, [r0] cmp r0, 0 bne _080521C8 movs r0, 0 b _080521CA .align 2, 0 _080521B4: .4byte gUnknown_203B460 _080521B8: .4byte gUnknown_203B45C _080521BC: .4byte 0x00008df8 _080521C0: .4byte 0x00008e38 _080521C4: .4byte 0x00008e3a _080521C8: movs r0, 0x1 _080521CA: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_805210C thumb_func_start sub_80521D0 sub_80521D0: push {r4-r6,lr} movs r1, 0 ldr r5, _08052200 ldr r6, _08052204 ldr r4, _08052208 ldr r3, _0805220C movs r2, 0 _080521DE: ldr r0, [r4] adds r0, r3 adds r0, r1 strb r2, [r0] adds r1, 0x1 cmp r1, 0x9 ble _080521DE movs r0, 0 str r0, [r5] movs r0, 0x1 strb r0, [r6] movs r0, 0 bl sub_8052210 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08052200: .4byte gUnknown_202F1E8 _08052204: .4byte gUnknown_203B434 _08052208: .4byte gUnknown_203B418 _0805220C: .4byte 0x0001c054 thumb_func_end sub_80521D0 thumb_func_start sub_8052210 sub_8052210: push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 movs r4, 0 ldr r5, _08052280 _0805221A: lsls r0, r4, 6 ldr r1, [r5] adds r0, r1 ldr r1, _08052284 adds r0, r1 ldr r1, _08052288 bl strcpy adds r4, 0x1 cmp r4, 0x9 ble _0805221A ldr r1, _08052280 ldr r0, [r1] ldr r2, _0805228C adds r0, r2 movs r3, 0 strb r3, [r0] ldr r0, [r1] adds r2, 0x1 adds r1, r0, r2 strh r3, [r1] adds r2, 0x2 adds r1, r0, r2 strh r3, [r1] adds r2, 0x2 adds r1, r0, r2 strh r3, [r1] ldr r1, _08052290 adds r2, r0, r1 movs r1, 0x4 strh r1, [r2] ldr r2, _08052294 adds r0, r2 str r3, [r0] cmp r6, 0 beq _08052278 ldr r0, _08052298 ldr r0, [r0] cmp r0, 0x3 bne _08052278 movs r0, 0 movs r1, 0 bl sub_803EAF0 movs r0, 0xB bl sub_803E46C _08052278: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08052280: .4byte gUnknown_203B418 _08052284: .4byte 0x0001bdd4 _08052288: .4byte gUnknown_80F7AE8 _0805228C: .4byte 0x0001c05f _08052290: .4byte 0x0001c066 _08052294: .4byte 0x0001c06c _08052298: .4byte gUnknown_202EDD0 thumb_func_end sub_8052210 thumb_func_start sub_805229C sub_805229C: push {lr} movs r0, 0x50 bl sub_80526D0 pop {r0} bx r0 thumb_func_end sub_805229C thumb_func_start sub_80522A8 sub_80522A8: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl sub_8045888 lsls r0, 24 cmp r0, 0 beq _080522C2 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x1 bl sub_80523A8 _080522C2: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80522A8 thumb_func_start sub_80522C8 sub_80522C8: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl sub_8045888 lsls r0, 24 cmp r0, 0 beq _080522E2 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0 bl sub_80523A8 _080522E2: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80522C8 thumb_func_start sub_80522E8 sub_80522E8: push {lr} movs r2, 0 bl sub_80523A8 pop {r0} bx r0 thumb_func_end sub_80522E8 thumb_func_start sub_80522F4 sub_80522F4: push {r4-r7,lr} adds r6, r0, 0 adds r4, r1, 0 adds r7, r2, 0 bl sub_8045888 lsls r0, 24 lsrs r0, 24 negs r1, r0 orrs r1, r0 lsrs r5, r1, 31 adds r0, r4, 0 bl sub_8052DC0 lsls r0, 24 cmp r0, 0 beq _08052318 movs r5, 0x1 _08052318: cmp r5, 0 beq _08052326 adds r0, r6, 0 adds r1, r7, 0 movs r2, 0x1 bl sub_80523A8 _08052326: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80522F4 thumb_func_start sub_805232C sub_805232C: push {r4-r7,lr} adds r6, r0, 0 adds r4, r1, 0 adds r7, r2, 0 bl sub_8045888 lsls r0, 24 lsrs r0, 24 negs r1, r0 orrs r1, r0 lsrs r5, r1, 31 adds r0, r4, 0 bl sub_8052DC0 lsls r0, 24 cmp r0, 0 beq _08052350 movs r5, 0x1 _08052350: cmp r5, 0 beq _0805235E adds r0, r6, 0 adds r1, r7, 0 movs r2, 0 bl sub_80523A8 _0805235E: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_805232C thumb_func_start sub_8052364 sub_8052364: push {r4-r7,lr} adds r6, r0, 0 adds r4, r1, 0 adds r7, r2, 0 bl sub_8045888 lsls r0, 24 lsrs r0, 24 negs r1, r0 orrs r1, r0 lsrs r5, r1, 31 adds r0, r4, 0 bl sub_803F428 lsls r0, 24 cmp r0, 0 beq _08052388 movs r5, 0x1 _08052388: cmp r5, 0 beq _08052396 adds r0, r6, 0 adds r1, r7, 0 movs r2, 0x1 bl sub_80523A8 _08052396: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8052364 thumb_func_start sub_805239C sub_805239C: push {lr} movs r2, 0x1 bl sub_80523A8 pop {r0} bx r0 thumb_func_end sub_805239C thumb_func_start sub_80523A8 sub_80523A8: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x40 adds r3, r0, 0 adds r4, r1, 0 lsls r2, 24 lsrs r2, 24 mov r10, r2 ldr r0, _080523D0 ldr r1, [r0] adds r2, r0, 0 cmp r1, r3 beq _080523D8 movs r7, 0x1 ldr r1, _080523D4 b _080523DE .align 2, 0 _080523D0: .4byte gUnknown_202F1E8 _080523D4: .4byte gUnknown_203B434 _080523D8: ldr r0, _080523F0 ldrb r7, [r0] adds r1, r0, 0 _080523DE: movs r0, 0x1 mov r8, r0 str r3, [r2] movs r0, 0 strb r0, [r1] movs r1, 0 mov r9, r1 b _080523FA .align 2, 0 _080523F0: .4byte gUnknown_203B434 _080523F4: movs r0, 0 bl sub_803E46C _080523FA: ldr r6, _0805249C ldr r2, [r6] ldr r3, _080524A0 adds r0, r2, r3 movs r3, 0 ldrsh r1, [r0, r3] adds r1, 0x1 cmp r1, 0xA bne _0805240E movs r1, 0 _0805240E: ldr r3, _080524A4 adds r0, r2, r3 movs r3, 0 ldrsh r0, [r0, r3] cmp r1, r0 beq _080523F4 ldrb r0, [r4] cmp r0, 0 beq _080524B0 ldr r5, _080524A0 adds r0, r2, r5 movs r3, 0 ldrsh r1, [r0, r3] ldr r3, _080524A8 adds r0, r2, r3 adds r0, r1 strb r7, [r0] adds r0, r4, 0 mov r1, sp mov r2, sp adds r2, 0x3E movs r3, 0x80 bl xxx_format_string adds r4, r0, 0 ldrb r0, [r4] cmp r0, 0xD bne _08052448 adds r4, 0x1 _08052448: ldrb r0, [r4] cmp r0, 0xA bne _08052450 adds r4, 0x1 _08052450: mov r0, sp adds r1, r7, 0 mov r2, r8 bl sub_8053210 movs r7, 0 movs r0, 0 mov r8, r0 mov r1, r10 cmp r1, 0 beq _080523FA movs r2, 0x1 mov r9, r2 ldr r1, [r6] adds r0, r1, r5 movs r3, 0 ldrsh r0, [r0, r3] lsls r0, 6 adds r0, r1 ldr r1, _080524AC adds r0, r1 mov r1, sp movs r2, 0x40 bl strncpy ldr r0, [r6] adds r1, r0, r5 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] lsls r0, 16 asrs r0, 16 cmp r0, 0xA bne _080523FA mov r2, r8 strh r2, [r1] b _080523FA .align 2, 0 _0805249C: .4byte gUnknown_203B418 _080524A0: .4byte 0x0001c060 _080524A4: .4byte 0x0001c062 _080524A8: .4byte 0x0001c054 _080524AC: .4byte 0x0001bdd4 _080524B0: mov r3, r9 cmp r3, 0 beq _080524D4 ldr r0, _080524E4 ldr r2, [r0] ldr r3, _080524E8 adds r1, r2, r3 movs r0, 0xF0 strh r0, [r1] ldr r0, _080524EC adds r2, r0 ldr r0, [r2] cmp r0, 0 bne _080524D0 movs r0, 0x1 str r0, [r2] _080524D0: bl sub_805E804 _080524D4: add sp, 0x40 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080524E4: .4byte gUnknown_203B418 _080524E8: .4byte 0x0001c064 _080524EC: .4byte 0x0001c06c thumb_func_end sub_80523A8 thumb_func_start xxx_draw_string_80524F0 xxx_draw_string_80524F0: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x3C ldr r0, _0805251C ldr r0, [r0] ldr r1, _08052520 adds r7, r0, r1 ldr r2, _08052524 adds r5, r0, r2 ldr r1, [r5] cmp r1, 0x1 beq _08052528 cmp r1, 0x1 bcs _08052510 b _0805267C _08052510: cmp r1, 0x2 beq _0805253C cmp r1, 0x3 bne _0805251A b _0805265C _0805251A: b _0805267C .align 2, 0 _0805251C: .4byte gUnknown_203B418 _08052520: .4byte 0x0001bdd4 _08052524: .4byte 0x0001c06c _08052528: bl sub_800EC74 lsls r0, 24 cmp r0, 0 beq _08052534 b _0805267C _08052534: movs r0, 0x3 movs r1, 0 bl sub_803EAF0 _0805253C: ldr r3, _08052560 adds r0, r7, r3 movs r1, 0 ldrsh r4, [r0, r1] movs r2, 0xA3 lsls r2, 2 adds r0, r7, r2 movs r3, 0 ldrsh r0, [r0, r3] cmp r4, r0 bne _08052564 movs r0, 0xA6 lsls r0, 2 adds r1, r7, r0 movs r0, 0 str r0, [r1] b _0805267C .align 2, 0 _08052560: .4byte 0x0000028e _08052564: lsls r0, r4, 6 adds r5, r7, r0 add r1, sp, 0x4 movs r0, 0x4 strh r0, [r1] ldr r2, _080525B0 adds r6, r7, r2 ldrh r0, [r6] strh r0, [r1, 0x2] movs r3, 0x7 mov r8, r3 str r3, [sp, 0x14] movs r0, 0 bl sub_80073B8 movs r1, 0xA0 lsls r1, 2 adds r0, r7, r1 adds r0, r4 ldrb r0, [r0] cmp r0, 0 beq _080525AA movs r2, 0 ldrsh r0, [r6, r2] cmp r0, 0x7 ble _080525AA adds r2, r0, 0 subs r2, 0x1 mov r0, r8 str r0, [sp] movs r0, 0 movs r1, 0 movs r3, 0xE0 bl sub_80078A4 _080525AA: adds r6, r4, 0x1 b _080525F2 .align 2, 0 _080525B0: .4byte 0x00000292 _080525B4: add r1, sp, 0x38 adds r0, r5, 0 bl xxx_get_next_char_from_string adds r5, r0, 0 ldr r4, [sp, 0x38] cmp r4, 0x60 bne _080525D0 add r1, sp, 0x4 adds r0, r1, 0 ldrh r0, [r0] adds r0, 0x6 strh r0, [r1] b _080525F2 _080525D0: add r0, sp, 0x4 movs r1, 0 ldrsh r0, [r0, r1] add r1, sp, 0x4 movs r2, 0x2 ldrsh r1, [r1, r2] ldr r3, [sp, 0x14] movs r2, 0 str r2, [sp] adds r2, r4, 0 bl xxx_call_draw_char add r2, sp, 0x4 adds r1, r2, 0 ldrh r1, [r1] adds r1, r0 strh r1, [r2] _080525F2: adds r0, r5, 0 add r1, sp, 0x4 bl sub_8009190 adds r5, r0, 0 ldrb r0, [r5] cmp r0, 0 beq _0805260A cmp r0, 0xD beq _0805260A cmp r0, 0xA bne _080525B4 _0805260A: movs r0, 0 bl sub_80073E0 movs r3, 0xA4 lsls r3, 2 adds r1, r7, r3 movs r0, 0xF0 strh r0, [r1] adds r4, r6, 0 cmp r4, 0xA bne _08052622 movs r4, 0 _08052622: ldr r1, _08052654 adds r0, r7, r1 strh r4, [r0] ldr r2, _08052658 adds r1, r7, r2 ldrh r0, [r1] adds r0, 0xB strh r0, [r1] lsls r0, 16 asrs r0, 16 cmp r0, 0x2F ble _0805267C movs r0, 0x25 strh r0, [r1] movs r3, 0xA5 lsls r3, 2 adds r1, r7, r3 movs r0, 0 strh r0, [r1] movs r0, 0xA6 lsls r0, 2 adds r1, r7, r0 movs r0, 0x3 str r0, [r1] b _0805267C .align 2, 0 _08052654: .4byte 0x0000028e _08052658: .4byte 0x00000292 _0805265C: ldr r1, _080526C4 adds r4, r0, r1 ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] ldr r0, _080526C8 ldr r1, [r0] movs r0, 0 bl _call_via_r1 movs r2, 0 ldrsh r0, [r4, r2] cmp r0, 0xA ble _0805267C movs r0, 0x2 str r0, [r5] _0805267C: ldr r3, _080526CC adds r0, r7, r3 ldrb r0, [r0] cmp r0, 0 bne _080526B8 movs r0, 0xA4 lsls r0, 2 adds r1, r7, r0 ldrh r2, [r1] movs r3, 0 ldrsh r0, [r1, r3] cmp r0, 0 beq _080526B8 subs r0, r2, 0x1 strh r0, [r1] lsls r0, 16 asrs r1, r0, 16 cmp r1, 0 bne _080526B8 movs r2, 0xA6 lsls r2, 2 adds r0, r7, r2 str r1, [r0] movs r0, 0 movs r1, 0 bl sub_803EAF0 movs r0, 0 bl sub_8052210 _080526B8: add sp, 0x3C pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080526C4: .4byte 0x0001c068 _080526C8: .4byte gUnknown_203B08C _080526CC: .4byte 0x0000028a thumb_func_end xxx_draw_string_80524F0 thumb_func_start sub_80526D0 sub_80526D0: push {r4,r5,lr} adds r5, r0, 0 ldr r0, _0805272C ldr r1, [r0] ldr r0, _08052730 adds r4, r1, r0 ldr r2, _08052734 adds r0, r1, r2 ldr r0, [r0] cmp r0, 0 bne _080526FA ldr r3, _08052738 adds r0, r1, r3 subs r2, 0xA adds r1, r2 movs r3, 0 ldrsh r2, [r0, r3] movs r3, 0 ldrsh r0, [r1, r3] cmp r2, r0 beq _08052724 _080526FA: adds r0, r5, 0 bl sub_803E46C movs r1, 0xA6 lsls r1, 2 adds r0, r4, r1 ldr r0, [r0] cmp r0, 0 bne _080526FA ldr r0, _0805272C ldr r0, [r0] ldr r2, _08052738 adds r1, r0, r2 ldr r3, _0805273C adds r0, r3 movs r2, 0 ldrsh r1, [r1, r2] movs r3, 0 ldrsh r0, [r0, r3] cmp r1, r0 bne _080526FA _08052724: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0805272C: .4byte gUnknown_203B418 _08052730: .4byte 0x0001bdd4 _08052734: .4byte 0x0001c06c _08052738: .4byte 0x0001c060 _0805273C: .4byte 0x0001c062 thumb_func_end sub_80526D0 thumb_func_start sub_8052740 sub_8052740: push {r4-r7,lr} mov r7, r8 push {r7} adds r5, r0, 0 ldr r0, _080527B0 ldr r4, [r0] ldr r0, _080527B4 adds r7, r4, r0 adds r0, r5, 0 bl sub_80526D0 movs r6, 0 ldr r1, _080527B8 adds r4, r1 movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0xB3 ble _080527A4 ldr r2, _080527BC ldrh r1, [r2] movs r0, 0x3 ands r0, r1 cmp r0, 0x3 beq _080527A4 adds r4, r2, 0 ldr r0, _080527C0 mov r8, r0 _08052776: ldrh r0, [r4, 0x2] mov r1, r8 ands r0, r1 cmp r0, 0 bne _080527A4 adds r0, r5, 0 bl sub_803E46C adds r6, 0x1 cmp r6, 0xEF bgt _080527A4 movs r1, 0xA4 lsls r1, 2 adds r0, r7, r1 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0xB3 ble _080527A4 ldrh r1, [r4] movs r0, 0x3 ands r0, r1 cmp r0, 0x3 bne _08052776 _080527A4: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080527B0: .4byte gUnknown_203B418 _080527B4: .4byte 0x0001bdd4 _080527B8: .4byte 0x0001c064 _080527BC: .4byte gUnknown_20255F0 _080527C0: .4byte 0x0000030f thumb_func_end sub_8052740 thumb_func_start PrintFieldMessage PrintFieldMessage: push {r4-r7,lr} sub sp, 0x28 adds r4, r0, 0 adds r7, r1, 0 lsls r2, 24 lsrs r6, r2, 24 ldr r0, _08052858 ldrb r0, [r0] cmp r0, 0 beq _080527DE movs r0, 0xA bl sub_8052740 _080527DE: movs r0, 0x2 movs r1, 0 bl sub_803EAF0 movs r0, 0 bl sub_8052210 movs r5, 0 str r5, [sp, 0x14] str r5, [sp, 0x18] ldr r0, _0805285C ldr r1, [r0] ldr r2, _08052860 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 bne _08052844 adds r2, 0x6 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 bne _08052844 cmp r4, 0 beq _08052844 movs r1, 0 ldrsh r0, [r4, r1] ldrb r1, [r4, 0x2] bl sub_808DE10 lsls r0, 24 cmp r0, 0 beq _08052844 movs r2, 0 ldrsh r0, [r4, r2] bl sub_808DDD0 str r0, [sp, 0x14] ldr r0, [r0, 0x4] str r0, [sp, 0x18] add r1, sp, 0x14 movs r2, 0 movs r0, 0x2 strh r0, [r1, 0x8] movs r0, 0x9 strh r0, [r1, 0xA] ldrb r0, [r4, 0x2] strb r0, [r1, 0xC] adds r0, r1, 0 strb r2, [r0, 0xD] strb r2, [r0, 0xE] adds r5, r0, 0 _08052844: movs r1, 0 str r1, [sp] movs r0, 0x3 str r0, [sp, 0x4] str r1, [sp, 0x8] str r5, [sp, 0xC] cmp r6, 0 beq _08052868 ldr r0, _08052864 b _0805286C .align 2, 0 _08052858: .4byte gUnknown_203B40C _0805285C: .4byte gUnknown_203B418 _08052860: .4byte 0x0001820a _08052864: .4byte 0x00000701 _08052868: movs r0, 0x80 lsls r0, 3 _0805286C: str r0, [sp, 0x10] adds r0, r7, 0 movs r1, 0 movs r2, 0 movs r3, 0 bl sub_8014248 ldr r0, _080528D0 ldr r0, [r0] ldr r1, _080528D4 adds r0, r1 movs r1, 0x1 strb r1, [r0] add r4, sp, 0x24 _08052888: bl xxx_draw_string_80144C4 movs r0, 0x9 bl sub_803E46C adds r0, r4, 0 bl sub_80144A4 adds r1, r0, 0 cmp r1, 0 bne _08052888 ldr r0, _080528D0 ldr r0, [r0] ldr r2, _080528D4 adds r0, r2 strb r1, [r0] ldr r0, [sp, 0x14] cmp r0, 0 beq _080528B2 bl CloseFile _080528B2: cmp r6, 0 beq _080528E4 bl sub_805E804 bl sub_8040238 ldr r0, _080528D8 ldrb r0, [r0] cmp r0, 0 beq _080528DC movs r0, 0 movs r1, 0 bl sub_803EAF0 b _080528E4 .align 2, 0 _080528D0: .4byte gUnknown_203B418 _080528D4: .4byte 0x0001c05f _080528D8: .4byte gUnknown_202EE01 _080528DC: movs r0, 0x1 movs r1, 0 bl sub_803EAF0 _080528E4: movs r0, 0x8 movs r1, 0x9 bl sub_803E708 add sp, 0x28 pop {r4-r7} pop {r0} bx r0 thumb_func_end PrintFieldMessage thumb_func_start sub_80528F4 sub_80528F4: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 movs r0, 0 movs r2, 0x1 bl PrintFieldMessage adds r0, r5, 0 adds r1, r4, 0 bl sub_80522E8 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80528F4 thumb_func_start sub_8052910 sub_8052910: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x14 adds r6, r0, 0 bl sub_8085480 adds r4, r0, 0 bl sub_808548C adds r5, r0, 0 movs r0, 0 mov r9, r0 cmp r4, 0 beq _0805295C ldr r4, [r4, 0x70] ldr r2, _08052950 ldrb r1, [r4, 0xA] movs r0, 0x64 muls r0, r1 ldr r1, _08052954 adds r0, r1 ldr r1, [r2] adds r1, r0 ldr r0, _08052958 bl sub_808DA0C movs r2, 0x4 ldrsh r7, [r4, r2] b _08052966 .align 2, 0 _08052950: .4byte gUnknown_203B45C _08052954: .4byte 0x00008df8 _08052958: .4byte gUnknown_202DF98 _0805295C: movs r7, 0 ldr r0, _08052988 ldr r1, _0805298C bl strcpy _08052966: cmp r5, 0 beq _0805299C ldr r4, [r5, 0x70] ldr r2, _08052990 ldrb r1, [r4, 0xA] movs r0, 0x64 muls r0, r1 ldr r1, _08052994 adds r0, r1 ldr r1, [r2] adds r1, r0 ldr r0, _08052998 bl sub_808DA0C movs r2, 0x4 ldrsh r4, [r4, r2] b _080529A6 .align 2, 0 _08052988: .4byte gUnknown_202DF98 _0805298C: .4byte gUnknown_80F7AF8 _08052990: .4byte gUnknown_203B45C _08052994: .4byte 0x00008df8 _08052998: .4byte gUnknown_202DFE8 _0805299C: movs r4, 0 ldr r0, _080529C0 ldr r1, _080529C4 bl strcpy _080529A6: movs r0, 0x4 ldrsh r1, [r6, r0] movs r0, 0xD5 lsls r0, 1 cmp r1, r0 beq _080529F0 cmp r1, r0 bgt _080529C8 subs r0, 0x1 cmp r1, r0 beq _080529D4 b _08052A1C .align 2, 0 _080529C0: .4byte gUnknown_202DFE8 _080529C4: .4byte gUnknown_80F7AF8 _080529C8: ldr r0, _080529D0 cmp r1, r0 beq _08052A08 b _08052A1C .align 2, 0 _080529D0: .4byte 0x000001ab _080529D4: adds r4, r7, 0 ldr r0, _080529E4 ldr r1, _080529E8 ldr r2, _080529EC bl sub_800D158 b _08052A28 .align 2, 0 _080529E4: .4byte gUnknown_202E5D8 _080529E8: .4byte gUnknown_80F7AFC _080529EC: .4byte gUnknown_202DF98 _080529F0: ldr r0, _080529FC ldr r1, _08052A00 ldr r2, _08052A04 bl sub_800D158 b _08052A28 .align 2, 0 _080529FC: .4byte gUnknown_202E5D8 _08052A00: .4byte gUnknown_80F7AFC _08052A04: .4byte gUnknown_202DFE8 _08052A08: movs r4, 0 ldr r0, _08052A14 ldr r1, _08052A18 bl strcpy b _08052A28 .align 2, 0 _08052A14: .4byte gUnknown_202E5D8 _08052A18: .4byte gUnknown_80F7B04 _08052A1C: movs r1, 0x4 ldrsh r4, [r6, r1] ldr r0, _08052A48 adds r1, r4, 0 bl sub_808D8E0 _08052A28: ldrh r0, [r6] subs r0, 0x2 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bhi _08052A3C ldr r0, _08052A48 ldr r1, _08052A4C bl strcpy _08052A3C: movs r2, 0x6 ldrsh r0, [r6, r2] ldr r2, _08052A50 add r7, sp, 0x10 b _08052A8E .align 2, 0 _08052A48: .4byte gUnknown_202E5D8 _08052A4C: .4byte gUnknown_80F7B04 _08052A50: .4byte gUnknown_203B418 _08052A54: movs r0, 0x6 ldrsh r1, [r6, r0] cmp r1, 0x1 bne _08052A78 cmp r4, 0x1 beq _08052A9E cmp r4, 0x9B beq _08052A9E ldr r0, _08052B08 cmp r4, r0 beq _08052A9E cmp r4, 0x19 beq _08052A9E cmp r4, 0x4 beq _08052A9E subs r0, 0x6 cmp r4, r0 beq _08052A9E _08052A78: movs r0, 0x8C lsls r0, 1 cmp r1, r0 bne _08052A88 cmp r4, r1 beq _08052A9E cmp r4, 0x98 beq _08052A9E _08052A88: adds r6, 0xC movs r1, 0x6 ldrsh r0, [r6, r1] _08052A8E: cmp r0, 0 beq _08052A9E cmp r0, 0x7 bne _08052A54 cmp r4, 0x7 beq _08052A9E cmp r4, 0x9E bne _08052A54 _08052A9E: ldr r1, [r2] ldr r2, _08052B0C adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 bne _08052B14 adds r2, 0x6 adds r0, r1, r2 ldrb r0, [r0] mov r8, r0 cmp r0, 0 bne _08052B14 ldrh r0, [r6] cmp r0, 0x4 beq _08052B14 ldrb r0, [r6, 0x2] cmp r0, 0x80 beq _08052B14 cmp r4, 0 beq _08052B14 ldrb r0, [r6, 0x3] bl sub_808CDB0 adds r5, r0, 0 mov r9, sp adds r0, r4, 0 bl sub_808DDD0 str r0, [sp] cmp r0, 0 beq _08052B10 ldr r0, [r0, 0x4] str r0, [sp, 0x4] mov r1, r8 mov r0, r9 strb r1, [r0, 0xE] ldrb r0, [r6, 0x2] mov r2, r9 strb r0, [r2, 0xC] ldrb r0, [r5, 0x4] strb r0, [r2, 0xD] ldrh r0, [r5] strh r0, [r2, 0x8] ldrh r0, [r5, 0x2] strh r0, [r2, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 bgt _08052B14 movs r0, 0x2 strh r0, [r2, 0xA] b _08052B14 .align 2, 0 _08052B08: .4byte 0x0000011b _08052B0C: .4byte 0x0001820a _08052B10: movs r0, 0 mov r9, r0 _08052B14: movs r0, 0xA bl sub_8052740 movs r0, 0x2 movs r1, 0 bl sub_803EAF0 movs r0, 0 bl sub_8052210 ldr r0, [r6, 0x8] ldr r2, _08052B88 ldrh r1, [r6] lsls r1, 1 adds r1, r2 ldrh r3, [r1] movs r1, 0 mov r2, r9 bl sub_80141B4 _08052B3C: bl xxx_draw_string_80144C4 movs r0, 0x9 bl sub_803E46C adds r0, r7, 0 bl sub_80144A4 cmp r0, 0 bne _08052B3C mov r1, r9 cmp r1, 0 beq _08052B5C ldr r0, [r1] bl CloseFile _08052B5C: ldrh r0, [r6] cmp r0, 0x1 beq _08052B72 cmp r0, 0x3 beq _08052B72 bl sub_8040238 movs r0, 0 movs r1, 0 bl sub_803EAF0 _08052B72: movs r0, 0x8 movs r1, 0x9 bl sub_803E708 add sp, 0x14 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08052B88: .4byte gUnknown_80F7AEA thumb_func_end sub_8052910 thumb_func_start sub_8052B8C sub_8052B8C: push {r4-r7,lr} sub sp, 0x14 adds r4, r0, 0 adds r6, r1, 0 adds r7, r2, 0 movs r0, 0xA bl sub_8052740 movs r0, 0x2 movs r1, 0 bl sub_803EAF0 movs r0, 0 bl sub_8052210 movs r5, 0 str r5, [sp] str r5, [sp, 0x4] ldr r0, _08052C14 ldr r1, [r0] ldr r2, _08052C18 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 bne _08052C02 adds r2, 0x6 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 bne _08052C02 cmp r4, 0 beq _08052C02 movs r1, 0 ldrsh r0, [r4, r1] ldrb r1, [r4, 0x2] bl sub_808DE10 lsls r0, 24 cmp r0, 0 beq _08052C02 movs r2, 0 ldrsh r0, [r4, r2] bl sub_808DDD0 str r0, [sp] ldr r0, [r0, 0x4] str r0, [sp, 0x4] mov r1, sp movs r2, 0 movs r0, 0x2 strh r0, [r1, 0x8] movs r0, 0x9 strh r0, [r1, 0xA] ldrb r0, [r4, 0x2] strb r0, [r1, 0xC] mov r0, sp strb r2, [r0, 0xD] strb r2, [r0, 0xE] mov r5, sp _08052C02: cmp r7, 0x1 bne _08052C1C movs r2, 0xC0 lsls r2, 2 adds r0, r6, 0 adds r1, r5, 0 bl sub_80141E0 b _08052C28 .align 2, 0 _08052C14: .4byte gUnknown_203B418 _08052C18: .4byte 0x0001820a _08052C1C: movs r2, 0xC0 lsls r2, 2 adds r0, r6, 0 adds r1, r5, 0 bl sub_8014214 _08052C28: add r4, sp, 0x10 _08052C2A: bl xxx_draw_string_80144C4 movs r0, 0x9 bl sub_803E46C adds r0, r4, 0 bl sub_80144A4 cmp r0, 0 bne _08052C2A ldr r0, [sp] cmp r0, 0 beq _08052C48 bl CloseFile _08052C48: bl sub_8040238 movs r0, 0 movs r1, 0 bl sub_803EAF0 ldr r0, [sp, 0x10] cmp r0, 0x1 beq _08052C5E movs r0, 0 b _08052C60 _08052C5E: movs r0, 0x1 _08052C60: add sp, 0x14 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8052B8C thumb_func_start sub_8052C68 sub_8052C68: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x28 adds r4, r0, 0 adds r7, r1, 0 mov r8, r2 lsls r3, 16 lsrs r6, r3, 16 movs r0, 0xA bl sub_8052740 movs r0, 0x2 movs r1, 0 bl sub_803EAF0 movs r0, 0 bl sub_8052210 movs r5, 0 str r5, [sp, 0x14] str r5, [sp, 0x18] ldr r0, _08052D3C ldr r1, [r0] ldr r2, _08052D40 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 bne _08052CE6 adds r2, 0x6 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 bne _08052CE6 cmp r4, 0 beq _08052CE6 movs r1, 0 ldrsh r0, [r4, r1] ldrb r1, [r4, 0x2] bl sub_808DE10 lsls r0, 24 cmp r0, 0 beq _08052CE6 movs r2, 0 ldrsh r0, [r4, r2] bl sub_808DDD0 str r0, [sp, 0x14] ldr r0, [r0, 0x4] str r0, [sp, 0x18] add r1, sp, 0x14 movs r2, 0 movs r0, 0x2 strh r0, [r1, 0x8] movs r0, 0x9 strh r0, [r1, 0xA] ldrb r0, [r4, 0x2] strb r0, [r1, 0xC] adds r0, r1, 0 strb r2, [r0, 0xD] strb r2, [r0, 0xE] adds r5, r0, 0 _08052CE6: movs r2, 0x1 negs r2, r2 movs r1, 0 str r1, [sp] movs r0, 0x3 str r0, [sp, 0x4] str r1, [sp, 0x8] str r5, [sp, 0xC] str r6, [sp, 0x10] adds r0, r7, 0 mov r3, r8 bl sub_8014248 add r4, sp, 0x24 _08052D02: bl xxx_draw_string_80144C4 movs r0, 0x9 bl sub_803E46C adds r0, r4, 0 bl sub_80144A4 cmp r0, 0 bne _08052D02 ldr r0, [sp, 0x14] cmp r0, 0 beq _08052D20 bl CloseFile _08052D20: bl sub_8040238 movs r0, 0 movs r1, 0 bl sub_803EAF0 ldr r0, [sp, 0x24] add sp, 0x28 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08052D3C: .4byte gUnknown_203B418 _08052D40: .4byte 0x0001820a thumb_func_end sub_8052C68 thumb_func_start sub_8052D44 sub_8052D44: push {r4-r7,lr} adds r7, r0, 0 adds r4, r1, 0 adds r6, r2, 0 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 beq _08052D70 ldr r0, _08052D6C adds r1, r4, 0 movs r2, 0 bl sub_8045B94 ldr r0, [r4, 0x70] ldrh r0, [r0, 0x4] strh r0, [r7] b _08052D7A .align 2, 0 _08052D6C: .4byte gUnknown_202DF98 _08052D70: ldr r0, _08052D9C ldr r1, _08052DA0 bl strcpy strh r5, [r7] _08052D7A: adds r0, r6, 0 bl sub_80450E0 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _08052DA8 ldr r0, _08052DA4 adds r1, r6, 0 movs r2, 0 bl sub_8045B94 ldr r0, [r6, 0x70] ldrh r0, [r0, 0x4] strh r0, [r7, 0x2] b _08052DB2 .align 2, 0 _08052D9C: .4byte gUnknown_202DF98 _08052DA0: .4byte gUnknown_80F7AF8 _08052DA4: .4byte gUnknown_202DFE8 _08052DA8: ldr r0, _08052DB8 ldr r1, _08052DBC bl strcpy strh r4, [r7, 0x2] _08052DB2: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08052DB8: .4byte gUnknown_202DFE8 _08052DBC: .4byte gUnknown_80F7AF8 thumb_func_end sub_8052D44 thumb_func_start sub_8052DC0 sub_8052DC0: push {lr} bl sub_8045888 lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end sub_8052DC0 thumb_func_start sub_8052DD0 sub_8052DD0: push {r4-r6,lr} bl sub_8083600 adds r5, r0, 0 ldr r6, _08052E68 ldr r4, [r6] adds r0, r4, 0 bl sub_80981A0 lsls r0, 24 cmp r0, 0 beq _08052E46 ldr r6, _08052E6C ldr r4, [r6] adds r0, r4, 0 bl sub_80981A0 lsls r0, 24 cmp r0, 0 beq _08052E46 ldr r6, _08052E70 ldr r4, [r6] adds r0, r4, 0 bl sub_80981A0 lsls r0, 24 cmp r0, 0 beq _08052E46 ldr r0, _08052E74 ldr r0, [r0] ldr r1, _08052E78 adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 bne _08052EB6 ldr r6, _08052E7C ldr r4, [r6] adds r0, r4, 0 bl sub_80981A0 lsls r0, 24 cmp r0, 0 beq _08052E46 ldr r6, _08052E80 ldr r4, [r6] adds r0, r4, 0 bl sub_80981A0 lsls r0, 24 cmp r0, 0 beq _08052E46 ldr r6, _08052E84 ldr r4, [r6] adds r0, r4, 0 bl sub_80981A0 lsls r0, 24 cmp r0, 0 bne _08052E88 _08052E46: adds r0, r4, 0 bl sub_8098170 bl sub_8083E28 ldr r4, [r6, 0x4] movs r0, 0 adds r1, r4, 0 movs r2, 0x1 bl PrintFieldMessage adds r0, r5, 0 adds r1, r4, 0 bl sub_80522E8 b _08052EB6 .align 2, 0 _08052E68: .4byte gUnknown_80FF020 _08052E6C: .4byte gUnknown_80FF080 _08052E70: .4byte gUnknown_80FF0D8 _08052E74: .4byte gUnknown_203B418 _08052E78: .4byte 0x00000644 _08052E7C: .4byte gUnknown_80FF13C _08052E80: .4byte gUnknown_80FF1B4 _08052E84: .4byte gUnknown_80FF22C _08052E88: ldr r6, _08052EBC ldr r4, [r6] adds r0, r4, 0 bl sub_80981A0 lsls r0, 24 cmp r0, 0 bne _08052EB6 adds r0, r4, 0 bl sub_8098170 bl sub_8083E28 ldr r4, [r6, 0x4] movs r0, 0 adds r1, r4, 0 movs r2, 0x1 bl PrintFieldMessage adds r0, r5, 0 adds r1, r4, 0 bl sub_80522E8 _08052EB6: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08052EBC: .4byte gUnknown_80FF290 thumb_func_end sub_8052DD0 thumb_func_start sub_8052EC0 sub_8052EC0: push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 adds r5, r4, 0 adds r0, r4, 0 bl sub_8090BD0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bne _08052EE0 ldr r5, _08052EDC b _08052F22 .align 2, 0 _08052EDC: .4byte gUnknown_80FF310 _08052EE0: cmp r4, 0x37 bne _08052EEC ldr r5, _08052EE8 b _08052F22 .align 2, 0 _08052EE8: .4byte gUnknown_80FF394 _08052EEC: cmp r4, 0x43 bne _08052EF8 ldr r5, _08052EF4 b _08052F22 .align 2, 0 _08052EF4: .4byte gUnknown_80FF3E8 _08052EF8: cmp r4, 0x48 bne _08052F04 ldr r5, _08052F00 b _08052F22 .align 2, 0 _08052F00: .4byte gUnknown_80FF440 _08052F04: cmp r4, 0x7 bne _08052F10 ldr r5, _08052F0C b _08052F22 .align 2, 0 _08052F0C: .4byte gUnknown_80FF4A0 _08052F10: cmp r4, 0x42 bne _08052F1C ldr r5, _08052F18 b _08052F22 .align 2, 0 _08052F18: .4byte gUnknown_80FF518 _08052F1C: cmp r4, 0x45 bne _08052F4C ldr r5, _08052F48 _08052F22: ldr r4, [r5] adds r0, r4, 0 bl sub_80981A0 lsls r0, 24 cmp r0, 0 bne _08052F74 adds r0, r4, 0 bl sub_8098170 bl sub_8083E28 ldr r1, [r5, 0x4] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage b _08052F74 .align 2, 0 _08052F48: .4byte gUnknown_80FF57C _08052F4C: cmp r5, 0x69 bne _08052F74 ldr r5, _08052F7C ldr r4, [r5] adds r0, r4, 0 bl sub_80981A0 lsls r0, 24 cmp r0, 0 bne _08052F74 adds r0, r4, 0 bl sub_8098170 bl sub_8083E28 ldr r1, [r5, 0x4] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage _08052F74: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08052F7C: .4byte gUnknown_80FF5E8 thumb_func_end sub_8052EC0 thumb_func_start sub_8052F80 sub_8052F80: push {lr} ldr r0, _08052F9C ldr r0, [r0] ldrb r0, [r0, 0xA] cmp r0, 0 beq _08052FA4 ldr r0, _08052FA0 ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage b _08052FB0 .align 2, 0 _08052F9C: .4byte gUnknown_203B418 _08052FA0: .4byte gUnknown_80FF6F8 _08052FA4: ldr r0, _08052FB4 ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage _08052FB0: pop {r0} bx r0 .align 2, 0 _08052FB4: .4byte gUnknown_80FF6A4 thumb_func_end sub_8052F80 thumb_func_start sub_8052FB8 sub_8052FB8: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 adds r3, r0, 0 movs r0, 0 mov r8, r0 ldr r0, _08053030 movs r2, 0 adds r0, 0x2 movs r1, 0x1C _08052FD2: strh r2, [r0] adds r0, 0x2 subs r1, 0x1 cmp r1, 0 bge _08052FD2 movs r0, 0 str r0, [sp] movs r1, 0x2 str r1, [sp, 0x4] str r0, [sp, 0x8] str r0, [sp, 0xC] movs r0, 0x30 str r0, [sp, 0x10] adds r0, r3, 0 movs r1, 0 movs r2, 0 movs r3, 0 bl sub_8014248 movs r1, 0 mov r9, r1 ldr r7, _08053034 ldr r2, _08053038 mov r10, r2 _08053002: mov r3, r8 cmp r3, 0x3D bgt _08053040 movs r4, 0x1 add r8, r4 movs r5, 0 mov r1, r8 lsrs r0, r1, 31 adds r6, r1, r0 ldr r4, _0805303C _08053016: adds r0, r5, 0 adds r0, 0xF0 adds r1, r4, 0 asrs r2, r6, 1 movs r3, 0 bl SetBGPaletteBufferColorRGB adds r4, 0x4 adds r5, 0x1 cmp r5, 0x7 ble _08053016 b _080530CA .align 2, 0 _08053030: .4byte gUnknown_202B038 _08053034: .4byte gUnknown_202F1F0 _08053038: .4byte 0x0000f3ff _0805303C: .4byte gUnknown_202D038 _08053040: movs r2, 0x1 add r9, r2 movs r0, 0x8 mov r3, r9 ands r0, r3 cmp r0, 0 beq _080530BE ldrh r0, [r7] ldr r4, _080530D8 adds r1, r4, 0 ands r0, r1 ldr r2, _080530DC adds r1, r2, 0 ands r0, r1 mov r3, r10 ands r0, r3 ldr r4, _080530E0 adds r1, r4, 0 ands r0, r1 ldr r2, _080530E4 adds r1, r2, 0 ands r0, r1 ldr r3, _080530E8 ands r0, r3 movs r4, 0x80 lsls r4, 7 orrs r0, r4 strh r0, [r7] movs r2, 0xFC lsls r2, 2 ldrh r0, [r7, 0x4] movs r3, 0xFC lsls r3, 8 adds r1, r3, 0 ands r0, r1 orrs r0, r2 movs r4, 0 orrs r0, r4 mov r1, r10 ands r0, r1 movs r2, 0xF movs r3, 0xF0 lsls r3, 8 ldr r4, _080530EC adds r1, r4, 0 ands r0, r1 orrs r0, r3 strh r0, [r7, 0x4] movs r1, 0xF0 lsls r1, 3 ldrh r0, [r7, 0x6] ands r2, r0 orrs r2, r1 strh r2, [r7, 0x6] movs r0, 0x70 strh r0, [r7, 0x2] adds r0, r7, 0 movs r1, 0x80 lsls r1, 1 movs r2, 0 movs r3, 0 bl AddSprite _080530BE: ldr r0, _080530F0 ldrh r1, [r0, 0x2] movs r0, 0x3 ands r0, r1 cmp r0, 0 bne _080530F4 _080530CA: bl xxx_draw_string_80144C4 movs r0, 0x9 bl sub_803E46C b _08053002 .align 2, 0 _080530D8: .4byte 0x0000feff _080530DC: .4byte 0x0000fdff _080530E0: .4byte 0x0000efff _080530E4: .4byte 0x0000dfff _080530E8: .4byte 0x00003fff _080530EC: .4byte 0x00000fff _080530F0: .4byte gUnknown_20255F0 _080530F4: mov r0, r8 cmp r0, 0 blt _08053134 ldr r1, _08053178 mov r9, r1 _080530FE: movs r5, 0 mov r7, r8 subs r7, 0x1 mov r2, r8 lsrs r0, r2, 31 adds r6, r2, r0 mov r4, r9 _0805310C: adds r0, r5, 0 adds r0, 0xF0 adds r1, r4, 0 asrs r2, r6, 1 movs r3, 0 bl SetBGPaletteBufferColorRGB adds r4, 0x4 adds r5, 0x1 cmp r5, 0x7 ble _0805310C bl xxx_draw_string_80144C4 movs r0, 0x9 bl sub_803E46C mov r8, r7 mov r3, r8 cmp r3, 0 bge _080530FE _08053134: movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x9 bl sub_803E46C bl sub_8040238 movs r5, 0 ldr r4, _08053178 _0805314C: adds r0, r5, 0 adds r0, 0xF0 adds r1, r4, 0 bl SetBGPaletteBufferColorArray adds r4, 0x4 adds r5, 0x1 cmp r5, 0x7 ble _0805314C movs r0, 0x8 movs r1, 0x9 bl sub_803E708 add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08053178: .4byte gUnknown_202D038 thumb_func_end sub_8052FB8 thumb_func_start sub_805317C sub_805317C: push {lr} ldr r0, _08053198 ldr r1, [r0] movs r2, 0xCF lsls r2, 3 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0x1 beq _0805319C subs r2, 0x34 adds r0, r1, r2 ldrb r0, [r0] b _0805319E .align 2, 0 _08053198: .4byte gUnknown_203B418 _0805319C: movs r0, 0x3F _0805319E: bl sub_809009C pop {r1} bx r1 thumb_func_end sub_805317C thumb_func_start sub_80531A8 sub_80531A8: push {r4-r6,lr} ldr r2, _080531F0 ldr r1, [r2] movs r0, 0 strh r0, [r1, 0x16] movs r0, 0x1 strb r0, [r1, 0xB] movs r4, 0 movs r3, 0 ldr r5, _080531F4 _080531BC: ldr r0, [r2] lsls r1, r4, 6 adds r0, r1 adds r0, r5 strb r3, [r0] ldr r0, [r2] adds r0, r1 ldr r6, _080531F8 adds r0, r6 strb r3, [r0] ldr r0, [r2] adds r0, r1 adds r6, 0x1 adds r0, r6 strb r3, [r0] ldr r0, [r2] adds r0, r1 ldr r1, _080531FC adds r0, r1 strb r3, [r0] adds r4, 0x1 cmp r4, 0x13 ble _080531BC pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080531F0: .4byte gUnknown_203B418 _080531F4: .4byte 0x0001c073 _080531F8: .4byte 0x0001c070 _080531FC: .4byte 0x0001c072 thumb_func_end sub_80531A8 thumb_func_start sub_8053200 sub_8053200: ldr r0, _0805320C ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0xB] bx lr .align 2, 0 _0805320C: .4byte gUnknown_203B418 thumb_func_end sub_8053200 thumb_func_start sub_8053210 sub_8053210: push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 ldr r0, _08053264 mov r12, r0 ldr r3, [r0] movs r0, 0x16 ldrsh r4, [r3, r0] lsls r4, 6 ldr r5, _08053268 adds r0, r4, r5 adds r0, r3, r0 adds r7, r0, 0x3 adds r0, 0x3E mov r8, r0 adds r3, r4 adds r3, r5 movs r0, 0x1 strb r0, [r3] mov r4, r12 ldr r3, [r4] movs r4, 0x16 ldrsh r0, [r3, r4] lsls r0, 6 adds r3, r0 ldr r0, _0805326C adds r3, r0 strb r1, [r3] mov r3, r12 ldr r1, [r3] movs r4, 0x16 ldrsh r0, [r1, r4] lsls r0, 6 adds r1, r0 ldr r0, _08053270 adds r1, r0 strb r2, [r1] ldrb r2, [r6] adds r0, r2, 0 mov r1, r12 b _08053282 .align 2, 0 _08053264: .4byte gUnknown_203B418 _08053268: .4byte 0x0001c070 _0805326C: .4byte 0x0001c071 _08053270: .4byte 0x0001c072 _08053274: cmp r7, r8 bcs _0805327C strb r2, [r7] adds r7, 0x1 _0805327C: adds r6, 0x1 ldrb r2, [r6] adds r0, r2, 0 _08053282: cmp r0, 0 beq _0805328A cmp r0, 0xD bne _08053274 _0805328A: movs r0, 0 strb r0, [r7] ldr r2, [r1] ldrh r0, [r2, 0x16] adds r0, 0x1 strh r0, [r2, 0x16] lsls r0, 16 asrs r0, 16 cmp r0, 0x13 ble _080532A2 movs r0, 0 strh r0, [r2, 0x16] _080532A2: ldr r1, [r1] movs r0, 0x1 strb r0, [r1, 0xB] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8053210 thumb_func_start sub_80532B4 sub_80532B4: push {r4-r6,lr} sub sp, 0xC mov r0, sp bl sub_801317C movs r0, 0x9 movs r1, 0 bl sub_803EAF0 _080532C6: movs r0, 0xD bl sub_803E46C movs r0, 0 bl sub_8008D8C lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _080532C6 ldr r0, _08053374 str r1, [r0] ldr r4, _08053378 strb r1, [r4] bl sub_80533A4 adds r6, r4, 0 _080532E8: movs r5, 0 strb r5, [r6] mov r0, sp movs r1, 0 bl nullsub_34 movs r0, 0 ldr r1, _0805337C bl sub_8014140 adds r4, r0, 0 bl sub_8053430 lsls r0, 24 lsrs r0, 24 negs r1, r0 orrs r1, r0 lsrs r5, r1, 31 adds r0, r4, 0 bl sub_8053540 lsls r0, 24 cmp r0, 0 beq _0805331A movs r5, 0x1 _0805331A: cmp r5, 0 bne _08053324 movs r0, 0xD bl sub_803E46C _08053324: ldrb r1, [r6] movs r5, 0x1 adds r0, r5, 0 ands r0, r1 cmp r0, 0 beq _0805333A movs r0, 0x1 movs r1, 0x8 negs r1, r1 bl sub_805363C _0805333A: ldrb r1, [r6] movs r4, 0x2 adds r0, r4, 0 ands r0, r1 cmp r0, 0 beq _0805334E movs r0, 0 movs r1, 0x72 bl sub_805363C _0805334E: bl sub_80048C8 lsls r0, 24 cmp r0, 0 bne _080532E8 ldr r0, _08053380 ldrh r1, [r0, 0x2] adds r0, r4, 0 ands r0, r1 cmp r0, 0 bne _0805336C mov r0, sp ldrb r0, [r0, 0x2] cmp r0, 0 beq _08053384 _0805336C: bl sub_8083D30 b _08053390 .align 2, 0 _08053374: .4byte gUnknown_202F1F8 _08053378: .4byte gUnknown_202F1FC _0805337C: .4byte gUnknown_8106990 _08053380: .4byte gUnknown_20255F0 _08053384: adds r0, r5, 0 ands r0, r1 cmp r0, 0 beq _080532E8 bl sub_8083D08 _08053390: movs r0, 0 movs r1, 0 bl sub_803EAF0 movs r0, 0x1 add sp, 0xC pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80532B4 thumb_func_start sub_80533A4 sub_80533A4: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 ldr r5, _08053428 ldr r0, [r5] movs r1, 0x16 ldrsh r4, [r0, r1] movs r6, 0x10 subs r4, 0x8 cmp r4, 0 bge _080533BE adds r4, 0x14 _080533BE: movs r0, 0 bl sub_80073B8 mov r8, r5 movs r7, 0x7 _080533C8: lsls r0, r4, 6 ldr r2, _0805342C adds r0, r2 mov r2, r8 ldr r1, [r2] adds r5, r1, r0 ldrb r0, [r5] cmp r0, 0 beq _08053402 ldrb r0, [r5, 0x1] cmp r0, 0 beq _080533F0 movs r0, 0x7 str r0, [sp] movs r0, 0 movs r1, 0 adds r2, r6, 0 movs r3, 0xE0 bl sub_80078A4 _080533F0: adds r1, r6, 0x3 adds r2, r5, 0x3 movs r0, 0xD str r0, [sp] movs r0, 0x8 movs r3, 0 bl xxx_call_draw_string adds r6, 0xE _08053402: adds r4, 0x1 cmp r4, 0x13 ble _0805340A movs r4, 0 _0805340A: subs r7, 0x1 cmp r7, 0 bge _080533C8 movs r0, 0 bl sub_80073E0 movs r0, 0 bl sub_8007334 add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08053428: .4byte gUnknown_203B418 _0805342C: .4byte 0x0001c070 thumb_func_end sub_80533A4 thumb_func_start sub_8053430 sub_8053430: push {r4-r6,lr} sub sp, 0x4 adds r5, r0, 0 ldr r3, _08053454 ldr r0, [r3] movs r2, 0x16 ldrsh r1, [r0, r2] ldr r2, _08053458 ldr r0, [r2] adds r1, r0 movs r6, 0x2 subs r1, 0x9 cmp r1, 0 bge _0805345E _0805344C: adds r1, 0x14 cmp r1, 0 blt _0805344C b _0805345E .align 2, 0 _08053454: .4byte gUnknown_203B418 _08053458: .4byte gUnknown_202F1F8 _0805345C: subs r1, 0x14 _0805345E: cmp r1, 0x13 bgt _0805345C ldr r0, [r3] lsls r1, 6 adds r0, r1 ldr r3, _0805349C adds r0, r3 ldrb r0, [r0] adds r4, r1, 0 cmp r0, 0 beq _08053498 ldr r1, [r2] movs r0, 0xC negs r0, r0 cmp r1, r0 ble _08053498 ldr r2, _080534A0 ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 strb r0, [r2] ldr r0, _080534A4 ldrh r1, [r0, 0x4] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _080534A8 cmp r5, 0x1 beq _080534A8 _08053498: movs r0, 0 b _08053528 .align 2, 0 _0805349C: .4byte 0x0001c070 _080534A0: .4byte gUnknown_202F1FC _080534A4: .4byte gUnknown_20255F0 _080534A8: movs r0, 0 bl sub_8083CE0 movs r0, 0 bl sub_80073B8 ldr r0, _08053530 ldr r2, _08053534 adds r1, r4, r2 ldr r0, [r0] adds r4, r0, r1 ldrb r0, [r4] cmp r0, 0 beq _080534FA movs r0, 0x10 str r0, [sp] movs r0, 0 movs r1, 0 movs r2, 0 movs r3, 0xD0 bl sub_80087EC ldrb r0, [r4, 0x1] cmp r0, 0 beq _080534EA movs r0, 0x7 str r0, [sp] movs r0, 0 movs r1, 0 adds r2, r6, 0 movs r3, 0xE0 bl sub_80078A4 _080534EA: adds r1, r6, 0x3 adds r2, r4, 0x3 movs r0, 0xD str r0, [sp] movs r0, 0x8 movs r3, 0 bl xxx_call_draw_string _080534FA: movs r0, 0 bl sub_80073E0 movs r0, 0xD bl sub_803E46C ldr r5, _08053538 movs r4, 0x6 _0805350A: ldr r1, [r5] movs r0, 0 bl _call_via_r1 movs r0, 0xD bl sub_803E46C subs r4, 0x1 cmp r4, 0 bge _0805350A ldr r1, _0805353C ldr r0, [r1] subs r0, 0x1 str r0, [r1] movs r0, 0x1 _08053528: add sp, 0x4 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08053530: .4byte gUnknown_203B418 _08053534: .4byte 0x0001c070 _08053538: .4byte gUnknown_203B084 _0805353C: .4byte gUnknown_202F1F8 thumb_func_end sub_8053430 thumb_func_start sub_8053540 sub_8053540: push {r4,r5,lr} sub sp, 0x4 adds r3, r0, 0 ldr r0, _08053564 ldr r0, [r0] movs r1, 0x16 ldrsh r2, [r0, r1] ldr r1, _08053568 ldr r0, [r1] adds r4, r2, r0 movs r5, 0x80 cmp r4, 0 bge _0805356E _0805355A: adds r4, 0x14 cmp r4, 0 blt _0805355A b _0805356E .align 2, 0 _08053564: .4byte gUnknown_203B418 _08053568: .4byte gUnknown_202F1F8 _0805356C: subs r4, 0x14 _0805356E: cmp r4, 0x13 bgt _0805356C ldr r0, [r1] cmp r0, 0 bge _08053592 ldr r2, _08053598 ldrb r0, [r2] movs r1, 0x2 orrs r0, r1 strb r0, [r2] ldr r0, _0805359C ldrh r1, [r0, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080535A0 cmp r3, 0x2 beq _080535A0 _08053592: movs r0, 0 b _08053622 .align 2, 0 _08053598: .4byte gUnknown_202F1FC _0805359C: .4byte gUnknown_20255F0 _080535A0: movs r0, 0 bl sub_8083CE0 movs r0, 0 bl sub_80073B8 ldr r1, _0805362C lsls r0, r4, 6 ldr r2, _08053630 adds r0, r2 ldr r1, [r1] adds r4, r1, r0 ldrb r0, [r4] cmp r0, 0 beq _080535F4 movs r0, 0x10 str r0, [sp] movs r0, 0 movs r1, 0 adds r2, r5, 0 movs r3, 0x68 bl sub_80087EC ldrb r0, [r4, 0x1] cmp r0, 0 beq _080535E4 movs r0, 0x7 str r0, [sp] movs r0, 0 movs r1, 0 adds r2, r5, 0 movs r3, 0xE0 bl sub_80078A4 _080535E4: adds r1, r5, 0x3 adds r2, r4, 0x3 movs r0, 0xD str r0, [sp] movs r0, 0x8 movs r3, 0 bl xxx_call_draw_string _080535F4: movs r0, 0 bl sub_80073E0 movs r0, 0xD bl sub_803E46C ldr r5, _08053634 movs r4, 0x6 _08053604: ldr r1, [r5] movs r0, 0 bl _call_via_r1 movs r0, 0xD bl sub_803E46C subs r4, 0x1 cmp r4, 0 bge _08053604 ldr r1, _08053638 ldr r0, [r1] adds r0, 0x1 str r0, [r1] movs r0, 0x1 _08053622: add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805362C: .4byte gUnknown_203B418 _08053630: .4byte 0x0001c070 _08053634: .4byte gUnknown_203B080 _08053638: .4byte gUnknown_202F1F8 thumb_func_end sub_8053540 thumb_func_start sub_805363C sub_805363C: push {r4-r7,lr} mov r12, r1 lsls r0, 24 lsrs r2, r0, 24 ldr r7, _080536D0 ldr r0, _080536D4 ldr r0, [r0] movs r1, 0x8 ands r0, r1 cmp r0, 0 bne _080536C8 ldr r0, _080536D8 ldrh r1, [r0] ldr r3, _080536DC ands r3, r1 ldr r1, _080536E0 ands r3, r1 ldr r1, _080536E4 ands r3, r1 ldr r1, _080536E8 ands r3, r1 ldr r1, _080536EC ands r3, r1 negs r1, r2 orrs r1, r2 asrs r1, 31 movs r2, 0x80 lsls r2, 6 ands r2, r1 ldrh r1, [r0, 0x2] ldr r4, _080536F0 ands r4, r1 orrs r4, r2 movs r5, 0xF ldr r2, _080536F4 movs r6, 0x2 ldrsh r1, [r7, r6] lsls r1, 3 add r1, r12 ands r1, r2 lsls r1, 4 ldrh r2, [r0, 0x6] ands r5, r2 orrs r5, r1 strh r5, [r0, 0x6] movs r2, 0 ldrsh r1, [r7, r2] lsls r1, 3 adds r1, 0x5C ldr r2, _080536F8 ands r1, r2 movs r2, 0xFE lsls r2, 8 ands r4, r2 orrs r4, r1 movs r2, 0x80 lsls r2, 7 ldr r1, _080536FC ands r3, r1 orrs r3, r2 strh r3, [r0] ands r4, r1 strh r4, [r0, 0x2] ldr r1, _08053700 strh r1, [r0, 0x4] movs r1, 0x7F movs r2, 0 movs r3, 0 bl AddSprite _080536C8: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080536D0: .4byte gUnknown_2027370 _080536D4: .4byte gUnknown_202EDCC _080536D8: .4byte gUnknown_202F200 _080536DC: .4byte 0x0000feff _080536E0: .4byte 0x0000fdff _080536E4: .4byte 0x0000f3ff _080536E8: .4byte 0x0000efff _080536EC: .4byte 0x0000dfff _080536F0: .4byte 0x0000c1ff _080536F4: .4byte 0x00000fff _080536F8: .4byte 0x000001ff _080536FC: .4byte 0x00003fff _08053700: .4byte 0x0000f3f0 thumb_func_end sub_805363C thumb_func_start sub_8053704 sub_8053704: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x48 str r0, [sp, 0x10] adds r7, r1, 0 mov r8, r2 mov r9, r3 movs r0, 0 str r0, [sp, 0x14] ldrh r1, [r2, 0x2] str r1, [sp, 0x18] bl _08055570 _08053724: adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _08053734 bl _0805556A _08053734: str r7, [sp, 0x1C] ldr r2, [r5, 0x70] str r2, [sp, 0x24] movs r3, 0xAD lsls r3, 1 adds r0, r2, r3 add r1, sp, 0x20 ldrb r1, [r1] strb r1, [r0] ldr r0, [sp, 0x18] bl sub_8092CD8 lsls r0, 24 cmp r0, 0 beq _080537B4 ldr r6, _080537A4 ldr r0, [r6] ldr r2, _080537A8 adds r0, r2 ldr r4, [r0] cmp r4, 0 beq _080537B4 adds r0, r4, 0 bl sub_80450F8 cmp r0, 0x1 beq _0805376C b _08053A1C _0805376C: cmp r4, r7 bne _08053772 b _08053A1C _08053772: ldr r1, [r4, 0x70] adds r1, 0x98 ldr r0, [r6] ldr r3, _080537AC adds r0, r3 ldr r1, [r1] ldr r0, [r0] cmp r1, r0 beq _08053786 b _08053A1C _08053786: ldr r0, [sp, 0x24] adds r0, 0xFF ldrb r0, [r0] cmp r0, 0 beq _08053792 b _08053A1C _08053792: ldr r0, _080537B0 ldr r2, [r0] adds r0, r7, 0 adds r1, r5, 0 bl sub_80522F4 adds r5, r4, 0 b _08053A1C .align 2, 0 _080537A4: .4byte gUnknown_203B418 _080537A8: .4byte 0x00017b30 _080537AC: .4byte 0x00017b3c _080537B0: .4byte gUnknown_80FCD28 _080537B4: adds r0, r7, 0 mov r1, r8 bl sub_8071A1C lsls r0, 24 lsrs r0, 24 cmp r0, 0x5 bne _08053854 ldr r2, _08053844 ldr r0, [r2] ldr r1, _08053848 adds r0, r1 ldr r0, [r0] cmp r0, 0 beq _08053854 adds r4, r0, 0 str r2, [sp, 0x44] bl sub_80450F8 ldr r2, [sp, 0x44] cmp r0, 0x1 beq _080537E2 b _08053A1C _080537E2: ldr r6, [r4, 0x70] adds r1, r6, 0 adds r1, 0x98 ldr r0, [r2] ldr r2, _0805384C adds r0, r2 ldr r1, [r1] ldr r0, [r0] cmp r1, r0 beq _080537F8 b _08053A1C _080537F8: adds r0, r4, 0 adds r1, r7, 0 movs r2, 0x1 movs r3, 0 bl sub_8071598 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0805380E b _08053A1C _0805380E: ldr r0, [sp, 0x24] adds r0, 0xFF ldrb r0, [r0] cmp r0, 0 bne _08053822 adds r0, r6, 0 adds r0, 0xFF ldrb r0, [r0] cmp r0, 0 beq _08053828 _08053822: cmp r5, r4 beq _08053828 b _08053A1C _08053828: adds r0, r4, 0 bl sub_8042930 ldr r0, _08053850 ldr r2, [r0] adds r0, r7, 0 adds r1, r5, 0 bl sub_80522F4 adds r5, r4, 0 movs r3, 0x1 str r3, [sp, 0x2C] b _08053A1C .align 2, 0 _08053844: .4byte gUnknown_203B418 _08053848: .4byte 0x00017b2c _0805384C: .4byte 0x00017b38 _08053850: .4byte gUnknown_80FCD0C _08053854: adds r0, r5, 0 movs r1, 0x2C bl sub_8046CB0 lsls r0, 24 cmp r0, 0 bne _08053864 b _08053A1C _08053864: adds r0, r5, 0 movs r1, 0 bl sub_8070D04 lsls r0, 24 cmp r0, 0 beq _08053874 b _08053A1C _08053874: adds r0, r7, 0 mov r1, r8 movs r2, 0 bl sub_807CD64 movs r1, 0xF0 ands r1, r0 cmp r1, 0 beq _08053888 b _08053A1C _08053888: ldr r1, [sp, 0x24] movs r2, 0x9E lsls r2, 1 adds r0, r1, r2 ldr r0, [r0] bl sub_8094450 ldr r1, _080538C4 movs r3, 0 ldrsh r1, [r1, r3] cmp r0, r1 bge _080538A2 b _08053A1C _080538A2: ldr r0, [sp, 0x24] adds r0, 0xFF ldrb r0, [r0] cmp r0, 0 beq _080538AE b _08053A1C _080538AE: ldr r0, [sp, 0x24] adds r0, 0x46 ldrb r4, [r0] mov r10, r4 bl sub_80441BC lsls r0, 24 cmp r0, 0 beq _080538CC ldr r0, _080538C8 b _080539FA .align 2, 0 _080538C4: .4byte gUnknown_80F5006 _080538C8: .4byte gUnknown_80FDD88 _080538CC: movs r0, 0 str r0, [sp, 0x34] movs r2, 0x9E lsls r2, 1 ldr r1, [sp, 0x24] adds r2, r1, r2 str r2, [sp, 0x3C] _080538DA: movs r3, 0x1 add r10, r3 movs r0, 0x7 mov r1, r10 ands r1, r0 mov r10, r1 movs r2, 0x4 ldrsh r0, [r5, r2] ldr r1, _080539B4 mov r3, r10 lsls r2, r3, 2 adds r2, r1 movs r3, 0 ldrsh r1, [r2, r3] adds r0, r1 movs r3, 0x6 ldrsh r1, [r5, r3] movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 bl sub_804954C ldr r0, [r0, 0x10] str r0, [sp, 0x38] bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080539DC ldr r0, [sp, 0x38] bl sub_80450F8 cmp r0, 0x1 bne _080539DC adds r0, r5, 0 bl sub_8045888 lsls r0, 24 mov r1, sp adds r1, 0xC str r1, [sp, 0x40] cmp r0, 0 beq _0805397C movs r6, 0x17 _08053932: adds r0, r5, 0 adds r1, r4, 0 bl sub_806CE68 movs r0, 0x2 movs r1, 0x43 bl sub_803E708 adds r4, 0x1 movs r2, 0x7 ands r4, r2 subs r6, 0x1 cmp r6, 0 bge _08053932 cmp r4, r10 beq _0805396C movs r6, 0x7 _08053954: adds r0, r5, 0 adds r1, r4, 0 bl sub_806CE68 movs r0, 0x2 movs r1, 0x43 bl sub_803E708 adds r4, 0x1 ands r4, r6 cmp r4, r10 bne _08053954 _0805396C: adds r0, r5, 0 adds r1, r4, 0 bl sub_806CE68 movs r0, 0x2 movs r1, 0x43 bl sub_803E708 _0805397C: ldr r3, [sp, 0x3C] ldr r4, [r3] ldr r0, _080539B8 movs r2, 0 ldrsh r1, [r0, r2] add r0, sp, 0x8 bl sub_80943A0 ldr r2, [sp, 0x8] ldr r0, [sp, 0x40] adds r1, r4, 0 bl sub_80942C0 ldr r0, [sp, 0xC] ldr r3, [sp, 0x3C] str r0, [r3] mov r0, r8 ldrh r1, [r0, 0x2] ldr r0, _080539BC cmp r1, r0 bne _080539C4 ldr r0, _080539C0 ldr r2, [r0] adds r0, r7, 0 adds r1, r5, 0 bl sub_80522F4 b _080539D0 .align 2, 0 _080539B4: .4byte gUnknown_80F4448 _080539B8: .4byte gUnknown_80F5006 _080539BC: .4byte 0x00000163 _080539C0: .4byte gUnknown_80FDDA8 _080539C4: ldr r0, _080539D8 ldr r2, [r0] adds r0, r7, 0 adds r1, r5, 0 bl sub_80522F4 _080539D0: str r5, [sp, 0x20] ldr r5, [sp, 0x38] b _080539E8 .align 2, 0 _080539D8: .4byte gUnknown_80FDD20 _080539DC: ldr r1, [sp, 0x34] adds r1, 0x1 str r1, [sp, 0x34] cmp r1, 0x7 bgt _080539E8 b _080538DA _080539E8: ldr r2, [sp, 0x34] cmp r2, 0x8 bne _08053A1C mov r3, r8 ldrh r1, [r3, 0x2] ldr r0, _08053A08 cmp r1, r0 bne _08053A10 ldr r0, _08053A0C _080539FA: ldr r2, [r0] adds r0, r7, 0 adds r1, r5, 0 bl sub_80522F4 b _08053A1C .align 2, 0 _08053A08: .4byte 0x00000163 _08053A0C: .4byte gUnknown_80FDDAC _08053A10: ldr r0, _08053AD8 ldr r2, [r0] adds r0, r7, 0 adds r1, r5, 0 bl sub_80522F4 _08053A1C: ldr r1, _08053ADC ldr r0, [r1] adds r0, 0x1 str r0, [r1] ldr r1, _08053AE0 ldr r0, [r1] adds r0, 0x1 str r0, [r1] ldr r0, [r5, 0x70] str r0, [sp, 0x24] movs r6, 0xAD lsls r6, 1 adds r1, r0, r6 movs r0, 0 strb r0, [r1] ldr r1, [sp, 0x24] ldrb r0, [r1, 0x6] cmp r0, 0 beq _08053A4C movs r2, 0xB6 lsls r2, 1 adds r1, r2 ldr r0, [r7, 0x4] str r0, [r1] _08053A4C: adds r0, r5, 0 bl sub_806A1E8 adds r0, r7, 0 adds r1, r5, 0 bl sub_807A96C movs r4, 0 adds r0, r7, 0 mov r1, r8 bl sub_80570AC lsls r0, 24 cmp r0, 0 bne _08053A7E mov r3, r8 ldrh r1, [r3, 0x2] adds r0, r7, 0 bl sub_805755C lsls r0, 24 lsrs r0, 24 negs r1, r0 orrs r1, r0 lsrs r4, r1, 31 _08053A7E: ldr r0, [sp, 0x2C] cmp r0, 0 beq _08053A86 b _08053BAE _08053A86: ldr r0, [sp, 0x24] adds r0, 0xC4 ldrb r0, [r0] cmp r0, 0x5 bne _08053AE8 ldr r0, [sp, 0x18] bl sub_8092CC0 lsls r0, 24 cmp r0, 0 beq _08053B5C adds r0, r7, 0 adds r1, r5, 0 bl sub_8055988 lsls r0, 24 cmp r0, 0 beq _08053B5C ldr r0, _08053AE4 ldr r2, [r0] adds r0, r7, 0 adds r1, r5, 0 bl sub_80522F4 adds r0, r5, 0 bl sub_8041B48 adds r0, r5, 0 adds r1, r7, 0 bl sub_80559DC adds r5, r7, 0 ldr r1, [r7, 0x70] str r1, [sp, 0x24] adds r0, r1, r6 add r2, sp, 0x2C ldrb r2, [r2] strb r2, [r0] movs r3, 0x1 str r3, [sp, 0x30] b _08053B5C .align 2, 0 _08053AD8: .4byte gUnknown_80FDD48 _08053ADC: .4byte gUnknown_202F208 _08053AE0: .4byte gUnknown_202F20C _08053AE4: .4byte gUnknown_80FC52C _08053AE8: cmp r0, 0xB bne _08053B5C adds r0, r7, 0 mov r1, r8 movs r2, 0 bl sub_807CD64 lsls r0, 16 asrs r1, r0, 16 ldr r0, _08053C88 ldr r2, [sp, 0x18] cmp r2, r0 beq _08053B5C adds r0, 0x32 cmp r2, r0 beq _08053B5C cmp r4, 0 bne _08053B5C movs r0, 0xF ands r0, r1 cmp r0, 0 beq _08053B20 cmp r0, 0x4 beq _08053B20 cmp r0, 0x5 beq _08053B20 cmp r0, 0x2 bne _08053B5C _08053B20: adds r0, r7, 0 adds r1, r5, 0 bl sub_8055988 lsls r0, 24 cmp r0, 0 beq _08053B5C ldr r0, _08053C8C ldr r2, [r0] adds r0, r7, 0 adds r1, r5, 0 bl sub_80522F4 adds r0, r5, 0 bl sub_8041BA8 adds r0, r5, 0 adds r1, r7, 0 bl sub_80559DC adds r5, r7, 0 ldr r3, [r7, 0x70] str r3, [sp, 0x24] movs r0, 0xAD lsls r0, 1 adds r1, r3, r0 movs r0, 0 strb r0, [r1] movs r1, 0x1 str r1, [sp, 0x30] _08053B5C: ldr r2, [sp, 0x2C] cmp r2, 0 bne _08053BAE ldr r0, [sp, 0x24] adds r0, 0xC4 ldrb r0, [r0] cmp r0, 0x7 bne _08053BAE adds r0, r7, 0 mov r1, r8 movs r2, 0 bl sub_807CD64 lsls r0, 16 movs r1, 0xF0 lsls r1, 12 ands r1, r0 asrs r1, 16 cmp r1, 0 beq _08053B90 cmp r1, 0x4 beq _08053B90 cmp r1, 0x5 beq _08053B90 cmp r1, 0x2 bne _08053BAE _08053B90: cmp r4, 0 bne _08053BAE ldr r0, _08053C90 adds r1, r5, 0 movs r2, 0 bl sub_8045B94 ldr r0, _08053C94 ldr r2, [r0] adds r0, r7, 0 adds r1, r5, 0 bl sub_80522F4 movs r3, 0 str r3, [sp, 0x28] _08053BAE: adds r0, r5, 0 mov r1, r8 bl sub_80571F0 lsls r0, 24 cmp r0, 0 beq _08053BC0 movs r0, 0 str r0, [sp, 0x28] _08053BC0: ldr r1, [sp, 0x28] cmp r1, 0 beq _08053C4A adds r0, r5, 0 movs r1, 0x3C bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _08053BFA mov r0, r8 bl sub_8092D08 lsls r0, 24 cmp r0, 0 beq _08053BFA ldr r0, _08053C90 adds r1, r5, 0 movs r2, 0 bl sub_8045B94 ldr r0, _08053C98 ldr r2, [r0] adds r0, r7, 0 adds r1, r5, 0 bl sub_80522F4 movs r2, 0 str r2, [sp, 0x28] _08053BFA: ldr r3, [sp, 0x28] cmp r3, 0 beq _08053C4A movs r0, 0 ldr r1, [sp, 0x30] cmp r1, 0 bne _08053C0A movs r0, 0x1 _08053C0A: adds r2, r0, 0 mov r3, r8 ldrh r1, [r3, 0x2] cmp r1, 0x68 beq _08053C20 ldr r0, _08053C9C cmp r1, r0 beq _08053C20 subs r0, 0x4 cmp r1, r0 bne _08053C22 _08053C20: movs r2, 0 _08053C22: str r2, [sp] adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 movs r3, 0 bl sub_8056B34 lsls r0, 24 cmp r0, 0 bne _08053C3A movs r0, 0 str r0, [sp, 0x28] _08053C3A: ldr r1, [sp, 0x28] cmp r1, 0 beq _08053C4A ldr r2, [sp, 0x2C] cmp r2, 0 beq _08053C4A movs r3, 0 str r3, [sp, 0x28] _08053C4A: adds r0, r5, 0 bl sub_8045888 lsls r0, 24 cmp r0, 0 beq _08053C6A movs r0, 0x4 movs r1, 0x4A bl sub_803E708 adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 movs r3, 0 bl sub_8041168 _08053C6A: ldr r0, [sp, 0x28] cmp r0, 0 beq _08053C72 b _08053D72 _08053C72: ldr r0, [r7, 0x70] ldrb r0, [r0, 0x7] cmp r0, 0 beq _08053CA0 movs r1, 0xAB lsls r1, 1 adds r0, r7, 0 bl sub_80421C0 b _08053CA8 .align 2, 0 _08053C88: .4byte 0x00000163 _08053C8C: .4byte gUnknown_80FC558 _08053C90: .4byte gUnknown_202DFE8 _08053C94: .4byte gUnknown_80FC574 _08053C98: .4byte gUnknown_8100524 _08053C9C: .4byte 0x00000131 _08053CA0: ldr r1, _08053CC4 adds r0, r7, 0 bl sub_80421C0 _08053CA8: ldr r0, _08053CC8 ldr r1, [r5, 0x70] movs r2, 0 bl sub_80708B4 cmp r7, r5 bne _08053CD0 ldr r0, _08053CCC ldr r2, [r0] adds r0, r7, 0 adds r1, r7, 0 bl sub_80522F4 b _08053D10 .align 2, 0 _08053CC4: .4byte 0x00000157 _08053CC8: .4byte gUnknown_202DFE8 _08053CCC: .4byte gUnknown_80F9380 _08053CD0: adds r0, r7, 0 adds r1, r5, 0 movs r2, 0x1 movs r3, 0 bl sub_8071598 lsls r0, 24 cmp r0, 0 bne _08053CEC ldr r0, _08053CE8 b _08053CF4 .align 2, 0 _08053CE8: .4byte gUnknown_80F9384 _08053CEC: ldr r1, [sp, 0x2C] cmp r1, 0 beq _08053D04 ldr r0, _08053D00 _08053CF4: ldr r2, [r0] adds r0, r7, 0 adds r1, r5, 0 bl sub_80522F4 b _08053D10 .align 2, 0 _08053D00: .4byte gUnknown_80F93A4 _08053D04: ldr r0, _08053D48 ldr r2, [r0] adds r0, r7, 0 adds r1, r5, 0 bl sub_80522F4 _08053D10: adds r0, r5, 0 bl sub_8045888 lsls r0, 24 cmp r0, 0 beq _08053D2A ldr r0, _08053D4C movs r3, 0x1 negs r3, r3 adds r1, r5, 0 movs r2, 0x1 bl sub_803ED30 _08053D2A: ldr r2, [sp, 0x18] cmp r2, 0xCC beq _08053D50 cmp r2, 0xCE bne _08053D60 movs r0, 0x1 str r0, [sp] adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059FC8 b _08053D60 .align 2, 0 _08053D48: .4byte gUnknown_80F9364 _08053D4C: .4byte 0x0000270f _08053D50: movs r0, 0x1 str r0, [sp] adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059E54 _08053D60: bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _08053D6E bl _080555A2 _08053D6E: bl _08055568 _08053D72: ldr r0, [sp, 0x24] adds r0, 0xFB ldrb r3, [r0] mov r10, r3 ldr r2, [sp, 0x24] ldrb r1, [r2, 0x6] adds r6, r0, 0 cmp r1, 0 beq _08053DA8 mov r3, r8 ldrh r1, [r3, 0x2] ldr r0, _08053E88 cmp r1, r0 beq _08053D9E mov r0, r9 cmp r0, 0 bne _08053D9E mov r1, r10 cmp r1, 0 bne _08053D9E movs r0, 0x1 strb r0, [r6] _08053D9E: ldr r2, [sp, 0x68] cmp r2, 0x1 bne _08053DA8 movs r0, 0x2 strb r0, [r6] _08053DA8: ldr r3, [sp, 0x24] movs r0, 0xB2 lsls r0, 1 adds r4, r3, r0 ldrb r0, [r4] cmp r0, 0xFF bne _08053DCE adds r0, r5, 0 movs r1, 0xE3 bl sub_80717A4 lsls r0, 24 cmp r0, 0 beq _08053DCE adds r0, r5, 0x4 adds r1, r7, 0x4 bl sub_80983D8 strb r0, [r4] _08053DCE: ldr r1, [sp, 0x24] ldr r2, _08053E8C adds r4, r1, r2 ldrb r0, [r4] cmp r0, 0xFF bne _08053DF2 adds r0, r5, 0 movs r1, 0x19 bl sub_80717A4 lsls r0, 24 cmp r0, 0 beq _08053DF2 adds r0, r5, 0x4 adds r1, r7, 0x4 bl sub_80983D8 strb r0, [r4] _08053DF2: adds r0, r5, 0 movs r1, 0x39 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _08053E4A adds r0, r7, 0 adds r1, r5, 0 movs r2, 0x1 movs r3, 0 bl sub_8071598 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08053E4A mov r3, r8 ldrh r1, [r3, 0x2] ldr r0, _08053E88 cmp r1, r0 beq _08053E4A subs r0, 0x3 cmp r1, r0 beq _08053E4A mov r0, r9 cmp r0, 0 bne _08053E4A ldrb r0, [r3, 0x4] cmp r0, 0 beq _08053E4A ldrb r1, [r3, 0x1] movs r4, 0x10 movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _08053E42 adds r0, r7, 0 bl sub_8042950 _08053E42: mov r1, r8 ldrb r0, [r1, 0x1] orrs r0, r4 strb r0, [r1, 0x1] _08053E4A: adds r0, r7, 0 mov r1, r8 movs r2, 0 bl sub_807CD64 movs r1, 0xF ands r1, r0 cmp r1, 0 bne _08053E64 adds r0, r7, 0 adds r1, r5, 0 bl sub_806F450 _08053E64: ldr r2, [sp, 0x24] movs r3, 0xAC lsls r3, 1 adds r0, r2, r3 movs r1, 0x1 strb r1, [r0] movs r0, 0xCE lsls r0, 1 ldr r1, [sp, 0x18] cmp r1, r0 bls _08053E7E bl _080554C0 _08053E7E: lsls r0, r1, 2 ldr r1, _08053E90 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08053E88: .4byte 0x00000163 _08053E8C: .4byte 0x00000165 _08053E90: .4byte _08053E94 .align 2, 0 _08053E94: .4byte _08054520 .4byte _08054DB8 .4byte _08054C18 .4byte _08054888 .4byte _08054878 .4byte _08054D80 .4byte _08054D8E .4byte _08054FB0 .4byte _08054FE8 .4byte _08054508 .4byte _08054FF6 .4byte _08055270 .4byte _08055190 .4byte _080548C8 .4byte _080552B6 .4byte _08054E1A .4byte _0805527E .4byte _080551F2 .4byte _08054508 .4byte _080549C8 .4byte _08054EEC .4byte _08054968 .4byte _08054EDE .4byte _0805528C .4byte _08054B18 .4byte _08055422 .4byte _08054E1A .4byte _08054AB8 .4byte _08054508 .4byte _0805529A .4byte _080547A8 .4byte _08055200 .4byte _0805460A .4byte _08054948 .4byte _08054878 .4byte _0805519E .4byte _080545AE .4byte _0805514A .4byte _08054CD4 .4byte _08054508 .4byte _08055396 .4byte _08054EB4 .4byte _08054A68 .4byte _08054C28 .4byte _08054A58 .4byte _08054E8A .4byte _080547A8 .4byte _08054DD4 .4byte _080553DC .4byte _0805504A .4byte _080554A0 .4byte _08054CD4 .4byte _0805455E .4byte _0805456E .4byte _080552D2 .4byte _080549B8 .4byte _08055004 .4byte _0805453E .4byte _08054F94 .4byte _08054818 .4byte _08054D56 .4byte _08054CE2 .4byte _080547B8 .4byte _08054788 .4byte _08054868 .4byte _08054868 .4byte _08054F16 .4byte _08055112 .4byte _080545AE .4byte _080545FA .4byte _08054F94 .4byte _080546D8 .4byte _08054F86 .4byte _08054928 .4byte _0805459E .4byte _08054D64 .4byte _08054AD8 .4byte _080550DA .4byte _08054E52 .4byte _08054878 .4byte _08054AD8 .4byte _080545AE .4byte _080546E8 .4byte _08054ED0 .4byte _08054878 .4byte _080550CC .4byte _0805462A .4byte _080545AE .4byte _08054E28 .4byte _0805462A .4byte _080545AE .4byte _08054B78 .4byte _08055120 .4byte _080546E8 .4byte _08054C48 .4byte _08054CC6 .4byte _080551D6 .4byte _08054928 .4byte _08054FA2 .4byte _08054A38 .4byte _08054B58 .4byte _0805457E .4byte _08055090 .4byte _080547E8 .4byte _08055238 .4byte _08054C18 .4byte _08054A88 .4byte _080546F8 .4byte _08054DF0 .4byte _0805464A .4byte _08054A78 .4byte _08054878 .4byte _08054B98 .4byte _0805512E .4byte _080546F8 .4byte _08055414 .4byte _08054AF8 .4byte _08054C78 .4byte _0805452E .4byte _0805536C .4byte _08054768 .4byte _080550DA .4byte _08054DC6 .4byte _080550E8 .4byte _08054858 .4byte _080545FA .4byte _08054508 .4byte _080547B8 .4byte _08055104 .4byte _08054898 .4byte _08054BF8 .4byte _080545CA .4byte _08054508 .4byte _08054778 .4byte _08054BE8 .4byte _08054B08 .4byte _08054508 .4byte _080553B2 .4byte _08055388 .4byte _08054798 .4byte _08054AE8 .4byte _08054BD8 .4byte _08054EA6 .4byte _080545FA .4byte _08054768 .4byte _08054508 .4byte _08054EA6 .4byte _08054738 .4byte _080549F8 .4byte _08054748 .4byte _080545DA .4byte _08054B48 .4byte _08054838 .4byte _08054FBE .4byte _08054508 .4byte _080550F6 .4byte _08054FDA .4byte _0805456E .4byte _08054508 .4byte _08054A48 .4byte _08055166 .4byte _08054508 .4byte _080546C8 .4byte _08054508 .4byte _08054B38 .4byte _08054C38 .4byte _08054508 .4byte _08054508 .4byte _08054508 .4byte _08054988 .4byte _08054AC8 .4byte _080548C8 .4byte _080550BE .4byte _08054C58 .4byte _08054508 .4byte _08054508 .4byte _08054508 .4byte _080548B8 .4byte _08054508 .4byte _08054508 .4byte _08054508 .4byte _080549D8 .4byte _08054508 .4byte _080553C0 .4byte _08055468 .4byte _08055246 .4byte _08054A28 .4byte _08054F5C .4byte _08054758 .4byte _08054508 .4byte _08054508 .4byte _080548C8 .4byte _080548E8 .4byte _08054908 .4byte _080548A8 .4byte _080549B8 .4byte _080548D8 .4byte _08054EC2 .4byte _08054BA8 .4byte _080548D8 .4byte _0805463A .4byte _08054508 .4byte _08054A28 .4byte _08054AF8 .4byte _0805509E .4byte _08054FCC .4byte _08054D28 .4byte _080547D8 .4byte _08054508 .4byte _08054C98 .4byte _08054B28 .4byte _08054508 .4byte _08054DAA .4byte _08054E98 .4byte _08054CB8 .4byte _08054A08 .4byte _08054AC8 .4byte _08054A98 .4byte _08054C78 .4byte _0805461A .4byte _080553A4 .4byte _08054788 .4byte _08054508 .4byte _0805520E .4byte _08054DC6 .4byte _08054E7C .4byte _08054828 .4byte _08054D0C .4byte _0805521C .4byte _08055066 .4byte _0805456E .4byte _08054878 .4byte _08054C68 .4byte _08054DE2 .4byte _080546F8 .4byte _08054768 .4byte _08055182 .4byte _08054D1A .4byte _0805458E .4byte _0805458E .4byte _08054508 .4byte _08054508 .4byte _0805458E .4byte _08054918 .4byte _0805469C .4byte _08055174 .4byte _08054938 .4byte _080545DA .4byte _08054508 .4byte _08055012 .4byte _08054508 .4byte _080545AE .4byte _08054F24 .4byte _08054B78 .4byte _080552E0 .4byte _080546D8 .4byte _08055074 .4byte _08055254 .4byte _08054A28 .4byte _08054C08 .4byte _08054508 .4byte _08054778 .4byte _0805456E .4byte _0805535E .4byte _080547C8 .4byte _080549A8 .4byte _08055326 .4byte _08054AA8 .4byte _08054958 .4byte _0805530A .4byte _0805457E .4byte _08054788 .4byte _08054D3A .4byte _08054EA6 .4byte _080548C8 .4byte _08054728 .4byte _080547F8 .4byte _08054BB8 .4byte _0805513C .4byte _0805463A .4byte _0805463A .4byte _080548F8 .4byte _080552A8 .4byte _080546B8 .4byte _08054958 .4byte _08054508 .4byte _080553F8 .4byte _08054CB8 .4byte _08054978 .4byte _08054778 .4byte _08054508 .4byte _080545FA .4byte _0805456E .4byte _080551C8 .4byte _08054B88 .4byte _08054E0C .4byte _08054E60 .4byte _08054508 .4byte _08054D72 .4byte _08054928 .4byte _08054508 .4byte _080550B0 .4byte _08054A18 .4byte _08054788 .4byte _08055090 .4byte _080550B0 .4byte _08054508 .4byte _08054DAA .4byte _08054508 .4byte _08054708 .4byte _080547C8 .4byte _08054508 .4byte _08054508 .4byte _080551E4 .4byte _08054EFA .4byte _080552D2 .4byte _080551BA .4byte _08055074 .4byte _08054C38 .4byte _080549E8 .4byte _08054AD8 .4byte _08054508 .4byte _08054508 .4byte _08054508 .4byte _08054D48 .4byte _08054680 .4byte _08054808 .4byte _08055492 .4byte _08055406 .4byte _08054DFE .4byte _0805544C .4byte _08054F32 .4byte _08054664 .4byte _080549B8 .4byte _080553EA .4byte _08054718 .4byte _080545AE .4byte _08055430 .4byte _08054BC8 .4byte _08054E1A .4byte _08054CE2 .4byte _08054848 .4byte _08054768 .4byte _08054998 .4byte _0805457E .4byte _0805457E .4byte _08054508 .4byte _08054508 .4byte _08054E6E .4byte _08054FA2 .4byte _08054508 .4byte _08054A88 .4byte _0805454E .4byte _08054508 .4byte _08054AF8 .4byte _08054512 .4byte _080554C0 .4byte _08054CF0 .4byte _080554C0 .4byte _080554C0 .4byte _08054508 .4byte _0805529A .4byte _08054508 .4byte _08055158 .4byte _08054CA8 .4byte _08055318 .4byte _08054508 .4byte _08054F24 .4byte _08054958 .4byte _08054F5C .4byte _080552EE .4byte _08054B68 .4byte _08054CC6 .4byte _08054F40 .4byte _08055058 .4byte _080552FC .4byte _08055476 .4byte _08055484 .4byte _080553CE .4byte _08055326 .4byte _08055090 .4byte _08054E44 .4byte _080548C8 .4byte _08054F08 .4byte _0805543E .4byte _08055350 .4byte _08054C88 .4byte _08054E36 .4byte _08054F6A .4byte _08055020 .4byte _08055334 .4byte _080551AC .4byte _080545EA .4byte _0805545A .4byte _08054D9C .4byte _08055342 .4byte _08055082 .4byte _080554AE .4byte _08055262 .4byte _0805522A .4byte _08054F4E .4byte _08054CFE .4byte _080554C0 .4byte _0805537A .4byte _080554C0 .4byte _080554C0 .4byte _080554A0 .4byte _080552C4 .4byte _080554C0 .4byte _08054F78 .4byte _0805502E .4byte _080554C0 .4byte _0805503C _08054508: movs r3, 0x80 lsls r3, 1 mov r2, r9 str r2, [sp] b _080545B6 _08054512: mov r3, r9 str r3, [sp] adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 movs r3, 0x80 b _080545BC _08054520: mov r0, r9 str r0, [sp] adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 movs r3, 0 b _080545BC _0805452E: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8058F04 bl _080554BA _0805453E: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8058270 bl _080554BA _0805454E: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B968 bl _080554BA _0805455E: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805816C bl _080554BA _0805456E: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_80581D0 bl _080554BA _0805457E: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8058B3C bl _080554BA _0805458E: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805A568 bl _080554BA _0805459E: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8057E1C bl _080554BA _080545AE: movs r3, 0x80 lsls r3, 1 mov r1, r9 str r1, [sp] _080545B6: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 _080545BC: bl sub_8055640 negs r1, r0 orrs r1, r0 lsrs r4, r1, 31 bl _080554C2 _080545CA: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_80590D4 bl _080554BA _080545DA: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_80595EC bl _080554BA _080545EA: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805C138 bl _080554BA _080545FA: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B17C bl _080554BA _0805460A: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8057D20 bl _080554BA _0805461A: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805A2E8 bl _080554BA _0805462A: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805889C bl _080554BA _0805463A: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059E0C bl _080554BA _0805464A: ldr r0, _08054660 ldr r3, [r0] mov r2, r9 str r2, [sp] adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 bl sub_8058C98 bl _080554BA .align 2, 0 _08054660: .4byte gUnknown_8106A50 _08054664: ldr r0, _0805467C ldr r3, [r0] mov r0, r9 str r0, [sp] adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 bl sub_8058C98 bl _080554BA .align 2, 0 _0805467C: .4byte gUnknown_8106A4C _08054680: ldr r0, _08054698 ldr r3, [r0] mov r1, r9 str r1, [sp] adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 bl sub_805B3FC bl _080554BA .align 2, 0 _08054698: .4byte gUnknown_8106A4C _0805469C: ldr r0, _080546B4 ldr r3, [r0] mov r2, r9 str r2, [sp] adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 bl sub_805A5E8 bl _080554BA .align 2, 0 _080546B4: .4byte gUnknown_8106A4C _080546B8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B074 bl _080554BA _080546C8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059928 bl _080554BA _080546D8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8058580 bl _080554BA _080546E8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8058930 bl _080554BA _080546F8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8058C00 bl _080554BA _08054708: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B324 bl _080554BA _08054718: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B910 bl _080554BA _08054728: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805AE74 bl _080554BA _08054738: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059540 bl _080554BA _08054748: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_80595A0 bl _080554BA _08054758: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059D00 bl _080554BA _08054768: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8058FBC bl _080554BA _08054778: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059190 bl _080554BA _08054788: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8058430 bl _080554BA _08054798: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059424 bl _080554BA _080547A8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8057C88 bl _080554BA _080547B8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_80583D8 bl _080554BA _080547C8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805AC90 bl _080554BA _080547D8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805A0A8 bl _080554BA _080547E8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8058B84 bl _080554BA _080547F8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805AECC bl _080554BA _08054808: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B454 bl _080554BA _08054818: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_80582C4 bl _080554BA _08054828: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805A408 bl _080554BA _08054838: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059714 bl _080554BA _08054848: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B808 bl _080554BA _08054858: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059050 bl _080554BA _08054868: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8058478 bl _080554BA _08054878: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_80576F8 bl _080554BA _08054888: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_80576D0 bl _080554BA _08054898: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059080 bl _080554BA _080548A8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059D98 bl _080554BA _080548B8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059AF8 bl _080554BA _080548C8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059AA8 bl _080554BA _080548D8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059DA4 bl _080554BA _080548E8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059D48 bl _080554BA _080548F8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B028 bl _080554BA _08054908: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059D58 bl _080554BA _08054918: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805A588 bl _080554BA _08054928: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8058638 bl _080554BA _08054938: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805A688 bl _080554BA _08054948: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8057D7C bl _080554BA _08054958: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B0BC bl _080554BA _08054968: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8057A0C bl _080554BA _08054978: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B164 bl _080554BA _08054988: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059A18 bl _080554BA _08054998: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B884 bl _080554BA _080549A8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805ACD8 bl _080554BA _080549B8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_80582D4 bl _080554BA _080549C8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8057954 bl _080554BA _080549D8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059B94 bl _080554BA _080549E8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B3B4 bl _080554BA _080549F8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059588 bl _080554BA _08054A08: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805A2B0 bl _080554BA _08054A18: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B2FC bl _080554BA _08054A28: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059CD8 bl _080554BA _08054A38: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8058A7C bl _080554BA _08054A48: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_80598CC bl _080554BA _08054A58: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8057F7C bl _080554BA _08054A68: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8057ED0 bl _080554BA _08054A78: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8058CEC bl _080554BA _08054A88: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8058BF0 bl _080554BA _08054A98: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805A2C8 bl _080554BA _08054AA8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805AD34 bl _080554BA _08054AB8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8057C68 bl _080554BA _08054AC8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059A2C bl _080554BA _08054AD8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_80586DC bl _080554BA _08054AE8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805946C bl _080554BA _08054AF8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8058E5C bl _080554BA _08054B08: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_80591E4 bl _080554BA _08054B18: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8057BC4 bl _080554BA _08054B28: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805A210 bl _080554BA _08054B38: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059988 bl _080554BA _08054B48: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805968C bl _080554BA _08054B58: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8058AAC bl _080554BA _08054B68: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805BE90 bl _080554BA _08054B78: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_80588B8 bl _080554BA _08054B88: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B214 bl _080554BA _08054B98: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8058D38 bl _080554BA _08054BA8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059DC4 bl _080554BA _08054BB8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805AF30 bl _080554BA _08054BC8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B7FC bl _080554BA _08054BD8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_80594E0 bl _080554BA _08054BE8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_80591D8 bl _080554BA _08054BF8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_80590C8 bl _080554BA _08054C08: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805AB48 bl _080554BA _08054C18: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805768C bl _080554BA _08054C28: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8057F24 bl _080554BA _08054C38: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_80599EC bl _080554BA _08054C48: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_80589D4 bl _080554BA _08054C58: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059AC4 bl _080554BA _08054C68: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805A4D4 bl _080554BA _08054C78: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8058EE0 bl _080554BA _08054C88: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805BD70 bl _080554BA _08054C98: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805A120 bl _080554BA _08054CA8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805BA50 bl _080554BA _08054CB8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805A2A0 b _080554BA _08054CC6: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8058A08 b _080554BA _08054CD4: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805815C b _080554BA _08054CE2: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805834C b _080554BA _08054CF0: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805836C b _080554BA _08054CFE: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805C3DC b _080554BA _08054D0C: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805A450 b _080554BA _08054D1A: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805A55C b _080554BA _08054D28: movs r0, 0 str r0, [sp] adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059FC8 b _080554BA _08054D3A: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805AE3C b _080554BA _08054D48: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B3E0 b _080554BA _08054D56: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_80582EC b _080554BA _08054D64: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805867C b _080554BA _08054D72: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B2E4 b _080554BA _08054D80: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8057720 b _080554BA _08054D8E: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8057748 b _080554BA _08054D9C: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805C1BC b _080554BA _08054DAA: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805A23C b _080554BA _08054DB8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8057634 b _080554BA _08054DC6: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805A3DC b _080554BA _08054DD4: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8057FF4 b _080554BA _08054DE2: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805A4FC b _080554BA _08054DF0: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8058C48 b _080554BA _08054DFE: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B5F4 b _080554BA _08054E0C: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B220 b _080554BA _08054E1A: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_80578EC b _080554BA _08054E28: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_80588A8 b _080554BA _08054E36: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805BD7C b _080554BA _08054E44: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805BC70 b _080554BA _08054E52: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_80587E8 b _080554BA _08054E60: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B264 b _080554BA _08054E6E: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B8B0 b _080554BA _08054E7C: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805A3FC b _080554BA _08054E8A: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8057FCC b _080554BA _08054E98: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805A258 b _080554BA _08054EA6: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059528 b _080554BA _08054EB4: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8057E6C b _080554BA _08054EC2: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059DB4 b _080554BA _08054ED0: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8058838 b _080554BA _08054EDE: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8057A98 b _080554BA _08054EEC: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8057974 b _080554BA _08054EFA: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B388 b _080554BA _08054F08: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805BC98 b _080554BA _08054F16: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_80584C0 b _080554BA _08054F24: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805BB74 b _080554BA _08054F32: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B668 b _080554BA _08054F40: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805BEA0 b _080554BA _08054F4E: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805C2AC b _080554BA _08054F5C: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059CF0 b _080554BA _08054F6A: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805BF34 b _080554BA _08054F78: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805C474 b _080554BA _08054F86: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_80585CC b _080554BA _08054F94: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_80582AC b _080554BA _08054FA2: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8058A54 b _080554BA _08054FB0: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805777C b _080554BA _08054FBE: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059790 b _080554BA _08054FCC: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059F38 b _080554BA _08054FDA: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805983C b _080554BA _08054FE8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8057788 b _080554BA _08054FF6: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8057824 b _080554BA _08055004: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805825C b _080554BA _08055012: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805A6C8 b _080554BA _08055020: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805BF40 b _080554BA _0805502E: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805C480 b _080554BA _0805503C: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805C48C b _080554BA _0805504A: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805810C b _080554BA _08055058: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805BEAC b _080554BA _08055066: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805A4C0 b _080554BA _08055074: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805AAD0 b _080554BA _08055082: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805C1F8 b _080554BA _08055090: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B314 b _080554BA _0805509E: movs r0, 0 str r0, [sp] adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059E54 b _080554BA _080550B0: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B2F0 b _080554BA _080550BE: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059AB8 b _080554BA _080550CC: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8058858 b _080554BA _080550DA: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8058770 b _080554BA _080550E8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059004 b _080554BA _080550F6: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_80597F0 b _080554BA _08055104: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059060 b _080554BA _08055112: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8058548 b _080554BA _08055120: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_80588F4 b _080554BA _0805512E: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8058D44 b _080554BA _0805513C: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805AFA4 b _080554BA _0805514A: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8057E28 b _080554BA _08055158: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805BA44 b _080554BA _08055166: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805991C b _080554BA _08055174: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805A640 b _080554BA _08055182: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805A508 b _080554BA _08055190: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805785C b _080554BA _0805519E: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8057D9C b _080554BA _080551AC: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805C128 b _080554BA _080551BA: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B3A8 b _080554BA _080551C8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B208 b _080554BA _080551D6: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8058A18 b _080554BA _080551E4: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B37C b _080554BA _080551F2: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8057948 b _080554BA _08055200: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8057CD0 b _080554BA _0805520E: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805A394 b _080554BA _0805521C: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805A464 b _080554BA _0805522A: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805C2A0 b _080554BA _08055238: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8058BE0 b _080554BA _08055246: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059C8C b _080554BA _08055254: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805AAE0 b _080554BA _08055262: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805C288 b _080554BA _08055270: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805783C b _080554BA _0805527E: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_80578FC b _080554BA _0805528C: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8057BB4 b _080554BA _0805529A: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B9E8 b _080554BA _080552A8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B038 b _080554BA _080552B6: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_80578A4 b _080554BA _080552C4: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805C468 b _080554BA _080552D2: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8058234 b _080554BA _080552E0: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805A85C b _080554BA _080552EE: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805BD88 b _080554BA _080552FC: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805BB98 b _080554BA _0805530A: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805AD54 b _080554BA _08055318: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805BB64 b _080554BA _08055326: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805AD04 b _080554BA _08055334: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805C080 b _080554BA _08055342: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805C1E4 b _080554BA _08055350: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805BED4 b _080554BA _0805535E: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805AB54 b _080554BA _0805536C: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8058F58 b _080554BA _0805537A: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805C3F8 b _080554BA _08055388: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059340 b _080554BA _08055396: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8057E50 b _080554BA _080553A4: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805A31C b _080554BA _080553B2: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059290 b _080554BA _080553C0: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059BAC b _080554BA _080553CE: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805BBA8 b _080554BA _080553DC: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805805C b _080554BA _080553EA: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B734 b _080554BA _080553F8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B0D0 b _080554BA _08055406: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B53C b _080554BA _08055414: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8058DBC b _080554BA _08055422: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8057BEC b _080554BA _08055430: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B740 b _080554BA _0805543E: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805BD64 b _080554BA _0805544C: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B618 b _080554BA _0805545A: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805C1B0 b _080554BA _08055468: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059C80 b _080554BA _08055476: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805BEB8 b _080554BA _08055484: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805BEC8 b _080554BA _08055492: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B464 b _080554BA _080554A0: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805C45C b _080554BA _080554AE: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805C208 _080554BA: lsls r0, 24 lsrs r4, r0, 24 b _080554C2 _080554C0: movs r4, 0 _080554C2: bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _080555A2 ldr r0, [sp, 0x20] bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080554E6 ldr r3, [sp, 0x20] ldr r0, [r3, 0x70] adds r0, 0x46 ldrb r1, [r0] adds r0, r3, 0 bl sub_806CE68 _080554E6: cmp r4, 0 bne _08055510 adds r0, r7, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08055530 adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08055530 ldr r1, [sp, 0x24] ldrb r0, [r1, 0x6] cmp r0, 0 beq _08055530 mov r2, r10 strb r2, [r6] b _08055530 _08055510: mov r0, r8 bl sub_8057088 lsls r0, 24 cmp r0, 0 beq _08055530 adds r0, r7, 0 movs r1, 0 bl sub_8057308 lsls r0, 24 cmp r0, 0 beq _08055530 ldr r1, _08055614 movs r0, 0x1 strb r0, [r1] _08055530: adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08055548 ldr r3, [sp, 0x24] movs r0, 0xAC lsls r0, 1 adds r1, r3, r0 movs r0, 0x1 strb r0, [r1] _08055548: ldr r1, [sp, 0x18] cmp r1, 0x89 beq _08055568 adds r0, r7, 0 bl sub_8055DDC adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 bl sub_8069F9C adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 bl sub_806A120 _08055568: ldr r7, [sp, 0x1C] _0805556A: ldr r2, [sp, 0x14] adds r2, 0x1 str r2, [sp, 0x14] _08055570: ldr r3, [sp, 0x14] cmp r3, 0x3F bgt _080555A2 movs r0, 0 str r0, [sp, 0x20] lsls r0, r3, 2 ldr r1, [sp, 0x10] adds r0, r1 ldr r5, [r0] movs r2, 0x1 str r2, [sp, 0x28] movs r3, 0 str r3, [sp, 0x2C] movs r0, 0 str r0, [sp, 0x30] cmp r5, 0 beq _080555A2 adds r0, r7, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080555A2 bl _08053724 _080555A2: bl sub_8044B28 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _08055604 adds r0, r7, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080555D6 ldr r0, [r7, 0x70] movs r2, 0xAA lsls r2, 1 adds r1, r0, r2 ldrb r0, [r1] cmp r0, 0 beq _080555D6 strb r4, [r1] adds r0, r7, 0 adds r1, r7, 0 movs r2, 0 movs r3, 0 bl sub_807D148 _080555D6: adds r0, r7, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08055604 ldr r0, [r7, 0x70] ldr r3, _08055618 adds r1, r0, r3 ldrb r0, [r1] cmp r0, 0 beq _08055604 movs r0, 0 strb r0, [r1] ldr r1, _0805561C ldr r2, [r1] str r0, [sp] str r0, [sp, 0x4] adds r0, r7, 0 adds r1, r7, 0 movs r3, 0x2 bl sub_8076E20 _08055604: add sp, 0x48 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08055614: .4byte gUnknown_202F222 _08055618: .4byte 0x00000155 _0805561C: .4byte gUnknown_8106A50 thumb_func_end sub_8053704 thumb_func_start sub_8055620 sub_8055620: push {r4,lr} sub sp, 0x4 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _08055636 movs r0, 0x1 _08055636: add sp, 0x4 pop {r4} pop {r1} bx r1 thumb_func_end sub_8055620 thumb_func_start sub_8055640 sub_8055640: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x24 adds r6, r0, 0 mov r10, r1 adds r5, r2, 0 mov r9, r3 ldr r7, [sp, 0x44] adds r1, r5, 0 bl sub_8071A1C adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r6, 0 adds r1, r5, 0 bl sub_8071A44 mov r8, r0 adds r0, r5, 0 bl sub_8092C24 str r0, [sp] add r0, sp, 0x14 str r0, [sp, 0x4] mov r0, r9 str r0, [sp, 0x8] ldrh r0, [r5, 0x2] str r0, [sp, 0xC] movs r0, 0x1 str r0, [sp, 0x10] adds r0, r6, 0 mov r1, r10 adds r2, r4, 0 mov r3, r8 bl sub_806EAF4 adds r0, r5, 0 adds r1, r7, 0 bl sub_8057600 lsls r0, 16 asrs r0, 16 str r0, [sp] adds r0, r6, 0 mov r1, r10 adds r2, r5, 0 add r3, sp, 0x14 bl sub_8055728 add sp, 0x24 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8055640 thumb_func_start sub_80556BC sub_80556BC: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x24 adds r6, r0, 0 mov r9, r1 adds r4, r2, 0 adds r5, r3, 0 ldr r7, [sp, 0x40] lsls r4, 24 lsrs r4, 24 adds r1, r5, 0 bl sub_8071A44 mov r8, r0 adds r0, r5, 0 bl sub_8092C24 str r0, [sp] add r0, sp, 0x14 str r0, [sp, 0x4] str r7, [sp, 0x8] ldrh r0, [r5, 0x2] str r0, [sp, 0xC] movs r0, 0x1 str r0, [sp, 0x10] adds r0, r6, 0 mov r1, r9 adds r2, r4, 0 mov r3, r8 bl sub_806EAF4 adds r0, r5, 0 ldr r1, [sp, 0x44] bl sub_8057600 lsls r0, 16 asrs r0, 16 str r0, [sp] adds r0, r6, 0 mov r1, r9 adds r2, r5, 0 add r3, sp, 0x14 bl sub_8055728 add sp, 0x24 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80556BC thumb_func_start sub_8055728 sub_8055728: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 adds r6, r0, 0 adds r4, r1, 0 adds r5, r2, 0 mov r8, r3 ldr r0, [sp, 0x30] lsls r0, 16 asrs r0, 16 mov r9, r0 movs r7, 0x1 str r7, [sp] adds r0, r6, 0 movs r3, 0x1 bl sub_8056B34 lsls r0, 24 cmp r0, 0 beq _080557C0 movs r0, 0 mov r10, r0 ldrh r1, [r5, 0x2] movs r0, 0x9D lsls r0, 1 cmp r1, r0 bne _08055768 movs r1, 0x1 mov r10, r1 _08055768: adds r0, r4, 0 movs r1, 0x2E bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _08055790 ldr r0, _080557AC ldr r1, [r0] ldr r0, _080557B0 adds r2, r1, r0 ldr r0, _080557B4 strh r0, [r2] ldr r2, _080557B8 adds r0, r1, r2 str r4, [r0] ldr r0, _080557BC adds r1, r0 ldrh r0, [r4, 0x26] str r0, [r1] _08055790: str r7, [sp] mov r1, r9 str r1, [sp, 0x4] str r7, [sp, 0x8] movs r0, 0 str r0, [sp, 0xC] adds r0, r6, 0 adds r1, r4, 0 mov r2, r8 mov r3, r10 bl sub_806D010 b _08055826 .align 2, 0 _080557AC: .4byte gUnknown_203B418 _080557B0: .4byte 0x00000662 _080557B4: .4byte 0x000003e7 _080557B8: .4byte 0x00017b34 _080557BC: .4byte 0x00017b40 _080557C0: ldr r0, _08055808 ldr r1, [r4, 0x70] movs r2, 0 bl sub_80708B4 adds r0, r6, 0 bl sub_8045888 lsls r0, 24 cmp r0, 0 beq _08055814 adds r0, r4, 0 bl sub_8045888 lsls r0, 24 cmp r0, 0 beq _08055814 ldr r0, _0805580C movs r3, 0x1 negs r3, r3 adds r1, r4, 0 movs r2, 0x1 bl sub_803ED30 ldr r0, _08055810 ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_805232C adds r0, r6, 0 adds r1, r4, 0 bl sub_8042238 b _08055820 .align 2, 0 _08055808: .4byte gUnknown_202DFE8 _0805580C: .4byte 0x0000270f _08055810: .4byte gUnknown_80F9688 _08055814: ldr r0, _08055834 ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 _08055820: movs r0, 0x1 mov r2, r8 strb r0, [r2, 0xF] _08055826: mov r1, r8 ldrb r0, [r1, 0xF] cmp r0, 0 beq _08055838 movs r0, 0 b _08055854 .align 2, 0 _08055834: .4byte gUnknown_80F9688 _08055838: adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08055850 ldr r0, [r4, 0x70] movs r2, 0xAD lsls r2, 1 adds r1, r0, r2 movs r0, 0x1 strb r0, [r1] _08055850: mov r1, r8 ldr r0, [r1] _08055854: add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8055728 thumb_func_start sub_8055864 sub_8055864: push {r4-r7,lr} sub sp, 0x20 adds r4, r0, 0 adds r7, r1, 0 adds r5, r2, 0 adds r6, r3, 0 adds r1, r5, 0 bl sub_8071A1C adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 add r0, sp, 0x10 str r0, [sp] adds r0, r4, 0 adds r1, r7, 0 adds r3, r6, 0 bl sub_806F2BC adds r0, r5, 0 ldr r1, [sp, 0x34] bl sub_8057600 lsls r0, 16 asrs r0, 16 movs r5, 0x1 str r5, [sp] str r0, [sp, 0x4] str r5, [sp, 0x8] movs r0, 0 str r0, [sp, 0xC] adds r0, r4, 0 adds r1, r7, 0 add r2, sp, 0x10 movs r3, 0 bl sub_806D010 add r0, sp, 0x10 ldrb r0, [r0, 0xF] cmp r0, 0 beq _080558BA movs r0, 0 b _080558D2 _080558BA: adds r0, r7, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080558D0 ldr r0, [r7, 0x70] movs r1, 0xAD lsls r1, 1 adds r0, r1 strb r5, [r0] _080558D0: ldr r0, [sp, 0x10] _080558D2: add sp, 0x20 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8055864 thumb_func_start sub_80558DC sub_80558DC: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 movs r4, 0x1 movs r2, 0 mov r9, r2 ldr r1, [r1, 0x70] mov r10, r1 bl sub_8092B00 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x1 beq _08055902 cmp r1, 0x7 bne _08055906 _08055902: movs r5, 0x1 mov r9, r5 _08055906: ldr r6, _08055944 mov r8, r6 mov r3, r10 adds r3, 0x5C ldr r7, _08055948 mov r12, r7 lsls r0, r1, 3 adds r0, r1 lsls r0, 2 str r0, [sp, 0x10] adds r2, r3, 0 _0805591C: mov r0, sp mov r1, r8 ldm r1!, {r5-r7} stm r0!, {r5-r7} ldr r1, [r1] str r1, [r0] mov r0, r9 cmp r0, 0 beq _0805594C ldrb r0, [r2] cmp r0, 0xE bne _0805594C mov r0, r10 adds r0, 0xF5 ldrb r0, [r0] cmp r0, 0 bne _0805594C movs r0, 0 b _0805595A .align 2, 0 _08055944: .4byte gUnknown_81069BC _08055948: .4byte gUnknown_80F522C _0805594C: ldrb r0, [r2] lsls r0, 1 ldr r1, [sp, 0x10] adds r0, r1 add r0, r12 movs r5, 0 ldrsh r0, [r0, r5] _0805595A: lsls r0, 2 add r0, sp ldr r0, [r0] muls r4, r0 cmp r4, 0 beq _0805596E adds r2, 0x1 adds r0, r3, 0x1 cmp r2, r0 ble _0805591C _0805596E: adds r0, r4, 0 cmp r0, 0 beq _08055976 movs r0, 0x1 _08055976: add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80558DC thumb_func_start sub_8055988 sub_8055988: push {r4,lr} adds r2, r0, 0 adds r4, r1, 0 cmp r2, r4 beq _080559D4 movs r0, 0x4 ldrsh r1, [r2, r0] movs r3, 0x4 ldrsh r0, [r4, r3] subs r1, r0 cmp r1, 0 bge _080559A2 negs r1, r1 _080559A2: cmp r1, 0x1 bgt _080559D4 movs r0, 0x6 ldrsh r1, [r2, r0] movs r3, 0x6 ldrsh r0, [r4, r3] subs r1, r0 cmp r1, 0 bge _080559B6 negs r1, r1 _080559B6: cmp r1, 0x1 bgt _080559D4 adds r0, r4, 0x4 adds r1, r2, 0x4 bl sub_80983D8 adds r1, r0, 0 adds r0, r4, 0 bl sub_8071138 lsls r0, 24 cmp r0, 0 beq _080559D4 movs r0, 0x1 b _080559D6 _080559D4: movs r0, 0 _080559D6: pop {r4} pop {r1} bx r1 thumb_func_end sub_8055988 thumb_func_start sub_80559DC sub_80559DC: push {r4,r5,lr} adds r5, r0, 0 ldr r4, [r5, 0x70] adds r0, r5, 0x4 adds r1, 0x4 bl sub_80983D8 adds r1, r0, 0 movs r2, 0x7 ands r0, r2 adds r4, 0x46 strb r0, [r4] adds r0, r5, 0 bl sub_806CE68 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80559DC thumb_func_start sub_8055A00 sub_8055A00: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x34 adds r5, r0, 0 mov r9, r1 str r2, [sp, 0x20] str r3, [sp, 0x24] ldr r0, [r5, 0x70] mov r10, r0 mov r7, r9 cmp r7, 0x3 ble _08055A22 movs r0, 0 b _08055DB4 _08055A22: movs r0, 0xBC lsls r0, 1 add r0, r10 movs r1, 0 movs r2, 0 strh r2, [r0] ldr r0, _08055A4C add r0, r10 strb r1, [r0] mov r0, r10 adds r0, 0xBC ldrb r0, [r0] cmp r0, 0x1 bne _08055A58 ldr r0, _08055A50 adds r1, r5, 0 bl sub_8045B94 ldr r0, _08055A54 b _08055A8A .align 2, 0 _08055A4C: .4byte 0x00000159 _08055A50: .4byte gUnknown_202DF98 _08055A54: .4byte gUnknown_80FC714 _08055A58: cmp r0, 0x7 bne _08055A74 ldr r0, _08055A6C adds r1, r5, 0 movs r2, 0 bl sub_8045B94 ldr r0, _08055A70 b _08055A8A .align 2, 0 _08055A6C: .4byte gUnknown_202DF98 _08055A70: .4byte gUnknown_80FC718 _08055A74: mov r0, r10 adds r0, 0xAC ldrb r0, [r0] cmp r0, 0x4 bne _08055AA0 ldr r0, _08055A98 adds r1, r5, 0 movs r2, 0 bl sub_8045B94 ldr r0, _08055A9C _08055A8A: ldr r1, [r0] adds r0, r5, 0 bl sub_80522A8 movs r0, 0 b _08055DB4 .align 2, 0 _08055A98: .4byte gUnknown_202DF98 _08055A9C: .4byte gUnknown_80FC6A8 _08055AA0: ldr r0, _08055B24 strb r1, [r0] ldr r0, _08055B28 str r2, [r0] ldr r0, _08055B2C strb r1, [r0] adds r0, r7, 0x1 movs r2, 0 movs r6, 0x3 movs r1, 0xC0 lsls r1, 1 add r1, r10 _08055AB8: strh r2, [r1] subs r1, 0x2 subs r6, 0x1 cmp r6, 0 bge _08055AB8 movs r6, 0 movs r3, 0x1 adds r7, r0, 0 cmp r7, 0x3 bgt _08055B06 lsls r2, r7, 3 mov r1, r10 adds r0, r1, r2 movs r4, 0x8C lsls r4, 1 adds r0, r4 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08055B06 movs r0, 0x2 mov r8, r0 adds r0, r2, r4 mov r1, r10 adds r2, r0, r1 _08055AEC: adds r6, 0x1 cmp r6, 0x3 bgt _08055B06 adds r3, 0x1 adds r2, 0x8 adds r7, 0x1 cmp r7, 0x3 bgt _08055B06 ldrb r1, [r2] mov r0, r8 ands r0, r1 cmp r0, 0 bne _08055AEC _08055B06: movs r0, 0 str r0, [sp, 0x28] cmp r3, 0x1 ble _08055B12 movs r1, 0x1 str r1, [sp, 0x28] _08055B12: mov r7, r9 lsls r0, r7, 3 movs r1, 0x8C lsls r1, 1 adds r0, r1 add r0, r10 mov r8, r0 b _08055CB4 .align 2, 0 _08055B24: .4byte gUnknown_202F222 _08055B28: .4byte gUnknown_202F208 _08055B2C: .4byte gUnknown_202F221 _08055B30: mov r1, r8 ldrh r0, [r1, 0x2] cmp r0, 0x19 beq _08055B3C cmp r0, 0xE3 bne _08055B4E _08055B3C: adds r0, r5, 0 bl sub_8070B28 lsls r0, 24 cmp r0, 0 bne _08055B5E adds r0, r5, 0 movs r1, 0x1 b _08055B52 _08055B4E: adds r0, r5, 0 movs r1, 0 _08055B52: bl sub_8070D04 lsls r0, 24 cmp r0, 0 beq _08055B5E b _08055CCE _08055B5E: ldr r0, _08055B9C ldrb r0, [r0] cmp r0, 0 beq _08055B68 b _08055CCE _08055B68: ldrb r1, [r6] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08055B74 b _08055C82 _08055B74: movs r2, 0x1 movs r0, 0 str r0, [sp, 0x2C] adds r0, r5, 0 adds r1, r6, 0 str r2, [sp, 0x30] bl sub_80570AC lsls r0, 24 lsrs r4, r0, 24 ldrb r0, [r6, 0x4] ldr r2, [sp, 0x30] cmp r0, 0 beq _08055BA0 cmp r4, 0 bne _08055BBA movs r1, 0x1 str r1, [sp, 0x2C] b _08055BBA .align 2, 0 _08055B9C: .4byte gUnknown_202F221 _08055BA0: cmp r4, 0 bne _08055BBA ldr r0, _08055C08 adds r1, r6, 0 movs r2, 0 bl sub_80928C0 ldr r0, _08055C0C ldr r1, [r0] adds r0, r5, 0 bl sub_80522A8 movs r2, 0 _08055BBA: cmp r2, 0 beq _08055C82 ldr r0, _08055C10 ldr r0, [r0] mov r9, r0 ldr r0, _08055C14 add r0, r10 strb r4, [r0] ldrh r0, [r6, 0x2] cmp r0, 0xE5 bne _08055C20 ldr r0, [r6] ldr r1, [r6, 0x4] str r0, [sp, 0x8] str r1, [sp, 0xC] adds r0, r5, 0 bl sub_8057144 lsls r0, 16 ldr r2, _08055C18 ldr r1, [sp, 0x8] ands r1, r2 orrs r1, r0 str r1, [sp, 0x8] ldr r0, _08055C08 add r1, sp, 0x8 movs r2, 0 bl sub_80928C0 ldr r0, _08055C1C ldr r1, [r0] adds r0, r5, 0 bl sub_80522A8 ldr r0, [sp, 0x28] str r0, [sp] add r1, sp, 0x8 str r1, [sp, 0x4] b _08055C26 .align 2, 0 _08055C08: .4byte gUnknown_202DE58 _08055C0C: .4byte gUnknown_80F93C8 _08055C10: .4byte gUnknown_202F208 _08055C14: .4byte 0x00000159 _08055C18: .4byte 0x0000ffff _08055C1C: .4byte gUnknown_80FD2DC _08055C20: ldr r0, [sp, 0x28] str r0, [sp] str r6, [sp, 0x4] _08055C26: adds r0, r5, 0 ldr r1, [sp, 0x20] ldr r2, [sp, 0x24] ldr r3, [sp, 0x54] bl sub_8055FA0 lsls r0, 24 lsrs r0, 24 ldr r1, [sp, 0x2C] cmp r1, 0 beq _08055C56 cmp r0, 0 beq _08055C56 ldrb r1, [r6, 0x1] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08055C50 movs r0, 0xFB ands r0, r1 b _08055C54 _08055C50: movs r0, 0x8 orrs r0, r1 _08055C54: strb r0, [r6, 0x1] _08055C56: ldr r0, _08055C70 ldr r0, [r0] cmp r9, r0 bne _08055C82 ldr r0, [sp, 0x24] cmp r0, 0 bne _08055C78 ldr r0, _08055C74 ldr r1, [r0] adds r0, r5, 0 bl sub_80522A8 b _08055C82 .align 2, 0 _08055C70: .4byte gUnknown_202F208 _08055C74: .4byte gUnknown_80FC690 _08055C78: ldr r0, _08055DC4 ldr r1, [r0] adds r0, r5, 0 bl sub_80522A8 _08055C82: movs r0, 0x1 bl sub_804178C adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08055CCE bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _08055CCE movs r1, 0x8 add r8, r1 adds r7, 0x1 cmp r7, 0x3 bgt _08055CCE mov r0, r8 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08055CCE _08055CB4: mov r6, r8 adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08055CCE bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _08055CCE b _08055B30 _08055CCE: adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08055D54 movs r6, 0 _08055CDC: lsls r0, r6, 1 movs r1, 0xBD lsls r1, 1 add r1, r10 adds r1, r0 ldrh r0, [r1] cmp r0, 0 beq _08055D4E add r4, sp, 0x10 adds r1, r0, 0 adds r0, r4, 0 bl sub_8092AA8 ldrb r1, [r4] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08055D48 ldrh r0, [r4, 0x2] cmp r0, 0xE5 bne _08055D36 ldr r0, [sp, 0x10] ldr r1, [sp, 0x14] str r0, [sp, 0x18] str r1, [sp, 0x1C] adds r0, r5, 0 bl sub_8057144 lsls r0, 16 ldr r2, _08055DC8 ldr r1, [sp, 0x18] ands r1, r2 orrs r1, r0 str r1, [sp, 0x18] add r4, sp, 0x18 ldr r0, _08055DCC adds r1, r4, 0 movs r2, 0 bl sub_80928C0 ldr r0, _08055DD0 ldr r1, [r0] adds r0, r5, 0 bl sub_80522A8 _08055D36: ldr r1, [sp, 0x28] str r1, [sp] str r4, [sp, 0x4] adds r0, r5, 0 movs r1, 0 ldr r2, [sp, 0x24] ldr r3, [sp, 0x54] bl sub_8055FA0 _08055D48: movs r0, 0x1 bl sub_804178C _08055D4E: adds r6, 0x1 cmp r6, 0x3 ble _08055CDC _08055D54: adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08055DB2 adds r0, r5, 0 bl sub_8071DA4 adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08055DB2 ldr r1, _08055DD4 ldrb r0, [r1] cmp r0, 0 beq _08055DB2 movs r0, 0 strb r0, [r1] adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08055DB2 ldr r4, [r5, 0x70] ldr r1, _08055DD8 adds r0, r5, 0 movs r2, 0x1 bl sub_808417C adds r3, r0, 0 movs r0, 0 str r0, [sp] adds r0, r5, 0 adds r1, r5, 0 movs r2, 0x1 bl sub_8076090 adds r4, 0xFB ldrb r0, [r4] cmp r0, 0 bne _08055DB2 movs r0, 0x1 strb r0, [r4] _08055DB2: movs r0, 0x1 _08055DB4: add sp, 0x34 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08055DC4: .4byte gUnknown_80FC6A4 _08055DC8: .4byte 0x0000ffff _08055DCC: .4byte gUnknown_202DE58 _08055DD0: .4byte gUnknown_80FD2DC _08055DD4: .4byte gUnknown_202F222 _08055DD8: .4byte gUnknown_80F4E70 thumb_func_end sub_8055A00 thumb_func_start sub_8055DDC sub_8055DDC: push {r4-r7,lr} adds r4, r0, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _08055DEC b _08055F62 _08055DEC: ldr r6, [r4, 0x70] movs r7, 0xBC lsls r7, 1 adds r5, r6, r7 ldrh r1, [r5] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08055E10 ldr r0, _08055F68 ldr r1, [r0] adds r0, r4, 0 bl sub_80522A8 adds r0, r4, 0 adds r1, r4, 0 bl sub_80769CC _08055E10: ldrh r1, [r5] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08055E2C ldr r0, _08055F6C ldr r1, [r0] adds r0, r4, 0 bl sub_80522A8 adds r0, r4, 0 adds r1, r4, 0 bl sub_80769CC _08055E2C: ldrh r1, [r5] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08055E48 ldr r0, _08055F70 ldr r1, [r0] adds r0, r4, 0 bl sub_80522A8 adds r0, r4, 0 adds r1, r4, 0 bl sub_80769CC _08055E48: ldrh r1, [r5] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08055E66 ldr r0, _08055F74 ldr r1, [r0] adds r0, r4, 0 bl sub_80522A8 adds r0, r4, 0 adds r1, r4, 0 movs r2, 0x1 bl sub_8077780 _08055E66: ldrh r1, [r5] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _08055E84 ldr r0, _08055F78 ldr r1, [r0] adds r0, r4, 0 bl sub_80522A8 adds r0, r4, 0 adds r1, r4, 0 movs r2, 0x1 bl sub_8077780 _08055E84: ldrh r1, [r5] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _08055EA2 ldr r0, _08055F7C ldr r1, [r0] adds r0, r4, 0 bl sub_80522A8 adds r0, r4, 0 adds r1, r4, 0 movs r2, 0x1 bl sub_80763F8 _08055EA2: ldrh r1, [r5] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08055EC0 ldr r0, _08055F80 ldr r1, [r0] adds r0, r4, 0 bl sub_80522A8 adds r0, r4, 0 adds r1, r4, 0 movs r2, 0x1 bl sub_80763F8 _08055EC0: ldrh r1, [r5] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08055EEA ldr r0, _08055F84 ldr r1, [r0] adds r0, r4, 0 bl sub_80522A8 ldr r1, _08055F88 adds r0, r4, 0 movs r2, 0x1 bl sub_808417C adds r2, r0, 0 adds r0, r4, 0 adds r1, r4, 0 movs r3, 0x1 bl sub_8075C58 _08055EEA: ldrh r1, [r5] movs r0, 0x80 lsls r0, 1 ands r0, r1 cmp r0, 0 beq _08055F0C ldr r0, _08055F8C ldr r1, [r0] adds r0, r4, 0 bl sub_80522A8 adds r0, r4, 0 adds r1, r4, 0 movs r2, 0x1 movs r3, 0x1 bl sub_8076210 _08055F0C: ldrh r1, [r5] movs r0, 0x80 lsls r0, 2 ands r0, r1 cmp r0, 0 beq _08055F2C ldr r0, _08055F90 ldr r1, [r0] adds r0, r4, 0 bl sub_80522A8 adds r0, r4, 0 adds r1, r4, 0 movs r2, 0x1 bl sub_807614C _08055F2C: adds r5, r6, r7 ldrh r1, [r5] movs r0, 0x80 lsls r0, 3 ands r0, r1 cmp r0, 0 beq _08055F5E ldr r0, _08055F94 adds r1, r4, 0 movs r2, 0 bl sub_8045B94 ldr r0, _08055F98 ldr r1, [r0] adds r0, r4, 0 bl sub_80522A8 adds r0, r4, 0 bl sub_80428A0 ldr r0, _08055F9C ldrh r1, [r0] adds r0, r6, 0 adds r0, 0xFA strb r1, [r0] _08055F5E: movs r0, 0 strh r0, [r5] _08055F62: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08055F68: .4byte gUnknown_80FEEA4 _08055F6C: .4byte gUnknown_80FEEC8 _08055F70: .4byte gUnknown_80FEEEC _08055F74: .4byte gUnknown_80FEF0C _08055F78: .4byte gUnknown_80FEF30 _08055F7C: .4byte gUnknown_80FEF4C _08055F80: .4byte gUnknown_80FEF50 _08055F84: .4byte gUnknown_80FEF54 _08055F88: .4byte gUnknown_80F4E74 _08055F8C: .4byte gUnknown_80FEF74 _08055F90: .4byte gUnknown_80FEF98 _08055F94: .4byte gUnknown_202DF98 _08055F98: .4byte gUnknown_80FEFD0 _08055F9C: .4byte gUnknown_80F5004 thumb_func_end sub_8055DDC thumb_func_start sub_8055FA0 sub_8055FA0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x130 adds r5, r0, 0 adds r6, r1, 0 mov r10, r2 str r3, [sp, 0x120] ldr r7, [sp, 0x154] movs r0, 0 mov r8, r0 str r0, [sp, 0xC] movs r0, 0x1 bl sub_804178C ldrh r1, [r7, 0x2] movs r0, 0xA5 lsls r0, 1 cmp r1, r0 bne _08056010 movs r0, 0x69 bl sub_8084100 ldr r1, _08056004 str r0, [r1] add r4, sp, 0x110 ldr r1, _08056008 lsls r0, 3 adds r0, r1 ldrh r1, [r0] adds r0, r4, 0 bl sub_8092A88 ldrb r1, [r7] add r0, sp, 0x110 strb r1, [r0] ldrb r0, [r7, 0x1] strb r0, [r4, 0x1] ldr r0, _0805600C ldr r2, [r0] mov r1, r10 str r1, [sp] movs r0, 0x1 str r0, [sp, 0x4] mov r0, r8 str r0, [sp, 0x8] b _08056056 .align 2, 0 _08056004: .4byte gUnknown_202F228 _08056008: .4byte gUnknown_80F59C8 _0805600C: .4byte gUnknown_80FECBC _08056010: cmp r1, 0x77 bne _08056068 ldr r0, _08056108 ldr r0, [r0] ldr r1, _0805610C adds r0, r1 movs r2, 0 ldrsh r0, [r0, r2] cmp r0, 0 bge _08056026 movs r0, 0 _08056026: cmp r0, 0x4A ble _0805602C movs r0, 0x4A _0805602C: add r4, sp, 0x118 ldr r1, _08056110 lsls r0, 3 adds r0, r1 ldrh r1, [r0] adds r0, r4, 0 bl sub_8092A88 ldrb r1, [r7] add r0, sp, 0x118 strb r1, [r0] ldrb r0, [r7, 0x1] strb r0, [r4, 0x1] ldr r0, _08056114 ldr r2, [r0] mov r0, r10 str r0, [sp] movs r0, 0x1 str r0, [sp, 0x4] mov r1, r8 str r1, [sp, 0x8] _08056056: adds r0, r5, 0 adds r1, r7, 0 add r3, sp, 0xC bl sub_8056468 movs r0, 0x1 bl sub_804178C adds r7, r4, 0 _08056068: movs r2, 0 str r2, [sp, 0x128] adds r0, r5, 0 adds r1, r7, 0 movs r2, 0x1 bl sub_807CD64 movs r4, 0xF0 adds r1, r4, 0 ands r1, r0 cmp r1, 0x50 bne _08056084 movs r0, 0xA str r0, [sp, 0x128] _08056084: adds r0, r5, 0 adds r1, r7, 0 movs r2, 0x1 bl sub_807CD64 adds r1, r4, 0 ands r1, r0 cmp r1, 0x80 bne _080560CC movs r1, 0x1 str r1, [sp, 0x128] ldrh r0, [r7, 0x2] cmp r0, 0x97 bne _080560AE adds r0, r5, 0 bl sub_807E580 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080560CC _080560AE: ldrh r0, [r7, 0x2] bl sub_809422C lsls r0, 24 cmp r0, 0 beq _080560CC adds r0, r5, 0 adds r1, r7, 0 bl sub_80570AC lsls r0, 24 cmp r0, 0 bne _080560CC movs r2, 0 str r2, [sp, 0x128] _080560CC: ldr r0, _08056118 ldr r1, [r5, 0x70] movs r2, 0 bl sub_80708B4 ldr r0, _0805611C adds r1, r7, 0 movs r2, 0 bl sub_80928C0 adds r0, r5, 0 adds r1, r7, 0 bl sub_80570AC lsls r0, 24 cmp r0, 0 beq _08056124 ldr r0, _08056120 ldr r0, [r0] mov r8, r0 ldr r0, [r5, 0x70] adds r0, 0xFF movs r1, 0 strb r1, [r0] adds r0, r5, 0 adds r1, r7, 0 movs r2, 0x1 bl sub_805744C b _08056142 .align 2, 0 _08056108: .4byte gUnknown_203B418 _0805610C: .4byte 0x00003a0e _08056110: .4byte gUnknown_80F5D10 _08056114: .4byte gUnknown_80FECE0 _08056118: .4byte gUnknown_202DF98 _0805611C: .4byte gUnknown_202DE58 _08056120: .4byte gUnknown_80FC72C _08056124: mov r0, r10 cmp r0, 0 bne _08056132 ldrh r0, [r7, 0x2] bl sub_8092CA8 b _08056136 _08056132: ldr r0, _08056194 ldr r0, [r0] _08056136: mov r8, r0 adds r0, r5, 0 adds r1, r7, 0 movs r2, 0x1 bl sub_80573CC _08056142: lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _08056156 cmp r6, 0 beq _08056156 adds r0, r5, 0 adds r1, r7, 0 bl sub_806ACE8 _08056156: ldr r0, [r5, 0x70] adds r0, 0xEC ldrb r0, [r0] cmp r0, 0x1 bne _080561A0 ldrh r0, [r7, 0x2] bl sub_8092CF0 lsls r0, 24 cmp r0, 0 beq _080561A0 ldr r0, _08056198 adds r1, r5, 0 movs r2, 0 bl sub_8045B94 adds r0, r5, 0 mov r1, r8 bl sub_80522A8 movs r0, 0xA movs r1, 0x3F bl sub_803E708 ldr r0, _0805619C _08056188: ldr r1, [r0] adds r0, r5, 0 bl sub_80522A8 _08056190: movs r0, 0 b _08056446 .align 2, 0 _08056194: .4byte gUnknown_80F9158 _08056198: .4byte gUnknown_202DF98 _0805619C: .4byte gUnknown_80FC710 _080561A0: cmp r4, 0 bne _08056214 ldr r0, _080561D4 ldr r1, [r5, 0x70] movs r2, 0 bl sub_80708B4 mov r1, r10 cmp r1, 0 bne _080561E0 ldr r0, _080561D8 adds r1, r7, 0 movs r2, 0 bl sub_80928C0 adds r0, r5, 0 mov r1, r8 bl sub_80522A8 movs r0, 0xA movs r1, 0x3F bl sub_803E708 ldr r0, _080561DC b _08056188 .align 2, 0 _080561D4: .4byte gUnknown_202DF98 _080561D8: .4byte gUnknown_202DE58 _080561DC: .4byte gUnknown_80FC6D0 _080561E0: ldr r0, _0805620C mov r2, r10 lsls r1, r2, 24 lsrs r1, 24 movs r2, 0 bl sub_8090DC4 adds r0, r5, 0 mov r1, r8 bl sub_80522A8 movs r0, 0xA movs r1, 0x3F bl sub_803E708 ldr r0, _08056210 ldr r1, [r0] adds r0, r5, 0 bl sub_80522A8 b _08056190 .align 2, 0 _0805620C: .4byte gUnknown_202DE58 _08056210: .4byte gUnknown_80FC6FC _08056214: ldr r0, _0805625C movs r1, 0 str r1, [r0] ldr r0, _08056260 str r1, [r0] ldr r0, _08056264 str r1, [r0] ldr r0, _08056268 strb r1, [r0] ldr r0, _0805626C strb r1, [r0] ldr r0, _08056270 strb r1, [r0] ldr r0, _08056274 str r1, [r0] ldr r0, _08056278 strb r1, [r0] ldr r0, [sp, 0x150] cmp r0, 0 beq _0805624C ldr r0, [r5, 0x70] ldr r2, _0805627C adds r1, r0, r2 ldrb r0, [r1] cmp r0, 0x3 bhi _0805624C adds r0, 0x1 strb r0, [r1] _0805624C: adds r0, r7, 0 bl sub_8057070 str r0, [sp, 0x124] movs r0, 0 mov r9, r0 b _080563E4 .align 2, 0 _0805625C: .4byte gUnknown_202F214 _08056260: .4byte gUnknown_202F20C _08056264: .4byte gUnknown_202F210 _08056268: .4byte gUnknown_202F218 _0805626C: .4byte gUnknown_202F219 _08056270: .4byte gUnknown_202F21A _08056274: .4byte gUnknown_202F21C _08056278: .4byte gUnknown_202F220 _0805627C: .4byte 0x00000153 _08056280: adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _0805628E b _08056444 _0805628E: bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _0805629A b _08056444 _0805629A: ldr r4, [r5, 0x70] ldr r0, [sp, 0x120] cmp r0, 0 bne _080562AC ldrh r0, [r7, 0x2] cmp r0, 0x19 beq _080562AC cmp r0, 0xE3 bne _080562BE _080562AC: adds r0, r5, 0 bl sub_8070B28 lsls r0, 24 cmp r0, 0 bne _080562CE adds r0, r5, 0 movs r1, 0x1 b _080562C2 _080562BE: adds r0, r5, 0 movs r1, 0 _080562C2: bl sub_8070D04 lsls r0, 24 cmp r0, 0 beq _080562CE b _08056400 _080562CE: movs r1, 0xA5 lsls r1, 1 adds r0, r4, r1 movs r6, 0 strb r6, [r0] ldrh r0, [r7, 0x2] cmp r0, 0x9 bne _080562F4 ldr r4, [r5, 0x70] movs r0, 0x8 bl sub_8084100 adds r4, 0x46 strb r0, [r4] adds r0, r5, 0 bl sub_8069DCC movs r2, 0 str r2, [sp, 0x12C] _080562F4: ldr r0, _080563A0 str r6, [r0] str r6, [sp, 0xC] ldr r0, [sp, 0x128] cmp r0, 0x1 bhi _08056324 add r0, sp, 0xC adds r1, r5, 0 adds r2, r7, 0 bl sub_8056CE8 add r0, sp, 0xC adds r1, r5, 0 bl sub_80574C4 mov r1, r9 cmp r1, 0 beq _08056324 ldr r2, [sp, 0x12C] cmp r2, 0 beq _08056324 ldr r0, [sp, 0xC] cmp r0, 0 beq _08056400 _08056324: mov r0, r10 str r0, [sp] movs r0, 0 mov r1, r9 cmp r1, 0 bne _08056332 movs r0, 0x1 _08056332: str r0, [sp, 0x4] ldr r2, [sp, 0x128] str r2, [sp, 0x8] adds r0, r5, 0 adds r1, r7, 0 mov r2, r8 add r3, sp, 0xC bl sub_8056468 lsls r0, 24 lsrs r4, r0, 24 movs r0, 0 mov r8, r0 ldr r0, _080563A0 ldr r0, [r0] cmp r0, 0 beq _08056358 bl sub_806A1E8 _08056358: ldr r1, [r5, 0x70] adds r0, r1, 0 adds r0, 0xBC ldrb r0, [r0] cmp r0, 0x2 beq _0805637C cmp r0, 0x4 beq _0805637C movs r2, 0xB6 lsls r2, 1 adds r0, r1, r2 mov r2, r8 strh r2, [r0] movs r2, 0xB7 lsls r2, 1 adds r0, r1, r2 mov r1, r8 strh r1, [r0] _0805637C: ldr r1, _080563A4 ldr r0, [r1] adds r0, 0x1 str r0, [r1] ldr r2, [sp, 0x128] cmp r2, 0 beq _080563A8 mov r0, r10 str r0, [sp] ldr r1, [sp, 0x150] str r1, [sp, 0x4] adds r0, r5, 0 adds r1, r7, 0 adds r3, r4, 0 bl sub_80566F8 b _080563B8 .align 2, 0 _080563A0: .4byte gUnknown_203B438 _080563A4: .4byte gUnknown_202F214 _080563A8: ldr r2, [sp, 0x150] str r2, [sp] add r0, sp, 0xC adds r1, r5, 0 adds r2, r7, 0 mov r3, r10 bl sub_8053704 _080563B8: adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08056400 adds r0, r5, 0 bl sub_806CF18 ldr r0, [r5, 0x70] movs r2, 0xA5 lsls r2, 1 adds r1, r0, r2 ldrb r0, [r1] cmp r0, 0 bne _080563E0 strb r0, [r1] adds r0, r5, 0 bl sub_8079764 _080563E0: movs r0, 0x1 add r9, r0 _080563E4: ldr r1, [sp, 0x124] cmp r9, r1 bge _08056400 movs r2, 0x1 str r2, [sp, 0x12C] ldr r0, _08056458 ldrb r0, [r0] cmp r0, 0 bne _08056400 ldr r0, _0805645C ldrb r0, [r0] cmp r0, 0 bne _08056400 b _08056280 _08056400: ldr r0, _08056460 ldrb r0, [r0] cmp r0, 0 beq _08056418 adds r0, r5, 0 adds r1, r5, 0 bl sub_807A324 adds r0, r5, 0 adds r1, r5, 0 bl sub_807A6C8 _08056418: ldr r0, _08056464 ldrb r0, [r0] cmp r0, 0 beq _08056444 adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08056444 ldr r4, [r5, 0x70] adds r0, r5, 0 adds r1, r5, 0 movs r2, 0 bl sub_8077AE4 adds r4, 0xFB ldrb r0, [r4] cmp r0, 0 bne _08056444 movs r0, 0x1 strb r0, [r4] _08056444: movs r0, 0x1 _08056446: add sp, 0x130 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08056458: .4byte gUnknown_202F220 _0805645C: .4byte gUnknown_202F221 _08056460: .4byte gUnknown_202F21A _08056464: .4byte gUnknown_202F219 thumb_func_end sub_8055FA0 thumb_func_start sub_8056468 sub_8056468: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 adds r6, r0, 0 mov r8, r1 mov r9, r2 adds r4, r3, 0 ldr r0, [sp, 0x28] lsls r0, 24 lsrs r0, 24 str r0, [sp] movs r0, 0 mov r10, r0 adds r0, r6, 0 bl sub_8045888 lsls r0, 24 lsrs r0, 24 negs r1, r0 orrs r1, r0 lsrs r7, r1, 31 mov r2, r9 cmp r2, 0 beq _08056518 movs r5, 0 b _080564A6 _080564A2: adds r4, 0x4 adds r5, 0x1 _080564A6: cmp r5, 0x40 bgt _080564BC ldr r0, [r4] cmp r0, 0 beq _080564BC bl sub_8045888 lsls r0, 24 cmp r0, 0 beq _080564A2 movs r7, 0x1 _080564BC: cmp r7, 0 beq _080564F2 ldr r0, _080564DC ldr r1, [r6, 0x70] movs r2, 0 bl sub_80708B4 ldr r0, [sp, 0x24] cmp r0, 0 bne _080564E4 ldr r0, _080564E0 mov r1, r8 movs r2, 0 bl sub_80928C0 b _080564F2 .align 2, 0 _080564DC: .4byte gUnknown_202DF98 _080564E0: .4byte gUnknown_202DE58 _080564E4: ldr r0, _08056508 ldr r2, [sp, 0x24] lsls r1, r2, 24 lsrs r1, 24 movs r2, 0 bl sub_8090DC4 _080564F2: mov r0, r8 ldrh r1, [r0, 0x2] ldr r0, _0805650C cmp r1, r0 beq _08056510 adds r0, r6, 0 mov r1, r9 bl sub_805239C b _08056518 .align 2, 0 _08056508: .4byte gUnknown_202DE58 _0805650C: .4byte 0x00000163 _08056510: adds r0, r6, 0 mov r1, r9 bl sub_80522E8 _08056518: cmp r7, 0 beq _08056544 ldr r2, [sp] cmp r2, 0 beq _0805652A adds r0, r6, 0 mov r1, r8 movs r2, 0x1 b _08056530 _0805652A: adds r0, r6, 0 mov r1, r8 movs r2, 0 _08056530: bl sub_8040BB0 lsls r0, 24 lsrs r0, 24 mov r10, r0 adds r0, r6, 0 mov r1, r8 bl sub_8040DA0 b _08056550 _08056544: ldr r0, [r6, 0x70] adds r0, 0x46 ldrb r1, [r0] adds r0, r6, 0 bl sub_806CE68 _08056550: mov r0, r10 add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8056468 thumb_func_start sub_8056564 sub_8056564: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x18 adds r6, r0, 0 adds r5, r1, 0 adds r7, r2, 0 adds r4, r3, 0 ldr r0, [r6, 0x70] mov r8, r0 ldr r0, _08056680 ldr r0, [r0] ldr r1, _08056684 adds r0, r1 ldrb r0, [r0] mov r9, r0 cmp r0, 0 beq _0805658C b _080566E4 _0805658C: mov r2, r8 movs r1, 0x4 ldrsh r0, [r2, r1] bl sub_808DACC lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bls _080565A4 cmp r4, 0x1 bne _080565A4 b _080566E4 _080565A4: ldrh r4, [r7, 0x2] adds r0, r6, 0 bl sub_807E580 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 movs r2, 0x1 bl sub_80412E0 lsls r0, 16 lsrs r0, 16 bl sub_800ECB8 movs r2, 0x6 ldrsh r4, [r0, r2] movs r1, 0 ldrsh r0, [r5, r1] lsls r1, r0, 1 adds r1, r0 lsls r1, 11 movs r0, 0x2 ldrsh r2, [r5, r0] lsls r0, r2, 1 adds r0, r2 lsls r0, 11 movs r2, 0x80 lsls r2, 5 adds r3, r0, r2 movs r2, 0xC0 lsls r2, 4 adds r0, r1, r2 cmp r0, 0 bge _080565EC adds r0, 0xFF _080565EC: lsls r0, 8 lsrs r0, 16 ldr r1, _08056688 ldr r2, [sp, 0x14] ands r2, r1 orrs r2, r0 str r2, [sp, 0x14] adds r0, r3, 0 cmp r0, 0 bge _08056602 adds r0, 0xFF _08056602: lsls r0, 8 lsrs r0, 16 lsls r0, 16 ldr r1, _0805668C ands r2, r1 orrs r2, r0 str r2, [sp, 0x14] cmp r4, 0 beq _080566E4 ldrh r4, [r7, 0x2] adds r0, r6, 0 bl sub_807E580 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 movs r2, 0x1 bl sub_80412E0 lsls r0, 16 lsrs r0, 16 bl sub_800EF10 bl sub_800EF64 movs r0, 0x5E bl sub_803E46C mov r0, r8 movs r1, 0x4 ldrsh r5, [r0, r1] ldrh r4, [r7, 0x2] adds r0, r6, 0 bl sub_807E580 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 movs r2, 0x1 bl sub_80412E0 adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r5, 0 bl sub_800E710 adds r2, r0, 0 movs r0, 0x1 negs r0, r0 cmp r2, r0 beq _08056690 add r0, sp, 0x8 adds r1, r6, 0 adds r1, 0x28 lsls r2, 24 lsrs r2, 24 bl sub_800569C b _08056694 .align 2, 0 _08056680: .4byte gUnknown_203B418 _08056684: .4byte 0x0001820a _08056688: .4byte 0xffff0000 _0805668C: .4byte 0x0000ffff _08056690: mov r2, r9 str r2, [sp, 0x8] _08056694: ldrh r4, [r7, 0x2] adds r0, r6, 0 bl sub_807E580 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 movs r2, 0x1 bl sub_80412E0 mov r1, sp strh r0, [r1] mov r2, r8 ldrh r0, [r2, 0x4] strh r0, [r1, 0x2] ldr r0, [r6, 0xC] cmp r0, 0 bge _080566BC adds r0, 0xFF _080566BC: asrs r0, 8 strh r0, [r1, 0x4] mov r1, sp ldr r0, [r6, 0x10] cmp r0, 0 bge _080566CA adds r0, 0xFF _080566CA: asrs r0, 8 strh r0, [r1, 0x6] mov r0, r8 adds r0, 0x46 ldrb r0, [r0] str r0, [sp, 0xC] movs r0, 0 str r0, [sp, 0x10] add r1, sp, 0x14 mov r0, sp bl sub_800E308 b _080566E8 _080566E4: movs r0, 0x1 negs r0, r0 _080566E8: add sp, 0x18 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8056564 thumb_func_start sub_80566F8 sub_80566F8: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x54 mov r10, r0 str r1, [sp, 0x1C] str r2, [sp, 0x20] lsls r3, 24 lsrs r3, 24 str r3, [sp, 0x24] movs r0, 0 str r0, [sp, 0x34] movs r7, 0 mov r1, r10 ldr r6, [r1, 0x70] ldr r2, [sp, 0x1C] ldrh r0, [r2, 0x2] bl sub_800ED20 movs r1, 0x2 str r1, [sp, 0x44] cmp r0, 0x1 beq _08056736 movs r2, 0x6 str r2, [sp, 0x44] cmp r0, 0x2 bne _08056736 movs r0, 0x3 str r0, [sp, 0x44] _08056736: mov r1, r10 ldrh r0, [r1, 0x6] lsls r0, 16 ldrh r3, [r1, 0x4] orrs r3, r0 str r3, [sp, 0xC] ldr r1, _08056814 adds r2, r6, 0 adds r2, 0x46 ldrb r0, [r2] lsls r0, 2 adds r0, r1 movs r1, 0 ldrsh r6, [r0, r1] str r6, [sp, 0x28] movs r1, 0x2 ldrsh r6, [r0, r1] str r6, [sp, 0x2C] movs r6, 0 str r6, [sp, 0x30] mov r8, r2 ldr r0, [sp, 0x20] cmp r6, r0 bge _080567EC add r0, sp, 0xC movs r2, 0 ldrsh r1, [r0, r2] cmp r1, 0 blt _080567EC asrs r0, r3, 16 cmp r0, 0 blt _080567EC cmp r1, 0x37 bgt _080567EC cmp r0, 0x1F bgt _080567EC add r6, sp, 0xC _08056780: ldrh r0, [r6] ldr r1, [sp, 0x28] adds r0, r1 lsls r0, 16 lsrs r0, 16 ldr r2, _08056818 ands r2, r3 orrs r2, r0 asrs r0, r2, 16 ldr r1, [sp, 0x2C] adds r0, r1 lsls r0, 16 ldr r1, _0805681C ands r1, r2 orrs r1, r0 str r1, [sp, 0xC] adds r7, 0x1 movs r2, 0 ldrsh r0, [r6, r2] asrs r1, 16 bl sub_804954C adds r2, r0, 0 ldrh r1, [r2] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _080567EC ldr r0, [r2, 0x10] cmp r0, 0 beq _080567C6 bl sub_80450F8 cmp r0, 0x1 beq _080567EC _080567C6: ldr r0, [sp, 0x30] adds r0, 0x1 str r0, [sp, 0x30] ldr r1, [sp, 0x20] cmp r0, r1 bge _080567EC movs r0, 0 ldrsh r2, [r6, r0] cmp r2, 0 blt _080567EC ldr r0, [sp, 0xC] asrs r1, r0, 16 adds r3, r0, 0 cmp r1, 0 blt _080567EC cmp r2, 0x37 bgt _080567EC cmp r1, 0x1F ble _08056780 _080567EC: ldr r2, [sp, 0x1C] ldrh r1, [r2, 0x2] mov r0, r10 bl sub_805755C lsls r0, 24 cmp r0, 0 beq _08056820 mov r0, r10 ldr r1, [sp, 0x1C] bl sub_80570AC lsls r0, 24 cmp r0, 0 bne _08056820 movs r6, 0x1 negs r6, r6 str r6, [sp, 0x40] b _0805682E .align 2, 0 _08056814: .4byte gUnknown_80F4448 _08056818: .4byte 0xffff0000 _0805681C: .4byte 0x0000ffff _08056820: mov r0, r10 add r1, sp, 0xC ldr r2, [sp, 0x1C] ldr r3, [sp, 0x20] bl sub_8056564 str r0, [sp, 0x40] _0805682E: mov r0, r10 ldrh r1, [r0, 0x4] add r0, sp, 0xC strh r1, [r0] mov r2, r10 ldrh r1, [r2, 0x6] strh r1, [r0, 0x2] ldr r1, _08056874 mov r6, r8 ldrb r0, [r6] lsls r0, 2 adds r0, r1 movs r2, 0 ldrsh r1, [r0, r2] str r1, [sp, 0x28] movs r1, 0x2 ldrsh r6, [r0, r1] str r6, [sp, 0x2C] movs r0, 0x18 ldr r1, [sp, 0x44] bl __divsi3 adds r1, r7, 0 muls r1, r0 ldr r2, [sp, 0x20] cmp r2, 0x1 ble _08056878 adds r6, r1, 0 adds r6, 0x8 str r6, [sp, 0x38] cmp r6, 0x3F ble _0805687C movs r0, 0x40 str r0, [sp, 0x38] b _0805687C .align 2, 0 _08056874: .4byte gUnknown_80F4448 _08056878: movs r2, 0x20 str r2, [sp, 0x38] _0805687C: movs r6, 0 mov r9, r6 movs r0, 0x80 lsls r0, 12 bl __divsi3 str r0, [sp, 0x48] ldr r1, _0805696C mov r2, r8 ldrb r0, [r2] lsls r0, 2 adds r0, r1 ldr r0, [r0] str r0, [sp, 0x3C] ldr r0, _08056970 ldr r0, [r0] ldr r6, _08056974 adds r0, r6 movs r1, 0x1 strb r1, [r0] movs r0, 0 str r0, [sp, 0x30] ldr r1, [sp, 0x20] cmp r0, r1 blt _080568B0 b _08056AB6 _080568B0: add r0, sp, 0xC movs r2, 0 ldrsh r1, [r0, r2] cmp r1, 0 bge _080568BC b _08056AB6 _080568BC: ldrh r0, [r0, 0x2] lsls r0, 16 asrs r0, 16 cmp r0, 0 bge _080568C8 b _08056AB6 _080568C8: cmp r1, 0x37 ble _080568CE b _08056AB6 _080568CE: cmp r0, 0x1F ble _080568D4 b _08056AB6 _080568D4: add r7, sp, 0xC _080568D6: ldr r6, [sp, 0xC] ldrh r0, [r7] ldr r1, [sp, 0x28] adds r0, r1 strh r0, [r7] ldrh r0, [r7, 0x2] ldr r2, [sp, 0x2C] adds r0, r2 strh r0, [r7, 0x2] add r0, sp, 0xC bl sub_803F428 lsls r0, 24 cmp r0, 0 bne _080568F6 b _08056A00 _080568F6: ldr r0, _08056970 ldr r0, [r0] ldr r1, _08056978 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _08056906 b _08056A00 _08056906: lsls r1, r6, 16 asrs r1, 16 lsls r0, r1, 1 adds r0, r1 lsls r0, 11 movs r2, 0xC0 lsls r2, 4 adds r4, r0, r2 asrs r1, r6, 16 lsls r0, r1, 1 adds r0, r1 lsls r0, 11 movs r6, 0x80 lsls r6, 5 adds r5, r0, r6 ldr r1, [sp, 0x28] lsls r0, r1, 8 ldr r6, [sp, 0x44] adds r2, r6, 0 muls r2, r0 str r2, [sp, 0x4C] ldr r1, [sp, 0x2C] lsls r0, r1, 8 adds r2, r6, 0 muls r2, r0 str r2, [sp, 0x50] movs r6, 0 movs r0, 0x18 ldr r1, [sp, 0x44] bl __divsi3 mov r8, r0 cmp r6, r8 bge _08056A0E _0805694A: ldr r0, [sp, 0x40] cmp r0, 0 blt _080569D4 ldr r1, [sp, 0x24] cmp r1, 0 beq _0805697C mov r0, r9 cmp r0, 0 bge _0805695E adds r0, 0xFF _0805695E: asrs r0, 8 bl sub_8009C7C ldr r2, [sp, 0x38] adds r3, r0, 0 muls r3, r2 b _0805697E .align 2, 0 _0805696C: .4byte gUnknown_81069D4 _08056970: .4byte gUnknown_203B418 _08056974: .4byte 0x0001c05e _08056978: .4byte 0x0001820a _0805697C: movs r3, 0 _0805697E: adds r0, r4, 0 cmp r4, 0 bge _08056986 adds r0, 0xFF _08056986: lsls r0, 8 lsrs r0, 16 ldr r1, _080569F0 ldr r2, [sp, 0x10] ands r2, r1 orrs r2, r0 str r2, [sp, 0x10] subs r0, r5, r3 cmp r0, 0 bge _0805699C adds r0, 0xFF _0805699C: lsls r0, 8 lsrs r0, 16 lsls r0, 16 ldr r1, _080569F4 ands r2, r1 orrs r2, r0 str r2, [sp, 0x10] adds r2, r5, 0 cmp r2, 0 bge _080569B2 adds r2, 0xFF _080569B2: asrs r2, 8 ldr r0, _080569F8 ldr r0, [r0] ldr r1, _080569FC adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] subs r2, r0 lsrs r0, r2, 31 adds r2, r0 asrs r2, 1 ldr r0, [sp, 0x3C] adds r2, r0 ldr r0, [sp, 0x40] add r1, sp, 0x10 bl sub_800E3AC _080569D4: movs r0, 0x30 bl sub_803E46C ldr r1, [sp, 0x4C] adds r4, r1 ldr r2, [sp, 0x50] adds r5, r2 ldr r0, [sp, 0x48] add r9, r0 adds r6, 0x1 cmp r6, r8 blt _0805694A b _08056A0E .align 2, 0 _080569F0: .4byte 0xffff0000 _080569F4: .4byte 0x0000ffff _080569F8: .4byte gUnknown_203B418 _080569FC: .4byte 0x000181f2 _08056A00: movs r0, 0x18 ldr r1, [sp, 0x44] bl __divsi3 ldr r1, [sp, 0x48] muls r0, r1 add r9, r0 _08056A0E: movs r2, 0 ldrsh r0, [r7, r2] movs r6, 0x2 ldrsh r1, [r7, r6] bl sub_804954C adds r6, r0, 0 ldrh r1, [r6] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _08056AB6 ldr r0, [r6, 0x10] cmp r0, 0 beq _08056A8E bl sub_80450F8 cmp r0, 0x1 bne _08056A8E ldr r0, [r6, 0x10] ldr r1, [sp, 0x1C] bl sub_80571F0 lsls r0, 24 cmp r0, 0 bne _08056A8E ldr r0, [sp, 0x34] cmp r0, 0 bgt _08056AB6 movs r4, 0 mov r2, r10 ldr r1, [r2, 0x70] adds r0, r1, 0 adds r0, 0xBC ldrb r2, [r0] cmp r2, 0x2 beq _08056A64 adds r0, 0x2C ldrb r0, [r0] cmp r0, 0x1 beq _08056A64 cmp r2, 0x4 bne _08056A66 _08056A64: movs r4, 0x1 _08056A66: mov r0, r10 ldr r1, [sp, 0x1C] movs r2, 0 bl sub_807CD64 adds r2, r0, 0 lsls r2, 16 asrs r2, 16 ldr r0, [r6, 0x10] str r0, [sp] ldr r6, [sp, 0x1C] str r6, [sp, 0x4] str r4, [sp, 0x8] ldr r0, [sp, 0x34] add r1, sp, 0x14 mov r3, r10 bl sub_8056F80 str r0, [sp, 0x34] b _08056AB6 _08056A8E: ldr r0, [sp, 0x30] adds r0, 0x1 str r0, [sp, 0x30] ldr r1, [sp, 0x20] cmp r0, r1 bge _08056AB6 movs r2, 0 ldrsh r1, [r7, r2] cmp r1, 0 blt _08056AB6 ldrh r0, [r7, 0x2] lsls r0, 16 asrs r0, 16 cmp r0, 0 blt _08056AB6 cmp r1, 0x37 bgt _08056AB6 cmp r0, 0x1F bgt _08056AB6 b _080568D6 _08056AB6: ldr r6, [sp, 0x40] cmp r6, 0 blt _08056AC2 adds r0, r6, 0 bl sub_800DC14 _08056AC2: movs r0, 0x1 bl sub_804178C ldr r0, _08056AF4 ldr r0, [r0] ldr r1, _08056AF8 adds r0, r1 movs r2, 0 strb r2, [r0] ldr r6, [sp, 0x34] cmp r6, 0 ble _08056AFC lsls r1, r6, 2 add r0, sp, 0x14 adds r1, r0 str r2, [r1] ldr r1, [sp, 0x78] str r1, [sp] mov r1, r10 ldr r2, [sp, 0x1C] ldr r3, [sp, 0x74] bl sub_8053704 b _08056B22 .align 2, 0 _08056AF4: .4byte gUnknown_203B418 _08056AF8: .4byte 0x0001c05e _08056AFC: ldr r0, [sp, 0x20] cmp r0, 0x1 bne _08056B22 add r0, sp, 0xC bl sub_803F428 lsls r0, 24 cmp r0, 0 beq _08056B22 movs r0, 0x1 movs r1, 0x4A bl sub_803E708 mov r0, r10 movs r1, 0 ldr r2, [sp, 0x1C] add r3, sp, 0xC bl sub_8041168 _08056B22: add sp, 0x54 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80566F8 thumb_func_start sub_8056B34 sub_8056B34: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 adds r7, r0, 0 adds r6, r1, 0 mov r8, r2 adds r1, r3, 0 ldr r4, [sp, 0x24] lsls r4, 24 lsrs r4, 24 mov r0, r8 bl sub_8092BD8 adds r5, r0, 0 movs r0, 0x64 bl sub_8084100 str r0, [sp] ldr r0, [r7, 0x70] mov r9, r0 ldr r1, [r6, 0x70] mov r10, r1 cmp r4, 0 beq _08056B70 cmp r7, r6 bne _08056B70 b _08056CD4 _08056B70: mov r0, r8 ldrh r1, [r0, 0x2] ldr r0, _08056CC4 cmp r1, r0 bne _08056B8A adds r0, r7, 0 movs r1, 0x4 bl sub_80718D8 lsls r0, 24 cmp r0, 0 beq _08056B8A b _08056CD4 _08056B8A: mov r0, r9 adds r0, 0xDC ldrb r0, [r0] cmp r0, 0x1 bne _08056B96 b _08056CD4 _08056B96: cmp r0, 0x2 bne _08056B9C b _08056CBE _08056B9C: cmp r5, 0x64 ble _08056BA2 b _08056CD4 _08056BA2: adds r0, r6, 0 movs r1, 0x23 bl sub_8046CB0 lsls r0, 24 cmp r0, 0 beq _08056BB6 ldr r0, _08056CC8 ldr r0, [r0] subs r5, r0 _08056BB6: adds r0, r6, 0 movs r1, 0x5 bl sub_80718D8 lsls r0, 24 cmp r0, 0 beq _08056BCA ldr r0, _08056CCC ldr r0, [r0] subs r5, r0 _08056BCA: mov r1, r9 movs r0, 0x24 ldrsh r4, [r1, r0] adds r0, r7, 0 movs r1, 0x33 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _08056BE0 adds r4, 0x2 _08056BE0: mov r1, r8 ldrh r0, [r1, 0x2] cmp r0, 0x40 bne _08056BFC adds r0, r7, 0 bl sub_807E580 lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 beq _08056CD4 cmp r0, 0x1 bne _08056BFC subs r4, 0x2 _08056BFC: cmp r4, 0 bge _08056C02 movs r4, 0 _08056C02: cmp r4, 0x14 ble _08056C08 movs r4, 0x14 _08056C08: ldr r1, _08056CD0 lsls r0, r4, 2 adds r0, r1 ldr r0, [r0] cmp r0, 0 bge _08056C16 movs r0, 0 _08056C16: movs r1, 0xC8 lsls r1, 7 cmp r0, r1 ble _08056C20 adds r0, r1, 0 _08056C20: muls r5, r0 adds r0, r5, 0 cmp r5, 0 bge _08056C2A adds r0, 0xFF _08056C2A: asrs r5, r0, 8 mov r0, r10 movs r1, 0x26 ldrsh r4, [r0, r1] adds r0, 0xF5 ldrb r0, [r0] cmp r0, 0 beq _08056C3C movs r4, 0xA _08056C3C: adds r0, r6, 0 bl sub_807E580 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _08056C5A adds r0, r6, 0 movs r1, 0x1D bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _08056C5A adds r4, 0x2 _08056C5A: adds r0, r7, 0 movs r1, 0x30 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _08056C86 mov r0, r8 bl sub_8092B00 lsls r0, 24 lsrs r0, 24 bl sub_8092354 movs r1, 0 lsls r0, 24 cmp r0, 0 bne _08056C80 movs r1, 0x1 _08056C80: cmp r1, 0 bne _08056C86 adds r4, 0x2 _08056C86: cmp r4, 0 bge _08056C8C movs r4, 0 _08056C8C: cmp r4, 0x14 ble _08056C92 movs r4, 0x14 _08056C92: ldr r0, _08056CD0 lsls r1, r4, 2 adds r0, 0x54 adds r1, r0 ldr r0, [r1] cmp r0, 0 bge _08056CA2 movs r0, 0 _08056CA2: movs r1, 0xC8 lsls r1, 7 cmp r0, r1 ble _08056CAC adds r0, r1, 0 _08056CAC: muls r5, r0 adds r0, r5, 0 cmp r5, 0 bge _08056CB6 adds r0, 0xFF _08056CB6: asrs r5, r0, 8 ldr r0, [sp] cmp r0, r5 blt _08056CD4 _08056CBE: movs r0, 0 b _08056CD6 .align 2, 0 _08056CC4: .4byte 0x00000163 _08056CC8: .4byte gUnknown_80F519C _08056CCC: .4byte gUnknown_80F51A0 _08056CD0: .4byte gUnknown_80F50F4 _08056CD4: movs r0, 0x1 _08056CD6: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8056B34 thumb_func_start sub_8056CE8 sub_8056CE8: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x18 str r0, [sp, 0x10] adds r5, r1, 0 mov r8, r2 movs r0, 0 mov r9, r0 movs r3, 0 ldr r1, [r5, 0x70] adds r0, r1, 0 adds r0, 0xBC ldrb r2, [r0] cmp r2, 0x2 beq _08056D18 adds r0, 0x2C ldrb r0, [r0] cmp r0, 0x1 beq _08056D18 cmp r2, 0x4 bne _08056D1A _08056D18: movs r3, 0x1 _08056D1A: mov r10, r3 movs r1, 0 ldr r0, [r5, 0x70] adds r0, 0xBC ldrb r0, [r0] cmp r0, 0x2 beq _08056D2C cmp r0, 0x4 bne _08056D2E _08056D2C: movs r1, 0x1 _08056D2E: str r1, [sp, 0x14] adds r0, r5, 0 movs r1, 0x7 bl sub_80718D8 lsls r0, 24 cmp r0, 0 beq _08056D44 movs r1, 0 str r1, [sp, 0x14] mov r10, r1 _08056D44: adds r0, r5, 0 mov r1, r8 movs r2, 0 bl sub_807CD64 lsls r0, 16 asrs r7, r0, 16 movs r0, 0xF ands r0, r7 cmp r0, 0x4 bne _08056D86 adds r0, r5, 0 mov r1, r8 bl sub_80570AC lsls r0, 24 lsrs r4, r0, 24 mov r2, r8 ldrh r0, [r2, 0x2] cmp r0, 0x97 bne _08056D7E adds r0, r5, 0 bl sub_807E580 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08056D7E movs r4, 0x1 _08056D7E: movs r7, 0x73 cmp r4, 0 beq _08056D86 movs r7, 0 _08056D86: movs r1, 0xF0 ands r1, r7 cmp r1, 0 bne _08056DA6 adds r0, r5, 0 bl sub_80696A8 cmp r0, 0 bne _08056D9A b _08056F64 _08056D9A: str r0, [sp] mov r0, r8 str r0, [sp, 0x4] mov r1, r10 str r1, [sp, 0x8] b _08056F56 _08056DA6: cmp r1, 0x10 beq _08056DAE cmp r1, 0x20 bne _08056E34 _08056DAE: ldr r0, [r5, 0x70] cmp r1, 0x20 bne _08056DBC adds r0, 0x46 ldrb r4, [r0] movs r0, 0x8 b _08056DCA _08056DBC: adds r0, 0x46 ldrb r0, [r0] subs r4, r0, 0x1 movs r0, 0x3 cmp r0, 0 bne _08056DCA b _08056F64 _08056DCA: adds r6, r0, 0 _08056DCC: movs r0, 0x7 ands r4, r0 ldr r0, _08056E28 lsls r3, r4, 2 adds r3, r0 ldrh r0, [r3] ldrh r2, [r5, 0x4] adds r0, r2 lsls r0, 16 lsrs r0, 16 ldr r2, _08056E2C ldr r1, [sp, 0xC] ands r1, r2 orrs r1, r0 str r1, [sp, 0xC] ldrh r2, [r3, 0x2] ldrh r0, [r5, 0x6] adds r2, r0 lsls r2, 16 ldr r0, _08056E30 ands r1, r0 orrs r1, r2 str r1, [sp, 0xC] add r0, sp, 0xC bl sub_804AD0C cmp r0, 0 beq _08056E1C str r0, [sp] mov r1, r8 str r1, [sp, 0x4] mov r2, r10 str r2, [sp, 0x8] mov r0, r9 ldr r1, [sp, 0x10] adds r2, r7, 0 adds r3, r5, 0 bl sub_8056F80 mov r9, r0 _08056E1C: subs r6, 0x1 adds r4, 0x1 cmp r6, 0 bne _08056DCC b _08056F64 .align 2, 0 _08056E28: .4byte gUnknown_80F4448 _08056E2C: .4byte 0xffff0000 _08056E30: .4byte 0x0000ffff _08056E34: cmp r1, 0x30 bne _08056E9C movs r6, 0 _08056E3A: ldr r0, _08056E74 ldr r0, [r0] lsls r1, r6, 2 ldr r2, _08056E78 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08056E94 adds r0, r5, 0 adds r1, r4, 0 bl sub_8045A70 lsls r0, 24 cmp r0, 0 beq _08056E94 cmp r4, r5 bne _08056E7C str r5, [sp] mov r0, r8 str r0, [sp, 0x4] ldr r1, [sp, 0x14] str r1, [sp, 0x8] b _08056E86 .align 2, 0 _08056E74: .4byte gUnknown_203B418 _08056E78: .4byte 0x000135cc _08056E7C: str r4, [sp] mov r2, r8 str r2, [sp, 0x4] mov r0, r10 str r0, [sp, 0x8] _08056E86: mov r0, r9 ldr r1, [sp, 0x10] adds r2, r7, 0 adds r3, r5, 0 bl sub_8056F80 mov r9, r0 _08056E94: adds r6, 0x1 cmp r6, 0x13 ble _08056E3A b _08056F64 _08056E9C: cmp r1, 0x40 bne _08056EEA movs r4, 0 adds r0, r5, 0 bl sub_80696FC cmp r0, 0 beq _08056ED0 mov r4, r9 str r0, [sp] mov r1, r8 str r1, [sp, 0x4] mov r2, r10 str r2, [sp, 0x8] adds r0, r4, 0 ldr r1, [sp, 0x10] adds r2, r7, 0 adds r3, r5, 0 bl sub_8056F80 mov r9, r0 mov r1, r9 eors r1, r4 negs r0, r1 orrs r0, r1 lsrs r4, r0, 31 _08056ED0: cmp r4, 0 bne _08056F64 adds r0, r5, 0 bl sub_806977C cmp r0, 0 beq _08056F64 str r0, [sp] mov r0, r8 str r0, [sp, 0x4] mov r1, r10 str r1, [sp, 0x8] b _08056F56 _08056EEA: cmp r1, 0x50 beq _08056F64 cmp r1, 0x80 bne _08056F00 adds r0, r5, 0 bl sub_80696FC cmp r0, 0 beq _08056F64 str r0, [sp] b _08056F4E _08056F00: cmp r1, 0x60 bne _08056F48 movs r6, 0 _08056F06: ldr r0, _08056F40 ldr r0, [r0] lsls r1, r6, 2 ldr r2, _08056F44 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08056F38 str r4, [sp] mov r0, r8 str r0, [sp, 0x4] mov r1, r10 str r1, [sp, 0x8] mov r0, r9 ldr r1, [sp, 0x10] adds r2, r7, 0 adds r3, r5, 0 bl sub_8056F80 mov r9, r0 _08056F38: adds r6, 0x1 cmp r6, 0x13 ble _08056F06 b _08056F64 .align 2, 0 _08056F40: .4byte gUnknown_203B418 _08056F44: .4byte 0x000135cc _08056F48: cmp r1, 0x70 bne _08056F64 str r5, [sp] _08056F4E: mov r2, r8 str r2, [sp, 0x4] mov r0, r10 str r0, [sp, 0x8] _08056F56: mov r0, r9 ldr r1, [sp, 0x10] adds r2, r7, 0 adds r3, r5, 0 bl sub_8056F80 mov r9, r0 _08056F64: mov r1, r9 lsls r0, r1, 2 ldr r2, [sp, 0x10] adds r0, r2 movs r1, 0 str r1, [r0] add sp, 0x18 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8056CE8 thumb_func_start sub_8056F80 sub_8056F80: push {r4-r7,lr} mov r7, r8 push {r7} adds r5, r0, 0 mov r8, r1 adds r4, r3, 0 ldr r7, [sp, 0x18] ldr r0, [sp, 0x20] lsls r2, 16 asrs r2, 16 lsls r0, 24 lsrs r0, 24 mov r12, r0 movs r6, 0 ldr r1, [r7, 0x70] ldr r3, [sp, 0x1C] ldrh r0, [r3, 0x2] cmp r0, 0xFC bne _08056FAA cmp r4, r7 beq _08057060 _08056FAA: ldrb r0, [r1, 0x8] cmp r0, 0x1 beq _08057060 adds r0, r1, 0 adds r0, 0xA4 ldrb r0, [r0] cmp r0, 0x4 beq _08057060 cmp r0, 0x1 beq _08057060 mov r0, r12 cmp r0, 0 bne _0805702C movs r0, 0xF ands r0, r2 cmp r0, 0 beq _08056FD0 cmp r0, 0x4 bne _08056FE6 _08056FD0: adds r0, r4, 0 adds r1, r7, 0 movs r2, 0x1 movs r3, 0 bl sub_8071598 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0805702E b _0805702C _08056FE6: cmp r0, 0x1 bne _08056FFE adds r0, r4, 0 adds r1, r7, 0 movs r2, 0x1 movs r3, 0 bl sub_8071598 lsls r0, 24 cmp r0, 0 bne _0805702E b _0805702C _08056FFE: cmp r0, 0x2 beq _0805702C cmp r0, 0x5 bne _0805700C cmp r4, r7 beq _0805702E b _0805702C _0805700C: cmp r0, 0x6 bne _08057028 adds r0, r4, 0 adds r1, r7, 0 movs r2, 0x1 movs r3, 0 bl sub_8071598 lsls r0, 24 cmp r0, 0 bne _0805702E cmp r4, r7 beq _0805702E b _0805702C _08057028: cmp r0, 0x3 bne _0805702E _0805702C: movs r6, 0x1 _0805702E: adds r0, r7, 0 ldr r1, [sp, 0x1C] bl sub_80571F0 lsls r0, 24 cmp r0, 0 beq _0805703E movs r6, 0 _0805703E: cmp r6, 0 beq _08057060 cmp r5, 0x3F bgt _08057060 lsls r0, r5, 2 add r0, r8 str r7, [r0] ldr r0, [r7, 0x70] ldrb r0, [r0, 0x6] cmp r0, 0 bne _0805705E ldr r1, _0805706C ldr r0, [r1] cmp r0, 0 bne _0805705E str r7, [r1] _0805705E: adds r5, 0x1 _08057060: adds r0, r5, 0 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805706C: .4byte gUnknown_203B438 thumb_func_end sub_8056F80 thumb_func_start sub_8057070 sub_8057070: push {lr} bl sub_8092BA8 cmp r0, 0 bne _08057082 movs r0, 0x2 movs r1, 0x6 bl sub_808411C _08057082: pop {r1} bx r1 thumb_func_end sub_8057070 thumb_func_start sub_8057088 sub_8057088: push {lr} ldrh r1, [r0, 0x2] cmp r1, 0xEE beq _080570A4 cmp r1, 0xEF beq _080570A4 cmp r1, 0xF2 beq _080570A4 movs r0, 0x88 lsls r0, 1 cmp r1, r0 beq _080570A4 movs r0, 0 b _080570A6 _080570A4: movs r0, 0x1 _080570A6: pop {r1} bx r1 thumb_func_end sub_8057088 thumb_func_start sub_80570AC sub_80570AC: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _080570C2 b _080570E8 _080570BE: movs r0, 0x1 b _080570EA _080570C2: ldr r0, [r4, 0x70] movs r3, 0 ldr r2, _080570F0 adds r4, r0, 0 adds r4, 0xC0 _080570CC: ldrh r1, [r2] cmp r1, 0 beq _080570E8 ldrh r0, [r5, 0x2] cmp r0, r1 bne _080570E0 ldrb r0, [r4] ldrb r1, [r2, 0x2] cmp r0, r1 beq _080570BE _080570E0: adds r2, 0x4 adds r3, 0x1 cmp r3, 0x63 ble _080570CC _080570E8: movs r0, 0 _080570EA: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080570F0: .4byte gUnknown_81069F4 thumb_func_end sub_80570AC thumb_func_start sub_80570F4 sub_80570F4: push {r4-r7,lr} adds r4, r0, 0 lsls r1, 24 lsrs r7, r1, 24 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0805713C ldr r3, [r4, 0x70] movs r4, 0 adds r6, r3, 0 adds r6, 0xC0 ldr r2, _08057138 _08057110: ldrb r1, [r2] cmp r1, 0 beq _0805713C ldrb r0, [r6] adds r5, r3, 0 adds r5, 0xC0 cmp r0, r1 beq _08057132 adds r2, 0x4 adds r4, 0x1 cmp r4, 0x63 ble _08057110 cmp r7, 0 beq _0805713C ldrb r0, [r5] cmp r0, 0xB bne _0805713C _08057132: movs r0, 0x1 b _0805713E .align 2, 0 _08057138: .4byte gUnknown_8106A1C _0805713C: movs r0, 0 _0805713E: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80570F4 thumb_func_start sub_8057144 sub_8057144: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x144 mov r9, r0 movs r7, 0 movs r5, 0 _08057154: ldr r0, _080571D4 ldr r0, [r0] lsls r1, r5, 2 ldr r2, _080571D8 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 adds r5, 0x1 mov r8, r5 cmp r0, 0 beq _080571B8 ldr r0, [r4, 0x70] movs r1, 0x8C lsls r1, 1 adds r5, r0, r1 adds r4, r5, 0 lsls r0, r7, 2 mov r1, sp adds r2, r0, r1 movs r6, 0x3 _08057184: ldrb r1, [r4] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080571AE ldrh r1, [r4, 0x2] mov r0, r9 str r2, [sp, 0x140] bl sub_805755C lsls r0, 24 ldr r2, [sp, 0x140] cmp r0, 0 bne _080571AE ldrh r0, [r4, 0x2] cmp r0, 0x8A beq _080571AE cmp r7, 0x4F bgt _080571AE stm r2!, {r5} adds r7, 0x1 _080571AE: adds r4, 0x8 adds r5, 0x8 subs r6, 0x1 cmp r6, 0 bge _08057184 _080571B8: mov r5, r8 cmp r5, 0x13 ble _08057154 cmp r7, 0 beq _080571DC adds r0, r7, 0 bl sub_8084100 lsls r0, 2 add r0, sp ldr r0, [r0] ldrh r0, [r0, 0x2] b _080571DE .align 2, 0 _080571D4: .4byte gUnknown_203B418 _080571D8: .4byte 0x000135cc _080571DC: ldr r0, _080571EC _080571DE: add sp, 0x144 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080571EC: .4byte 0x00000163 thumb_func_end sub_8057144 thumb_func_start sub_80571F0 sub_80571F0: push {lr} ldr r0, [r0, 0x70] adds r2, r0, 0 adds r2, 0xFF ldrb r2, [r2] cmp r2, 0x1 bne _08057212 ldrh r1, [r1, 0x2] cmp r1, 0x88 beq _08057274 cmp r1, 0xA2 beq _08057274 cmp r1, 0x39 beq _08057274 cmp r1, 0x40 beq _08057274 b _08057264 _08057212: cmp r2, 0x2 bne _08057274 adds r0, 0xC0 ldrb r0, [r0] cmp r0, 0x9 bne _0805722A ldrh r1, [r1, 0x2] cmp r1, 0x20 beq _08057274 cmp r1, 0xDB bne _08057264 b _08057274 _0805722A: cmp r0, 0xA bne _08057264 ldrh r1, [r1, 0x2] cmp r1, 0x76 beq _08057274 movs r0, 0x94 lsls r0, 1 cmp r1, r0 beq _08057274 cmp r1, 0x77 bne _08057264 ldr r0, _08057268 ldr r0, [r0] ldr r1, _0805726C adds r0, r1 movs r2, 0 ldrsh r1, [r0, r2] cmp r1, 0 bge _08057252 movs r1, 0 _08057252: cmp r1, 0x4A ble _08057258 movs r1, 0x4A _08057258: ldr r0, _08057270 lsls r1, 3 adds r1, r0 ldrh r0, [r1] cmp r0, 0x76 beq _08057274 _08057264: movs r0, 0x1 b _08057276 .align 2, 0 _08057268: .4byte gUnknown_203B418 _0805726C: .4byte 0x00003a0e _08057270: .4byte gUnknown_80F5D10 _08057274: movs r0, 0 _08057276: pop {r1} bx r1 thumb_func_end sub_80571F0 thumb_func_start sub_805727C sub_805727C: push {r4-r6,lr} adds r6, r0, 0 adds r5, r1, 0 adds r4, r2, 0 bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _080572FC adds r0, r6, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080572FC adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080572FC ldr r1, [r5, 0x70] movs r2, 0xAC lsls r2, 1 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 beq _080572FC movs r2, 0xE ldrsh r0, [r1, r2] cmp r0, 0 beq _080572FC cmp r4, 0 beq _080572DE adds r0, r6, 0 movs r1, 0x26 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _080572D2 lsls r0, r4, 1 b _080572D4 _080572D2: adds r0, r4, 0 _080572D4: bl sub_8084160 lsls r0, 24 lsrs r4, r0, 24 b _080572E0 _080572DE: movs r4, 0x1 _080572E0: cmp r4, 0 beq _08057300 cmp r6, r5 beq _08057300 adds r0, r5, 0 movs r1, 0x4C bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _08057300 adds r0, r5, 0 bl sub_80429C8 _080572FC: movs r0, 0 b _08057302 _08057300: adds r0, r4, 0 _08057302: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_805727C thumb_func_start sub_8057308 sub_8057308: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _0805731C movs r0, 0 b _08057340 _0805731C: cmp r4, 0 bne _08057324 movs r0, 0x1 b _08057340 _08057324: adds r0, r5, 0 movs r1, 0x26 bl sub_8071824 lsls r0, 24 cmp r0, 0 bne _08057336 adds r0, r4, 0 b _08057338 _08057336: lsls r0, r4, 1 _08057338: bl sub_8084160 lsls r0, 24 lsrs r0, 24 _08057340: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8057308 thumb_func_start sub_8057348 sub_8057348: push {r4-r7,lr} mov r7, r8 push {r7} adds r7, r0, 0 lsls r2, 24 lsrs r2, 24 mov r8, r2 ldr r6, [r7, 0x70] lsls r1, 3 movs r0, 0x8C lsls r0, 1 adds r1, r0 adds r4, r6, r1 ldrb r1, [r4] movs r2, 0x1 adds r0, r2, 0 ands r0, r1 cmp r0, 0 beq _080573BE movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _080573BE movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _080573BE ldrb r1, [r4, 0x1] adds r0, r2, 0 ands r0, r1 cmp r0, 0 beq _0805738E b _080573BE _0805738A: movs r0, 0x1 b _080573C0 _0805738E: movs r5, 0 b _08057394 _08057392: adds r5, 0x1 _08057394: cmp r5, 0x3 bgt _080573BE adds r0, r7, 0 adds r1, r4, 0 mov r2, r8 bl sub_80573CC lsls r0, 24 cmp r0, 0 bne _0805738A adds r4, 0x8 movs r1, 0x9C lsls r1, 1 adds r0, r6, r1 cmp r4, r0 bcs _080573BE ldrb r1, [r4] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08057392 _080573BE: movs r0, 0 _080573C0: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8057348 thumb_func_start sub_80573CC sub_80573CC: push {r4-r6,lr} adds r4, r1, 0 lsls r2, 24 lsrs r2, 24 ldr r6, [r0, 0x70] ldrh r1, [r4, 0x2] ldr r0, _08057430 cmp r1, r0 beq _08057442 ldrb r1, [r4] movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _0805743E ldrb r1, [r4, 0x1] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0805743E cmp r2, 0 beq _08057442 ldrb r0, [r4, 0x4] cmp r0, 0 beq _0805743E adds r0, r6, 0 adds r0, 0xBC ldrb r1, [r0] adds r5, r0, 0 cmp r1, 0x5 bne _08057414 adds r0, r4, 0 bl sub_8092C54 lsls r0, 24 cmp r0, 0 beq _0805743E _08057414: ldrb r0, [r5] cmp r0, 0x6 bne _08057442 ldrh r1, [r4, 0x2] movs r0, 0xB0 lsls r0, 1 cmp r1, r0 bne _08057434 movs r1, 0x9C lsls r1, 1 adds r0, r6, r1 ldrb r1, [r0] b _08057436 .align 2, 0 _08057430: .4byte 0x00000163 _08057434: ldrb r1, [r4] _08057436: movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _08057442 _0805743E: movs r0, 0 b _08057444 _08057442: movs r0, 0x1 _08057444: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80573CC thumb_func_start sub_805744C sub_805744C: push {r4-r6,lr} adds r4, r1, 0 lsls r2, 24 lsrs r2, 24 ldr r6, [r0, 0x70] ldrh r1, [r4, 0x2] ldr r0, _080574A8 cmp r1, r0 beq _080574BA ldrb r1, [r4] movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _080574B6 ldrb r1, [r4, 0x1] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080574B6 cmp r2, 0 beq _080574BA adds r0, r6, 0 adds r0, 0xBC ldrb r1, [r0] adds r5, r0, 0 cmp r1, 0x5 bne _0805748E adds r0, r4, 0 bl sub_8092C54 lsls r0, 24 cmp r0, 0 beq _080574B6 _0805748E: ldrb r0, [r5] cmp r0, 0x6 bne _080574BA ldrh r1, [r4, 0x2] movs r0, 0xB0 lsls r0, 1 cmp r1, r0 bne _080574AC movs r1, 0x9C lsls r1, 1 adds r0, r6, r1 ldrb r1, [r0] b _080574AE .align 2, 0 _080574A8: .4byte 0x00000163 _080574AC: ldrb r1, [r4] _080574AE: movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _080574BA _080574B6: movs r0, 0 b _080574BC _080574BA: movs r0, 0x1 _080574BC: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_805744C thumb_func_start sub_80574C4 sub_80574C4: push {r4-r6,lr} sub sp, 0x104 adds r4, r0, 0 adds r5, r1, 0 movs r3, 0 movs r2, 0 ldr r0, [r4] cmp r0, 0 beq _08057502 cmp r0, r5 beq _080574EA _080574DA: lsls r0, r3, 2 mov r6, sp adds r1, r6, r0 lsls r0, r2, 2 adds r0, r4 ldr r0, [r0] str r0, [r1] adds r3, 0x1 _080574EA: adds r2, 0x1 cmp r2, 0x40 bgt _08057502 lsls r0, r2, 2 adds r0, r4 ldr r0, [r0] cmp r0, 0 beq _08057502 cmp r0, r5 beq _080574EA cmp r3, 0x3F ble _080574DA _08057502: movs r2, 0 ldr r0, [r4] b _08057524 _08057508: lsls r0, r3, 2 mov r6, sp adds r1, r6, r0 lsls r0, r2, 2 adds r0, r4 ldr r0, [r0] str r0, [r1] adds r3, 0x1 _08057518: adds r2, 0x1 cmp r2, 0x40 bgt _08057530 lsls r0, r2, 2 adds r0, r4 ldr r0, [r0] _08057524: cmp r0, 0 beq _08057530 cmp r0, r5 bne _08057518 cmp r3, 0x3F ble _08057508 _08057530: cmp r3, 0x40 bgt _08057542 movs r1, 0 lsls r0, r3, 2 add r0, sp _0805753A: stm r0!, {r1} adds r3, 0x1 cmp r3, 0x40 ble _0805753A _08057542: mov r3, sp adds r1, r4, 0 movs r2, 0x40 _08057548: ldm r3!, {r0} stm r1!, {r0} subs r2, 0x1 cmp r2, 0 bge _08057548 add sp, 0x104 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80574C4 thumb_func_start sub_805755C sub_805755C: push {r4,lr} lsls r1, 16 lsrs r4, r1, 16 cmp r4, 0x97 bne _08057576 bl sub_807E580 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08057576 movs r0, 0 b _08057580 _08057576: adds r0, r4, 0 bl sub_809422C lsls r0, 24 lsrs r0, 24 _08057580: pop {r4} pop {r1} bx r1 thumb_func_end sub_805755C thumb_func_start sub_8057588 sub_8057588: push {r4-r6,lr} adds r4, r0, 0 lsls r1, 24 lsrs r6, r1, 24 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080575F8 ldr r5, [r4, 0x70] movs r3, 0 _0805759E: lsls r0, r3, 3 movs r1, 0x8C lsls r1, 1 adds r0, r1 adds r2, r5, r0 ldrb r1, [r2] movs r0, 0x1 ands r0, r1 adds r4, r3, 0x1 cmp r0, 0 beq _080575F2 movs r3, 0x1 ldrb r1, [r2, 0x1] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080575C8 movs r0, 0xEF ands r0, r1 strb r0, [r2, 0x1] movs r3, 0x2 _080575C8: ldrb r1, [r2, 0x1] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _080575F2 movs r0, 0xF7 ands r0, r1 strb r0, [r2, 0x1] cmp r6, 0 beq _080575F2 cmp r3, 0 beq _080575F2 adds r1, r3, 0 _080575E2: ldrb r0, [r2, 0x4] cmp r0, 0 beq _080575EC subs r0, 0x1 strb r0, [r2, 0x4] _080575EC: subs r1, 0x1 cmp r1, 0 bne _080575E2 _080575F2: adds r3, r4, 0 cmp r3, 0x3 ble _0805759E _080575F8: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8057588 thumb_func_start sub_8057600 sub_8057600: push {r4,lr} ldrh r4, [r0, 0x2] adds r0, r1, 0 bl sub_8057620 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_8094828 lsls r0, 16 asrs r0, 16 pop {r4} pop {r1} bx r1 thumb_func_end sub_8057600 thumb_func_start sub_8057620 sub_8057620: push {lr} cmp r0, 0 beq _0805762C lsls r0, 24 lsrs r0, 24 b _0805762E _0805762C: movs r0, 0 _0805762E: pop {r1} bx r1 thumb_func_end sub_8057620 thumb_func_start sub_8057634 sub_8057634: push {r4-r7,lr} sub sp, 0x8 adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _08057678 movs r7, 0x1 ldr r0, _08057684 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r6, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _08057678 ldr r0, _08057688 ldr r2, [r0] str r7, [sp] movs r0, 0 str r0, [sp, 0x4] adds r0, r5, 0 adds r1, r6, 0 movs r3, 0x1 bl sub_8076F80 _08057678: adds r0, r7, 0 add sp, 0x8 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08057684: .4byte gUnknown_80F4DB4 _08057688: .4byte gUnknown_8106A4C thumb_func_end sub_8057634 thumb_func_start sub_805768C sub_805768C: push {r4-r6,lr} sub sp, 0x4 adds r5, r3, 0 movs r6, 0 ldr r4, _080576B8 ldr r3, [r4] adds r3, 0x1 str r3, [r4] ldr r4, _080576BC lsls r3, 2 adds r3, r4 ldr r3, [r3] str r5, [sp] bl sub_8055640 cmp r0, 0 bne _080576C4 ldr r1, _080576C0 movs r0, 0x1 strb r0, [r1] b _080576C6 .align 2, 0 _080576B8: .4byte gUnknown_202F21C _080576BC: .4byte gUnknown_8106A54 _080576C0: .4byte gUnknown_202F220 _080576C4: movs r6, 0x1 _080576C6: adds r0, r6, 0 add sp, 0x4 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_805768C thumb_func_start sub_80576D0 sub_80576D0: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 ldr r1, _080576F4 adds r0, r4, 0 movs r2, 0x1 bl sub_808417C adds r2, r0, 0 adds r2, 0x1 adds r0, r5, 0 adds r1, r4, 0 bl sub_8075F34 movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080576F4: .4byte gUnknown_80F4F28 thumb_func_end sub_80576D0 thumb_func_start sub_80576F8 sub_80576F8: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 ldr r1, _0805771C adds r0, r4, 0 movs r2, 0x1 bl sub_808417C adds r2, r0, 0 adds r0, r5, 0 adds r1, r4, 0 movs r3, 0x1 bl sub_8075C58 movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805771C: .4byte gUnknown_80F4E74 thumb_func_end sub_80576F8 thumb_func_start sub_8057720 sub_8057720: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 ldr r1, _08057744 adds r0, r4, 0 movs r2, 0x1 bl sub_808417C adds r2, r0, 0 adds r0, r5, 0 adds r1, r4, 0 bl sub_8075DBC movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08057744: .4byte gUnknown_80F4E78 thumb_func_end sub_8057720 thumb_func_start sub_8057748 sub_8057748: push {r4-r6,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 ldr r4, _08057778 bl sub_807E580 lsls r0, 24 lsrs r0, 23 adds r0, r4 movs r1, 0 ldrsh r2, [r0, r1] movs r0, 0x1 str r0, [sp] adds r0, r5, 0 adds r1, r6, 0 movs r3, 0 bl sub_8077C44 movs r0, 0x1 add sp, 0x4 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08057778: .4byte gUnknown_80F502A thumb_func_end sub_8057748 thumb_func_start sub_805777C sub_805777C: push {lr} bl sub_8079DB8 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805777C thumb_func_start sub_8057788 sub_8057788: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 adds r4, r0, 0 adds r7, r1, 0 adds r6, r2, 0 mov r8, r3 movs r0, 0 mov r9, r0 adds r0, r4, 0 bl sub_8045128 adds r5, r0, 0 bl sub_804AF20 lsls r0, 24 cmp r0, 0 beq _080577BA ldrh r1, [r5] movs r0, 0x3 ands r0, r1 cmp r0, 0x1 beq _080577CC _080577BA: ldr r0, _080577C8 ldr r2, [r0] adds r0, r4, 0 adds r1, r7, 0 bl sub_80522F4 b _0805780E .align 2, 0 _080577C8: .4byte gUnknown_80FD14C _080577CC: adds r0, r4, 0 adds r1, r6, 0 bl sub_80570AC lsls r0, 24 cmp r0, 0 beq _080577F8 ldr r0, _080577F4 ldr r3, [r0] mov r0, r8 str r0, [sp] adds r0, r4, 0 adds r1, r7, 0 adds r2, r6, 0 bl sub_8055640 adds r0, r4, 0 bl sub_8079764 b _0805780A .align 2, 0 _080577F4: .4byte gUnknown_80F4F68 _080577F8: ldr r0, _08057820 ldr r0, [r0] str r0, [sp] adds r0, r4, 0 adds r1, r4, 0 movs r2, 0xA adds r3, r6, 0 bl sub_8079618 _0805780A: movs r0, 0x1 mov r9, r0 _0805780E: mov r0, r9 add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08057820: .4byte gUnknown_80FAD4C thumb_func_end sub_8057788 thumb_func_start sub_8057824 sub_8057824: push {lr} ldr r2, _08057838 ldr r2, [r2] movs r3, 0x1 bl sub_80775DC movs r0, 0x1 pop {r1} bx r1 .align 2, 0 _08057838: .4byte gUnknown_8106A50 thumb_func_end sub_8057824 thumb_func_start sub_805783C sub_805783C: push {lr} sub sp, 0x4 ldr r2, _08057858 ldr r2, [r2] movs r3, 0x1 str r3, [sp] movs r3, 0x80 bl sub_80772C0 movs r0, 0x1 add sp, 0x4 pop {r1} bx r1 .align 2, 0 _08057858: .4byte gUnknown_8106A4C thumb_func_end sub_805783C thumb_func_start sub_805785C sub_805785C: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 ldr r0, _08057894 ldr r0, [r0] ldr r1, _08057898 ldrh r1, [r1] ldr r2, _0805789C adds r0, r2 strb r1, [r0] movs r0, 0x1 movs r1, 0 bl sub_807EAA0 lsls r0, 24 cmp r0, 0 bne _0805788A ldr r0, _080578A0 ldr r2, [r0] adds r0, r4, 0 adds r1, r5, 0 bl sub_80522F4 _0805788A: movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08057894: .4byte gUnknown_203B418 _08057898: .4byte gUnknown_80F4F42 _0805789C: .4byte 0x0000e26b _080578A0: .4byte gUnknown_80FCF74 thumb_func_end sub_805785C thumb_func_start sub_80578A4 sub_80578A4: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 ldr r0, _080578DC ldr r0, [r0] ldr r1, _080578E0 ldrh r1, [r1] ldr r2, _080578E4 adds r0, r2 strb r1, [r0] movs r0, 0x1 movs r1, 0 bl sub_807EAA0 lsls r0, 24 cmp r0, 0 bne _080578D2 ldr r0, _080578E8 ldr r2, [r0] adds r0, r4, 0 adds r1, r5, 0 bl sub_80522F4 _080578D2: movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080578DC: .4byte gUnknown_203B418 _080578E0: .4byte gUnknown_80F4F42 _080578E4: .4byte 0x0000e26c _080578E8: .4byte gUnknown_80FCF80 thumb_func_end sub_80578A4 thumb_func_start sub_80578EC sub_80578EC: push {lr} movs r2, 0x1 movs r3, 0 bl sub_8079F20 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_80578EC thumb_func_start sub_80578FC sub_80578FC: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _08057938 movs r7, 0x1 ldr r0, _08057944 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r6, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _08057938 adds r0, r5, 0 adds r1, r6, 0 movs r2, 0x1 movs r3, 0 bl sub_80779F0 _08057938: adds r0, r7, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08057944: .4byte gUnknown_80F4DB6 thumb_func_end sub_80578FC thumb_func_start sub_8057948 sub_8057948: push {lr} bl sub_8078968 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_8057948 thumb_func_start sub_8057954 sub_8057954: push {lr} sub sp, 0x4 adds r3, r2, 0 ldr r2, _08057970 ldr r2, [r2] str r2, [sp] movs r2, 0xC bl sub_8079618 movs r0, 0x1 add sp, 0x4 pop {r1} bx r1 .align 2, 0 _08057970: .4byte gUnknown_80FAC88 thumb_func_end sub_8057954 thumb_func_start sub_8057974 sub_8057974: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C mov r10, r0 adds r5, r1, 0 adds r7, r2, 0 mov r9, r3 ldr r0, [r5, 0x70] movs r1, 0xE ldrsh r0, [r0, r1] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 mov r8, r0 movs r6, 0 add r0, sp, 0x18 strb r6, [r0] mov r0, r8 cmp r0, 0 beq _080579E8 adds r0, r7, 0 bl sub_8092B00 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r7, 0 mov r1, r9 bl sub_8057600 lsls r0, 16 asrs r0, 16 add r1, sp, 0x18 str r1, [sp] str r4, [sp, 0x4] str r0, [sp, 0x8] str r6, [sp, 0xC] movs r0, 0x1 str r0, [sp, 0x10] str r6, [sp, 0x14] mov r0, r10 adds r1, r5, 0 mov r2, r8 movs r3, 0x1 bl sub_806F370 add r1, sp, 0x18 movs r2, 0 adds r0, r1, 0 ldrb r0, [r0] cmp r0, 0 bne _080579E4 movs r2, 0x1 _080579E4: strb r2, [r1] b _080579F4 _080579E8: ldr r0, _08057A08 ldr r2, [r0] mov r0, r10 adds r1, r5, 0 bl sub_80522F4 _080579F4: add r0, sp, 0x18 ldrb r0, [r0] add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08057A08: .4byte gUnknown_80FD018 thumb_func_end sub_8057974 thumb_func_start sub_8057A0C sub_8057A0C: push {r4-r7,lr} mov r7, r8 push {r7} adds r5, r0, 0 adds r6, r1, 0 ldr r2, [r5, 0x70] mov r8, r2 ldr r0, [r6, 0x70] adds r3, r0, 0 movs r1, 0xE ldrsh r0, [r2, r1] movs r4, 0xE ldrsh r1, [r3, r4] adds r0, r1 lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 strh r0, [r2, 0xE] strh r0, [r3, 0xE] movs r7, 0xE ldrsh r1, [r2, r7] ldrh r4, [r2, 0x10] movs r7, 0x10 ldrsh r0, [r2, r7] cmp r1, r0 ble _08057A42 strh r4, [r2, 0xE] _08057A42: movs r0, 0xE ldrsh r1, [r3, r0] ldrh r2, [r3, 0x10] movs r4, 0x10 ldrsh r0, [r3, r4] cmp r1, r0 ble _08057A52 strh r2, [r3, 0xE] _08057A52: ldr r4, _08057A90 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0 bl sub_8045B94 adds r4, 0x50 adds r0, r4, 0 adds r1, r6, 0 movs r2, 0 bl sub_8045B94 mov r1, r8 adds r1, 0xFB ldrb r0, [r1] cmp r0, 0 bne _08057A78 movs r0, 0x1 strb r0, [r1] _08057A78: ldr r0, _08057A94 ldr r2, [r0] adds r0, r5, 0 adds r1, r6, 0 bl sub_80522F4 movs r0, 0x1 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08057A90: .4byte gUnknown_202DF98 _08057A94: .4byte gUnknown_80FC7EC thumb_func_end sub_8057A0C thumb_func_start sub_8057A98 sub_8057A98: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 mov r10, r0 mov r8, r1 ldr r0, [r1, 0x70] str r0, [sp, 0x8] movs r1, 0 str r1, [sp, 0xC] movs r1, 0x8C lsls r1, 1 adds r4, r0, r1 adds r5, r4, 0 movs r0, 0x10 mov r9, r0 movs r7, 0x3 _08057ABE: ldrb r1, [r4] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08057B12 movs r6, 0x20 movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _08057B04 mov r0, r9 ands r0, r1 cmp r0, 0 beq _08057B12 ldr r0, _08057AFC adds r1, r5, 0 movs r2, 0 bl sub_80928C0 ldr r0, _08057B00 ldr r2, [r0] mov r0, r10 mov r1, r8 bl sub_80522F4 ldrb r0, [r4] orrs r0, r6 strb r0, [r4] movs r1, 0x1 str r1, [sp, 0xC] b _08057B12 .align 2, 0 _08057AFC: .4byte gUnknown_202DE58 _08057B00: .4byte gUnknown_80FCFBC _08057B04: mov r0, r9 ands r0, r1 cmp r0, 0 bne _08057B12 movs r0, 0xDF ands r0, r1 strb r0, [r4] _08057B12: adds r4, 0x8 adds r5, 0x8 subs r7, 0x1 cmp r7, 0 bge _08057ABE ldr r0, [sp, 0x8] movs r1, 0x9C lsls r1, 1 adds r4, r0, r1 ldrb r1, [r4] movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _08057B6C movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _08057B7A movs r1, 0xB0 lsls r1, 1 mov r0, sp bl sub_8092A88 ldrb r1, [r4] movs r0, 0x20 orrs r0, r1 strb r0, [r4] movs r0, 0x1 str r0, [sp, 0xC] ldr r0, _08057B64 mov r1, sp movs r2, 0 bl sub_80928C0 ldr r0, _08057B68 ldr r2, [r0] mov r0, r10 mov r1, r8 bl sub_80522F4 b _08057B7A .align 2, 0 _08057B64: .4byte gUnknown_202DE58 _08057B68: .4byte gUnknown_80FCFBC _08057B6C: movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _08057B7A movs r0, 0xDF ands r0, r1 strb r0, [r4] _08057B7A: ldr r1, [sp, 0xC] cmp r1, 0 beq _08057B90 ldr r1, [sp, 0x8] adds r1, 0xC0 ldrb r0, [r1] cmp r0, 0x1 bne _08057B9C movs r0, 0 strb r0, [r1] b _08057B9C _08057B90: ldr r0, _08057BB0 ldr r2, [r0] mov r0, r10 mov r1, r8 bl sub_80522F4 _08057B9C: ldr r0, [sp, 0xC] add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08057BB0: .4byte gUnknown_80FCFE4 thumb_func_end sub_8057A98 thumb_func_start sub_8057BB4 sub_8057BB4: push {lr} movs r2, 0x1 movs r3, 0x1 bl sub_80779F0 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_8057BB4 thumb_func_start sub_8057BC4 sub_8057BC4: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x1 bl sub_8077AE4 ldr r0, _08057BE8 ldr r2, [r0] adds r0, r4, 0 adds r1, r5, 0 movs r3, 0x2 bl sub_8077084 movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08057BE8: .4byte gUnknown_8106A4C thumb_func_end sub_8057BC4 thumb_func_start sub_8057BEC sub_8057BEC: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 adds r7, r2, 0 adds r6, r3, 0 movs r0, 0 mov r8, r0 adds r0, r4, 0 bl sub_8070B28 lsls r0, 24 cmp r0, 0 beq _08057C48 movs r3, 0x80 lsls r3, 1 str r6, [sp] adds r0, r4, 0 adds r1, r5, 0 adds r2, r7, 0 bl sub_8055640 cmp r0, 0 beq _08057C54 movs r1, 0x1 mov r8, r1 ldr r0, _08057C44 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r4, 0 adds r1, r5, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _08057C54 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0 bl sub_80776C0 b _08057C54 .align 2, 0 _08057C44: .4byte gUnknown_80F4E0A _08057C48: ldr r0, _08057C64 ldr r2, [r0] adds r0, r4, 0 adds r1, r5, 0 bl sub_80522F4 _08057C54: mov r0, r8 add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08057C64: .4byte gUnknown_80FC734 thumb_func_end sub_8057BEC thumb_func_start sub_8057C68 sub_8057C68: push {lr} sub sp, 0x4 ldr r2, _08057C84 ldr r2, [r2] movs r3, 0x1 str r3, [sp] movs r3, 0x40 bl sub_8077434 movs r0, 0x1 add sp, 0x4 pop {r1} bx r1 .align 2, 0 _08057C84: .4byte gUnknown_8106A4C thumb_func_end sub_8057C68 thumb_func_start sub_8057C88 sub_8057C88: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _08057CC2 movs r7, 0x1 ldr r0, _08057CCC movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r6, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _08057CC2 adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 bl sub_80776C0 _08057CC2: adds r0, r7, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08057CCC: .4byte gUnknown_80F4DF6 thumb_func_end sub_8057C88 thumb_func_start sub_8057CD0 sub_8057CD0: push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x8 adds r4, r0, 0 adds r6, r1, 0 mov r8, r2 adds r5, r3, 0 bl sub_807E580 lsls r0, 24 lsrs r0, 24 ldr r1, _08057D18 adds r1, r0, r1 ldrb r2, [r1] ldr r1, _08057D1C lsls r0, 2 adds r0, r1 ldr r0, [r0] str r0, [sp] str r5, [sp, 0x4] adds r0, r4, 0 adds r1, r6, 0 mov r3, r8 bl sub_80556BC cmp r0, 0 beq _08057D0A movs r0, 0x1 _08057D0A: add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08057D18: .4byte gUnknown_80F51E4 _08057D1C: .4byte gUnknown_80F51EC thumb_func_end sub_8057CD0 thumb_func_start sub_8057D20 sub_8057D20: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r4, r1, 0 movs r7, 0 ldr r0, [r4, 0x70] adds r0, 0xC0 ldrb r0, [r0] movs r6, 0x80 lsls r6, 1 cmp r0, 0x9 bne _08057D3C movs r6, 0x80 lsls r6, 2 _08057D3C: str r3, [sp] adds r0, r5, 0 adds r1, r4, 0 adds r3, r6, 0 bl sub_8055640 cmp r0, 0 beq _08057D6E movs r7, 0x1 ldr r0, _08057D78 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r4, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _08057D6E adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x3B movs r3, 0 bl sub_80768DC _08057D6E: adds r0, r7, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08057D78: .4byte gUnknown_80F4E08 thumb_func_end sub_8057D20 thumb_func_start sub_8057D7C sub_8057D7C: push {lr} sub sp, 0x8 ldr r2, _08057D98 ldr r2, [r2] movs r3, 0x1 str r3, [sp] str r3, [sp, 0x4] movs r3, 0x2 bl sub_8076F80 movs r0, 0x1 add sp, 0x8 pop {r1} bx r1 .align 2, 0 _08057D98: .4byte gUnknown_8106A50 thumb_func_end sub_8057D7C thumb_func_start sub_8057D9C sub_8057D9C: push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 adds r4, r1, 0 ldr r0, [r4, 0x70] movs r5, 0 ldr r1, _08057DF8 mov r8, r1 movs r1, 0x8C lsls r1, 1 adds r2, r0, r1 movs r0, 0x1 mov r12, r0 movs r7, 0x10 movs r3, 0x3 _08057DBC: ldrb r1, [r2] mov r0, r12 ands r0, r1 cmp r0, 0 beq _08057DD4 adds r0, r7, 0 ands r0, r1 cmp r0, 0 beq _08057DD4 movs r0, 0 strb r0, [r2, 0x4] movs r5, 0x1 _08057DD4: adds r2, 0x8 subs r3, 0x1 cmp r3, 0 bge _08057DBC mov r0, r8 adds r1, r4, 0 movs r2, 0 bl sub_8045B94 cmp r5, 0 beq _08057E00 ldr r0, _08057DFC ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 b _08057E0C .align 2, 0 _08057DF8: .4byte gUnknown_202DFE8 _08057DFC: .4byte gUnknown_80FD350 _08057E00: ldr r0, _08057E18 ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 _08057E0C: adds r0, r5, 0 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08057E18: .4byte gUnknown_80FD370 thumb_func_end sub_8057D9C thumb_func_start sub_8057E1C sub_8057E1C: push {lr} bl sub_8078348 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_8057E1C thumb_func_start sub_8057E28 sub_8057E28: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 ldr r1, _08057E4C adds r0, r4, 0 movs r2, 0x1 bl sub_808417C adds r2, r0, 0 adds r0, r5, 0 adds r1, r4, 0 bl sub_807824C movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08057E4C: .4byte gUnknown_80F4EDC thumb_func_end sub_8057E28 thumb_func_start sub_8057E50 sub_8057E50: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl sub_807A9D8 adds r0, r4, 0 adds r1, r5, 0 bl sub_8079CA0 movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8057E50 thumb_func_start sub_8057E6C sub_8057E6C: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 adds r7, r0, 0 adds r5, r1, 0 adds r6, r2, 0 adds r4, r3, 0 movs r0, 0 mov r8, r0 ldr r1, [r7, 0x70] mov r9, r1 adds r0, r7, 0 adds r1, r5, 0 bl sub_807A9D8 movs r3, 0x80 lsls r3, 1 str r4, [sp] adds r0, r7, 0 adds r1, r5, 0 adds r2, r6, 0 bl sub_8055640 cmp r0, 0 beq _08057EBC movs r0, 0x1 mov r8, r0 adds r0, r7, 0 movs r1, 0 bl sub_8057308 lsls r0, 24 cmp r0, 0 beq _08057EBC ldr r0, _08057ECC add r0, r9 mov r1, r8 strb r1, [r0] _08057EBC: mov r0, r8 add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08057ECC: .4byte 0x00000155 thumb_func_end sub_8057E6C thumb_func_start sub_8057ED0 sub_8057ED0: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _08057F12 movs r7, 0x1 ldr r0, _08057F1C movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r6, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _08057F12 ldr r0, _08057F20 ldr r2, [r0] movs r0, 0 str r0, [sp] adds r0, r5, 0 adds r1, r6, 0 movs r3, 0x80 bl sub_80772C0 _08057F12: adds r0, r7, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08057F1C: .4byte gUnknown_80F4E04 _08057F20: .4byte gUnknown_8106A4C thumb_func_end sub_8057ED0 thumb_func_start sub_8057F24 sub_8057F24: push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x4 adds r6, r0, 0 mov r8, r1 ldr r5, [r6, 0x70] movs r0, 0x1 mov r9, r0 movs r4, 0x1 strh r4, [r5, 0xE] ldr r0, _08057F74 ldr r2, [r0] str r4, [sp] adds r0, r6, 0 movs r3, 0x40 bl sub_80772C0 ldr r0, _08057F78 ldr r2, [r0] str r4, [sp] adds r0, r6, 0 mov r1, r8 movs r3, 0x40 bl sub_80772C0 movs r0, 0xAA lsls r0, 1 adds r5, r0 mov r0, r9 strb r0, [r5] movs r0, 0x1 add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08057F74: .4byte gUnknown_8106A4C _08057F78: .4byte gUnknown_8106A50 thumb_func_end sub_8057F24 thumb_func_start sub_8057F7C sub_8057F7C: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _08057FBA movs r7, 0x1 ldr r0, _08057FC4 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r6, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _08057FBA ldr r0, _08057FC8 ldr r2, [r0] adds r0, r5, 0 adds r1, r6, 0 movs r3, 0 bl sub_80775DC _08057FBA: adds r0, r7, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08057FC4: .4byte gUnknown_80F4E02 _08057FC8: .4byte gUnknown_8106A4C thumb_func_end sub_8057F7C thumb_func_start sub_8057FCC sub_8057FCC: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x1 bl sub_8077AE4 ldr r0, _08057FF0 ldr r2, [r0] adds r0, r4, 0 adds r1, r5, 0 movs r3, 0x1 bl sub_8077084 movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08057FF0: .4byte gUnknown_8106A50 thumb_func_end sub_8057FCC thumb_func_start sub_8057FF4 sub_8057FF4: push {r4-r6,lr} adds r5, r0, 0 adds r4, r1, 0 adds r0, r4, 0 bl sub_807723C lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0 beq _08058048 ldr r0, [r4, 0x70] movs r2, 0xA9 lsls r2, 1 adds r1, r0, r2 ldrb r0, [r1] cmp r0, 0 bne _08058054 movs r0, 0x1 strb r0, [r1] ldr r0, _0805802C adds r1, r4, 0 movs r2, 0 bl sub_8045B94 cmp r6, 0x1 bne _08058034 ldr r0, _08058030 b _08058036 .align 2, 0 _0805802C: .4byte gUnknown_202DFE8 _08058030: .4byte gUnknown_80FAE00 _08058034: ldr r0, _08058044 _08058036: ldr r2, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_80522F4 b _08058054 .align 2, 0 _08058044: .4byte gUnknown_80FADD8 _08058048: adds r0, r5, 0 adds r1, r4, 0 movs r2, 0 movs r3, 0x1 bl sub_8076210 _08058054: movs r0, 0x1 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8057FF4 thumb_func_start sub_805805C sub_805805C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C mov r10, r0 mov r9, r1 adds r5, r2, 0 mov r8, r3 ldr r1, [r0, 0x70] movs r6, 0x1 movs r2, 0 ldr r4, _08058098 movs r3, 0 ldrsh r0, [r4, r3] cmp r0, 0 blt _080580B0 movs r7, 0xC ldrsh r3, [r1, r7] adds r1, r4, 0 ldr r4, _0805809C _08058088: movs r7, 0 ldrsh r0, [r1, r7] cmp r3, r0 bge _080580A0 movs r0, 0x2 ldrsh r6, [r1, r0] b _080580B0 .align 2, 0 _08058098: .4byte gUnknown_80F55BC _0805809C: .4byte 0x000003e6 _080580A0: adds r1, 0x4 adds r2, 0x1 cmp r2, r4 bgt _080580B0 movs r7, 0 ldrsh r0, [r1, r7] cmp r0, 0 bge _08058088 _080580B0: adds r0, r5, 0 bl sub_8092B00 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 mov r1, r8 bl sub_8057600 lsls r0, 16 asrs r0, 16 add r1, sp, 0x18 str r1, [sp] str r4, [sp, 0x4] str r0, [sp, 0x8] movs r1, 0 str r1, [sp, 0xC] movs r0, 0x1 str r0, [sp, 0x10] str r1, [sp, 0x14] mov r0, r10 mov r1, r9 adds r2, r6, 0 movs r3, 0x1 bl sub_806F370 add r1, sp, 0x18 movs r2, 0 adds r0, r1, 0 ldrb r0, [r0] cmp r0, 0 bne _080580F4 movs r2, 0x1 _080580F4: strb r2, [r1] add r0, sp, 0x18 ldrb r0, [r0] add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_805805C thumb_func_start sub_805810C sub_805810C: push {r4-r7,lr} adds r6, r0, 0 adds r5, r1, 0 movs r7, 0 ldr r4, [r5, 0x70] ldr r0, _08058134 movs r2, 0 bl sub_8045B94 adds r4, 0xF4 ldrb r0, [r4] cmp r0, 0 beq _0805813C ldr r0, _08058138 ldr r2, [r0] adds r0, r6, 0 adds r1, r5, 0 bl sub_80522F4 b _0805814E .align 2, 0 _08058134: .4byte gUnknown_202DFE8 _08058138: .4byte gUnknown_80FD2B4 _0805813C: movs r0, 0x1 strb r0, [r4] movs r7, 0x1 ldr r0, _08058158 ldr r2, [r0] adds r0, r6, 0 adds r1, r5, 0 bl sub_80522F4 _0805814E: adds r0, r7, 0 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08058158: .4byte gUnknown_80FD294 thumb_func_end sub_805810C thumb_func_start sub_805815C sub_805815C: push {lr} movs r2, 0x4 bl sub_80797A0 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805815C thumb_func_start sub_805816C sub_805816C: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r6, r0, 0 adds r7, r1, 0 adds r5, r2, 0 adds r4, r3, 0 movs r0, 0 mov r8, r0 adds r0, r6, 0 bl sub_807A9D8 movs r3, 0x80 lsls r3, 1 str r4, [sp] adds r0, r6, 0 adds r1, r7, 0 adds r2, r5, 0 bl sub_8055640 cmp r0, 0 beq _080581BE movs r1, 0x1 mov r8, r1 ldr r0, _080581CC movs r1, 0 ldrsh r2, [r0, r1] adds r0, r6, 0 adds r1, r7, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _080581BE adds r0, r6, 0 adds r1, r7, 0 movs r2, 0 movs r3, 0 bl sub_8076210 _080581BE: mov r0, r8 add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080581CC: .4byte gUnknown_80F4DB8 thumb_func_end sub_805816C thumb_func_start sub_80581D0 sub_80581D0: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r6, r0, 0 adds r7, r1, 0 adds r5, r2, 0 adds r4, r3, 0 movs r0, 0 mov r8, r0 adds r0, r6, 0 bl sub_807A9D8 movs r3, 0x80 lsls r3, 1 str r4, [sp] adds r0, r6, 0 adds r1, r7, 0 adds r2, r5, 0 bl sub_8055640 cmp r0, 0 beq _08058222 movs r1, 0x1 mov r8, r1 ldr r0, _08058230 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r6, 0 adds r1, r7, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _08058222 adds r0, r6, 0 adds r1, r7, 0 movs r2, 0 movs r3, 0 bl sub_8076210 _08058222: mov r0, r8 add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08058230: .4byte gUnknown_80F4DBA thumb_func_end sub_80581D0 thumb_func_start sub_8058234 sub_8058234: push {r4,lr} adds r3, r0, 0 adds r4, r1, 0 ldrh r1, [r2, 0x2] ldr r0, _08058258 movs r2, 0x51 cmp r1, r0 bne _08058246 movs r2, 0x7A _08058246: adds r0, r3, 0 adds r1, r4, 0 bl sub_8078FDC movs r0, 0x1 pop {r4} pop {r1} bx r1 .align 2, 0 _08058258: .4byte 0x0000013b thumb_func_end sub_8058234 thumb_func_start sub_805825C sub_805825C: push {lr} ldr r2, _0805826C ldr r2, [r2] bl sub_8077540 movs r0, 0x1 pop {r1} bx r1 .align 2, 0 _0805826C: .4byte gUnknown_8106A50 thumb_func_end sub_805825C thumb_func_start sub_8058270 sub_8058270: push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r2, 0 adds r2, r3, 0 movs r3, 0x1 ldr r0, [r1, 0x70] adds r0, 0xC0 ldrb r0, [r0] subs r0, 0x7 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _0805828E movs r3, 0x2 _0805828E: lsls r3, 8 str r2, [sp] adds r0, r4, 0 adds r2, r5, 0 bl sub_8055640 adds r1, r0, 0 negs r0, r1 orrs r0, r1 lsrs r0, 31 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8058270 thumb_func_start sub_80582AC sub_80582AC: push {lr} ldr r2, _080582C0 ldr r2, [r2] movs r3, 0x1 bl sub_8077160 movs r0, 0x1 pop {r1} bx r1 .align 2, 0 _080582C0: .4byte gUnknown_8106A4C thumb_func_end sub_80582AC thumb_func_start sub_80582C4 sub_80582C4: push {lr} movs r2, 0x1 bl sub_8077780 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_80582C4 thumb_func_start sub_80582D4 sub_80582D4: push {lr} ldr r2, _080582E8 ldr r2, [r2] movs r3, 0x1 bl sub_8077084 movs r0, 0x1 pop {r1} bx r1 .align 2, 0 _080582E8: .4byte gUnknown_8106A4C thumb_func_end sub_80582D4 thumb_func_start sub_80582EC sub_80582EC: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r7, r1, 0 adds r4, r2, 0 adds r6, r3, 0 adds r1, r4, 0 bl sub_80570AC lsls r0, 24 cmp r0, 0 beq _08058328 ldr r0, _08058324 ldr r3, [r0] str r6, [sp] adds r0, r5, 0 adds r1, r7, 0 adds r2, r4, 0 bl sub_8055640 negs r1, r0 orrs r1, r0 lsrs r4, r1, 31 adds r0, r5, 0 bl sub_8079764 b _0805833C .align 2, 0 _08058324: .4byte gUnknown_80F4F50 _08058328: ldr r0, _08058348 ldr r0, [r0] str r0, [sp] adds r0, r5, 0 adds r1, r5, 0 movs r2, 0x4 adds r3, r4, 0 bl sub_8079618 movs r4, 0x1 _0805833C: adds r0, r4, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08058348: .4byte gUnknown_80FAC54 thumb_func_end sub_80582EC thumb_func_start sub_805834C sub_805834C: push {lr} sub sp, 0x4 adds r3, r2, 0 ldr r2, _08058368 ldr r2, [r2] str r2, [sp] movs r2, 0x1 bl sub_8079618 movs r0, 0x1 add sp, 0x4 pop {r1} bx r1 .align 2, 0 _08058368: .4byte gUnknown_80FAC74 thumb_func_end sub_805834C thumb_func_start sub_805836C sub_805836C: push {r4-r7,lr} sub sp, 0x1C adds r6, r0, 0 adds r7, r1, 0 movs r5, 0 add r0, sp, 0x18 strb r5, [r0] ldr r0, [r6, 0x70] adds r0, 0xA0 ldr r0, [r0] lsls r4, r0, 1 ldr r0, _080583D0 cmp r4, r0 ble _0805838A adds r4, r0, 0 _0805838A: adds r0, r2, 0 bl sub_8092B00 lsls r0, 24 lsrs r0, 24 add r1, sp, 0x18 str r1, [sp] str r0, [sp, 0x4] ldr r0, _080583D4 str r0, [sp, 0x8] str r5, [sp, 0xC] movs r0, 0x1 str r0, [sp, 0x10] str r5, [sp, 0x14] adds r0, r6, 0 adds r1, r7, 0 adds r2, r4, 0 movs r3, 0x1 bl sub_806F370 add r1, sp, 0x18 movs r2, 0 adds r0, r1, 0 ldrb r0, [r0] cmp r0, 0 bne _080583C0 movs r2, 0x1 _080583C0: strb r2, [r1] add r0, sp, 0x18 ldrb r0, [r0] add sp, 0x1C pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080583D0: .4byte 0x000003e7 _080583D4: .4byte 0x000001ff thumb_func_end sub_805836C thumb_func_start sub_80583D8 sub_80583D8: push {r4-r7,lr} sub sp, 0x8 adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _0805841C movs r7, 0x1 ldr r0, _08058428 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r6, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _0805841C ldr r0, _0805842C ldr r2, [r0] str r7, [sp] movs r0, 0 str r0, [sp, 0x4] adds r0, r5, 0 adds r1, r6, 0 movs r3, 0x1 bl sub_8076F80 _0805841C: adds r0, r7, 0 add sp, 0x8 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08058428: .4byte gUnknown_80F4DC2 _0805842C: .4byte gUnknown_8106A50 thumb_func_end sub_80583D8 thumb_func_start sub_8058430 sub_8058430: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _0805846A movs r7, 0x1 ldr r0, _08058474 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r6, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _0805846A adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 bl sub_80776C0 _0805846A: adds r0, r7, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08058474: .4byte gUnknown_80F4DEE thumb_func_end sub_8058430 thumb_func_start sub_8058478 sub_8058478: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _080584B2 movs r7, 0x1 ldr r0, _080584BC movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r6, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _080584B2 adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 bl sub_8077780 _080584B2: adds r0, r7, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080584BC: .4byte gUnknown_80F4DE6 thumb_func_end sub_8058478 thumb_func_start sub_80584C0 sub_80584C0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C mov r9, r0 mov r10, r1 adds r6, r2, 0 mov r8, r3 movs r7, 0 add r0, sp, 0x18 strb r7, [r0] mov r0, r9 ldr r2, [r0, 0x70] ldr r0, [r1, 0x70] movs r3, 0xE ldrsh r1, [r0, r3] movs r3, 0xE ldrsh r0, [r2, r3] subs r5, r1, r0 cmp r5, 0 bge _080584F0 movs r5, 0 _080584F0: adds r0, r6, 0 bl sub_8092B00 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r6, 0 mov r1, r8 bl sub_8057600 lsls r0, 16 asrs r0, 16 add r1, sp, 0x18 str r1, [sp] str r4, [sp, 0x4] str r0, [sp, 0x8] str r7, [sp, 0xC] movs r0, 0x1 str r0, [sp, 0x10] str r7, [sp, 0x14] mov r0, r9 mov r1, r10 adds r2, r5, 0 movs r3, 0 bl sub_806F370 add r1, sp, 0x18 movs r2, 0 adds r0, r1, 0 ldrb r0, [r0] cmp r0, 0 bne _08058532 movs r2, 0x1 _08058532: strb r2, [r1] add r0, sp, 0x18 ldrb r0, [r0] add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80584C0 thumb_func_start sub_8058548 sub_8058548: push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 movs r5, 0x80 lsls r5, 1 ldr r0, [r4, 0x70] adds r0, 0xAC ldrb r0, [r0] cmp r0, 0 beq _08058560 ldr r0, _0805857C ldr r5, [r0] _08058560: str r3, [sp] adds r0, r4, 0 adds r3, r5, 0 bl sub_8055640 adds r1, r0, 0 negs r0, r1 orrs r0, r1 lsrs r0, 31 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805857C: .4byte gUnknown_80F4F6C thumb_func_end sub_8058548 thumb_func_start sub_8058580 sub_8058580: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _080585BC movs r7, 0x1 ldr r0, _080585C8 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r6, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _080585BC adds r0, r5, 0 adds r1, r6, 0 movs r2, 0x1 movs r3, 0 bl sub_80779F0 _080585BC: adds r0, r7, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080585C8: .4byte gUnknown_80F4DD4 thumb_func_end sub_8058580 thumb_func_start sub_80585CC sub_80585CC: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r5, r0, 0 adds r4, r1, 0 mov r8, r2 adds r7, r3, 0 movs r6, 0 ldr r0, [r4, 0x70] adds r0, 0xC4 ldrb r0, [r0] cmp r0, 0x1 beq _080585EC cmp r0, 0x3 bne _08058602 _080585EC: ldr r0, _08058620 ldr r2, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_80522F4 adds r0, r5, 0 adds r1, r4, 0 bl sub_807A4C8 movs r6, 0x1 _08058602: movs r3, 0x80 lsls r3, 1 str r7, [sp] adds r0, r5, 0 adds r1, r4, 0 mov r2, r8 bl sub_8055640 cmp r0, 0 beq _08058624 movs r0, 0x1 orrs r0, r6 lsls r0, 24 b _08058626 .align 2, 0 _08058620: .4byte gUnknown_80FD104 _08058624: lsls r0, r6, 24 _08058626: lsrs r0, 24 adds r6, r0, 0 add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80585CC thumb_func_start sub_8058638 sub_8058638: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _08058670 movs r7, 0x1 adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _08058670 adds r0, r5, 0 adds r1, r6, 0 movs r2, 0x1 movs r3, 0 bl sub_80779F0 _08058670: adds r0, r7, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8058638 thumb_func_start sub_805867C sub_805867C: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r7, r1, 0 adds r4, r2, 0 adds r6, r3, 0 adds r1, r4, 0 bl sub_80570AC lsls r0, 24 cmp r0, 0 beq _080586B8 ldr r0, _080586B4 ldr r3, [r0] str r6, [sp] adds r0, r5, 0 adds r1, r7, 0 adds r2, r4, 0 bl sub_8055640 negs r1, r0 orrs r1, r0 lsrs r4, r1, 31 adds r0, r5, 0 bl sub_8079764 b _080586CC .align 2, 0 _080586B4: .4byte gUnknown_80F4F54 _080586B8: ldr r0, _080586D8 ldr r0, [r0] str r0, [sp] adds r0, r5, 0 adds r1, r5, 0 movs r2, 0x5 adds r3, r4, 0 bl sub_8079618 movs r4, 0x1 _080586CC: adds r0, r4, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080586D8: .4byte gUnknown_80FACA4 thumb_func_end sub_805867C thumb_func_start sub_80586DC sub_80586DC: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r7, r0, 0 adds r4, r1, 0 adds r6, r2, 0 adds r5, r3, 0 adds r0, r4, 0 movs r1, 0x3A bl sub_8071824 lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r3, 0x80 lsls r3, 1 str r5, [sp] adds r0, r7, 0 adds r1, r4, 0 adds r2, r6, 0 bl sub_8055640 adds r4, r0, 0 negs r0, r4 orrs r0, r4 lsrs r5, r0, 31 cmp r5, 0 beq _08058762 adds r0, r7, 0 movs r1, 0 bl sub_8057308 lsls r0, 24 cmp r0, 0 beq _08058762 lsrs r0, r4, 31 adds r0, r4, r0 asrs r2, r0, 1 ldr r0, [r7, 0x70] movs r5, 0x1 cmp r2, 0 bgt _08058734 movs r2, 0x1 _08058734: adds r1, r0, 0 adds r1, 0xFB ldrb r0, [r1] cmp r0, 0 bne _08058740 strb r5, [r1] _08058740: mov r0, r8 cmp r0, 0 beq _08058756 movs r3, 0xFD lsls r3, 1 adds r0, r7, 0 adds r1, r2, 0 movs r2, 0xD bl sub_806F324 b _08058762 _08058756: str r5, [sp] adds r0, r7, 0 adds r1, r7, 0 movs r3, 0 bl sub_8077C44 _08058762: adds r0, r5, 0 add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80586DC thumb_func_start sub_8058770 sub_8058770: push {r4-r7,lr} sub sp, 0x4 adds r4, r0, 0 adds r6, r1, 0 mov r12, r2 adds r5, r3, 0 ldr r2, [r4, 0x70] movs r0, 0x10 ldrsh r3, [r2, r0] adds r0, r3, 0 cmp r3, 0 bge _0805878A adds r0, r3, 0x3 _0805878A: movs r7, 0xE ldrsh r1, [r2, r7] asrs r0, 2 cmp r1, r0 bgt _08058798 movs r3, 0 b _080587BE _08058798: movs r0, 0xE ldrsh r1, [r2, r0] lsrs r0, r3, 31 adds r0, r3, r0 asrs r0, 1 cmp r1, r0 bgt _080587AA movs r3, 0x1 b _080587BE _080587AA: lsls r0, r3, 1 adds r0, r3 cmp r0, 0 bge _080587B4 adds r0, 0x3 _080587B4: asrs r0, 2 movs r3, 0x3 cmp r1, r0 bgt _080587BE movs r3, 0x2 _080587BE: ldr r1, _080587E4 lsls r0, r3, 2 adds r0, r1 ldr r3, [r0] str r5, [sp] adds r0, r4, 0 adds r1, r6, 0 mov r2, r12 bl sub_8055640 adds r1, r0, 0 negs r0, r1 orrs r0, r1 lsrs r0, 31 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080587E4: .4byte gUnknown_80F51A4 thumb_func_end sub_8058770 thumb_func_start sub_80587E8 sub_80587E8: push {r4-r6,lr} sub sp, 0x4 adds r6, r0, 0 adds r5, r1, 0 adds r1, r3, 0 ldr r0, [r5, 0x70] adds r0, 0xAC ldrb r0, [r0] cmp r0, 0x4 bne _0805881A movs r3, 0x80 lsls r3, 2 str r1, [sp] adds r0, r6, 0 adds r1, r5, 0 bl sub_8055640 negs r1, r0 orrs r1, r0 lsrs r4, r1, 31 adds r0, r6, 0 adds r1, r5, 0 bl sub_807A290 b _0805882E _0805881A: movs r3, 0x80 lsls r3, 1 str r1, [sp] adds r0, r6, 0 adds r1, r5, 0 bl sub_8055640 negs r1, r0 orrs r1, r0 lsrs r4, r1, 31 _0805882E: adds r0, r4, 0 add sp, 0x4 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80587E8 thumb_func_start sub_8058838 sub_8058838: push {lr} sub sp, 0x8 ldr r2, _08058854 ldr r2, [r2] movs r3, 0x1 str r3, [sp] str r3, [sp, 0x4] movs r3, 0x3 bl sub_8076F80 movs r0, 0x1 add sp, 0x8 pop {r1} bx r1 .align 2, 0 _08058854: .4byte gUnknown_8106A50 thumb_func_end sub_8058838 thumb_func_start sub_8058858 sub_8058858: push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x8 adds r6, r0, 0 mov r8, r1 ldr r0, _08058898 ldr r5, [r0] movs r4, 0x1 str r4, [sp] str r4, [sp, 0x4] adds r0, r6, 0 adds r2, r5, 0 movs r3, 0x1 bl sub_8076E20 str r4, [sp] str r4, [sp, 0x4] adds r0, r6, 0 mov r1, r8 adds r2, r5, 0 movs r3, 0x1 bl sub_8076F80 movs r0, 0x1 add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08058898: .4byte gUnknown_8106A4C thumb_func_end sub_8058858 thumb_func_start sub_805889C sub_805889C: push {lr} bl sub_80769CC movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805889C thumb_func_start sub_80588A8 sub_80588A8: push {lr} movs r2, 0x1 bl sub_8079E34 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_80588A8 thumb_func_start sub_80588B8 sub_80588B8: push {r4-r6,lr} sub sp, 0x4 adds r5, r0, 0 movs r6, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _080588E4 movs r6, 0x1 adds r0, r5, 0 movs r1, 0 bl sub_8057308 lsls r0, 24 cmp r0, 0 beq _080588E4 ldr r0, _080588F0 strb r6, [r0] _080588E4: adds r0, r6, 0 add sp, 0x4 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _080588F0: .4byte gUnknown_202F219 thumb_func_end sub_80588B8 thumb_func_start sub_80588F4 sub_80588F4: push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x4 adds r6, r0, 0 adds r5, r1, 0 mov r8, r2 adds r4, r3, 0 ldr r0, [r5, 0x70] movs r1, 0x4 ldrsh r0, [r0, r1] bl sub_808DB78 adds r3, r0, 0 str r4, [sp] adds r0, r6, 0 adds r1, r5, 0 mov r2, r8 bl sub_8055640 adds r1, r0, 0 negs r0, r1 orrs r0, r1 lsrs r0, 31 add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80588F4 thumb_func_start sub_8058930 sub_8058930: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r7, r0, 0 movs r0, 0 mov r8, r0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r0, r7, 0 adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _080589B8 movs r2, 0x1 mov r8, r2 ldr r0, _080589C8 movs r2, 0 ldrsh r1, [r0, r2] adds r0, r7, 0 bl sub_8057308 lsls r0, 24 cmp r0, 0 beq _080589B8 ldr r6, [r7, 0x70] adds r0, r7, 0 adds r1, r7, 0 movs r2, 0 movs r3, 0x1 bl sub_8077910 ldr r0, _080589CC ldr r5, [r0] adds r0, r7, 0 adds r1, r7, 0 adds r2, r5, 0 movs r3, 0x1 bl sub_8077084 ldr r0, _080589D0 ldr r4, [r0] adds r0, r7, 0 adds r1, r7, 0 adds r2, r4, 0 movs r3, 0x1 bl sub_8077084 adds r0, r7, 0 adds r1, r7, 0 adds r2, r5, 0 movs r3, 0x1 bl sub_8077160 adds r0, r7, 0 adds r1, r7, 0 adds r2, r4, 0 movs r3, 0x1 bl sub_8077160 adds r6, 0xFB ldrb r0, [r6] cmp r0, 0 bne _080589B8 mov r0, r8 strb r0, [r6] _080589B8: mov r0, r8 add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080589C8: .4byte gUnknown_80F4DD6 _080589CC: .4byte gUnknown_8106A4C _080589D0: .4byte gUnknown_8106A50 thumb_func_end sub_8058930 thumb_func_start sub_80589D4 sub_80589D4: push {r4-r6,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 ldr r4, _08058A04 bl sub_807E580 lsls r0, 24 lsrs r0, 23 adds r0, r4 movs r1, 0 ldrsh r2, [r0, r1] movs r0, 0x1 str r0, [sp] adds r0, r5, 0 adds r1, r6, 0 movs r3, 0 bl sub_8077C44 movs r0, 0x1 add sp, 0x4 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08058A04: .4byte gUnknown_80F500A thumb_func_end sub_80589D4 thumb_func_start sub_8058A08 sub_8058A08: push {lr} movs r2, 0 movs r3, 0x1 bl sub_8077910 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_8058A08 thumb_func_start sub_8058A18 sub_8058A18: push {r4-r6,lr} sub sp, 0x4 adds r5, r0, 0 movs r6, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _08058A44 movs r6, 0x1 adds r0, r5, 0 movs r1, 0 bl sub_8057308 lsls r0, 24 cmp r0, 0 beq _08058A44 ldr r0, _08058A50 strb r6, [r0] _08058A44: adds r0, r6, 0 add sp, 0x4 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08058A50: .4byte gUnknown_202F21A thumb_func_end sub_8058A18 thumb_func_start sub_8058A54 sub_8058A54: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 ldr r1, _08058A78 adds r0, r4, 0 movs r2, 0 bl sub_808417C adds r2, r0, 0 adds r0, r5, 0 adds r1, r4, 0 bl sub_80781DC movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08058A78: .4byte gUnknown_80F4EB8 thumb_func_end sub_8058A54 thumb_func_start sub_8058A7C sub_8058A7C: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 ldr r0, _08058AA4 ldr r2, [r0] adds r0, r4, 0 movs r3, 0x1 bl sub_8077160 ldr r0, _08058AA8 ldr r2, [r0] adds r0, r4, 0 adds r1, r5, 0 movs r3, 0x1 bl sub_8077160 movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08058AA4: .4byte gUnknown_8106A4C _08058AA8: .4byte gUnknown_8106A50 thumb_func_end sub_8058A7C thumb_func_start sub_8058AAC sub_8058AAC: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r4, r0, 0 adds r6, r1, 0 adds r5, r2, 0 adds r7, r3, 0 movs r0, 0 mov r8, r0 adds r0, r4, 0 adds r1, r5, 0 bl sub_80570AC lsls r0, 24 cmp r0, 0 beq _08058B14 ldr r0, _08058B0C ldr r3, [r0] str r7, [sp] adds r0, r4, 0 adds r1, r6, 0 adds r2, r5, 0 bl sub_8055640 cmp r0, 0 beq _08058B04 movs r1, 0x1 mov r8, r1 ldr r0, _08058B10 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r4, 0 adds r1, r6, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _08058B04 adds r0, r4, 0 adds r1, r6, 0 movs r2, 0 bl sub_80776C0 _08058B04: adds r0, r4, 0 bl sub_8079764 b _08058B2A .align 2, 0 _08058B0C: .4byte gUnknown_80F4F4C _08058B10: .4byte gUnknown_80F4DF4 _08058B14: ldr r0, _08058B38 ldr r0, [r0] str r0, [sp] adds r0, r4, 0 adds r1, r4, 0 movs r2, 0x3 adds r3, r5, 0 bl sub_8079618 movs r0, 0x1 mov r8, r0 _08058B2A: mov r0, r8 add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08058B38: .4byte gUnknown_80FACC4 thumb_func_end sub_8058AAC thumb_func_start sub_8058B3C sub_8058B3C: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _08058B76 movs r7, 0x1 ldr r0, _08058B80 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r6, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _08058B76 adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 bl sub_80767B0 _08058B76: adds r0, r7, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08058B80: .4byte gUnknown_80F4DBC thumb_func_end sub_8058B3C thumb_func_start sub_8058B84 sub_8058B84: push {r4-r6,lr} sub sp, 0x4 adds r5, r0, 0 movs r6, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _08058BCC movs r6, 0x1 ldr r0, _08058BD8 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r5, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _08058BCC ldr r4, [r5, 0x70] ldr r0, _08058BDC ldr r2, [r0] adds r0, r5, 0 adds r1, r5, 0 movs r3, 0x1 bl sub_8077084 adds r4, 0xFB ldrb r0, [r4] cmp r0, 0 bne _08058BCC strb r6, [r4] _08058BCC: adds r0, r6, 0 add sp, 0x4 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08058BD8: .4byte gUnknown_80F4DD0 _08058BDC: .4byte gUnknown_8106A4C thumb_func_end sub_8058B84 thumb_func_start sub_8058BE0 sub_8058BE0: push {lr} adds r1, r0, 0 bl sub_8079C24 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_8058BE0 thumb_func_start sub_8058BF0 sub_8058BF0: push {lr} movs r2, 0x1 movs r3, 0x1 bl sub_80779F0 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_8058BF0 thumb_func_start sub_8058C00 sub_8058C00: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _08058C3A movs r7, 0x1 ldr r0, _08058C44 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r6, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _08058C3A adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 bl sub_8077AE4 _08058C3A: adds r0, r7, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08058C44: .4byte gUnknown_80F4DF8 thumb_func_end sub_8058C00 thumb_func_start sub_8058C48 sub_8058C48: push {r4-r7,lr} sub sp, 0x4 adds r4, r0, 0 adds r6, r1, 0 adds r7, r2, 0 adds r5, r3, 0 movs r1, 0xC0 lsls r1, 1 movs r0, 0x80 bl sub_808411C adds r3, r0, 0 ldr r0, [r4, 0x70] ldrb r0, [r0, 0x9] muls r0, r3 cmp r0, 0 bge _08058C6C adds r0, 0xFF _08058C6C: asrs r3, r0, 8 cmp r3, 0 bge _08058C74 movs r3, 0x1 _08058C74: cmp r3, 0xC7 ble _08058C7A movs r3, 0xC7 _08058C7A: str r5, [sp] adds r0, r4, 0 adds r1, r6, 0 adds r2, r7, 0 bl sub_8055864 adds r1, r0, 0 negs r0, r1 orrs r0, r1 lsrs r0, 31 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8058C48 thumb_func_start sub_8058C98 sub_8058C98: push {r4-r7,lr} sub sp, 0x8 adds r4, r0, 0 adds r5, r1, 0 adds r7, r3, 0 ldr r0, [sp, 0x1C] movs r6, 0 movs r3, 0x80 lsls r3, 1 str r0, [sp] adds r0, r4, 0 bl sub_8055640 cmp r0, 0 beq _08058CDE movs r6, 0x1 ldr r0, _08058CE8 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r4, 0 adds r1, r5, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _08058CDE str r6, [sp] movs r0, 0 str r0, [sp, 0x4] adds r0, r4, 0 adds r1, r5, 0 adds r2, r7, 0 movs r3, 0x1 bl sub_8076F80 _08058CDE: adds r0, r6, 0 add sp, 0x8 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08058CE8: .4byte gUnknown_80F4DC0 thumb_func_end sub_8058C98 thumb_func_start sub_8058CEC sub_8058CEC: push {r4-r6,lr} sub sp, 0x8 adds r5, r0, 0 movs r6, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _08058D28 movs r6, 0x1 adds r0, r5, 0 movs r1, 0 bl sub_8057308 lsls r0, 24 cmp r0, 0 beq _08058D28 ldr r0, _08058D34 ldr r2, [r0] movs r0, 0 str r0, [sp] str r0, [sp, 0x4] adds r0, r5, 0 adds r1, r5, 0 movs r3, 0x2 bl sub_8076E20 _08058D28: adds r0, r6, 0 add sp, 0x8 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08058D34: .4byte gUnknown_8106A50 thumb_func_end sub_8058CEC thumb_func_start sub_8058D38 sub_8058D38: push {lr} bl sub_8075FCC movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_8058D38 thumb_func_start sub_8058D44 sub_8058D44: push {r4-r7,lr} sub sp, 0x4 adds r4, r0, 0 adds r6, r1, 0 mov r12, r2 adds r5, r3, 0 ldr r2, [r4, 0x70] movs r0, 0x10 ldrsh r3, [r2, r0] adds r0, r3, 0 cmp r3, 0 bge _08058D5E adds r0, r3, 0x3 _08058D5E: movs r7, 0xE ldrsh r1, [r2, r7] asrs r0, 2 cmp r1, r0 bgt _08058D6C movs r3, 0 b _08058D92 _08058D6C: movs r0, 0xE ldrsh r1, [r2, r0] lsrs r0, r3, 31 adds r0, r3, r0 asrs r0, 1 cmp r1, r0 bgt _08058D7E movs r3, 0x1 b _08058D92 _08058D7E: lsls r0, r3, 1 adds r0, r3 cmp r0, 0 bge _08058D88 adds r0, 0x3 _08058D88: asrs r0, 2 movs r3, 0x3 cmp r1, r0 bgt _08058D92 movs r3, 0x2 _08058D92: ldr r1, _08058DB8 lsls r0, r3, 2 adds r0, r1 ldr r3, [r0] str r5, [sp] adds r0, r4, 0 adds r1, r6, 0 mov r2, r12 bl sub_8055640 adds r1, r0, 0 negs r0, r1 orrs r0, r1 lsrs r0, 31 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08058DB8: .4byte gUnknown_80F51B4 thumb_func_end sub_8058D44 thumb_func_start sub_8058DBC sub_8058DBC: push {r4-r7,lr} adds r7, r0, 0 adds r6, r1, 0 ldr r5, [r7, 0x70] ldr r4, [r6, 0x70] adds r0, r6, 0 bl nullsub_92 movs r3, 0 _08058DCE: lsls r2, r3, 1 adds r1, r5, 0 adds r1, 0x1C adds r1, r2 adds r0, r4, 0 adds r0, 0x1C adds r0, r2 ldrh r0, [r0] strh r0, [r1] adds r1, r5, 0 adds r1, 0x20 adds r1, r2 adds r0, r4, 0 adds r0, 0x20 adds r0, r2 ldrh r0, [r0] strh r0, [r1] adds r1, r5, 0 adds r1, 0x24 adds r1, r2 adds r0, r4, 0 adds r0, 0x24 adds r0, r2 ldrh r0, [r0] strh r0, [r1] lsls r2, r3, 2 adds r1, r5, 0 adds r1, 0x2C adds r1, r2 adds r0, r4, 0 adds r0, 0x2C adds r0, r2 ldr r0, [r0] str r0, [r1] adds r1, r5, 0 adds r1, 0x34 adds r1, r2 adds r0, r4, 0 adds r0, 0x34 adds r0, r2 ldr r0, [r0] str r0, [r1] adds r3, 0x1 cmp r3, 0x1 ble _08058DCE ldr r0, _08058E54 adds r1, r6, 0 movs r2, 0 bl sub_8045B94 ldr r0, _08058E58 ldr r2, [r0] adds r0, r7, 0 adds r1, r6, 0 bl sub_80522F4 adds r1, r5, 0 adds r1, 0xFB ldrb r0, [r1] cmp r0, 0 bne _08058E4C movs r0, 0x1 strb r0, [r1] _08058E4C: movs r0, 0x1 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08058E54: .4byte gUnknown_202DF98 _08058E58: .4byte gUnknown_80FBD58 thumb_func_end sub_8058DBC thumb_func_start sub_8058E5C sub_8058E5C: push {r4-r7,lr} sub sp, 0x18 adds r5, r0, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _08058ED0 adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08058ED0 ldr r0, [r5, 0x70] movs r1, 0x10 ldrsh r2, [r0, r1] cmp r2, 0 bge _08058E8C adds r2, 0x7 _08058E8C: asrs r6, r2, 3 cmp r6, 0 bne _08058E94 movs r6, 0x1 _08058E94: movs r7, 0x1 adds r0, r5, 0 movs r1, 0x7 bl sub_8071824 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _08058ED0 adds r0, r5, 0 movs r1, 0 bl sub_8057308 lsls r0, 24 cmp r0, 0 beq _08058ED0 str r4, [sp] str r4, [sp, 0x4] ldr r0, _08058EDC str r0, [sp, 0x8] movs r0, 0x14 str r0, [sp, 0xC] str r7, [sp, 0x10] str r4, [sp, 0x14] adds r0, r5, 0 adds r1, r5, 0 adds r2, r6, 0 movs r3, 0 bl sub_806F370 _08058ED0: adds r0, r7, 0 add sp, 0x18 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08058EDC: .4byte 0x000001fd thumb_func_end sub_8058E5C thumb_func_start sub_8058EE0 sub_8058EE0: push {lr} sub sp, 0x4 ldr r2, [r1, 0x70] movs r3, 0x10 ldrsh r2, [r2, r3] lsrs r3, r2, 31 adds r2, r3 asrs r2, 1 movs r3, 0x1 str r3, [sp] movs r3, 0 bl sub_8077C44 movs r0, 0x1 add sp, 0x4 pop {r1} bx r1 thumb_func_end sub_8058EE0 thumb_func_start sub_8058F04 sub_8058F04: push {r4-r7,lr} sub sp, 0x4 adds r7, r0, 0 adds r4, r1, 0 mov r12, r2 adds r5, r3, 0 ldr r3, [r4, 0x70] movs r6, 0x1 ldr r0, _08058F50 ldr r1, [r0] movs r0, 0xC1 lsls r0, 9 adds r2, r1, r0 movs r0, 0xC str r0, [r2] ldr r0, _08058F54 adds r1, r0 movs r0, 0 str r0, [r1] adds r3, 0xC0 ldrb r0, [r3] cmp r0, 0xA bne _08058F34 movs r6, 0x2 _08058F34: lsls r3, r6, 8 str r5, [sp] adds r0, r7, 0 adds r1, r4, 0 mov r2, r12 bl sub_8055640 cmp r0, 0 beq _08058F48 movs r0, 0x1 _08058F48: add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08058F50: .4byte gUnknown_203B418 _08058F54: .4byte 0x00018204 thumb_func_end sub_8058F04 thumb_func_start sub_8058F58 sub_8058F58: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 adds r6, r0, 0 adds r7, r1, 0 mov r8, r3 ldr r0, _08058FB0 ldr r0, [r0] ldr r1, _08058FB4 adds r0, r1 movs r1, 0 ldrsh r5, [r0, r1] cmp r5, 0 bge _08058F78 movs r5, 0 _08058F78: cmp r5, 0x4A ble _08058F7E movs r5, 0x4A _08058F7E: ldr r4, _08058FB8 lsls r5, 3 adds r0, r5, r4 ldrh r1, [r0] mov r0, sp bl sub_8092A88 adds r4, 0x4 adds r5, r4 ldr r4, [r5] adds r0, r6, 0 adds r1, r7, 0 mov r2, sp mov r3, r8 bl _call_via_r4 lsls r0, 24 lsrs r0, 24 add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08058FB0: .4byte gUnknown_203B418 _08058FB4: .4byte 0x00003a0e _08058FB8: .4byte gUnknown_80F5D10 thumb_func_end sub_8058F58 thumb_func_start sub_8058FBC sub_8058FBC: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _08058FF6 movs r7, 0x1 ldr r0, _08059000 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r6, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _08058FF6 adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 bl sub_8077780 _08058FF6: adds r0, r7, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08059000: .4byte gUnknown_80F4DE4 thumb_func_end sub_8058FBC thumb_func_start sub_8059004 sub_8059004: push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x8 mov r9, r0 mov r8, r1 adds r5, r2, 0 adds r6, r3, 0 adds r0, r5, 0 bl sub_8092B00 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 adds r1, r6, 0 bl sub_8057600 lsls r0, 16 asrs r0, 16 mov r2, r8 adds r2, 0x4 str r4, [sp] str r0, [sp, 0x4] mov r0, r9 mov r1, r8 movs r3, 0x1 bl sub_807DF38 movs r0, 0x1 add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8059004 thumb_func_start sub_8059050 sub_8059050: push {lr} movs r2, 0x1 bl sub_8077780 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_8059050 thumb_func_start sub_8059060 sub_8059060: push {lr} sub sp, 0x4 adds r3, r2, 0 ldr r2, _0805907C ldr r2, [r2] str r2, [sp] movs r2, 0xB bl sub_8079618 movs r0, 0x1 add sp, 0x4 pop {r1} bx r1 .align 2, 0 _0805907C: .4byte gUnknown_80FAD6C thumb_func_end sub_8059060 thumb_func_start sub_8059080 sub_8059080: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _080590BA movs r7, 0x1 ldr r0, _080590C4 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r6, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _080590BA adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 bl sub_8077780 _080590BA: adds r0, r7, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080590C4: .4byte gUnknown_80F4DE8 thumb_func_end sub_8059080 thumb_func_start sub_80590C8 sub_80590C8: push {lr} bl sub_80798B0 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_80590C8 thumb_func_start sub_80590D4 sub_80590D4: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x1C mov r8, r0 adds r6, r1, 0 adds r5, r2, 0 adds r7, r3, 0 movs r0, 0 mov r9, r0 add r0, sp, 0x18 mov r1, r9 strb r1, [r0] adds r0, r5, 0 bl sub_8092B00 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r6, 0 bl sub_806F4A4 lsls r0, 24 lsrs r0, 24 negs r1, r0 orrs r1, r0 lsrs r4, r1, 31 adds r0, r6, 0 movs r1, 0x37 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0805911C movs r4, 0 _0805911C: cmp r4, 0 bne _08059134 ldr r0, _08059130 ldr r2, [r0] mov r0, r8 adds r1, r6, 0 bl sub_80522F4 b _0805917A .align 2, 0 _08059130: .4byte gUnknown_80FEB88 _08059134: adds r0, r5, 0 bl sub_8092B00 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 adds r1, r7, 0 bl sub_8057600 lsls r0, 16 asrs r0, 16 ldr r2, _0805918C add r1, sp, 0x18 str r1, [sp] str r4, [sp, 0x4] str r0, [sp, 0x8] mov r0, r9 str r0, [sp, 0xC] movs r0, 0x1 str r0, [sp, 0x10] str r0, [sp, 0x14] mov r0, r8 adds r1, r6, 0 movs r3, 0x1 bl sub_806F370 add r1, sp, 0x18 movs r2, 0 adds r0, r1, 0 ldrb r0, [r0] cmp r0, 0 bne _08059178 movs r2, 0x1 _08059178: strb r2, [r1] _0805917A: add r0, sp, 0x18 ldrb r0, [r0] add sp, 0x1C pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805918C: .4byte 0x0000270f thumb_func_end sub_80590D4 thumb_func_start sub_8059190 sub_8059190: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _080591CA movs r7, 0x1 ldr r0, _080591D4 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r6, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _080591CA adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 bl sub_80776C0 _080591CA: adds r0, r7, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080591D4: .4byte gUnknown_80F4DEA thumb_func_end sub_8059190 thumb_func_start sub_80591D8 sub_80591D8: push {lr} bl sub_8079834 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_80591D8 thumb_func_start sub_80591E4 sub_80591E4: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 adds r7, r0, 0 adds r4, r1, 0 adds r6, r2, 0 adds r5, r3, 0 movs r0, 0 mov r8, r0 adds r0, r4, 0 movs r1, 0x3A bl sub_8071824 lsls r0, 24 lsrs r0, 24 mov r9, r0 movs r3, 0x80 lsls r3, 1 str r5, [sp] adds r0, r7, 0 adds r1, r4, 0 adds r2, r6, 0 bl sub_8055640 adds r1, r0, 0 cmp r1, 0 beq _0805927E lsrs r0, r1, 31 adds r0, r1, r0 asrs r4, r0, 1 cmp r4, 0 bgt _0805922A movs r4, 0x1 _0805922A: adds r0, r7, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0805927E ldr r0, [r7, 0x70] movs r1, 0x1 mov r8, r1 adds r1, r0, 0 adds r1, 0xFB ldrb r0, [r1] cmp r0, 0 bne _0805924A mov r0, r8 strb r0, [r1] _0805924A: adds r0, r7, 0 movs r1, 0 bl sub_8057308 lsls r0, 24 cmp r0, 0 beq _0805927E mov r1, r9 cmp r1, 0 beq _0805926E movs r3, 0xFD lsls r3, 1 adds r0, r7, 0 adds r1, r4, 0 movs r2, 0xD bl sub_806F324 b _0805927E _0805926E: mov r0, r8 str r0, [sp] adds r0, r7, 0 adds r1, r7, 0 adds r2, r4, 0 movs r3, 0 bl sub_8077C44 _0805927E: mov r0, r8 add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80591E4 thumb_func_start sub_8059290 sub_8059290: push {r4-r7,lr} mov r7, r8 push {r7} adds r4, r0, 0 adds r6, r1, 0 ldr r7, [r4, 0x70] ldr r5, [r6, 0x70] adds r0, r6, 0 movs r1, 0x35 bl sub_8071824 lsls r0, 24 cmp r0, 0 bne _080592BA adds r0, r4, 0 movs r1, 0x35 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _080592D0 _080592BA: ldr r0, _080592CC ldr r2, [r0] adds r0, r4, 0 adds r1, r6, 0 bl sub_80522F4 movs r0, 0 b _0805932E .align 2, 0 _080592CC: .4byte gUnknown_80FC8C0 _080592D0: movs r0, 0x5E adds r0, r5 mov r12, r0 ldrb r3, [r0] mov r8, r3 adds r1, r5, 0 adds r1, 0x5F ldrb r2, [r1] adds r5, r7, 0 adds r5, 0x5E ldrb r0, [r5] mov r3, r12 strb r0, [r3] movs r0, 0x5F adds r0, r7 mov r12, r0 ldrb r0, [r0] strb r0, [r1] mov r3, r8 strb r3, [r5] mov r0, r12 strb r2, [r0] ldr r0, _08059338 ldr r0, [r0] movs r5, 0x1 strb r5, [r0, 0xC] ldr r0, _0805933C ldr r2, [r0] adds r0, r4, 0 adds r1, r6, 0 bl sub_80522F4 adds r1, r7, 0 adds r1, 0xFB ldrb r0, [r1] cmp r0, 0 bne _0805931C strb r5, [r1] _0805931C: adds r0, r4, 0 adds r1, r4, 0 bl sub_806ABAC adds r0, r4, 0 adds r1, r6, 0 bl sub_806ABAC movs r0, 0x1 _0805932E: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08059338: .4byte gUnknown_203B418 _0805933C: .4byte gUnknown_80FC888 thumb_func_end sub_8059290 thumb_func_start sub_8059340 sub_8059340: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 adds r6, r0, 0 adds r7, r1, 0 adds r5, r2, 0 movs r0, 0 mov r10, r0 ldr r1, [r6, 0x70] str r1, [sp] ldr r0, [r7, 0x70] movs r2, 0 mov r12, r2 movs r4, 0 movs r1, 0x8C lsls r1, 1 adds r3, r0, r1 adds r1, r0, 0 movs r2, 0x1 mov r9, r2 movs r0, 0x10 mov r8, r0 _08059372: ldrb r2, [r3] mov r0, r9 ands r0, r2 cmp r0, 0 beq _08059384 mov r0, r8 ands r0, r2 cmp r0, 0 bne _080593A8 _08059384: adds r3, 0x8 adds r1, 0x8 adds r4, 0x1 cmp r4, 0x3 ble _08059372 movs r0, 0 cmp r0, 0 bne _080593B2 ldr r0, _080593A4 ldr r2, [r0] adds r0, r6, 0 adds r1, r7, 0 bl sub_80522F4 movs r0, 0 b _0805940A .align 2, 0 _080593A4: .4byte gUnknown_80FE3BC _080593A8: movs r2, 0x8D lsls r2, 1 adds r0, r1, r2 ldrh r0, [r0] mov r12, r0 _080593B2: mov r0, r12 cmp r0, 0 bne _080593CC ldr r0, _080593C8 ldr r2, [r0] adds r0, r6, 0 adds r1, r7, 0 bl sub_80522F4 b _08059408 .align 2, 0 _080593C8: .4byte gUnknown_80FE3BC _080593CC: adds r0, r5, 0 mov r1, r12 bl sub_8092A88 ldr r0, _0805941C adds r1, r5, 0 movs r2, 0 bl sub_80928C0 ldrb r1, [r5, 0x1] movs r0, 0x4 orrs r0, r1 movs r1, 0x20 orrs r0, r1 strb r0, [r5, 0x1] ldr r0, _08059420 ldr r2, [r0] adds r0, r6, 0 adds r1, r7, 0 bl sub_80522F4 ldr r1, [sp] adds r1, 0xFB ldrb r0, [r1] cmp r0, 0 bne _08059404 movs r0, 0x1 strb r0, [r1] _08059404: movs r1, 0x1 mov r10, r1 _08059408: mov r0, r10 _0805940A: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805941C: .4byte gUnknown_202DE58 _08059420: .4byte gUnknown_80FE38C thumb_func_end sub_8059340 thumb_func_start sub_8059424 sub_8059424: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _0805945E movs r7, 0x1 ldr r0, _08059468 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r6, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _0805945E adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 bl sub_80776C0 _0805945E: adds r0, r7, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08059468: .4byte gUnknown_80F4DF0 thumb_func_end sub_8059424 thumb_func_start sub_805946C sub_805946C: push {r4-r6,lr} sub sp, 0x18 adds r5, r0, 0 movs r6, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _080594D2 movs r6, 0x1 adds r0, r5, 0 movs r1, 0x7 bl sub_8071824 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _080594D2 adds r0, r5, 0 movs r1, 0 bl sub_8057308 lsls r0, 24 cmp r0, 0 beq _080594D2 ldr r0, [r5, 0x70] movs r1, 0x10 ldrsh r2, [r0, r1] cmp r2, 0 bge _080594B0 adds r2, 0x7 _080594B0: asrs r2, 3 cmp r2, 0 bne _080594B8 movs r2, 0x1 _080594B8: str r4, [sp] str r4, [sp, 0x4] ldr r0, _080594DC str r0, [sp, 0x8] movs r0, 0x14 str r0, [sp, 0xC] str r6, [sp, 0x10] str r4, [sp, 0x14] adds r0, r5, 0 adds r1, r5, 0 movs r3, 0 bl sub_806F370 _080594D2: adds r0, r6, 0 add sp, 0x18 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _080594DC: .4byte 0x000001fd thumb_func_end sub_805946C thumb_func_start sub_80594E0 sub_80594E0: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 ldr r0, _08059518 ldr r0, [r0] ldr r1, _0805951C ldrh r1, [r1] ldr r2, _08059520 adds r0, r2 strb r1, [r0] movs r0, 0x1 movs r1, 0 bl sub_807EAA0 lsls r0, 24 cmp r0, 0 bne _0805950E ldr r0, _08059524 ldr r2, [r0] adds r0, r4, 0 adds r1, r5, 0 bl sub_80522F4 _0805950E: movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08059518: .4byte gUnknown_203B418 _0805951C: .4byte gUnknown_80F4F42 _08059520: .4byte 0x0000e269 _08059524: .4byte gUnknown_80FCF78 thumb_func_end sub_80594E0 thumb_func_start sub_8059528 sub_8059528: push {lr} ldr r2, _0805953C ldr r2, [r2] movs r3, 0x1 bl sub_80775DC movs r0, 0x1 pop {r1} bx r1 .align 2, 0 _0805953C: .4byte gUnknown_8106A4C thumb_func_end sub_8059528 thumb_func_start sub_8059540 sub_8059540: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _0805957A movs r7, 0x1 ldr r0, _08059584 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r6, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _0805957A adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 bl sub_80763F8 _0805957A: adds r0, r7, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08059584: .4byte gUnknown_80F4DC4 thumb_func_end sub_8059540 thumb_func_start sub_8059588 sub_8059588: push {lr} ldr r2, _0805959C ldr r2, [r2] movs r3, 0x1 bl sub_8077084 movs r0, 0x1 pop {r1} bx r1 .align 2, 0 _0805959C: .4byte gUnknown_8106A50 thumb_func_end sub_8059588 thumb_func_start sub_80595A0 sub_80595A0: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _080595DC movs r7, 0x1 ldr r0, _080595E8 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r6, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _080595DC adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 movs r3, 0 bl sub_8076210 _080595DC: adds r0, r7, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080595E8: .4byte gUnknown_80F4DE0 thumb_func_end sub_80595A0 thumb_func_start sub_80595EC sub_80595EC: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x1C mov r9, r0 adds r6, r1, 0 adds r5, r2, 0 mov r8, r3 movs r7, 0 add r0, sp, 0x18 strb r7, [r0] adds r0, r5, 0 bl sub_8092B00 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r6, 0 bl sub_806F4A4 lsls r0, 24 cmp r0, 0 bne _08059630 ldr r0, _0805962C ldr r2, [r0] mov r0, r9 adds r1, r6, 0 bl sub_80522F4 movs r0, 0 b _08059678 .align 2, 0 _0805962C: .4byte gUnknown_80FEB8C _08059630: adds r0, r5, 0 bl sub_8092B00 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 mov r1, r8 bl sub_8057600 lsls r0, 16 asrs r0, 16 ldr r2, _08059688 add r1, sp, 0x18 str r1, [sp] str r4, [sp, 0x4] str r0, [sp, 0x8] str r7, [sp, 0xC] movs r0, 0x1 str r0, [sp, 0x10] str r7, [sp, 0x14] mov r0, r9 adds r1, r6, 0 movs r3, 0x1 bl sub_806F370 add r1, sp, 0x18 movs r2, 0 adds r0, r1, 0 ldrb r0, [r0] cmp r0, 0 bne _08059672 movs r2, 0x1 _08059672: strb r2, [r1] add r0, sp, 0x18 ldrb r0, [r0] _08059678: add sp, 0x1C pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08059688: .4byte 0x0000270f thumb_func_end sub_80595EC thumb_func_start sub_805968C sub_805968C: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r5, r0, 0 mov r8, r1 adds r6, r2, 0 adds r7, r3, 0 bl sub_807E580 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x1 beq _080596B6 adds r0, r5, 0 adds r1, r6, 0 bl sub_80570AC lsls r0, 24 cmp r0, 0 beq _080596EC _080596B6: ldr r0, _080596E8 ldr r3, [r0] cmp r4, 0x2 beq _080596C6 cmp r4, 0x4 beq _080596C6 cmp r4, 0x5 bne _080596CC _080596C6: lsrs r0, r3, 31 adds r0, r3, r0 asrs r3, r0, 1 _080596CC: str r7, [sp] adds r0, r5, 0 mov r1, r8 adds r2, r6, 0 bl sub_8055640 negs r1, r0 orrs r1, r0 lsrs r4, r1, 31 adds r0, r5, 0 bl sub_8079764 b _08059700 .align 2, 0 _080596E8: .4byte gUnknown_80F4F48 _080596EC: ldr r0, _08059710 ldr r0, [r0] str r0, [sp] adds r0, r5, 0 adds r1, r5, 0 movs r2, 0x2 adds r3, r6, 0 bl sub_8079618 movs r4, 0x1 _08059700: adds r0, r4, 0 add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08059710: .4byte gUnknown_80FACE4 thumb_func_end sub_805968C thumb_func_start sub_8059714 sub_8059714: push {r4-r6,lr} mov r6, r10 mov r5, r9 mov r4, r8 push {r4-r6} sub sp, 0x1C mov r9, r0 mov r10, r1 adds r6, r2, 0 mov r8, r3 movs r5, 0 add r0, sp, 0x18 strb r5, [r0] adds r0, r6, 0 bl sub_8092B00 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r6, 0 mov r1, r8 bl sub_8057600 lsls r0, 16 asrs r0, 16 ldr r1, _0805978C movs r3, 0 ldrsh r2, [r1, r3] add r1, sp, 0x18 str r1, [sp] str r4, [sp, 0x4] str r0, [sp, 0x8] str r5, [sp, 0xC] movs r0, 0x1 str r0, [sp, 0x10] str r5, [sp, 0x14] mov r0, r9 mov r1, r10 movs r3, 0x1 bl sub_806F370 add r1, sp, 0x18 movs r2, 0 adds r0, r1, 0 ldrb r0, [r0] cmp r0, 0 bne _08059774 movs r2, 0x1 _08059774: strb r2, [r1] add r0, sp, 0x18 ldrb r0, [r0] add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0805978C: .4byte gUnknown_80F4F7C thumb_func_end sub_8059714 thumb_func_start sub_8059790 sub_8059790: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r7, r1, 0 adds r4, r2, 0 adds r6, r3, 0 adds r1, r4, 0 bl sub_80570AC lsls r0, 24 cmp r0, 0 beq _080597CC ldr r0, _080597C8 ldr r3, [r0] str r6, [sp] adds r0, r5, 0 adds r1, r7, 0 adds r2, r4, 0 bl sub_8055640 negs r1, r0 orrs r1, r0 lsrs r4, r1, 31 adds r0, r5, 0 bl sub_8079764 b _080597E0 .align 2, 0 _080597C8: .4byte gUnknown_80F4F5C _080597CC: ldr r0, _080597EC ldr r0, [r0] str r0, [sp] adds r0, r5, 0 adds r1, r5, 0 movs r2, 0x7 adds r3, r4, 0 bl sub_8079618 movs r4, 0x1 _080597E0: adds r0, r4, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080597EC: .4byte gUnknown_80FACFC thumb_func_end sub_8059790 thumb_func_start sub_80597F0 sub_80597F0: push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x8 mov r9, r0 mov r8, r1 adds r5, r2, 0 adds r6, r3, 0 adds r0, r5, 0 bl sub_8092B00 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 adds r1, r6, 0 bl sub_8057600 lsls r0, 16 asrs r0, 16 mov r2, r8 adds r2, 0x4 str r4, [sp] str r0, [sp, 0x4] mov r0, r9 mov r1, r8 movs r3, 0x2 bl sub_807DF38 movs r0, 0x1 add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80597F0 thumb_func_start sub_805983C sub_805983C: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r4, r0, 0 adds r7, r1, 0 adds r5, r2, 0 mov r8, r3 movs r6, 0 bl sub_8045128 bl sub_804AF20 lsls r0, 24 cmp r0, 0 beq _08059870 ldr r0, _0805986C ldr r2, [r0] adds r0, r4, 0 adds r1, r7, 0 bl sub_80522F4 b _080598B8 .align 2, 0 _0805986C: .4byte gUnknown_80FD128 _08059870: adds r0, r4, 0 adds r1, r5, 0 bl sub_80570AC lsls r0, 24 cmp r0, 0 beq _080598A4 ldr r0, _080598A0 ldr r3, [r0] mov r0, r8 str r0, [sp] adds r0, r4, 0 adds r1, r7, 0 adds r2, r5, 0 bl sub_8055640 negs r1, r0 orrs r1, r0 lsrs r6, r1, 31 adds r0, r4, 0 bl sub_8079764 b _080598B8 .align 2, 0 _080598A0: .4byte gUnknown_80F4F64 _080598A4: ldr r0, _080598C8 ldr r0, [r0] str r0, [sp] adds r0, r4, 0 adds r1, r4, 0 movs r2, 0x9 adds r3, r5, 0 bl sub_8079618 movs r6, 0x1 _080598B8: adds r0, r6, 0 add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080598C8: .4byte gUnknown_80FAD2C thumb_func_end sub_805983C thumb_func_start sub_80598CC sub_80598CC: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _0805990A movs r7, 0x1 ldr r0, _08059914 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r6, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _0805990A ldr r0, _08059918 ldr r2, [r0] adds r0, r5, 0 adds r1, r6, 0 movs r3, 0 bl sub_80775DC _0805990A: adds r0, r7, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08059914: .4byte gUnknown_80F4E00 _08059918: .4byte gUnknown_8106A4C thumb_func_end sub_80598CC thumb_func_start sub_805991C sub_805991C: push {lr} bl sub_80787E4 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805991C thumb_func_start sub_8059928 sub_8059928: push {r4-r6,lr} sub sp, 0x4 adds r5, r0, 0 adds r4, r1, 0 adds r1, r3, 0 movs r3, 0x1 movs r6, 0 ldr r0, [r4, 0x70] adds r0, 0xC0 ldrb r0, [r0] subs r0, 0x7 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _08059948 movs r3, 0x2 _08059948: lsls r3, 8 str r1, [sp] adds r0, r5, 0 adds r1, r4, 0 bl sub_8055640 cmp r0, 0 beq _08059978 movs r6, 0x1 ldr r0, _08059984 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r4, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _08059978 adds r0, r5, 0 adds r1, r4, 0 movs r2, 0 bl sub_80776C0 _08059978: adds r0, r6, 0 add sp, 0x4 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08059984: .4byte gUnknown_80F4DEC thumb_func_end sub_8059928 thumb_func_start sub_8059988 sub_8059988: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _080599A8 movs r7, 0x1 ldr r0, _080599E0 strb r7, [r0] _080599A8: ldr r0, _080599E0 ldrb r0, [r0] cmp r0, 0 beq _080599D6 ldr r0, _080599E4 ldr r0, [r0] cmp r0, 0x2 bne _080599D6 ldr r0, _080599E8 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r6, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _080599D6 adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 bl sub_80763F8 _080599D6: adds r0, r7, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080599E0: .4byte gUnknown_202F218 _080599E4: .4byte gUnknown_202F214 _080599E8: .4byte gUnknown_80F4DC8 thumb_func_end sub_8059988 thumb_func_start sub_80599EC sub_80599EC: push {r4,lr} sub sp, 0x4 adds r3, r0, 0 ldr r0, [r1, 0x70] movs r4, 0x10 ldrsh r2, [r0, r4] cmp r2, 0 bge _080599FE adds r2, 0x3 _080599FE: asrs r2, 2 movs r0, 0x1 str r0, [sp] adds r0, r3, 0 movs r3, 0 bl sub_8077C44 movs r0, 0x1 add sp, 0x4 pop {r4} pop {r1} bx r1 thumb_func_end sub_80599EC thumb_func_start sub_8059A18 sub_8059A18: push {lr} ldr r2, _08059A28 ldr r2, [r2] bl sub_8077540 movs r0, 0x1 pop {r1} bx r1 .align 2, 0 _08059A28: .4byte gUnknown_8106A50 thumb_func_end sub_8059A18 thumb_func_start sub_8059A2C sub_8059A2C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C mov r9, r0 adds r7, r1, 0 adds r6, r2, 0 mov r8, r3 movs r5, 0 add r0, sp, 0x18 strb r5, [r0] mov r1, r9 ldr r0, [r1, 0x70] ldrb r0, [r0, 0x9] mov r10, r0 adds r0, r6, 0 bl sub_8092B00 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r6, 0 mov r1, r8 bl sub_8057600 lsls r0, 16 asrs r0, 16 add r1, sp, 0x18 str r1, [sp] str r4, [sp, 0x4] str r0, [sp, 0x8] str r5, [sp, 0xC] movs r0, 0x1 str r0, [sp, 0x10] str r5, [sp, 0x14] mov r0, r9 adds r1, r7, 0 mov r2, r10 movs r3, 0x1 bl sub_806F370 add r1, sp, 0x18 movs r2, 0 adds r0, r1, 0 ldrb r0, [r0] cmp r0, 0 bne _08059A90 movs r2, 0x1 _08059A90: strb r2, [r1] add r0, sp, 0x18 ldrb r0, [r0] add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8059A2C thumb_func_start sub_8059AA8 sub_8059AA8: push {lr} movs r2, 0x1 bl sub_8077AE4 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_8059AA8 thumb_func_start sub_8059AB8 sub_8059AB8: push {lr} bl sub_8078758 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_8059AB8 thumb_func_start sub_8059AC4 sub_8059AC4: push {r4-r6,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 ldr r4, _08059AF4 bl sub_807E580 lsls r0, 24 lsrs r0, 23 adds r0, r4 movs r1, 0 ldrsh r2, [r0, r1] movs r0, 0x1 str r0, [sp] adds r0, r5, 0 adds r1, r6, 0 movs r3, 0 bl sub_8077C44 movs r0, 0x1 add sp, 0x4 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08059AF4: .4byte gUnknown_80F501A thumb_func_end sub_8059AC4 thumb_func_start sub_8059AF8 sub_8059AF8: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x1C mov r9, r0 adds r6, r1, 0 adds r5, r2, 0 mov r8, r3 movs r7, 0 add r0, sp, 0x18 strb r7, [r0] adds r0, r5, 0 bl sub_8092B00 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r6, 0 bl sub_806F4A4 lsls r0, 24 cmp r0, 0 bne _08059B3C ldr r0, _08059B38 ldr r2, [r0] mov r0, r9 adds r1, r6, 0 bl sub_80522F4 movs r0, 0 b _08059B82 .align 2, 0 _08059B38: .4byte gUnknown_80FEB90 _08059B3C: adds r0, r5, 0 bl sub_8092B00 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 mov r1, r8 bl sub_8057600 lsls r0, 16 asrs r0, 16 ldr r2, _08059B90 add r1, sp, 0x18 str r1, [sp] str r4, [sp, 0x4] str r0, [sp, 0x8] str r7, [sp, 0xC] str r7, [sp, 0x10] str r7, [sp, 0x14] mov r0, r9 adds r1, r6, 0 movs r3, 0x1 bl sub_806F370 add r1, sp, 0x18 movs r2, 0 adds r0, r1, 0 ldrb r0, [r0] cmp r0, 0 bne _08059B7C movs r2, 0x1 _08059B7C: strb r2, [r1] add r0, sp, 0x18 ldrb r0, [r0] _08059B82: add sp, 0x1C pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08059B90: .4byte 0x0000270f thumb_func_end sub_8059AF8 thumb_func_start sub_8059B94 sub_8059B94: push {lr} ldr r2, _08059BA8 ldr r2, [r2] movs r3, 0x2 bl sub_8077084 movs r0, 0x1 pop {r1} bx r1 .align 2, 0 _08059BA8: .4byte gUnknown_8106A4C thumb_func_end sub_8059B94 thumb_func_start sub_8059BAC sub_8059BAC: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 mov r10, r0 adds r5, r1, 0 movs r0, 0 mov r8, r0 ldr r7, [r5, 0x70] adds r0, r5, 0 movs r1, 0x25 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _08059BD8 ldr r0, _08059BD4 b _08059C5E .align 2, 0 _08059BD4: .4byte gUnknown_81006F8 _08059BD8: movs r1, 0x8C lsls r1, 1 adds r4, r7, r1 mov r9, sp movs r6, 0x3 _08059BE2: ldrb r1, [r4] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08059C08 adds r0, r5, 0 adds r1, r4, 0 bl sub_8071A1C lsls r0, 24 cmp r0, 0 beq _08059C08 mov r0, r9 adds r0, 0x4 mov r9, r0 subs r0, 0x4 stm r0!, {r4} movs r1, 0x1 add r8, r1 _08059C08: adds r4, 0x8 subs r6, 0x1 cmp r6, 0 bge _08059BE2 mov r0, r8 cmp r0, 0 beq _08059C5C bl sub_8084100 lsls r0, 2 mov r1, sp adds r4, r1, r0 ldr r1, [r4] adds r0, r5, 0 bl sub_8071A1C adds r1, r7, 0 adds r1, 0x5C movs r2, 0 strb r0, [r1] adds r0, r7, 0 adds r0, 0x5D strb r2, [r0] adds r1, 0x9A movs r0, 0x1 strb r0, [r1] ldr r0, _08059C54 ldr r1, [r4] bl sub_80928C0 ldr r0, _08059C58 ldr r2, [r0] mov r0, r10 adds r1, r5, 0 bl sub_80522F4 movs r0, 0x1 b _08059C6A .align 2, 0 _08059C54: .4byte gUnknown_202DE58 _08059C58: .4byte gUnknown_80FE330 _08059C5C: ldr r0, _08059C7C _08059C5E: ldr r2, [r0] mov r0, r10 adds r1, r5, 0 bl sub_80522F4 movs r0, 0 _08059C6A: add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08059C7C: .4byte gUnknown_80FE36C thumb_func_end sub_8059BAC thumb_func_start sub_8059C80 sub_8059C80: push {lr} bl sub_8079D1C movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_8059C80 thumb_func_start sub_8059C8C sub_8059C8C: push {r4-r6,lr} adds r5, r0, 0 adds r4, r1, 0 movs r6, 0 cmp r5, r4 bne _08059CA8 ldr r0, _08059CA4 ldr r2, [r0] adds r0, r4, 0 bl sub_80522F4 b _08059CC6 .align 2, 0 _08059CA4: .4byte gUnknown_80FEB60 _08059CA8: ldr r0, _08059CD0 ldr r2, [r0] adds r0, r5, 0 adds r1, r4, 0 movs r3, 0x1 bl sub_8077084 ldr r0, _08059CD4 ldr r2, [r0] adds r0, r5, 0 adds r1, r4, 0 movs r3, 0x1 bl sub_8077084 movs r6, 0x1 _08059CC6: adds r0, r6, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08059CD0: .4byte gUnknown_8106A4C _08059CD4: .4byte gUnknown_8106A50 thumb_func_end sub_8059C8C thumb_func_start sub_8059CD8 sub_8059CD8: push {lr} ldr r2, _08059CEC ldr r2, [r2] movs r3, 0x2 bl sub_8077160 movs r0, 0x1 pop {r1} bx r1 .align 2, 0 _08059CEC: .4byte gUnknown_8106A4C thumb_func_end sub_8059CD8 thumb_func_start sub_8059CF0 sub_8059CF0: push {lr} movs r2, 0 movs r3, 0 bl sub_807D148 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_8059CF0 thumb_func_start sub_8059D00 sub_8059D00: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _08059D3A movs r7, 0x1 ldr r0, _08059D44 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r6, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _08059D3A adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 bl sub_8077780 _08059D3A: adds r0, r7, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08059D44: .4byte gUnknown_80F4DE2 thumb_func_end sub_8059D00 thumb_func_start sub_8059D48 sub_8059D48: push {lr} movs r2, 0x1 bl sub_8077780 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_8059D48 thumb_func_start sub_8059D58 sub_8059D58: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _08059D8E movs r7, 0x1 adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _08059D8E adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 bl sub_8077780 _08059D8E: adds r0, r7, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8059D58 thumb_func_start sub_8059D98 sub_8059D98: push {lr} bl sub_80769CC movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_8059D98 thumb_func_start sub_8059DA4 sub_8059DA4: push {lr} movs r2, 0x1 bl sub_80763F8 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_8059DA4 thumb_func_start sub_8059DB4 sub_8059DB4: push {lr} movs r2, 0x1 bl sub_80765E0 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_8059DB4 thumb_func_start sub_8059DC4 sub_8059DC4: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _08059DFE movs r7, 0x1 ldr r0, _08059E08 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r6, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _08059DFE adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 bl sub_80765E0 _08059DFE: adds r0, r7, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08059E08: .4byte gUnknown_80F4DCA thumb_func_end sub_8059DC4 thumb_func_start sub_8059E0C sub_8059E0C: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _08059E46 movs r7, 0x1 ldr r0, _08059E50 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r6, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _08059E46 adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 bl sub_80763F8 _08059E46: adds r0, r7, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08059E50: .4byte gUnknown_80F4DBE thumb_func_end sub_8059E0C thumb_func_start sub_8059E54 sub_8059E54: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x2C adds r6, r0, 0 mov r8, r1 adds r7, r2, 0 adds r1, r3, 0 ldr r0, [sp, 0x48] lsls r0, 24 movs r2, 0 mov r9, r2 cmp r0, 0 bne _08059E8A movs r3, 0x80 lsls r3, 1 str r1, [sp] adds r0, r6, 0 mov r1, r8 adds r2, r7, 0 bl sub_8055640 negs r1, r0 orrs r1, r0 lsrs r1, 31 mov r9, r1 _08059E8A: mov r0, r9 cmp r0, 0 bne _08059F1A adds r0, r6, 0 adds r1, r7, 0 bl sub_8071A1C adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r6, 0 adds r1, r7, 0 bl sub_8071A44 adds r5, r0, 0 adds r0, r7, 0 bl sub_8092C24 str r0, [sp] add r2, sp, 0x18 str r2, [sp, 0x4] movs r0, 0x80 lsls r0, 1 str r0, [sp, 0x8] ldrh r0, [r7, 0x2] str r0, [sp, 0xC] mov r0, r9 str r0, [sp, 0x10] adds r0, r6, 0 mov r1, r8 adds r2, r4, 0 adds r3, r5, 0 bl sub_806EAF4 ldr r0, _08059F2C ldr r1, [r6, 0x70] movs r2, 0 bl sub_80708B4 ldr r0, _08059F30 ldr r2, [r0] adds r0, r6, 0 mov r1, r8 bl sub_80522F4 ldr r0, [sp, 0x18] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 str r0, [sp, 0x18] cmp r0, 0 bne _08059EF6 movs r0, 0x1 str r0, [sp, 0x18] _08059EF6: ldr r2, [sp, 0x18] add r0, sp, 0x28 str r0, [sp] mov r0, r9 str r0, [sp, 0x4] ldr r0, _08059F34 str r0, [sp, 0x8] movs r0, 0x13 str r0, [sp, 0xC] movs r0, 0x1 str r0, [sp, 0x10] mov r0, r9 str r0, [sp, 0x14] adds r0, r6, 0 adds r1, r6, 0 movs r3, 0 bl sub_806F370 _08059F1A: mov r0, r9 add sp, 0x2C pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08059F2C: .4byte gUnknown_202DF98 _08059F30: .4byte gUnknown_80FC7C8 _08059F34: .4byte 0x000001f7 thumb_func_end sub_8059E54 thumb_func_start sub_8059F38 sub_8059F38: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r4, r0, 0 adds r6, r1, 0 adds r5, r2, 0 adds r7, r3, 0 movs r0, 0 mov r8, r0 adds r0, r4, 0 adds r1, r5, 0 bl sub_80570AC lsls r0, 24 cmp r0, 0 beq _08059FA0 ldr r0, _08059F98 ldr r3, [r0] str r7, [sp] adds r0, r4, 0 adds r1, r6, 0 adds r2, r5, 0 bl sub_8055640 cmp r0, 0 beq _08059F90 movs r1, 0x1 mov r8, r1 ldr r0, _08059F9C movs r1, 0 ldrsh r2, [r0, r1] adds r0, r4, 0 adds r1, r6, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _08059F90 adds r0, r4, 0 adds r1, r6, 0 movs r2, 0 bl sub_8077780 _08059F90: adds r0, r4, 0 bl sub_8079764 b _08059FB6 .align 2, 0 _08059F98: .4byte gUnknown_80F4F60 _08059F9C: .4byte gUnknown_80F4DCC _08059FA0: ldr r0, _08059FC4 ldr r0, [r0] str r0, [sp] adds r0, r4, 0 adds r1, r4, 0 movs r2, 0x8 adds r3, r5, 0 bl sub_8079618 movs r0, 0x1 mov r8, r0 _08059FB6: mov r0, r8 add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08059FC4: .4byte gUnknown_80FAD10 thumb_func_end sub_8059F38 thumb_func_start sub_8059FC8 sub_8059FC8: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x2C adds r6, r0, 0 mov r8, r1 adds r7, r2, 0 adds r1, r3, 0 ldr r0, [sp, 0x48] lsls r0, 24 movs r2, 0 mov r9, r2 cmp r0, 0 bne _08059FFE movs r3, 0x80 lsls r3, 2 str r1, [sp] adds r0, r6, 0 mov r1, r8 adds r2, r7, 0 bl sub_8055640 negs r1, r0 orrs r1, r0 lsrs r1, 31 mov r9, r1 _08059FFE: mov r0, r9 cmp r0, 0 bne _0805A090 adds r0, r6, 0 adds r1, r7, 0 bl sub_8071A1C adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r6, 0 adds r1, r7, 0 bl sub_8071A44 adds r5, r0, 0 adds r0, r7, 0 bl sub_8092C24 str r0, [sp] add r2, sp, 0x18 str r2, [sp, 0x4] movs r0, 0x80 lsls r0, 2 str r0, [sp, 0x8] ldrh r0, [r7, 0x2] str r0, [sp, 0xC] mov r0, r9 str r0, [sp, 0x10] adds r0, r6, 0 mov r1, r8 adds r2, r4, 0 adds r3, r5, 0 bl sub_806EAF4 ldr r0, _0805A0A0 ldr r1, [r6, 0x70] movs r2, 0 bl sub_80708B4 ldr r0, _0805A0A4 ldr r2, [r0] adds r0, r6, 0 mov r1, r8 bl sub_80522F4 ldr r0, [sp, 0x18] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 str r0, [sp, 0x18] cmp r0, 0 bne _0805A06A movs r0, 0x1 str r0, [sp, 0x18] _0805A06A: ldr r2, [sp, 0x18] add r0, sp, 0x28 str r0, [sp] mov r0, r9 str r0, [sp, 0x4] movs r0, 0xFC lsls r0, 1 str r0, [sp, 0x8] movs r0, 0x13 str r0, [sp, 0xC] movs r0, 0x1 str r0, [sp, 0x10] mov r0, r9 str r0, [sp, 0x14] adds r0, r6, 0 adds r1, r6, 0 movs r3, 0 bl sub_806F370 _0805A090: mov r0, r9 add sp, 0x2C pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805A0A0: .4byte gUnknown_202DF98 _0805A0A4: .4byte gUnknown_80FC7C8 thumb_func_end sub_8059FC8 thumb_func_start sub_805A0A8 sub_805A0A8: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _0805A114 movs r7, 0x1 ldr r0, _0805A0F8 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r6, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _0805A114 movs r0, 0x3 bl sub_8084100 cmp r0, 0x1 beq _0805A0FC cmp r0, 0x1 ble _0805A0EA cmp r0, 0x2 beq _0805A10A _0805A0EA: adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 bl sub_8077780 b _0805A114 .align 2, 0 _0805A0F8: .4byte gUnknown_80F4DFC _0805A0FC: adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 movs r3, 0 bl sub_8076210 b _0805A114 _0805A10A: adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 bl sub_80767B0 _0805A114: adds r0, r7, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_805A0A8 thumb_func_start sub_805A120 sub_805A120: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 adds r6, r0, 0 adds r5, r1, 0 movs r0, 0 mov r10, r0 ldr r1, [r6, 0x70] mov r9, r1 mov r7, r9 ldr r2, [r5, 0x70] mov r8, r2 mov r0, r8 str r0, [sp] ldr r4, _0805A16C adds r0, r4, 0 adds r1, r6, 0 movs r2, 0 bl sub_8045B94 adds r4, 0x50 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0 bl sub_8045B94 adds r0, r5, 0 movs r1, 0x2C bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0805A174 ldr r0, _0805A170 b _0805A1B8 .align 2, 0 _0805A16C: .4byte gUnknown_202DF98 _0805A170: .4byte gUnknown_80FCCE4 _0805A174: adds r0, r5, 0 movs r1, 0x24 bl sub_8046CB0 lsls r0, 24 cmp r0, 0 beq _0805A18C ldr r0, _0805A188 b _0805A1B8 .align 2, 0 _0805A188: .4byte gUnknown_80FD578 _0805A18C: mov r0, r9 adds r0, 0x60 mov r2, r8 adds r2, 0x60 ldrb r1, [r0] movs r4, 0x1 adds r0, r4, 0 ands r0, r1 cmp r0, 0 bne _0805A1A2 mov r10, r4 _0805A1A2: ldrb r1, [r2] adds r0, r4, 0 ands r0, r1 cmp r0, 0 bne _0805A1B0 movs r1, 0x1 mov r10, r1 _0805A1B0: mov r2, r10 cmp r2, 0 beq _0805A1CC ldr r0, _0805A1C8 _0805A1B8: ldr r2, [r0] adds r0, r6, 0 adds r1, r5, 0 bl sub_80522F4 movs r0, 0 b _0805A1FC .align 2, 0 _0805A1C8: .4byte gUnknown_80FC7AC _0805A1CC: ldr r0, [r7, 0x60] ldr r2, [sp] ldr r1, [r2, 0x60] str r1, [r7, 0x60] str r0, [r2, 0x60] adds r0, r6, 0 bl sub_806A6E8 adds r0, r5, 0 bl sub_806A6E8 adds r1, r7, 0 adds r1, 0xFB ldrb r0, [r1] cmp r0, 0 bne _0805A1EE strb r4, [r1] _0805A1EE: ldr r0, _0805A20C ldr r2, [r0] adds r0, r6, 0 adds r1, r5, 0 bl sub_80522F4 movs r0, 0x1 _0805A1FC: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805A20C: .4byte gUnknown_80FC790 thumb_func_end sub_805A120 thumb_func_start sub_805A210 sub_805A210: push {r4,r5,lr} sub sp, 0x4 adds r5, r3, 0 ldr r4, _0805A238 ldr r3, [r4] adds r3, 0x1 str r3, [r4] lsls r3, 8 str r5, [sp] bl sub_8055640 adds r1, r0, 0 negs r0, r1 orrs r0, r1 lsrs r0, 31 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805A238: .4byte gUnknown_202F210 thumb_func_end sub_805A210 thumb_func_start sub_805A23C sub_805A23C: push {lr} ldrh r0, [r2, 0x2] cmp r0, 0xD4 bne _0805A24C movs r0, 0 bl sub_807EA30 b _0805A252 _0805A24C: movs r0, 0x1 bl sub_807EA30 _0805A252: movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805A23C thumb_func_start sub_805A258 sub_805A258: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _0805A292 movs r7, 0x1 adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _0805A292 ldr r0, _0805A29C ldr r2, [r0] adds r0, r5, 0 adds r1, r6, 0 movs r3, 0 bl sub_80775DC _0805A292: adds r0, r7, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805A29C: .4byte gUnknown_8106A4C thumb_func_end sub_805A258 thumb_func_start sub_805A2A0 sub_805A2A0: push {lr} bl sub_805BA50 lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end sub_805A2A0 thumb_func_start sub_805A2B0 sub_805A2B0: push {lr} ldr r2, _0805A2C4 ldr r2, [r2] movs r3, 0x2 bl sub_8077160 movs r0, 0x1 pop {r1} bx r1 .align 2, 0 _0805A2C4: .4byte gUnknown_8106A50 thumb_func_end sub_805A2B0 thumb_func_start sub_805A2C8 sub_805A2C8: push {lr} sub sp, 0x8 ldr r2, _0805A2E4 ldr r2, [r2] movs r3, 0x1 str r3, [sp] str r3, [sp, 0x4] bl sub_8076E20 movs r0, 0x1 add sp, 0x8 pop {r1} bx r1 .align 2, 0 _0805A2E4: .4byte gUnknown_8106A4C thumb_func_end sub_805A2C8 thumb_func_start sub_805A2E8 sub_805A2E8: push {r4-r6,lr} sub sp, 0x4 adds r5, r0, 0 movs r6, 0 ldr r0, [r1, 0x70] adds r0, 0xC0 ldrb r0, [r0] movs r4, 0x80 lsls r4, 1 cmp r0, 0x9 bne _0805A302 movs r4, 0x80 lsls r4, 2 _0805A302: str r3, [sp] adds r0, r5, 0 adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _0805A312 movs r6, 0x1 _0805A312: adds r0, r6, 0 add sp, 0x4 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_805A2E8 thumb_func_start sub_805A31C sub_805A31C: push {r4-r7,lr} adds r5, r0, 0 adds r6, r1, 0 ldr r4, [r5, 0x70] ldr r7, [r6, 0x70] adds r0, r6, 0 movs r1, 0x35 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0805A348 ldr r0, _0805A344 ldr r2, [r0] adds r0, r5, 0 adds r1, r6, 0 bl sub_80522F4 movs r0, 0 b _0805A386 .align 2, 0 _0805A344: .4byte gUnknown_80FC854 _0805A348: adds r0, r7, 0 adds r0, 0x5E ldrb r0, [r0] adds r1, r4, 0 adds r1, 0x5E strb r0, [r1] adds r0, r7, 0 adds r0, 0x5F ldrb r0, [r0] adds r1, 0x1 strb r0, [r1] ldr r0, _0805A38C ldr r0, [r0] movs r2, 0x1 strb r2, [r0, 0xC] adds r1, 0x9C ldrb r0, [r1] cmp r0, 0 bne _0805A370 strb r2, [r1] _0805A370: ldr r0, _0805A390 ldr r2, [r0] adds r0, r5, 0 adds r1, r6, 0 bl sub_80522F4 adds r0, r5, 0 adds r1, r5, 0 bl sub_806ABAC movs r0, 0x1 _0805A386: pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805A38C: .4byte gUnknown_203B418 _0805A390: .4byte gUnknown_80FC81C thumb_func_end sub_805A31C thumb_func_start sub_805A394 sub_805A394: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 ldr r0, _0805A3CC ldr r0, [r0] ldr r1, _0805A3D0 ldrh r1, [r1] ldr r2, _0805A3D4 adds r0, r2 strb r1, [r0] movs r0, 0x1 movs r1, 0 bl sub_807EAA0 lsls r0, 24 cmp r0, 0 bne _0805A3C2 ldr r0, _0805A3D8 ldr r2, [r0] adds r0, r4, 0 adds r1, r5, 0 bl sub_80522F4 _0805A3C2: movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805A3CC: .4byte gUnknown_203B418 _0805A3D0: .4byte gUnknown_80F4F42 _0805A3D4: .4byte 0x0000e268 _0805A3D8: .4byte gUnknown_80FCF7C thumb_func_end sub_805A394 thumb_func_start sub_805A3DC sub_805A3DC: push {lr} sub sp, 0x8 ldr r2, _0805A3F8 ldr r2, [r2] movs r3, 0x1 str r3, [sp] str r3, [sp, 0x4] bl sub_8076F80 movs r0, 0x1 add sp, 0x8 pop {r1} bx r1 .align 2, 0 _0805A3F8: .4byte gUnknown_8106A4C thumb_func_end sub_805A3DC thumb_func_start sub_805A3FC sub_805A3FC: push {lr} bl sub_807992C movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805A3FC thumb_func_start sub_805A408 sub_805A408: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _0805A442 movs r7, 0x1 ldr r0, _0805A44C movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r6, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _0805A442 adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 bl sub_80776C0 _0805A442: adds r0, r7, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805A44C: .4byte gUnknown_80F4DF2 thumb_func_end sub_805A408 thumb_func_start sub_805A450 sub_805A450: push {lr} ldr r2, _0805A460 ldr r2, [r2] bl sub_80522F4 movs r0, 0 pop {r1} bx r1 .align 2, 0 _0805A460: .4byte gUnknown_80FC730 thumb_func_end sub_805A450 thumb_func_start sub_805A464 sub_805A464: push {r4-r7,lr} sub sp, 0xC adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _0805A4B4 movs r7, 0x1 adds r0, r5, 0 movs r1, 0 bl sub_8057308 lsls r0, 24 cmp r0, 0 beq _0805A4B4 adds r0, r6, 0 bl sub_80450E0 lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _0805A4B4 str r0, [sp, 0x8] add r0, sp, 0x4 movs r1, 0x69 movs r2, 0x2 bl sub_8045C28 add r3, sp, 0x8 adds r0, r5, 0 adds r1, r6, 0 add r2, sp, 0x4 bl sub_805A7D4 _0805A4B4: adds r0, r7, 0 add sp, 0xC pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_805A464 thumb_func_start sub_805A4C0 sub_805A4C0: push {lr} ldr r2, _0805A4D0 ldr r2, [r2] bl sub_80522F4 movs r0, 0 pop {r1} bx r1 .align 2, 0 _0805A4D0: .4byte gUnknown_80FC74C thumb_func_end sub_805A4C0 thumb_func_start sub_805A4D4 sub_805A4D4: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 ldr r1, _0805A4F8 adds r0, r4, 0 movs r2, 0 bl sub_808417C adds r2, r0, 0 adds r0, r5, 0 adds r1, r4, 0 bl sub_8075E74 movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805A4F8: .4byte gUnknown_80F4E94 thumb_func_end sub_805A4D4 thumb_func_start sub_805A4FC sub_805A4FC: push {lr} bl sub_8076AA4 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805A4FC thumb_func_start sub_805A508 sub_805A508: push {r4,r5,lr} sub sp, 0x4 adds r5, r0, 0 adds r3, r1, 0 ldr r0, [r3, 0x70] movs r1, 0x89 lsls r1, 1 adds r4, r0, r1 ldrb r0, [r4] cmp r0, 0 beq _0805A540 ldr r1, _0805A53C lsls r0, 2 adds r0, r1 ldr r2, [r0] movs r0, 0x1 str r0, [sp] adds r0, r5, 0 adds r1, r3, 0 movs r3, 0 bl sub_8077C44 movs r0, 0 strb r0, [r4] b _0805A54C .align 2, 0 _0805A53C: .4byte gUnknown_80F51D4 _0805A540: ldr r0, _0805A558 ldr r2, [r0] adds r0, r5, 0 adds r1, r3, 0 bl sub_80522F4 _0805A54C: movs r0, 0x1 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805A558: .4byte gUnknown_80FC770 thumb_func_end sub_805A508 thumb_func_start sub_805A55C sub_805A55C: push {lr} bl sub_8078594 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805A55C thumb_func_start sub_805A568 sub_805A568: push {r4,lr} sub sp, 0x4 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 adds r1, r0, 0 negs r0, r1 orrs r0, r1 lsrs r0, 31 add sp, 0x4 pop {r4} pop {r1} bx r1 thumb_func_end sub_805A568 thumb_func_start sub_805A588 sub_805A588: push {r4-r7,lr} sub sp, 0x8 adds r6, r0, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _0805A5D8 movs r7, 0x1 adds r0, r6, 0 adds r1, r6, 0 movs r2, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _0805A5D8 ldr r0, _0805A5E4 ldr r5, [r0] movs r4, 0 str r4, [sp] str r4, [sp, 0x4] adds r0, r6, 0 adds r1, r6, 0 adds r2, r5, 0 movs r3, 0x1 bl sub_8076E20 str r4, [sp] str r4, [sp, 0x4] adds r0, r6, 0 adds r1, r6, 0 adds r2, r5, 0 movs r3, 0x1 bl sub_8076F80 _0805A5D8: adds r0, r7, 0 add sp, 0x8 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805A5E4: .4byte gUnknown_8106A4C thumb_func_end sub_805A588 thumb_func_start sub_805A5E8 sub_805A5E8: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r7, r3, 0 ldr r0, [sp, 0x18] movs r6, 0 movs r3, 0x80 lsls r3, 1 str r0, [sp] adds r0, r5, 0 bl sub_8055640 cmp r0, 0 beq _0805A632 movs r6, 0x1 ldr r0, _0805A63C movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r5, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _0805A632 ldr r4, [r5, 0x70] adds r0, r5, 0 adds r1, r5, 0 adds r2, r7, 0 movs r3, 0x1 bl sub_8077160 adds r4, 0xFB ldrb r0, [r4] cmp r0, 0 bne _0805A632 strb r6, [r4] _0805A632: adds r0, r6, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805A63C: .4byte gUnknown_80F4DD2 thumb_func_end sub_805A5E8 thumb_func_start sub_805A640 sub_805A640: push {r4-r6,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 adds r1, r3, 0 ldr r0, [r5, 0x70] movs r3, 0x89 lsls r3, 1 adds r4, r0, r3 ldrb r0, [r4] cmp r0, 0 beq _0805A66C adds r3, r0, 0 lsls r3, 8 str r1, [sp] adds r0, r5, 0 adds r1, r6, 0 bl sub_8055640 movs r0, 0 strb r0, [r4] b _0805A678 _0805A66C: ldr r0, _0805A684 ldr r2, [r0] adds r0, r5, 0 adds r1, r6, 0 bl sub_80522F4 _0805A678: movs r0, 0x1 add sp, 0x4 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0805A684: .4byte gUnknown_80FCA3C thumb_func_end sub_805A640 thumb_func_start sub_805A688 sub_805A688: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _0805A6BE movs r7, 0x1 adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _0805A6BE adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 bl sub_8077AE4 _0805A6BE: adds r0, r7, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_805A688 thumb_func_start sub_805A6C8 sub_805A6C8: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x8 adds r6, r0, 0 adds r5, r1, 0 ldr r0, [r6, 0x70] mov r9, r0 ldr r7, [r5, 0x70] mov r8, r7 ldr r4, _0805A708 adds r0, r4, 0 adds r1, r6, 0 movs r2, 0 bl sub_8045B94 adds r4, 0x50 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0 bl sub_8045B94 adds r0, r5, 0 movs r1, 0x2C bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0805A710 ldr r0, _0805A70C b _0805A73A .align 2, 0 _0805A708: .4byte gUnknown_202DF98 _0805A70C: .4byte gUnknown_80FCCE8 _0805A710: adds r0, r5, 0 movs r1, 0x24 bl sub_8046CB0 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 beq _0805A728 ldr r0, _0805A724 b _0805A73A .align 2, 0 _0805A724: .4byte gUnknown_80FD57C _0805A728: ldr r0, [r7, 0x60] str r0, [sp] mov r0, sp ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0805A74C ldr r0, _0805A748 _0805A73A: ldr r2, [r0] adds r0, r6, 0 adds r1, r5, 0 bl sub_80522F4 movs r0, 0 b _0805A7B4 .align 2, 0 _0805A748: .4byte gUnknown_80FD18C _0805A74C: mov r0, r8 adds r0, 0x60 strb r2, [r0, 0x2] strb r2, [r0, 0x1] strb r2, [r0] ldr r0, _0805A7C4 ldr r2, [r0] adds r0, r6, 0 adds r1, r5, 0 bl sub_80522F4 ldr r4, _0805A7C8 mov r3, r9 adds r3, 0x46 ldrb r0, [r3] lsls r0, 2 adds r0, r4 ldrh r2, [r0] ldr r0, _0805A7CC ldr r1, [sp, 0x4] ands r1, r0 orrs r1, r2 str r1, [sp, 0x4] ldrb r0, [r3] lsls r0, 2 adds r0, r4 ldrh r0, [r0, 0x2] lsls r0, 16 ldr r2, _0805A7D0 ands r1, r2 orrs r1, r0 str r1, [sp, 0x4] add r3, sp, 0x4 adds r0, r6, 0 adds r1, r5, 0 mov r2, sp bl sub_805A7D4 adds r1, r5, 0x4 adds r0, r5, 0 bl sub_80706A4 lsls r0, 24 cmp r0, 0 beq _0805A7B2 adds r0, r6, 0 adds r1, r5, 0 movs r2, 0 movs r3, 0 bl sub_807D148 _0805A7B2: movs r0, 0x1 _0805A7B4: add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805A7C4: .4byte gUnknown_80FD170 _0805A7C8: .4byte gUnknown_80F4448 _0805A7CC: .4byte 0xffff0000 _0805A7D0: .4byte 0x0000ffff thumb_func_end sub_805A6C8 thumb_func_start sub_805A7D4 sub_805A7D4: push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x78 mov r8, r0 adds r4, r1, 0 adds r6, r2, 0 movs r0, 0x3 str r0, [sp, 0x4] add r0, sp, 0x28 movs r5, 0 strb r5, [r0] add r1, sp, 0x24 movs r0, 0x1 strb r0, [r1] mov r0, sp adds r0, 0x26 strb r5, [r0] str r6, [sp, 0x74] add r1, sp, 0x4 ldrh r0, [r3] ldrh r2, [r4, 0x4] adds r0, r2 strh r0, [r1, 0x4] ldrh r0, [r3, 0x2] ldrh r2, [r4, 0x6] adds r0, r2 strh r0, [r1, 0x6] movs r1, 0x4 ldrsh r0, [r4, r1] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, 0x4 lsls r1, 8 movs r2, 0x6 ldrsh r0, [r4, r2] lsls r2, r0, 1 adds r2, r0 lsls r2, 3 adds r2, 0x4 lsls r2, 8 add r0, sp, 0x4 bl sub_8045394 add r0, sp, 0x4 strh r5, [r0, 0x26] ldr r0, _0805A858 add r1, sp, 0x4 movs r2, 0 bl sub_8045B94 str r5, [sp] mov r0, r8 add r1, sp, 0x4 adds r2, r6, 0 movs r3, 0x1 bl sub_804652C add sp, 0x78 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0805A858: .4byte gUnknown_202DE58 thumb_func_end sub_805A7D4 thumb_func_start sub_805A85C sub_805A85C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x30 mov r8, r0 adds r6, r1, 0 mov r10, r2 str r3, [sp, 0x24] ldr r0, [r6, 0x4] str r0, [sp, 0x18] adds r0, r6, 0 movs r1, 0xA movs r2, 0x8 bl sub_806CDD4 movs r5, 0 _0805A880: movs r0, 0x3 bl sub_8084100 adds r4, r0, 0 movs r0, 0x3 bl sub_8084100 adds r2, r0, 0 subs r4, 0x1 subs r2, 0x1 cmp r4, 0 bne _0805A89C cmp r2, 0 beq _0805A8BC _0805A89C: ldrh r0, [r6, 0x4] adds r0, r4 lsls r0, 16 ldrh r1, [r6, 0x6] adds r1, r2 lsls r1, 16 lsrs r0, 16 orrs r0, r1 str r0, [sp, 0x18] adds r0, r6, 0 add r1, sp, 0x18 bl sub_80705F0 lsls r0, 24 cmp r0, 0 beq _0805A8C2 _0805A8BC: adds r5, 0x1 cmp r5, 0x27 ble _0805A880 _0805A8C2: cmp r5, 0x28 bne _0805A8DC ldr r0, _0805A8D8 ldr r2, [r0] mov r0, r8 adds r1, r6, 0 bl sub_80522F4 movs r0, 0 b _0805AAB8 .align 2, 0 _0805A8D8: .4byte gUnknown_80FEBDC _0805A8DC: add r0, sp, 0x18 movs r2, 0 ldrsh r1, [r0, r2] lsls r0, r1, 1 adds r0, r1 lsls r0, 11 movs r3, 0xC0 lsls r3, 4 adds r0, r3 ldr r1, [r6, 0xC] subs r0, r1 movs r1, 0xC bl __divsi3 str r0, [sp, 0x28] add r0, sp, 0x18 movs r2, 0x2 ldrsh r1, [r0, r2] lsls r0, r1, 1 adds r0, r1 lsls r0, 11 movs r3, 0x80 lsls r3, 5 adds r0, r3 ldr r1, [r6, 0x10] subs r0, r1 movs r1, 0xC bl __divsi3 str r0, [sp, 0x2C] adds r4, r6, 0x4 adds r0, r4, 0 bl sub_803F428 lsls r0, 24 mov r9, r4 cmp r0, 0 bne _0805A934 add r0, sp, 0x18 bl sub_803F428 lsls r0, 24 cmp r0, 0 beq _0805A94C _0805A934: movs r5, 0xB _0805A936: adds r0, r6, 0 ldr r1, [sp, 0x28] ldr r2, [sp, 0x2C] bl sub_804539C movs r0, 0x2C bl sub_803E46C subs r5, 0x1 cmp r5, 0 bge _0805A936 _0805A94C: add r0, sp, 0x18 movs r1, 0 ldrsh r0, [r0, r1] add r4, sp, 0x18 movs r2, 0x2 ldrsh r1, [r4, r2] bl sub_8049590 ldr r5, [r0, 0x10] cmp r5, 0 beq _0805AA4C adds r0, r5, 0 bl sub_80450F8 adds r7, r0, 0 cmp r7, 0x1 bne _0805A9FE add r4, sp, 0x1C ldr r1, _0805AA44 adds r0, r4, 0 bl sub_8092A88 adds r0, r5, 0 adds r1, r4, 0 bl sub_80571F0 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _0805A9B0 mov r0, r10 ldr r1, [sp, 0x24] bl sub_8057600 lsls r0, 16 asrs r0, 16 ldr r1, _0805AA48 movs r3, 0 ldrsh r2, [r1, r3] str r4, [sp] str r4, [sp, 0x4] str r0, [sp, 0x8] str r4, [sp, 0xC] str r7, [sp, 0x10] str r4, [sp, 0x14] mov r0, r8 adds r1, r5, 0 movs r3, 0 bl sub_806F370 _0805A9B0: bl sub_8044B28 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _0805AAB6 mov r0, r8 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0805AAB6 ldr r0, _0805AA48 movs r1, 0 ldrsh r2, [r0, r1] str r4, [sp] str r4, [sp, 0x4] movs r0, 0xFF lsls r0, 1 str r0, [sp, 0x8] str r4, [sp, 0xC] str r4, [sp, 0x10] str r4, [sp, 0x14] mov r0, r8 mov r1, r8 movs r3, 0 bl sub_806F370 bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _0805AAB6 mov r0, r8 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0805AAB6 _0805A9FE: adds r0, r6, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0805AAB6 mov r0, r9 bl sub_803F428 lsls r0, 24 cmp r0, 0 bne _0805AA22 add r0, sp, 0x18 bl sub_803F428 lsls r0, 24 cmp r0, 0 beq _0805AA5E _0805AA22: ldr r2, [sp, 0x28] negs r7, r2 ldr r3, [sp, 0x2C] negs r4, r3 movs r5, 0xB _0805AA2C: adds r0, r6, 0 adds r1, r7, 0 adds r2, r4, 0 bl sub_804539C movs r0, 0x2C bl sub_803E46C subs r5, 0x1 cmp r5, 0 bge _0805AA2C b _0805AA5E .align 2, 0 _0805AA44: .4byte 0x00000163 _0805AA48: .4byte gUnknown_80F4F82 _0805AA4C: add r0, sp, 0x18 movs r2, 0 ldrsh r1, [r0, r2] movs r3, 0x2 ldrsh r2, [r4, r3] adds r0, r6, 0 movs r3, 0 bl sub_80694C0 _0805AA5E: adds r0, r6, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0805AAB6 adds r0, r6, 0 movs r1, 0 bl sub_804535C mov r1, r9 adds r0, r6, 0 bl sub_80706A4 lsls r0, 24 cmp r0, 0 beq _0805AA8C mov r0, r8 adds r1, r6, 0 movs r2, 0 movs r3, 0 bl sub_807D148 _0805AA8C: ldr r0, [r6, 0x70] ldrb r0, [r0, 0x7] cmp r0, 0 beq _0805AAA0 mov r0, r9 bl sub_804AC20 movs r0, 0 bl sub_807EC28 _0805AAA0: adds r0, r6, 0 bl sub_806A5B8 ldr r0, _0805AAC8 ldr r0, [r0] ldr r1, _0805AACC adds r0, r1 ldrb r1, [r0] adds r0, r6, 0 bl sub_8075900 _0805AAB6: movs r0, 0x1 _0805AAB8: add sp, 0x30 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805AAC8: .4byte gUnknown_203B418 _0805AACC: .4byte 0x00003a08 thumb_func_end sub_805A85C thumb_func_start sub_805AAD0 sub_805AAD0: push {lr} adds r1, r0, 0 bl sub_80782CC movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805AAD0 thumb_func_start sub_805AAE0 sub_805AAE0: push {r4-r7,lr} sub sp, 0x4 adds r4, r0, 0 adds r6, r1, 0 ldr r0, [r4, 0x70] movs r7, 0 movs r1, 0x9E lsls r1, 1 adds r5, r0, r1 ldr r0, [r5] bl sub_8094450 cmp r0, 0x1 ble _0805AB20 ldr r0, _0805AB1C ldr r2, [r0] adds r0, r4, 0 adds r1, r6, 0 movs r3, 0x63 bl sub_8077084 mov r0, sp movs r1, 0x1 bl sub_80943A0 ldr r0, [sp] str r0, [r5] movs r7, 0x1 b _0805AB36 .align 2, 0 _0805AB1C: .4byte gUnknown_8106A4C _0805AB20: ldr r0, _0805AB40 adds r1, r4, 0 movs r2, 0 bl sub_8045B94 ldr r0, _0805AB44 ldr r2, [r0] adds r0, r4, 0 adds r1, r6, 0 bl sub_80522F4 _0805AB36: adds r0, r7, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805AB40: .4byte gUnknown_202DF98 _0805AB44: .4byte gUnknown_80FC5CC thumb_func_end sub_805AAE0 thumb_func_start sub_805AB48 sub_805AB48: push {lr} bl sub_8079A24 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805AB48 thumb_func_start sub_805AB54 sub_805AB54: push {r4-r7,lr} sub sp, 0x8 adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 bne _0805AB70 b _0805AC86 _0805AB70: movs r7, 0x1 ldr r0, _0805ABA8 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r6, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 bne _0805AB88 b _0805AC86 _0805AB88: ldr r1, _0805ABAC ldr r0, _0805ABB0 ldr r0, [r0] ldr r2, _0805ABB4 adds r0, r2 movs r2, 0 ldrsh r0, [r0, r2] adds r0, r1 ldrb r0, [r0] cmp r0, 0x8 bhi _0805AC7C lsls r0, 2 ldr r1, _0805ABB8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0805ABA8: .4byte gUnknown_80F4E06 _0805ABAC: .4byte gUnknown_80F5978 _0805ABB0: .4byte gUnknown_203B418 _0805ABB4: .4byte 0x00003a0e _0805ABB8: .4byte _0805ABBC .align 2, 0 _0805ABBC: .4byte _0805ABE0 .4byte _0805ABEC .4byte _0805AC08 .4byte _0805AC16 .4byte _0805AC34 .4byte _0805AC50 .4byte _0805AC64 .4byte _0805AC70 .4byte _0805AC7C _0805ABE0: adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 bl sub_80763F8 b _0805AC86 _0805ABEC: ldr r1, _0805AC04 adds r0, r6, 0 movs r2, 0x1 bl sub_808417C adds r2, r0, 0 adds r0, r5, 0 adds r1, r6, 0 movs r3, 0 bl sub_8075C58 b _0805AC86 .align 2, 0 _0805AC04: .4byte gUnknown_80F4E74 _0805AC08: adds r0, r5, 0 adds r1, r6, 0 movs r2, 0x1 movs r3, 0 bl sub_80779F0 b _0805AC86 _0805AC16: ldr r0, _0805AC30 ldr r2, [r0] movs r0, 0x1 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] adds r0, r5, 0 adds r1, r6, 0 movs r3, 0x1 bl sub_8076E20 b _0805AC86 .align 2, 0 _0805AC30: .4byte gUnknown_8106A4C _0805AC34: ldr r0, _0805AC4C ldr r2, [r0] movs r0, 0x1 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] adds r0, r5, 0 adds r1, r6, 0 movs r3, 0x1 bl sub_8076F80 b _0805AC86 .align 2, 0 _0805AC4C: .4byte gUnknown_8106A4C _0805AC50: ldr r0, _0805AC60 ldr r2, [r0] adds r0, r5, 0 adds r1, r6, 0 movs r3, 0 bl sub_80775DC b _0805AC86 .align 2, 0 _0805AC60: .4byte gUnknown_8106A4C _0805AC64: adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 bl sub_8077AE4 b _0805AC86 _0805AC70: adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 bl sub_80776C0 b _0805AC86 _0805AC7C: adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 bl sub_8077780 _0805AC86: adds r0, r7, 0 add sp, 0x8 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_805AB54 thumb_func_start sub_805AC90 sub_805AC90: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _0805ACCA movs r7, 0x1 ldr r0, _0805ACD4 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r6, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _0805ACCA adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 bl sub_8077AE4 _0805ACCA: adds r0, r7, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805ACD4: .4byte gUnknown_80F4DFA thumb_func_end sub_805AC90 thumb_func_start sub_805ACD8 sub_805ACD8: push {r4-r6,lr} adds r5, r0, 0 adds r6, r1, 0 ldr r0, _0805AD00 ldr r4, [r0] adds r0, r5, 0 adds r2, r4, 0 movs r3, 0x1 bl sub_8077084 adds r0, r5, 0 adds r1, r6, 0 adds r2, r4, 0 movs r3, 0x1 bl sub_8077160 movs r0, 0x1 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0805AD00: .4byte gUnknown_8106A4C thumb_func_end sub_805ACD8 thumb_func_start sub_805AD04 sub_805AD04: push {r4,r5,lr} sub sp, 0x4 adds r5, r0, 0 adds r4, r1, 0 ldr r1, _0805AD30 adds r0, r4, 0 movs r2, 0x1 bl sub_808417C adds r3, r0, 0 movs r0, 0x1 str r0, [sp] adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x1 bl sub_8076090 movs r0, 0x1 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805AD30: .4byte gUnknown_80F4EE0 thumb_func_end sub_805AD04 thumb_func_start sub_805AD34 sub_805AD34: push {lr} sub sp, 0x8 ldr r2, _0805AD50 ldr r2, [r2] movs r3, 0x1 str r3, [sp] str r3, [sp, 0x4] movs r3, 0x2 bl sub_8076E20 movs r0, 0x1 add sp, 0x8 pop {r1} bx r1 .align 2, 0 _0805AD50: .4byte gUnknown_8106A4C thumb_func_end sub_805AD34 thumb_func_start sub_805AD54 sub_805AD54: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 adds r5, r0, 0 mov r9, r1 movs r0, 0 mov r10, r0 ldr r1, [r5, 0x70] mov r8, r1 ldrb r0, [r1, 0x6] cmp r0, 0 beq _0805AD88 ldr r0, _0805AD80 ldr r0, [r0] ldr r1, _0805AD84 adds r7, r0, r1 movs r0, 0x10 b _0805AD92 .align 2, 0 _0805AD80: .4byte gUnknown_203B418 _0805AD84: .4byte 0x0001358c _0805AD88: ldr r0, _0805AD98 ldr r0, [r0] ldr r1, _0805AD9C adds r7, r0, r1 movs r0, 0x4 _0805AD92: str r0, [sp] movs r6, 0 b _0805AE0E .align 2, 0 _0805AD98: .4byte gUnknown_203B418 _0805AD9C: .4byte 0x0001357c _0805ADA0: lsls r0, r6, 2 adds r0, r7 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0805AE0C cmp r5, r4 beq _0805AE0C adds r0, r5, 0 adds r1, r4, 0 movs r2, 0 movs r3, 0 bl sub_8071598 lsls r0, 24 cmp r0, 0 bne _0805AE0C ldr r1, [r4, 0x70] adds r0, r1, 0 adds r0, 0xA4 ldrb r0, [r0] cmp r0, 0x1 beq _0805AE0C adds r0, r1, 0 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x4A beq _0805ADE2 cmp r0, 0x47 bne _0805ADE6 _0805ADE2: movs r0, 0x1 b _0805ADE8 _0805ADE6: movs r0, 0 _0805ADE8: cmp r0, 0 bne _0805AE0C adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x2 mov r3, r9 adds r3, 0x4 bl sub_807D148 movs r0, 0x1 mov r10, r0 mov r1, r8 adds r1, 0xFB ldrb r0, [r1] cmp r0, 0 bne _0805AE0C mov r0, r10 strb r0, [r1] _0805AE0C: adds r6, 0x1 _0805AE0E: ldr r1, [sp] cmp r6, r1 blt _0805ADA0 mov r0, r10 cmp r0, 0 bne _0805AE26 ldr r0, _0805AE38 ldr r2, [r0] adds r0, r5, 0 mov r1, r9 bl sub_80522F4 _0805AE26: mov r0, r10 add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805AE38: .4byte gUnknown_81004EC thumb_func_end sub_805AD54 thumb_func_start sub_805AE3C sub_805AE3C: push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 mov r8, r2 adds r4, r3, 0 bl sub_807A9D8 movs r3, 0x80 lsls r3, 2 str r4, [sp] adds r0, r5, 0 adds r1, r6, 0 mov r2, r8 bl sub_8055640 adds r1, r0, 0 negs r0, r1 orrs r0, r1 lsrs r0, 31 add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_805AE3C thumb_func_start sub_805AE74 sub_805AE74: push {r4-r7,lr} sub sp, 0x8 adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _0805AEB8 movs r7, 0x1 ldr r0, _0805AEC4 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r6, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _0805AEB8 ldr r0, _0805AEC8 ldr r2, [r0] str r7, [sp] movs r0, 0 str r0, [sp, 0x4] adds r0, r5, 0 adds r1, r6, 0 movs r3, 0x1 bl sub_8076F80 _0805AEB8: adds r0, r7, 0 add sp, 0x8 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805AEC4: .4byte gUnknown_80F4DDA _0805AEC8: .4byte gUnknown_8106A4C thumb_func_end sub_805AE74 thumb_func_start sub_805AECC sub_805AECC: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r6, r0, 0 adds r7, r1, 0 adds r5, r2, 0 adds r4, r3, 0 movs r0, 0 mov r8, r0 adds r0, r6, 0 bl sub_807A9D8 movs r3, 0x80 lsls r3, 1 str r4, [sp] adds r0, r6, 0 adds r1, r7, 0 adds r2, r5, 0 bl sub_8055640 cmp r0, 0 beq _0805AF1E movs r1, 0x1 mov r8, r1 ldr r0, _0805AF2C movs r1, 0 ldrsh r2, [r0, r1] adds r0, r6, 0 adds r1, r7, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _0805AF1E adds r0, r6, 0 adds r1, r7, 0 movs r2, 0 movs r3, 0 bl sub_8076210 _0805AF1E: mov r0, r8 add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805AF2C: .4byte gUnknown_80F4DFE thumb_func_end sub_805AECC thumb_func_start sub_805AF30 sub_805AF30: push {r4-r7,lr} sub sp, 0x4 adds r7, r0, 0 adds r5, r1, 0 adds r6, r2, 0 adds r4, r3, 0 movs r0, 0x64 bl sub_8084100 adds r1, r0, 0 cmp r0, 0x9 bgt _0805AF54 str r4, [sp] adds r0, r7, 0 adds r1, r5, 0 adds r2, r6, 0 movs r3, 0x78 b _0805AF92 _0805AF54: cmp r0, 0x1D bgt _0805AF78 ldr r0, [r5, 0x70] movs r1, 0x10 ldrsh r2, [r0, r1] cmp r2, 0 bge _0805AF64 adds r2, 0x3 _0805AF64: asrs r2, 2 movs r0, 0x1 str r0, [sp] adds r0, r7, 0 adds r1, r5, 0 movs r3, 0 bl sub_8077C44 movs r0, 0x1 b _0805AF9C _0805AF78: cmp r1, 0x3B bgt _0805AF88 str r4, [sp] adds r0, r7, 0 adds r1, r5, 0 adds r2, r6, 0 movs r3, 0x50 b _0805AF92 _0805AF88: str r4, [sp] adds r0, r7, 0 adds r1, r5, 0 adds r2, r6, 0 movs r3, 0x28 _0805AF92: bl sub_8055864 negs r1, r0 orrs r1, r0 lsrs r0, r1, 31 _0805AF9C: add sp, 0x4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_805AF30 thumb_func_start sub_805AFA4 sub_805AFA4: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 mov r8, r2 adds r6, r3, 0 bl sub_807A9D8 ldr r3, [r4, 0x70] movs r0, 0x10 ldrsh r2, [r3, r0] adds r0, r2, 0 cmp r2, 0 bge _0805AFC6 adds r0, r2, 0x3 _0805AFC6: movs r7, 0xE ldrsh r1, [r3, r7] asrs r0, 2 cmp r1, r0 bgt _0805AFD4 movs r2, 0 b _0805AFFA _0805AFD4: movs r0, 0xE ldrsh r1, [r3, r0] lsrs r0, r2, 31 adds r0, r2, r0 asrs r0, 1 cmp r1, r0 bgt _0805AFE6 movs r2, 0x1 b _0805AFFA _0805AFE6: lsls r0, r2, 1 adds r0, r2 cmp r0, 0 bge _0805AFF0 adds r0, 0x3 _0805AFF0: asrs r0, 2 movs r2, 0x3 cmp r1, r0 bgt _0805AFFA movs r2, 0x2 _0805AFFA: ldr r1, _0805B024 lsls r0, r2, 2 adds r0, r1 ldr r3, [r0] str r6, [sp] adds r0, r4, 0 adds r1, r5, 0 mov r2, r8 bl sub_8055640 adds r1, r0, 0 negs r0, r1 orrs r0, r1 lsrs r0, 31 add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805B024: .4byte gUnknown_80F51C4 thumb_func_end sub_805AFA4 thumb_func_start sub_805B028 sub_805B028: push {lr} movs r2, 0x1 bl sub_8077780 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805B028 thumb_func_start sub_805B038 sub_805B038: push {r4-r6,lr} adds r5, r0, 0 adds r6, r1, 0 adds r4, r2, 0 bl sub_80441BC lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _0805B05A strb r0, [r4, 0x4] adds r0, r5, 0 adds r1, r6, 0 bl sub_8078E18 movs r0, 0x1 b _0805B068 _0805B05A: ldr r0, _0805B070 ldr r2, [r0] adds r0, r5, 0 adds r1, r6, 0 bl sub_80522F4 movs r0, 0 _0805B068: pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0805B070: .4byte gUnknown_80FEFF4 thumb_func_end sub_805B038 thumb_func_start sub_805B074 sub_805B074: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _0805B0AE movs r7, 0x1 ldr r0, _0805B0B8 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r6, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _0805B0AE adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 bl sub_80763F8 _0805B0AE: adds r0, r7, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805B0B8: .4byte gUnknown_80F4DC6 thumb_func_end sub_805B074 thumb_func_start sub_805B0BC sub_805B0BC: push {lr} ldr r2, [r0, 0x70] adds r2, 0x46 ldrb r2, [r2] bl sub_807CD9C movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805B0BC thumb_func_start sub_805B0D0 sub_805B0D0: push {r4-r7,lr} adds r7, r0, 0 adds r5, r1, 0 ldr r4, [r5, 0x70] ldr r1, _0805B134 ldr r0, _0805B138 ldr r0, [r0] ldr r2, _0805B13C adds r0, r2 movs r2, 0 ldrsh r0, [r0, r2] adds r0, r1 ldrb r6, [r0] adds r0, r5, 0 movs r1, 0x25 bl sub_8071824 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _0805B14C adds r0, r4, 0 adds r0, 0x5C strb r6, [r0] adds r0, 0x1 strb r1, [r0] adds r1, r4, 0 adds r1, 0xF6 movs r0, 0x1 strb r0, [r1] ldr r0, _0805B140 adds r1, r5, 0 movs r2, 0 bl sub_8045B94 adds r0, r6, 0 bl sub_8092334 adds r1, r0, 0 ldr r0, _0805B144 bl strcpy ldr r0, _0805B148 ldr r2, [r0] adds r0, r7, 0 adds r1, r5, 0 bl sub_80522F4 movs r0, 0x1 b _0805B15A .align 2, 0 _0805B134: .4byte gUnknown_80F561C _0805B138: .4byte gUnknown_203B418 _0805B13C: .4byte 0x00003a0e _0805B140: .4byte gUnknown_202DFE8 _0805B144: .4byte gUnknown_202DE58 _0805B148: .4byte gUnknown_80FEB08 _0805B14C: ldr r0, _0805B160 ldr r2, [r0] adds r0, r7, 0 adds r1, r5, 0 bl sub_80522F4 movs r0, 0 _0805B15A: pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805B160: .4byte gUnknown_81006F8 thumb_func_end sub_805B0D0 thumb_func_start sub_805B164 sub_805B164: push {lr} ldr r2, _0805B178 ldr r2, [r2] movs r3, 0x2 bl sub_8077084 movs r0, 0x1 pop {r1} bx r1 .align 2, 0 _0805B178: .4byte gUnknown_8106A50 thumb_func_end sub_805B164 thumb_func_start sub_805B17C sub_805B17C: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 adds r7, r2, 0 mov r8, r3 movs r0, 0 mov r9, r0 ldrh r1, [r7, 0x2] ldr r0, _0805B1A8 cmp r1, r0 bne _0805B1AC adds r0, r4, 0 adds r1, r5, 0 bl sub_807A9D8 movs r6, 0x9E lsls r6, 1 b _0805B1BA .align 2, 0 _0805B1A8: .4byte 0x00000123 _0805B1AC: movs r6, 0x75 cmp r1, 0x45 beq _0805B1BA movs r6, 0xF1 cmp r1, 0x7D bne _0805B1BA movs r6, 0x7E _0805B1BA: movs r3, 0x80 lsls r3, 1 mov r1, r8 str r1, [sp] adds r0, r4, 0 adds r1, r5, 0 adds r2, r7, 0 bl sub_8055640 cmp r0, 0 beq _0805B1F4 movs r0, 0x1 mov r9, r0 ldr r0, _0805B204 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r4, 0 adds r1, r5, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _0805B1F4 adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 movs r3, 0 bl sub_80768DC _0805B1F4: mov r0, r9 add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805B204: .4byte gUnknown_80F4E08 thumb_func_end sub_805B17C thumb_func_start sub_805B208 sub_805B208: push {lr} bl sub_80788E8 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805B208 thumb_func_start sub_805B214 sub_805B214: push {lr} bl sub_8076B48 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805B214 thumb_func_start sub_805B220 sub_805B220: push {r4-r6,lr} adds r4, r0, 0 adds r5, r1, 0 movs r6, 0 ldr r0, [r4, 0x70] ldrb r0, [r0, 0x6] movs r2, 0x1 cmp r0, 0 beq _0805B234 movs r2, 0x2 _0805B234: adds r0, r4, 0x4 movs r1, 0x13 bl sub_807FCD4 lsls r0, 24 cmp r0, 0 beq _0805B246 movs r6, 0x1 b _0805B252 _0805B246: ldr r0, _0805B260 ldr r2, [r0] adds r0, r4, 0 adds r1, r5, 0 bl sub_80522F4 _0805B252: bl sub_8049ED4 adds r0, r6, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0805B260: .4byte gUnknown_80FC5A8 thumb_func_end sub_805B220 thumb_func_start sub_805B264 sub_805B264: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 mov r8, r0 adds r7, r1, 0 mov r9, r2 mov r12, r3 ldr r4, [r7, 0x70] ldr r0, _0805B2D0 ldr r3, [r0] movs r6, 0 ldr r0, _0805B2D4 ldr r1, [r0] movs r0, 0xC1 lsls r0, 9 adds r5, r1, r0 ldr r2, _0805B2D8 lsls r0, r3, 2 adds r0, r2 ldr r0, [r0] str r0, [r5] ldr r0, _0805B2DC adds r1, r0 str r6, [r1] ldr r0, _0805B2E0 lsls r3, 1 adds r3, r0 movs r0, 0 ldrsh r3, [r3, r0] adds r4, 0xC0 ldrb r0, [r4] cmp r0, 0xA bne _0805B2AC lsls r3, 1 _0805B2AC: mov r0, r12 str r0, [sp] mov r0, r8 adds r1, r7, 0 mov r2, r9 bl sub_8055864 negs r1, r0 orrs r1, r0 lsrs r6, r1, 31 adds r0, r6, 0 add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805B2D0: .4byte gUnknown_202F224 _0805B2D4: .4byte gUnknown_203B418 _0805B2D8: .4byte gUnknown_8106A8C _0805B2DC: .4byte 0x00018204 _0805B2E0: .4byte gUnknown_80F4F94 thumb_func_end sub_805B264 thumb_func_start sub_805B2E4 sub_805B2E4: push {lr} bl sub_80799A8 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805B2E4 thumb_func_start sub_805B2F0 sub_805B2F0: push {lr} bl sub_8079B1C movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805B2F0 thumb_func_start sub_805B2FC sub_805B2FC: push {lr} ldr r2, _0805B310 ldr r2, [r2] movs r3, 0x1 bl sub_8077160 movs r0, 0x1 pop {r1} bx r1 .align 2, 0 _0805B310: .4byte gUnknown_8106A4C thumb_func_end sub_805B2FC thumb_func_start sub_805B314 sub_805B314: push {lr} movs r2, 0x1 bl sub_80783C4 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805B314 thumb_func_start sub_805B324 sub_805B324: push {r4-r7,lr} sub sp, 0x8 adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _0805B368 movs r7, 0x1 ldr r0, _0805B374 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r6, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _0805B368 ldr r0, _0805B378 ldr r2, [r0] str r7, [sp] movs r0, 0 str r0, [sp, 0x4] adds r0, r5, 0 adds r1, r6, 0 movs r3, 0x1 bl sub_8076E20 _0805B368: adds r0, r7, 0 add sp, 0x8 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805B374: .4byte gUnknown_80F4DD8 _0805B378: .4byte gUnknown_8106A50 thumb_func_end sub_805B324 thumb_func_start sub_805B37C sub_805B37C: push {lr} bl sub_80780E4 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805B37C thumb_func_start sub_805B388 sub_805B388: push {r4,lr} sub sp, 0x4 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _0805B39E movs r0, 0x1 _0805B39E: add sp, 0x4 pop {r4} pop {r1} bx r1 thumb_func_end sub_805B388 thumb_func_start sub_805B3A8 sub_805B3A8: push {lr} bl sub_8079BA8 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805B3A8 thumb_func_start sub_805B3B4 sub_805B3B4: push {r4-r6,lr} adds r5, r0, 0 adds r6, r1, 0 ldr r0, _0805B3DC ldr r4, [r0] adds r0, r5, 0 adds r2, r4, 0 movs r3, 0x1 bl sub_8077084 adds r0, r5, 0 adds r1, r6, 0 adds r2, r4, 0 movs r3, 0x1 bl sub_8077160 movs r0, 0x1 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0805B3DC: .4byte gUnknown_8106A50 thumb_func_end sub_805B3B4 thumb_func_start sub_805B3E0 sub_805B3E0: push {r4,lr} sub sp, 0x4 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 movs r0, 0x1 add sp, 0x4 pop {r4} pop {r1} bx r1 thumb_func_end sub_805B3E0 thumb_func_start sub_805B3FC sub_805B3FC: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r7, r3, 0 ldr r0, [sp, 0x18] movs r6, 0 movs r3, 0x80 lsls r3, 1 str r0, [sp] adds r0, r5, 0 bl sub_8055640 cmp r0, 0 beq _0805B446 movs r6, 0x1 ldr r0, _0805B450 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r5, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _0805B446 ldr r4, [r5, 0x70] adds r0, r5, 0 adds r1, r5, 0 adds r2, r7, 0 movs r3, 0x1 bl sub_8077084 adds r4, 0xFB ldrb r0, [r4] cmp r0, 0 bne _0805B446 strb r6, [r4] _0805B446: adds r0, r6, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805B450: .4byte gUnknown_80F4DCE thumb_func_end sub_805B3FC thumb_func_start sub_805B454 sub_805B454: push {lr} movs r2, 0x1 bl sub_807614C movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805B454 thumb_func_start sub_805B464 sub_805B464: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 adds r6, r0, 0 mov r9, r1 movs r0, 0 str r0, [sp] ldr r1, [r6, 0x70] mov r8, r1 mov r1, r9 ldr r0, [r1, 0x70] movs r5, 0 ldr r1, _0805B50C mov r10, r1 subs r1, 0x2F adds r4, r0, r1 movs r7, 0x3 _0805B48C: ldrb r1, [r4] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0805B4D4 ldrh r1, [r4, 0x2] adds r0, r6, 0 bl sub_805755C lsls r0, 24 cmp r0, 0 bne _0805B4D4 ldrh r2, [r4, 0x2] adds r0, r2, 0 cmp r0, r10 beq _0805B4D4 cmp r0, 0xE5 beq _0805B4D4 cmp r0, 0x8A beq _0805B4D4 cmp r0, 0x28 beq _0805B4D4 cmp r0, 0x11 beq _0805B4D4 ldrb r1, [r4] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _0805B4D4 lsls r1, r5, 1 movs r0, 0xBD lsls r0, 1 add r0, r8 adds r0, r1 strh r2, [r0] adds r5, 0x1 _0805B4D4: adds r4, 0x8 subs r7, 0x1 cmp r7, 0 bge _0805B48C ldr r0, _0805B510 adds r1, r6, 0 movs r2, 0 bl sub_8045B94 cmp r5, 0 beq _0805B518 mov r1, r8 adds r1, 0xFB ldrb r0, [r1] cmp r0, 0 bne _0805B4F8 movs r0, 0x1 strb r0, [r1] _0805B4F8: ldr r0, _0805B514 ldr r2, [r0] adds r0, r6, 0 mov r1, r9 bl sub_80522F4 movs r0, 0x1 str r0, [sp] b _0805B524 .align 2, 0 _0805B50C: .4byte 0x00000147 _0805B510: .4byte gUnknown_202DF98 _0805B514: .4byte gUnknown_80FDCE4 _0805B518: ldr r0, _0805B538 ldr r2, [r0] adds r0, r6, 0 mov r1, r9 bl sub_80522F4 _0805B524: ldr r0, [sp] add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805B538: .4byte gUnknown_80FDD00 thumb_func_end sub_805B464 thumb_func_start sub_805B53C sub_805B53C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C mov r10, r0 mov r9, r1 adds r6, r2, 0 mov r8, r3 movs r0, 0 add r1, sp, 0x18 strb r0, [r1] mov r0, r10 ldr r1, [r0, 0x70] movs r5, 0x1 movs r2, 0 ldr r4, _0805B580 movs r3, 0 ldrsh r0, [r4, r3] cmp r0, 0 blt _0805B598 movs r7, 0xC ldrsh r3, [r1, r7] adds r1, r4, 0 ldr r4, _0805B584 _0805B570: movs r7, 0 ldrsh r0, [r1, r7] cmp r3, r0 bge _0805B588 movs r0, 0x2 ldrsh r5, [r1, r0] b _0805B598 .align 2, 0 _0805B580: .4byte gUnknown_80F55EC _0805B584: .4byte 0x000003e6 _0805B588: adds r1, 0x4 adds r2, 0x1 cmp r2, r4 bgt _0805B598 movs r7, 0 ldrsh r0, [r1, r7] cmp r0, 0 bge _0805B570 _0805B598: adds r0, r6, 0 bl sub_8092B00 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r6, 0 mov r1, r8 bl sub_8057600 lsls r0, 16 asrs r0, 16 add r1, sp, 0x18 str r1, [sp] str r4, [sp, 0x4] str r0, [sp, 0x8] movs r1, 0 str r1, [sp, 0xC] movs r0, 0x1 str r0, [sp, 0x10] str r1, [sp, 0x14] mov r0, r10 mov r1, r9 adds r2, r5, 0 movs r3, 0x1 bl sub_806F370 add r1, sp, 0x18 movs r2, 0 adds r0, r1, 0 ldrb r0, [r0] cmp r0, 0 bne _0805B5DC movs r2, 0x1 _0805B5DC: strb r2, [r1] add r0, sp, 0x18 ldrb r0, [r0] add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_805B53C thumb_func_start sub_805B5F4 sub_805B5F4: push {r4,lr} adds r4, r0, 0 movs r2, 0x1 bl sub_8077F40 ldr r0, [r4, 0x70] adds r1, r0, 0 adds r1, 0xFB ldrb r0, [r1] cmp r0, 0 bne _0805B60E movs r0, 0x1 strb r0, [r1] _0805B60E: movs r0, 0x1 pop {r4} pop {r1} bx r1 thumb_func_end sub_805B5F4 thumb_func_start sub_805B618 sub_805B618: push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x8 adds r6, r0, 0 mov r8, r1 mov r9, r3 ldr r0, _0805B660 ldr r4, [r0] ldr r5, _0805B664 lsls r4, 3 adds r0, r4, r5 ldrh r1, [r0] mov r0, sp bl sub_8092A88 adds r5, 0x4 adds r4, r5 ldr r4, [r4] adds r0, r6, 0 mov r1, r8 mov r2, sp mov r3, r9 bl _call_via_r4 lsls r0, 24 lsrs r0, 24 add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0805B660: .4byte gUnknown_202F228 _0805B664: .4byte gUnknown_80F59C8 thumb_func_end sub_805B618 thumb_func_start sub_805B668 sub_805B668: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 adds r5, r0, 0 adds r4, r1, 0 adds r7, r2, 0 adds r6, r3, 0 movs r0, 0 mov r8, r0 adds r0, r4, 0 movs r1, 0x3A bl sub_8071824 lsls r0, 24 lsrs r0, 24 mov r9, r0 adds r0, r4, 0 bl sub_8070B28 lsls r0, 24 cmp r0, 0 beq _0805B712 movs r3, 0x80 lsls r3, 1 str r6, [sp] adds r0, r5, 0 adds r1, r4, 0 adds r2, r7, 0 bl sub_8055640 adds r1, r0, 0 cmp r1, 0 beq _0805B71E movs r0, 0x1 mov r8, r0 lsrs r0, r1, 31 adds r0, r1, r0 asrs r4, r0, 1 cmp r4, 0 bgt _0805B6BE movs r4, 0x1 _0805B6BE: adds r0, r5, 0 movs r1, 0 bl sub_8057308 lsls r0, 24 cmp r0, 0 beq _0805B71E ldr r0, [r5, 0x70] adds r1, r0, 0 adds r1, 0xFB ldrb r0, [r1] cmp r0, 0 bne _0805B6DC mov r0, r8 strb r0, [r1] _0805B6DC: adds r0, r5, 0 movs r1, 0 bl sub_8057308 lsls r0, 24 cmp r0, 0 beq _0805B71E mov r0, r9 cmp r0, 0 beq _0805B700 movs r3, 0xFD lsls r3, 1 adds r0, r5, 0 adds r1, r4, 0 movs r2, 0xD bl sub_806F324 b _0805B71E _0805B700: mov r0, r8 str r0, [sp] adds r0, r5, 0 adds r1, r5, 0 adds r2, r4, 0 movs r3, 0 bl sub_8077C44 b _0805B71E _0805B712: ldr r0, _0805B730 ldr r2, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_80522F4 _0805B71E: mov r0, r8 add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805B730: .4byte gUnknown_810024C thumb_func_end sub_805B668 thumb_func_start sub_805B734 sub_805B734: push {lr} bl sub_8078678 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805B734 thumb_func_start sub_805B740 sub_805B740: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} mov r9, r0 adds r6, r1, 0 ldr r5, [r6, 0x70] movs r7, 0 ldrb r0, [r5, 0x6] cmp r0, 0 bne _0805B7C2 movs r4, 0 movs r0, 0x60 adds r0, r5 mov r8, r0 _0805B75E: lsls r1, r4, 2 ldr r0, _0805B7D4 ldr r0, [r0] adds r2, r1, r0 ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0805B790 movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _0805B790 ldrb r0, [r2, 0x2] cmp r0, 0x7C bne _0805B790 ldrb r1, [r2, 0x1] adds r1, 0x7D lsls r1, 24 lsrs r1, 24 adds r0, r2, 0 movs r2, 0 bl sub_8090A8C movs r7, 0x1 _0805B790: adds r4, 0x1 cmp r4, 0x13 ble _0805B75E mov r0, r8 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0805B7C2 adds r0, r5, 0 adds r0, 0x62 ldrb r0, [r0] cmp r0, 0x7C bne _0805B7C2 adds r0, r5, 0 adds r0, 0x61 ldrb r1, [r0] adds r1, 0x7D lsls r1, 24 lsrs r1, 24 mov r0, r8 movs r2, 0 bl sub_8090A8C movs r7, 0x1 _0805B7C2: cmp r7, 0 beq _0805B7DC ldr r0, _0805B7D8 ldr r2, [r0] mov r0, r9 adds r1, r6, 0 bl sub_80522F4 b _0805B7E8 .align 2, 0 _0805B7D4: .4byte gUnknown_203B460 _0805B7D8: .4byte gUnknown_80FDC9C _0805B7DC: ldr r0, _0805B7F8 ldr r2, [r0] mov r0, r9 adds r1, r6, 0 bl sub_80522F4 _0805B7E8: adds r0, r7, 0 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805B7F8: .4byte gUnknown_80FDCA0 thumb_func_end sub_805B740 thumb_func_start sub_805B7FC sub_805B7FC: push {lr} bl sub_8079AA0 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805B7FC thumb_func_start sub_805B808 sub_805B808: push {r4-r6,lr} mov r6, r10 mov r5, r9 mov r4, r8 push {r4-r6} sub sp, 0x1C mov r9, r0 mov r10, r1 adds r6, r2, 0 mov r8, r3 movs r5, 0 add r0, sp, 0x18 strb r5, [r0] adds r0, r6, 0 bl sub_8092B00 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r6, 0 mov r1, r8 bl sub_8057600 lsls r0, 16 asrs r0, 16 ldr r1, _0805B880 movs r3, 0 ldrsh r2, [r1, r3] add r1, sp, 0x18 str r1, [sp] str r4, [sp, 0x4] str r0, [sp, 0x8] str r5, [sp, 0xC] movs r0, 0x1 str r0, [sp, 0x10] str r5, [sp, 0x14] mov r0, r9 mov r1, r10 movs r3, 0x1 bl sub_806F370 add r1, sp, 0x18 movs r2, 0 adds r0, r1, 0 ldrb r0, [r0] cmp r0, 0 bne _0805B868 movs r2, 0x1 _0805B868: strb r2, [r1] add r0, sp, 0x18 ldrb r0, [r0] add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0805B880: .4byte gUnknown_80F4F7E thumb_func_end sub_805B808 thumb_func_start sub_805B884 sub_805B884: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 ldr r0, _0805B8AC ldr r2, [r0] adds r0, r4, 0 movs r3, 0x1 bl sub_8077084 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0 movs r3, 0x1 bl sub_8077910 movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805B8AC: .4byte gUnknown_8106A4C thumb_func_end sub_805B884 thumb_func_start sub_805B8B0 sub_805B8B0: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r7, r1, 0 adds r4, r2, 0 adds r6, r3, 0 adds r1, r4, 0 bl sub_80570AC lsls r0, 24 cmp r0, 0 beq _0805B8EC ldr r0, _0805B8E8 ldr r3, [r0] str r6, [sp] adds r0, r5, 0 adds r1, r7, 0 adds r2, r4, 0 bl sub_8055640 negs r1, r0 orrs r1, r0 lsrs r4, r1, 31 adds r0, r5, 0 bl sub_8079764 b _0805B900 .align 2, 0 _0805B8E8: .4byte gUnknown_80F4F58 _0805B8EC: ldr r0, _0805B90C ldr r0, [r0] str r0, [sp] adds r0, r5, 0 adds r1, r7, 0 movs r2, 0x6 adds r3, r4, 0 bl sub_8079618 movs r4, 0x1 _0805B900: adds r0, r4, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805B90C: .4byte gUnknown_80FAFF0 thumb_func_end sub_805B8B0 thumb_func_start sub_805B910 sub_805B910: push {r4-r7,lr} sub sp, 0x8 adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _0805B954 movs r7, 0x1 ldr r0, _0805B960 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r6, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _0805B954 ldr r0, _0805B964 ldr r2, [r0] str r7, [sp] movs r0, 0 str r0, [sp, 0x4] adds r0, r5, 0 adds r1, r6, 0 movs r3, 0x1 bl sub_8076F80 _0805B954: adds r0, r7, 0 add sp, 0x8 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805B960: .4byte gUnknown_80F4DDC _0805B964: .4byte gUnknown_8106A50 thumb_func_end sub_805B910 thumb_func_start sub_805B968 sub_805B968: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x18 adds r5, r0, 0 adds r6, r2, 0 adds r7, r3, 0 movs r0, 0 mov r8, r0 movs r3, 0x80 lsls r3, 1 str r7, [sp] adds r0, r5, 0 bl sub_8055640 cmp r0, 0 beq _0805B9D8 movs r1, 0x1 mov r8, r1 adds r0, r5, 0 movs r1, 0 bl sub_8057308 lsls r0, 24 cmp r0, 0 beq _0805B9D8 ldr r0, [r5, 0x70] movs r1, 0x10 ldrsh r2, [r0, r1] cmp r2, 0 bge _0805B9A8 adds r2, 0x3 _0805B9A8: asrs r4, r2, 2 cmp r4, 0 bgt _0805B9B0 movs r4, 0x1 _0805B9B0: adds r0, r6, 0 adds r1, r7, 0 bl sub_8057600 lsls r0, 16 asrs r0, 16 movs r1, 0 str r1, [sp] str r1, [sp, 0x4] str r0, [sp, 0x8] str r1, [sp, 0xC] mov r0, r8 str r0, [sp, 0x10] str r1, [sp, 0x14] adds r0, r5, 0 adds r1, r5, 0 adds r2, r4, 0 movs r3, 0 bl sub_806F370 _0805B9D8: mov r0, r8 add sp, 0x18 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_805B968 thumb_func_start sub_805B9E8 sub_805B9E8: push {r4-r6,lr} sub sp, 0x4 adds r5, r0, 0 adds r4, r1, 0 movs r6, 0 mov r0, sp bl sub_8069D18 lsls r0, 24 cmp r0, 0 beq _0805BA08 ldr r0, _0805BA04 b _0805BA18 .align 2, 0 _0805BA04: .4byte gUnknown_80FD430 _0805BA08: mov r0, sp bl sub_804AD34 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0 beq _0805BA28 ldr r0, _0805BA24 _0805BA18: ldr r2, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_80522F4 b _0805BA34 .align 2, 0 _0805BA24: .4byte gUnknown_80FD3F0 _0805BA28: ldr r0, _0805BA40 ldr r2, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_80522F4 _0805BA34: adds r0, r6, 0 add sp, 0x4 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0805BA40: .4byte gUnknown_80FD40C thumb_func_end sub_805B9E8 thumb_func_start sub_805BA44 sub_805BA44: push {lr} bl sub_807D3CC movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805BA44 thumb_func_start sub_805BA50 sub_805BA50: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 adds r6, r0, 0 adds r5, r1, 0 movs r0, 0 mov r9, r0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r0, r6, 0 adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _0805BB4C movs r1, 0x1 mov r9, r1 adds r0, r6, 0 adds r1, r5, 0 movs r2, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _0805BB4C ldr r0, [r6, 0x70] mov r8, r0 mov r10, r8 ldr r7, [r5, 0x70] str r7, [sp, 0x4] ldr r4, _0805BAC0 adds r0, r4, 0 adds r1, r6, 0 movs r2, 0 bl sub_8045B94 adds r4, 0x50 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0 bl sub_8045B94 adds r0, r5, 0 movs r1, 0x2C bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0805BAC4 movs r0, 0x1 b _0805BB4E .align 2, 0 _0805BAC0: .4byte gUnknown_202DF98 _0805BAC4: adds r0, r5, 0 movs r1, 0x24 bl sub_8046CB0 lsls r0, 24 cmp r0, 0 beq _0805BADC ldr r0, _0805BAD8 b _0805BB04 .align 2, 0 _0805BAD8: .4byte gUnknown_80FD574 _0805BADC: mov r0, r8 adds r0, 0x60 adds r3, r7, 0 adds r3, 0x60 ldrb r0, [r0] mov r2, r9 ands r2, r0 cmp r2, 0 beq _0805BAF8 ldr r0, _0805BAF4 b _0805BB04 .align 2, 0 _0805BAF4: .4byte gUnknown_80FC654 _0805BAF8: ldrb r1, [r3] mov r0, r9 ands r0, r1 cmp r0, 0 bne _0805BB18 ldr r0, _0805BB14 _0805BB04: ldr r2, [r0] adds r0, r6, 0 adds r1, r5, 0 bl sub_80522F4 movs r0, 0x1 b _0805BB4E .align 2, 0 _0805BB14: .4byte gUnknown_80FC678 _0805BB18: ldr r1, [sp, 0x4] ldr r0, [r1, 0x60] mov r1, r10 str r0, [r1, 0x60] strb r2, [r3, 0x2] strb r2, [r3, 0x1] strb r2, [r3] adds r0, r6, 0 bl sub_806A6E8 adds r0, r5, 0 bl sub_806A6E8 mov r1, r10 adds r1, 0xFB ldrb r0, [r1] cmp r0, 0 bne _0805BB40 mov r0, r9 strb r0, [r1] _0805BB40: ldr r0, _0805BB60 ldr r2, [r0] adds r0, r6, 0 adds r1, r5, 0 bl sub_80522F4 _0805BB4C: mov r0, r9 _0805BB4E: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805BB60: .4byte gUnknown_80FC614 thumb_func_end sub_805BA50 thumb_func_start sub_805BB64 sub_805BB64: push {lr} movs r2, 0xA bl sub_80797A0 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805BB64 thumb_func_start sub_805BB74 sub_805BB74: push {lr} adds r3, r0, 0 ldr r0, [r3, 0x70] adds r2, r0, 0 adds r2, 0xFB ldrb r0, [r2] cmp r0, 0 bne _0805BB88 movs r0, 0x1 strb r0, [r2] _0805BB88: adds r0, r3, 0 movs r2, 0x1 bl sub_807E254 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805BB74 thumb_func_start sub_805BB98 sub_805BB98: push {lr} movs r2, 0x1 movs r3, 0 bl sub_807D148 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805BB98 thumb_func_start sub_805BBA8 sub_805BBA8: push {r4-r7,lr} mov r7, r8 push {r7} mov r8, r0 adds r6, r1, 0 ldr r0, [r6, 0x70] movs r7, 0 ldrb r0, [r0, 0x6] cmp r0, 0 bne _0805BC30 movs r5, 0 ldr r3, _0805BC44 _0805BBC0: lsls r1, r5, 2 ldr r0, [r3] adds r1, r0 ldrb r2, [r1] movs r0, 0x1 ands r0, r2 cmp r0, 0 beq _0805BBE8 movs r0, 0x2 ands r0, r2 cmp r0, 0 bne _0805BBE8 movs r0, 0x8 ands r0, r2 cmp r0, 0 beq _0805BBE8 movs r0, 0xF7 ands r0, r2 strb r0, [r1] movs r7, 0x1 _0805BBE8: adds r5, 0x1 cmp r5, 0x13 ble _0805BBC0 movs r5, 0 _0805BBF0: ldr r0, _0805BC48 ldr r0, [r0] lsls r1, r5, 2 ldr r2, _0805BC4C adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0805BC2A ldr r0, [r4, 0x70] adds r2, r0, 0 adds r2, 0x60 ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0805BC2A movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _0805BC2A movs r0, 0xF7 ands r0, r1 strb r0, [r2] movs r7, 0x1 _0805BC2A: adds r5, 0x1 cmp r5, 0x3 ble _0805BBF0 _0805BC30: cmp r7, 0 beq _0805BC54 ldr r0, _0805BC50 ldr r2, [r0] mov r0, r8 adds r1, r6, 0 bl sub_80522F4 b _0805BC60 .align 2, 0 _0805BC44: .4byte gUnknown_203B460 _0805BC48: .4byte gUnknown_203B418 _0805BC4C: .4byte 0x0001357c _0805BC50: .4byte gUnknown_80FC8F0 _0805BC54: ldr r0, _0805BC6C ldr r2, [r0] mov r0, r8 adds r1, r6, 0 bl sub_80522F4 _0805BC60: adds r0, r7, 0 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805BC6C: .4byte gUnknown_80FC920 thumb_func_end sub_805BBA8 thumb_func_start sub_805BC70 sub_805BC70: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 ldr r1, _0805BC94 adds r0, r4, 0 movs r2, 0x1 bl sub_808417C adds r2, r0, 0 adds r0, r5, 0 adds r1, r4, 0 movs r3, 0x1 bl sub_8075C58 movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805BC94: .4byte gUnknown_80F4E74 thumb_func_end sub_805BC70 thumb_func_start sub_805BC98 sub_805BC98: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x20 adds r6, r0, 0 mov r8, r1 mov r10, r2 str r3, [sp, 0x1C] movs r5, 0 add r0, sp, 0x18 strb r5, [r0] mov r7, sp adds r7, 0x19 strb r5, [r7] ldr r0, [r6, 0x70] mov r9, r0 ldr r0, [r1, 0x70] movs r1, 0xE ldrsh r0, [r0, r1] subs r4, r0, 0x1 cmp r4, 0 bge _0805BCCA movs r4, 0 _0805BCCA: mov r0, r10 ldr r1, [sp, 0x1C] bl sub_8057600 lsls r0, 16 asrs r0, 16 add r2, sp, 0x18 str r2, [sp] str r5, [sp, 0x4] str r0, [sp, 0x8] str r5, [sp, 0xC] str r5, [sp, 0x10] str r5, [sp, 0x14] adds r0, r6, 0 mov r1, r8 adds r2, r4, 0 movs r3, 0 bl sub_806F370 mov r1, r9 movs r2, 0xE ldrsh r0, [r1, r2] lsrs r1, r0, 31 adds r0, r1 asrs r4, r0, 1 cmp r4, 0 bge _0805BD02 movs r4, 0 _0805BD02: mov r0, r10 ldr r1, [sp, 0x1C] bl sub_8057600 lsls r0, 16 asrs r0, 16 str r7, [sp] str r5, [sp, 0x4] str r0, [sp, 0x8] str r5, [sp, 0xC] str r5, [sp, 0x10] str r5, [sp, 0x14] adds r0, r6, 0 adds r1, r6, 0 adds r2, r4, 0 movs r3, 0 bl sub_806F370 add r1, sp, 0x18 movs r2, 0 adds r0, r1, 0 ldrb r0, [r0] cmp r0, 0 bne _0805BD34 movs r2, 0x1 _0805BD34: strb r2, [r1] movs r1, 0 ldrb r0, [r7] cmp r0, 0 bne _0805BD40 movs r1, 0x1 _0805BD40: strb r1, [r7] movs r2, 0 add r0, sp, 0x18 ldrb r0, [r0] cmp r0, 0 bne _0805BD50 cmp r1, 0 beq _0805BD52 _0805BD50: movs r2, 0x1 _0805BD52: adds r0, r2, 0 add sp, 0x20 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_805BC98 thumb_func_start sub_805BD64 sub_805BD64: push {lr} bl sub_8078D8C movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805BD64 thumb_func_start sub_805BD70 sub_805BD70: push {lr} bl sub_8077DDC movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805BD70 thumb_func_start sub_805BD7C sub_805BD7C: push {lr} bl sub_8077ED0 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805BD7C thumb_func_start sub_805BD88 sub_805BD88: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 mov r10, r0 adds r7, r1, 0 movs r0, 0 str r0, [sp] ldr r1, [r7, 0x70] ldrb r0, [r1, 0x6] cmp r0, 0 beq _0805BE60 mov r9, r1 movs r2, 0x2 ldrsh r5, [r1, r2] mov r8, r5 ldr r0, _0805BDD0 adds r1, r7, 0 movs r2, 0 bl sub_8045B94 mov r0, r9 adds r0, 0xA4 ldrb r0, [r0] cmp r0, 0 beq _0805BDD8 ldr r0, _0805BDD4 ldr r2, [r0] mov r0, r10 adds r1, r7, 0 bl sub_80522F4 movs r0, 0 b _0805BE78 .align 2, 0 _0805BDD0: .4byte gUnknown_202DF98 _0805BDD4: .4byte gUnknown_80FD450 _0805BDD8: movs r6, 0 b _0805BDDE _0805BDDC: adds r6, 0x1 _0805BDDE: cmp r6, 0x1D bgt _0805BE14 movs r0, 0 bl sub_803D970 lsls r0, 16 asrs r5, r0, 16 adds r0, r5, 0 movs r1, 0 bl sub_806AA0C lsls r0, 24 cmp r0, 0 beq _0805BDDC cmp r8, r5 beq _0805BDDC mov r0, r8 bl sub_808DACC adds r4, r0, 0 adds r0, r5, 0 bl sub_808DACC lsls r4, 24 lsls r0, 24 cmp r4, r0 bne _0805BDDC _0805BE14: cmp r6, 0x1E beq _0805BE22 mov r1, r9 movs r2, 0x2 ldrsh r0, [r1, r2] cmp r0, r5 bne _0805BE34 _0805BE22: ldr r0, _0805BE30 ldr r2, [r0] mov r0, r10 adds r1, r7, 0 bl sub_80522F4 b _0805BE76 .align 2, 0 _0805BE30: .4byte gUnknown_80FD450 _0805BE34: ldr r0, _0805BE58 adds r1, r5, 0 bl sub_808D908 ldr r0, _0805BE5C ldr r2, [r0] mov r0, r10 adds r1, r7, 0 bl sub_80522F4 adds r0, r7, 0 adds r1, r5, 0 bl sub_806BB6C movs r0, 0x1 str r0, [sp] b _0805BE76 .align 2, 0 _0805BE58: .4byte gUnknown_202DFE8 _0805BE5C: .4byte gUnknown_80FD434 _0805BE60: ldr r0, _0805BE88 adds r1, r7, 0 movs r2, 0 bl sub_8045B94 ldr r0, _0805BE8C ldr r2, [r0] mov r0, r10 adds r1, r7, 0 bl sub_80522F4 _0805BE76: ldr r0, [sp] _0805BE78: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805BE88: .4byte gUnknown_202DF98 _0805BE8C: .4byte gUnknown_80FD450 thumb_func_end sub_805BD88 thumb_func_start sub_805BE90 sub_805BE90: push {lr} movs r2, 0x1 movs r3, 0x1 bl sub_80779F0 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805BE90 thumb_func_start sub_805BEA0 sub_805BEA0: push {lr} bl sub_804002C movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805BEA0 thumb_func_start sub_805BEAC sub_805BEAC: push {lr} bl sub_8076D10 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805BEAC thumb_func_start sub_805BEB8 sub_805BEB8: push {lr} movs r2, 0x8 bl sub_807DA14 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805BEB8 thumb_func_start sub_805BEC8 sub_805BEC8: push {lr} bl sub_807D510 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805BEC8 thumb_func_start sub_805BED4 sub_805BED4: push {r4-r6,lr} adds r4, r0, 0 adds r6, r1, 0 ldr r0, _0805BF00 adds r1, r4, 0 movs r2, 0 bl sub_8045B94 ldr r5, _0805BF04 ldr r0, [r5] ldr r1, _0805BF08 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _0805BF10 ldr r0, _0805BF0C ldr r2, [r0] adds r0, r4, 0 adds r1, r6, 0 bl sub_80522F4 b _0805BF26 .align 2, 0 _0805BF00: .4byte gUnknown_202DF98 _0805BF04: .4byte gUnknown_203B418 _0805BF08: .4byte 0x0000066e _0805BF0C: .4byte gUnknown_80FD4DC _0805BF10: ldr r0, _0805BF30 ldr r2, [r0] adds r0, r4, 0 adds r1, r6, 0 bl sub_80522F4 ldr r0, [r5] movs r1, 0x1 strb r1, [r0, 0x4] ldr r0, [r5] strb r1, [r0, 0x11] _0805BF26: movs r0, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0805BF30: .4byte gUnknown_80FD4C4 thumb_func_end sub_805BED4 thumb_func_start sub_805BF34 sub_805BF34: push {lr} bl sub_807DB74 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805BF34 thumb_func_start sub_805BF40 sub_805BF40: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 str r0, [sp, 0x4] str r1, [sp, 0x8] movs r0, 0 str r0, [sp, 0x10] adds r0, r1, 0 bl sub_8045128 adds r4, r0, 0 bl sub_80441BC lsls r0, 24 cmp r0, 0 beq _0805BF78 ldr r0, _0805BF74 ldr r1, [r0] ldr r0, [sp, 0x4] bl sub_80522A8 movs r0, 0 b _0805C06A .align 2, 0 _0805BF74: .4byte gUnknown_80FD1EC _0805BF78: ldrb r0, [r4, 0x9] cmp r0, 0xFF bne _0805BFAC ldr r2, [sp, 0x8] movs r3, 0x4 ldrsh r1, [r2, r3] ldr r0, _0805BFA4 ldr r0, [r0] ldr r4, _0805BFA8 adds r0, r4 ldrb r0, [r0] subs r2, r1, r0 ldr r3, [sp, 0x8] movs r4, 0x6 ldrsh r1, [r3, r4] subs r1, r0 str r1, [sp, 0xC] adds r1, r2, r0 mov r10, r1 ldr r3, [sp, 0xC] adds r7, r3, r0 b _0805BFDA .align 2, 0 _0805BFA4: .4byte gUnknown_203B418 _0805BFA8: .4byte 0x00018209 _0805BFAC: ldr r2, _0805C050 ldrb r1, [r4, 0x9] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 ldr r4, _0805C054 adds r0, r4 ldr r1, [r2] adds r1, r0 movs r2, 0x2 ldrsh r0, [r1, r2] subs r2, r0, 0x1 movs r3, 0x4 ldrsh r0, [r1, r3] subs r0, 0x1 str r0, [sp, 0xC] movs r4, 0x6 ldrsh r0, [r1, r4] adds r0, 0x1 mov r10, r0 movs r3, 0x8 ldrsh r0, [r1, r3] adds r7, r0, 0x1 _0805BFDA: adds r6, r2, 0 cmp r6, r10 bgt _0805C034 _0805BFE0: ldr r5, [sp, 0xC] adds r4, r6, 0x1 mov r9, r4 cmp r5, r7 bgt _0805C02E lsls r0, r6, 16 lsrs r0, 16 mov r8, r0 _0805BFF0: adds r0, r6, 0 adds r1, r5, 0 bl sub_8049590 ldr r4, [r0, 0x14] cmp r4, 0 beq _0805C028 adds r0, r4, 0 bl sub_80450F8 cmp r0, 0x2 bne _0805C028 adds r0, r4, 0 bl sub_8045104 ldrb r0, [r0] cmp r0, 0x11 beq _0805C028 lsls r0, r5, 16 mov r1, r8 orrs r0, r1 str r0, [sp] mov r0, sp movs r1, 0 bl sub_807FE04 movs r2, 0x1 str r2, [sp, 0x10] _0805C028: adds r5, 0x1 cmp r5, r7 ble _0805BFF0 _0805C02E: mov r6, r9 cmp r6, r10 ble _0805BFE0 _0805C034: ldr r3, [sp, 0x10] cmp r3, 0 beq _0805C05C ldr r0, _0805C058 ldr r2, [r0] ldr r0, [sp, 0x4] ldr r1, [sp, 0x8] bl sub_80522F4 bl sub_8040A84 bl sub_8049ED4 b _0805C068 .align 2, 0 _0805C050: .4byte gUnknown_203B418 _0805C054: .4byte 0x000104c4 _0805C058: .4byte gUnknown_80FD1B0 _0805C05C: ldr r0, _0805C07C ldr r2, [r0] ldr r0, [sp, 0x4] ldr r1, [sp, 0x8] bl sub_80522F4 _0805C068: ldr r0, [sp, 0x10] _0805C06A: add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805C07C: .4byte gUnknown_80FD1CC thumb_func_end sub_805BF40 thumb_func_start sub_805C080 sub_805C080: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r5, r0, 0 mov r9, r1 movs r0, 0 mov r8, r0 ldr r0, [r5, 0x70] ldrb r0, [r0, 0x6] cmp r0, 0 beq _0805C0AC ldr r0, _0805C0A4 ldr r0, [r0] ldr r1, _0805C0A8 adds r0, r1 movs r1, 0x10 b _0805C0BA .align 2, 0 _0805C0A4: .4byte gUnknown_203B418 _0805C0A8: .4byte 0x0001358c _0805C0AC: ldr r0, _0805C11C ldr r0, [r0] ldr r1, _0805C120 adds r0, r1 movs r1, 0x4 cmp r1, 0 beq _0805C0FA _0805C0BA: adds r6, r0, 0 adds r7, r1, 0 _0805C0BE: ldr r4, [r6] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0805C0F2 cmp r5, r4 beq _0805C0F2 adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x1 movs r3, 0 bl sub_8071598 lsls r0, 24 cmp r0, 0 bne _0805C0F2 adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x2 adds r3, r5, 0x4 bl sub_807D148 movs r0, 0x1 mov r8, r0 _0805C0F2: adds r6, 0x4 subs r7, 0x1 cmp r7, 0 bne _0805C0BE _0805C0FA: mov r1, r8 cmp r1, 0 bne _0805C10C ldr r0, _0805C124 ldr r2, [r0] adds r0, r5, 0 mov r1, r9 bl sub_80522F4 _0805C10C: mov r0, r8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805C11C: .4byte gUnknown_203B418 _0805C120: .4byte 0x0001357c _0805C124: .4byte gUnknown_81004F0 thumb_func_end sub_805C080 thumb_func_start sub_805C128 sub_805C128: push {lr} adds r1, r0, 0 bl sub_807885C movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805C128 thumb_func_start sub_805C138 sub_805C138: push {r4-r6,lr} mov r6, r10 mov r5, r9 mov r4, r8 push {r4-r6} sub sp, 0x1C mov r9, r0 mov r10, r1 adds r6, r2, 0 mov r8, r3 movs r5, 0 add r0, sp, 0x18 strb r5, [r0] adds r0, r6, 0 bl sub_8092B00 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r6, 0 mov r1, r8 bl sub_8057600 lsls r0, 16 asrs r0, 16 ldr r2, _0805C1AC add r1, sp, 0x18 str r1, [sp] str r4, [sp, 0x4] str r0, [sp, 0x8] str r5, [sp, 0xC] movs r0, 0x1 str r0, [sp, 0x10] str r5, [sp, 0x14] mov r0, r9 mov r1, r10 movs r3, 0x1 bl sub_806F370 add r1, sp, 0x18 movs r2, 0 adds r0, r1, 0 ldrb r0, [r0] cmp r0, 0 bne _0805C194 movs r2, 0x1 _0805C194: strb r2, [r1] add r0, sp, 0x18 ldrb r0, [r0] add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0805C1AC: .4byte 0x0000270f thumb_func_end sub_805C138 thumb_func_start sub_805C1B0 sub_805C1B0: push {lr} bl sub_80790C8 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805C1B0 thumb_func_start sub_805C1BC sub_805C1BC: push {r4,r5,lr} sub sp, 0x4 ldr r4, _0805C1E0 movs r5, 0 ldrsh r4, [r4, r5] str r3, [sp] adds r3, r4, 0 bl sub_8055864 adds r1, r0, 0 negs r0, r1 orrs r0, r1 lsrs r0, 31 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805C1E0: .4byte gUnknown_80F4F80 thumb_func_end sub_805C1BC thumb_func_start sub_805C1E4 sub_805C1E4: push {lr} ldr r2, _0805C1F4 ldr r2, [r2] bl sub_80522F4 movs r0, 0 pop {r1} bx r1 .align 2, 0 _0805C1F4: .4byte gUnknown_80FD454 thumb_func_end sub_805C1E4 thumb_func_start sub_805C1F8 sub_805C1F8: push {lr} movs r2, 0x1 bl sub_8077BB4 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805C1F8 thumb_func_start sub_805C208 sub_805C208: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C adds r7, r0, 0 mov r9, r1 adds r6, r2, 0 mov r8, r3 movs r5, 0 add r0, sp, 0x18 strb r5, [r0] ldr r0, [r1, 0x70] movs r1, 0x4 ldrsh r0, [r0, r1] bl sub_808DB90 mov r10, r0 adds r0, r6, 0 bl sub_8092B00 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r6, 0 mov r1, r8 bl sub_8057600 lsls r0, 16 asrs r0, 16 add r1, sp, 0x18 str r1, [sp] str r4, [sp, 0x4] str r0, [sp, 0x8] str r5, [sp, 0xC] movs r0, 0x1 str r0, [sp, 0x10] str r5, [sp, 0x14] adds r0, r7, 0 mov r1, r9 mov r2, r10 movs r3, 0x1 bl sub_806F370 add r1, sp, 0x18 movs r2, 0 adds r0, r1, 0 ldrb r0, [r0] cmp r0, 0 bne _0805C270 movs r2, 0x1 _0805C270: strb r2, [r1] add r0, sp, 0x18 ldrb r0, [r0] add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_805C208 thumb_func_start sub_805C288 sub_805C288: push {lr} ldr r2, _0805C29C movs r3, 0 ldrsh r2, [r2, r3] movs r3, 0 bl sub_8078A58 movs r0, 0x1 pop {r1} bx r1 .align 2, 0 _0805C29C: .4byte gUnknown_80F4FC6 thumb_func_end sub_805C288 thumb_func_start sub_805C2A0 sub_805C2A0: push {lr} bl sub_807DC68 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805C2A0 thumb_func_start sub_805C2AC sub_805C2AC: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 mov r8, r0 adds r7, r1, 0 movs r0, 0 mov r9, r0 ldr r5, [r7, 0x70] bl sub_80441BC lsls r0, 24 cmp r0, 0 beq _0805C2DC ldr r0, _0805C2D8 ldr r1, [r0] mov r0, r8 bl sub_80522A8 movs r0, 0 b _0805C3CA .align 2, 0 _0805C2D8: .4byte gUnknown_80FD0B8 _0805C2DC: ldr r4, _0805C3A0 adds r3, r5, 0 adds r3, 0x46 ldrb r0, [r3] lsls r0, 2 adds r0, r4 ldrh r0, [r0] ldrh r1, [r7, 0x4] adds r0, r1 lsls r0, 16 lsrs r0, 16 ldr r2, _0805C3A4 ldr r1, [sp] ands r1, r2 orrs r1, r0 str r1, [sp] ldrb r0, [r3] lsls r0, 2 adds r0, r4 ldrh r0, [r0, 0x2] ldrh r2, [r7, 0x6] adds r0, r2 lsls r0, 16 ldr r2, _0805C3A8 ands r1, r2 orrs r1, r0 str r1, [sp] mov r4, sp mov r0, sp bl sub_8042A54 mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0x2 ldrsh r1, [r4, r2] bl sub_8049590 adds r2, r0, 0 ldrh r1, [r2] movs r0, 0x3 ands r0, r1 cmp r0, 0x2 bne _0805C36C ldr r0, _0805C3AC ands r0, r1 movs r1, 0x1 orrs r0, r1 strh r0, [r2] movs r5, 0x1 negs r5, r5 mov r6, sp _0805C344: movs r4, 0x1 negs r4, r4 _0805C348: movs r1, 0 ldrsh r0, [r6, r1] adds r0, r4 movs r2, 0x2 ldrsh r1, [r6, r2] adds r1, r5 bl sub_80498A8 adds r4, 0x1 cmp r4, 0x1 ble _0805C348 adds r5, 0x1 cmp r5, 0x1 ble _0805C344 movs r0, 0x1 mov r9, r0 bl sub_806CF60 _0805C36C: movs r5, 0 _0805C36E: movs r4, 0 adds r6, r5, 0x1 _0805C372: adds r0, r4, 0 adds r1, r5, 0 bl sub_8049BB0 adds r4, 0x1 cmp r4, 0x37 ble _0805C372 adds r5, r6, 0 cmp r5, 0x1F ble _0805C36E mov r1, r9 cmp r1, 0 beq _0805C3B4 mov r0, sp bl sub_8042A64 ldr r0, _0805C3B0 ldr r2, [r0] mov r0, r8 adds r1, r7, 0 bl sub_80522F4 b _0805C3C0 .align 2, 0 _0805C3A0: .4byte gUnknown_80F4448 _0805C3A4: .4byte 0xffff0000 _0805C3A8: .4byte 0x0000ffff _0805C3AC: .4byte 0x0000fffc _0805C3B0: .4byte gUnknown_80FD0B4 _0805C3B4: ldr r0, _0805C3D8 ldr r2, [r0] mov r0, r8 adds r1, r7, 0 bl sub_80522F4 _0805C3C0: bl sub_8040A84 bl sub_8049ED4 mov r0, r9 _0805C3CA: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805C3D8: .4byte gUnknown_80FD0B8 thumb_func_end sub_805C2AC thumb_func_start sub_805C3DC sub_805C3DC: push {lr} ldr r0, [r1, 0x70] ldrb r0, [r0, 0x6] movs r2, 0x1 cmp r0, 0 beq _0805C3EA movs r2, 0x2 _0805C3EA: adds r0, r1, 0x4 movs r1, 0x14 bl sub_807FC3C movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805C3DC thumb_func_start sub_805C3F8 sub_805C3F8: push {r4,r5,lr} sub sp, 0x8 adds r5, r0, 0 adds r4, r1, 0 ldr r0, [r4, 0x4] str r0, [sp, 0x4] ldr r0, [r4, 0x70] adds r0, 0xA4 ldrb r1, [r0] cmp r1, 0 bne _0805C442 adds r0, r4, 0 adds r0, 0x20 strb r1, [r0] movs r0, 0 bl sub_803D73C adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 mov r0, sp movs r2, 0 bl sub_8045C28 add r1, sp, 0x4 adds r0, r5, 0 mov r2, sp bl sub_80464C8 movs r1, 0x86 lsls r1, 2 adds r0, r4, 0 adds r2, r5, 0 bl sub_8068FE0 movs r0, 0x1 b _0805C450 _0805C442: ldr r0, _0805C458 ldr r2, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_80522F4 movs r0, 0 _0805C450: add sp, 0x8 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805C458: .4byte gUnknown_80FF678 thumb_func_end sub_805C3F8 thumb_func_start sub_805C45C sub_805C45C: push {lr} bl sub_807F43C movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805C45C thumb_func_start sub_805C468 sub_805C468: push {lr} bl sub_8078F50 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805C468 thumb_func_start sub_805C474 sub_805C474: push {lr} bl sub_8077E4C movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805C474 thumb_func_start sub_805C480 sub_805C480: push {lr} bl sub_8079570 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805C480 thumb_func_start sub_805C48C sub_805C48C: push {lr} bl sub_80795C4 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805C48C thumb_func_start sub_805C498 sub_805C498: push {r4-r6,lr} adds r5, r0, 0 ldr r2, [r5, 0x70] ldrh r0, [r1, 0x2] subs r1, r0, 0x7 ldr r0, _0805C4B8 cmp r1, r0 bls _0805C4AC bl _0805CEA8 _0805C4AC: lsls r0, r1, 2 ldr r1, _0805C4BC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0805C4B8: .4byte 0x0000018f _0805C4BC: .4byte _0805C4C0 .align 2, 0 _0805C4C0: .4byte _0805CDE8 .4byte _0805CCE4 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CC70 .4byte _0805CEA8 .4byte _0805CB00 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CB0C .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CB12 .4byte _0805CEA8 .4byte _0805CB18 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CDE8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CD48 .4byte _0805CEA8 .4byte _0805CB12 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CB1E .4byte _0805CD8A .4byte _0805CEA8 .4byte _0805CB40 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CB46 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CB40 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CCA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CB4C .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CB56 .4byte _0805CB5C .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CD50 .4byte _0805CEA8 .4byte _0805CB62 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CB72 .4byte _0805CEA8 .4byte _0805CB80 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CC94 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CC7C .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CD90 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CCD8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CD64 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CB94 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CD96 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CDF4 .4byte _0805CE00 .4byte _0805CB40 .4byte _0805CDE8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CB1E .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CB40 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CD20 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CDD2 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CC88 .4byte _0805CEA8 .4byte _0805CD9C .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CCC2 .4byte _0805CB9A .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CBBA .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CBD0 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CBDA .4byte _0805CB24 .4byte _0805CB40 .4byte _0805CB8E .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CBE0 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CDE8 .4byte _0805CDE8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CDB0 .4byte _0805CEA8 .4byte _0805CDE8 .4byte _0805CEA8 .4byte _0805CBF0 .4byte _0805CEA8 .4byte _0805CC18 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CDBC .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CC54 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CC62 .4byte _0805CB40 .4byte _0805CEA8 .4byte _0805CD50 .4byte _0805CC62 .4byte _0805CEA8 .4byte _0805CD34 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CC1E .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CC24 .4byte _0805CBDA .4byte _0805CEA8 .4byte _0805CDCA .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CB1E .4byte _0805CDDC .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CC32 .4byte _0805CEA8 .4byte _0805CB46 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CC38 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CB56 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CCB6 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CDE8 .4byte _0805CDE8 .4byte _0805CDE8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CDE8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CD74 .4byte _0805CEA8 .4byte _0805CD50 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CD06 .4byte _0805CEA8 .4byte _0805CC9A .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CDE8 _0805CB00: adds r0, r5, 0 bl sub_807E580 lsls r0, 24 lsrs r0, 24 b _0805CC5A _0805CB0C: adds r0, r2, 0 adds r0, 0xC0 b _0805CDF8 _0805CB12: adds r0, r2, 0 adds r0, 0xC4 b _0805CCAC _0805CB18: adds r0, r2, 0 adds r0, 0xC4 b _0805CB76 _0805CB1E: movs r1, 0x1C ldrsh r0, [r2, r1] b _0805CDD6 _0805CB24: movs r3, 0x1C ldrsh r0, [r2, r3] cmp r0, 0x13 bgt _0805CB6E movs r1, 0x9E lsls r1, 1 adds r0, r2, r1 ldr r0, [r0] bl sub_8094450 cmp r0, 0 ble _0805CB3E b _0805CEA8 _0805CB3E: b _0805CB6E _0805CB40: movs r3, 0x20 ldrsh r0, [r2, r3] b _0805CDD6 _0805CB46: adds r0, r2, 0 adds r0, 0xC0 b _0805CC9E _0805CB4C: ldr r0, [r5, 0x70] movs r2, 0x82 lsls r2, 1 adds r0, r2 b _0805CC4A _0805CB56: adds r0, r2, 0 adds r0, 0xDC b _0805CC9E _0805CB5C: movs r3, 0x20 ldrsh r0, [r2, r3] b _0805CDCE _0805CB62: adds r0, r2, 0 adds r0, 0xC4 ldrb r0, [r0] cmp r0, 0x9 beq _0805CB6E b _0805CEA8 _0805CB6E: movs r0, 0 b _0805CEAA _0805CB72: adds r0, r2, 0 adds r0, 0xC0 _0805CB76: ldrb r0, [r0] cmp r0, 0xB beq _0805CB7E b _0805CEA8 _0805CB7E: b _0805CB6E _0805CB80: adds r0, r2, 0 adds r0, 0xC4 ldrb r0, [r0] cmp r0, 0xE beq _0805CB8C b _0805CEA8 _0805CB8C: b _0805CB6E _0805CB8E: adds r0, r2, 0 adds r0, 0xC4 b _0805CDE0 _0805CB94: movs r3, 0x26 ldrsh r0, [r2, r3] b _0805CDD6 _0805CB9A: adds r0, r2, 0 adds r0, 0xB0 ldrb r0, [r0] cmp r0, 0x5 beq _0805CB6E movs r1, 0x10 ldrsh r0, [r2, r1] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 movs r3, 0xE ldrsh r1, [r2, r3] cmp r0, r1 blt _0805CBB8 b _0805CEA8 _0805CBB8: b _0805CB6E _0805CBBA: movs r0, 0x10 ldrsh r1, [r2, r0] movs r3, 0xE ldrsh r0, [r2, r3] cmp r1, r0 ble _0805CB6E movs r1, 0x89 lsls r1, 1 adds r0, r2, r1 ldrb r0, [r0] b _0805CDC4 _0805CBD0: movs r3, 0x89 lsls r3, 1 adds r0, r2, r3 ldrb r0, [r0] b _0805CDC4 _0805CBDA: adds r0, r2, 0 adds r0, 0xDC b _0805CDE0 _0805CBE0: movs r1, 0x1C ldrsh r0, [r2, r1] cmp r0, 0x13 bgt _0805CBEA b _0805CEA8 _0805CBEA: movs r3, 0x20 ldrsh r0, [r2, r3] b _0805CDD6 _0805CBF0: ldr r1, _0805CC0C ldr r0, _0805CC10 ldr r0, [r0] ldr r2, _0805CC14 adds r0, r2 movs r3, 0 ldrsh r0, [r0, r3] adds r0, r1 ldrb r1, [r0] adds r0, r5, 0 bl sub_8071858 b _0805CDEC .align 2, 0 _0805CC0C: .4byte gUnknown_80F561C _0805CC10: .4byte gUnknown_203B418 _0805CC14: .4byte 0x00003a0e _0805CC18: movs r1, 0x1E ldrsh r0, [r2, r1] b _0805CDD6 _0805CC1E: adds r0, r2, 0 adds r0, 0xD0 b _0805CDB4 _0805CC24: adds r0, r2, 0 adds r0, 0xC4 ldrb r0, [r0] cmp r0, 0x8 beq _0805CC30 b _0805CEA8 _0805CC30: b _0805CB6E _0805CC32: adds r0, r2, 0 adds r0, 0xC4 b _0805CC9E _0805CC38: movs r3, 0x1C ldrsh r0, [r2, r3] cmp r0, 0x13 bgt _0805CC42 b _0805CEA8 _0805CC42: ldr r0, [r5, 0x70] movs r1, 0x82 lsls r1, 1 adds r0, r1 _0805CC4A: ldr r0, [r0] cmp r0, 0x3 bgt _0805CC52 b _0805CEA8 _0805CC52: b _0805CB6E _0805CC54: adds r0, r2, 0 adds r0, 0xC4 ldrb r0, [r0] _0805CC5A: cmp r0, 0x5 beq _0805CC60 b _0805CEA8 _0805CC60: b _0805CB6E _0805CC62: adds r0, r2, 0 adds r0, 0xC4 ldrb r0, [r0] cmp r0, 0x7 beq _0805CC6E b _0805CEA8 _0805CC6E: b _0805CB6E _0805CC70: adds r0, r5, 0 bl sub_807E580 lsls r0, 24 lsrs r0, 24 b _0805CCAE _0805CC7C: adds r0, r5, 0 bl sub_807E580 lsls r0, 24 lsrs r0, 24 b _0805CDB6 _0805CC88: adds r0, r5, 0 bl sub_807E580 lsls r0, 24 lsrs r0, 24 b _0805CCA0 _0805CC94: adds r0, r2, 0 adds r0, 0xC4 b _0805CDB4 _0805CC9A: adds r0, r2, 0 adds r0, 0xE4 _0805CC9E: ldrb r0, [r0] _0805CCA0: cmp r0, 0x1 beq _0805CCA6 b _0805CEA8 _0805CCA6: b _0805CB6E _0805CCA8: adds r0, r2, 0 adds r0, 0xDC _0805CCAC: ldrb r0, [r0] _0805CCAE: cmp r0, 0x4 beq _0805CCB4 b _0805CEA8 _0805CCB4: b _0805CB6E _0805CCB6: adds r0, r2, 0 adds r0, 0x60 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 b _0805CDEE _0805CCC2: adds r0, r5, 0 bl sub_8070B48 lsls r0, 24 cmp r0, 0 beq _0805CCD0 b _0805CEA8 _0805CCD0: adds r0, r5, 0 bl sub_8070A58 b _0805CDC2 _0805CCD8: adds r0, r5, 0 bl sub_8045128 bl sub_804AF20 b _0805CDEC _0805CCE4: adds r0, r5, 0 bl sub_8045128 adds r4, r0, 0 bl sub_804AF20 lsls r0, 24 cmp r0, 0 bne _0805CCF8 b _0805CB6E _0805CCF8: ldrh r1, [r4] movs r0, 0x3 ands r0, r1 cmp r0, 0x1 bne _0805CD04 b _0805CEA8 _0805CD04: b _0805CB6E _0805CD06: adds r0, r5, 0 bl sub_8045128 ldr r0, [r0, 0x14] cmp r0, 0 bne _0805CD14 b _0805CB6E _0805CD14: bl sub_80450F8 cmp r0, 0x2 bne _0805CD1E b _0805CEA8 _0805CD1E: b _0805CB6E _0805CD20: ldr r0, _0805CD2C ldr r0, [r0] ldr r2, _0805CD30 adds r0, r2 ldrb r0, [r0] b _0805CDEE .align 2, 0 _0805CD2C: .4byte gUnknown_203B418 _0805CD30: .4byte 0x0000e277 _0805CD34: ldr r0, _0805CD40 ldr r0, [r0] ldr r3, _0805CD44 adds r0, r3 ldrb r0, [r0] b _0805CDEE .align 2, 0 _0805CD40: .4byte gUnknown_203B418 _0805CD44: .4byte 0x0000e278 _0805CD48: adds r0, r2, 0 adds r0, 0xF4 ldrb r0, [r0] b _0805CDEE _0805CD50: ldr r0, _0805CD5C ldr r0, [r0] ldr r1, _0805CD60 adds r0, r1 ldrb r0, [r0] b _0805CDEE .align 2, 0 _0805CD5C: .4byte gUnknown_203B418 _0805CD60: .4byte 0x000037fc _0805CD64: movs r3, 0x89 lsls r3, 1 adds r0, r2, r3 ldrb r0, [r0] cmp r0, 0x2 bhi _0805CD72 b _0805CEA8 _0805CD72: b _0805CB6E _0805CD74: adds r0, r2, 0 adds r0, 0x60 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0805CD84 b _0805CEA8 _0805CD84: movs r0, 0x8 ands r0, r1 b _0805CDC4 _0805CD8A: movs r1, 0x26 ldrsh r0, [r2, r1] b _0805CDD6 _0805CD90: movs r3, 0x1E ldrsh r0, [r2, r3] b _0805CDD6 _0805CD96: movs r1, 0x1C ldrsh r0, [r2, r1] b _0805CDD6 _0805CD9C: ldrb r0, [r2, 0x6] cmp r0, 0 beq _0805CDA4 b _0805CB6E _0805CDA4: adds r0, r2, 0 adds r0, 0xC4 ldrb r0, [r0] cmp r0, 0x6 bne _0805CEA8 b _0805CB6E _0805CDB0: adds r0, r2, 0 adds r0, 0xE4 _0805CDB4: ldrb r0, [r0] _0805CDB6: cmp r0, 0x2 bne _0805CEA8 b _0805CB6E _0805CDBC: adds r0, r5, 0x4 bl sub_807FC80 _0805CDC2: lsls r0, 24 _0805CDC4: cmp r0, 0 bne _0805CEA8 b _0805CB6E _0805CDCA: movs r3, 0x1E ldrsh r0, [r2, r3] _0805CDCE: cmp r0, 0x13 ble _0805CEA8 _0805CDD2: movs r1, 0x22 ldrsh r0, [r2, r1] _0805CDD6: cmp r0, 0x13 ble _0805CEA8 b _0805CB6E _0805CDDC: adds r0, r2, 0 adds r0, 0xC8 _0805CDE0: ldrb r0, [r0] cmp r0, 0x3 bne _0805CEA8 b _0805CB6E _0805CDE8: bl sub_80441BC _0805CDEC: lsls r0, 24 _0805CDEE: cmp r0, 0 beq _0805CEA8 b _0805CB6E _0805CDF4: adds r0, r2, 0 adds r0, 0xC4 _0805CDF8: ldrb r0, [r0] cmp r0, 0xC bne _0805CEA8 b _0805CB6E _0805CE00: ldrb r0, [r2, 0x6] cmp r0, 0 beq _0805CE5C movs r6, 0 _0805CE08: ldr r0, _0805CE54 ldr r0, [r0] lsls r1, r6, 2 ldr r2, _0805CE58 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0805CE46 cmp r4, r5 beq _0805CE46 adds r0, r5, 0 adds r1, r4, 0 bl sub_8045990 lsls r0, 24 cmp r0, 0 beq _0805CE46 ldr r1, [r4, 0x70] movs r3, 0x1C ldrsh r0, [r1, r3] cmp r0, 0x13 bgt _0805CE46 movs r2, 0x1E ldrsh r0, [r1, r2] cmp r0, 0x13 ble _0805CE4C _0805CE46: adds r6, 0x1 cmp r6, 0xF ble _0805CE08 _0805CE4C: cmp r6, 0x10 bne _0805CEA8 b _0805CB6E .align 2, 0 _0805CE54: .4byte gUnknown_203B418 _0805CE58: .4byte 0x0001358c _0805CE5C: movs r6, 0 _0805CE5E: ldr r0, _0805CEB0 ldr r0, [r0] lsls r1, r6, 2 ldr r3, _0805CEB4 adds r0, r3 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0805CE9C cmp r4, r5 beq _0805CE9C adds r0, r5, 0 adds r1, r4, 0 bl sub_8045990 lsls r0, 24 cmp r0, 0 beq _0805CE9C ldr r1, [r4, 0x70] movs r2, 0x1C ldrsh r0, [r1, r2] cmp r0, 0x13 bgt _0805CE9C movs r3, 0x1E ldrsh r0, [r1, r3] cmp r0, 0x13 ble _0805CEA2 _0805CE9C: adds r6, 0x1 cmp r6, 0x3 ble _0805CE5E _0805CEA2: cmp r6, 0x4 bne _0805CEA8 b _0805CB6E _0805CEA8: movs r0, 0x1 _0805CEAA: pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0805CEB0: .4byte gUnknown_203B418 _0805CEB4: .4byte 0x0001357c thumb_func_end sub_805C498 thumb_func_start sub_805CEB8 sub_805CEB8: push {r4-r7,lr} mov r7, r8 push {r7} mov r8, r0 adds r6, r1, 0 adds r7, r2, 0 ldr r5, [r0, 0x70] ldr r4, [r6, 0x70] adds r0, r4, 0 adds r0, 0xB0 ldrb r0, [r0] cmp r0, 0x1 bne _0805CEE0 adds r0, r7, 0 bl sub_8092C3C lsls r0, 24 cmp r0, 0 beq _0805CEE0 b _0805D540 _0805CEE0: ldrh r0, [r7, 0x2] subs r2, r0, 0x3 ldr r0, _0805CEF8 cmp r2, r0 bls _0805CEEE bl _0805D802 _0805CEEE: lsls r0, r2, 2 ldr r1, _0805CEFC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0805CEF8: .4byte 0x0000017b _0805CEFC: .4byte _0805CF00 .align 2, 0 _0805CF00: .4byte _0805D4FA .4byte _0805D4F0 .4byte _0805D50E .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D516 .4byte _0805D51C .4byte _0805D802 .4byte _0805D7F6 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D520 .4byte _0805D802 .4byte _0805D802 .4byte _0805D52C .4byte _0805D532 .4byte _0805D544 .4byte _0805D55A .4byte _0805D7F6 .4byte _0805D802 .4byte _0805D802 .4byte _0805D566 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D56A .4byte _0805D4F0 .4byte _0805D570 .4byte _0805D802 .4byte _0805D57E .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D584 .4byte _0805D802 .4byte _0805D7F6 .4byte _0805D802 .4byte _0805D596 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D59C .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D5C8 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D5D0 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D4F0 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D5E2 .4byte _0805D4F0 .4byte _0805D5E8 .4byte _0805D5F8 .4byte _0805D802 .4byte _0805D5FE .4byte _0805D5F8 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D55A .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D4F0 .4byte _0805D662 .4byte _0805D802 .4byte _0805D802 .4byte _0805D668 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D5DC .4byte _0805D802 .4byte _0805D5C8 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D7AC .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D704 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D704 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D7F6 .4byte _0805D70A .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D7F6 .4byte _0805D5C8 .4byte _0805D802 .4byte _0805D5F8 .4byte _0805D802 .4byte _0805D7E4 .4byte _0805D7DC .4byte _0805D802 .4byte _0805D7E4 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D716 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D740 .4byte _0805D802 .4byte _0805D802 .4byte _0805D74A .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D5DC .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D4F0 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D75C .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D734 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D782 .4byte _0805D740 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D704 .4byte _0805D7F6 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D5C8 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D7A0 .4byte _0805D7CA .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D78A .4byte _0805D59C .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D7BE .4byte _0805D7AC .4byte _0805D802 .4byte _0805D794 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D55A .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D782 .4byte _0805D802 .4byte _0805D802 .4byte _0805D7F6 _0805D4F0: adds r0, r6, 0 bl sub_8070B28 lsls r0, 24 b _0805D7A6 _0805D4FA: adds r0, r4, 0 adds r0, 0xA8 ldrb r0, [r0] cmp r0, 0x4 beq _0805D540 adds r0, r6, 0 bl sub_8070B28 lsls r0, 24 b _0805D7A6 _0805D50E: adds r0, r4, 0 adds r0, 0xA8 ldrb r0, [r0] b _0805D7F0 _0805D516: movs r1, 0x26 ldrsh r0, [r4, r1] b _0805D744 _0805D51C: ldr r0, [r4, 0x2C] b _0805D58E _0805D520: adds r0, r4, 0 adds r0, 0xBC ldrb r0, [r0] cmp r0, 0x6 beq _0805D540 b _0805D7AC _0805D52C: movs r3, 0xE ldrsh r0, [r4, r3] b _0805D78E _0805D532: movs r7, 0xE ldrsh r1, [r4, r7] movs r2, 0xE ldrsh r0, [r5, r2] cmp r1, r0 ble _0805D540 b _0805D802 _0805D540: movs r0, 0 b _0805D804 _0805D544: movs r3, 0x8C lsls r3, 1 adds r4, r3 adds r0, r4, 0 bl sub_805D810 lsls r0, 24 cmp r0, 0 bne _0805D540 adds r0, r4, 0 b _0805D7B2 _0805D55A: ldr r0, [r6, 0x70] movs r7, 0x82 lsls r7, 1 adds r0, r7 ldr r0, [r0] b _0805D744 _0805D566: ldr r0, [r4, 0x34] b _0805D58E _0805D56A: movs r1, 0x22 ldrsh r0, [r4, r1] b _0805D744 _0805D570: movs r2, 0x8C lsls r2, 1 adds r0, r4, r2 bl sub_805D850 lsls r0, 24 b _0805D7A6 _0805D57E: adds r0, r4, 0 adds r0, 0xDC b _0805D7FA _0805D584: ldr r0, [r4, 0x2C] cmp r0, 0x3E ble _0805D58C b _0805D802 _0805D58C: ldr r0, [r4, 0x30] _0805D58E: cmp r0, 0x3E ble _0805D594 b _0805D802 _0805D594: b _0805D540 _0805D596: adds r0, r4, 0 adds r0, 0xAC b _0805D798 _0805D59C: adds r0, r4, 0 adds r0, 0x5C ldrb r0, [r0] cmp r0, 0xE beq _0805D5B0 adds r0, r4, 0 adds r0, 0x5D ldrb r0, [r0] cmp r0, 0xE bne _0805D5BC _0805D5B0: adds r0, r4, 0 adds r0, 0xF5 ldrb r0, [r0] cmp r0, 0 bne _0805D5BC b _0805D802 _0805D5BC: movs r3, 0x26 ldrsh r0, [r4, r3] cmp r0, 0xA ble _0805D5C6 b _0805D802 _0805D5C6: b _0805D540 _0805D5C8: adds r0, r4, 0 adds r0, 0xAC ldrb r0, [r0] b _0805D7D6 _0805D5D0: movs r7, 0xE ldrsh r0, [r4, r7] movs r2, 0xE ldrsh r1, [r5, r2] subs r0, r1 b _0805D744 _0805D5DC: movs r3, 0x20 ldrsh r0, [r4, r3] b _0805D744 _0805D5E2: movs r7, 0x22 ldrsh r0, [r4, r7] b _0805D744 _0805D5E8: movs r1, 0x1C ldrsh r0, [r4, r1] cmp r0, 0 ble _0805D5F2 b _0805D802 _0805D5F2: movs r2, 0x20 ldrsh r0, [r4, r2] b _0805D744 _0805D5F8: adds r0, r4, 0 adds r0, 0xB0 b _0805D7FA _0805D5FE: movs r6, 0 adds r2, r4, 0 adds r2, 0x1C movs r3, 0x1C ldrsh r0, [r4, r3] cmp r0, 0x9 ble _0805D6FC adds r1, r4, 0 adds r1, 0x20 movs r7, 0x20 ldrsh r0, [r4, r7] cmp r0, 0x9 ble _0805D6FC adds r3, r1, 0 movs r5, 0 _0805D61C: adds r0, r4, 0 adds r0, 0x24 adds r0, r5 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0x9 ble _0805D6FC lsls r1, r6, 2 adds r0, r4, 0 adds r0, 0x2C adds r0, r1 ldr r0, [r0] cmp r0, 0xFF ble _0805D6FC adds r0, r4, 0 adds r0, 0x34 adds r0, r1 ldr r0, [r0] cmp r0, 0xFF ble _0805D6FC adds r3, 0x2 adds r2, 0x2 adds r5, 0x2 adds r6, 0x1 cmp r6, 0x1 bgt _0805D6FC movs r7, 0 ldrsh r0, [r2, r7] cmp r0, 0x9 ble _0805D6FC movs r1, 0 ldrsh r0, [r3, r1] cmp r0, 0x9 bgt _0805D61C b _0805D6FC _0805D662: adds r0, r4, 0 adds r0, 0xA8 b _0805D7FA _0805D668: movs r6, 0 adds r3, r5, 0 adds r3, 0x1C adds r2, r4, 0 adds r2, 0x1C movs r7, 0x1C ldrsh r1, [r5, r7] movs r7, 0x1C ldrsh r0, [r4, r7] cmp r1, r0 blt _0805D6FC mov r12, r2 mov r8, r3 movs r3, 0 _0805D684: adds r1, r5, 0 adds r1, 0x20 adds r1, r3 adds r0, r4, 0 adds r0, 0x20 adds r0, r3 movs r2, 0 ldrsh r1, [r1, r2] movs r7, 0 ldrsh r0, [r0, r7] cmp r1, r0 blt _0805D6FC adds r1, r5, 0 adds r1, 0x24 adds r1, r3 adds r0, r4, 0 adds r0, 0x24 adds r0, r3 movs r2, 0 ldrsh r1, [r1, r2] movs r7, 0 ldrsh r0, [r0, r7] cmp r1, r0 blt _0805D6FC lsls r2, r6, 2 adds r1, r5, 0 adds r1, 0x2C adds r1, r2 adds r0, r4, 0 adds r0, 0x2C adds r0, r2 ldr r1, [r1] ldr r0, [r0] cmp r1, r0 blt _0805D6FC adds r1, r5, 0 adds r1, 0x34 adds r1, r2 adds r0, r4, 0 adds r0, 0x34 adds r0, r2 ldr r1, [r1] ldr r0, [r0] cmp r1, r0 blt _0805D6FC movs r0, 0x2 add r12, r0 add r8, r0 adds r3, 0x2 adds r6, 0x1 cmp r6, 0x1 bgt _0805D6FC mov r2, r8 movs r7, 0 ldrsh r1, [r2, r7] mov r2, r12 movs r7, 0 ldrsh r0, [r2, r7] cmp r1, r0 bge _0805D684 _0805D6FC: cmp r6, 0x2 beq _0805D702 b _0805D802 _0805D702: b _0805D540 _0805D704: movs r1, 0x24 ldrsh r0, [r4, r1] b _0805D744 _0805D70A: adds r0, r4, 0 adds r0, 0xBC ldrb r0, [r0] cmp r0, 0x5 bne _0805D802 b _0805D540 _0805D716: adds r0, r5, 0 adds r0, 0x60 ldrb r1, [r0] movs r2, 0x1 adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _0805D728 b _0805D540 _0805D728: adds r0, r4, 0 adds r0, 0x60 ldrb r1, [r0] adds r0, r2, 0 ands r0, r1 b _0805D7B8 _0805D734: adds r0, r4, 0 adds r0, 0x60 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 b _0805D7B8 _0805D740: movs r2, 0x1C ldrsh r0, [r4, r2] _0805D744: cmp r0, 0 bgt _0805D802 b _0805D540 _0805D74A: adds r0, r5, 0 adds r0, 0x5E adds r1, r4, 0 adds r1, 0x5E ldrh r0, [r0] ldrh r1, [r1] cmp r0, r1 bne _0805D802 b _0805D540 _0805D75C: mov r0, r8 movs r1, 0xE bl sub_8071858 lsls r0, 24 cmp r0, 0 beq _0805D770 adds r0, r4, 0 adds r0, 0xC8 b _0805D798 _0805D770: movs r3, 0x1C ldrsh r0, [r5, r3] cmp r0, 0x13 ble _0805D802 movs r7, 0x20 ldrsh r0, [r5, r7] cmp r0, 0x13 ble _0805D802 b _0805D540 _0805D782: adds r0, r4, 0 adds r0, 0xBC ldrb r0, [r0] b _0805D7F0 _0805D78A: movs r1, 0xE ldrsh r0, [r4, r1] _0805D78E: cmp r0, 0x1 bgt _0805D802 b _0805D540 _0805D794: adds r0, r4, 0 adds r0, 0xD0 _0805D798: ldrb r0, [r0] cmp r0, 0x1 bne _0805D802 b _0805D540 _0805D7A0: adds r0, r4, 0 adds r0, 0xFD ldrb r0, [r0] _0805D7A6: cmp r0, 0 beq _0805D802 b _0805D540 _0805D7AC: movs r2, 0x8C lsls r2, 1 adds r0, r4, r2 _0805D7B2: bl sub_805D888 lsls r0, 24 _0805D7B8: cmp r0, 0 bne _0805D802 b _0805D540 _0805D7BE: adds r0, r4, 0 adds r0, 0xBC ldrb r0, [r0] cmp r0, 0x7 bne _0805D802 b _0805D540 _0805D7CA: adds r0, r4, 0 adds r0, 0xB0 ldrb r0, [r0] cmp r0, 0x3 bne _0805D7D6 b _0805D540 _0805D7D6: cmp r0, 0x4 bne _0805D802 b _0805D540 _0805D7DC: adds r0, r4, 0 adds r0, 0xAC ldrb r0, [r0] b _0805D7F0 _0805D7E4: adds r0, r4, 0 adds r0, 0xAC ldrb r0, [r0] cmp r0, 0x2 bne _0805D7F0 b _0805D540 _0805D7F0: cmp r0, 0x3 bne _0805D802 b _0805D540 _0805D7F6: adds r0, r4, 0 adds r0, 0xBC _0805D7FA: ldrb r0, [r0] cmp r0, 0x2 bne _0805D802 b _0805D540 _0805D802: movs r0, 0x1 _0805D804: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_805CEB8 thumb_func_start sub_805D810 sub_805D810: push {r4-r6,lr} adds r4, r0, 0 movs r3, 0 movs r6, 0x1 movs r5, 0x20 adds r2, r4, 0 _0805D81C: ldrb r1, [r2] adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _0805D82E adds r0, r5, 0 ands r0, r1 cmp r0, 0 bne _0805D848 _0805D82E: adds r2, 0x8 adds r3, 0x1 cmp r3, 0x3 ble _0805D81C adds r0, r4, 0 adds r0, 0x20 ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _0805D848 movs r0, 0 b _0805D84A _0805D848: movs r0, 0x1 _0805D84A: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_805D810 thumb_func_start sub_805D850 sub_805D850: push {r4,r5,lr} movs r3, 0 movs r5, 0x1 adds r2, r0, 0 movs r4, 0x10 _0805D85A: ldrb r1, [r2] adds r0, r5, 0 ands r0, r1 cmp r0, 0 beq _0805D876 adds r0, r4, 0 ands r0, r1 cmp r0, 0 beq _0805D876 ldrb r0, [r2, 0x4] cmp r0, 0 bne _0805D876 movs r0, 0x1 b _0805D880 _0805D876: adds r2, 0x8 adds r3, 0x1 cmp r3, 0x3 ble _0805D85A movs r0, 0 _0805D880: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_805D850 thumb_func_start sub_805D888 sub_805D888: push {r4-r6,lr} adds r4, r0, 0 movs r3, 0 movs r6, 0x1 movs r5, 0x10 adds r2, r4, 0 _0805D894: ldrb r1, [r2] adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _0805D8A6 adds r0, r5, 0 ands r0, r1 cmp r0, 0 bne _0805D8C0 _0805D8A6: adds r2, 0x8 adds r3, 0x1 cmp r3, 0x3 ble _0805D894 adds r0, r4, 0 adds r0, 0x20 ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _0805D8C0 movs r0, 0 b _0805D8C2 _0805D8C0: movs r0, 0x1 _0805D8C2: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_805D888 thumb_func_start sub_805D8C8 sub_805D8C8: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x24 ldr r4, _0805D90C ldr r1, [r4] ldr r0, _0805D910 adds r0, r1, r0 str r0, [sp, 0x10] movs r2, 0x3 str r2, [sp, 0xC] movs r5, 0 movs r0, 0 strh r0, [r1, 0x12] bl sub_8083600 movs r1, 0x1 bl sub_806A2BC bl sub_8083600 bl sub_80701A4 lsls r0, 24 cmp r0, 0 beq _0805D928 movs r0, 0x3C movs r1, 0x10 bl sub_803E708 bl _0805E2B0 .align 2, 0 _0805D90C: .4byte gUnknown_203B418 _0805D910: .4byte 0x000181e8 _0805D914: mov r1, r8 adds r1, 0x44 movs r2, 0 movs r0, 0x2 strh r0, [r1] mov r0, r8 adds r0, 0x48 strb r2, [r0] bl _0805E2B0 _0805D928: ldr r0, [r4] ldr r3, _0805D9D4 adds r0, r3 strb r5, [r0] bl sub_8040A78 ldr r1, [r4] ldrb r0, [r1, 0x1] cmp r0, 0 beq _0805D976 strb r5, [r1, 0x1] bl sub_8083600 movs r1, 0x1 bl sub_8071518 lsls r0, 24 cmp r0, 0 bne _0805D976 movs r0, 0x1 bl sub_8044C10 bl sub_805E804 bl sub_8083600 bl sub_80647F0 bl sub_80048D0 bl sub_8004914 bl sub_805F1AC lsls r0, 16 cmp r0, 0 beq _0805D976 bl _0805E2B0 _0805D976: movs r0, 0x1 movs r1, 0x1 movs r2, 0x1 bl sub_806A914 _0805D980: bl sub_8083600 mov r10, r0 ldr r5, [r0, 0x70] mov r8, r5 movs r1, 0x2 ldrsh r0, [r5, r1] bl sub_80978C8 ldr r2, _0805D9D8 ldr r0, [r2] ldr r3, _0805D9DC adds r0, r3 ldrb r0, [r0] cmp r0, 0 beq _0805D9AE bl sub_805E874 lsls r0, 24 cmp r0, 0 bne _0805D914 bl sub_805E804 _0805D9AE: ldr r0, _0805D9E0 movs r1, 0 strb r1, [r0] ldr r0, _0805D9E4 strb r1, [r0] ldr r5, _0805D9D8 ldr r0, [r5] movs r1, 0xB8 lsls r1, 3 adds r0, r1 ldr r0, [r0] cmp r0, 0 bge _0805D9CA b _0805DAE8 _0805D9CA: ldr r0, _0805D9E8 ands r6, r0 movs r2, 0x1 orrs r6, r2 b _0805DAEC .align 2, 0 _0805D9D4: .4byte 0x00000673 _0805D9D8: .4byte gUnknown_203B418 _0805D9DC: .4byte 0x0000066c _0805D9E0: .4byte gUnknown_202F22D _0805D9E4: .4byte gUnknown_202F22C _0805D9E8: .4byte 0xffffff00 _0805D9EC: movs r0, 0x1 bl sub_8044C50 ldr r3, _0805DA00 ldr r0, [r3] ldr r5, _0805DA04 adds r0, r5 strb r4, [r0] b _0805E1AE .align 2, 0 _0805DA00: .4byte gUnknown_203B418 _0805DA04: .4byte 0x00000673 _0805DA08: ldr r0, _0805DA14 ldr r1, [r0] mov r0, r10 bl sub_80522A8 b _0805DBDA .align 2, 0 _0805DA14: .4byte gUnknown_80FD4B0 _0805DA18: ldr r0, _0805DA1C b _0805DCBC .align 2, 0 _0805DA1C: .4byte gUnknown_80F8A28 _0805DA20: ldr r0, [sp, 0x1C] movs r1, 0x17 bl sub_8044C94 b _0805E1AE _0805DA2A: ldr r0, _0805DA38 ands r6, r0 movs r3, 0x1 orrs r6, r3 ldr r0, _0805DA3C ands r6, r0 b _0805DAD6 .align 2, 0 _0805DA38: .4byte 0xffffff00 _0805DA3C: .4byte 0xffff00ff _0805DA40: ldr r5, _0805DA58 ldr r0, [r5] movs r2, 0xB8 lsls r2, 3 adds r0, r2 str r1, [r0] ldr r0, _0805DA5C ands r6, r0 movs r3, 0x1 orrs r6, r3 b _0805DAA8 .align 2, 0 _0805DA58: .4byte gUnknown_203B418 _0805DA5C: .4byte 0xffffff00 _0805DA60: ldr r5, _0805DA78 ldr r0, [r5] movs r1, 0xB8 lsls r1, 3 adds r0, r1 movs r2, 0x1 str r2, [r0] ldr r0, _0805DA7C ands r6, r0 orrs r6, r2 b _0805DAA8 .align 2, 0 _0805DA78: .4byte gUnknown_203B418 _0805DA7C: .4byte 0xffffff00 _0805DA80: ldr r3, _0805DA98 ldr r0, [r3] movs r5, 0xB8 lsls r5, 3 adds r0, r5 str r2, [r0] ldr r0, _0805DA9C ands r6, r0 movs r0, 0x1 orrs r6, r0 b _0805DAA8 .align 2, 0 _0805DA98: .4byte gUnknown_203B418 _0805DA9C: .4byte 0xffffff00 _0805DAA0: ldr r0, _0805DAB8 ands r6, r0 movs r1, 0x1 orrs r6, r1 _0805DAA8: ldr r0, _0805DABC ands r6, r0 ldr r0, _0805DAC0 ands r6, r0 movs r0, 0x80 lsls r0, 9 orrs r6, r0 b _0805E1AE .align 2, 0 _0805DAB8: .4byte 0xffffff00 _0805DABC: .4byte 0xffff00ff _0805DAC0: .4byte 0xff00ffff _0805DAC4: ldr r0, _0805DADC ands r6, r0 movs r2, 0x1 orrs r6, r2 ldr r0, _0805DAE0 ands r6, r0 movs r0, 0x80 lsls r0, 1 orrs r6, r0 _0805DAD6: ldr r0, _0805DAE4 ands r6, r0 b _0805E1AE .align 2, 0 _0805DADC: .4byte 0xffffff00 _0805DAE0: .4byte 0xffff00ff _0805DAE4: .4byte 0xff00ffff _0805DAE8: ldr r0, _0805DB3C ands r6, r0 _0805DAEC: ldr r0, _0805DB40 ands r6, r0 ldr r0, _0805DB44 ands r6, r0 movs r3, 0 str r3, [sp, 0x8] movs r0, 0 bl sub_8044C50 ldr r0, _0805DB48 mov r5, sp ldrb r5, [r5, 0x8] strb r5, [r0] ldr r0, _0805DB4C mov r1, sp ldrb r1, [r1, 0x8] strb r1, [r0] lsls r0, r6, 24 mov r2, r8 adds r2, 0x44 str r2, [sp, 0x1C] str r0, [sp, 0x14] ldr r3, [sp, 0x10] adds r3, 0x32 str r3, [sp, 0x18] cmp r0, 0 beq _0805DB24 b _0805E1AE _0805DB24: ldr r0, _0805DB50 ldrh r1, [r0] adds r1, 0x1 strh r1, [r0] ldr r5, [sp, 0x18] ldrb r0, [r5] cmp r0, 0 beq _0805DB54 movs r0, 0 str r0, [sp, 0x8] b _0805DB5A .align 2, 0 _0805DB3C: .4byte 0xffffff00 _0805DB40: .4byte 0xffff00ff _0805DB44: .4byte 0xff00ffff _0805DB48: .4byte gUnknown_202F230 _0805DB4C: .4byte gUnknown_202F231 _0805DB50: .4byte gUnknown_202F22E _0805DB54: ldr r1, [sp, 0x8] adds r1, 0x1 str r1, [sp, 0x8] _0805DB5A: ldr r2, [sp, 0xC] cmp r2, 0 beq _0805DB6E subs r2, 0x1 str r2, [sp, 0xC] cmp r2, 0 bne _0805DB6E movs r0, 0 bl sub_8075680 _0805DB6E: mov r0, r10 bl sub_805E2C4 movs r7, 0 movs r1, 0 add r0, sp, 0x4 _0805DB7A: strb r1, [r0] subs r0, 0x1 cmp r0, sp bge _0805DB7A ldr r0, _0805DBEC ldrh r1, [r0] movs r4, 0x1 movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0805DBAA movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0805DBAA movs r0, 0x9E lsls r0, 1 add r0, r8 ldr r0, [r0] bl sub_8094450 cmp r0, 0 beq _0805DBAA b _0805D9EC _0805DBAA: movs r3, 0 mov r9, r3 ldr r4, _0805DBEC ldrh r1, [r4, 0x2] movs r5, 0x1 movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0805DBBE b _0805DD02 _0805DBBE: ldrh r1, [r4] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0805DBF8 movs r0, 0x9E lsls r0, 1 add r0, r8 ldr r0, [r0] bl sub_8094450 cmp r0, 0 bne _0805DBDA b _0805DD02 _0805DBDA: movs r0, 0x1 bl sub_8044C50 ldr r1, _0805DBF0 ldr r0, [r1] ldr r2, _0805DBF4 adds r0, r2 strb r5, [r0] b _0805E1AE .align 2, 0 _0805DBEC: .4byte gUnknown_20255F0 _0805DBF0: .4byte gUnknown_203B418 _0805DBF4: .4byte 0x00000673 _0805DBF8: mov r0, r10 movs r1, 0x1 bl sub_8071518 lsls r0, 24 cmp r0, 0 beq _0805DC08 b _0805DA08 _0805DC08: ldrh r0, [r4] movs r3, 0x80 lsls r3, 2 adds r1, r3, 0 ands r0, r1 cmp r0, 0 beq _0805DCE8 movs r4, 0 movs r2, 0x8C lsls r2, 1 add r2, r8 movs r3, 0x8 _0805DC20: ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0805DC32 adds r0, r3, 0 ands r0, r1 cmp r0, 0 bne _0805DC3A _0805DC32: adds r2, 0x8 adds r4, 0x1 cmp r4, 0x3 ble _0805DC20 _0805DC3A: cmp r4, 0x4 bne _0805DC40 b _0805DA18 _0805DC40: movs r3, 0 movs r5, 0x8C lsls r5, 1 movs r7, 0x1 mov r2, r8 _0805DC4A: lsls r0, r3, 3 add r0, r8 adds r0, r5 ldrb r1, [r0] adds r0, r7, 0 ands r0, r1 cmp r0, 0 beq _0805DC66 movs r1, 0x8E lsls r1, 1 adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0 bne _0805DC6E _0805DC66: adds r2, 0x8 adds r3, 0x1 cmp r3, 0x3 ble _0805DC4A _0805DC6E: cmp r3, 0x4 bne _0805DC74 b _0805DA20 _0805DC74: movs r7, 0 adds r3, r4, 0 cmp r4, 0x3 bgt _0805DCB6 lsls r0, r4, 3 adds r2, r0, 0 add r2, r8 mov r12, r2 movs r5, 0x8E lsls r5, 1 adds r0, r5 mov r1, r8 adds r2, r0, r1 movs r5, 0x2 _0805DC90: ldrb r0, [r2] cmp r0, 0 bne _0805DCCC movs r0, 0x8 add r12, r0 adds r2, 0x8 adds r3, 0x1 cmp r3, 0x3 bgt _0805DCB6 cmp r3, r4 beq _0805DC90 movs r0, 0x8C lsls r0, 1 add r0, r12 ldrb r1, [r0] adds r0, r5, 0 ands r0, r1 cmp r0, 0 bne _0805DC90 _0805DCB6: cmp r7, 0 bne _0805DCCC ldr r0, _0805DCC8 _0805DCBC: ldr r1, [r0] mov r0, r10 bl sub_80522A8 b _0805E1AE .align 2, 0 _0805DCC8: .4byte gUnknown_80F8A4C _0805DCCC: ldr r0, [sp, 0x1C] movs r1, 0x14 bl sub_8044C94 mov r0, r10 bl sub_8045B60 mov r1, r8 adds r1, 0x48 strb r0, [r1] mov r0, r8 adds r0, 0x50 strb r4, [r0] b _0805E1AE _0805DCE8: mov r0, r10 mov r1, r8 bl sub_805EF60 lsls r0, 24 cmp r0, 0 beq _0805DCF8 b _0805E1AE _0805DCF8: ldr r0, [sp, 0x1C] movs r1, 0x32 bl sub_8044C94 b _0805E1AE _0805DD02: ldr r3, _0805DDC8 ldrh r1, [r3, 0x6] movs r2, 0x2 adds r0, r2, 0 ands r0, r1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 beq _0805DD16 b _0805DA2A _0805DD16: mov r0, sp ldrb r0, [r0, 0x1] cmp r0, 0 beq _0805DD20 b _0805DA40 _0805DD20: mov r0, sp ldrb r0, [r0, 0x2] cmp r0, 0 beq _0805DD2A b _0805DA60 _0805DD2A: mov r0, sp ldrb r0, [r0, 0x3] cmp r0, 0 beq _0805DD34 b _0805DA80 _0805DD34: mov r0, sp ldrb r0, [r0, 0x4] cmp r0, 0 beq _0805DD3E b _0805DAA0 _0805DD3E: ldr r0, _0805DDCC ldr r1, [sp, 0x8] cmp r1, r0 ble _0805DD48 b _0805DAC4 _0805DD48: ldr r0, _0805DDD0 ldr r0, [r0] ldrb r4, [r0, 0x9] cmp r4, 0 bne _0805DD7E ldrh r1, [r3, 0x2] adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _0805DD66 cmp r7, 0 bne _0805DD7E movs r2, 0 cmp r2, 0 beq _0805DD7E _0805DD66: ldr r3, [sp, 0x18] ldrb r0, [r3] cmp r0, 0 beq _0805DD7E bl sub_804AA60 ldr r0, _0805DDD4 strb r4, [r0] bl sub_80048D0 bl sub_8004914 _0805DD7E: ldr r2, _0805DDC8 ldrh r0, [r2] movs r5, 0x80 lsls r5, 2 adds r1, r5, 0 ands r0, r1 cmp r0, 0 beq _0805DDA4 ldrh r1, [r2, 0x2] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0805DDA4 bl sub_80532B4 bl sub_80048D0 bl sub_8004914 _0805DDA4: movs r4, 0 ldr r0, _0805DDC8 ldrh r0, [r0] movs r2, 0x80 lsls r2, 1 adds r1, r2, 0 ands r0, r1 cmp r0, 0 beq _0805DDFA ldr r1, _0805DDD8 ldrb r0, [r1] cmp r0, 0 bne _0805DDC2 ldr r0, _0805DDDC strh r4, [r0] _0805DDC2: movs r3, 0x1 strb r3, [r1] b _0805DDFE .align 2, 0 _0805DDC8: .4byte gUnknown_20255F0 _0805DDCC: .4byte 0x00000707 _0805DDD0: .4byte gUnknown_203B46C _0805DDD4: .4byte gUnknown_202F22D _0805DDD8: .4byte gUnknown_202F22C _0805DDDC: .4byte gUnknown_202F22E _0805DDE0: movs r0, 0xB bl sub_8044C50 adds r2, r4, 0x1 mov r0, r8 adds r0, 0x48 movs r1, 0 strb r2, [r0] adds r0, 0x4 strh r1, [r0] adds r0, 0x2 strh r1, [r0] b _0805DE92 _0805DDFA: ldr r0, _0805DEF8 strb r4, [r0] _0805DDFE: movs r3, 0 ldr r0, _0805DEFC ldr r0, [r0] ldrb r0, [r0, 0x9] cmp r0, 0 bne _0805DE2C ldr r2, _0805DF00 ldrh r0, [r2, 0x6] movs r5, 0x80 lsls r5, 1 adds r1, r5, 0 ands r0, r1 cmp r0, 0 bne _0805DE2A mov r0, r9 cmp r0, 0 bne _0805DE2A ldrh r1, [r2, 0x2] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _0805DE2C _0805DE2A: movs r3, 0x1 _0805DE2C: cmp r3, 0 beq _0805DE54 mov r0, r10 bl sub_805E738 ldr r0, _0805DF04 movs r1, 0x1 strb r1, [r0] mov r0, r8 adds r0, 0x46 ldrb r0, [r0] ldr r1, [sp, 0x10] adds r1, 0x33 strb r0, [r1] ldr r1, [sp, 0x10] adds r1, 0x34 movs r0, 0xFF strb r0, [r1] bl sub_80048D0 _0805DE54: ldr r0, _0805DF00 ldr r1, [r0] ldr r0, _0805DF08 ands r1, r0 cmp r1, r0 bne _0805DE62 movs r4, 0x1 _0805DE62: mov r0, sp ldrb r0, [r0] cmp r0, 0 beq _0805DE6C movs r4, 0x1 _0805DE6C: cmp r4, 0 beq _0805DE9C movs r4, 0 ldr r0, _0805DF0C ldr r2, [r0] movs r3, 0x10 _0805DE78: ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0805DE8A adds r0, r3, 0 ands r0, r1 cmp r0, 0 bne _0805DDE0 _0805DE8A: adds r2, 0x4 adds r4, 0x1 cmp r4, 0x13 ble _0805DE78 _0805DE92: ldr r2, [sp, 0x1C] ldrh r0, [r2] cmp r0, 0 beq _0805DE9C b _0805E1AE _0805DE9C: ldr r5, _0805DF10 ldr r3, [r5] ldr r1, _0805DF14 adds r0, r3, r1 ldrb r0, [r0] cmp r0, 0 bne _0805DF82 ldr r0, _0805DEFC ldr r2, [r0] ldrb r0, [r2, 0x4] cmp r0, 0x6 beq _0805DF82 ldr r0, _0805DF00 ldrh r1, [r0, 0x2] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _0805DF82 ldrb r4, [r2, 0x4] ldr r0, _0805DF18 movs r2, 0x1 strb r2, [r0] ldr r5, _0805DF1C adds r0, r3, r5 strb r2, [r0] bl sub_8094C48 lsls r0, 24 cmp r0, 0 bne _0805DEDC bl sub_8094C88 _0805DEDC: movs r0, 0x1 bl sub_8052210 bl sub_8040A84 movs r0, 0x1E bl SetBGOBJEnableFlags movs r0, 0xA movs r1, 0x2F bl sub_803E708 b _0805DF3A .align 2, 0 _0805DEF8: .4byte gUnknown_202F22C _0805DEFC: .4byte gUnknown_203B46C _0805DF00: .4byte gUnknown_20255F0 _0805DF04: .4byte gUnknown_202F22D _0805DF08: .4byte 0x01000200 _0805DF0C: .4byte gUnknown_203B460 _0805DF10: .4byte gUnknown_203B418 _0805DF14: .4byte 0x0001820a _0805DF18: .4byte gUnknown_202EE00 _0805DF1C: .4byte 0x00018214 _0805DF20: movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0805DF3A ldr r2, _0805DFA0 movs r1, 0 ldrb r0, [r2] cmp r0, 0 bne _0805DF34 movs r1, 0x1 _0805DF34: strb r1, [r2] bl sub_8040A84 _0805DF3A: movs r0, 0x2F bl sub_803E46C ldr r0, _0805DFA4 ldrh r1, [r0, 0x2] movs r0, 0x4 ands r0, r1 cmp r0, 0 bne _0805DF54 movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0805DF20 _0805DF54: ldr r1, _0805DFA8 ldr r0, [r1] ldr r2, _0805DFAC adds r0, r2 movs r1, 0 strb r1, [r0] ldr r0, _0805DFB0 ldr r0, [r0] strb r4, [r0, 0x4] ldr r0, _0805DFA0 movs r3, 0x1 strb r3, [r0] bl sub_8040A84 movs r0, 0 bl SetBGOBJEnableFlags movs r0, 0x2F bl sub_803E46C movs r0, 0x2F bl sub_803E46C _0805DF82: ldr r5, _0805DFA8 ldr r0, [r5] ldr r1, _0805DFB4 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _0805DFBC ldr r0, _0805DFB8 ldrb r0, [r0] cmp r0, 0 bne _0805DFBC ldr r0, _0805DFA4 ldrh r2, [r0, 0x2] adds r1, r2, 0 b _0805DFCC .align 2, 0 _0805DFA0: .4byte gUnknown_202EE00 _0805DFA4: .4byte gUnknown_20255F0 _0805DFA8: .4byte gUnknown_203B418 _0805DFAC: .4byte 0x00018214 _0805DFB0: .4byte gUnknown_203B46C _0805DFB4: .4byte 0x0000066d _0805DFB8: .4byte gUnknown_202F22C _0805DFBC: ldr r3, _0805E05C ldrh r1, [r3] ldr r2, [sp, 0x18] ldrb r0, [r2] adds r2, r1, 0 cmp r0, 0 beq _0805DFCC ldrh r2, [r3, 0x2] _0805DFCC: movs r0, 0xF0 ands r1, r0 ands r2, r0 movs r5, 0x1 negs r5, r5 cmp r1, 0x50 bne _0805DFDC movs r5, 0x3 _0805DFDC: cmp r1, 0x60 bne _0805DFE2 movs r5, 0x5 _0805DFE2: cmp r1, 0x90 bne _0805DFE8 movs r5, 0x1 _0805DFE8: cmp r1, 0xA0 bne _0805DFEE movs r5, 0x7 _0805DFEE: cmp r2, 0x40 bne _0805DFF4 movs r5, 0x4 _0805DFF4: cmp r2, 0x80 bne _0805DFFA movs r5, 0 _0805DFFA: cmp r2, 0x10 bne _0805E000 movs r5, 0x2 _0805E000: cmp r2, 0x20 bne _0805E006 movs r5, 0x6 _0805E006: cmp r5, 0 bge _0805E00C b _0805E1A0 _0805E00C: ldr r0, _0805E060 ldrb r0, [r0] cmp r0, 0 beq _0805E020 adds r0, r5, 0 movs r3, 0x1 ands r0, r3 cmp r0, 0 bne _0805E020 b _0805E1A0 _0805E020: mov r2, r8 adds r2, 0x46 ldrb r1, [r2] eors r1, r5 negs r0, r1 orrs r0, r1 lsrs r7, r0, 31 movs r1, 0x7 adds r0, r5, 0 ands r0, r1 strb r0, [r2] ldr r0, _0805E064 ldrb r0, [r0] cmp r0, 0 beq _0805E068 ldr r0, [sp, 0x10] adds r0, 0x33 strb r5, [r0] mov r0, r10 bl sub_806CEBC adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 mov r0, r10 adds r2, r5, 0 bl sub_806CDD4 b _0805E1A0 .align 2, 0 _0805E05C: .4byte gUnknown_20255F0 _0805E060: .4byte gUnknown_202F22C _0805E064: .4byte gUnknown_202F22D _0805E068: movs r4, 0 movs r3, 0 mov r0, r10 movs r1, 0x1 str r3, [sp, 0x20] bl sub_805EC4C lsls r0, 24 ldr r3, [sp, 0x20] cmp r0, 0 beq _0805E080 b _0805E1AE _0805E080: mov r0, r8 adds r0, 0xB0 ldrb r0, [r0] cmp r0, 0x2 bne _0805E094 ldr r0, _0805E090 b _0805E0BE .align 2, 0 _0805E090: .4byte gUnknown_80F8A84 _0805E094: cmp r0, 0x7 bne _0805E0A0 ldr r0, _0805E09C b _0805E0BE .align 2, 0 _0805E09C: .4byte gUnknown_80F8A6C _0805E0A0: cmp r0, 0x5 bne _0805E0AC ldr r0, _0805E0A8 b _0805E0BE .align 2, 0 _0805E0A8: .4byte gUnknown_80F8AB0 _0805E0AC: cmp r0, 0x3 bne _0805E0B8 ldr r0, _0805E0B4 b _0805E0BE .align 2, 0 _0805E0B4: .4byte gUnknown_80F8ADC _0805E0B8: cmp r0, 0x4 bne _0805E0C2 ldr r0, _0805E128 _0805E0BE: ldr r3, [r0] movs r4, 0x1 _0805E0C2: mov r0, r10 adds r1, r5, 0 str r3, [sp, 0x20] bl sub_8070D6C lsls r0, 24 ldr r3, [sp, 0x20] cmp r0, 0 bne _0805E0D8 movs r0, 0x2 orrs r4, r0 _0805E0D8: cmp r7, 0 beq _0805E0F4 mov r0, r10 str r3, [sp, 0x20] bl sub_806CEBC adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 mov r0, r10 adds r2, r5, 0 bl sub_806CDD4 ldr r3, [sp, 0x20] _0805E0F4: movs r7, 0x2 adds r0, r4, 0 ands r0, r7 cmp r0, 0 bne _0805E192 movs r5, 0x1 mov r9, r5 ands r5, r4 cmp r5, 0 beq _0805E134 cmp r3, 0 beq _0805E114 mov r0, r10 adds r1, r3, 0 bl sub_80522A8 _0805E114: movs r0, 0x1 bl sub_8044C50 ldr r1, _0805E12C ldr r0, [r1] ldr r2, _0805E130 adds r0, r2 mov r3, r9 strb r3, [r0] b _0805E1AE .align 2, 0 _0805E128: .4byte gUnknown_80F8B0C _0805E12C: .4byte gUnknown_203B418 _0805E130: .4byte 0x00000673 _0805E134: movs r0, 0x2 bl sub_8044C50 ldr r0, _0805E17C ldrh r1, [r0] adds r0, r7, 0 ands r0, r1 cmp r0, 0 bne _0805E14C movs r0, 0 cmp r0, 0 beq _0805E188 _0805E14C: movs r0, 0x9E lsls r0, 1 add r0, r8 ldr r0, [r0] bl sub_8094450 cmp r0, 0 beq _0805E188 mov r1, r10 ldr r0, [r1, 0x70] adds r0, 0xBC ldrb r0, [r0] cmp r0, 0x2 beq _0805E174 ldr r2, _0805E180 ldr r0, [r2] ldr r3, _0805E184 adds r0, r3 mov r1, r9 strb r1, [r0] _0805E174: mov r0, r8 adds r0, 0x48 strb r5, [r0] b _0805E1AE .align 2, 0 _0805E17C: .4byte gUnknown_20255F0 _0805E180: .4byte gUnknown_203B418 _0805E184: .4byte 0x0000066c _0805E188: mov r0, r8 adds r0, 0x48 movs r2, 0x1 strb r2, [r0] b _0805E1AE _0805E192: movs r3, 0x1 ands r4, r3 cmp r4, 0 beq _0805E1A0 movs r0, 0x23 bl sub_803E724 _0805E1A0: movs r0, 0xF bl sub_803E46C ldr r5, [sp, 0x14] cmp r5, 0 bne _0805E1AE b _0805DB24 _0805E1AE: ldr r1, [sp, 0x18] ldrb r0, [r1] cmp r0, 0 beq _0805E1BA bl sub_804AA60 _0805E1BA: ldr r4, [sp, 0x1C] ldrh r0, [r4] cmp r0, 0x2D beq _0805E1C6 cmp r0, 0x13 bne _0805E1E0 _0805E1C6: mov r0, r10 bl sub_8067510 bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _0805E2B0 movs r0, 0 bl sub_8044C50 bl _0805D980 _0805E1E0: lsls r0, r6, 24 lsrs r1, r0, 24 cmp r1, 0 bne _0805E222 ldr r2, _0805E210 ldr r0, [r2] ldr r3, _0805E214 adds r0, r3 strb r1, [r0] ldrh r0, [r4] cmp r0, 0 beq _0805E218 mov r0, r10 movs r1, 0 bl sub_8045028 lsls r0, 24 cmp r0, 0 bne _0805E2B0 movs r0, 0xF bl sub_803E46C b _0805E2B0 .align 2, 0 _0805E210: .4byte gUnknown_203B418 _0805E214: .4byte 0x0000066d _0805E218: movs r0, 0xF bl sub_803E46C bl _0805D980 _0805E222: movs r0, 0xF bl sub_803E46C bl sub_8047158 movs r2, 0 lsrs r0, r6, 8 lsls r0, 24 cmp r0, 0 bne _0805E238 movs r2, 0x1 _0805E238: lsrs r1, r6, 16 lsls r1, 24 lsrs r1, 24 adds r0, r2, 0 bl ShowFieldMenu bl sub_80048D0 bl sub_8004914 ldr r1, _0805E294 movs r0, 0 strb r0, [r1] movs r0, 0 ldr r5, [sp, 0x18] strb r0, [r5] bl sub_804AA60 bl sub_8044B28 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _0805E2B0 ldrh r0, [r4] cmp r0, 0 beq _0805E29C cmp r0, 0x2B bne _0805E27E ldr r2, _0805E298 ldr r0, [r2] movs r3, 0x1 strb r3, [r0, 0x4] ldr r0, [r2] strb r3, [r0, 0x3] _0805E27E: ldr r5, [sp, 0x1C] ldrh r0, [r5] cmp r0, 0x2E bne _0805E2B0 ldr r2, _0805E298 ldr r0, [r2] movs r3, 0x1 strb r3, [r0, 0x4] ldr r0, [r2] strb r1, [r0, 0x3] b _0805E2B0 .align 2, 0 _0805E294: .4byte gUnknown_202F22D _0805E298: .4byte gUnknown_203B418 _0805E29C: movs r0, 0xF bl sub_803E46C ldr r5, _0805E2C0 ldr r0, [r5] ldrb r0, [r0, 0x4] cmp r0, 0 bne _0805E2B0 bl _0805D980 _0805E2B0: add sp, 0x24 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0805E2C0: .4byte gUnknown_203B418 thumb_func_end sub_805D8C8 thumb_func_start sub_805E2C4 sub_805E2C4: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x28 str r0, [sp, 0x10] ldr r0, _0805E47C ldr r1, [r0] ldr r0, _0805E480 adds r0, r1, r0 str r0, [sp, 0x14] ldr r0, _0805E484 ldrb r0, [r0] cmp r0, 0 bne _0805E2E6 b _0805E4C4 _0805E2E6: movs r1, 0 str r1, [sp, 0x18] mov r7, sp ldr r2, _0805E488 mov r10, r2 _0805E2F0: ldrh r0, [r7] ldr r3, _0805E48C adds r1, r3, 0 ands r1, r0 ldr r0, [sp] mov r4, r10 ands r0, r4 orrs r0, r1 str r0, [sp] ldrh r1, [r7] mov r2, r10 ands r2, r0 orrs r2, r1 str r2, [sp] ldrh r0, [r7] ldr r5, _0805E490 adds r1, r5, 0 ands r1, r0 mov r0, r10 ands r0, r2 orrs r0, r1 str r0, [sp] ldrh r2, [r7] mov r1, r10 ands r1, r0 orrs r1, r2 str r1, [sp] ldrh r2, [r7] ldr r0, _0805E494 ands r0, r2 mov r3, r10 ands r3, r1 orrs r3, r0 str r3, [sp] ldrh r1, [r7] movs r0, 0x80 lsls r0, 3 orrs r0, r1 movs r6, 0 orrs r0, r6 mov r2, r10 ands r2, r3 orrs r2, r0 str r2, [sp] ldrh r0, [r7] ldr r3, _0805E498 adds r1, r3, 0 ands r1, r0 mov r0, r10 ands r0, r2 orrs r0, r1 str r0, [sp] ldrh r1, [r7] mov r2, r10 ands r2, r0 orrs r2, r1 str r2, [sp] ldrh r0, [r7] ldr r4, _0805E49C adds r1, r4, 0 ands r1, r0 mov r0, r10 ands r0, r2 orrs r0, r1 str r0, [sp] ldrh r1, [r7] mov r2, r10 ands r2, r0 orrs r2, r1 str r2, [sp] ldrh r1, [r7] ldr r0, _0805E4A0 ands r0, r1 mov r1, r10 ands r1, r2 orrs r1, r0 str r1, [sp] ldrh r2, [r7] mov r0, r10 ands r0, r1 orrs r0, r2 str r0, [sp] ldr r1, _0805E4A4 ldr r5, [sp, 0x18] lsls r0, r5, 3 adds r0, r1 mov r12, r0 ldrb r1, [r0, 0x4] negs r0, r1 orrs r0, r1 asrs r1, r0, 31 movs r0, 0x8 ands r1, r0 mov r6, r12 ldrb r0, [r6, 0x5] cmp r0, 0 beq _0805E3B4 adds r1, 0x10 _0805E3B4: movs r0, 0x1F ands r1, r0 lsls r1, 9 ldrh r3, [r7, 0x2] ldr r2, _0805E4A8 adds r0, r2, 0 ands r3, r0 orrs r3, r1 ldr r4, _0805E4A0 ands r3, r4 strh r3, [r7, 0x2] ldr r2, _0805E4AC ldrh r0, [r7, 0x4] movs r5, 0xFC lsls r5, 8 adds r1, r5, 0 ands r0, r1 orrs r0, r2 movs r6, 0 orrs r0, r6 movs r1, 0x80 lsls r1, 4 ldr r2, _0805E494 ands r0, r2 orrs r0, r1 orrs r0, r6 ldr r4, _0805E4B0 mov r9, r4 ands r0, r4 strh r0, [r7, 0x4] ldrh r4, [r7, 0x6] ldr r5, _0805E4B4 adds r0, r5, 0 ands r4, r0 ldr r6, _0805E4B8 adds r0, r6, 0 ands r4, r0 strh r4, [r7, 0x6] mov r0, r12 movs r1, 0 ldrsh r5, [r0, r1] lsls r2, r5, 2 adds r2, r5 lsls r2, 1 ldr r6, _0805E4BC mov r8, r6 movs r1, 0 ldrsh r0, [r6, r1] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 movs r6, 0x7 ands r0, r6 muls r0, r5 adds r0, r2 adds r0, 0x74 ldr r1, _0805E4C0 ands r0, r1 movs r2, 0xFE lsls r2, 8 adds r1, r2, 0 ands r3, r1 orrs r3, r0 strh r3, [r7, 0x2] mov r5, r12 movs r0, 0x2 ldrsh r3, [r5, r0] lsls r2, r3, 2 adds r2, r3 lsls r2, 1 mov r1, r8 movs r5, 0 ldrsh r0, [r1, r5] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 ands r0, r6 muls r0, r3 adds r0, r2 adds r0, 0x52 mov r6, r9 ands r0, r6 lsls r0, 4 movs r1, 0xF ands r4, r1 orrs r4, r0 strh r4, [r7, 0x6] mov r0, sp adds r1, 0xF1 movs r2, 0 movs r3, 0 bl AddSprite ldr r2, [sp, 0x18] adds r2, 0x1 str r2, [sp, 0x18] cmp r2, 0x3 bgt _0805E47A b _0805E2F0 _0805E47A: b _0805E6AC .align 2, 0 _0805E47C: .4byte gUnknown_203B418 _0805E480: .4byte 0x000181e8 _0805E484: .4byte gUnknown_202F22C _0805E488: .4byte 0xffff0000 _0805E48C: .4byte 0x0000feff _0805E490: .4byte 0x0000fdff _0805E494: .4byte 0x0000f3ff _0805E498: .4byte 0x0000efff _0805E49C: .4byte 0x0000dfff _0805E4A0: .4byte 0x00003fff _0805E4A4: .4byte gUnknown_8106AC8 _0805E4A8: .4byte 0x0000c1ff _0805E4AC: .4byte 0x00000213 _0805E4B0: .4byte 0x00000fff _0805E4B4: .4byte 0x0000fffe _0805E4B8: .4byte 0x0000fffd _0805E4BC: .4byte gUnknown_202F22E _0805E4C0: .4byte 0x000001ff _0805E4C4: ldr r3, _0805E6E4 adds r0, r1, r3 ldrb r0, [r0] cmp r0, 0 bne _0805E4D0 b _0805E6AC _0805E4D0: ldr r4, _0805E6E8 adds r0, r1, r4 ldrb r0, [r0] str r0, [sp, 0x1C] cmp r0, 0x7 bls _0805E4DE b _0805E6AC _0805E4DE: ldr r0, _0805E6EC ldrb r0, [r0] movs r7, 0x1 cmp r0, 0 beq _0805E4F2 ldr r0, _0805E6F0 ldrb r0, [r0] cmp r0, 0 beq _0805E4F2 movs r7, 0x3 _0805E4F2: ldr r5, _0805E6F4 mov r12, r5 ldr r6, [sp, 0x1C] lsls r5, r6, 1 adds r3, r5, r6 lsls r3, 2 add r3, r12 movs r0, 0 ldrsh r4, [r3, r0] lsls r1, r4, 2 adds r1, r4 lsls r1, 1 ldr r0, _0805E6F8 movs r6, 0 ldrsh r2, [r0, r6] lsrs r0, r2, 31 adds r2, r0 asrs r2, 1 movs r0, 0x7 ands r2, r0 adds r0, r4, 0 muls r0, r2 adds r0, r1 adds r0, 0x74 str r0, [sp, 0x20] movs r1, 0x2 ldrsh r0, [r3, r1] lsls r1, r0, 2 adds r1, r0 lsls r1, 1 muls r0, r2 adds r0, r1 adds r0, 0x52 mov r10, r0 str r5, [sp, 0x24] cmp r7, 0 bne _0805E53E b _0805E6AC _0805E53E: add r6, sp, 0x8 ldr r2, _0805E6FC mov r8, r2 mov r9, r7 _0805E546: ldrh r0, [r6] ldr r3, _0805E700 adds r1, r3, 0 ands r1, r0 ldr r0, [sp, 0x8] mov r4, r8 ands r0, r4 orrs r0, r1 str r0, [sp, 0x8] ldrh r1, [r6] mov r2, r8 ands r2, r0 orrs r2, r1 str r2, [sp, 0x8] ldrh r0, [r6] ldr r5, _0805E704 adds r1, r5, 0 ands r1, r0 mov r0, r8 ands r0, r2 orrs r0, r1 str r0, [sp, 0x8] ldrh r2, [r6] mov r1, r8 ands r1, r0 orrs r1, r2 str r1, [sp, 0x8] ldrh r2, [r6] ldr r0, _0805E708 ands r0, r2 mov r3, r8 ands r3, r1 orrs r3, r0 str r3, [sp, 0x8] ldrh r1, [r6] movs r0, 0x80 lsls r0, 3 orrs r0, r1 movs r1, 0 orrs r0, r1 mov r2, r8 ands r2, r3 orrs r2, r0 str r2, [sp, 0x8] ldrh r0, [r6] ldr r3, _0805E70C adds r1, r3, 0 ands r1, r0 mov r0, r8 ands r0, r2 orrs r0, r1 str r0, [sp, 0x8] ldrh r1, [r6] mov r2, r8 ands r2, r0 orrs r2, r1 str r2, [sp, 0x8] ldrh r0, [r6] ldr r4, _0805E710 adds r1, r4, 0 ands r1, r0 mov r0, r8 ands r0, r2 orrs r0, r1 str r0, [sp, 0x8] ldrh r1, [r6] mov r2, r8 ands r2, r0 orrs r2, r1 str r2, [sp, 0x8] ldrh r1, [r6] ldr r0, _0805E714 ands r0, r1 mov r1, r8 ands r1, r2 orrs r1, r0 str r1, [sp, 0x8] ldrh r2, [r6] mov r0, r8 ands r0, r1 orrs r0, r2 str r0, [sp, 0x8] ldr r5, [sp, 0x24] ldr r1, [sp, 0x1C] adds r0, r5, r1 lsls r2, r0, 2 ldr r3, _0805E6F4 adds r7, r2, r3 ldrb r1, [r7, 0x8] negs r0, r1 orrs r0, r1 asrs r1, r0, 31 movs r0, 0x8 ands r1, r0 ldrb r0, [r7, 0x9] cmp r0, 0 beq _0805E60A adds r1, 0x10 _0805E60A: movs r0, 0x1F ands r1, r0 lsls r1, 9 ldrh r3, [r6, 0x2] ldr r4, _0805E718 adds r0, r4, 0 ands r3, r0 orrs r3, r1 ldr r5, _0805E714 ands r3, r5 strh r3, [r6, 0x2] ldr r1, _0805E71C adds r0, r2, r1 ldr r2, [r0] ldr r0, _0805E720 ands r2, r0 ldrh r0, [r6, 0x4] movs r4, 0xFC lsls r4, 8 adds r1, r4, 0 ands r0, r1 orrs r0, r2 movs r1, 0x80 lsls r1, 4 ldr r5, _0805E708 ands r0, r5 orrs r0, r1 movs r1, 0 orrs r0, r1 movs r2, 0xF mov r12, r2 ldr r4, _0805E724 ands r0, r4 strh r0, [r6, 0x4] ldrh r1, [r6, 0x6] ldr r5, _0805E728 adds r0, r5, 0 ands r1, r0 ldr r2, _0805E72C adds r0, r2, 0 ands r1, r0 ldr r0, _0805E730 ldr r5, [sp, 0x20] ands r0, r5 movs r5, 0xFE lsls r5, 8 adds r2, r5, 0 ands r3, r2 orrs r3, r0 strh r3, [r6, 0x2] mov r0, r10 ands r0, r4 lsls r0, 4 mov r2, r12 ands r1, r2 orrs r1, r0 strh r1, [r6, 0x6] adds r0, r6, 0 movs r1, 0x80 lsls r1, 1 movs r2, 0 movs r3, 0 bl AddSprite movs r3, 0 ldrsh r0, [r7, r3] lsls r0, 2 ldr r4, [sp, 0x20] adds r4, r0 str r4, [sp, 0x20] movs r5, 0x2 ldrsh r0, [r7, r5] lsls r0, 2 add r10, r0 movs r0, 0x1 negs r0, r0 add r9, r0 mov r1, r9 cmp r1, 0 beq _0805E6AC b _0805E546 _0805E6AC: ldr r4, _0805E734 ldrb r0, [r4] cmp r0, 0 beq _0805E6D4 ldr r2, [sp, 0x14] adds r2, 0x34 ldr r3, [sp, 0x14] adds r3, 0x33 ldrb r1, [r3] ldrb r0, [r2] cmp r0, r1 beq _0805E6D4 strb r1, [r2] ldr r0, [sp, 0x10] adds r0, 0x4 ldrb r1, [r3] ldrb r3, [r4] movs r2, 0 bl sub_804A728 _0805E6D4: add sp, 0x28 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0805E6E4: .4byte 0x0001821a _0805E6E8: .4byte 0x0001821b _0805E6EC: .4byte gUnknown_202F231 _0805E6F0: .4byte gUnknown_202F230 _0805E6F4: .4byte gUnknown_8106AE8 _0805E6F8: .4byte gUnknown_202F22E _0805E6FC: .4byte 0xffff0000 _0805E700: .4byte 0x0000feff _0805E704: .4byte 0x0000fdff _0805E708: .4byte 0x0000f3ff _0805E70C: .4byte 0x0000efff _0805E710: .4byte 0x0000dfff _0805E714: .4byte 0x00003fff _0805E718: .4byte 0x0000c1ff _0805E71C: .4byte gUnknown_8106AEC _0805E720: .4byte 0x000003ff _0805E724: .4byte 0x00000fff _0805E728: .4byte 0x0000fffe _0805E72C: .4byte 0x0000fffd _0805E730: .4byte 0x000001ff _0805E734: .4byte gUnknown_202F22D thumb_func_end sub_805E2C4 thumb_func_start sub_805E738 sub_805E738: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r6, r0, 0 ldr r1, [r6, 0x70] adds r0, r1, 0 adds r0, 0xE8 ldrb r0, [r0] subs r0, 0x1 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bls _0805E7F6 movs r0, 0 mov r8, r0 adds r1, 0x46 mov r10, r1 _0805E75E: movs r1, 0 mov r9, r1 mov r3, r10 ldrb r5, [r3] adds r5, 0x1 movs r7, 0x1 _0805E76A: movs r0, 0x7 ands r5, r0 movs r1, 0x4 ldrsh r0, [r6, r1] ldr r1, _0805E7E8 lsls r2, r5, 2 adds r2, r1 movs r3, 0 ldrsh r1, [r2, r3] adds r0, r1 movs r3, 0x6 ldrsh r1, [r6, r3] movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 bl sub_804954C adds r4, r0, 0 ldr r0, [r4, 0x10] cmp r0, 0 beq _0805E7B8 bl sub_80450F8 cmp r0, 0x1 bne _0805E7B8 ldr r1, [r4, 0x10] ldr r4, [r1, 0x70] adds r0, r6, 0 bl sub_8045990 lsls r0, 24 cmp r0, 0 beq _0805E7B8 mov r0, r8 cmp r0, 0 bne _0805E7C6 ldrb r0, [r4, 0x6] cmp r0, 0 bne _0805E7C6 _0805E7B8: adds r7, 0x1 adds r5, 0x1 cmp r7, 0x7 ble _0805E76A mov r1, r9 cmp r1, 0 beq _0805E7EC _0805E7C6: ldr r1, [r6, 0x70] movs r2, 0x7 adds r0, r5, 0 ands r0, r2 adds r1, 0x46 strb r0, [r1] adds r0, r6, 0 bl sub_806CEBC adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r6, 0 adds r2, r5, 0 bl sub_806CDD4 b _0805E7F6 .align 2, 0 _0805E7E8: .4byte gUnknown_80F4448 _0805E7EC: movs r3, 0x1 add r8, r3 mov r0, r8 cmp r0, 0 ble _0805E75E _0805E7F6: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_805E738 thumb_func_start sub_805E804 sub_805E804: push {r4,r5,lr} ldr r2, _0805E864 ldr r1, [r2] ldr r5, _0805E868 adds r3, r1, r5 ldr r4, _0805E86C adds r1, r4 ldrb r0, [r3] ldrb r1, [r1] orrs r0, r1 movs r1, 0 strb r0, [r3] ldr r0, [r2] adds r0, r4 strb r1, [r0] ldr r0, [r2] adds r0, r5 ldrb r0, [r0] cmp r0, 0 beq _0805E85C ldr r0, _0805E870 ldrh r1, [r0] movs r2, 0x80 lsls r2, 1 adds r0, r2, 0 ands r0, r1 cmp r0, 0 beq _0805E85C adds r4, r2, 0 _0805E83E: movs r0, 0x54 bl sub_803E46C ldr r0, _0805E864 ldr r0, [r0] ldr r1, _0805E868 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _0805E85C ldr r0, _0805E870 ldrh r0, [r0] ands r0, r4 cmp r0, 0 bne _0805E83E _0805E85C: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0805E864: .4byte gUnknown_203B418 _0805E868: .4byte 0x0000066d _0805E86C: .4byte 0x0000066c _0805E870: .4byte gUnknown_20255F0 thumb_func_end sub_805E804 thumb_func_start sub_805E874 sub_805E874: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x24 ldr r0, _0805E90C ldr r4, [r0] bl sub_8083600 mov r9, r0 ldr r0, [r0, 0x70] adds r0, 0x46 ldrb r0, [r0] str r0, [sp, 0x18] mov r0, r9 movs r1, 0x4 ldrsh r0, [r0, r1] mov r10, r0 mov r2, r9 movs r3, 0x6 ldrsh r2, [r2, r3] str r2, [sp, 0x1C] adds r1, r2, 0 bl sub_804954C adds r5, r0, 0 ldr r1, _0805E910 ldr r2, [sp, 0x18] lsls r0, r2, 2 adds r0, r1 movs r3, 0 ldrsh r1, [r0, r3] mov r2, r10 adds r7, r2, r1 movs r3, 0x2 ldrsh r0, [r0, r3] ldr r1, [sp, 0x1C] adds r6, r1, r0 ldr r2, _0805E914 adds r4, r2 ldrb r0, [r4] cmp r0, 0 beq _0805E906 ldr r0, [r5, 0x14] cmp r0, 0 bne _0805E906 mov r0, r9 mov r1, r10 ldr r2, [sp, 0x1C] bl sub_805EC2C lsls r0, 24 cmp r0, 0 bne _0805E906 mov r0, r9 ldr r1, [sp, 0x18] bl sub_8070F14 lsls r0, 24 cmp r0, 0 beq _0805E906 ldrb r3, [r5, 0x9] str r3, [sp, 0x20] cmp r3, 0xFF bne _0805E918 adds r0, r7, 0 adds r1, r6, 0 bl sub_804954C ldrb r0, [r0, 0x9] cmp r0, 0xFF beq _0805E922 _0805E906: movs r0, 0 b _0805EC1A .align 2, 0 _0805E90C: .4byte gUnknown_203B418 _0805E910: .4byte gUnknown_80F4448 _0805E914: .4byte 0x0000066c _0805E918: ldrh r1, [r5] movs r0, 0x8 ands r0, r1 cmp r0, 0 bne _0805E906 _0805E922: movs r4, 0x1 negs r4, r4 ldr r7, _0805EA54 movs r5, 0x80 lsls r5, 2 adds r6, r5, 0 _0805E92E: ldr r0, [sp, 0x18] adds r1, r0, r4 movs r5, 0x7 ands r1, r5 lsls r1, 2 adds r1, r7 movs r2, 0 ldrsh r0, [r1, r2] add r0, r10 movs r3, 0x2 ldrsh r1, [r1, r3] ldr r2, [sp, 0x1C] adds r1, r2, r1 bl sub_804954C adds r1, r0, 0 ldr r0, [r1, 0x10] cmp r0, 0 bne _0805E906 ldrh r0, [r1] ands r0, r6 cmp r0, 0 bne _0805E906 adds r4, 0x1 cmp r4, 0x1 ble _0805E92E ldr r4, _0805EA54 ldr r3, [sp, 0x18] adds r3, 0x3 ands r3, r5 lsls r3, 2 adds r3, r4 movs r1, 0 ldrsh r0, [r3, r1] add r0, r10 str r0, [sp] ldr r2, [sp, 0x18] adds r2, 0x4 ands r2, r5 lsls r2, 2 adds r2, r4 movs r1, 0 ldrsh r0, [r2, r1] add r0, r10 str r0, [sp, 0x4] ldr r1, [sp, 0x18] adds r1, 0x5 ands r1, r5 lsls r1, 2 adds r1, r4 movs r4, 0 ldrsh r0, [r1, r4] add r0, r10 str r0, [sp, 0x8] add r4, sp, 0xC movs r5, 0x2 ldrsh r0, [r3, r5] ldr r3, [sp, 0x1C] adds r0, r3, r0 str r0, [sp, 0xC] movs r5, 0x2 ldrsh r0, [r2, r5] adds r0, r3, r0 str r0, [r4, 0x4] movs r2, 0x2 ldrsh r0, [r1, r2] adds r0, r3, r0 str r0, [r4, 0x8] movs r3, 0x1 negs r3, r3 mov r8, r3 _0805E9BC: movs r4, 0x1 negs r4, r4 mov r7, r10 add r7, r8 ldr r6, [sp, 0x1C] subs r6, 0x1 _0805E9C8: adds r0, r7, 0 adds r1, r6, 0 bl sub_804954C adds r5, r0, 0 ldr r0, [r5, 0x14] cmp r0, 0 beq _0805EA14 movs r2, 0 ldr r0, [sp] cmp r7, r0 bne _0805E9E6 ldr r0, [sp, 0xC] cmp r6, r0 beq _0805EA04 _0805E9E6: adds r2, 0x1 cmp r2, 0x2 bgt _0805EA04 lsls r1, r2, 2 mov r3, sp adds r0, r3, r1 ldr r0, [r0] cmp r7, r0 bne _0805E9E6 mov r0, sp adds r0, r1 adds r0, 0xC ldr r0, [r0] cmp r6, r0 bne _0805E9E6 _0805EA04: cmp r2, 0x3 bne _0805EA14 ldr r0, [r5, 0x14] bl sub_80450F8 cmp r0, 0x3 bne _0805EA14 b _0805E906 _0805EA14: movs r0, 0x1 ldr r1, [sp, 0x18] ands r0, r1 cmp r0, 0 beq _0805EA60 ldr r0, [r5, 0x14] cmp r0, 0 beq _0805EA94 bl sub_80450F8 cmp r0, 0x2 bne _0805EA94 ldr r0, [r5, 0x14] bl sub_80450F8 cmp r0, 0x2 bne _0805EA94 ldr r0, [r5, 0x14] adds r0, 0x20 ldrb r0, [r0] cmp r0, 0 beq _0805EA42 b _0805E906 _0805EA42: ldr r0, _0805EA58 ldr r0, [r0] ldr r2, _0805EA5C adds r0, r2 ldrb r0, [r0] cmp r0, 0 beq _0805EA94 b _0805E906 .align 2, 0 _0805EA54: .4byte gUnknown_80F4448 _0805EA58: .4byte gUnknown_203B418 _0805EA5C: .4byte 0x0001820f _0805EA60: mov r3, r8 cmp r3, 0 beq _0805EA6A cmp r4, 0 bne _0805EA94 _0805EA6A: ldr r0, [r5, 0x14] cmp r0, 0 beq _0805EA94 bl sub_80450F8 cmp r0, 0x2 bne _0805EA94 ldr r0, [r5, 0x14] adds r0, 0x20 ldrb r0, [r0] cmp r0, 0 beq _0805EA84 b _0805E906 _0805EA84: ldr r0, _0805EAA0 ldr r0, [r0] ldr r1, _0805EAA4 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _0805EA94 b _0805E906 _0805EA94: mov r2, r8 cmp r2, 0 beq _0805EAA8 cmp r4, 0 bne _0805EAD6 b _0805EAAC .align 2, 0 _0805EAA0: .4byte gUnknown_203B418 _0805EAA4: .4byte 0x0001820f _0805EAA8: cmp r4, 0 beq _0805EAD6 _0805EAAC: ldr r0, [sp, 0x4] cmp r0, r7 bne _0805EAB8 ldr r0, [sp, 0x10] cmp r0, r6 beq _0805EAD6 _0805EAB8: mov r0, r9 adds r1, r7, 0 adds r2, r6, 0 bl sub_805EC2C lsls r0, 24 cmp r0, 0 bne _0805EAD6 ldr r3, [sp, 0x20] cmp r3, 0xFF beq _0805EAD6 ldrb r5, [r5, 0x9] cmp r3, r5 beq _0805EAD6 b _0805E906 _0805EAD6: adds r6, 0x1 adds r4, 0x1 cmp r4, 0x1 bgt _0805EAE0 b _0805E9C8 _0805EAE0: movs r4, 0x1 add r8, r4 mov r5, r8 cmp r5, 0x1 bgt _0805EAEC b _0805E9BC _0805EAEC: movs r0, 0x1 ldr r1, [sp, 0x18] ands r0, r1 cmp r0, 0 beq _0805EAF8 b _0805EC18 _0805EAF8: cmp r1, 0 beq _0805EB00 cmp r1, 0x4 bne _0805EB8C _0805EB00: mov r4, r10 subs r4, 0x1 ldr r6, [sp, 0x1C] subs r6, 0x1 mov r0, r9 adds r1, r4, 0 adds r2, r6, 0 bl sub_805EC2C lsls r0, 24 lsrs r0, 24 mov r8, r0 mov r0, r9 adds r1, r4, 0 ldr r2, [sp, 0x1C] bl sub_805EC2C lsls r0, 24 lsrs r7, r0, 24 ldr r5, [sp, 0x1C] adds r5, 0x1 mov r0, r9 adds r1, r4, 0 adds r2, r5, 0 bl sub_805EC2C lsls r0, 24 lsrs r0, 24 adds r2, r6, 0 cmp r7, 0 bne _0805EB4C mov r3, r8 cmp r3, 0 beq _0805EB46 b _0805E906 _0805EB46: cmp r7, r0 beq _0805EB4C b _0805E906 _0805EB4C: mov r4, r10 adds r4, 0x1 mov r0, r9 adds r1, r4, 0 bl sub_805EC2C lsls r0, 24 lsrs r0, 24 mov r8, r0 mov r0, r9 adds r1, r4, 0 ldr r2, [sp, 0x1C] bl sub_805EC2C lsls r0, 24 lsrs r7, r0, 24 mov r0, r9 adds r1, r4, 0 adds r2, r5, 0 bl sub_805EC2C lsls r0, 24 lsrs r0, 24 cmp r7, 0 bne _0805EC18 mov r4, r8 cmp r4, 0 beq _0805EB86 b _0805E906 _0805EB86: cmp r7, r0 beq _0805EC18 b _0805E906 _0805EB8C: mov r6, r10 subs r6, 0x1 ldr r4, [sp, 0x1C] subs r4, 0x1 mov r0, r9 adds r1, r6, 0 adds r2, r4, 0 bl sub_805EC2C lsls r0, 24 lsrs r0, 24 mov r8, r0 mov r0, r9 mov r1, r10 adds r2, r4, 0 bl sub_805EC2C lsls r0, 24 lsrs r7, r0, 24 mov r5, r10 adds r5, 0x1 mov r0, r9 adds r1, r5, 0 adds r2, r4, 0 bl sub_805EC2C lsls r0, 24 lsrs r0, 24 adds r1, r6, 0 cmp r7, 0 bne _0805EBD8 mov r2, r8 cmp r2, 0 beq _0805EBD2 b _0805E906 _0805EBD2: cmp r7, r0 beq _0805EBD8 b _0805E906 _0805EBD8: ldr r4, [sp, 0x1C] adds r4, 0x1 mov r0, r9 adds r2, r4, 0 bl sub_805EC2C lsls r0, 24 lsrs r0, 24 mov r8, r0 mov r0, r9 mov r1, r10 adds r2, r4, 0 bl sub_805EC2C lsls r0, 24 lsrs r7, r0, 24 mov r0, r9 adds r1, r5, 0 adds r2, r4, 0 bl sub_805EC2C lsls r0, 24 lsrs r0, 24 cmp r7, 0 bne _0805EC18 mov r3, r8 cmp r3, 0 beq _0805EC12 b _0805E906 _0805EC12: cmp r7, r0 beq _0805EC18 b _0805E906 _0805EC18: movs r0, 0x1 _0805EC1A: add sp, 0x24 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_805E874 thumb_func_start sub_805EC2C sub_805EC2C: push {lr} sub sp, 0x4 lsls r1, 16 lsls r2, 16 lsrs r1, 16 orrs r1, r2 str r1, [sp] mov r1, sp bl sub_8070564 lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r1} bx r1 thumb_func_end sub_805EC2C thumb_func_start sub_805EC4C sub_805EC4C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r5, r0, 0 lsls r1, 24 lsrs r1, 24 mov r10, r1 ldr r7, [r5, 0x70] ldr r1, _0805ECC8 adds r0, r7, 0 adds r0, 0x46 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldrh r1, [r0] ldrh r3, [r5, 0x4] adds r1, r3 lsls r1, 16 ldrh r0, [r0, 0x2] ldrh r3, [r5, 0x6] adds r0, r3 lsls r0, 16 lsrs r2, r1, 16 orrs r2, r0 lsls r0, r2, 16 asrs r0, 16 asrs r1, r2, 16 bl sub_804954C ldr r0, [r0, 0x10] mov r8, r0 cmp r0, 0 bne _0805EC94 b _0805ED96 _0805EC94: mov r0, r8 bl sub_80450F8 cmp r0, 0x1 bne _0805ED96 mov r0, r8 ldr r6, [r0, 0x70] ldrb r0, [r6, 0x6] cmp r0, 0 beq _0805ECDC ldrb r0, [r6, 0x8] subs r0, 0x1 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bls _0805ECDC adds r0, r6, 0 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x4A beq _0805ECC2 cmp r0, 0x47 bne _0805ECCC _0805ECC2: movs r0, 0x1 b _0805ECCE .align 2, 0 _0805ECC8: .4byte gUnknown_80F4448 _0805ECCC: movs r0, 0 _0805ECCE: cmp r0, 0 bne _0805ECDC adds r0, r6, 0 adds r0, 0xA4 ldrb r0, [r0] cmp r0, 0x1 bne _0805ED96 _0805ECDC: adds r0, r7, 0 adds r0, 0xB0 ldrb r0, [r0] cmp r0, 0x2 beq _0805ED96 cmp r0, 0x1 beq _0805ED96 cmp r0, 0x7 beq _0805ED96 cmp r0, 0x5 beq _0805ED96 cmp r0, 0x3 beq _0805ED96 cmp r0, 0x4 beq _0805ED96 adds r0, r6, 0 adds r0, 0xB0 ldrb r0, [r0] cmp r0, 0x2 beq _0805ED96 cmp r0, 0x1 beq _0805ED96 cmp r0, 0x7 beq _0805ED96 cmp r0, 0x5 beq _0805ED96 cmp r0, 0x3 beq _0805ED96 cmp r0, 0x4 beq _0805ED96 adds r0, r7, 0 adds r0, 0xBC ldrb r0, [r0] cmp r0, 0x2 beq _0805ED96 adds r0, r6, 0 adds r0, 0xBC ldrb r0, [r0] cmp r0, 0x2 beq _0805ED96 adds r0, r6, 0 adds r0, 0xA8 ldrb r0, [r0] cmp r0, 0 beq _0805ED3E cmp r0, 0x2 beq _0805ED3E cmp r0, 0x4 bne _0805ED96 _0805ED3E: adds r0, r7, 0 adds r0, 0xA8 ldrb r0, [r0] cmp r0, 0 beq _0805ED50 cmp r0, 0x2 beq _0805ED50 cmp r0, 0x4 bne _0805ED96 _0805ED50: mov r0, r8 movs r1, 0 bl sub_80570F4 lsls r0, 24 cmp r0, 0 bne _0805ED96 adds r4, r7, 0 adds r4, 0x46 ldrb r1, [r4] adds r0, r5, 0 bl sub_8070F80 lsls r0, 24 mov r9, r4 cmp r0, 0 beq _0805ED96 mov r1, r10 cmp r1, 0 beq _0805EDA0 adds r1, r5, 0x4 mov r0, r8 bl sub_807049C lsls r0, 24 cmp r0, 0 beq _0805EDA0 ldr r0, _0805ED9C ldr r1, [r0] movs r0, 0 movs r2, 0 bl sub_8052B8C cmp r0, 0 bne _0805EDA0 _0805ED96: movs r0, 0 b _0805EE1E .align 2, 0 _0805ED9C: .4byte gUnknown_8100208 _0805EDA0: adds r0, r7, 0 adds r0, 0x44 movs r1, 0x2 bl sub_8044C94 ldr r0, _0805EDC0 ldrh r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0805EDC4 adds r1, r7, 0 adds r1, 0x48 movs r0, 0 b _0805EDCA .align 2, 0 _0805EDC0: .4byte gUnknown_20255F0 _0805EDC4: adds r1, r7, 0 adds r1, 0x48 movs r0, 0x1 _0805EDCA: strb r0, [r1] ldrh r0, [r7] movs r2, 0x80 lsls r2, 8 adds r5, r2, 0 movs r4, 0 orrs r0, r5 strh r0, [r7] adds r0, r6, 0 adds r0, 0x44 movs r1, 0x2 bl sub_8044C94 adds r0, r6, 0 adds r0, 0x48 strb r4, [r0] mov r3, r9 ldrb r0, [r3] adds r0, 0x4 movs r1, 0x7 ands r0, r1 adds r1, r6, 0 adds r1, 0x46 strb r0, [r1] ldrh r0, [r6] orrs r0, r5 strh r0, [r6] mov r0, r8 ldrh r1, [r0, 0x4] movs r2, 0xB6 lsls r2, 1 adds r0, r6, r2 strh r1, [r0] mov r3, r8 ldrh r0, [r3, 0x6] adds r2, 0x2 adds r1, r6, r2 strh r0, [r1] ldr r0, _0805EE2C ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0xE] _0805EE1E: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805EE2C: .4byte gUnknown_203B418 thumb_func_end sub_805EC4C thumb_func_start sub_805EE30 sub_805EE30: push {r4-r7,lr} mov r7, r8 push {r7} bl sub_8083600 adds r5, r0, 0 cmp r5, 0 bne _0805EE42 b _0805EF52 _0805EE42: bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _0805EE4E b _0805EF52 _0805EE4E: adds r0, r5, 0 bl sub_8045128 adds r4, r0, 0 adds r0, r5, 0 movs r1, 0xD bl sub_80718D8 lsls r0, 24 cmp r0, 0 beq _0805EE82 ldr r0, [r5, 0x70] adds r0, 0xE4 ldrb r0, [r0] cmp r0, 0x3 beq _0805EE82 adds r0, r5, 0 movs r1, 0x9 bl sub_8046CB0 lsls r0, 24 cmp r0, 0 bne _0805EE82 adds r0, r5, 0x4 bl sub_804AE84 _0805EE82: ldrh r1, [r4] movs r0, 0x80 lsls r0, 2 ands r0, r1 cmp r0, 0 beq _0805EE96 ldr r0, _0805EEB0 ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0x1] _0805EE96: ldr r4, [r4, 0x14] cmp r4, 0 beq _0805EF52 adds r0, r4, 0 bl sub_80450F8 cmp r0, 0x5 bhi _0805EF52 lsls r0, 2 ldr r1, _0805EEB4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0805EEB0: .4byte gUnknown_203B418 _0805EEB4: .4byte _0805EEB8 .align 2, 0 _0805EEB8: .4byte _0805EF52 .4byte _0805EF52 .4byte _0805EED0 .4byte _0805EF2A .4byte _0805EF52 .4byte _0805EF52 _0805EED0: adds r0, r4, 0 bl sub_8045104 adds r6, r0, 0 movs r0, 0 mov r8, r0 movs r7, 0 adds r0, r5, 0 movs r1, 0x13 bl sub_80718D8 lsls r0, 24 cmp r0, 0 beq _0805EF00 adds r1, r4, 0 adds r1, 0x20 ldrb r0, [r1] cmp r0, 0 bne _0805EF00 movs r0, 0x1 strb r0, [r1] bl sub_8049ED4 movs r7, 0x1 _0805EF00: ldrb r0, [r6, 0x1] cmp r0, 0 beq _0805EF18 cmp r0, 0x1 beq _0805EF52 cmp r0, 0x2 bne _0805EF12 movs r1, 0x1 mov r8, r1 _0805EF12: mov r0, r8 cmp r0, 0 beq _0805EF52 _0805EF18: cmp r7, 0 bne _0805EF52 adds r1, r5, 0x4 adds r0, r5, 0 movs r2, 0 movs r3, 0x1 bl sub_807FE9C b _0805EF52 _0805EF2A: adds r0, r4, 0 bl sub_8045108 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _0805EF44 adds r0, r5, 0x4 movs r1, 0x1 bl sub_8045DB4 b _0805EF52 _0805EF44: ldr r0, _0805EF5C ldr r0, [r0] movs r1, 0xB8 lsls r1, 3 adds r0, r1 movs r1, 0x4 str r1, [r0] _0805EF52: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0805EF5C: .4byte gUnknown_203B418 thumb_func_end sub_805EE30 thumb_func_start sub_805EF60 sub_805EF60: push {r4-r6,lr} adds r5, r0, 0 adds r6, r1, 0 bl sub_80696A8 adds r4, r0, 0 cmp r4, 0 beq _0805EF9E adds r0, r4, 0 bl sub_80450F8 cmp r0, 0x1 bne _0805EF9E adds r0, r5, 0 bl sub_8070BC0 lsls r0, 24 cmp r0, 0 beq _0805EF9E ldr r1, [r4, 0x70] ldrb r0, [r1, 0x6] cmp r0, 0 beq _0805EFA2 adds r0, r1, 0 adds r0, 0xA4 ldrb r0, [r0] cmp r0, 0x1 beq _0805EFA2 ldrb r0, [r1, 0x8] cmp r0, 0x1 beq _0805EFA2 _0805EF9E: movs r0, 0 b _0805EFAE _0805EFA2: adds r0, r6, 0 adds r0, 0x44 movs r1, 0x13 bl sub_8044C94 movs r0, 0x1 _0805EFAE: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_805EF60 thumb_func_start sub_805EFB4 sub_805EFB4: push {r4-r7,lr} mov r7, r8 push {r7} mov r8, r0 lsls r1, 24 lsrs r7, r1, 24 bl sub_8083654 adds r6, r0, 0 cmp r7, 0 beq _0805EFE2 adds r0, 0xBC ldrb r0, [r0] cmp r0, 0x4 bne _0805EFE2 adds r0, r6, 0 adds r0, 0x46 ldrb r1, [r0] adds r1, 0x4 movs r2, 0x7 ands r1, r2 strb r1, [r0] b _0805F020 _0805EFE2: adds r0, r6, 0 adds r0, 0xBC ldrb r0, [r0] cmp r0, 0x2 bne _0805F020 movs r0, 0x8 bl sub_8084100 adds r4, r0, 0 movs r5, 0 _0805EFF6: cmp r7, 0 bne _0805F008 mov r0, r8 adds r1, r4, 0 bl sub_8070D6C lsls r0, 24 cmp r0, 0 beq _0805F014 _0805F008: movs r0, 0x7 ands r4, r0 adds r0, r6, 0 adds r0, 0x46 strb r4, [r0] b _0805F020 _0805F014: adds r4, 0x1 movs r0, 0x7 ands r4, r0 adds r5, 0x1 cmp r5, 0x7 ble _0805EFF6 _0805F020: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_805EFB4 thumb_func_start sub_805F02C sub_805F02C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 ldr r5, _0805F058 ldr r0, [r5] adds r0, 0xBC ldr r7, [r0] bl sub_8083600 mov r9, r0 ldr r0, [r7, 0x70] mov r8, r0 mov r1, r9 ldr r4, [r1, 0x70] ldrb r0, [r0, 0x7] cmp r0, 0 beq _0805F060 ldr r0, _0805F05C b _0805F08E .align 2, 0 _0805F058: .4byte gUnknown_203B418 _0805F05C: .4byte gUnknown_80F9BD8 _0805F060: movs r0, 0x2 bl sub_8047084 lsls r0, 24 cmp r0, 0 bne _0805F076 bl sub_807EF48 lsls r0, 24 cmp r0, 0 beq _0805F080 _0805F076: ldr r0, _0805F07C b _0805F08E .align 2, 0 _0805F07C: .4byte gUnknown_80F9C08 _0805F080: ldr r2, [r5] ldr r3, _0805F098 adds r0, r2, r3 ldrb r1, [r0] cmp r1, 0 beq _0805F0A0 ldr r0, _0805F09C _0805F08E: ldr r1, [r0] adds r0, r7, 0 bl sub_805239C b _0805F184 .align 2, 0 _0805F098: .4byte 0x0000066e _0805F09C: .4byte gUnknown_80F9C2C _0805F0A0: ldr r5, _0805F114 adds r0, r2, r5 strb r1, [r0] movs r0, 0x1 mov r2, r8 strb r0, [r2, 0x7] strb r1, [r4, 0x7] movs r6, 0 movs r3, 0x44 add r3, r8 mov r10, r3 adds r5, r4, 0 adds r5, 0x44 str r5, [sp] adds r2, 0x64 str r2, [sp, 0x4] adds r4, 0x64 str r4, [sp, 0x8] ldr r3, _0805F118 movs r2, 0x1 _0805F0C8: movs r0, 0x64 muls r0, r6 ldr r1, _0805F11C adds r0, r1 ldr r1, [r3] adds r4, r1, r0 movs r5, 0 ldrb r1, [r4] adds r0, r2, 0 ands r0, r1 cmp r0, 0 beq _0805F12A movs r1, 0xA ldrsh r0, [r4, r1] str r2, [sp, 0xC] str r3, [sp, 0x10] bl sub_806A538 lsls r0, 24 ldr r2, [sp, 0xC] ldr r3, [sp, 0x10] cmp r0, 0 bne _0805F102 movs r5, 0xA ldrsh r1, [r4, r5] movs r0, 0x58 muls r1, r0 ldr r0, [r3] adds r5, r0, r1 _0805F102: mov r0, r8 ldrb r0, [r0, 0xA] cmp r6, r0 bne _0805F120 strb r2, [r4, 0x2] cmp r5, 0 beq _0805F12A strb r2, [r5, 0x2] b _0805F12A .align 2, 0 _0805F114: .4byte 0x00000679 _0805F118: .4byte gUnknown_203B45C _0805F11C: .4byte 0x00008df8 _0805F120: movs r0, 0 strb r0, [r4, 0x2] cmp r5, 0 beq _0805F12A strb r0, [r5, 0x2] _0805F12A: adds r6, 0x1 cmp r6, 0x3 ble _0805F0C8 ldr r0, _0805F194 movs r4, 0 str r4, [r0] mov r1, r10 ldr r0, [sp] ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} adds r0, r7, 0 bl sub_803F508 mov r0, r9 bl sub_8041AD0 bl sub_8083600 bl sub_8041AE0 ldr r0, _0805F198 adds r1, r7, 0 movs r2, 0 bl sub_8045B94 ldr r0, _0805F19C ldr r1, [r0] adds r0, r7, 0 bl sub_80522A8 movs r0, 0 bl sub_807EC28 ldr r0, [sp, 0x4] strb r4, [r0] ldr r1, [sp, 0x8] strb r4, [r1] mov r0, r9 bl sub_806A6E8 adds r0, r7, 0 bl sub_806A6E8 _0805F184: add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0805F194: .4byte gUnknown_203B450 _0805F198: .4byte gUnknown_202DF98 _0805F19C: .4byte gUnknown_80F9BB0 thumb_func_end sub_805F02C thumb_func_start sub_805F1A0 sub_805F1A0: push {lr} bl sub_8083654 adds r0, 0x44 pop {r1} bx r1 thumb_func_end sub_805F1A0 thumb_func_start sub_805F1AC sub_805F1AC: push {lr} bl sub_8083654 adds r0, 0x44 ldrh r0, [r0] pop {r1} bx r1 thumb_func_end sub_805F1AC thumb_func_start ShowFieldMenu ShowFieldMenu: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x18 lsls r0, 24 lsls r1, 24 lsrs r2, r1, 24 lsrs r0, 24 str r0, [sp, 0xC] ldr r0, _0805F208 ldr r1, [r0] movs r0, 0xB8 lsls r0, 3 adds r1, r0 ldr r3, [r1] mov r10, r3 movs r0, 0 str r0, [sp, 0x10] mvns r0, r3 lsrs r0, 31 str r0, [sp, 0x14] movs r0, 0x1 negs r0, r0 str r0, [r1] cmp r3, 0 blt _0805F1F8 mov r1, r10 str r1, [sp, 0x10] _0805F1F8: cmp r2, 0 beq _0805F23C ldr r0, _0805F20C movs r1, 0x80 lsls r1, 1 bl sub_800C074 b _0805F240 .align 2, 0 _0805F208: .4byte gUnknown_203B418 _0805F20C: .4byte 0x00000137 _0805F210: bl sub_8083600 movs r1, 0x1 bl sub_806675C b _0805F226 _0805F21C: bl sub_8083600 movs r1, 0x1 bl sub_806684C _0805F226: movs r0, 0x1 bl sub_8044C10 movs r0, 0x50 movs r1, 0x4D bl sub_803E708 movs r0, 0 bl sub_8052210 b _0805F92A _0805F23C: bl sub_8083D44 _0805F240: mov r2, r10 cmp r2, 0 bge _0805F2FA movs r0, 0x1 bl sub_8044C10 ldr r0, _0805F388 movs r1, 0x1 negs r1, r1 str r1, [r0] ldr r0, [sp, 0xC] bl sub_805F94C bl sub_8083600 movs r1, 0 bl sub_806A2BC ldr r4, _0805F38C ldr r5, _0805F390 adds r6, r4, 0 adds r6, 0x2A _0805F26C: adds r0, r4, 0 bl AddMenuCursorSprite movs r0, 0x1D bl sub_803E46C ldrh r1, [r5, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0805F290 movs r0, 0x1 bl sub_8083CE0 adds r0, r4, 0 movs r1, 0x1 bl sub_80136E0 _0805F290: ldrh r1, [r5, 0x4] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0805F2A8 movs r0, 0x1 bl sub_8083CE0 adds r0, r4, 0 movs r1, 0x1 bl sub_8013744 _0805F2A8: ldrh r1, [r5, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0805F2BC adds r0, r4, 0 adds r0, 0x29 ldrb r0, [r0] cmp r0, 0 beq _0805F2D0 _0805F2BC: ldr r0, _0805F394 movs r3, 0x18 ldrsh r1, [r4, r3] adds r1, 0x1 adds r1, r0 ldrb r0, [r1] cmp r0, 0x7 beq _0805F3A8 bl sub_8083D30 _0805F2D0: ldrh r1, [r5, 0x2] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _0805F2E0 ldrb r0, [r6] cmp r0, 0 beq _0805F26C _0805F2E0: bl sub_8083D30 movs r0, 0x1 negs r0, r0 _0805F2E8: str r0, [sp, 0x10] ldr r0, _0805F38C bl AddMenuCursorSprite movs r0, 0x1D bl sub_803E46C movs r1, 0x1 str r1, [sp, 0xC] _0805F2FA: ldr r2, [sp, 0x10] mov r10, r2 cmp r2, 0x1 beq _0805F304 b _0805F428 _0805F304: movs r0, 0x1 bl sub_8044C10 ldr r1, _0805F398 ldr r0, [sp, 0x4] ands r0, r1 ldr r1, _0805F39C ands r0, r1 movs r1, 0x80 lsls r1, 1 orrs r0, r1 ldr r1, _0805F3A0 ands r0, r1 ldr r1, _0805F3A4 ands r0, r1 str r0, [sp, 0x4] bl sub_8083600 add r1, sp, 0x4 bl sub_805FD74 lsls r0, 24 cmp r0, 0 beq _0805F33A movs r3, 0x1 negs r3, r3 mov r10, r3 _0805F33A: add r0, sp, 0x4 bl sub_805FD3C lsls r0, 24 cmp r0, 0 beq _0805F35C bl sub_8083600 add r1, sp, 0x4 bl sub_805FD74 lsls r0, 24 cmp r0, 0 beq _0805F35C movs r0, 0x1 bl sub_8044C10 _0805F35C: bl sub_805F1AC lsls r0, 16 lsrs r0, 16 cmp r0, 0xC bne _0805F3B2 bl sub_8083600 movs r1, 0 movs r2, 0xC bl sub_8044D90 ldrb r2, [r0] movs r1, 0x4 orrs r1, r2 strb r1, [r0] bl sub_805F1A0 bl sub_8060D24 b _0805F412 .align 2, 0 _0805F388: .4byte gUnknown_202F260 _0805F38C: .4byte gUnknown_202EE10 _0805F390: .4byte gUnknown_20255F0 _0805F394: .4byte gUnknown_202749A _0805F398: .4byte 0xffffff00 _0805F39C: .4byte 0xffff00ff _0805F3A0: .4byte 0xff00ffff _0805F3A4: .4byte 0x00ffffff _0805F3A8: bl sub_8083D08 movs r1, 0x18 ldrsh r0, [r4, r1] b _0805F2E8 _0805F3B2: cmp r0, 0x35 bne _0805F3D0 bl sub_8083600 movs r1, 0 movs r2, 0xD bl sub_8044D90 adds r4, r0, 0 bl sub_8083600 adds r1, r4, 0 bl sub_8048A68 b _0805F40A _0805F3D0: cmp r0, 0x10 bne _0805F3EE bl sub_8083600 movs r1, 0 movs r2, 0xE bl sub_8044D90 adds r4, r0, 0 bl sub_8083600 adds r1, r4, 0 bl sub_8048950 b _0805F40A _0805F3EE: cmp r0, 0x2C bne _0805F41A bl sub_8083600 movs r1, 0 movs r2, 0xF bl sub_8044D90 adds r4, r0, 0 bl sub_8083600 adds r1, r4, 0 bl sub_8048B9C _0805F40A: lsls r0, 24 cmp r0, 0 beq _0805F412 b _0805F72C _0805F412: movs r0, 0x1 bl sub_8044C10 b _0805F72C _0805F41A: cmp r0, 0x3C bne _0805F420 b _0805F210 _0805F420: cmp r0, 0x3D bne _0805F426 b _0805F21C _0805F426: b _0805F72C _0805F428: ldr r2, [sp, 0x10] cmp r2, 0x2 beq _0805F430 b _0805F52E _0805F430: movs r0, 0x1 bl sub_8044C10 bl sub_8083600 bl sub_8060E38 lsls r0, 24 cmp r0, 0 beq _0805F44A movs r3, 0x1 negs r3, r3 mov r10, r3 _0805F44A: bl sub_805F1AC lsls r0, 16 lsrs r0, 16 cmp r0, 0x1B bne _0805F45E bl sub_805F1A0 movs r1, 0 b _0805F4B2 _0805F45E: bl sub_805F1AC lsls r0, 16 lsrs r0, 16 cmp r0, 0x1C bne _0805F474 bl sub_805F1A0 bl sub_806752C b _0805F4B6 _0805F474: bl sub_805F1AC lsls r0, 16 lsrs r0, 16 cmp r0, 0x34 bne _0805F48A bl sub_805F1A0 bl sub_8067768 b _0805F4B6 _0805F48A: bl sub_805F1AC lsls r0, 16 lsrs r0, 16 cmp r0, 0x1A bne _0805F4A0 bl sub_805F1A0 bl sub_80615E8 b _0805F4B6 _0805F4A0: bl sub_805F1AC lsls r0, 16 lsrs r0, 16 cmp r0, 0x30 bne _0805F4BE bl sub_805F1A0 movs r1, 0x1 _0805F4B2: bl sub_8061A38 _0805F4B6: movs r0, 0x1 bl sub_8044C10 b _0805F72C _0805F4BE: bl sub_805F1AC lsls r0, 16 lsrs r0, 16 cmp r0, 0x19 beq _0805F4CC b _0805F72C _0805F4CC: bl sub_805F1A0 bl sub_8062D8C movs r6, 0 movs r4, 0 _0805F4D8: ldr r0, _0805F518 ldr r0, [r0] lsls r1, r4, 2 ldr r2, _0805F51C adds r0, r2 adds r0, r1 ldr r5, [r0] adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0805F526 bl sub_805F1A0 ldrb r0, [r0, 0x4] cmp r4, r0 bne _0805F524 ldr r0, _0805F520 str r6, [r0] bl sub_805F1AC lsls r0, 16 cmp r0, 0 bne _0805F50C b _0805F72C _0805F50C: adds r0, r5, 0 movs r1, 0 bl sub_806A2BC b _0805F72C .align 2, 0 _0805F518: .4byte gUnknown_203B418 _0805F51C: .4byte 0x0001357c _0805F520: .4byte gUnknown_202F260 _0805F524: adds r6, 0x1 _0805F526: adds r4, 0x1 cmp r4, 0x3 ble _0805F4D8 b _0805F72C _0805F52E: ldr r3, [sp, 0x10] cmp r3, 0 beq _0805F536 b _0805F73A _0805F536: movs r7, 0 movs r0, 0x1 bl sub_8044C10 movs r5, 0 b _0805F544 _0805F542: adds r5, 0x1 _0805F544: cmp r5, 0x3 bgt _0805F56C ldr r0, _0805F600 ldr r0, [r0] lsls r1, r5, 2 ldr r2, _0805F604 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0805F542 ldr r0, [r4, 0x70] ldrb r0, [r0, 0x7] cmp r0, 0 beq _0805F542 adds r7, r5, 0 _0805F56C: movs r0, 0 bl sub_8044C10 _0805F572: movs r6, 0 mov r9, r6 mov r8, r6 movs r5, 0 _0805F57A: ldr r0, _0805F600 ldr r0, [r0] lsls r1, r5, 2 ldr r3, _0805F604 adds r0, r3 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_8071A8C lsls r0, 24 cmp r0, 0 beq _0805F5A0 cmp r5, r7 bne _0805F59C mov r9, r8 adds r6, r4, 0 _0805F59C: movs r0, 0x1 add r8, r0 _0805F5A0: adds r5, 0x1 cmp r5, 0x3 ble _0805F57A cmp r6, 0 bne _0805F5B0 bl sub_8083600 adds r6, r0, 0 _0805F5B0: adds r0, r6, 0 movs r1, 0 bl sub_806A2BC adds r0, r6, 0x4 movs r1, 0 movs r2, 0x1 movs r3, 0x1 bl sub_804A728 bl sub_8083654 adds r0, 0x48 strb r7, [r0] movs r0, 0 bl sub_8044C10 mov r1, r8 str r1, [sp] adds r0, r6, 0 movs r1, 0 movs r2, 0x1 mov r3, r9 bl sub_8062F90 lsls r0, 24 cmp r0, 0 beq _0805F5EE movs r2, 0x1 negs r2, r2 mov r10, r2 _0805F5EE: bl sub_805F1AC lsls r0, 16 lsrs r0, 16 cmp r0, 0x6 bne _0805F63C adds r4, r7, 0 movs r5, 0 b _0805F60A .align 2, 0 _0805F600: .4byte gUnknown_203B418 _0805F604: .4byte 0x0001357c _0805F608: adds r5, 0x1 _0805F60A: cmp r5, 0x3 bgt _0805F676 adds r7, 0x1 cmp r7, 0x3 ble _0805F616 movs r7, 0 _0805F616: ldr r0, _0805F634 ldr r0, [r0] lsls r1, r7, 2 ldr r3, _0805F638 adds r0, r3 adds r0, r1 ldr r6, [r0] adds r0, r6, 0 bl sub_8071A8C lsls r0, 24 cmp r0, 0 beq _0805F608 b _0805F676 .align 2, 0 _0805F634: .4byte gUnknown_203B418 _0805F638: .4byte 0x0001357c _0805F63C: bl sub_805F1AC lsls r0, 16 lsrs r0, 16 cmp r0, 0x7 bne _0805F694 adds r4, r7, 0 movs r5, 0 b _0805F650 _0805F64E: adds r5, 0x1 _0805F650: cmp r5, 0x3 bgt _0805F676 subs r7, 0x1 cmp r7, 0 bge _0805F65C movs r7, 0x3 _0805F65C: ldr r0, _0805F68C ldr r0, [r0] lsls r1, r7, 2 ldr r2, _0805F690 adds r0, r2 adds r0, r1 ldr r6, [r0] adds r0, r6, 0 bl sub_8071A8C lsls r0, 24 cmp r0, 0 beq _0805F64E _0805F676: bl sub_8083654 adds r0, 0x48 strb r7, [r0] cmp r4, r7 bne _0805F684 b _0805F572 _0805F684: movs r0, 0 bl sub_8083CE0 b _0805F572 .align 2, 0 _0805F68C: .4byte gUnknown_203B418 _0805F690: .4byte 0x0001357c _0805F694: bl sub_805F1AC lsls r0, 16 lsrs r0, 16 cmp r0, 0x1D bne _0805F6AA bl sub_805F1A0 bl sub_80637E8 b _0805F56C _0805F6AA: bl sub_805F1AC lsls r0, 16 lsrs r0, 16 cmp r0, 0x1E beq _0805F6C2 bl sub_805F1AC lsls r0, 16 lsrs r0, 16 cmp r0, 0x33 bne _0805F6CE _0805F6C2: bl sub_805F1A0 movs r1, 0 bl sub_8063A70 b _0805F56C _0805F6CE: bl sub_805F1AC lsls r0, 16 lsrs r0, 16 cmp r0, 0x1F bne _0805F6E4 bl sub_805F1A0 bl sub_8063B54 b _0805F56C _0805F6E4: bl sub_805F1AC lsls r0, 16 lsrs r0, 16 cmp r0, 0x20 bne _0805F6FA bl sub_805F1A0 bl sub_8063BB4 b _0805F56C _0805F6FA: bl sub_805F1AC lsls r0, 16 lsrs r0, 16 cmp r0, 0x21 bne _0805F712 bl sub_805F1A0 movs r1, 0 bl sub_8063CF0 b _0805F56C _0805F712: bl sub_8083600 movs r1, 0 bl sub_806A2BC bl sub_8083600 adds r0, 0x4 movs r1, 0 movs r2, 0x1 movs r3, 0x1 bl sub_804A728 _0805F72C: bl sub_805F1AC lsls r0, 16 cmp r0, 0 beq _0805F738 b _0805F92A _0805F738: b _0805F904 _0805F73A: ldr r3, [sp, 0x10] cmp r3, 0x4 beq _0805F742 b _0805F8E0 _0805F742: bl sub_8083600 movs r1, 0x4 ldrsh r2, [r0, r1] movs r3, 0x6 ldrsh r1, [r0, r3] adds r0, r2, 0 bl sub_804954C ldr r4, [r0, 0x14] cmp r4, 0 bne _0805F75C b _0805F88C _0805F75C: adds r0, r4, 0 bl sub_80450F8 cmp r0, 0x3 beq _0805F768 b _0805F872 _0805F768: movs r0, 0x1 bl sub_8044C10 ldr r1, _0805F7F0 ldr r0, [sp, 0x8] ands r0, r1 ldr r1, _0805F7F4 ands r0, r1 movs r1, 0x80 lsls r1, 1 orrs r0, r1 ldr r1, _0805F7F8 ands r0, r1 movs r1, 0x80 lsls r1, 9 orrs r0, r1 ldr r1, _0805F7FC ands r0, r1 adds r1, 0x1 orrs r0, r1 str r0, [sp, 0x8] bl sub_8083600 add r4, sp, 0x8 adds r1, r4, 0 bl sub_805FD74 lsls r0, 24 adds r0, r4, 0 bl sub_805FD3C lsls r0, 24 cmp r0, 0 beq _0805F7C2 bl sub_8083600 adds r1, r4, 0 bl sub_805FD74 lsls r0, 24 cmp r0, 0 beq _0805F7C2 movs r0, 0x1 bl sub_8044C10 _0805F7C2: bl sub_805F1AC lsls r0, 16 lsrs r0, 16 adds r1, r0, 0 cmp r0, 0xC bne _0805F800 bl sub_8083600 movs r1, 0 movs r2, 0x10 bl sub_8044D90 ldrb r2, [r0] movs r1, 0x4 orrs r1, r2 strb r1, [r0] bl sub_805F1A0 bl sub_8060D24 b _0805F840 .align 2, 0 _0805F7F0: .4byte 0xffffff00 _0805F7F4: .4byte 0xffff00ff _0805F7F8: .4byte 0xff00ffff _0805F7FC: .4byte 0x00ffffff _0805F800: cmp r0, 0x35 bne _0805F81E bl sub_8083600 movs r1, 0 movs r2, 0x11 bl sub_8044D90 adds r4, r0, 0 bl sub_8083600 adds r1, r4, 0 bl sub_8048A68 b _0805F83A _0805F81E: cmp r0, 0x10 bne _0805F848 bl sub_8083600 movs r1, 0 movs r2, 0x12 bl sub_8044D90 adds r4, r0, 0 bl sub_8083600 adds r1, r4, 0 bl sub_8048950 _0805F83A: lsls r0, 24 cmp r0, 0 bne _0805F8A8 _0805F840: movs r0, 0x1 bl sub_8044C10 b _0805F8A8 _0805F848: cmp r1, 0x2C bne _0805F8A8 bl sub_8083600 movs r1, 0 movs r2, 0x13 bl sub_8044D90 adds r4, r0, 0 bl sub_8083600 adds r1, r4, 0 bl sub_8048B9C lsls r0, 24 cmp r0, 0 bne _0805F8A8 movs r0, 0x1 bl sub_8044C10 b _0805F8A8 _0805F872: adds r0, r4, 0 bl sub_80450F8 cmp r0, 0x2 bne _0805F8CE movs r0, 0x1 bl sub_8044C10 bl sub_8083600 bl sub_80643AC b _0805F8A8 _0805F88C: ldrh r0, [r0] movs r2, 0x80 lsls r2, 2 adds r1, r2, 0 ands r0, r1 cmp r0, 0 beq _0805F8B4 movs r0, 0x1 bl sub_8044C10 bl sub_8083600 bl sub_80647F0 _0805F8A8: bl sub_805F1AC lsls r0, 16 cmp r0, 0 bne _0805F92A b _0805F8CE _0805F8B4: bl sub_8083600 adds r1, r0, 0 ldr r0, _0805F8D8 movs r2, 0 bl sub_8045B94 ldr r0, _0805F8DC ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage _0805F8CE: movs r3, 0x1 negs r3, r3 mov r10, r3 b _0805F904 .align 2, 0 _0805F8D8: .4byte gUnknown_202DF98 _0805F8DC: .4byte gUnknown_80FDE18 _0805F8E0: ldr r0, [sp, 0x10] cmp r0, 0x3 bne _0805F904 bl sub_8064BE0 ldr r0, _0805F91C ldr r0, [r0] ldrb r0, [r0, 0x4] cmp r0, 0 bne _0805F92A bl sub_805F1AC lsls r0, 16 cmp r0, 0 bne _0805F92A movs r1, 0x1 negs r1, r1 mov r10, r1 _0805F904: ldr r2, [sp, 0x10] cmp r2, 0 blt _0805F92A ldr r3, [sp, 0x14] cmp r3, 0 bne _0805F920 bl sub_80048D0 bl sub_8004914 b _0805F240 .align 2, 0 _0805F91C: .4byte gUnknown_203B418 _0805F920: bl sub_8083600 movs r1, 0 bl sub_806A2BC _0805F92A: movs r0, 0 movs r1, 0 bl sub_803EAF0 bl sub_80048D0 bl sub_8004914 add sp, 0x18 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end ShowFieldMenu thumb_func_start sub_805F94C sub_805F94C: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x10 lsls r0, 24 lsrs r5, r0, 24 ldr r4, _0805F994 movs r0, 0 strh r0, [r4, 0x18] movs r1, 0x5 strh r1, [r4, 0x1A] strh r1, [r4, 0x1C] strh r0, [r4, 0x1E] strh r0, [r4, 0x4] movs r1, 0x2 strh r1, [r4, 0x6] strh r0, [r4, 0xC] strh r0, [r4, 0xE] str r0, [r4] strh r0, [r4, 0x14] adds r0, r4, 0 adds r0, 0x28 bl sub_801317C adds r0, r4, 0 movs r1, 0x38 bl sub_80137B0 cmp r5, 0 beq _0805F998 movs r0, 0x7 movs r1, 0 bl sub_803EAF0 b _0805F9A0 .align 2, 0 _0805F994: .4byte gUnknown_202EE10 _0805F998: movs r0, 0x6 movs r1, 0 bl sub_803EAF0 _0805F9A0: movs r0, 0 bl sub_80073B8 bl sub_8083600 movs r1, 0x1 bl sub_8071518 lsls r0, 24 cmp r0, 0 beq _0805F9CC ldr r0, _0805F9C8 movs r2, 0x2 strb r2, [r0, 0x1] strb r2, [r0, 0x2] strb r2, [r0, 0x3] movs r1, 0x7 strb r1, [r0, 0x4] strb r2, [r0, 0x5] b _0805F9DA .align 2, 0 _0805F9C8: .4byte gUnknown_202749A _0805F9CC: ldr r1, _0805FBA0 movs r0, 0x7 strb r0, [r1, 0x1] strb r0, [r1, 0x2] strb r0, [r1, 0x3] strb r0, [r1, 0x4] strb r0, [r1, 0x5] _0805F9DA: ldr r4, _0805FBA4 adds r0, r4, 0 movs r1, 0 bl sub_8013800 adds r1, r0, 0 ldr r0, _0805FBA8 ldr r2, [r0] movs r6, 0 str r6, [sp] movs r0, 0x8 movs r3, 0 bl xxx_call_draw_string adds r0, r4, 0 movs r1, 0x1 bl sub_8013800 adds r1, r0, 0 ldr r0, _0805FBAC ldr r2, [r0] str r6, [sp] movs r0, 0x8 movs r3, 0 bl xxx_call_draw_string adds r0, r4, 0 movs r1, 0x2 bl sub_8013800 adds r1, r0, 0 ldr r0, _0805FBB0 ldr r2, [r0] str r6, [sp] movs r0, 0x8 movs r3, 0 bl xxx_call_draw_string adds r0, r4, 0 movs r1, 0x3 bl sub_8013800 adds r1, r0, 0 ldr r0, _0805FBB4 ldr r2, [r0] str r6, [sp] movs r0, 0x8 movs r3, 0 bl xxx_call_draw_string adds r0, r4, 0 movs r1, 0x4 bl sub_8013800 adds r1, r0, 0 ldr r0, _0805FBB8 ldr r2, [r0] str r6, [sp] movs r0, 0x8 movs r3, 0 bl xxx_call_draw_string movs r0, 0 bl sub_80073E0 cmp r5, 0 bne _0805FA62 b _0805FB92 _0805FA62: bl sub_8083600 ldr r7, [r0, 0x70] bl sub_805317C adds r5, r0, 0 bl sub_8008ED0 movs r4, 0x88 subs r4, r0 lsrs r0, r4, 31 adds r4, r0 asrs r4, 1 movs r0, 0x1 bl sub_80073B8 str r6, [sp] adds r0, r4, 0 movs r1, 0x2 adds r2, r5, 0 movs r3, 0x1 bl xxx_call_draw_string movs r0, 0x1 bl sub_80073E0 movs r0, 0x2 bl sub_80073B8 ldr r0, _0805FBBC ldr r0, [r0] add r2, sp, 0x8 add r3, sp, 0xC add r1, sp, 0x4 bl sub_8095014 movs r1, 0x9E lsls r1, 1 adds r0, r7, r1 ldr r0, [r0] bl sub_8094450 ldr r4, _0805FBC0 str r0, [r4] movs r2, 0xA0 lsls r2, 1 adds r0, r7, r2 ldr r0, [r0] bl sub_8094450 str r0, [r4, 0x4] ldr r0, _0805FBC4 ldr r2, [r0] str r6, [sp] movs r0, 0x73 movs r1, 0 movs r3, 0x2 bl sub_8014FF0 ldr r0, _0805FBC8 ldr r0, [r0] movs r1, 0x98 lsls r1, 2 adds r0, r1 ldr r0, [r0] str r0, [r4] ldr r0, _0805FBCC ldr r2, [r0] str r6, [sp] movs r0, 0x73 movs r1, 0xC movs r3, 0x2 bl sub_8014FF0 ldr r5, _0805FBD0 movs r0, 0 bl sub_807E580 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl sub_807EA18 ldr r0, _0805FBD4 ldr r2, [r0] str r6, [sp] movs r0, 0x73 movs r1, 0x18 movs r3, 0x2 bl sub_8014FF0 ldr r0, [sp, 0x4] str r0, [r4] ldr r0, [sp, 0x8] str r0, [r4, 0x4] ldr r0, [sp, 0xC] str r0, [r4, 0x8] ldr r0, _0805FBD8 ldr r2, [r0] str r6, [sp] movs r0, 0x73 movs r1, 0x24 movs r3, 0x2 bl sub_8014FF0 movs r7, 0 mov r8, r4 _0805FB3A: ldr r0, _0805FBDC ldr r0, [r0] lsls r1, r6, 2 ldr r2, _0805FBE0 adds r0, r2 adds r0, r1 ldr r5, [r0] adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0805FB86 ldr r4, [r5, 0x70] ldr r0, _0805FBD0 adds r1, r5, 0 movs r2, 0 bl sub_8045B94 movs r1, 0xE ldrsh r0, [r4, r1] mov r2, r8 str r0, [r2] movs r1, 0x10 ldrsh r0, [r4, r1] str r0, [r2, 0x4] ldr r0, _0805FBE4 ldr r2, [r0] movs r0, 0 str r0, [sp] movs r0, 0x4 adds r1, r7, 0 movs r3, 0x2 bl sub_8014FF0 adds r7, 0xC cmp r7, 0x2F bgt _0805FB8C _0805FB86: adds r6, 0x1 cmp r6, 0x3 ble _0805FB3A _0805FB8C: movs r0, 0x2 bl sub_80073E0 _0805FB92: add sp, 0x10 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0805FBA0: .4byte gUnknown_202749A _0805FBA4: .4byte gUnknown_202EE10 _0805FBA8: .4byte gUnknown_80FE988 _0805FBAC: .4byte gUnknown_80FE998 _0805FBB0: .4byte gUnknown_80FE9A8 _0805FBB4: .4byte gUnknown_80FE9B8 _0805FBB8: .4byte gUnknown_80FE9C8 _0805FBBC: .4byte gUnknown_203B47C _0805FBC0: .4byte gUnknown_202DE30 _0805FBC4: .4byte gUnknown_80F9174 _0805FBC8: .4byte gUnknown_203B460 _0805FBCC: .4byte gUnknown_80F9190 _0805FBD0: .4byte gUnknown_202DF98 _0805FBD4: .4byte gUnknown_80F91A8 _0805FBD8: .4byte gUnknown_80F91C8 _0805FBDC: .4byte gUnknown_203B418 _0805FBE0: .4byte 0x0001357c _0805FBE4: .4byte gUnknown_80F91E0 thumb_func_end sub_805F94C thumb_func_start sub_805FBE8 sub_805FBE8: push {r4,r5,lr} adds r5, r0, 0 movs r0, 0x8 adds r1, r5, 0 bl sub_803EAF0 _0805FBF4: movs r0, 0xE bl sub_803E46C bl xxx_draw_string_80144C4 bl sub_8016080 adds r4, r0, 0 cmp r4, 0 beq _0805FBF4 bl sub_80160D8 movs r0, 0xE bl sub_803E46C movs r0, 0 movs r1, 0 bl sub_803EAF0 cmp r4, 0x3 bne _0805FC28 ldrb r0, [r5] cmp r0, 0 beq _0805FC28 movs r0, 0x1 b _0805FC2A _0805FC28: movs r0, 0 _0805FC2A: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_805FBE8 thumb_func_start sub_805FC30 sub_805FC30: push {r4-r6,lr} sub sp, 0x78 adds r4, r0, 0 adds r6, r1, 0 add r5, sp, 0x4 adds r0, r5, 0 movs r1, 0 movs r2, 0x60 bl memset movs r3, 0x3 str r3, [sp, 0x8] str r3, [sp, 0x20] movs r2, 0 movs r0, 0x16 strh r0, [r5, 0x20] movs r1, 0x4 strh r1, [r5, 0x22] movs r0, 0x6 strh r0, [r5, 0x24] strh r1, [r5, 0x26] strh r1, [r5, 0x28] str r3, [sp, 0x38] str r3, [sp, 0x50] add r0, sp, 0x4 ldm r4!, {r1,r3,r5} stm r0!, {r1,r3,r5} ldm r4!, {r1,r3,r5} stm r0!, {r1,r3,r5} add r1, sp, 0x4 movs r0, 0x80 strb r0, [r1] ldr r4, _0805FD30 strh r2, [r4, 0x18] ldr r5, _0805FD34 ldr r0, [r5] strh r0, [r4, 0x1C] strh r0, [r4, 0x1A] strh r2, [r4, 0x1E] strh r2, [r4, 0x20] strh r2, [r4, 0x4] strh r2, [r4, 0x6] movs r0, 0x1 str r0, [r4] strh r2, [r4, 0xC] strh r2, [r4, 0xE] ldr r0, [r4, 0x8] str r0, [r4, 0x14] adds r0, r4, 0 adds r0, 0x28 bl sub_801317C add r0, sp, 0x4 strh r6, [r0, 0x20] adds r1, r0, 0 movs r0, 0x1C subs r0, r6 strh r0, [r1, 0x24] movs r1, 0x1C ldrsh r0, [r4, r1] movs r1, 0 bl sub_80095E4 add r2, sp, 0x4 adds r1, r2, 0 strh r0, [r1, 0x28] strh r0, [r2, 0x26] adds r0, r1, 0 movs r1, 0 bl sub_803ECB4 add r0, sp, 0x4 movs r2, 0x26 ldrsh r1, [r0, r2] lsls r1, 3 adds r0, r4, 0 bl sub_80137B0 movs r0, 0x1 bl sub_80073B8 movs r6, 0 ldr r0, [r5] cmp r6, r0 bge _0805FD20 add r5, sp, 0x64 _0805FCDC: adds r0, r6, 0 bl sub_8044F3C lsls r0, 24 movs r4, 0x2 cmp r0, 0 beq _0805FCEC movs r4, 0x7 _0805FCEC: adds r0, r6, 0 bl sub_8044EC8 adds r3, r0, 0 adds r0, r5, 0 ldr r1, _0805FD38 adds r2, r4, 0 bl sub_800D158 ldr r0, _0805FD30 adds r1, r6, 0 bl sub_8013800 adds r1, r0, 0 movs r0, 0 str r0, [sp] movs r0, 0x8 adds r2, r5, 0 movs r3, 0x1 bl xxx_call_draw_string adds r6, 0x1 ldr r0, _0805FD34 ldr r0, [r0] cmp r6, r0 blt _0805FCDC _0805FD20: movs r0, 0x1 bl sub_80073E0 add sp, 0x78 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0805FD30: .4byte gUnknown_202EE10 _0805FD34: .4byte gUnknown_202EE6C _0805FD38: .4byte gUnknown_8106B50 thumb_func_end sub_805FC30 thumb_func_start sub_805FD3C sub_805FD3C: push {r4,lr} adds r4, r0, 0 bl sub_805F1AC lsls r0, 16 lsrs r0, 16 adds r2, r0, 0 movs r1, 0 strb r1, [r4] strb r1, [r4, 0x1] strb r1, [r4, 0x2] strb r1, [r4, 0x3] cmp r2, 0xA bne _0805FD5E movs r0, 0x1 strb r0, [r4] strb r0, [r4, 0x3] _0805FD5E: cmp r2, 0x3E bne _0805FD6A movs r0, 0x1 strb r0, [r4] strb r1, [r4, 0x1] strb r0, [r4, 0x3] _0805FD6A: ldrb r0, [r4] pop {r4} pop {r1} bx r1 thumb_func_end sub_805FD3C thumb_func_start sub_805FD74 sub_805FD74: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xE4 mov r10, r0 adds r7, r1, 0 movs r0, 0 mov r9, r0 movs r1, 0x1 str r1, [sp, 0xD0] movs r2, 0 str r2, [sp, 0xD4] movs r5, 0 str r5, [sp, 0xD8] str r0, [sp, 0xDC] mov r1, r10 ldr r1, [r1, 0x70] str r1, [sp, 0xE0] add r4, sp, 0x68 adds r0, r4, 0 movs r1, 0 movs r2, 0x60 bl memset movs r0, 0x6 str r0, [sp, 0x6C] add r0, sp, 0x70 movs r6, 0 movs r1, 0x2 strh r1, [r0] strh r1, [r0, 0x2] add r1, sp, 0x74 movs r0, 0x12 strh r0, [r1] mov r0, sp adds r0, 0x76 movs r1, 0x10 strh r1, [r0] add r0, sp, 0x78 strh r1, [r0] add r5, sp, 0xC8 str r5, [sp, 0x7C] movs r1, 0x3 str r1, [sp, 0x84] add r0, sp, 0x98 str r1, [r0, 0x4] add r0, sp, 0xB0 str r1, [r0, 0x4] add r0, sp, 0x8 adds r1, r4, 0 movs r2, 0x60 bl memcpy ldr r0, _0805FE40 strb r6, [r0] mov r2, r9 strh r2, [r0, 0x4] strh r2, [r0, 0x6] cmp r7, 0 beq _0805FE18 ldrb r1, [r7] negs r0, r1 orrs r0, r1 lsrs r0, 31 str r0, [sp, 0xD8] ldrb r1, [r7, 0x1] negs r0, r1 orrs r0, r1 lsrs r0, 31 str r0, [sp, 0xD0] ldrb r1, [r7, 0x2] negs r0, r1 orrs r0, r1 lsrs r0, 31 str r0, [sp, 0xD4] ldrb r1, [r7, 0x3] negs r0, r1 orrs r0, r1 lsrs r0, 31 str r0, [sp, 0xDC] _0805FE18: ldr r0, _0805FE44 mov r5, r10 str r5, [sp] ldr r1, [sp, 0xD4] ldr r2, [sp, 0xD0] ldr r3, [sp, 0xDC] bl sub_8060D64 ldr r1, _0805FE48 str r0, [r1] cmp r0, 0 bne _0805FEA6 ldr r0, _0805FE4C ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage movs r0, 0x1 b _080603BE .align 2, 0 _0805FE40: .4byte gUnknown_202F238 _0805FE44: .4byte gUnknown_202F248 _0805FE48: .4byte gUnknown_202F258 _0805FE4C: .4byte gUnknown_80F8B24 _0805FE50: movs r0, 0 movs r1, 0 bl sub_803EAF0 movs r0, 0x1 mov r9, r0 b _0806039C _0805FE5E: ldr r0, [sp, 0xE0] adds r0, 0x44 movs r1, 0xC bl sub_8044C94 ldr r0, _0805FE78 ldr r1, [r0, 0x4] ldr r0, [r0] ldr r2, [sp, 0xE0] str r0, [r2, 0x48] str r1, [r2, 0x4C] b _0805FE88 .align 2, 0 _0805FE78: .4byte gUnknown_202F238 _0805FE7C: ldr r0, _0805FE98 ldr r1, [r0, 0x4] ldr r0, [r0] ldr r2, [sp, 0xE0] str r0, [r2, 0x50] str r1, [r2, 0x54] _0805FE88: movs r0, 0 movs r1, 0 bl sub_803EAF0 movs r5, 0 mov r9, r5 b _0806039C .align 2, 0 _0805FE98: .4byte gUnknown_202F238 _0805FE9C: ldr r1, [r1] ldr r0, [sp, 0xE0] adds r0, 0x50 strb r1, [r0] b _0806033C _0805FEA6: movs r1, 0 mov r8, r1 ldr r0, _0805FFA8 mov r2, r9 str r2, [r0] _0805FEB0: movs r5, 0 mov r9, r5 movs r4, 0 ldr r6, _0805FFAC _0805FEB8: lsls r1, r4, 2 ldr r0, [r6] adds r2, r0, r1 ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0805FEEC movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _0805FEEC movs r0, 0xFB ands r0, r1 strb r0, [r2] adds r0, r4, 0 movs r1, 0xA bl __divsi3 mov r8, r0 adds r0, r4, 0 movs r1, 0xA bl __modsi3 ldr r1, _0805FFA8 str r0, [r1] _0805FEEC: adds r4, 0x1 cmp r4, 0x13 ble _0805FEB8 movs r6, 0 _0805FEF4: ldr r0, _0805FFB0 ldr r0, [r0] lsls r1, r6, 2 ldr r2, _0805FFB4 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 adds r5, r6, 0x1 mov r12, r5 cmp r0, 0 beq _0805FF66 ldr r0, [r4, 0x70] adds r2, r0, 0 adds r2, 0x60 ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0805FF66 movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _0805FF66 movs r0, 0xFB ands r0, r1 strb r0, [r2] movs r4, 0 ldr r0, _0805FFB8 ldr r1, [r0] adds r5, r0, 0 ldr r7, _0805FFA8 cmp r4, r1 bge _0805FF62 ldr r0, _0805FFBC movs r2, 0 ldrsh r1, [r0, r2] adds r3, r0, 0 adds r2, r6, 0x4 cmp r1, r2 beq _0805FF60 _0805FF4C: adds r4, 0x1 ldr r0, [r5] cmp r4, r0 bge _0805FF62 lsls r0, r4, 1 adds r0, r3 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, r2 bne _0805FF4C _0805FF60: mov r8, r4 _0805FF62: movs r0, 0 str r0, [r7] _0805FF66: mov r6, r12 cmp r6, 0x3 ble _0805FEF4 add r2, sp, 0x8 str r2, [sp] add r5, sp, 0xC8 str r5, [sp, 0x4] mov r0, r8 mov r1, r10 ldr r2, [sp, 0xD8] ldr r3, [sp, 0xD4] bl sub_80603D8 ldr r1, _0805FFBC ldr r0, _0805FFC0 movs r2, 0x1E ldrsh r0, [r0, r2] lsls r0, 1 adds r0, r1 movs r5, 0 ldrsh r2, [r0, r5] cmp r2, 0x3 ble _0805FFE6 ldr r0, _0805FFB0 ldr r1, [r0] subs r0, r2, 0x4 lsls r0, 2 ldr r2, _0805FFB4 adds r1, r2 adds r1, r0 ldr r4, [r1] b _0805FFE8 .align 2, 0 _0805FFA8: .4byte gUnknown_202F240 _0805FFAC: .4byte gUnknown_203B460 _0805FFB0: .4byte gUnknown_203B418 _0805FFB4: .4byte 0x0001357c _0805FFB8: .4byte gUnknown_202F258 _0805FFBC: .4byte gUnknown_202F248 _0805FFC0: .4byte gUnknown_202EE10 _0805FFC4: bl sub_8083D44 mov r0, r10 adds r0, 0x4 bl sub_8060890 movs r5, 0x3 mov r9, r5 b _08060200 _0805FFD6: bl sub_8083D08 ldr r0, [sp, 0xE0] adds r0, 0x44 bl sub_8060CE8 movs r0, 0 b _080602F0 _0805FFE6: mov r4, r10 _0805FFE8: adds r0, r4, 0 movs r1, 0 bl sub_806A2BC adds r0, r4, 0x4 movs r1, 0 movs r2, 0x1 movs r3, 0x1 bl sub_804A728 ldr r6, _08060050 adds r7, r6, 0 adds r7, 0x2B _08060002: adds r0, r6, 0 bl AddMenuCursorSprite movs r0, 0x14 bl sub_803E46C ldr r1, [sp, 0xD4] cmp r1, 0 beq _08060016 b _080601F4 _08060016: ldr r4, _08060054 ldr r0, [r4] cmp r0, 0x1 ble _0806008C ldr r0, _08060058 ldrh r1, [r0, 0x2] movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _08060034 adds r0, r6, 0 adds r0, 0x2C ldrb r0, [r0] cmp r0, 0 beq _0806005C _08060034: movs r0, 0 bl sub_8083CE0 movs r2, 0x1 negs r2, r2 add r8, r2 mov r5, r8 cmp r5, 0 bge _0806007E ldr r0, [r4] subs r0, 0x1 mov r8, r0 b _0806007E .align 2, 0 _08060050: .4byte gUnknown_202EE10 _08060054: .4byte gUnknown_202F258 _08060058: .4byte gUnknown_20255F0 _0806005C: movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _0806006A ldrb r0, [r7] cmp r0, 0 beq _0806008C _0806006A: movs r0, 0 bl sub_8083CE0 movs r2, 0x1 add r8, r2 ldr r0, [r4] cmp r8, r0 bne _0806007E movs r5, 0 mov r8, r5 _0806007E: ldr r0, [sp, 0xD4] ldr r1, _08060088 str r0, [r1] b _08060200 .align 2, 0 _08060088: .4byte gUnknown_202F240 _0806008C: ldr r0, _08060134 ldrh r1, [r0, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080600B2 mov r0, r8 bl sub_8060860 lsls r0, 24 cmp r0, 0 beq _080600B2 movs r0, 0x1 bl sub_8083CE0 ldr r0, _08060138 movs r1, 0x1 bl sub_80136E0 _080600B2: ldr r0, _08060134 ldrh r1, [r0, 0x4] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _080600D8 mov r0, r8 bl sub_8060860 lsls r0, 24 cmp r0, 0 beq _080600D8 movs r0, 0x1 bl sub_8083CE0 ldr r0, _08060138 movs r1, 0x1 bl sub_8013744 _080600D8: ldr r0, _08060134 ldrh r2, [r0, 0x2] movs r1, 0x4 ands r1, r2 adds r2, r0, 0 cmp r1, 0 beq _080601A0 ldr r4, _0806013C mov r5, r8 lsls r0, r5, 1 adds r0, r4 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0x1 bgt _080601A0 movs r7, 0x1 movs r0, 0x99 lsls r0, 1 bl sub_8083E38 bl sub_8047158 bl sub_80912C8 movs r0, 0 ldr r2, _08060140 str r0, [r2] mov r5, r10 str r5, [sp] add r0, sp, 0x68 ldr r1, [sp, 0xD4] ldr r2, [sp, 0xD0] ldr r3, [sp, 0xDC] bl sub_8060D64 adds r3, r0, 0 ldr r0, _08060144 ldr r0, [r0] cmp r0, r3 bne _08060164 movs r6, 0 cmp r6, r3 bge _0806015E add r2, sp, 0x68 b _08060152 .align 2, 0 _08060134: .4byte gUnknown_20255F0 _08060138: .4byte gUnknown_202EE10 _0806013C: .4byte gUnknown_202F248 _08060140: .4byte gUnknown_202F240 _08060144: .4byte gUnknown_202F258 _08060148: adds r4, 0x2 adds r2, 0x2 adds r6, 0x1 cmp r6, r3 bge _0806015E _08060152: movs r0, 0 ldrsh r1, [r2, r0] movs r5, 0 ldrsh r0, [r4, r5] cmp r1, r0 beq _08060148 _0806015E: cmp r6, r3 bne _08060164 movs r7, 0 _08060164: cmp r7, 0 beq _08060200 movs r0, 0 mov r8, r0 ldr r1, _08060194 str r0, [r1] ldr r0, _08060198 str r3, [r0] movs r6, 0 adds r5, r0, 0 cmp r6, r3 bge _08060200 adds r3, r5, 0 add r1, sp, 0x68 ldr r2, _0806019C _08060182: ldrh r0, [r1] strh r0, [r2] adds r1, 0x2 adds r2, 0x2 adds r6, 0x1 ldr r0, [r3] cmp r6, r0 blt _08060182 b _08060200 .align 2, 0 _08060194: .4byte gUnknown_202F240 _08060198: .4byte gUnknown_202F258 _0806019C: .4byte gUnknown_202F248 _080601A0: ldrh r1, [r2, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080601B6 ldr r2, _080601C8 adds r0, r2, 0 adds r0, 0x29 ldrb r0, [r0] cmp r0, 0 beq _080601CC _080601B6: bl sub_8083D08 mov r0, r10 adds r0, 0x4 bl sub_8060890 movs r2, 0x1 mov r9, r2 b _08060200 .align 2, 0 _080601C8: .4byte gUnknown_202EE10 _080601CC: movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _080601D6 b _0805FFC4 _080601D6: movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _080601EA adds r0, r2, 0 adds r0, 0x2A ldrb r0, [r0] cmp r0, 0 bne _080601EA b _08060002 _080601EA: bl sub_8083D30 movs r5, 0x2 mov r9, r5 b _08060200 _080601F4: mov r0, r10 adds r0, 0x4 bl sub_8060890 movs r0, 0x1 mov r9, r0 _08060200: ldr r4, _0806034C adds r0, r4, 0 bl AddMenuCursorSprite movs r0, 0x14 bl sub_803E46C ldr r1, _08060350 movs r2, 0x1E ldrsh r0, [r4, r2] lsls r0, 1 adds r0, r1 movs r5, 0 ldrsh r0, [r0, r5] cmp r0, 0x1 bgt _08060232 ldr r0, _08060354 ldr r0, [r0] ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08060232 movs r0, 0x2 mov r9, r0 _08060232: mov r1, r9 cmp r1, 0x2 bne _0806023A b _0805FE50 _0806023A: cmp r1, 0 bne _08060240 b _0805FEB0 _08060240: cmp r1, 0x3 bne _08060246 b _0805FE5E _08060246: ldr r4, _0806034C movs r2, 0x18 ldrsh r0, [r4, r2] ldr r5, _08060358 str r0, [r5] ldr r0, [sp, 0xD8] cmp r0, 0 beq _08060258 b _0805FE7C _08060258: mov r0, r10 bl sub_8060900 movs r2, 0x1E ldrsh r1, [r4, r2] add r0, sp, 0xC8 bl sub_8060800 add r0, sp, 0x8 movs r1, 0x16 bl sub_805FC30 ldr r6, _0806035C adds r7, r4, 0 adds r7, 0x2A _08060276: adds r0, r4, 0 bl AddMenuCursorSprite movs r0, 0x14 bl sub_803E46C ldrh r1, [r6, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0806029A movs r0, 0x1 bl sub_8083CE0 adds r0, r4, 0 movs r1, 0x1 bl sub_80136E0 _0806029A: ldrh r1, [r6, 0x4] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _080602B2 movs r0, 0x1 bl sub_8083CE0 adds r0, r4, 0 movs r1, 0x1 bl sub_8013744 _080602B2: ldrh r1, [r6, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080602C6 adds r0, r4, 0 adds r0, 0x29 ldrb r0, [r0] cmp r0, 0 beq _080602DA _080602C6: movs r5, 0x18 ldrsh r0, [r4, r5] bl sub_8044F3C lsls r0, 24 cmp r0, 0 beq _080602D6 b _0805FFD6 _080602D6: bl sub_8083D30 _080602DA: ldrh r1, [r6, 0x2] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _080602EA ldrb r0, [r7] cmp r0, 0 beq _08060276 _080602EA: bl sub_8083D30 movs r0, 0x1 _080602F0: mov r9, r0 ldr r0, _0806034C bl AddMenuCursorSprite movs r0, 0x14 bl sub_803E46C ldr r0, _08060360 ldr r0, [r0] ldr r1, _08060364 adds r0, r1 movs r1, 0 strb r1, [r0] mov r2, r9 cmp r2, 0x1 bne _08060318 ldr r5, [sp, 0xD4] cmp r5, 0 bne _08060318 b _0805FEB0 _08060318: ldr r0, [sp, 0xE0] adds r0, 0x44 ldrh r1, [r0] adds r0, r1, 0 subs r0, 0x37 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bls _08060330 adds r0, r1, 0 cmp r0, 0x3E bne _0806036C _08060330: ldr r0, _08060368 ldrb r0, [r0] subs r0, 0x90 ldr r1, [sp, 0xE0] adds r1, 0x48 strb r0, [r1] _0806033C: movs r0, 0 movs r1, 0 bl sub_803EAF0 movs r0, 0 mov r9, r0 b _0806039C .align 2, 0 _0806034C: .4byte gUnknown_202EE10 _08060350: .4byte gUnknown_202F248 _08060354: .4byte gUnknown_203B460 _08060358: .4byte gUnknown_202F240 _0806035C: .4byte gUnknown_20255F0 _08060360: .4byte gUnknown_203B418 _08060364: .4byte 0x00018212 _08060368: .4byte gUnknown_202F238 _0806036C: cmp r0, 0x36 bne _08060390 add r0, sp, 0xCC movs r1, 0x2 bl sub_8062978 add r1, sp, 0xCC cmp r0, 0 beq _08060380 b _0805FE9C _08060380: movs r0, 0 movs r1, 0 bl sub_803EAF0 movs r0, 0x1 bl sub_8044C10 b _0805FEB0 _08060390: movs r0, 0 movs r1, 0 bl sub_803EAF0 movs r1, 0 mov r9, r1 _0806039C: ldr r0, _080603D0 ldr r0, [r0] ldr r2, _080603D4 adds r0, r2 movs r1, 0 strb r1, [r0] movs r0, 0x2 movs r1, 0x61 bl sub_803E708 bl sub_804AA60 movs r0, 0x2 movs r1, 0x61 bl sub_803E708 mov r0, r9 _080603BE: add sp, 0xE4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080603D0: .4byte gUnknown_203B418 _080603D4: .4byte 0x00018212 thumb_func_end sub_805FD74 thumb_func_start sub_80603D8 sub_80603D8: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x78 adds r7, r0, 0 mov r9, r1 ldr r6, [sp, 0x98] ldr r0, [sp, 0x9C] mov r8, r0 lsls r2, 24 lsrs r2, 24 str r2, [sp, 0x6C] lsls r3, 24 lsrs r3, 24 str r3, [sp, 0x70] add r1, sp, 0x4 ldr r0, _08060478 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} mov r0, r9 ldr r0, [r0, 0x70] str r0, [sp, 0x74] mov r0, r8 adds r1, r7, 0 bl sub_8060800 mov r10, r0 ldr r5, _0806047C ldr r0, _08060480 ldr r0, [r0] movs r4, 0 movs r1, 0 strh r0, [r5, 0x18] strh r1, [r5, 0x1A] strh r7, [r5, 0x1E] ldr r0, _08060484 ldr r0, [r0] strh r0, [r5, 0x20] strh r1, [r5, 0x4] str r1, [r5] strh r1, [r5, 0x14] adds r0, r5, 0 adds r0, 0x28 bl sub_801317C ldr r3, _08060488 ldr r0, [r3] ldr r2, _0806048C adds r0, r2 strb r4, [r0] ldr r1, _08060490 lsls r0, r7, 1 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0x2 beq _08060494 cmp r0, 0x2 bgt _080604AA cmp r0, 0 blt _080604AA movs r1, 0x10 strh r1, [r6, 0x10] strh r1, [r6, 0xE] movs r0, 0xC mov r4, r8 strb r0, [r4, 0x2] strh r1, [r5, 0x6] movs r0, 0xA strh r0, [r5, 0x1C] ldr r0, [r3] adds r0, r2 movs r1, 0x1 strb r1, [r0] b _080604C0 .align 2, 0 _08060478: .4byte gUnknown_8106B6C _0806047C: .4byte gUnknown_202EE10 _08060480: .4byte gUnknown_202F240 _08060484: .4byte gUnknown_202F258 _08060488: .4byte gUnknown_203B418 _0806048C: .4byte 0x00018212 _08060490: .4byte gUnknown_202F248 _08060494: movs r0, 0x4 strh r0, [r6, 0x10] strh r0, [r6, 0xE] movs r0, 0x6 mov r1, r8 strb r0, [r1, 0x2] movs r0, 0x12 strh r0, [r5, 0x6] movs r0, 0x1 strh r0, [r5, 0x1C] b _080604C0 _080604AA: movs r0, 0x4 strh r0, [r6, 0x10] strh r0, [r6, 0xE] movs r0, 0xC mov r2, r8 strb r0, [r2, 0x2] ldr r1, _080604DC movs r0, 0x12 strh r0, [r1, 0x6] movs r0, 0x1 strh r0, [r1, 0x1C] _080604C0: ldr r3, [sp, 0x6C] cmp r3, 0 beq _080604E0 ldr r1, _080604DC ldrh r0, [r1, 0xC] adds r0, 0x40 strh r0, [r1, 0xC] movs r0, 0xA strh r0, [r6, 0x8] adds r1, r6, 0 adds r1, 0x18 add r0, sp, 0x4 b _080604EC .align 2, 0 _080604DC: .4byte gUnknown_202EE10 _080604E0: movs r0, 0x2 strh r0, [r6, 0x8] adds r1, r6, 0 adds r1, 0x18 adds r0, r6, 0 adds r0, 0x48 _080604EC: ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} adds r0, r6, 0 movs r1, 0x1 bl sub_803ECB4 ldr r1, _0806054C ldr r5, _08060550 movs r4, 0 ldrsh r0, [r1, r4] adds r0, 0x10 lsls r0, 3 movs r2, 0 mov r8, r2 strh r0, [r5, 0xC] movs r3, 0x2 ldrsh r0, [r1, r3] adds r0, 0x1 lsls r0, 3 subs r0, 0x2 strh r0, [r5, 0xE] adds r0, r5, 0 movs r1, 0x70 bl sub_80137B0 movs r0, 0 bl sub_80073B8 mov r4, r10 subs r0, r7, r4 lsls r0, 3 adds r6, r0, 0 adds r6, 0xC ldr r0, _08060554 lsls r1, r7, 1 adds r0, r1, r0 movs r2, 0 ldrsh r0, [r0, r2] adds r2, r1, 0 cmp r0, 0x1 beq _080605CC cmp r0, 0x1 bgt _08060558 cmp r0, 0 beq _08060564 b _08060718 .align 2, 0 _0806054C: .4byte gUnknown_2027370 _08060550: .4byte gUnknown_202EE10 _08060554: .4byte gUnknown_202F248 _08060558: cmp r0, 0x2 beq _0806063C cmp r0, 0x3 bne _08060562 b _080606B0 _08060562: b _08060718 _08060564: ldr r0, _080605C0 ldr r2, [r0] mov r3, r8 str r3, [sp] adds r0, r6, 0 movs r1, 0 movs r3, 0 bl sub_8014FF0 movs r4, 0 adds r6, r5, 0 movs r7, 0 add r5, sp, 0x1C _0806057E: lsls r1, r4, 2 ldr r0, _080605C4 ldr r0, [r0] adds r2, r1, r0 ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08060592 b _08060794 _08060592: ldrh r0, [r6, 0x1A] adds r0, 0x1 strh r0, [r6, 0x1A] adds r0, r5, 0 adds r1, r2, 0 ldr r2, _080605C8 bl sub_8090E14 adds r0, r6, 0 adds r1, r4, 0 bl sub_8013800 adds r1, r0, 0 str r7, [sp] movs r0, 0x8 adds r2, r5, 0 movs r3, 0 bl sub_8014FF0 adds r4, 0x1 cmp r4, 0x9 ble _0806057E b _08060794 .align 2, 0 _080605C0: .4byte gUnknown_80FE90C _080605C4: .4byte gUnknown_203B460 _080605C8: .4byte gUnknown_8106B60 _080605CC: ldr r0, _08060630 ldr r2, [r0] mov r4, r8 str r4, [sp] adds r0, r6, 0 movs r1, 0 movs r3, 0 bl sub_8014FF0 movs r4, 0 adds r6, r5, 0 movs r7, 0 add r5, sp, 0x1C _080605E6: lsls r3, r4, 2 ldr r0, _08060634 ldr r2, [r0] adds r0, r3, r2 adds r0, 0x28 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080605FC b _08060794 _080605FC: ldrh r0, [r6, 0x1A] adds r0, 0x1 strh r0, [r6, 0x1A] adds r1, r3, 0 adds r1, 0x28 adds r1, r2, r1 adds r0, r5, 0 ldr r2, _08060638 bl sub_8090E14 adds r0, r6, 0 adds r1, r4, 0 bl sub_8013800 adds r1, r0, 0 str r7, [sp] movs r0, 0x8 adds r2, r5, 0 movs r3, 0 bl sub_8014FF0 adds r4, 0x1 cmp r4, 0x9 ble _080605E6 b _08060794 .align 2, 0 _08060630: .4byte gUnknown_80FE920 _08060634: .4byte gUnknown_203B460 _08060638: .4byte gUnknown_8106B60 _0806063C: mov r1, r9 movs r2, 0x4 ldrsh r0, [r1, r2] movs r3, 0x6 ldrsh r1, [r1, r3] bl sub_804954C ldr r0, [r0, 0x14] bl sub_8045108 adds r7, r0, 0 ldr r0, _080606A8 ldr r2, [r0] mov r4, r8 str r4, [sp] adds r0, r6, 0 movs r1, 0 movs r3, 0 bl sub_8014FF0 ldrb r1, [r7] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08060698 ldrh r0, [r5, 0x1A] adds r0, 0x1 strh r0, [r5, 0x1A] add r4, sp, 0x1C ldr r2, _080606AC adds r0, r4, 0 adds r1, r7, 0 bl sub_8090E14 adds r0, r5, 0 movs r1, 0 bl sub_8013800 adds r1, r0, 0 mov r0, r8 str r0, [sp] movs r0, 0x8 adds r2, r4, 0 movs r3, 0 bl sub_8014FF0 _08060698: ldr r1, [sp, 0x70] cmp r1, 0 beq _08060794 mov r2, r8 strh r2, [r5, 0xA] strh r2, [r5, 0x8] b _08060794 .align 2, 0 _080606A8: .4byte gUnknown_80FE92C _080606AC: .4byte gUnknown_8106B60 _080606B0: mov r3, r9 ldr r0, [r3, 0x70] adds r7, r0, 0 adds r7, 0x60 ldr r0, _0806070C ldr r1, [sp, 0x74] movs r2, 0 bl sub_80708B4 ldr r0, _08060710 ldr r2, [r0] mov r4, r8 str r4, [sp] adds r0, r6, 0 movs r1, 0 movs r3, 0 bl sub_8014FF0 ldrb r1, [r7] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08060794 ldrh r0, [r5, 0x1A] adds r0, 0x1 strh r0, [r5, 0x1A] add r4, sp, 0x1C ldr r2, _08060714 adds r0, r4, 0 adds r1, r7, 0 bl sub_8090E14 adds r0, r5, 0 movs r1, 0 bl sub_8013800 adds r1, r0, 0 mov r0, r8 str r0, [sp] movs r0, 0x8 adds r2, r4, 0 movs r3, 0 bl sub_8014FF0 b _08060794 .align 2, 0 _0806070C: .4byte gUnknown_202DF98 _08060710: .4byte gUnknown_80FE940 _08060714: .4byte gUnknown_8106B60 _08060718: ldr r0, _080607E0 ldr r1, [r0] ldr r0, _080607E4 adds r0, r2, r0 movs r2, 0 ldrsh r0, [r0, r2] subs r0, 0x4 lsls r0, 2 ldr r3, _080607E8 adds r1, r3 adds r1, r0 ldr r4, [r1] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08060794 ldr r1, [r4, 0x70] adds r7, r1, 0 adds r7, 0x60 ldr r0, _080607EC movs r2, 0 bl sub_80708B4 ldr r0, _080607F0 ldr r2, [r0] movs r4, 0 mov r8, r4 str r4, [sp] adds r0, r6, 0 movs r1, 0 movs r3, 0 bl sub_8014FF0 ldrb r1, [r7] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08060794 ldr r4, _080607F4 ldrh r0, [r4, 0x1A] adds r0, 0x1 strh r0, [r4, 0x1A] add r5, sp, 0x1C ldr r2, _080607F8 adds r0, r5, 0 adds r1, r7, 0 bl sub_8090E14 adds r0, r4, 0 movs r1, 0 bl sub_8013800 adds r1, r0, 0 mov r0, r8 str r0, [sp] movs r0, 0x8 adds r2, r5, 0 movs r3, 0 bl sub_8014FF0 _08060794: ldr r2, _080607F4 movs r3, 0x18 ldrsh r1, [r2, r3] movs r4, 0x1A ldrsh r0, [r2, r4] cmp r1, r0 blt _080607A6 movs r0, 0 strh r0, [r2, 0x18] _080607A6: movs r0, 0 bl sub_80073E0 ldr r0, [sp, 0x6C] cmp r0, 0 beq _080607D0 movs r0, 0x1 bl sub_80073B8 ldr r0, _080607FC ldr r2, [r0] movs r0, 0 str r0, [sp] movs r0, 0x4 movs r1, 0x2 movs r3, 0x1 bl sub_8014FF0 movs r0, 0x1 bl sub_80073E0 _080607D0: add sp, 0x78 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080607E0: .4byte gUnknown_203B418 _080607E4: .4byte gUnknown_202F248 _080607E8: .4byte 0x0001357c _080607EC: .4byte gUnknown_202DF98 _080607F0: .4byte gUnknown_80FE940 _080607F4: .4byte gUnknown_202EE10 _080607F8: .4byte gUnknown_8106B60 _080607FC: .4byte gUnknown_80FE94C thumb_func_end sub_80603D8 thumb_func_start sub_8060800 sub_8060800: push {r4-r7,lr} adds r5, r0, 0 adds r4, r1, 0 movs r1, 0 ldr r0, _0806083C ldr r2, [r0] mov r12, r0 ldr r6, _08060840 cmp r1, r2 bge _08060828 adds r3, r6, 0 _08060816: movs r7, 0 ldrsh r0, [r3, r7] cmp r0, 0x1 bgt _08060820 adds r1, 0x1 _08060820: adds r3, 0x2 subs r2, 0x1 cmp r2, 0 bne _08060816 _08060828: lsls r0, r4, 1 adds r0, r6 movs r2, 0 ldrsh r0, [r0, r2] cmp r0, 0x1 bgt _08060844 adds r3, r4, 0 adds r2, r1, 0 movs r1, 0 b _0806084C .align 2, 0 _0806083C: .4byte gUnknown_202F258 _08060840: .4byte gUnknown_202F248 _08060844: subs r3, r4, r1 mov r7, r12 ldr r0, [r7] subs r2, r0, r1 _0806084C: cmp r5, 0 beq _08060858 movs r0, 0 strb r2, [r5] strb r3, [r5, 0x1] strb r0, [r5, 0x3] _08060858: adds r0, r1, 0 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8060800 thumb_func_start sub_8060860 sub_8060860: push {lr} adds r1, r0, 0 ldr r0, _08060880 movs r2, 0x1A ldrsh r0, [r0, r2] cmp r0, 0x1 ble _0806087C ldr r0, _08060884 lsls r1, 1 adds r1, r0 movs r2, 0 ldrsh r0, [r1, r2] cmp r0, 0x1 ble _08060888 _0806087C: movs r0, 0 b _0806088A .align 2, 0 _08060880: .4byte gUnknown_202EE10 _08060884: .4byte gUnknown_202F248 _08060888: movs r0, 0x1 _0806088A: pop {r1} bx r1 thumb_func_end sub_8060860 thumb_func_start sub_8060890 sub_8060890: push {r4,lr} adds r3, r0, 0 ldr r1, _080608B4 ldr r2, _080608B8 movs r4, 0x1E ldrsh r0, [r2, r4] lsls r0, 1 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0x1 beq _080608D0 cmp r0, 0x1 bgt _080608BC cmp r0, 0 beq _080608C2 b _080608E8 .align 2, 0 _080608B4: .4byte gUnknown_202F248 _080608B8: .4byte gUnknown_202EE10 _080608BC: cmp r0, 0x2 beq _080608DC b _080608E8 _080608C2: ldr r1, _080608CC ldrb r0, [r2, 0x18] adds r0, 0x1 b _080608EC .align 2, 0 _080608CC: .4byte gUnknown_202F238 _080608D0: ldr r1, _080608D8 ldrb r0, [r2, 0x18] adds r0, 0xB b _080608EC .align 2, 0 _080608D8: .4byte gUnknown_202F238 _080608DC: ldr r1, _080608E4 movs r0, 0x80 b _080608EC .align 2, 0 _080608E4: .4byte gUnknown_202F238 _080608E8: ldr r1, _080608FC subs r0, 0x74 _080608EC: strb r0, [r1] ldrh r0, [r3] strh r0, [r1, 0x4] ldrh r0, [r3, 0x2] strh r0, [r1, 0x6] pop {r4} pop {r0} bx r0 .align 2, 0 _080608FC: .4byte gUnknown_202F238 thumb_func_end sub_8060890 thumb_func_start sub_8060900 sub_8060900: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} mov r9, r0 ldr r4, _08060964 adds r1, r4, 0 movs r2, 0xA bl sub_8044CC8 adds r7, r0, 0 mov r0, r9 ldr r0, [r0, 0x70] mov r10, r0 ldr r1, _08060968 movs r0, 0 str r0, [r1] ldrb r0, [r4] cmp r0, 0x8F bls _0806092C b _08060BD0 _0806092C: cmp r0, 0x80 bne _080609B0 ldrb r1, [r7, 0x2] movs r0, 0x9 bl sub_8044F5C ldrb r0, [r7, 0x2] bl sub_8090BD0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x6 beq _08060992 movs r2, 0 ldr r0, _0806096C ldr r0, [r0] ldr r1, _08060970 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _08060978 ldr r0, _08060974 ldr r0, [r0] adds r0, 0x4C ldrb r0, [r0] movs r2, 0x1 ands r2, r0 b _08060988 .align 2, 0 _08060964: .4byte gUnknown_202F238 _08060968: .4byte gUnknown_202EE6C _0806096C: .4byte gUnknown_203B418 _08060970: .4byte 0x0000065b _08060974: .4byte gUnknown_203B460 _08060978: mov r0, r10 adds r0, 0x60 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08060988 movs r2, 0x1 _08060988: cmp r2, 0 beq _08060992 movs r0, 0x9 bl sub_8044FF0 _08060992: ldr r0, _08060A20 ldrb r0, [r0] cmp r0, 0x80 bne _080609B0 ldr r0, _08060A24 ldr r0, [r0] ldr r2, _08060A28 adds r0, r2 ldrb r0, [r0] cmp r0, 0 beq _080609B0 ldrb r1, [r7, 0x2] movs r0, 0xA bl sub_8044F5C _080609B0: adds r0, r7, 0 bl sub_8044DC8 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0 beq _080609E8 ldrb r1, [r7, 0x2] adds r0, r4, 0 bl sub_8044F5C ldrb r1, [r7] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _080609D6 adds r0, r4, 0 bl sub_8044FF0 _080609D6: adds r0, r7, 0 bl sub_8046F00 lsls r0, 24 cmp r0, 0 bne _080609E8 adds r0, r4, 0 bl sub_8044FF0 _080609E8: ldr r0, _08060A20 ldrb r0, [r0] cmp r0, 0x14 bhi _08060A6C ldrb r0, [r7, 0x2] bl sub_8090BD0 lsls r0, 24 cmp r0, 0 beq _08060A0A ldrb r0, [r7, 0x2] bl sub_8090BD0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08060A6C _08060A0A: ldrb r1, [r7] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _08060A3A ldrb r1, [r7, 0x2] movs r0, 0x3D bl sub_8044F5C b _08060A42 .align 2, 0 _08060A20: .4byte gUnknown_202F238 _08060A24: .4byte gUnknown_203B418 _08060A28: .4byte 0x0000065b _08060A2C: movs r0, 0x3C bl sub_8044FF0 movs r0, 0x3D bl sub_8044FF0 b _08060A6C _08060A3A: ldrb r1, [r7, 0x2] movs r0, 0x3C bl sub_8044F5C _08060A42: movs r3, 0 ldr r0, _08060AD4 ldr r2, [r0] movs r4, 0x1 _08060A4A: ldrb r1, [r2] adds r0, r4, 0 ands r0, r1 cmp r0, 0 beq _08060A64 movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _08060A64 movs r0, 0x8 ands r0, r1 cmp r0, 0 bne _08060A2C _08060A64: adds r2, 0x4 adds r3, 0x1 cmp r3, 0x13 ble _08060A4A _08060A6C: ldr r0, _08060AD8 ldrb r0, [r0] cmp r0, 0x81 beq _08060AE8 cmp r0, 0x80 beq _08060B3C movs r3, 0 mov r8, r3 ldrb r1, [r7, 0x2] movs r0, 0x36 bl sub_8044F5C movs r6, 0 _08060A86: ldr r0, _08060ADC ldr r0, [r0] lsls r1, r6, 2 ldr r2, _08060AE0 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08060ABE ldr r0, [r4, 0x70] ldr r3, _08060AE4 adds r5, r0, r3 movs r0, 0 strb r0, [r5] adds r0, r4, 0 bl sub_8070C60 lsls r0, 24 cmp r0, 0 bne _08060ABE movs r0, 0x1 mov r8, r0 mov r1, r8 strb r1, [r5] _08060ABE: adds r6, 0x1 cmp r6, 0x3 ble _08060A86 mov r2, r8 cmp r2, 0 bne _08060B3C movs r0, 0x36 bl sub_8044FF0 b _08060B3C .align 2, 0 _08060AD4: .4byte gUnknown_203B460 _08060AD8: .4byte gUnknown_202F238 _08060ADC: .4byte gUnknown_203B418 _08060AE0: .4byte 0x0001357c _08060AE4: .4byte 0x00000157 _08060AE8: ldr r0, _08060B10 ldr r0, [r0] ldr r3, _08060B14 adds r0, r3 ldrb r0, [r0] cmp r0, 0 beq _08060B3C ldr r0, _08060B18 ldr r0, [r0] adds r0, 0x4C ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08060B1C ldrb r1, [r7, 0x2] movs r0, 0x3E bl sub_8044F5C b _08060B24 .align 2, 0 _08060B10: .4byte gUnknown_203B418 _08060B14: .4byte 0x0000065b _08060B18: .4byte gUnknown_203B460 _08060B1C: ldrb r1, [r7, 0x2] movs r0, 0x37 bl sub_8044F5C _08060B24: mov r0, r9 bl sub_8070C60 lsls r0, 24 cmp r0, 0 beq _08060B3C movs r0, 0x37 bl sub_8044FF0 movs r0, 0x3E bl sub_8044FF0 _08060B3C: ldr r0, _08060B64 ldrb r0, [r0] cmp r0, 0x14 bhi _08060B78 mov r1, r9 movs r2, 0x4 ldrsh r0, [r1, r2] movs r3, 0x6 ldrsh r1, [r1, r3] bl sub_804954C ldr r0, [r0, 0x14] cmp r0, 0 bne _08060B68 ldrb r1, [r7, 0x2] movs r0, 0x8 bl sub_8044F5C b _08060B78 .align 2, 0 _08060B64: .4byte gUnknown_202F238 _08060B68: bl sub_80450F8 cmp r0, 0x3 bne _08060B78 ldrb r1, [r7, 0x2] movs r0, 0x3A bl sub_8044F5C _08060B78: ldrb r0, [r7, 0x2] bl sub_8090BD0 lsls r0, 24 cmp r0, 0 bne _08060B8E ldrb r1, [r7, 0x2] movs r0, 0x27 bl sub_8044F5C b _08060BAE _08060B8E: ldrb r0, [r7, 0x2] bl sub_8090BD0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08060BA6 ldrb r1, [r7, 0x2] movs r0, 0x41 bl sub_8044F5C b _08060BAE _08060BA6: ldrb r1, [r7, 0x2] movs r0, 0xB bl sub_8044F5C _08060BAE: mov r0, r10 bl sub_8071A70 lsls r0, 24 cmp r0, 0 beq _08060BBC b _08060CCC _08060BBC: movs r0, 0x27 bl sub_8044FF0 movs r0, 0x41 bl sub_8044FF0 movs r0, 0xB bl sub_8044FF0 b _08060CCC _08060BD0: ldrb r1, [r4] subs r1, 0x90 ldr r0, _08060C50 mov r9, r0 ldr r0, [r0] lsls r1, 2 ldr r2, _08060C54 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08060CCC ldr r3, [r4, 0x70] mov r8, r3 movs r5, 0 adds r0, r4, 0 bl sub_8070C60 lsls r0, 24 lsrs r0, 24 negs r1, r0 orrs r1, r0 lsrs r6, r1, 31 ldr r0, _08060C58 ldr r0, [r0] adds r0, 0x4C ldrb r0, [r0] movs r4, 0x1 ands r4, r0 ldrb r0, [r7, 0x2] bl sub_8090BD0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x5 bne _08060C22 movs r5, 0x1 _08060C22: ldrb r0, [r7, 0x2] bl sub_8090BD0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x9 bne _08060C32 movs r5, 0x1 _08060C32: mov r1, r9 ldr r0, [r1] ldr r2, _08060C5C adds r0, r2 ldrb r0, [r0] cmp r0, 0 beq _08060C78 cmp r4, 0 beq _08060C60 ldrb r1, [r7, 0x2] movs r0, 0x3E bl sub_8044F5C b _08060C68 .align 2, 0 _08060C50: .4byte gUnknown_203B418 _08060C54: .4byte 0x0001357c _08060C58: .4byte gUnknown_203B460 _08060C5C: .4byte 0x0000065b _08060C60: ldrb r1, [r7, 0x2] movs r0, 0x37 bl sub_8044F5C _08060C68: cmp r6, 0 beq _08060C78 movs r0, 0x37 bl sub_8044FF0 movs r0, 0x3E bl sub_8044FF0 _08060C78: mov r3, r8 ldrb r0, [r3, 0x7] cmp r0, 0 beq _08060CBA adds r0, r7, 0 bl sub_8044DC8 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0 beq _08060CCC ldrb r1, [r7, 0x2] adds r0, r4, 0 bl sub_8044F5C ldrb r1, [r7] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08060CA6 adds r0, r4, 0 bl sub_8044FF0 _08060CA6: adds r0, r7, 0 bl sub_8046F00 lsls r0, 24 cmp r0, 0 bne _08060CCC adds r0, r4, 0 bl sub_8044FF0 b _08060CCC _08060CBA: ldrb r1, [r7, 0x2] movs r0, 0x38 bl sub_8044F5C cmp r5, 0 beq _08060CCC movs r0, 0x38 bl sub_8044FF0 _08060CCC: ldrb r1, [r7, 0x2] movs r0, 0xC bl sub_8044F5C bl sub_8045064 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8060900 thumb_func_start sub_8060CE8 sub_8060CE8: push {r4,lr} adds r4, r0, 0 ldr r1, _08060D18 ldr r0, _08060D1C movs r2, 0x18 ldrsh r0, [r0, r2] lsls r0, 2 adds r0, r1 ldrh r1, [r0] adds r0, r4, 0 bl sub_8044C94 ldr r0, _08060D20 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [r4, 0x4] str r1, [r4, 0x8] movs r0, 0 strb r0, [r4, 0xC] strh r0, [r4, 0x10] strh r0, [r4, 0x12] pop {r4} pop {r0} bx r0 .align 2, 0 _08060D18: .4byte gUnknown_202EE44 _08060D1C: .4byte gUnknown_202EE10 _08060D20: .4byte gUnknown_202F238 thumb_func_end sub_8060CE8 thumb_func_start sub_8060D24 sub_8060D24: push {r4,lr} bl sub_8083600 movs r1, 0 movs r2, 0xB bl sub_8044D90 adds r4, r0, 0 movs r0, 0 movs r1, 0 bl sub_803ECB4 adds r0, r4, 0 bl sub_801B3C0 _08060D42: movs r0, 0x16 bl sub_803E46C bl sub_801B410 cmp r0, 0 beq _08060D42 bl sub_801B450 movs r0, 0 movs r1, 0 bl sub_803EAF0 pop {r4} pop {r0} bx r0 thumb_func_end sub_8060D24 thumb_func_start sub_8060D64 sub_8060D64: push {r4-r7,lr} mov r7, r8 push {r7} adds r4, r0, 0 lsls r1, 24 lsrs r6, r1, 24 lsls r2, 24 lsrs r2, 24 lsls r3, 24 lsrs r3, 24 mov r8, r3 movs r7, 0 ldr r0, _08060E28 ldr r0, [r0] ldr r1, _08060E2C adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _08060DB8 cmp r6, 0 bne _08060DB8 ldr r5, _08060E30 ldr r0, [r5] ldrb r1, [r0] movs r3, 0x1 adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _08060DA2 strh r7, [r4] movs r7, 0x1 _08060DA2: ldr r0, [r5] adds r0, 0x28 ldrb r1, [r0] adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _08060DB8 lsls r0, r7, 1 adds r0, r4 strh r3, [r0] adds r7, 0x1 _08060DB8: cmp r2, 0 beq _08060DD4 ldr r0, [sp, 0x18] adds r0, 0x4 bl sub_804ACE4 lsls r0, 24 cmp r0, 0 beq _08060DD4 lsls r0, r7, 1 adds r0, r4 movs r1, 0x2 strh r1, [r0] adds r7, 0x1 _08060DD4: cmp r6, 0 bne _08060E1A mov r2, r8 cmp r2, 0 bne _08060E1A movs r5, 0 lsls r0, r7, 1 adds r6, r0, r4 _08060DE4: ldr r0, _08060E28 ldr r0, [r0] lsls r1, r5, 2 ldr r2, _08060E34 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08060E14 ldr r0, [r4, 0x70] adds r0, 0x60 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08060E14 adds r0, r5, 0x4 strh r0, [r6] adds r6, 0x2 adds r7, 0x1 _08060E14: adds r5, 0x1 cmp r5, 0x3 ble _08060DE4 _08060E1A: adds r0, r7, 0 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08060E28: .4byte gUnknown_203B418 _08060E2C: .4byte 0x0000065b _08060E30: .4byte gUnknown_203B460 _08060E34: .4byte 0x0001357c thumb_func_end sub_8060D64 thumb_func_start sub_8060E38 sub_8060E38: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x7C str r0, [sp, 0x78] add r4, sp, 0x18 adds r0, r4, 0 movs r1, 0 movs r2, 0x60 bl memset movs r0, 0x6 str r0, [r4, 0x4] movs r0, 0x2 strh r0, [r4, 0x8] strh r0, [r4, 0xA] movs r0, 0xE strh r0, [r4, 0xC] movs r0, 0x10 strh r0, [r4, 0xE] strh r0, [r4, 0x10] ldr r0, _08061018 str r0, [r4, 0x14] movs r0, 0x3 str r0, [r4, 0x1C] str r0, [r4, 0x34] str r0, [r4, 0x4C] movs r5, 0 mov r9, r4 add r0, sp, 0x4 mov r8, r0 _08060E7A: ldr r6, _0806101C ldr r0, [r6] lsls r1, r5, 2 ldr r2, _08061020 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08060E9E ldr r0, [r4, 0x70] ldr r2, _08061024 adds r1, r0, r2 movs r0, 0x1 strb r0, [r1] _08060E9E: adds r5, 0x1 cmp r5, 0x3 ble _08060E7A ldr r0, [r6] ldr r1, _08061028 adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _08060EBC movs r0, 0x3 mov r2, r9 str r0, [r2, 0x4] ldrh r0, [r2, 0xA] adds r0, 0x1 strh r0, [r2, 0xA] _08060EBC: ldr r6, _0806102C _08060EBE: movs r7, 0 mov r0, sp mov r1, r9 movs r2, 0x1 bl sub_8061130 movs r0, 0 mov r10, r0 _08060ECE: movs r1, 0x18 ldrsh r0, [r6, r1] lsls r0, 2 add r0, r8 ldr r1, [r0] cmp r1, 0 blt _08060F00 ldr r0, _0806101C ldr r0, [r0] lsls r1, 2 ldr r2, _08061020 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 movs r1, 0 bl sub_806A2BC adds r4, 0x4 adds r0, r4, 0 movs r1, 0 movs r2, 0x1 movs r3, 0x1 bl sub_804A728 _08060F00: adds r0, r6, 0 bl AddMenuCursorSprite movs r0, 0x1B bl sub_803E46C ldr r4, _08061030 ldrh r1, [r4, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08060F26 movs r0, 0x1 bl sub_8083CE0 adds r0, r6, 0 movs r1, 0x1 bl sub_80136E0 _08060F26: ldrh r1, [r4, 0x4] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08060F3E movs r0, 0x1 bl sub_8083CE0 adds r0, r6, 0 movs r1, 0x1 bl sub_8013744 _08060F3E: ldrh r1, [r4, 0x2] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08060F5A movs r1, 0x18 ldrsh r0, [r6, r1] add r1, sp, 0x14 adds r1, r0 ldrb r0, [r1] cmp r0, 0 bne _08061046 bl sub_8083D30 _08060F5A: ldrh r1, [r4, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08060F6C ldr r2, _08061034 ldrb r0, [r2] cmp r0, 0 beq _08060F7E _08060F6C: movs r1, 0x18 ldrsh r0, [r6, r1] add r1, sp, 0x14 adds r1, r0 ldrb r0, [r1] cmp r0, 0 bne _08061040 bl sub_8083D30 _08060F7E: ldr r0, _08061030 ldrh r1, [r0, 0x2] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08060F92 ldr r2, _08061038 ldrb r0, [r2] cmp r0, 0 beq _08060ECE _08060F92: bl sub_8083D30 movs r7, 0x1 _08060F98: ldr r5, _0806102C movs r1, 0x18 ldrsh r0, [r5, r1] lsls r0, 2 add r0, r8 ldr r1, [r0] cmp r1, 0 blt _08060FCC ldr r0, _0806101C ldr r0, [r0] lsls r1, 2 ldr r2, _08061020 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 movs r1, 0 bl sub_806A2BC adds r4, 0x4 adds r0, r4, 0 movs r1, 0 movs r2, 0x1 movs r3, 0x1 bl sub_804A728 _08060FCC: adds r0, r5, 0 bl AddMenuCursorSprite movs r0, 0x1B bl sub_803E46C bl sub_804AA60 cmp r7, 0 beq _08060FE2 b _0806110C _08060FE2: movs r1, 0x18 ldrsh r0, [r5, r1] str r0, [sp] ldr r1, _0806103C movs r2, 0x18 ldrsh r0, [r5, r2] str r0, [r1] mov r0, sp bl sub_806145C mov r0, r10 cmp r0, 0 beq _08061064 ldr r1, [sp, 0x78] ldr r4, [r1, 0x70] adds r0, r4, 0 adds r0, 0x44 movs r1, 0x1B bl sub_8044C94 ldr r0, [sp] lsls r0, 2 add r0, r8 ldr r0, [r0] adds r4, 0x48 strb r0, [r4] b _08061116 .align 2, 0 _08061018: .4byte gUnknown_202F270 _0806101C: .4byte gUnknown_203B418 _08061020: .4byte 0x0001357c _08061024: .4byte 0x00000157 _08061028: .4byte 0x0000065b _0806102C: .4byte gUnknown_202EE10 _08061030: .4byte gUnknown_20255F0 _08061034: .4byte gUnknown_202EE39 _08061038: .4byte gUnknown_202EE3A _0806103C: .4byte gUnknown_202F260 _08061040: bl sub_8083D08 b _08060F98 _08061046: bl sub_8083D44 movs r2, 0x1 mov r10, r2 b _08060F98 _08061050: ldr r1, [sp, 0x78] ldr r0, [r1, 0x70] adds r0, 0x44 mov r1, sp bl sub_80615B4 bl sub_8083D08 movs r4, 0 b _080610EA _08061064: mov r0, r9 movs r1, 0x12 bl sub_805FC30 adds r4, r5, 0 ldr r5, _08061100 adds r7, r4, 0 adds r7, 0x2A _08061074: adds r0, r4, 0 bl AddMenuCursorSprite movs r0, 0x1B bl sub_803E46C ldrh r1, [r5, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08061098 movs r0, 0x1 bl sub_8083CE0 adds r0, r4, 0 movs r1, 0x1 bl sub_80136E0 _08061098: ldrh r1, [r5, 0x4] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _080610B0 movs r0, 0x1 bl sub_8083CE0 adds r0, r4, 0 movs r1, 0x1 bl sub_8013744 _080610B0: ldrh r1, [r5, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080610C2 ldr r2, _08061104 ldrb r0, [r2] cmp r0, 0 beq _080610D4 _080610C2: movs r1, 0x18 ldrsh r0, [r4, r1] bl sub_8044F3C lsls r0, 24 cmp r0, 0 bne _08061050 bl sub_8083D30 _080610D4: ldrh r1, [r5, 0x2] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _080610E4 ldrb r0, [r7] cmp r0, 0 beq _08061074 _080610E4: bl sub_8083D30 movs r4, 0x1 _080610EA: ldr r0, _08061108 bl AddMenuCursorSprite movs r0, 0x1B bl sub_803E46C cmp r4, 0x1 bne _080610FC b _08060EBE _080610FC: movs r7, 0 b _08061116 .align 2, 0 _08061100: .4byte gUnknown_20255F0 _08061104: .4byte gUnknown_202EE39 _08061108: .4byte gUnknown_202EE10 _0806110C: bl sub_8083600 movs r1, 0 bl sub_806A2BC _08061116: movs r0, 0 movs r1, 0 bl sub_803EAF0 adds r0, r7, 0 add sp, 0x7C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8060E38 thumb_func_start sub_8061130 sub_8061130: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC mov r9, r0 mov r8, r1 lsls r2, 24 lsrs r2, 24 str r2, [sp, 0x8] movs r7, 0 movs r1, 0 mov r2, r8 ldr r0, [r2, 0x4] cmp r0, 0x6 bne _08061154 movs r1, 0x1 _08061154: mov r10, r1 bl sub_8083600 adds r1, r0, 0 add r0, sp, 0x4 bl sub_8069D18 movs r6, 0 _08061164: ldr r0, _08061318 ldr r0, [r0] lsls r1, r6, 2 ldr r3, _0806131C adds r0, r3 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080611AC lsls r1, r7, 2 mov r0, r9 adds r0, 0x4 adds r0, r1 str r6, [r0] ldr r0, [r4, 0x70] mov r1, r9 adds r1, 0x14 adds r1, r7 ldr r5, _08061320 adds r0, r5 ldrb r0, [r0] strb r0, [r1] ldr r1, [sp, 0x4] ldr r0, [r4, 0x4] cmp r1, r0 bne _080611AA ldr r1, _08061324 ldr r0, [r1] cmp r0, 0 bge _080611AA str r7, [r1] _080611AA: adds r7, 0x1 _080611AC: adds r6, 0x1 cmp r6, 0x3 ble _08061164 ldr r0, _08061324 ldr r1, [r0] adds r5, r0, 0 cmp r1, r7 blt _080611C0 subs r0, r7, 0x1 str r0, [r5] _080611C0: ldr r0, [r5] cmp r0, 0 bge _080611CA movs r0, 0 str r0, [r5] _080611CA: adds r6, r7, 0 mov r0, r10 negs r3, r0 cmp r7, 0x3 bgt _080611F4 movs r1, 0x1 negs r1, r1 mov r12, r1 mov r2, r9 adds r2, 0x14 movs r4, 0 lsls r0, r7, 2 adds r1, r0, 0x4 add r1, r9 _080611E6: mov r0, r12 stm r1!, {r0} adds r0, r2, r6 strb r4, [r0] adds r6, 0x1 cmp r6, 0x3 ble _080611E6 _080611F4: ldr r1, _08061328 movs r4, 0 movs r0, 0x1 strb r0, [r1] strb r4, [r1, 0x1] strb r4, [r1, 0x3] ldr r0, _0806132C ldr r1, [r5] strh r1, [r0, 0x18] strh r7, [r0, 0x1A] strh r7, [r0, 0x1C] strh r4, [r0, 0x1E] strh r4, [r0, 0x20] strh r4, [r0, 0x4] mov r1, r10 orrs r3, r1 asrs r1, r3, 31 movs r2, 0x10 ands r1, r2 strh r1, [r0, 0x6] strh r4, [r0, 0xC] strh r4, [r0, 0xE] strh r4, [r0, 0x14] str r4, [r0] adds r0, 0x28 bl sub_801317C adds r0, r7, 0 movs r1, 0 bl sub_80095E4 mov r2, r10 cmp r2, 0 beq _0806123A adds r0, 0x2 _0806123A: mov r3, r8 strh r0, [r3, 0x10] strh r0, [r3, 0xE] movs r0, 0x8 ldr r5, _08061328 strb r0, [r5, 0x2] ldr r0, [sp, 0x8] cmp r0, 0 beq _0806125C mov r1, r8 adds r1, 0x18 mov r0, r8 adds r0, 0x48 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} _0806125C: mov r0, r8 movs r1, 0x1 bl sub_803ECB4 ldr r0, _0806132C movs r1, 0 bl sub_80137B0 movs r0, 0 bl sub_80073B8 mov r0, r10 cmp r0, 0 beq _08061286 ldr r2, _08061330 str r4, [sp] movs r0, 0xC movs r1, 0 movs r3, 0 bl sub_8014FF0 _08061286: movs r6, 0 cmp r6, r7 blt _0806128E b _08061440 _0806128E: lsls r1, r6, 2 mov r0, r9 adds r0, 0x4 adds r0, r1 ldr r1, [r0] cmp r1, 0 bge _0806129E b _08061438 _0806129E: ldr r0, _08061318 ldr r0, [r0] lsls r1, 2 ldr r2, _0806131C adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _080612BA b _08061438 _080612BA: ldr r5, [r4, 0x70] mov r0, r9 adds r0, 0x14 adds r0, r6 ldrb r0, [r0] movs r2, 0x2 cmp r0, 0 beq _080612CC movs r2, 0x6 _080612CC: ldr r4, _08061334 adds r0, r4, 0 adds r1, r5, 0 bl sub_8070968 ldr r0, _08061338 ldr r1, [r0] ldrb r2, [r5, 0xA] movs r0, 0x64 muls r0, r2 adds r1, r0 ldr r3, _0806133C adds r1, r3 movs r2, 0 ldrsh r0, [r1, r2] bl sub_806A538 lsls r0, 24 cmp r0, 0 beq _08061388 movs r3, 0x10 ldrsh r2, [r5, r3] adds r1, r2, 0 cmp r2, 0 bge _08061300 adds r1, r2, 0x3 _08061300: movs r3, 0xE ldrsh r0, [r5, r3] asrs r1, 2 cmp r0, r1 bgt _08061344 adds r0, r4, 0 adds r0, 0x50 ldr r1, _08061340 bl strcpy b _080613EE .align 2, 0 _08061318: .4byte gUnknown_203B418 _0806131C: .4byte 0x0001357c _08061320: .4byte 0x00000157 _08061324: .4byte gUnknown_202F260 _08061328: .4byte gUnknown_202F270 _0806132C: .4byte gUnknown_202EE10 _08061330: .4byte gUnknown_8106BB0 _08061334: .4byte gUnknown_202DF98 _08061338: .4byte gUnknown_203B45C _0806133C: .4byte 0x00008e02 _08061340: .4byte gUnknown_8106BB4 _08061344: movs r0, 0xE ldrsh r3, [r5, r0] lsls r0, r1, 1 cmp r3, r0 bgt _08061360 adds r0, r4, 0 adds r0, 0x50 ldr r1, _0806135C bl strcpy b _080613EE .align 2, 0 _0806135C: .4byte gUnknown_8106BB8 _08061360: adds r0, r1 cmp r3, r0 bgt _08061378 adds r0, r4, 0 adds r0, 0x50 ldr r1, _08061374 bl strcpy b _080613EE .align 2, 0 _08061374: .4byte gUnknown_8106BBC _08061378: adds r0, r4, 0 adds r0, 0x50 ldr r1, _08061384 bl strcpy b _080613EE .align 2, 0 _08061384: .4byte gUnknown_8106BC0 _08061388: movs r1, 0x10 ldrsh r2, [r5, r1] adds r1, r2, 0 cmp r2, 0 bge _08061394 adds r1, r2, 0x3 _08061394: movs r3, 0xE ldrsh r0, [r5, r3] asrs r1, 2 cmp r0, r1 bgt _080613B0 adds r0, r4, 0 adds r0, 0x50 ldr r1, _080613AC bl strcpy b _080613EE .align 2, 0 _080613AC: .4byte gUnknown_8106BC4 _080613B0: movs r0, 0xE ldrsh r3, [r5, r0] lsls r0, r1, 1 cmp r3, r0 bgt _080613CC adds r0, r4, 0 adds r0, 0x50 ldr r1, _080613C8 bl strcpy b _080613EE .align 2, 0 _080613C8: .4byte gUnknown_8106BC8 _080613CC: adds r0, r1 cmp r3, r0 bgt _080613E4 adds r0, r4, 0 adds r0, 0x50 ldr r1, _080613E0 bl strcpy b _080613EE .align 2, 0 _080613E0: .4byte gUnknown_8106BCC _080613E4: adds r0, r4, 0 adds r0, 0x50 ldr r1, _0806141C bl strcpy _080613EE: ldr r0, _08061420 movs r2, 0xE ldrsh r1, [r5, r2] str r1, [r0] movs r3, 0x10 ldrsh r1, [r5, r3] str r1, [r0, 0x4] ldr r0, _08061424 adds r1, r6, 0 bl sub_8013800 adds r1, r0, 0 ldrb r0, [r5, 0x7] cmp r0, 0 beq _0806142C movs r0, 0 str r0, [sp] movs r0, 0x9 ldr r2, _08061428 movs r3, 0 bl sub_8014FF0 b _08061438 .align 2, 0 _0806141C: .4byte gUnknown_8106BD0 _08061420: .4byte gUnknown_202DE30 _08061424: .4byte gUnknown_202EE10 _08061428: .4byte gUnknown_8106BD4 _0806142C: str r0, [sp] movs r0, 0x9 ldr r2, _08061458 movs r3, 0 bl sub_8014FF0 _08061438: adds r6, 0x1 cmp r6, r7 bge _08061440 b _0806128E _08061440: movs r0, 0 bl sub_80073E0 add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08061458: .4byte gUnknown_8106BE0 thumb_func_end sub_8061130 thumb_func_start sub_806145C sub_806145C: push {r4-r6,lr} ldr r2, _08061560 movs r1, 0 str r1, [r2] ldr r5, _08061564 ldr r2, [r5] ldr r1, _08061568 movs r3, 0x18 ldrsh r1, [r1, r3] lsls r1, 2 adds r0, 0x4 adds r0, r1 ldr r0, [r0] lsls r0, 2 ldr r1, _0806156C adds r2, r1 adds r2, r0 ldr r6, [r2] ldr r4, [r6, 0x70] movs r0, 0x1B movs r1, 0 bl sub_8044F5C movs r0, 0x19 movs r1, 0 bl sub_8044F5C ldrb r0, [r4, 0x7] cmp r0, 0 bne _080614C8 ldr r2, [r5] ldr r3, _08061570 adds r0, r2, r3 ldrb r0, [r0] cmp r0, 0 bne _080614C0 adds r0, r4, 0 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x41 bne _080614B8 ldr r1, _08061574 adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0 beq _080614C0 _080614B8: movs r0, 0x34 movs r1, 0 bl sub_8044F5C _080614C0: movs r0, 0x1C movs r1, 0 bl sub_8044F5C _080614C8: movs r0, 0x30 movs r1, 0 bl sub_8044F5C ldrb r0, [r4, 0x7] cmp r0, 0 bne _0806154C movs r0, 0x1A movs r1, 0 bl sub_8044F5C ldrb r0, [r4, 0x7] cmp r0, 0 bne _0806154C ldr r0, _08061564 ldr r1, [r0] ldr r2, _08061574 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 beq _0806154C ldr r3, _08061578 adds r0, r1, r3 ldrb r0, [r0] bl sub_8090158 lsls r0, 24 cmp r0, 0 beq _0806154C movs r0, 0x3B movs r1, 0 bl sub_8044F5C movs r5, 0x1 ldrb r0, [r4, 0xA] cmp r0, 0x3 bhi _08061530 ldr r2, _0806157C ldrb r1, [r4, 0xA] movs r0, 0x64 muls r1, r0 ldr r0, _08061580 adds r1, r0 ldr r0, [r2] adds r0, r1 movs r1, 0xA ldrsh r0, [r0, r1] bl sub_806A538 lsls r0, 24 cmp r0, 0 beq _08061532 _08061530: movs r5, 0 _08061532: adds r0, r6, 0 movs r1, 0 bl sub_8070B6C lsls r0, 24 cmp r0, 0 beq _08061542 movs r5, 0 _08061542: cmp r5, 0 bne _0806154C movs r0, 0x3B bl sub_8044FF0 _0806154C: adds r0, r4, 0 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x4A beq _0806155A cmp r0, 0x47 bne _08061584 _0806155A: movs r0, 0x1 b _08061586 .align 2, 0 _08061560: .4byte gUnknown_202EE6C _08061564: .4byte gUnknown_203B418 _08061568: .4byte gUnknown_202EE10 _0806156C: .4byte 0x0001357c _08061570: .4byte 0x0000065d _08061574: .4byte 0x0000065c _08061578: .4byte 0x00000644 _0806157C: .4byte gUnknown_203B45C _08061580: .4byte 0x00008df8 _08061584: movs r0, 0 _08061586: cmp r0, 0 beq _080615A8 movs r0, 0x19 bl sub_8044FF0 movs r0, 0x3B bl sub_8044FF0 movs r0, 0x1A bl sub_8044FF0 movs r0, 0x30 bl sub_8044FF0 movs r0, 0x34 bl sub_8044FF0 _080615A8: bl sub_8045064 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_806145C thumb_func_start sub_80615B4 sub_80615B4: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 ldr r1, _080615E0 ldr r0, _080615E4 movs r2, 0x18 ldrsh r0, [r0, r2] lsls r0, 2 adds r0, r1 ldrh r1, [r0] adds r0, r5, 0 bl sub_8044C94 ldm r4!, {r0} lsls r0, 2 adds r4, r0 ldr r0, [r4] strb r0, [r5, 0x4] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080615E0: .4byte gUnknown_202EE44 _080615E4: .4byte gUnknown_202EE10 thumb_func_end sub_80615B4 thumb_func_start sub_80615E8 sub_80615E8: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x7C adds r5, r0, 0 mov r4, sp mov r0, sp movs r1, 0 movs r2, 0x60 bl memset movs r0, 0x6 str r0, [sp, 0x4] movs r1, 0x2 strh r1, [r4, 0x8] strh r1, [r4, 0xA] movs r2, 0x12 strh r2, [r4, 0xC] movs r0, 0xE strh r0, [r4, 0xE] strh r2, [r4, 0x10] strh r1, [r4, 0x12] ldr r0, _08061720 str r0, [sp, 0x14] movs r0, 0x3 str r0, [sp, 0x1C] str r0, [sp, 0x34] str r0, [sp, 0x4C] ldr r0, _08061724 ldr r1, [r0] ldrb r0, [r5, 0x4] lsls r0, 2 ldr r2, _08061728 adds r1, r2 adds r1, r0 ldr r1, [r1] str r1, [sp, 0x74] ldr r0, [r1, 0x70] mov r8, r0 movs r1, 0 str r1, [sp, 0x70] movs r2, 0 str r2, [sp, 0x6C] add r0, sp, 0x60 mov r10, r0 _08061646: movs r1, 0x1 str r1, [sp, 0x78] movs r7, 0 ldr r0, _08061720 strb r1, [r0] strb r7, [r0, 0x1] movs r1, 0xA strb r1, [r0, 0x2] strb r7, [r0, 0x3] mov r0, sp movs r1, 0x1 bl sub_803ECB4 ldr r0, [sp, 0x6C] mov r1, r10 mov r2, r8 movs r3, 0 bl sub_806195C movs r2, 0 mov r1, r10 ldrb r0, [r1] cmp r0, 0xB beq _08061684 _08061676: adds r2, 0x1 cmp r2, 0x7 bgt _08061684 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0xB bne _08061676 _08061684: ldr r4, _0806172C movs r1, 0 strh r2, [r4, 0x1A] movs r0, 0x8 strh r0, [r4, 0x1C] strh r1, [r4, 0x1E] strh r1, [r4, 0x20] strh r1, [r4, 0x4] movs r0, 0x10 strh r0, [r4, 0x6] strh r1, [r4, 0xC] strh r1, [r4, 0xE] strh r1, [r4, 0x14] str r1, [r4] adds r0, r4, 0 adds r0, 0x28 bl sub_801317C adds r0, r4, 0 movs r1, 0 bl sub_80137B0 add r2, sp, 0x70 ldrh r2, [r2] strh r2, [r4, 0x18] mov r9, r4 mov r6, r10 _080616BA: mov r0, r9 bl AddMenuCursorSprite ldrb r0, [r6, 0x8] cmp r0, 0xB beq _080616CA bl sub_80623B0 _080616CA: ldr r0, [sp, 0x6C] cmp r0, 0 beq _080616D4 bl sub_8062230 _080616D4: movs r0, 0x3D bl sub_803E46C ldr r0, _08061730 ldrh r1, [r0, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08061740 movs r0, 0x1 bl sub_8083CE0 mov r1, r9 movs r2, 0x18 ldrsh r0, [r1, r2] cmp r0, 0x7 bne _08061738 ldrb r0, [r6, 0x8] cmp r0, 0xB beq _0806171A ldr r5, [sp, 0x6C] adds r5, 0x1 ldr r6, _08061734 movs r4, 0x5 _08061704: ldr r1, [r6] movs r0, 0 bl _call_via_r1 movs r0, 0x3D bl sub_803E46C subs r4, 0x1 cmp r4, 0 bge _08061704 str r5, [sp, 0x6C] _0806171A: movs r0, 0x7 str r0, [sp, 0x70] b _08061926 .align 2, 0 _08061720: .4byte gUnknown_202F270 _08061724: .4byte gUnknown_203B418 _08061728: .4byte 0x0001357c _0806172C: .4byte gUnknown_202EE10 _08061730: .4byte gUnknown_20255F0 _08061734: .4byte gUnknown_203B080 _08061738: mov r0, r9 movs r1, 0 bl sub_80136E0 _08061740: ldr r0, _08061788 ldrh r1, [r0, 0x4] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0806179C movs r0, 0x1 bl sub_8083CE0 ldr r1, _0806178C movs r2, 0x18 ldrsh r0, [r1, r2] cmp r0, 0 bne _08061794 ldr r0, [sp, 0x6C] cmp r0, 0 beq _08061780 adds r5, r0, 0 subs r5, 0x1 ldr r6, _08061790 movs r4, 0x5 _0806176A: ldr r1, [r6] movs r0, 0 bl _call_via_r1 movs r0, 0x3D bl sub_803E46C subs r4, 0x1 cmp r4, 0 bge _0806176A str r5, [sp, 0x6C] _08061780: movs r1, 0 str r1, [sp, 0x70] b _08061926 .align 2, 0 _08061788: .4byte gUnknown_20255F0 _0806178C: .4byte gUnknown_202EE10 _08061790: .4byte gUnknown_203B084 _08061794: adds r0, r1, 0 movs r1, 0 bl sub_8013744 _0806179C: ldr r4, _080617C8 ldrh r1, [r4, 0x2] movs r0, 0x8 ands r0, r1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0 beq _080617DE mov r2, r9 movs r1, 0x18 ldrsh r0, [r2, r1] mov r2, r10 adds r1, r2, r0 ldrb r4, [r1] str r0, [sp, 0x70] bl sub_8083D44 adds r0, r4, 0 bl sub_8062748 _080617C4: movs r7, 0 b _08061926 .align 2, 0 _080617C8: .4byte gUnknown_20255F0 _080617CC: bl sub_8083D08 mov r0, r9 movs r1, 0x18 ldrsh r4, [r0, r1] cmp r4, 0 beq _080617DC b _08061900 _080617DC: b _080618C4 _080617DE: movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080617F4 ldr r2, _080618BC adds r0, r2, 0 adds r0, 0x29 ldrb r0, [r0] cmp r0, 0 bne _080617F4 b _0806190C _080617F4: mov r2, r9 movs r0, 0x18 ldrsh r1, [r2, r0] mov r2, r10 adds r0, r2, r1 ldrb r7, [r0] str r1, [sp, 0x70] bl sub_8062D68 bl sub_8083D08 ldr r0, _080618C0 str r5, [r0] movs r0, 0x2F movs r1, 0 bl sub_8044F5C movs r0, 0xC movs r1, 0 bl sub_8044F5C ldr r0, [sp, 0x74] movs r1, 0x1 bl sub_8070B6C lsls r0, 24 cmp r0, 0 beq _08061832 movs r0, 0x2F bl sub_8044FF0 _08061832: mov r0, sp movs r1, 0x16 bl sub_805FC30 ldr r5, _080618BC adds r6, r4, 0 adds r4, r5, 0 adds r4, 0x2A _08061842: adds r0, r5, 0 bl AddMenuCursorSprite movs r0, 0x3D bl sub_803E46C ldrh r1, [r6, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08061866 movs r0, 0x1 bl sub_8083CE0 adds r0, r5, 0 movs r1, 0x1 bl sub_80136E0 _08061866: ldrh r1, [r6, 0x4] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0806187E movs r0, 0x1 bl sub_8083CE0 adds r0, r5, 0 movs r1, 0x1 bl sub_8013744 _0806187E: ldrh r1, [r6, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08061892 adds r0, r5, 0 adds r0, 0x29 ldrb r0, [r0] cmp r0, 0 beq _080618A4 _08061892: movs r1, 0x18 ldrsh r0, [r5, r1] bl sub_8044F3C lsls r0, 24 cmp r0, 0 bne _080617CC bl sub_8083D30 _080618A4: ldrh r1, [r6, 0x2] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _080618B4 ldrb r0, [r4] cmp r0, 0 beq _08061842 _080618B4: bl sub_8083D30 b _080617C4 .align 2, 0 _080618BC: .4byte gUnknown_202EE10 _080618C0: .4byte gUnknown_202EE6C _080618C4: ldr r0, _080618FC bl sub_8083E38 mov r0, r8 adds r0, 0x94 strb r7, [r0] mov r1, r8 adds r1, 0x78 movs r0, 0x6 strb r0, [r1] mov r0, r8 adds r0, 0x80 str r4, [r0] adds r0, 0x4 str r4, [r0] subs r0, 0x8 strh r4, [r0] mov r2, r8 ldrb r0, [r2, 0x7] cmp r0, 0 beq _080618F0 b _080617C4 _080618F0: ldr r0, [sp, 0x74] movs r1, 0x1 bl sub_807ADB8 b _080617C4 .align 2, 0 _080618FC: .4byte 0x00000133 _08061900: adds r0, r7, 0 bl sub_8062748 movs r0, 0 str r0, [sp, 0x78] b _080617C4 _0806190C: movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08061920 adds r0, r2, 0 adds r0, 0x2A ldrb r0, [r0] cmp r0, 0 bne _08061920 b _080616BA _08061920: bl sub_8083D30 movs r7, 0x1 _08061926: ldr r1, [sp, 0x78] cmp r1, 0 beq _08061932 ldr r0, _08061958 bl AddMenuCursorSprite _08061932: movs r0, 0x3D bl sub_803E46C cmp r7, 0 bne _0806193E b _08061646 _0806193E: movs r0, 0 movs r1, 0 bl sub_803EAF0 add sp, 0x7C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08061958: .4byte gUnknown_202EE10 thumb_func_end sub_80615E8 thumb_func_start sub_806195C sub_806195C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 adds r5, r0, 0 mov r9, r1 str r2, [sp, 0x10] adds r7, r3, 0 subs r5, 0x1 adds r0, r7, 0 bl sub_80073B8 ldr r0, _080619B4 ldr r2, [r0] movs r0, 0 str r0, [sp] movs r0, 0x10 movs r1, 0 adds r3, r7, 0 bl xxx_call_draw_string movs r0, 0x14 mov r8, r0 movs r1, 0xB mov r0, r9 adds r0, 0x8 _08061994: strb r1, [r0] subs r0, 0x1 cmp r0, r9 bge _08061994 bl sub_8083654 ldrb r1, [r0, 0x9] add r0, sp, 0x4 bl sub_808EB0C movs r6, 0x1 negs r6, r6 movs r1, 0 mov r10, r1 b _080619FC .align 2, 0 _080619B4: .4byte gUnknown_80FE954 _080619B8: ldr r0, _080619DC adds r1, r4, 0 bl sub_808EAC0 ldr r0, [sp, 0x10] adds r0, 0x94 ldrb r0, [r0] cmp r0, r4 bne _080619E4 mov r0, r10 str r0, [sp] movs r0, 0x10 mov r1, r8 ldr r2, _080619E0 adds r3, r7, 0 bl sub_8014FF0 b _080619F4 .align 2, 0 _080619DC: .4byte gUnknown_202DF98 _080619E0: .4byte gUnknown_8106BEC _080619E4: mov r1, r10 str r1, [sp] movs r0, 0x10 mov r1, r8 ldr r2, _08061A34 adds r3, r7, 0 bl sub_8014FF0 _080619F4: adds r6, 0x1 movs r0, 0xC add r8, r0 adds r5, 0x1 _080619FC: cmp r6, 0x9 bgt _08061A1E cmp r5, 0 blt _080619F4 cmp r5, 0xB bgt _080619F4 mov r0, sp adds r0, r5 adds r0, 0x4 ldrb r4, [r0] cmp r6, 0x8 bhi _08061A1A mov r1, r9 adds r0, r1, r6 strb r4, [r0] _08061A1A: cmp r4, 0xB bne _080619B8 _08061A1E: adds r0, r7, 0 bl sub_80073E0 add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08061A34: .4byte gUnknown_8106BF4 thumb_func_end sub_806195C thumb_func_start sub_8061A38 sub_8061A38: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x130 adds r5, r0, 0 lsls r1, 24 lsrs r6, r1, 24 add r4, sp, 0xB0 adds r0, r4, 0 movs r1, 0 movs r2, 0x60 bl memset movs r0, 0x6 str r0, [r4, 0x4] movs r1, 0x2 strh r1, [r4, 0x8] strh r1, [r4, 0xA] movs r2, 0x12 strh r2, [r4, 0xC] movs r0, 0xE strh r0, [r4, 0xE] strh r2, [r4, 0x10] strh r1, [r4, 0x12] ldr r0, _08061AA4 str r0, [r4, 0x14] movs r0, 0x3 str r0, [r4, 0x1C] str r0, [r4, 0x34] str r0, [r4, 0x4C] movs r0, 0 str r0, [sp, 0x114] mov r8, r0 ldr r0, _08061AA8 ldr r1, [r0] ldrb r0, [r5, 0x4] lsls r0, 2 ldr r2, _08061AAC adds r1, r2 adds r1, r0 ldr r1, [r1] str r1, [sp, 0x110] ldr r0, [r1, 0x70] str r0, [sp, 0x11C] adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x4A beq _08061AA0 cmp r0, 0x47 bne _08061AB0 _08061AA0: movs r0, 0x1 b _08061AB2 .align 2, 0 _08061AA4: .4byte gUnknown_202F270 _08061AA8: .4byte gUnknown_203B418 _08061AAC: .4byte 0x0001357c _08061AB0: movs r0, 0 _08061AB2: adds r1, r0, 0 cmp r1, 0 beq _08061ACE movs r0, 0x1 str r0, [sp, 0x4] movs r0, 0 str r0, [sp, 0x8] str r0, [sp, 0xC] str r0, [sp, 0x10] str r0, [sp, 0x14] str r0, [sp, 0x18] movs r1, 0x1 str r1, [sp, 0x118] b _08061AFE _08061ACE: cmp r6, 0 beq _08061AE6 movs r0, 0x4 str r0, [sp, 0x4] str r1, [sp, 0x8] str r1, [sp, 0xC] str r1, [sp, 0x10] str r1, [sp, 0x14] str r1, [sp, 0x18] movs r2, 0x1 str r2, [sp, 0x118] b _08061AFE _08061AE6: movs r0, 0x2 str r0, [sp, 0x4] movs r0, 0x1 str r0, [sp, 0x8] movs r0, 0x3 str r0, [sp, 0xC] movs r0, 0x5 str r0, [sp, 0x10] str r6, [sp, 0x14] str r6, [sp, 0x18] movs r0, 0x4 str r0, [sp, 0x118] _08061AFE: add r2, sp, 0x5C movs r0, 0 strh r0, [r2] mov r1, sp adds r1, 0x72 strh r0, [r1] ldr r3, _08061BB4 strh r0, [r3, 0x18] subs r1, 0x56 str r1, [sp, 0x12C] add r2, sp, 0x80 mov r9, r2 adds r7, r3, 0 _08061B18: movs r0, 0 mov r10, r0 movs r1, 0 str r1, [sp, 0x120] movs r2, 0 str r2, [sp, 0x124] movs r0, 0x1 str r0, [sp, 0x128] ldr r4, _08061BB8 ldr r1, _08061BBC add r2, sp, 0x118 ldrb r2, [r2] strb r2, [r1] add r0, sp, 0x114 ldrb r0, [r0] strb r0, [r1, 0x1] movs r0, 0xA strb r0, [r1, 0x2] mov r2, r10 strb r2, [r1, 0x3] add r0, sp, 0xB0 movs r1, 0x1 bl sub_803ECB4 ldr r0, [sp, 0x12C] ldr r1, [sp, 0x110] bl sub_8069844 ldr r1, [sp, 0x114] lsls r0, r1, 2 mov r5, sp adds r5, r0 adds r5, 0x4 ldr r0, [r5] mov r2, r10 str r2, [sp] ldr r2, [sp, 0x12C] add r3, sp, 0x80 bl sub_808F844 add r0, sp, 0x114 ldrh r0, [r0] strh r0, [r7, 0x1E] add r1, sp, 0x118 ldrh r1, [r1] strh r1, [r7, 0x20] movs r2, 0 ldrsh r0, [r4, r2] adds r0, 0xF lsls r0, 3 strh r0, [r7, 0xC] movs r1, 0x2 ldrsh r0, [r4, r1] adds r0, 0x1 lsls r0, 3 subs r0, 0x2 strh r0, [r7, 0xE] mov r2, r10 strh r2, [r7, 0x14] strh r2, [r7, 0x4] movs r0, 0x10 strh r0, [r7, 0x6] mov r0, r10 str r0, [r7] adds r0, r7, 0 adds r0, 0x28 bl sub_801317C mov r1, r10 strh r1, [r7, 0x18] strh r1, [r7, 0x1A] strh r1, [r7, 0x1C] ldr r5, [r5] cmp r5, 0x1 bne _08061C10 movs r2, 0 add r1, sp, 0x8C b _08061BC8 .align 2, 0 _08061BB4: .4byte gUnknown_202EE10 _08061BB8: .4byte gUnknown_2027370 _08061BBC: .4byte gUnknown_202F270 _08061BC0: adds r1, 0x4 adds r2, 0x1 cmp r2, 0x7 bgt _08061BCE _08061BC8: ldr r0, [r1] cmp r0, 0 bne _08061BC0 _08061BCE: cmp r2, 0 beq _08061C44 movs r0, 0x1 str r0, [sp, 0x124] strh r2, [r7, 0x1A] b _08061C38 _08061BDA: movs r0, 0x18 ldrsh r2, [r7, r0] lsls r1, r2, 2 add r0, sp, 0x8C adds r0, r1 ldr r4, [r0] mov r8, r2 bl sub_8083D44 adds r0, r4, 0 bl sub_806285C movs r1, 0 str r1, [sp, 0x128] b _080621E4 _08061BF8: movs r2, 0x18 ldrsh r0, [r7, r2] mov r2, r9 adds r1, r2, r0 ldrb r4, [r1] mov r8, r0 bl sub_8083D44 adds r0, r4, 0 bl sub_806262C b _08062082 _08061C10: cmp r5, 0x4 bne _08061C48 movs r1, 0 add r2, sp, 0x80 ldrb r0, [r2] cmp r0, 0 beq _08061C2E mov r2, r9 _08061C20: adds r1, 0x1 cmp r1, 0x7 bgt _08061C2E adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0 bne _08061C20 _08061C2E: cmp r1, 0 beq _08061C44 movs r0, 0x1 str r0, [sp, 0x120] strh r1, [r7, 0x1A] _08061C38: movs r0, 0x8 strh r0, [r7, 0x1C] adds r0, r7, 0 movs r1, 0 bl sub_80137B0 _08061C44: mov r1, r8 strh r1, [r7, 0x18] _08061C48: ldr r0, _08061CF8 bl AddMenuCursorSprite movs r0, 0 ldr r1, _08061CFC bl sub_8014140 adds r4, r0, 0 movs r5, 0 movs r6, 0 ldr r2, [sp, 0x120] cmp r2, 0 beq _08061C80 mov r1, r9 ldrb r0, [r1, 0x8] cmp r0, 0 beq _08061C70 movs r5, 0x1 bl sub_80623B0 _08061C70: add r1, sp, 0x5C movs r2, 0 ldrsh r0, [r1, r2] cmp r0, 0 beq _08061C80 movs r6, 0x1 bl sub_8062230 _08061C80: ldr r2, [sp, 0x124] cmp r2, 0 beq _08061CA6 mov r1, r9 ldr r0, [r1, 0x2C] cmp r0, 0 beq _08061C94 movs r5, 0x1 bl sub_80623B0 _08061C94: movs r1, 0x72 add r1, sp movs r2, 0 ldrsh r0, [r1, r2] cmp r0, 0 beq _08061CA6 movs r6, 0x1 bl sub_8062230 _08061CA6: movs r0, 0x1C bl sub_803E46C ldr r0, _08061D00 ldrb r0, [r0] cmp r0, 0x1 bls _08061D4E bl sub_80048C8 lsls r0, 24 cmp r0, 0 bne _08061D4E ldr r0, _08061D04 ldrh r1, [r0, 0x2] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _08061CD6 ldr r2, _08061CF8 adds r0, r2, 0 adds r0, 0x2B ldrb r0, [r0] cmp r0, 0 beq _08061D08 _08061CD6: movs r0, 0 bl sub_8083CE0 ldr r2, [sp, 0x114] adds r2, 0x1 str r2, [sp, 0x114] lsls r0, r2, 2 add r0, sp adds r0, 0x4 ldr r0, [r0] cmp r0, 0 beq _08061CF0 b _080621E6 _08061CF0: movs r0, 0 str r0, [sp, 0x114] b _080621E6 .align 2, 0 _08061CF8: .4byte gUnknown_202EE10 _08061CFC: .4byte gUnknown_8106B8C _08061D00: .4byte gUnknown_202F270 _08061D04: .4byte gUnknown_20255F0 _08061D08: movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _08061D1A adds r0, r2, 0 adds r0, 0x2C ldrb r0, [r0] cmp r0, 0 beq _08061D4E _08061D1A: movs r0, 0 bl sub_8083CE0 ldr r1, [sp, 0x114] subs r1, 0x1 str r1, [sp, 0x114] movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _08061D30 b _080621E6 _08061D30: movs r2, 0x5 str r2, [sp, 0x114] ldr r0, [sp, 0x18] cmp r0, 0 beq _08061D3C b _080621E6 _08061D3C: add r1, sp, 0x18 _08061D3E: subs r1, 0x4 ldr r0, [sp, 0x114] subs r0, 0x1 str r0, [sp, 0x114] ldr r0, [r1] cmp r0, 0 beq _08061D3E b _080621E6 _08061D4E: ldr r1, [sp, 0x124] cmp r1, 0 bne _08061D56 b _08061E8A _08061D56: cmp r4, 0x2 bne _08061D98 cmp r5, 0 beq _08061D98 movs r0, 0 bl sub_8083CE0 mov r2, r9 ldr r0, [r2, 0x2C] cmp r0, 0 beq _08061D8E ldr r5, _08061D94 movs r4, 0x5 _08061D70: ldr r1, [r5] movs r0, 0 bl _call_via_r1 movs r0, 0x1C bl sub_803E46C subs r4, 0x1 cmp r4, 0 bge _08061D70 movs r1, 0x72 add r1, sp ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _08061D8E: movs r2, 0x7 mov r8, r2 b _080621E6 .align 2, 0 _08061D94: .4byte gUnknown_203B080 _08061D98: ldr r0, _08061DDC ldrh r1, [r0, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08061DF0 movs r0, 0 bl sub_8083CE0 ldr r1, _08061DE0 movs r2, 0x18 ldrsh r0, [r1, r2] cmp r0, 0x7 bne _08061DE8 mov r1, r9 ldr r0, [r1, 0x2C] cmp r0, 0 bne _08061DBE b _08061F04 _08061DBE: ldr r5, _08061DE4 movs r4, 0x5 _08061DC2: ldr r1, [r5] movs r0, 0 bl _call_via_r1 movs r0, 0x1C bl sub_803E46C subs r4, 0x1 cmp r4, 0 bge _08061DC2 movs r2, 0x72 add r2, sp b _08061EFE .align 2, 0 _08061DDC: .4byte gUnknown_20255F0 _08061DE0: .4byte gUnknown_202EE10 _08061DE4: .4byte gUnknown_203B080 _08061DE8: adds r0, r1, 0 movs r1, 0 bl sub_80136E0 _08061DF0: cmp r4, 0x1 bne _08061E28 cmp r6, 0 beq _08061E28 movs r2, 0x72 add r2, sp movs r1, 0 ldrsh r0, [r2, r1] cmp r0, 0 bne _08061E06 b _08061F96 _08061E06: ldr r5, _08061E24 movs r4, 0x5 _08061E0A: ldr r1, [r5] movs r0, 0 bl _call_via_r1 movs r0, 0x1C bl sub_803E46C subs r4, 0x1 cmp r4, 0 bge _08061E0A movs r1, 0x72 add r1, sp b _08061F90 .align 2, 0 _08061E24: .4byte gUnknown_203B084 _08061E28: ldr r0, _08061E74 ldrh r1, [r0, 0x4] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _08061E36 b _08061FB0 _08061E36: movs r0, 0x1 bl sub_8083CE0 ldr r1, _08061E78 movs r2, 0x18 ldrsh r0, [r1, r2] cmp r0, 0 bne _08061E80 movs r2, 0x72 add r2, sp movs r1, 0 ldrsh r0, [r2, r1] cmp r0, 0 bne _08061E54 b _08061F96 _08061E54: ldr r5, _08061E7C movs r4, 0x5 _08061E58: ldr r1, [r5] movs r0, 0 bl _call_via_r1 movs r0, 0x1C bl sub_803E46C subs r4, 0x1 cmp r4, 0 bge _08061E58 movs r1, 0x72 add r1, sp b _08061F90 .align 2, 0 _08061E74: .4byte gUnknown_20255F0 _08061E78: .4byte gUnknown_202EE10 _08061E7C: .4byte gUnknown_203B084 _08061E80: adds r0, r1, 0 movs r1, 0 bl sub_8013744 b _08061FB0 _08061E8A: ldr r0, [sp, 0x120] cmp r0, 0 bne _08061E92 b _08061FB0 _08061E92: cmp r4, 0x2 bne _08061EC0 cmp r5, 0 beq _08061EC0 mov r1, r9 ldrb r0, [r1, 0x8] cmp r0, 0 beq _08061F04 ldr r5, _08061EBC movs r4, 0x5 _08061EA6: ldr r1, [r5] movs r0, 0 bl _call_via_r1 movs r0, 0x1C bl sub_803E46C subs r4, 0x1 cmp r4, 0 bge _08061EA6 b _08061EFC .align 2, 0 _08061EBC: .4byte gUnknown_203B080 _08061EC0: ldr r0, _08061F0C ldrh r1, [r0, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08061F20 movs r0, 0x1 bl sub_8083CE0 ldr r1, _08061F10 movs r2, 0x18 ldrsh r0, [r1, r2] cmp r0, 0x7 bne _08061F18 mov r1, r9 ldrb r0, [r1, 0x8] cmp r0, 0 beq _08061F04 ldr r5, _08061F14 movs r4, 0x5 _08061EE8: ldr r1, [r5] movs r0, 0 bl _call_via_r1 movs r0, 0x1C bl sub_803E46C subs r4, 0x1 cmp r4, 0 bge _08061EE8 _08061EFC: add r2, sp, 0x5C _08061EFE: ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] _08061F04: movs r0, 0x7 mov r8, r0 b _080621E6 .align 2, 0 _08061F0C: .4byte gUnknown_20255F0 _08061F10: .4byte gUnknown_202EE10 _08061F14: .4byte gUnknown_203B080 _08061F18: adds r0, r1, 0 movs r1, 0 bl sub_80136E0 _08061F20: cmp r4, 0x1 bne _08061F50 cmp r6, 0 beq _08061F50 add r2, sp, 0x5C movs r1, 0 ldrsh r0, [r2, r1] cmp r0, 0 beq _08061F96 ldr r5, _08061F4C movs r4, 0x5 _08061F36: ldr r1, [r5] movs r0, 0 bl _call_via_r1 movs r0, 0x1C bl sub_803E46C subs r4, 0x1 cmp r4, 0 bge _08061F36 b _08061F8E .align 2, 0 _08061F4C: .4byte gUnknown_203B084 _08061F50: ldr r0, _08061F9C ldrh r1, [r0, 0x4] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08061FB0 movs r0, 0x1 bl sub_8083CE0 ldr r1, _08061FA0 movs r2, 0x18 ldrsh r0, [r1, r2] cmp r0, 0 bne _08061FA8 add r2, sp, 0x5C movs r1, 0 ldrsh r0, [r2, r1] cmp r0, 0 beq _08061F96 ldr r5, _08061FA4 movs r4, 0x5 _08061F7A: ldr r1, [r5] movs r0, 0 bl _call_via_r1 movs r0, 0x1C bl sub_803E46C subs r4, 0x1 cmp r4, 0 bge _08061F7A _08061F8E: add r1, sp, 0x5C _08061F90: ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] _08061F96: movs r2, 0 mov r8, r2 b _080621E6 .align 2, 0 _08061F9C: .4byte gUnknown_20255F0 _08061FA0: .4byte gUnknown_202EE10 _08061FA4: .4byte gUnknown_203B084 _08061FA8: adds r0, r1, 0 movs r1, 0 bl sub_8013744 _08061FB0: bl sub_80048C8 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _08061FBE b _08061C48 _08061FBE: ldr r5, _0806208C ldrh r1, [r5, 0x2] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08061FDA ldr r0, [sp, 0x124] cmp r0, 0 beq _08061FD2 b _08061BDA _08061FD2: ldr r2, [sp, 0x120] cmp r2, 0 beq _08061FDA b _08061BF8 _08061FDA: movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08061FF0 ldr r2, _08062090 adds r0, r2, 0 adds r0, 0x29 ldrb r0, [r0] cmp r0, 0 bne _08061FF0 b _080621CA _08061FF0: ldr r0, [sp, 0x124] cmp r0, 0 beq _080620BC movs r1, 0x18 ldrsh r2, [r7, r1] lsls r1, r2, 2 add r0, sp, 0x8C adds r0, r1 ldr r6, [r0] mov r8, r2 bl sub_8062D68 ldr r0, _08062094 str r4, [r0] bl sub_8083D08 movs r0, 0xC movs r1, 0 bl sub_8044F5C add r0, sp, 0xB0 movs r1, 0x16 bl sub_805FC30 ldr r4, _08062090 movs r2, 0x2A adds r2, r4 mov r10, r2 _08062028: adds r0, r4, 0 bl AddMenuCursorSprite movs r0, 0x1C bl sub_803E46C ldrh r1, [r5, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0806204C movs r0, 0x1 bl sub_8083CE0 adds r0, r4, 0 movs r1, 0x1 bl sub_80136E0 _0806204C: ldrh r1, [r5, 0x4] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08062064 movs r0, 0x1 bl sub_8083CE0 adds r0, r4, 0 movs r1, 0x1 bl sub_8013744 _08062064: ldrh r1, [r5, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08062078 adds r0, r4, 0 adds r0, 0x29 ldrb r0, [r0] cmp r0, 0 beq _08062098 _08062078: bl sub_8083D08 adds r0, r6, 0 bl sub_806285C _08062082: movs r0, 0 str r0, [sp, 0x128] mov r10, r0 b _080621E6 .align 2, 0 _0806208C: .4byte gUnknown_20255F0 _08062090: .4byte gUnknown_202EE10 _08062094: .4byte gUnknown_202EE6C _08062098: movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _080620A8 mov r1, r10 ldrb r0, [r1] cmp r0, 0 beq _08062028 _080620A8: bl sub_8083D30 b _080621BA _080620AE: bl sub_8083D08 movs r1, 0x18 ldrsh r0, [r7, r1] cmp r0, 0 bne _080621B0 b _08062198 _080620BC: ldr r2, [sp, 0x120] cmp r2, 0 bne _080620C4 b _080621C0 _080620C4: movs r0, 0x18 ldrsh r1, [r7, r0] mov r2, r9 adds r0, r2, r1 ldrb r6, [r0] mov r8, r1 bl sub_8062D68 ldr r0, _08062190 ldr r1, [sp, 0x124] str r1, [r0] bl sub_8083D08 movs r0, 0x28 movs r1, 0 bl sub_8044F5C movs r0, 0xC movs r1, 0 bl sub_8044F5C ldr r0, [sp, 0x110] movs r1, 0x1 bl sub_8070B6C lsls r0, 24 cmp r0, 0 beq _08062102 movs r0, 0x28 bl sub_8044FF0 _08062102: add r0, sp, 0xB0 movs r1, 0x16 bl sub_805FC30 ldr r4, _08062194 movs r2, 0x2A adds r2, r4 mov r10, r2 _08062112: adds r0, r4, 0 bl AddMenuCursorSprite movs r0, 0x1C bl sub_803E46C ldrh r1, [r5, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08062136 movs r0, 0x1 bl sub_8083CE0 adds r0, r4, 0 movs r1, 0x1 bl sub_80136E0 _08062136: ldrh r1, [r5, 0x4] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0806214E movs r0, 0x1 bl sub_8083CE0 adds r0, r4, 0 movs r1, 0x1 bl sub_8013744 _0806214E: ldrh r1, [r5, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08062162 adds r0, r4, 0 adds r0, 0x29 ldrb r0, [r0] cmp r0, 0 beq _08062174 _08062162: movs r1, 0x18 ldrsh r0, [r4, r1] bl sub_8044F3C lsls r0, 24 cmp r0, 0 bne _080620AE bl sub_8083D30 _08062174: ldrh r1, [r5, 0x2] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08062186 mov r2, r10 ldrb r0, [r2] cmp r0, 0 beq _08062112 _08062186: bl sub_8083D30 movs r0, 0 mov r10, r0 b _080621E6 .align 2, 0 _08062190: .4byte gUnknown_202EE6C _08062194: .4byte gUnknown_202EE10 _08062198: ldr r0, _080621AC bl sub_8083E38 ldr r0, [sp, 0x11C] adds r0, 0x8C adds r1, r6, 0 bl sub_808EBF4 b _080621BA .align 2, 0 _080621AC: .4byte 0x00000133 _080621B0: adds r0, r6, 0 bl sub_806262C movs r1, 0 str r1, [sp, 0x128] _080621BA: movs r2, 0 mov r10, r2 b _080621E6 _080621C0: bl sub_8083D08 movs r0, 0x1 mov r10, r0 b _080621E6 _080621CA: movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _080621DE adds r0, r2, 0 adds r0, 0x2A ldrb r0, [r0] cmp r0, 0 bne _080621DE b _08061C48 _080621DE: bl sub_8083D30 movs r1, 0x1 _080621E4: mov r10, r1 _080621E6: ldr r2, [sp, 0x128] cmp r2, 0 beq _08062204 ldr r0, [sp, 0x120] cmp r0, 0 bne _080621F8 ldr r1, [sp, 0x124] cmp r1, 0 beq _080621FE _080621F8: ldr r0, _0806222C bl AddMenuCursorSprite _080621FE: movs r0, 0x1C bl sub_803E46C _08062204: mov r2, r10 cmp r2, 0 bne _0806220C b _08061B18 _0806220C: movs r0, 0 movs r1, 0 bl sub_803EAF0 ldr r0, [sp, 0x110] bl sub_807191C add sp, 0x130 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806222C: .4byte gUnknown_202EE10 thumb_func_end sub_8061A38 thumb_func_start sub_8062230 sub_8062230: push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x8 ldr r0, _08062380 ldr r0, [r0] movs r1, 0x8 ands r0, r1 cmp r0, 0 bne _08062248 b _08062372 _08062248: ldr r0, _08062384 mov r9, r0 movs r0, 0 movs r1, 0 str r0, [sp] str r1, [sp, 0x4] mov r0, sp ldrh r0, [r0] ldr r1, _08062388 ands r1, r0 ldr r3, _0806238C ldr r0, [sp] ands r0, r3 orrs r0, r1 str r0, [sp] mov r1, sp ldrh r1, [r1] adds r2, r3, 0 ands r2, r0 orrs r2, r1 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r0, _08062390 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r6, _08062394 mov r8, r6 mov r0, r8 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r0, _08062398 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r0, _0806239C ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] movs r4, 0x80 lsls r4, 7 mov r0, sp ldrh r1, [r0] ldr r6, _080623A0 adds r0, r6, 0 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] orrs r4, r0 ands r3, r1 orrs r3, r4 str r3, [sp] movs r1, 0x80 lsls r1, 6 mov r5, sp ldrh r0, [r5, 0x2] ldr r2, _080623A4 ands r2, r0 orrs r2, r1 ands r2, r6 movs r3, 0xFC lsls r3, 2 ldrh r1, [r5, 0x4] movs r0, 0xFC lsls r0, 8 ands r0, r1 orrs r0, r3 mov r1, r8 ands r0, r1 movs r3, 0xF movs r1, 0xF0 lsls r1, 8 ldr r4, _080623A8 ands r0, r4 orrs r0, r1 strh r0, [r5, 0x4] mov r6, r9 movs r1, 0x2 ldrsh r0, [r6, r1] lsls r0, 3 adds r0, 0x8 ands r0, r4 lsls r0, 4 ldrh r1, [r5, 0x6] ands r3, r1 orrs r3, r0 strh r3, [r5, 0x6] movs r3, 0 ldrsh r0, [r6, r3] lsls r0, 3 adds r0, 0x40 ldr r1, _080623AC ands r0, r1 movs r1, 0xFE lsls r1, 8 ands r2, r1 orrs r2, r0 strh r2, [r5, 0x2] movs r1, 0x80 lsls r1, 1 mov r0, sp movs r2, 0 movs r3, 0 bl AddSprite _08062372: add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08062380: .4byte gUnknown_202EDCC _08062384: .4byte gUnknown_2027370 _08062388: .4byte 0x0000feff _0806238C: .4byte 0xffff0000 _08062390: .4byte 0x0000fdff _08062394: .4byte 0x0000f3ff _08062398: .4byte 0x0000efff _0806239C: .4byte 0x0000dfff _080623A0: .4byte 0x00003fff _080623A4: .4byte 0x0000c1ff _080623A8: .4byte 0x00000fff _080623AC: .4byte 0x000001ff thumb_func_end sub_8062230 thumb_func_start sub_80623B0 sub_80623B0: push {r4-r6,lr} sub sp, 0x8 ldr r0, _080624D4 ldr r0, [r0] movs r1, 0x8 ands r0, r1 cmp r0, 0 bne _080623C2 b _080624CA _080623C2: ldr r6, _080624D8 movs r0, 0 movs r1, 0 str r0, [sp] str r1, [sp, 0x4] mov r0, sp ldrh r0, [r0] ldr r1, _080624DC ands r1, r0 ldr r3, _080624E0 ldr r0, [sp] ands r0, r3 orrs r0, r1 str r0, [sp] mov r1, sp ldrh r1, [r1] adds r2, r3, 0 ands r2, r0 orrs r2, r1 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r0, _080624E4 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r5, _080624E8 adds r0, r5, 0 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r0, _080624EC ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r0, _080624F0 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] movs r4, 0x80 lsls r4, 7 mov r0, sp ldrh r1, [r0] ldr r0, _080624F4 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] orrs r4, r0 ands r3, r1 orrs r3, r4 str r3, [sp] mov r3, sp movs r2, 0xFC lsls r2, 2 ldrh r1, [r3, 0x4] movs r0, 0xFC lsls r0, 8 ands r0, r1 orrs r0, r2 ands r0, r5 movs r2, 0xF movs r1, 0xF0 lsls r1, 8 ldr r4, _080624F8 ands r0, r4 orrs r0, r1 strh r0, [r3, 0x4] movs r1, 0x2 ldrsh r0, [r6, r1] lsls r0, 3 adds r0, 0x70 ands r0, r4 lsls r0, 4 ldrh r1, [r3, 0x6] ands r2, r1 orrs r2, r0 strh r2, [r3, 0x6] movs r1, 0 ldrsh r0, [r6, r1] lsls r0, 3 adds r0, 0x40 ldr r1, _080624FC ands r0, r1 strh r0, [r3, 0x2] subs r1, 0xFF mov r0, sp movs r2, 0 movs r3, 0 bl AddSprite _080624CA: add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080624D4: .4byte gUnknown_202EDCC _080624D8: .4byte gUnknown_2027370 _080624DC: .4byte 0x0000feff _080624E0: .4byte 0xffff0000 _080624E4: .4byte 0x0000fdff _080624E8: .4byte 0x0000f3ff _080624EC: .4byte 0x0000efff _080624F0: .4byte 0x0000dfff _080624F4: .4byte 0x00003fff _080624F8: .4byte 0x00000fff _080624FC: .4byte 0x000001ff thumb_func_end sub_80623B0 thumb_func_start sub_8062500 sub_8062500: push {r4,r5,lr} ldr r0, _0806257C ldr r0, [r0] movs r1, 0x8 ands r0, r1 cmp r0, 0 beq _08062574 ldr r5, _08062580 ldr r0, _08062584 ldrh r2, [r0] ldr r1, _08062588 ands r1, r2 ldr r2, _0806258C ands r1, r2 ldr r4, _08062590 ands r1, r4 ldr r2, _08062594 ands r1, r2 ldr r2, _08062598 ands r1, r2 movs r3, 0x80 lsls r3, 7 ldr r2, _0806259C ands r1, r2 orrs r1, r3 strh r1, [r0] movs r3, 0xFC lsls r3, 2 ldrh r2, [r0, 0x4] movs r1, 0xFC lsls r1, 8 ands r1, r2 orrs r1, r3 ands r1, r4 movs r3, 0xF movs r2, 0xF0 lsls r2, 8 ldr r4, _080625A0 ands r1, r4 orrs r1, r2 strh r1, [r0, 0x4] movs r2, 0x2 ldrsh r1, [r5, r2] lsls r1, 3 adds r1, 0x60 ands r1, r4 lsls r1, 4 ldrh r2, [r0, 0x6] ands r3, r2 orrs r3, r1 strh r3, [r0, 0x6] movs r1, 0x70 strh r1, [r0, 0x2] adds r1, 0x90 movs r2, 0 movs r3, 0 bl AddSprite _08062574: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0806257C: .4byte gUnknown_202EDCC _08062580: .4byte gUnknown_2027370 _08062584: .4byte gUnknown_202F268 _08062588: .4byte 0x0000feff _0806258C: .4byte 0x0000fdff _08062590: .4byte 0x0000f3ff _08062594: .4byte 0x0000efff _08062598: .4byte 0x0000dfff _0806259C: .4byte 0x00003fff _080625A0: .4byte 0x00000fff thumb_func_end sub_8062500 thumb_func_start sub_80625A4 sub_80625A4: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0xC adds r7, r0, 0 mov r9, r1 mov r0, sp bl sub_801317C movs r4, 0 cmp r4, r7 bge _0806261A subs r0, r7, 0x1 mov r8, r0 mov r5, sp _080625C4: lsls r0, r4, 2 add r0, r9 ldr r0, [r0] mov r1, sp bl sub_80639E4 adds r6, r4, 0x1 b _080625E8 _080625D4: movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _080625E2 ldrb r0, [r5, 0x2] cmp r0, 0 beq _080625E8 _080625E2: bl sub_8083D30 b _08062614 _080625E8: cmp r4, r8 bge _080625F0 bl sub_8062500 _080625F0: mov r0, sp movs r1, 0 bl nullsub_34 movs r0, 0x16 bl sub_803E46C ldr r0, _08062628 ldrh r1, [r0, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08062610 ldrb r0, [r5, 0x1] cmp r0, 0 beq _080625D4 _08062610: bl sub_8083D08 _08062614: adds r4, r6, 0 cmp r4, r7 blt _080625C4 _0806261A: add sp, 0xC pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08062628: .4byte gUnknown_20255F0 thumb_func_end sub_80625A4 thumb_func_start sub_806262C sub_806262C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x88 lsls r0, 24 lsrs r0, 24 mov r10, r0 mov r0, sp adds r0, 0x70 str r0, [sp, 0x84] add r0, sp, 0x10 mov r8, r0 movs r0, 0 mov r9, r0 add r7, sp, 0x4 add r6, sp, 0x80 _08062650: add r0, sp, 0x4 bl sub_801317C mov r0, r8 bl sub_80140B4 mov r0, r8 str r6, [r0, 0x14] movs r1, 0x1 add r0, sp, 0x80 strb r1, [r0] mov r0, r9 strb r0, [r6, 0x1] movs r0, 0x10 strb r0, [r6, 0x2] mov r0, r9 strb r0, [r6, 0x3] mov r0, r8 bl sub_803ECB4 movs r0, 0 bl sub_80073B8 mov r0, r10 bl sub_808EAB0 adds r1, r0, 0 ldr r0, _080626CC bl strcpy ldr r0, _080626D0 ldr r2, [r0] mov r0, r9 str r0, [sp] movs r0, 0x10 movs r1, 0 movs r3, 0 bl sub_8014FF0 mov r0, r10 bl sub_808EADC adds r2, r0, 0 mov r0, r9 str r0, [sp] movs r0, 0x8 movs r1, 0x10 movs r3, 0 bl sub_8014FF0 movs r0, 0 bl sub_80073E0 mov r0, r10 bl sub_808EADC ldr r1, [sp, 0x84] bl sub_8097DF0 adds r5, r0, 0 b _080626EA .align 2, 0 _080626CC: .4byte gUnknown_202DE58 _080626D0: .4byte gUnknown_80FE95C _080626D4: movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _080626E2 ldrb r0, [r7, 0x2] cmp r0, 0 beq _080626EA _080626E2: movs r4, 0x1 bl sub_8083D30 b _08062718 _080626EA: cmp r5, 0 beq _080626F2 bl sub_8062500 _080626F2: add r0, sp, 0x4 movs r1, 0 bl nullsub_34 movs r0, 0x16 bl sub_803E46C ldr r0, _0806272C ldrh r1, [r0, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08062712 ldrb r0, [r7, 0x1] cmp r0, 0 beq _080626D4 _08062712: movs r4, 0 bl sub_8083D08 _08062718: cmp r4, 0 bne _08062730 cmp r5, 0 beq _08062730 adds r0, r5, 0 ldr r1, [sp, 0x84] bl sub_80625A4 b _08062650 .align 2, 0 _0806272C: .4byte gUnknown_20255F0 _08062730: movs r0, 0x4 movs r1, 0x3E bl sub_803E708 add sp, 0x88 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_806262C thumb_func_start sub_8062748 sub_8062748: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x88 lsls r0, 24 lsrs r0, 24 mov r10, r0 mov r0, sp adds r0, 0x70 str r0, [sp, 0x84] add r0, sp, 0x10 mov r8, r0 movs r0, 0 mov r9, r0 add r7, sp, 0x4 add r6, sp, 0x80 _0806276C: add r0, sp, 0x4 bl sub_801317C mov r0, r8 bl sub_80140B4 mov r0, r8 str r6, [r0, 0x14] movs r1, 0x1 add r0, sp, 0x80 strb r1, [r0] mov r0, r9 strb r0, [r6, 0x1] movs r0, 0x10 strb r0, [r6, 0x2] mov r0, r9 strb r0, [r6, 0x3] mov r0, r8 bl sub_803ECB4 movs r0, 0 bl sub_80073B8 ldr r0, _080627E0 mov r1, r10 bl sub_808EAC0 ldr r0, _080627E4 ldr r2, [r0] mov r0, r9 str r0, [sp] movs r0, 0x10 movs r1, 0 movs r3, 0 bl sub_8014FF0 mov r0, r10 bl sub_808EAEC adds r2, r0, 0 mov r0, r9 str r0, [sp] movs r0, 0x8 movs r1, 0x10 movs r3, 0 bl sub_8014FF0 movs r0, 0 bl sub_80073E0 mov r0, r10 bl sub_808EAEC ldr r1, [sp, 0x84] bl sub_8097DF0 adds r5, r0, 0 b _080627FE .align 2, 0 _080627E0: .4byte gUnknown_202DE58 _080627E4: .4byte gUnknown_80FE960 _080627E8: movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _080627F6 ldrb r0, [r7, 0x2] cmp r0, 0 beq _080627FE _080627F6: movs r4, 0x1 bl sub_8083D30 b _0806282C _080627FE: cmp r5, 0 beq _08062806 bl sub_8062500 _08062806: add r0, sp, 0x4 movs r1, 0 bl nullsub_34 movs r0, 0x3E bl sub_803E46C ldr r0, _08062840 ldrh r1, [r0, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08062826 ldrb r0, [r7, 0x1] cmp r0, 0 beq _080627E8 _08062826: movs r4, 0 bl sub_8083D08 _0806282C: cmp r4, 0 bne _08062844 cmp r5, 0 beq _08062844 adds r0, r5, 0 ldr r1, [sp, 0x84] bl sub_80625A4 b _0806276C .align 2, 0 _08062840: .4byte gUnknown_20255F0 _08062844: movs r0, 0x4 movs r1, 0x3E bl sub_803E708 add sp, 0x88 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8062748 thumb_func_start sub_806285C sub_806285C: push {r4-r6,lr} mov r6, r10 mov r5, r9 mov r4, r8 push {r4-r6} sub sp, 0xD4 mov r10, r0 add r0, sp, 0x10 mov r8, r0 add r5, sp, 0x70 adds r0, r5, 0 movs r1, 0 movs r2, 0x60 bl memset movs r0, 0x6 str r0, [sp, 0x74] add r1, sp, 0x78 movs r6, 0 movs r0, 0 mov r9, r0 movs r0, 0x2 strh r0, [r1] strh r0, [r1, 0x2] add r1, sp, 0x7C movs r0, 0x1A strh r0, [r1] mov r0, sp adds r0, 0x7E movs r1, 0xC strh r1, [r0] add r0, sp, 0x80 strh r1, [r0] add r0, sp, 0x84 add r4, sp, 0xD0 str r4, [r0] add r0, sp, 0x88 movs r1, 0x3 str r1, [r0, 0x4] add r0, sp, 0xA0 str r1, [r0, 0x4] add r0, sp, 0xB8 str r1, [r0, 0x4] mov r0, r8 adds r1, r5, 0 movs r2, 0x60 bl memcpy add r0, sp, 0x4 bl sub_801317C movs r0, 0x1 strb r0, [r4] strb r6, [r4, 0x1] movs r0, 0x10 strb r0, [r4, 0x2] strb r6, [r4, 0x3] mov r0, r8 movs r1, 0x1 bl sub_803ECB4 movs r0, 0 bl sub_80073B8 mov r0, r10 bl sub_808E4FC adds r1, r0, 0 ldr r0, _0806291C bl strcpy ldr r0, _08062920 ldr r2, [r0] mov r0, r9 str r0, [sp] movs r0, 0x10 movs r1, 0 movs r3, 0 bl sub_8014FF0 mov r0, r10 bl sub_808E51C adds r2, r0, 0 mov r0, r9 str r0, [sp] movs r0, 0x8 movs r1, 0x10 movs r3, 0 bl sub_8014FF0 movs r0, 0 bl sub_80073E0 add r4, sp, 0x4 b _08062938 .align 2, 0 _0806291C: .4byte gUnknown_202DE58 _08062920: .4byte gUnknown_80FE964 _08062924: movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08062932 ldrb r0, [r4, 0x2] cmp r0, 0 beq _08062938 _08062932: bl sub_8083D30 b _0806295C _08062938: add r0, sp, 0x4 movs r1, 0 bl nullsub_34 movs r0, 0x16 bl sub_803E46C ldr r0, _08062974 ldrh r1, [r0, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08062958 ldrb r0, [r4, 0x1] cmp r0, 0 beq _08062924 _08062958: bl sub_8083D08 _0806295C: movs r0, 0x4 movs r1, 0x3E bl sub_803E708 add sp, 0xD4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08062974: .4byte gUnknown_20255F0 thumb_func_end sub_806285C thumb_func_start sub_8062978 sub_8062978: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x80 mov r8, r0 adds r6, r1, 0 add r4, sp, 0x1C ldr r1, _080629AC adds r0, r4, 0 movs r2, 0x60 bl memcpy movs r0, 0 str r0, [sp, 0x7C] mov r1, r8 cmp r1, 0 beq _080629A2 subs r0, 0x1 str r0, [r1] _080629A2: cmp r6, 0x1 bne _080629BA add r1, sp, 0x4C ldr r0, _080629B0 b _080629C2 .align 2, 0 _080629AC: .4byte gUnknown_8106C30 _080629B0: .4byte gUnknown_8106C00 _080629B4: bl sub_8083D08 b _08062AF4 _080629BA: cmp r6, 0x2 bne _080629CA add r1, sp, 0x4C ldr r0, _08062A38 _080629C2: ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} _080629CA: add r0, sp, 0x4 adds r1, r4, 0 movs r2, 0 bl sub_8061130 movs r0, 0x1 bl sub_80073B8 ldr r0, _08062A3C ldr r2, [r0] movs r0, 0 str r0, [sp] movs r0, 0x4 movs r1, 0x3 movs r3, 0x1 bl xxx_call_draw_string movs r0, 0x1 bl sub_80073E0 ldr r0, _08062A40 mov r9, r0 add r7, sp, 0x8 ldr r1, _08062A44 mov r10, r1 _080629FC: mov r2, r10 movs r3, 0x18 ldrsh r0, [r2, r3] lsls r0, 2 adds r0, r7, r0 ldr r5, [r0] cmp r5, 0 blt _08062A70 ldr r0, _08062A48 ldr r0, [r0] lsls r1, r5, 2 ldr r2, _08062A4C adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08062A5A cmp r9, r5 beq _08062A5A cmp r6, 0x1 bne _08062A50 adds r0, r4, 0 bl sub_8062B74 b _08062A5A .align 2, 0 _08062A38: .4byte gUnknown_8106C18 _08062A3C: .4byte gUnknown_80FE950 _08062A40: .4byte 0xfffffc27 _08062A44: .4byte gUnknown_202EE10 _08062A48: .4byte gUnknown_203B418 _08062A4C: .4byte 0x0001357c _08062A50: cmp r6, 0x2 bne _08062A5A adds r0, r4, 0 bl sub_8062CA8 _08062A5A: mov r9, r5 adds r0, r4, 0 movs r1, 0 bl sub_806A2BC adds r0, r4, 0x4 movs r1, 0 movs r2, 0x1 movs r3, 0x1 bl sub_804A728 _08062A70: ldr r5, _08062B40 adds r0, r5, 0 bl AddMenuCursorSprite movs r0, 0x1B bl sub_803E46C ldr r4, _08062B44 ldrh r1, [r4, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08062A98 movs r0, 0x1 bl sub_8083CE0 adds r0, r5, 0 movs r1, 0x1 bl sub_80136E0 _08062A98: ldrh r1, [r4, 0x4] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08062AB0 movs r0, 0x1 bl sub_8083CE0 adds r0, r5, 0 movs r1, 0x1 bl sub_8013744 _08062AB0: ldrh r1, [r4, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08062AC4 adds r0, r5, 0 adds r0, 0x29 ldrb r0, [r0] cmp r0, 0 beq _08062AD8 _08062AC4: movs r3, 0x18 ldrsh r0, [r5, r3] add r1, sp, 0x18 adds r1, r0 ldrb r0, [r1] cmp r0, 0 beq _08062AD4 b _080629B4 _08062AD4: bl sub_8083D30 _08062AD8: ldr r0, _08062B44 ldrh r1, [r0, 0x2] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08062AEC ldr r5, _08062B48 ldrb r0, [r5] cmp r0, 0 beq _080629FC _08062AEC: bl sub_8083D30 movs r0, 0x1 str r0, [sp, 0x7C] _08062AF4: ldr r4, _08062B40 adds r0, r4, 0 bl AddMenuCursorSprite movs r0, 0x1B bl sub_803E46C bl sub_804AA60 bl sub_8083600 movs r1, 0 bl sub_806A2BC movs r0, 0 movs r1, 0 bl sub_803EAF0 movs r0, 0x4 movs r1, 0x3E bl sub_803E708 ldr r1, [sp, 0x7C] cmp r1, 0 bne _08062B3C movs r2, 0x18 ldrsh r0, [r4, r2] lsls r0, 2 adds r0, r7, r0 ldr r5, [r0] mov r3, r8 cmp r3, 0 beq _08062B38 str r5, [r3] _08062B38: cmp r5, 0 bge _08062B4C _08062B3C: movs r0, 0 b _08062B5A .align 2, 0 _08062B40: .4byte gUnknown_202EE10 _08062B44: .4byte gUnknown_20255F0 _08062B48: .4byte gUnknown_202EE3A _08062B4C: ldr r0, _08062B6C ldr r0, [r0] lsls r1, r5, 2 ldr r5, _08062B70 adds r0, r5 adds r0, r1 ldr r0, [r0] _08062B5A: add sp, 0x80 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08062B6C: .4byte gUnknown_203B418 _08062B70: .4byte 0x0001357c thumb_func_end sub_8062978 thumb_func_start sub_8062B74 sub_8062B74: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 mov r10, r0 ldr r0, [r0, 0x70] mov r9, r0 movs r0, 0x2 bl sub_8008C54 movs r0, 0x2 bl sub_80073B8 ldr r0, _08062BD0 mov r1, r10 movs r2, 0 bl sub_8045B94 ldr r0, _08062BD4 ldr r2, [r0] movs r0, 0 str r0, [sp] movs r0, 0xC movs r1, 0 movs r3, 0x2 bl sub_8014FF0 movs r1, 0x10 mov r8, r1 mov r0, r9 adds r0, 0xA4 ldrb r0, [r0] cmp r0, 0x1 beq _08062BDE mov r0, r9 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x4A beq _08062BCA cmp r0, 0x47 bne _08062BD8 _08062BCA: movs r0, 0x1 b _08062BDA .align 2, 0 _08062BD0: .4byte gUnknown_202DF98 _08062BD4: .4byte gUnknown_80FE978 _08062BD8: movs r0, 0 _08062BDA: cmp r0, 0 beq _08062BF4 _08062BDE: ldr r2, _08062BF0 movs r0, 0 str r0, [sp] movs r0, 0xC mov r1, r8 movs r3, 0x2 bl sub_8014FF0 b _08062C8A .align 2, 0 _08062BF0: .4byte gUnknown_8106C90 _08062BF4: movs r7, 0 movs r4, 0x8C lsls r4, 1 add r4, r9 adds r5, r4, 0 _08062BFE: add r0, sp, 0x4 movs r1, 0 movs r2, 0xC bl memset movs r0, 0x6A str r0, [sp, 0x8] ldrb r1, [r4] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08062C80 mov r1, r9 ldrb r0, [r1, 0x7] cmp r0, 0 beq _08062C22 movs r0, 0x2 b _08062C24 _08062C22: movs r0, 0x4 _08062C24: str r0, [sp, 0x4] mov r0, r10 adds r1, r5, 0 movs r2, 0x1 bl sub_80573CC add r1, sp, 0x4 movs r2, 0 lsls r0, 24 cmp r0, 0 bne _08062C3C movs r2, 0x1 _08062C3C: strb r2, [r1, 0x8] ldr r0, _08062CA0 adds r1, r5, 0 add r2, sp, 0x4 bl sub_80928C0 ldrb r1, [r4] movs r0, 0x2 ands r0, r1 movs r6, 0xD cmp r0, 0 bne _08062C6C movs r6, 0x8 cmp r7, 0 beq _08062C6C mov r2, r8 subs r2, 0x2 movs r0, 0x7 str r0, [sp] movs r0, 0x2 movs r1, 0xC movs r3, 0x78 bl sub_80078A4 _08062C6C: movs r0, 0 str r0, [sp] adds r0, r6, 0 mov r1, r8 ldr r2, _08062CA4 movs r3, 0x2 bl sub_8014FF0 movs r0, 0xC add r8, r0 _08062C80: adds r4, 0x8 adds r5, 0x8 adds r7, 0x1 cmp r7, 0x3 ble _08062BFE _08062C8A: movs r0, 0x2 bl sub_80073E0 add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08062CA0: .4byte gUnknown_202DE58 _08062CA4: .4byte gUnknown_8106C98 thumb_func_end sub_8062B74 thumb_func_start sub_8062CA8 sub_8062CA8: push {r4-r7,lr} sub sp, 0x4 adds r4, r0, 0 ldr r5, [r4, 0x70] movs r0, 0x2 bl sub_8008C54 movs r0, 0x2 bl sub_80073B8 ldr r0, _08062CF8 adds r1, r4, 0 movs r2, 0 bl sub_8045B94 ldr r0, _08062CFC ldr r2, [r0] movs r0, 0 str r0, [sp] movs r0, 0xC movs r1, 0 movs r3, 0x2 bl sub_8014FF0 movs r7, 0x8 movs r6, 0x12 adds r0, r5, 0 adds r0, 0xA4 ldrb r0, [r0] cmp r0, 0x1 beq _08062D08 adds r0, r5, 0 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x4A beq _08062CF4 cmp r0, 0x47 bne _08062D00 _08062CF4: movs r0, 0x1 b _08062D02 .align 2, 0 _08062CF8: .4byte gUnknown_202DF98 _08062CFC: .4byte gUnknown_80FE940 _08062D00: movs r0, 0 _08062D02: adds r4, r0, 0 cmp r4, 0 beq _08062D18 _08062D08: ldr r2, _08062D14 movs r0, 0 str r0, [sp] movs r0, 0x8 b _08062D2C .align 2, 0 _08062D14: .4byte gUnknown_8106C90 _08062D18: adds r2, r5, 0 adds r2, 0x60 ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08062D3C ldr r2, _08062D38 str r4, [sp] adds r0, r7, 0 _08062D2C: adds r1, r6, 0 movs r3, 0x2 bl sub_8014FF0 b _08062D52 .align 2, 0 _08062D38: .4byte gUnknown_8106C9C _08062D3C: ldr r0, _08062D60 adds r1, r2, 0 bl sub_8045C18 ldr r2, _08062D64 str r4, [sp] adds r0, r7, 0 adds r1, r6, 0 movs r3, 0x2 bl sub_8014FF0 _08062D52: movs r0, 0x2 bl sub_80073E0 add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08062D60: .4byte gUnknown_202DE58 _08062D64: .4byte gUnknown_8106C98 thumb_func_end sub_8062CA8 thumb_func_start sub_8062D68 sub_8062D68: push {lr} ldr r0, _08062D84 movs r1, 0 strh r1, [r0, 0x1E] strh r1, [r0, 0x20] strh r1, [r0, 0xC] strh r1, [r0, 0xE] strh r1, [r0, 0x14] adds r0, 0x28 bl sub_801317C pop {r0} bx r0 .align 2, 0 _08062D84: .4byte gUnknown_202EE10 thumb_func_end sub_8062D68 thumb_func_start sub_8062D88 sub_8062D88: movs r0, 0x1 bx lr thumb_func_end sub_8062D88 thumb_func_start sub_8062D8C sub_8062D8C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 mov r10, r0 ldrb r5, [r0, 0x4] ldr r0, _08062E24 ldr r0, [r0] lsls r1, r5, 2 ldr r2, _08062E28 adds r0, r2 adds r0, r1 ldr r0, [r0] str r0, [sp, 0x4] adds r7, r0, 0 _08062DAE: movs r0, 0 mov r9, r0 movs r6, 0 movs r4, 0 adds r2, r7, 0x4 mov r8, r2 _08062DBA: ldr r0, _08062E24 ldr r0, [r0] lsls r1, r4, 2 ldr r2, _08062E28 adds r0, r2 adds r0, r1 ldr r0, [r0] bl sub_8071A8C lsls r0, 24 cmp r0, 0 beq _08062DDA cmp r4, r5 bne _08062DD8 mov r9, r6 _08062DD8: adds r6, 0x1 _08062DDA: adds r4, 0x1 cmp r4, 0x3 ble _08062DBA adds r0, r7, 0 movs r1, 0 bl sub_806A2BC mov r0, r8 movs r1, 0 movs r2, 0x1 movs r3, 0x1 bl sub_804A728 movs r0, 0x1 bl sub_8044C10 str r6, [sp] adds r0, r7, 0 movs r1, 0 movs r2, 0x1 mov r3, r9 bl sub_8062F90 lsls r0, 24 cmp r0, 0 beq _08062E10 b _08062F80 _08062E10: bl sub_805F1AC lsls r0, 16 lsrs r0, 16 cmp r0, 0x6 bne _08062E6C adds r6, r5, 0 movs r4, 0 b _08062E2E .align 2, 0 _08062E24: .4byte gUnknown_203B418 _08062E28: .4byte 0x0001357c _08062E2C: adds r4, 0x1 _08062E2E: cmp r4, 0x3 bgt _08062E54 adds r5, 0x1 cmp r5, 0x3 ble _08062E3A movs r5, 0 _08062E3A: ldr r0, _08062E64 ldr r0, [r0] lsls r1, r5, 2 ldr r2, _08062E68 adds r0, r2 adds r0, r1 ldr r7, [r0] adds r0, r7, 0 bl sub_8071A8C lsls r0, 24 cmp r0, 0 beq _08062E2C _08062E54: mov r0, r10 strb r5, [r0, 0x4] cmp r6, r5 beq _08062F32 movs r0, 0 bl sub_8083CE0 b _08062F32 .align 2, 0 _08062E64: .4byte gUnknown_203B418 _08062E68: .4byte 0x0001357c _08062E6C: bl sub_805F1AC lsls r0, 16 lsrs r0, 16 cmp r0, 0x7 bne _08062EC0 adds r6, r5, 0 movs r4, 0 b _08062E80 _08062E7E: adds r4, 0x1 _08062E80: cmp r4, 0x3 bgt _08062EA6 subs r5, 0x1 cmp r5, 0 bge _08062E8C movs r5, 0x3 _08062E8C: ldr r0, _08062EB8 ldr r0, [r0] lsls r1, r5, 2 ldr r2, _08062EBC adds r0, r2 adds r0, r1 ldr r7, [r0] adds r0, r7, 0 bl sub_8071A8C lsls r0, 24 cmp r0, 0 beq _08062E7E _08062EA6: mov r0, r10 strb r5, [r0, 0x4] cmp r6, r5 beq _08062F32 movs r0, 0 bl sub_8083CE0 b _08062F32 .align 2, 0 _08062EB8: .4byte gUnknown_203B418 _08062EBC: .4byte 0x0001357c _08062EC0: bl sub_805F1AC lsls r0, 16 lsrs r0, 16 cmp r0, 0x1D bne _08062ED6 bl sub_805F1A0 bl sub_80637E8 b _08062F32 _08062ED6: bl sub_805F1AC lsls r0, 16 lsrs r0, 16 cmp r0, 0x1E bne _08062EF6 movs r0, 0 movs r1, 0 bl sub_803EAF0 bl sub_805F1A0 movs r1, 0x1 bl sub_8063A70 b _08062F32 _08062EF6: bl sub_805F1AC lsls r0, 16 lsrs r0, 16 cmp r0, 0x33 bne _08062F16 movs r0, 0 movs r1, 0 bl sub_803EAF0 bl sub_805F1A0 movs r1, 0 bl sub_8063A70 b _08062F32 _08062F16: bl sub_805F1AC lsls r0, 16 lsrs r0, 16 cmp r0, 0x1F bne _08062F3A movs r0, 0 movs r1, 0 bl sub_803EAF0 bl sub_805F1A0 bl sub_8063B54 _08062F32: movs r0, 0x1 bl sub_8044C10 b _08062F5E _08062F3A: bl sub_805F1AC lsls r0, 16 lsrs r0, 16 cmp r0, 0x21 bne _08062F5E movs r0, 0 movs r1, 0 bl sub_803EAF0 bl sub_805F1A0 movs r1, 0x1 bl sub_8063CF0 movs r0, 0x1 bl sub_8044C10 _08062F5E: bl sub_805F1AC lsls r0, 16 cmp r0, 0 bne _08062F6A b _08062DAE _08062F6A: ldr r0, [sp, 0x4] movs r1, 0 bl sub_806A2BC ldr r0, [sp, 0x4] adds r0, 0x4 movs r1, 0 movs r2, 0x1 movs r3, 0x1 bl sub_804A728 _08062F80: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8062D8C thumb_func_start sub_8062F90 sub_8062F90: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xE8 mov r8, r0 str r3, [sp, 0xDC] lsls r1, 24 lsrs r1, 24 str r1, [sp, 0xD4] lsls r2, 24 lsrs r2, 24 str r2, [sp, 0xD8] ldr r0, [r0, 0x70] mov r9, r0 bl sub_8083600 ldr r0, [r0, 0x70] str r0, [sp, 0xE4] add r4, sp, 0x70 adds r0, r4, 0 movs r1, 0 movs r2, 0x60 bl memset movs r0, 0x6 str r0, [sp, 0x74] add r0, sp, 0x78 movs r6, 0 movs r1, 0x2 strh r1, [r0] strh r1, [r0, 0x2] add r1, sp, 0x7C movs r0, 0x12 strh r0, [r1] mov r0, sp adds r0, 0x7E movs r1, 0x10 strh r1, [r0] add r0, sp, 0x80 strh r1, [r0] add r5, sp, 0xD0 str r5, [sp, 0x84] movs r1, 0x3 str r1, [sp, 0x8C] add r0, sp, 0xA0 str r1, [r0, 0x4] add r0, sp, 0xB8 str r1, [r0, 0x4] add r0, sp, 0x10 adds r1, r4, 0 movs r2, 0x60 bl memcpy ldr r0, _080630A4 str r6, [r0] movs r3, 0 ldr r7, [sp, 0xE4] adds r7, 0x44 _08063008: lsls r0, r3, 3 movs r1, 0x8C lsls r1, 1 adds r0, r1 mov r1, r9 adds r2, r1, r0 ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08063032 ldrb r1, [r2, 0x1] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08063032 movs r0, 0xFD ands r0, r1 strb r0, [r2, 0x1] ldr r0, _080630A4 str r3, [r0] _08063032: adds r3, 0x1 cmp r3, 0x3 ble _08063008 _08063038: movs r5, 0 movs r2, 0 str r2, [sp, 0xE0] mov r10, r2 add r0, sp, 0xD0 str r0, [sp] add r1, sp, 0x70 str r1, [sp, 0x4] ldr r2, [sp, 0xDC] str r2, [sp, 0x8] ldr r0, [sp, 0x108] str r0, [sp, 0xC] mov r0, r8 mov r1, r9 ldr r2, [sp, 0xD4] add r3, sp, 0x10 bl sub_80633E4 _0806305C: ldr r0, _080630A8 add r1, sp, 0x70 bl AddMenuCursorSprite_ movs r0, 0x1E bl sub_803E46C ldr r2, _080630AC ldrh r1, [r2, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080630DE ldrh r0, [r2] lsrs r0, 8 movs r1, 0x1 ands r0, r1 ldr r1, _080630A8 movs r2, 0x18 ldrsh r6, [r1, r2] cmp r0, 0 beq _080630BA movs r0, 0x8C lsls r0, 1 add r0, r9 adds r1, r6, 0 bl sub_8092F80 ldr r1, _080630A4 str r0, [r1] cmp r6, r0 beq _080630B0 movs r0, 0 bl sub_8083CE0 b _080630B4 .align 2, 0 _080630A4: .4byte gUnknown_202F2D8 _080630A8: .4byte gUnknown_202EE10 _080630AC: .4byte gUnknown_20255F0 _080630B0: bl sub_8083D30 _080630B4: movs r0, 0x1 mov r10, r0 b _080631F4 _080630BA: movs r0, 0x8C lsls r0, 1 add r0, r9 adds r1, r6, 0 bl sub_8092D80 adds r1, r0, 0 ldr r0, _08063118 bl sub_8013780 ldr r1, _08063118 movs r2, 0x18 ldrsh r0, [r1, r2] cmp r6, r0 beq _080630DE movs r0, 0 bl sub_8083CE0 _080630DE: ldr r2, _0806311C ldrh r1, [r2, 0x4] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08063150 ldrh r0, [r2] lsrs r0, 8 movs r1, 0x1 ands r0, r1 ldr r4, _08063118 movs r1, 0x18 ldrsh r6, [r4, r1] cmp r0, 0 beq _0806312E movs r0, 0x8C lsls r0, 1 add r0, r9 adds r1, r6, 0 bl sub_8093130 ldr r1, _08063120 str r0, [r1] cmp r6, r0 beq _08063124 movs r0, 0 bl sub_8083CE0 b _08063128 .align 2, 0 _08063118: .4byte gUnknown_202EE10 _0806311C: .4byte gUnknown_20255F0 _08063120: .4byte gUnknown_202F2D8 _08063124: bl sub_8083D30 _08063128: movs r2, 0x1 mov r10, r2 b _080631F4 _0806312E: movs r0, 0x8C lsls r0, 1 add r0, r9 adds r1, r6, 0 bl sub_8092DB8 adds r1, r0, 0 adds r0, r4, 0 bl sub_8013780 movs r1, 0x18 ldrsh r0, [r4, r1] cmp r6, r0 beq _08063150 movs r0, 0 bl sub_8083CE0 _08063150: ldr r4, _08063174 ldrh r1, [r4, 0x4] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _08063168 ldr r6, _08063178 adds r0, r6, 0 adds r0, 0x2B ldrb r0, [r0] cmp r0, 0 beq _0806317C _08063168: adds r0, r7, 0 movs r1, 0x6 bl sub_8044C94 b _080631F4 .align 2, 0 _08063174: .4byte gUnknown_20255F0 _08063178: .4byte gUnknown_202EE10 _0806317C: movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _0806318E adds r0, r6, 0 adds r0, 0x2C ldrb r0, [r0] cmp r0, 0 beq _08063198 _0806318E: adds r0, r7, 0 movs r1, 0x7 bl sub_8044C94 b _080631F4 _08063198: bl sub_8062D88 ldrh r1, [r4, 0x2] ands r0, r1 cmp r0, 0 bne _080631AE adds r0, r6, 0 adds r0, 0x29 ldrb r0, [r0] cmp r0, 0 beq _080631C8 _080631AE: ldr r2, [sp, 0xD4] cmp r2, 0 beq _080631C2 ldrh r0, [r4] lsrs r0, 8 movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _080631C2 movs r5, 0x3 _080631C2: bl sub_8083D08 b _080631F4 _080631C8: movs r0, 0x8 ands r0, r1 cmp r0, 0 bne _0806321C movs r0, 0x4 ands r0, r1 cmp r0, 0 bne _08063214 movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _080631EC adds r0, r6, 0 adds r0, 0x2A ldrb r0, [r0] cmp r0, 0 bne _080631EC b _0806305C _080631EC: bl sub_8083D30 movs r0, 0x1 str r0, [sp, 0xE0] _080631F4: ldr r4, _08063210 adds r0, r4, 0 bl AddMenuCursorSprite movs r0, 0x1E bl sub_803E46C ldrh r0, [r7] subs r0, 0x6 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bhi _08063224 b _080633CC .align 2, 0 _08063210: .4byte gUnknown_202EE10 _08063214: movs r5, 0x2 bl sub_8083D44 b _080631F4 _0806321C: movs r5, 0x1 bl sub_8083D44 b _080631F4 _08063224: mov r1, r10 cmp r1, 0 beq _0806322C b _08063038 _0806322C: ldr r2, [sp, 0xE0] cmp r2, 0 beq _08063234 b _080633B6 _08063234: ldr r6, _08063270 movs r1, 0x18 ldrsh r0, [r4, r1] str r0, [r6] cmp r5, 0x1 bne _08063274 adds r0, r7, 0 movs r1, 0x1D bl sub_8044C94 mov r0, r8 adds r0, 0x24 ldrb r1, [r0] ldr r0, [sp, 0xE4] adds r0, 0x48 strb r1, [r0] ldr r1, [r6] ldr r0, [sp, 0xE4] adds r0, 0x50 strb r1, [r0] movs r0, 0 movs r1, 0 bl sub_803EAF0 movs r0, 0x8 movs r1, 0x1B bl sub_803E708 b _080633B6 .align 2, 0 _08063270: .4byte gUnknown_202F2D8 _08063274: mov r0, r8 ldr r1, [sp, 0xD4] ldr r2, [sp, 0xD8] bl sub_8063698 cmp r5, 0x3 bne _08063298 movs r0, 0x20 bl sub_8044FB4 adds r6, r0, 0 bl sub_8044F3C lsls r0, 24 cmp r0, 0 bne _080632CC movs r0, 0x21 b _080632BC _08063298: cmp r5, 0x2 bne _080632DE mov r2, r9 ldrb r0, [r2, 0x7] cmp r0, 0 beq _080632BA movs r0, 0x1E bl sub_8044FB4 adds r6, r0, 0 bl sub_8044F3C lsls r0, 24 cmp r0, 0 bne _080632CC movs r0, 0x33 b _080632BC _080632BA: movs r0, 0x1F _080632BC: bl sub_8044FB4 adds r6, r0, 0 bl sub_8044F3C lsls r0, 24 cmp r0, 0 beq _080632DE _080632CC: mov r0, r8 bl sub_8045B60 adds r2, r0, 0 adds r0, r7, 0 adds r1, r6, 0 bl sub_80637BC b _080633B6 _080632DE: movs r0, 0x2 bl sub_8009524 add r0, sp, 0x10 movs r1, 0x16 bl sub_805FC30 ldr r6, _0806337C ldr r5, _08063380 movs r0, 0x2A adds r0, r6 mov r10, r0 adds r4, r7, 0 _080632F8: adds r0, r6, 0 bl AddMenuCursorSprite movs r0, 0x1B bl sub_803E46C ldrh r1, [r5, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0806331C movs r0, 0x1 bl sub_8083CE0 adds r0, r6, 0 movs r1, 0x1 bl sub_80136E0 _0806331C: ldrh r1, [r5, 0x4] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08063334 movs r0, 0x1 bl sub_8083CE0 adds r0, r6, 0 movs r1, 0x1 bl sub_8013744 _08063334: bl sub_8062D88 ldrh r1, [r5, 0x2] ands r1, r0 cmp r1, 0 bne _0806334A adds r0, r6, 0 adds r0, 0x29 ldrb r0, [r0] cmp r0, 0 beq _08063388 _0806334A: movs r1, 0x18 ldrsh r0, [r6, r1] bl sub_8044F3C lsls r0, 24 cmp r0, 0 beq _08063384 mov r0, r8 bl sub_8045B60 adds r1, r0, 0 adds r0, r4, 0 bl sub_80637A4 ldrh r0, [r4] subs r0, 0x14 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bls _08063376 bl sub_8083D08 _08063376: movs r6, 0 b _080633A0 .align 2, 0 _0806337C: .4byte gUnknown_202EE10 _08063380: .4byte gUnknown_20255F0 _08063384: bl sub_8083D30 _08063388: ldrh r1, [r5, 0x2] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _0806339A mov r2, r10 ldrb r0, [r2] cmp r0, 0 beq _080632F8 _0806339A: bl sub_8083D30 movs r6, 0x1 _080633A0: ldr r0, _080633E0 bl AddMenuCursorSprite movs r0, 0x1B bl sub_803E46C cmp r6, 0x1 bne _080633B2 b _08063038 _080633B2: movs r0, 0 str r0, [sp, 0xE0] _080633B6: movs r0, 0x1 cmp r0, 0 beq _080633CC movs r0, 0 movs r1, 0 bl sub_803EAF0 movs r0, 0x8 movs r1, 0x1E bl sub_803E708 _080633CC: ldr r0, [sp, 0xE0] add sp, 0xE8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080633E0: .4byte gUnknown_202EE10 thumb_func_end sub_8062F90 thumb_func_start sub_80633E4 sub_80633E4: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x24 str r0, [sp, 0x20] adds r7, r1, 0 adds r4, r3, 0 ldr r0, [sp, 0x44] mov r8, r0 lsls r2, 24 lsrs r2, 24 mov r10, r2 add r1, sp, 0x8 ldr r0, _08063508 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} movs r0, 0 add r5, sp, 0x50 ldrb r6, [r5] mov r5, r8 strb r6, [r5] add r6, sp, 0x4C ldrb r6, [r6] strb r6, [r5, 0x1] strb r0, [r5, 0x3] movs r6, 0 ldr r5, _0806350C ldr r0, _08063510 mov r9, r0 movs r1, 0x1 mov r12, r1 movs r3, 0x8C lsls r3, 1 adds r2, r7, r3 movs r3, 0x3 _08063432: ldrb r1, [r2] mov r0, r12 ands r0, r1 cmp r0, 0 beq _0806343E adds r6, 0x1 _0806343E: adds r2, 0x8 subs r3, 0x1 cmp r3, 0 bge _08063432 movs r3, 0x4 mov r1, r9 ldr r0, [r1] movs r1, 0 strh r0, [r5, 0x18] strh r6, [r5, 0x1A] strh r3, [r5, 0x1C] add r2, sp, 0x4C ldrh r2, [r2] strh r2, [r5, 0x1E] add r3, sp, 0x50 ldrh r3, [r3] strh r3, [r5, 0x20] strh r1, [r5, 0x4] movs r0, 0x10 strh r0, [r5, 0x6] strh r1, [r5, 0x14] str r1, [r5] adds r0, r5, 0 adds r0, 0x28 bl sub_801317C movs r0, 0x4 movs r1, 0xC bl sub_80095E4 adds r0, 0x2 strh r0, [r4, 0x10] strh r0, [r4, 0xE] movs r0, 0xD mov r6, r8 strb r0, [r6, 0x2] movs r0, 0x2 strh r0, [r4, 0x8] adds r1, r4, 0 adds r1, 0x18 adds r0, r4, 0 adds r0, 0x48 ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} adds r1, r4, 0 adds r1, 0x30 add r0, sp, 0x8 ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} adds r0, r4, 0 movs r1, 0x1 bl sub_803ECB4 adds r0, r5, 0 movs r1, 0 bl sub_80137B0 ldr r1, _08063514 movs r2, 0 ldrsh r0, [r1, r2] adds r0, 0x10 lsls r0, 3 strh r0, [r5, 0xC] movs r3, 0x2 ldrsh r0, [r1, r3] adds r0, 0x1 lsls r0, 3 subs r0, 0x2 strh r0, [r5, 0xE] ldr r0, _08063518 adds r1, r7, 0 movs r2, 0 bl sub_80708B4 movs r3, 0 movs r5, 0x1 _080634DE: lsls r1, r3, 3 movs r4, 0x8C lsls r4, 1 adds r1, r4 adds r1, r7, r1 ldr r6, [sp, 0x48] adds r4, r6, r3 movs r0, 0 strb r0, [r4] ldrb r1, [r1] adds r2, r5, 0 ands r2, r1 cmp r2, 0 bne _0806351C ldr r1, _0806350C movs r4, 0x18 ldrsh r0, [r1, r4] cmp r0, r3 bne _08063526 strh r2, [r1, 0x18] b _08063526 .align 2, 0 _08063508: .4byte gUnknown_8106CAC _0806350C: .4byte gUnknown_202EE10 _08063510: .4byte gUnknown_202F2D8 _08063514: .4byte gUnknown_2027370 _08063518: .4byte gUnknown_202DF98 _0806351C: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08063526 strb r5, [r4] _08063526: adds r3, 0x1 cmp r3, 0x3 ble _080634DE movs r5, 0x8C lsls r5, 1 adds r2, r7, r5 mov r6, r10 str r6, [sp] ldr r0, [sp, 0x4C] str r0, [sp, 0x4] movs r0, 0x4 ldr r1, [sp, 0x20] movs r3, 0 bl sub_8063578 movs r0, 0x2 bl sub_80073B8 ldr r0, _08063574 ldr r2, [r0] movs r0, 0 str r0, [sp] movs r0, 0x4 movs r1, 0 movs r3, 0x2 bl sub_8014FF0 movs r0, 0x2 bl sub_80073E0 add sp, 0x24 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08063574: .4byte gUnknown_80FDFE8 thumb_func_end sub_80633E4 thumb_func_start sub_8063578 sub_8063578: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x20 str r0, [sp, 0x10] str r1, [sp, 0x14] adds r5, r2, 0 mov r8, r3 ldr r0, [sp, 0x40] ldr r4, [sp, 0x44] lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x18] ldr r0, [r1, 0x70] str r0, [sp, 0x1C] mov r0, r8 bl sub_80073B8 ldr r0, _080635FC ldr r1, [sp, 0x14] movs r2, 0 bl sub_8045B94 lsls r4, 3 adds r4, 0xA ldr r0, _08063600 ldr r2, [r0] movs r0, 0 str r0, [sp] adds r0, r4, 0 movs r1, 0 mov r3, r8 bl sub_8014FF0 movs r1, 0 mov r9, r1 ldr r0, [sp, 0x10] cmp r9, r0 bge _08063676 add r1, sp, 0x4 mov r10, r1 adds r7, r5, 0 _080635D0: movs r0, 0 str r0, [sp, 0x4] movs r0, 0x6A str r0, [sp, 0x8] movs r0, 0 mov r1, r10 strb r0, [r1, 0x8] mov r1, sp ldrb r0, [r1, 0x18] mov r1, r10 strb r0, [r1, 0x9] ldrb r1, [r7] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08063668 ldr r1, [sp, 0x1C] ldrb r0, [r1, 0x7] cmp r0, 0 beq _08063604 movs r0, 0x2 b _08063606 .align 2, 0 _080635FC: .4byte gUnknown_202DF98 _08063600: .4byte gUnknown_80FE978 _08063604: movs r0, 0x4 _08063606: str r0, [sp, 0x4] ldr r0, [sp, 0x14] adds r1, r5, 0 movs r2, 0x1 bl sub_80573CC add r1, sp, 0x4 movs r2, 0 lsls r0, 24 cmp r0, 0 bne _0806361E movs r2, 0x1 _0806361E: strb r2, [r1, 0x8] ldr r0, _0806368C adds r1, r5, 0 add r2, sp, 0x4 bl sub_80928C0 ldr r0, _08063690 mov r1, r9 bl sub_8013800 adds r4, r0, 0 ldrb r1, [r7] movs r0, 0x2 ands r0, r1 movs r6, 0xD cmp r0, 0 bne _08063658 movs r6, 0x8 mov r0, r9 cmp r0, 0 beq _08063658 subs r2, r4, 0x2 movs r0, 0x7 str r0, [sp] mov r0, r8 movs r1, 0xC movs r3, 0x78 bl sub_80078A4 _08063658: movs r1, 0 str r1, [sp] adds r0, r6, 0 adds r1, r4, 0 ldr r2, _08063694 mov r3, r8 bl sub_8014FF0 _08063668: adds r7, 0x8 adds r5, 0x8 movs r0, 0x1 add r9, r0 ldr r1, [sp, 0x10] cmp r9, r1 blt _080635D0 _08063676: mov r0, r8 bl sub_80073E0 add sp, 0x20 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806368C: .4byte gUnknown_202DE58 _08063690: .4byte gUnknown_202EE10 _08063694: .4byte gUnknown_8106CC4 thumb_func_end sub_8063578 thumb_func_start sub_8063698 sub_8063698: push {r4-r7,lr} mov r7, r8 push {r7} mov r8, r0 lsls r1, 24 lsrs r6, r1, 24 lsls r2, 24 lsrs r7, r2, 24 ldr r4, [r0, 0x70] ldr r0, _080636E8 ldr r0, [r0] lsls r0, 3 movs r1, 0x8C lsls r1, 1 adds r0, r1 adds r5, r4, r0 ldr r1, _080636EC movs r0, 0 str r0, [r1] ldrb r0, [r4, 0x7] cmp r0, 0 beq _080636FA cmp r7, 0 beq _080636D0 movs r0, 0x14 movs r1, 0 bl sub_8044F5C _080636D0: ldrb r1, [r5] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08063702 movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _080636F0 movs r0, 0x33 b _080636F2 .align 2, 0 _080636E8: .4byte gUnknown_202F2D8 _080636EC: .4byte gUnknown_202EE6C _080636F0: movs r0, 0x1E _080636F2: movs r1, 0 bl sub_8044F5C b _08063702 _080636FA: movs r0, 0x1F movs r1, 0 bl sub_8044F5C _08063702: cmp r6, 0 beq _08063716 movs r0, 0x20 movs r1, 0 bl sub_8044F5C movs r0, 0x21 movs r1, 0 bl sub_8044F5C _08063716: movs r0, 0x1D movs r1, 0 bl sub_8044F5C cmp r6, 0 bne _0806372A movs r0, 0x20 bl sub_8044FF0 b _08063754 _0806372A: ldr r5, _080637A0 ldr r1, [r5] adds r0, r4, 0 bl sub_8063C88 lsls r0, 24 cmp r0, 0 bne _08063740 movs r0, 0x20 bl sub_8044FF0 _08063740: ldr r1, [r5] adds r0, r4, 0 bl sub_8063DD4 lsls r0, 24 cmp r0, 0 bne _08063754 movs r0, 0x21 bl sub_8044FF0 _08063754: ldr r5, _080637A0 ldr r1, [r5] adds r0, r4, 0 bl sub_8063DD4 lsls r0, 24 cmp r0, 0 bne _0806376A movs r0, 0x21 bl sub_8044FF0 _0806376A: cmp r7, 0 beq _08063792 movs r0, 0 ldr r1, [r5] cmp r1, 0x3 bgt _08063788 mov r0, r8 movs r2, 0x1 bl sub_8057348 lsls r0, 24 lsrs r0, 24 negs r1, r0 orrs r1, r0 lsrs r0, r1, 31 _08063788: cmp r0, 0 bne _08063792 movs r0, 0x14 bl sub_8044FF0 _08063792: bl sub_8045064 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080637A0: .4byte gUnknown_202F2D8 thumb_func_end sub_8063698 thumb_func_start sub_80637A4 sub_80637A4: push {lr} adds r2, r1, 0 ldr r1, _080637B8 movs r3, 0x18 ldrsh r1, [r1, r3] bl sub_80637BC pop {r0} bx r0 .align 2, 0 _080637B8: .4byte gUnknown_202EE10 thumb_func_end sub_80637A4 thumb_func_start sub_80637BC sub_80637BC: push {r4,r5,lr} adds r4, r0, 0 adds r5, r2, 0 ldr r0, _080637E0 lsls r1, 2 adds r1, r0 ldrh r1, [r1] adds r0, r4, 0 bl sub_8044C94 strb r5, [r4, 0x4] ldr r0, _080637E4 ldr r0, [r0] strb r0, [r4, 0xC] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080637E0: .4byte gUnknown_202EE44 _080637E4: .4byte gUnknown_202F2D8 thumb_func_end sub_80637BC thumb_func_start sub_80637E8 sub_80637E8: push {lr} adds r3, r0, 0 ldr r0, _08063828 ldr r1, [r0] ldrb r0, [r3, 0x4] lsls r0, 2 ldr r2, _0806382C adds r1, r2 adds r1, r0 ldr r0, [r1] ldr r0, [r0, 0x70] ldrb r1, [r3, 0xC] lsls r1, 3 adds r1, r0, r1 ldr r2, _08063830 adds r2, r1 mov r12, r2 ldrb r2, [r2] movs r1, 0x2 orrs r1, r2 mov r2, r12 strb r1, [r2] movs r1, 0x8C lsls r1, 1 adds r0, r1 ldrb r1, [r3, 0xC] movs r2, 0x4 bl sub_8063834 pop {r0} bx r0 .align 2, 0 _08063828: .4byte gUnknown_203B418 _0806382C: .4byte 0x0001357c _08063830: .4byte 0x00000119 thumb_func_end sub_80637E8 thumb_func_start sub_8063834 sub_8063834: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x7C str r0, [sp, 0x74] str r1, [sp, 0x78] adds r4, r2, 0 mov r0, sp bl sub_80140B4 add r0, sp, 0x70 str r0, [sp, 0x14] movs r1, 0x1 mov r9, r1 ldr r3, [sp, 0x78] adds r3, 0x1 add r2, sp, 0x60 mov r10, r2 cmp r3, r4 bge _08063894 lsls r0, r3, 3 ldr r1, [sp, 0x74] adds r2, r0, r1 ldrb r1, [r2] mov r0, r9 ands r0, r1 cmp r0, 0 beq _08063894 movs r6, 0x2 movs r5, 0x1 _08063874: ldrb r1, [r2] adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _08063894 movs r0, 0x1 add r9, r0 adds r2, 0x8 adds r3, 0x1 cmp r3, r4 bge _08063894 ldrb r1, [r2] adds r0, r5, 0 ands r0, r1 cmp r0, 0 bne _08063874 _08063894: movs r4, 0 ldr r6, _0806393C _08063898: movs r7, 0 mov r1, r9 add r2, sp, 0x70 strb r1, [r2] adds r1, r2, 0 strb r4, [r1, 0x1] movs r0, 0xC strb r0, [r1, 0x2] strb r7, [r1, 0x3] strh r4, [r6, 0x1E] mov r0, r9 strh r0, [r6, 0x20] ldr r1, _08063940 movs r2, 0 ldrsh r0, [r1, r2] adds r0, 0x17 lsls r0, 3 strh r0, [r6, 0xC] movs r2, 0x2 ldrsh r0, [r1, r2] adds r0, 0x1 lsls r0, 3 subs r0, 0x2 strh r0, [r6, 0xE] strh r7, [r6, 0x14] strh r7, [r6, 0x4] movs r0, 0x10 strh r0, [r6, 0x6] str r7, [r6] adds r0, r6, 0 adds r0, 0x28 bl sub_801317C strh r7, [r6, 0x18] strh r7, [r6, 0x1A] strh r7, [r6, 0x1C] mov r0, sp movs r1, 0x1 bl sub_803ECB4 ldr r0, [sp, 0x78] adds r1, r0, r4 lsls r1, 3 ldr r2, [sp, 0x74] adds r1, r2, r1 adds r0, r4, 0 movs r2, 0 mov r3, r10 bl sub_8093DE8 mov r8, r0 _080638FE: mov r0, r8 cmp r0, 0 beq _08063908 bl sub_8062500 _08063908: ldr r5, _08063944 adds r0, r5, 0 movs r1, 0 bl nullsub_34 movs r0, 0x1C bl sub_803E46C bl sub_8062D88 ldr r1, _08063948 ldrh r1, [r1, 0x2] ands r0, r1 cmp r0, 0 bne _0806392C ldrb r0, [r5, 0x1] cmp r0, 0 beq _0806394C _0806392C: bl sub_8083D08 movs r7, 0x1 mov r1, r8 cmp r1, 0 beq _080639AE movs r7, 0x2 b _080639AE .align 2, 0 _0806393C: .4byte gUnknown_202EE10 _08063940: .4byte gUnknown_2027370 _08063944: .4byte gUnknown_202EE38 _08063948: .4byte gUnknown_20255F0 _0806394C: movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _0806395A ldrb r0, [r5, 0x2] cmp r0, 0 beq _08063962 _0806395A: bl sub_8083D30 movs r7, 0x1 b _080639AE _08063962: movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _08063970 ldrb r0, [r5, 0x4] cmp r0, 0 beq _08063986 _08063970: adds r0, r4, 0 cmp r4, 0 bne _08063978 mov r4, r9 _08063978: subs r4, 0x1 cmp r0, r4 beq _080639AE movs r0, 0 bl sub_8083CE0 b _080639AE _08063986: movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _08063994 ldrb r0, [r5, 0x3] cmp r0, 0 beq _080638FE _08063994: adds r1, r4, 0 mov r0, r9 subs r0, 0x1 cmp r4, r0 bne _080639A2 movs r4, 0 b _080639A4 _080639A2: adds r4, 0x1 _080639A4: cmp r1, r4 beq _080639AE movs r0, 0 bl sub_8083CE0 _080639AE: cmp r7, 0x1 beq _080639CA cmp r7, 0 bne _080639B8 b _08063898 _080639B8: mov r2, r8 cmp r2, 0 bne _080639C0 b _08063898 _080639C0: mov r0, r8 mov r1, r10 bl sub_80625A4 b _08063898 _080639CA: movs r0, 0 movs r1, 0 bl sub_803EAF0 add sp, 0x7C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8063834 thumb_func_start sub_80639E4 sub_80639E4: push {r4-r6,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 ldr r4, _08063A5C adds r0, r4, 0 bl sub_80140B4 ldr r0, _08063A60 str r0, [r4, 0x14] adds r0, r4, 0 movs r1, 0x1 bl sub_803ECB4 movs r0, 0 bl sub_80073B8 ldr r0, _08063A64 ldr r1, [r5] bl strcpy ldr r2, _08063A68 movs r4, 0 str r4, [sp] movs r0, 0x10 movs r1, 0 movs r3, 0 bl sub_8014FF0 ldr r2, [r5, 0x4] str r4, [sp] movs r0, 0x4 movs r1, 0x10 movs r3, 0 bl sub_8014FF0 movs r0, 0 bl sub_80073E0 ldr r0, _08063A6C strh r4, [r0, 0x1E] strh r4, [r0, 0x20] strh r4, [r0, 0xC] strh r4, [r0, 0xE] strh r4, [r0, 0x14] strh r4, [r0, 0x4] movs r1, 0x10 strh r1, [r0, 0x6] str r4, [r0] strh r4, [r0, 0x18] strh r4, [r0, 0x1A] strh r4, [r0, 0x1C] adds r0, r6, 0 bl sub_801317C add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08063A5C: .4byte gUnknown_202F278 _08063A60: .4byte gUnknown_8106CC8 _08063A64: .4byte gUnknown_202DF98 _08063A68: .4byte gUnknown_8106CCC _08063A6C: .4byte gUnknown_202EE10 thumb_func_end sub_80639E4 thumb_func_start sub_8063A70 sub_8063A70: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r1, 24 lsrs r1, 24 mov r10, r1 ldr r1, _08063B1C ldr r2, [r1] ldrb r1, [r0, 0x4] lsls r1, 2 ldr r3, _08063B20 adds r2, r3 adds r2, r1 ldr r6, [r2] ldr r5, [r6, 0x70] ldrb r0, [r0, 0xC] lsls r0, 3 movs r2, 0x8C lsls r2, 1 adds r0, r2 adds r4, r5, r0 ldrb r1, [r4] movs r0, 0x8 ands r0, r1 lsls r0, 24 lsrs r0, 24 negs r0, r0 lsrs r0, 31 mov r8, r0 ldr r0, _08063B24 mov r9, r0 movs r1, 0x1 mov r12, r1 adds r2, r5, r2 movs r7, 0xF7 movs r3, 0x3 _08063ABC: ldrb r1, [r2] mov r0, r12 ands r0, r1 cmp r0, 0 beq _08063ACC adds r0, r7, 0 ands r0, r1 strb r0, [r2] _08063ACC: adds r2, 0x8 subs r3, 0x1 cmp r3, 0 bge _08063ABC mov r0, r9 adds r1, r4, 0 movs r2, 0 bl sub_80928C0 mov r3, r8 cmp r3, 0 bne _08063AEC ldrb r1, [r4] movs r0, 0x8 orrs r0, r1 strb r0, [r4] _08063AEC: movs r1, 0x8C lsls r1, 1 adds r0, r5, r1 bl sub_80936D8 ldrb r1, [r4, 0x1] movs r0, 0x2 orrs r0, r1 strb r0, [r4, 0x1] ldr r0, _08063B28 bl sub_8083E38 mov r3, r10 cmp r3, 0 beq _08063B42 mov r0, r8 cmp r0, 0 bne _08063B30 ldr r0, _08063B2C ldr r1, [r0] adds r0, r6, 0 bl sub_80522A8 b _08063B3A .align 2, 0 _08063B1C: .4byte gUnknown_203B418 _08063B20: .4byte 0x0001357c _08063B24: .4byte gUnknown_202DE58 _08063B28: .4byte 0x00000133 _08063B2C: .4byte gUnknown_80F8B40 _08063B30: ldr r0, _08063B50 ldr r1, [r0] adds r0, r6, 0 bl sub_80522A8 _08063B3A: movs r0, 0x78 movs r1, 0x1F bl sub_803E708 _08063B42: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08063B50: .4byte gUnknown_80F8B64 thumb_func_end sub_8063A70 thumb_func_start sub_8063B54 sub_8063B54: push {r4-r6,lr} ldr r1, _08063BA4 ldr r2, [r1] ldrb r1, [r0, 0x4] lsls r1, 2 ldr r3, _08063BA8 adds r2, r3 adds r2, r1 ldr r1, [r2] ldr r5, [r1, 0x70] ldrb r4, [r0, 0xC] lsls r4, 3 movs r6, 0x8C lsls r6, 1 adds r4, r6 adds r4, r5, r4 ldr r0, _08063BAC adds r1, r4, 0 movs r2, 0 bl sub_80928C0 ldrb r0, [r4] movs r1, 0x4 eors r0, r1 strb r0, [r4] adds r5, r6 adds r0, r5, 0 bl sub_80936D8 ldrb r1, [r4, 0x1] movs r0, 0x2 orrs r0, r1 strb r0, [r4, 0x1] ldr r0, _08063BB0 bl sub_8083E38 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08063BA4: .4byte gUnknown_203B418 _08063BA8: .4byte 0x0001357c _08063BAC: .4byte gUnknown_202DE58 _08063BB0: .4byte 0x00000133 thumb_func_end sub_8063B54 thumb_func_start sub_8063BB4 sub_8063BB4: push {r4-r7,lr} ldr r1, _08063C70 ldr r2, [r1] ldrb r1, [r0, 0x4] lsls r1, 2 ldr r3, _08063C74 adds r2, r3 adds r2, r1 ldr r1, [r2] ldr r6, [r1, 0x70] ldrb r5, [r0, 0xC] ldr r0, _08063C78 lsls r4, r5, 3 movs r7, 0x8C lsls r7, 1 adds r1, r4, r7 adds r1, r6, r1 movs r2, 0 bl sub_80928C0 adds r4, r6, r4 ldr r0, _08063C7C adds r2, r4, r0 ldrb r1, [r2] movs r0, 0x2 orrs r0, r1 strb r0, [r2] movs r3, 0 adds r5, 0x1 cmp r5, 0x3 bgt _08063C2C lsls r2, r5, 3 adds r0, r2, r6 adds r1, r7, 0 adds r0, r1 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08063C2C adds r0, r2, r7 adds r2, r0, r6 movs r4, 0x2 _08063C0A: ldrb r1, [r2] adds r0, r4, 0 ands r0, r1 cmp r0, 0 beq _08063C2C adds r3, 0x1 cmp r3, 0x3 bgt _08063C2C adds r2, 0x8 adds r5, 0x1 cmp r5, 0x3 bgt _08063C2C ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08063C0A _08063C2C: lsls r0, r5, 3 adds r0, r6 movs r4, 0x8C lsls r4, 1 adds r0, r4 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08063C42 movs r5, 0x4 _08063C42: cmp r5, 0x3 bgt _08063C5C lsls r1, r5, 3 adds r1, r4 adds r1, r6, r1 ldrb r2, [r1] movs r0, 0x2 orrs r0, r2 strb r0, [r1] ldr r0, _08063C80 movs r2, 0 bl sub_80928C0 _08063C5C: adds r0, r6, r4 bl sub_80936D8 ldr r0, _08063C84 bl sub_8083E38 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08063C70: .4byte gUnknown_203B418 _08063C74: .4byte 0x0001357c _08063C78: .4byte gUnknown_202DE58 _08063C7C: .4byte 0x00000119 _08063C80: .4byte gUnknown_202DEA8 _08063C84: .4byte 0x00000133 thumb_func_end sub_8063BB4 thumb_func_start sub_8063C88 sub_8063C88: push {r4-r7,lr} adds r4, r0, 0 movs r7, 0 adds r5, r1, 0 lsls r0, r5, 3 adds r0, r4, r0 movs r1, 0x8D lsls r1, 1 adds r0, r1 ldrh r0, [r0] bl sub_809422C lsls r0, 24 cmp r0, 0 beq _08063CAE _08063CA6: movs r0, 0 b _08063CEA _08063CAA: movs r7, 0x1 b _08063CE8 _08063CAE: adds r5, 0x1 movs r6, 0 lsls r0, r5, 3 movs r1, 0x8C lsls r1, 1 adds r0, r1 adds r4, r0, r4 _08063CBC: ldrh r0, [r4, 0x2] bl sub_809422C lsls r0, 24 cmp r0, 0 bne _08063CA6 ldrb r1, [r4] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08063CE8 movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08063CAA adds r4, 0x8 adds r5, 0x1 cmp r5, 0x3 bgt _08063CE8 adds r6, 0x1 cmp r6, 0x3 ble _08063CBC _08063CE8: adds r0, r7, 0 _08063CEA: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8063C88 thumb_func_start sub_8063CF0 sub_8063CF0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r1, 24 lsrs r1, 24 mov r10, r1 ldr r1, _08063D98 ldr r2, [r1] ldrb r1, [r0, 0x4] lsls r1, 2 ldr r3, _08063D9C adds r2, r3 adds r2, r1 ldr r7, [r2] ldr r6, [r7, 0x70] ldrb r5, [r0, 0xC] movs r0, 0 mov r8, r0 ldr r0, _08063DA0 lsls r4, r5, 3 movs r1, 0x8C lsls r1, 1 mov r9, r1 adds r1, r4, r1 adds r1, r6, r1 movs r2, 0 bl sub_80928C0 adds r4, r6, r4 ldr r3, _08063DA4 adds r2, r4, r3 ldrb r1, [r2] movs r0, 0x2 orrs r0, r1 strb r0, [r2] adds r5, 0x1 movs r3, 0 cmp r5, 0x3 bgt _08063D70 movs r0, 0x2 mov r12, r0 lsls r0, r5, 3 add r0, r9 adds r2, r0, r6 movs r4, 0xFD _08063D4E: ldrb r1, [r2] mov r0, r12 ands r0, r1 cmp r0, 0 beq _08063D70 adds r0, r4, 0 ands r0, r1 strb r0, [r2] movs r1, 0x1 mov r8, r1 adds r2, 0x8 adds r5, 0x1 adds r3, 0x1 cmp r3, 0x3 bgt _08063D70 cmp r5, 0x3 ble _08063D4E _08063D70: movs r2, 0x8C lsls r2, 1 adds r0, r6, r2 bl sub_80936D8 ldr r0, _08063DA8 bl sub_8083E38 mov r3, r10 cmp r3, 0 beq _08063DC2 mov r0, r8 cmp r0, 0 beq _08063DB0 ldr r0, _08063DAC ldr r1, [r0] adds r0, r7, 0 bl sub_80522A8 b _08063DBA .align 2, 0 _08063D98: .4byte gUnknown_203B418 _08063D9C: .4byte 0x0001357c _08063DA0: .4byte gUnknown_202DE58 _08063DA4: .4byte 0x00000119 _08063DA8: .4byte 0x00000133 _08063DAC: .4byte gUnknown_80F8B88 _08063DB0: ldr r0, _08063DD0 ldr r1, [r0] adds r0, r7, 0 bl sub_80522A8 _08063DBA: movs r0, 0x78 movs r1, 0x1F bl sub_803E708 _08063DC2: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08063DD0: .4byte gUnknown_80F8BB4 thumb_func_end sub_8063CF0 thumb_func_start sub_8063DD4 sub_8063DD4: push {r4-r7,lr} adds r3, r0, 0 adds r2, r1, 0 movs r5, 0 adds r2, 0x1 movs r4, 0 cmp r2, 0x3 bgt _08063E20 lsls r0, r2, 3 movs r6, 0x8C lsls r6, 1 adds r0, r6 adds r0, r3, r0 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08063E20 movs r5, 0x1 adds r2, 0x1 movs r7, 0x2 lsls r0, r2, 3 adds r0, r6 adds r3, r0, r3 _08063E04: adds r4, 0x1 cmp r4, 0x3 bgt _08063E20 cmp r2, 0x3 bgt _08063E20 ldrb r1, [r3] adds r0, r7, 0 ands r0, r1 cmp r0, 0 beq _08063E20 movs r5, 0x1 adds r3, 0x8 adds r2, 0x1 b _08063E04 _08063E20: cmp r5, 0 bne _08063E28 movs r0, 0 b _08063E2A _08063E28: movs r0, 0x1 _08063E2A: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8063DD4 thumb_func_start sub_8063E30 sub_8063E30: push {r4-r7,lr} adds r5, r0, 0 adds r1, 0x1 movs r4, 0 cmp r1, 0x7 bgt _08063E62 movs r7, 0x2 movs r6, 0xFD lsls r0, r1, 3 adds r3, r0, r5 _08063E44: ldrb r2, [r3] adds r0, r7, 0 ands r0, r2 cmp r0, 0 beq _08063E62 adds r0, r6, 0 ands r0, r2 strb r0, [r3] adds r3, 0x8 adds r1, 0x1 adds r4, 0x1 cmp r4, 0x7 bgt _08063E62 cmp r1, 0x7 ble _08063E44 _08063E62: adds r0, r5, 0 bl sub_80936F4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8063E30 thumb_func_start sub_8063E70 sub_8063E70: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xD0 str r0, [sp, 0xC4] adds r7, r1, 0 lsls r2, 24 lsrs r2, 24 str r2, [sp, 0xC8] lsls r3, 24 lsrs r3, 24 str r3, [sp, 0xCC] add r4, sp, 0x60 adds r0, r4, 0 movs r1, 0 movs r2, 0x60 bl memset movs r0, 0x6 str r0, [sp, 0x64] add r0, sp, 0x68 movs r6, 0 movs r1, 0x2 strh r1, [r0] strh r1, [r0, 0x2] add r1, sp, 0x6C movs r0, 0x12 strh r0, [r1] mov r0, sp adds r0, 0x6E movs r1, 0x10 strh r1, [r0] add r0, sp, 0x70 strh r1, [r0] add r5, sp, 0xC0 str r5, [sp, 0x74] movs r1, 0x3 str r1, [sp, 0x7C] add r0, sp, 0x90 str r1, [r0, 0x4] add r0, sp, 0xA8 str r1, [r0, 0x4] mov r0, sp adds r1, r4, 0 movs r2, 0x60 bl memcpy ldr r0, _08063F80 str r6, [r0] ldr r1, _08063F84 mov r8, r1 mov r9, r0 ldr r2, _08063F88 mov r10, r2 _08063EE0: ldr r0, [sp, 0xC4] adds r1, r7, 0 mov r2, sp add r3, sp, 0xC0 bl sub_8064228 _08063EEC: mov r0, r8 bl AddMenuCursorSprite movs r0, 0x1E bl sub_803E46C mov r0, r10 ldrh r1, [r0, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08063F2A mov r1, r8 movs r2, 0x18 ldrsh r4, [r1, r2] adds r0, r7, 0 adds r1, r4, 0 bl sub_8092E1C adds r1, r0, 0 mov r0, r8 bl sub_8013780 mov r1, r8 movs r2, 0x18 ldrsh r0, [r1, r2] cmp r4, r0 beq _08063F2A movs r0, 0 bl sub_8083CE0 _08063F2A: mov r0, r10 ldrh r1, [r0, 0x4] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08063F5C mov r1, r8 movs r2, 0x18 ldrsh r4, [r1, r2] adds r0, r7, 0 adds r1, r4, 0 bl sub_8092E8C adds r1, r0, 0 mov r0, r8 bl sub_8013780 mov r1, r8 movs r2, 0x18 ldrsh r0, [r1, r2] cmp r4, r0 beq _08063F5C movs r0, 0 bl sub_8083CE0 _08063F5C: bl sub_8062D88 mov r2, r10 ldrh r1, [r2, 0x2] ands r0, r1 cmp r0, 0 bne _08063F76 ldr r2, _08063F84 adds r0, r2, 0 adds r0, 0x29 ldrb r0, [r0] cmp r0, 0 beq _08063F8C _08063F76: bl sub_8083D08 movs r4, 0 b _08063FB2 .align 2, 0 _08063F80: .4byte gUnknown_202F2D8 _08063F84: .4byte gUnknown_202EE10 _08063F88: .4byte gUnknown_20255F0 _08063F8C: movs r0, 0x8 ands r0, r1 cmp r0, 0 bne _08063FD4 ldr r0, [sp, 0xCC] cmp r0, 0 beq _08063EEC movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08063FAC adds r0, r2, 0 adds r0, 0x2A ldrb r0, [r0] cmp r0, 0 beq _08063EEC _08063FAC: bl sub_8083D30 movs r4, 0x1 _08063FB2: ldr r5, _08063FD0 adds r0, r5, 0 bl AddMenuCursorSprite movs r0, 0x1E bl sub_803E46C cmp r4, 0x1 bne _08063FDC movs r0, 0x1 negs r0, r0 mov r1, r9 str r0, [r1] b _080640FA .align 2, 0 _08063FD0: .4byte gUnknown_202EE10 _08063FD4: bl sub_8083D44 movs r4, 0x2 b _08063FB2 _08063FDC: ldr r6, _08064004 movs r2, 0x18 ldrsh r0, [r5, r2] str r0, [r6] cmp r4, 0x2 bne _08064008 movs r0, 0 movs r1, 0 bl sub_803EAF0 movs r0, 0x8 movs r1, 0x1B bl sub_803E708 ldr r1, [r6] adds r0, r7, 0 movs r2, 0x4 bl sub_8063834 b _08063EE0 .align 2, 0 _08064004: .4byte gUnknown_202F2D8 _08064008: adds r0, r7, 0 bl sub_8064310 mov r0, sp movs r1, 0x16 bl sub_805FC30 adds r4, r5, 0 ldr r6, _0806408C adds r5, 0x2A _0806401C: adds r0, r4, 0 bl AddMenuCursorSprite movs r0, 0x1B bl sub_803E46C ldrh r1, [r6, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08064040 movs r0, 0x1 bl sub_8083CE0 adds r0, r4, 0 movs r1, 0x1 bl sub_80136E0 _08064040: ldrh r1, [r6, 0x4] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08064058 movs r0, 0x1 bl sub_8083CE0 adds r0, r4, 0 movs r1, 0x1 bl sub_8013744 _08064058: bl sub_8062D88 ldrh r1, [r6, 0x2] ands r1, r0 cmp r1, 0 bne _0806406E adds r0, r4, 0 adds r0, 0x29 ldrb r0, [r0] cmp r0, 0 beq _0806409C _0806406E: movs r1, 0x18 ldrsh r0, [r4, r1] bl sub_8044F3C lsls r0, 24 cmp r0, 0 beq _08064098 movs r2, 0x18 ldrsh r0, [r4, r2] cmp r0, 0x2 bne _08064090 bl sub_8083D08 b _08064094 .align 2, 0 _0806408C: .4byte gUnknown_20255F0 _08064090: bl sub_8083D1C _08064094: movs r4, 0 b _080640B2 _08064098: bl sub_8083D30 _0806409C: ldrh r1, [r6, 0x2] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _080640AC ldrb r0, [r5] cmp r0, 0 beq _0806401C _080640AC: bl sub_8083D30 movs r4, 0x1 _080640B2: ldr r6, _080640E4 adds r0, r6, 0 bl AddMenuCursorSprite movs r0, 0x1B bl sub_803E46C movs r0, 0 movs r1, 0 bl sub_803EAF0 cmp r4, 0x1 bne _080640CE b _08063EE0 _080640CE: movs r1, 0x18 ldrsh r0, [r6, r1] cmp r0, 0x1 bne _080640E8 mov r2, r9 ldr r1, [r2] adds r0, r7, 0 bl sub_8063E30 b _08063EE0 .align 2, 0 _080640E4: .4byte gUnknown_202EE10 _080640E8: cmp r0, 0x2 bne _080640FA mov r0, r9 ldr r1, [r0] adds r0, r7, 0 movs r2, 0x8 bl sub_8063834 b _08063EE0 _080640FA: ldr r1, _08064140 ldr r2, [r1] cmp r2, 0 bge _08064104 b _08064214 _08064104: ldr r0, [sp, 0xC8] cmp r0, 0 beq _08064160 movs r4, 0 lsls r0, r2, 3 adds r1, r7, r0 adds r0, r2, 0x1 cmp r0, 0x7 bgt _08064130 lsls r0, 3 adds r0, r7 ldrb r2, [r0] movs r0, 0x1 ands r0, r2 cmp r0, 0 beq _08064130 movs r0, 0x2 ands r0, r2 lsls r0, 24 lsrs r0, 24 negs r0, r0 lsrs r4, r0, 31 _08064130: ldr r0, _08064144 movs r2, 0 bl sub_80928C0 cmp r4, 0 beq _0806414C ldr r0, _08064148 b _0806414E .align 2, 0 _08064140: .4byte gUnknown_202F2D8 _08064144: .4byte gUnknown_202DE58 _08064148: .4byte gUnknown_80FDF00 _0806414C: ldr r0, _0806415C _0806414E: ldr r1, [r0] movs r0, 0 movs r2, 0 bl sub_8052B8C adds r3, r0, 0 b _08064162 .align 2, 0 _0806415C: .4byte gUnknown_80FDF70 _08064160: movs r3, 0x1 _08064162: cmp r3, 0x1 beq _08064168 b _08063EE0 _08064168: mov r1, r9 ldr r0, [r1] lsls r0, 3 adds r0, r7 movs r1, 0 strb r1, [r0] mov r2, r9 ldr r0, [r2] adds r2, r0, 0x1 cmp r2, 0x7 bgt _080641BC lsls r0, r2, 3 adds r4, r7, r0 ldrb r1, [r4] ands r3, r1 cmp r3, 0 beq _080641BC movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080641BC movs r0, 0 mov r12, r0 movs r6, 0x1 adds r3, r4, 0 movs r5, 0x2 _0806419C: mov r1, r12 strb r1, [r4] adds r3, 0x8 adds r2, 0x1 cmp r2, 0x7 bgt _080641BC adds r4, r3, 0 ldrb r1, [r3] adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _080641BC adds r0, r5, 0 ands r0, r1 cmp r0, 0 bne _0806419C _080641BC: movs r4, 0 movs r6, 0x1 adds r3, r7, 0 add r5, sp, 0x60 movs r2, 0x7 _080641C6: ldrb r1, [r3] adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _080641D8 ldr r0, [r3] ldr r1, [r3, 0x4] stm r5!, {r0,r1} adds r4, 0x1 _080641D8: adds r3, 0x8 subs r2, 0x1 cmp r2, 0 bge _080641C6 cmp r4, 0x7 bgt _080641F4 movs r1, 0 _080641E6: lsls r0, r4, 3 add r0, sp adds r0, 0x60 strb r1, [r0] adds r4, 0x1 cmp r4, 0x7 ble _080641E6 _080641F4: add r4, sp, 0x60 adds r3, r7, 0 movs r2, 0x7 _080641FA: ldm r4!, {r0,r1} stm r3!, {r0,r1} subs r2, 0x1 cmp r2, 0 bge _080641FA ldr r2, _08064210 ldr r0, [r2] cmp r0, 0 blt _08064214 movs r0, 0x1 b _08064216 .align 2, 0 _08064210: .4byte gUnknown_202F2D8 _08064214: movs r0, 0 _08064216: add sp, 0xD0 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8063E70 thumb_func_start sub_8064228 sub_8064228: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 mov r9, r0 mov r10, r1 adds r5, r2, 0 adds r7, r3, 0 movs r1, 0 movs r0, 0x1 strb r0, [r7] strb r1, [r7, 0x1] strb r1, [r7, 0x3] mov r8, r1 ldr r6, _08064304 ldr r0, _08064308 mov r12, r0 movs r4, 0x1 mov r2, r10 movs r3, 0x7 _08064254: ldrb r1, [r2] adds r0, r4, 0 ands r0, r1 cmp r0, 0 beq _08064262 movs r1, 0x1 add r8, r1 _08064262: adds r2, 0x8 subs r3, 0x1 cmp r3, 0 bge _08064254 mov r2, r12 ldr r0, [r2] movs r4, 0 strh r0, [r6, 0x18] mov r3, r8 strh r3, [r6, 0x1A] strh r3, [r6, 0x1C] strh r4, [r6, 0x1E] strh r4, [r6, 0x20] strh r4, [r6, 0x4] movs r0, 0x10 strh r0, [r6, 0x6] strh r4, [r6, 0xC] strh r4, [r6, 0xE] strh r4, [r6, 0x14] str r4, [r6] adds r0, r6, 0 adds r0, 0x28 bl sub_801317C mov r0, r8 movs r1, 0xC bl sub_80095E4 adds r0, 0x2 strh r0, [r5, 0x10] strh r0, [r5, 0xE] movs r0, 0xE strb r0, [r7, 0x2] movs r0, 0x2 strh r0, [r5, 0x8] adds r1, r5, 0 adds r1, 0x18 adds r0, r5, 0 adds r0, 0x48 ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} adds r1, r5, 0 adds r1, 0x30 adds r0, r5, 0 adds r0, 0x48 ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} adds r0, r5, 0 movs r1, 0x1 bl sub_803ECB4 adds r0, r6, 0 movs r1, 0 bl sub_80137B0 ldr r0, _0806430C mov r7, r9 ldr r1, [r7, 0x70] movs r2, 0 bl sub_80708B4 str r4, [sp] str r4, [sp, 0x4] mov r0, r8 mov r1, r9 mov r2, r10 movs r3, 0 bl sub_8063578 add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08064304: .4byte gUnknown_202EE10 _08064308: .4byte gUnknown_202F2D8 _0806430C: .4byte gUnknown_202DF98 thumb_func_end sub_8064228 thumb_func_start sub_8064310 sub_8064310: push {r4,lr} adds r4, r0, 0 ldr r1, _08064350 movs r0, 0 str r0, [r1] movs r0, 0x22 movs r1, 0 bl sub_8044F5C movs r0, 0x21 movs r1, 0 bl sub_8044F5C ldr r0, _08064354 ldr r1, [r0] adds r0, r4, 0 bl sub_8064358 lsls r0, 24 cmp r0, 0 bne _08064340 movs r0, 0x21 bl sub_8044FF0 _08064340: movs r0, 0x1D movs r1, 0 bl sub_8044F5C pop {r4} pop {r0} bx r0 .align 2, 0 _08064350: .4byte gUnknown_202EE6C _08064354: .4byte gUnknown_202F2D8 thumb_func_end sub_8064310 thumb_func_start sub_8064358 sub_8064358: push {r4-r6,lr} adds r3, r0, 0 adds r2, r1, 0 movs r5, 0 adds r2, 0x1 movs r4, 0 cmp r2, 0x7 bgt _0806439C lsls r0, r2, 3 adds r0, r3, r0 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0806439C movs r5, 0x1 adds r2, 0x1 movs r6, 0x2 lsls r0, r2, 3 adds r3, r0, r3 _08064380: adds r4, 0x1 cmp r4, 0x7 bgt _0806439C cmp r2, 0x7 bgt _0806439C ldrb r1, [r3] adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _0806439C movs r5, 0x1 adds r3, 0x8 adds r2, 0x1 b _08064380 _0806439C: cmp r5, 0 bne _080643A4 movs r0, 0 b _080643A6 _080643A4: movs r0, 0x1 _080643A6: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8064358 thumb_func_start sub_80643AC sub_80643AC: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xE4 adds r7, r0, 0 add r0, sp, 0x68 mov r9, r0 mov r1, sp adds r1, 0x6C str r1, [sp, 0xD0] mov r2, sp adds r2, 0x6E str r2, [sp, 0xD4] mov r0, sp adds r0, 0x70 str r0, [sp, 0xD8] adds r1, 0xC str r1, [sp, 0xDC] adds r2, 0x22 str r2, [sp, 0xE0] adds r0, 0x38 str r0, [sp, 0xC8] subs r1, 0x18 str r1, [sp, 0xC4] add r2, sp, 0xC0 mov r10, r2 ldr r5, _080644C8 adds r0, r7, 0x4 str r0, [sp, 0xCC] ldr r1, _080644CC mov r8, r1 movs r6, 0 _080643F0: movs r4, 0 ldr r0, [sp, 0xC4] movs r1, 0 movs r2, 0x60 bl memset movs r0, 0x6 str r0, [sp, 0x64] movs r0, 0x2 mov r2, r9 strh r0, [r2] strh r0, [r2, 0x2] movs r0, 0x12 ldr r1, [sp, 0xD0] strh r0, [r1] movs r0, 0x4 ldr r2, [sp, 0xD4] strh r0, [r2] movs r0, 0x10 ldr r1, [sp, 0xD8] strh r0, [r1] mov r2, r10 str r2, [sp, 0x74] movs r0, 0x3 ldr r1, [sp, 0xDC] str r0, [r1, 0x4] ldr r2, [sp, 0xE0] str r0, [r2, 0x4] ldr r1, [sp, 0xC8] str r0, [r1, 0x4] mov r0, sp ldr r1, [sp, 0xC4] movs r2, 0x60 bl memcpy bl sub_8083D44 adds r0, r7, 0x4 mov r1, sp mov r2, r10 bl sub_806455C movs r0, 0x2D bl sub_803E46C adds r0, r7, 0 bl sub_80645D4 strh r4, [r5, 0x8] strh r4, [r5, 0xA] mov r0, sp movs r1, 0x16 bl sub_805FC30 _0806445C: adds r0, r5, 0 bl AddMenuCursorSprite movs r0, 0x2D bl sub_803E46C mov r2, r8 ldrh r1, [r2, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08064482 movs r0, 0x1 bl sub_8083CE0 adds r0, r5, 0 movs r1, 0x1 bl sub_80136E0 _08064482: mov r0, r8 ldrh r1, [r0, 0x4] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0806449C movs r0, 0x1 bl sub_8083CE0 adds r0, r5, 0 movs r1, 0x1 bl sub_8013744 _0806449C: mov r2, r8 ldrh r1, [r2, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080644B2 adds r0, r5, 0 adds r0, 0x29 ldrb r0, [r0] cmp r0, 0 beq _08064510 _080644B2: movs r1, 0x18 ldrsh r0, [r5, r1] cmp r0, 0x1 bne _080644D0 bl sub_8083D08 ldr r0, [sp, 0xCC] bl sub_80645F8 movs r4, 0x2 b _0806452A .align 2, 0 _080644C8: .4byte gUnknown_202EE10 _080644CC: .4byte gUnknown_20255F0 _080644D0: movs r2, 0x18 ldrsh r0, [r5, r2] bl sub_8044F3C lsls r0, 24 cmp r0, 0 beq _0806450C ldr r4, [r7, 0x70] adds r4, 0x44 ldr r1, _08064508 movs r2, 0x18 ldrsh r0, [r5, r2] lsls r0, 2 adds r0, r1 ldrh r1, [r0] adds r0, r4, 0 bl sub_8044C94 bl sub_8083D08 strb r6, [r4, 0x4] strh r6, [r4, 0x8] strh r6, [r4, 0xA] strb r6, [r4, 0xC] strh r6, [r4, 0x10] strh r6, [r4, 0x12] movs r4, 0 b _0806452A .align 2, 0 _08064508: .4byte gUnknown_202EE44 _0806450C: bl sub_8083D30 _08064510: mov r0, r8 ldrh r1, [r0, 0x2] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08064524 ldr r1, _08064554 ldrb r0, [r1] cmp r0, 0 beq _0806445C _08064524: bl sub_8083D30 movs r4, 0x1 _0806452A: ldr r0, _08064558 bl AddMenuCursorSprite movs r0, 0x2D bl sub_803E46C cmp r4, 0x2 bne _0806453C b _080643F0 _0806453C: movs r0, 0 movs r1, 0 bl sub_803EAF0 add sp, 0xE4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08064554: .4byte gUnknown_202EE3A _08064558: .4byte gUnknown_202EE10 thumb_func_end sub_80643AC thumb_func_start sub_806455C sub_806455C: push {r4,r5,lr} sub sp, 0x54 adds r4, r0, 0 adds r0, r1, 0 movs r5, 0 movs r1, 0x1 strb r1, [r2] strb r5, [r2, 0x1] movs r1, 0xC strb r1, [r2, 0x2] strb r5, [r2, 0x3] movs r1, 0x1 bl sub_803ECB4 movs r0, 0 bl sub_80073B8 movs r1, 0 ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] bl sub_804954C adds r4, r0, 0 ldr r0, _080645D0 ldr r2, [r0] str r5, [sp] movs r0, 0xC movs r1, 0 movs r3, 0 bl xxx_call_draw_string ldr r0, [r4, 0x14] bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080645C0 ldr r1, [r4, 0x14] add r0, sp, 0x4 movs r2, 0 bl sub_8045B94 str r5, [sp] movs r0, 0x8 movs r1, 0x12 add r2, sp, 0x4 movs r3, 0 bl xxx_call_draw_string _080645C0: movs r0, 0 bl sub_80073E0 add sp, 0x54 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080645D0: .4byte gUnknown_80FE708 thumb_func_end sub_806455C thumb_func_start sub_80645D4 sub_80645D4: push {lr} ldr r1, _080645F4 movs r0, 0 str r0, [r1] movs r0, 0x25 movs r1, 0 bl sub_8044F5C movs r0, 0xC movs r1, 0 bl sub_8044F5C bl sub_8045064 pop {r0} bx r0 .align 2, 0 _080645F4: .4byte gUnknown_202EE6C thumb_func_end sub_80645D4 thumb_func_start sub_80645F8 sub_80645F8: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x110 str r0, [sp, 0xE4] mov r0, sp adds r0, 0x84 str r0, [sp, 0xF4] mov r1, sp adds r1, 0x88 str r1, [sp, 0xF8] mov r2, sp adds r2, 0x8C str r2, [sp, 0xFC] mov r3, sp adds r3, 0x8E str r3, [sp, 0x100] adds r0, 0xC str r0, [sp, 0x104] adds r1, 0xC str r1, [sp, 0x108] adds r2, 0xC str r2, [sp, 0x10C] adds r3, 0x22 str r3, [sp, 0xEC] adds r0, 0x38 str r0, [sp, 0xF0] add r6, sp, 0x14 subs r1, 0x74 str r1, [sp, 0xE8] add r2, sp, 0x80 mov r10, r2 add r3, sp, 0xE0 mov r9, r3 _08064640: movs r7, 0 mov r0, r10 movs r1, 0 movs r2, 0x60 bl memset movs r0, 0x6 ldr r1, [sp, 0xF4] str r0, [r1] movs r0, 0x2 ldr r2, [sp, 0xF8] strh r0, [r2] strh r0, [r2, 0x2] movs r0, 0x1A ldr r3, [sp, 0xFC] strh r0, [r3] movs r0, 0xC ldr r1, [sp, 0x100] strh r0, [r1] ldr r2, [sp, 0x104] strh r0, [r2] mov r3, r9 ldr r0, [sp, 0x108] str r3, [r0] movs r0, 0x3 ldr r1, [sp, 0x10C] str r0, [r1, 0x4] ldr r2, [sp, 0xEC] str r0, [r2, 0x4] ldr r3, [sp, 0xF0] str r0, [r3, 0x4] ldr r0, [sp, 0xE8] mov r1, r10 movs r2, 0x60 bl memcpy adds r0, r6, 0 bl sub_801317C movs r1, 0x1 add r0, sp, 0xE0 strb r1, [r0] movs r1, 0 mov r0, r9 strb r1, [r0, 0x1] movs r0, 0x10 mov r2, r9 strb r0, [r2, 0x2] strb r1, [r2, 0x3] ldr r3, [sp, 0xE4] movs r1, 0 ldrsh r0, [r3, r1] movs r2, 0x2 ldrsh r1, [r3, r2] bl sub_804954C ldr r4, [r0, 0x14] cmp r4, 0 bne _080646B8 b _080647D8 _080646B8: adds r0, r4, 0 bl sub_80450F8 cmp r0, 0x2 beq _080646C4 b _080647D8 _080646C4: ldr r0, [sp, 0xE8] movs r1, 0 bl sub_803ECB4 adds r0, r4, 0 bl sub_8045104 adds r4, r0, 0 ldrb r1, [r4] mov r0, r10 bl sub_807FE84 movs r0, 0 bl sub_80073B8 str r7, [sp] movs r0, 0x10 movs r1, 0 mov r2, r10 movs r3, 0 bl xxx_call_draw_string ldr r5, _08064720 ldrb r0, [r4] lsls r0, 2 adds r0, r5 ldr r2, [r0] str r7, [sp] movs r0, 0x8 movs r1, 0x18 movs r3, 0 bl xxx_call_draw_string movs r0, 0 bl sub_80073E0 ldrb r0, [r4] lsls r0, 2 adds r0, r5 ldr r0, [r0] add r1, sp, 0x4 bl sub_8097DF0 adds r5, r0, 0 b _08064738 .align 2, 0 _08064720: .4byte gUnknown_80F8130 _08064724: movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08064732 ldrb r0, [r6, 0x2] cmp r0, 0 beq _08064738 _08064732: bl sub_8083D30 b _080647D8 _08064738: cmp r5, 0 beq _08064740 bl sub_8062500 _08064740: adds r0, r6, 0 movs r1, 0 bl nullsub_34 movs r0, 0x16 bl sub_803E46C ldr r0, _08064788 ldrh r1, [r0, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08064760 ldrb r0, [r6, 0x1] cmp r0, 0 beq _08064724 _08064760: bl sub_8083D08 cmp r5, 0 beq _080647D8 movs r4, 0 cmp r4, r5 blt _08064770 b _08064640 _08064770: subs r3, r5, 0x1 mov r8, r3 _08064774: lsls r0, r4, 2 add r0, sp adds r0, 0x4 ldr r0, [r0] adds r1, r6, 0 bl sub_80639E4 adds r7, r4, 0x1 b _080647A0 .align 2, 0 _08064788: .4byte gUnknown_20255F0 _0806478C: movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _0806479A ldrb r0, [r6, 0x2] cmp r0, 0 beq _080647A0 _0806479A: bl sub_8083D30 b _080647CC _080647A0: cmp r4, r8 bge _080647A8 bl sub_8062500 _080647A8: adds r0, r6, 0 movs r1, 0 bl nullsub_34 movs r0, 0x16 bl sub_803E46C ldr r0, _080647D4 ldrh r1, [r0, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080647C8 ldrb r0, [r6, 0x1] cmp r0, 0 beq _0806478C _080647C8: bl sub_8083D08 _080647CC: adds r4, r7, 0 cmp r4, r5 blt _08064774 b _08064640 .align 2, 0 _080647D4: .4byte gUnknown_20255F0 _080647D8: movs r0, 0 movs r1, 0 bl sub_803EAF0 add sp, 0x110 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80645F8 thumb_func_start sub_80647F0 sub_80647F0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xE4 adds r7, r0, 0 add r0, sp, 0x68 mov r9, r0 mov r1, sp adds r1, 0x6C str r1, [sp, 0xD0] mov r2, sp adds r2, 0x6E str r2, [sp, 0xD4] mov r0, sp adds r0, 0x70 str r0, [sp, 0xD8] adds r1, 0xC str r1, [sp, 0xDC] adds r2, 0x22 str r2, [sp, 0xE0] adds r0, 0x38 str r0, [sp, 0xC8] subs r1, 0x18 str r1, [sp, 0xC4] add r2, sp, 0xC0 mov r10, r2 ldr r5, _0806490C adds r0, r7, 0x4 str r0, [sp, 0xCC] ldr r1, _08064910 mov r8, r1 movs r6, 0 _08064834: movs r4, 0 ldr r0, [sp, 0xC4] movs r1, 0 movs r2, 0x60 bl memset movs r0, 0x6 str r0, [sp, 0x64] movs r0, 0x2 mov r2, r9 strh r0, [r2] strh r0, [r2, 0x2] movs r0, 0x12 ldr r1, [sp, 0xD0] strh r0, [r1] movs r0, 0x4 ldr r2, [sp, 0xD4] strh r0, [r2] movs r0, 0x10 ldr r1, [sp, 0xD8] strh r0, [r1] mov r2, r10 str r2, [sp, 0x74] movs r0, 0x3 ldr r1, [sp, 0xDC] str r0, [r1, 0x4] ldr r2, [sp, 0xE0] str r0, [r2, 0x4] ldr r1, [sp, 0xC8] str r0, [r1, 0x4] mov r0, sp ldr r1, [sp, 0xC4] movs r2, 0x60 bl memcpy bl sub_8083D44 adds r0, r7, 0x4 mov r1, sp mov r2, r10 bl sub_80649A0 movs r0, 0x2E bl sub_803E46C adds r0, r7, 0 bl sub_8064A18 strh r4, [r5, 0x8] strh r4, [r5, 0xA] mov r0, sp movs r1, 0x16 bl sub_805FC30 _080648A0: adds r0, r5, 0 bl AddMenuCursorSprite movs r0, 0x2E bl sub_803E46C mov r2, r8 ldrh r1, [r2, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080648C6 movs r0, 0x1 bl sub_8083CE0 adds r0, r5, 0 movs r1, 0x1 bl sub_80136E0 _080648C6: mov r0, r8 ldrh r1, [r0, 0x4] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _080648E0 movs r0, 0x1 bl sub_8083CE0 adds r0, r5, 0 movs r1, 0x1 bl sub_8013744 _080648E0: mov r2, r8 ldrh r1, [r2, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080648F6 adds r0, r5, 0 adds r0, 0x29 ldrb r0, [r0] cmp r0, 0 beq _08064954 _080648F6: movs r1, 0x18 ldrsh r0, [r5, r1] cmp r0, 0x1 bne _08064914 bl sub_8083D08 ldr r0, [sp, 0xCC] bl sub_8064A3C movs r4, 0x2 b _0806496E .align 2, 0 _0806490C: .4byte gUnknown_202EE10 _08064910: .4byte gUnknown_20255F0 _08064914: movs r2, 0x18 ldrsh r0, [r5, r2] bl sub_8044F3C lsls r0, 24 cmp r0, 0 beq _08064950 ldr r4, [r7, 0x70] adds r4, 0x44 ldr r1, _0806494C movs r2, 0x18 ldrsh r0, [r5, r2] lsls r0, 2 adds r0, r1 ldrh r1, [r0] adds r0, r4, 0 bl sub_8044C94 bl sub_8083D08 strb r6, [r4, 0x4] strh r6, [r4, 0x8] strh r6, [r4, 0xA] strb r6, [r4, 0xC] strh r6, [r4, 0x10] strh r6, [r4, 0x12] movs r4, 0 b _0806496E .align 2, 0 _0806494C: .4byte gUnknown_202EE44 _08064950: bl sub_8083D30 _08064954: mov r0, r8 ldrh r1, [r0, 0x2] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08064968 ldr r1, _08064998 ldrb r0, [r1] cmp r0, 0 beq _080648A0 _08064968: bl sub_8083D30 movs r4, 0x1 _0806496E: ldr r0, _0806499C bl AddMenuCursorSprite movs r0, 0x2E bl sub_803E46C cmp r4, 0x2 bne _08064980 b _08064834 _08064980: movs r0, 0 movs r1, 0 bl sub_803EAF0 add sp, 0xE4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08064998: .4byte gUnknown_202EE3A _0806499C: .4byte gUnknown_202EE10 thumb_func_end sub_80647F0 thumb_func_start sub_80649A0 sub_80649A0: push {r4,r5,lr} sub sp, 0x4 adds r0, r1, 0 movs r3, 0 movs r1, 0x1 strb r1, [r2] strb r3, [r2, 0x1] movs r1, 0xB strb r1, [r2, 0x2] strb r3, [r2, 0x3] movs r1, 0x1 bl sub_803ECB4 movs r0, 0 bl sub_80073B8 bl sub_8043D10 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080649E4 cmp r0, 0x1 ble _080649D4 cmp r0, 0x2 beq _080649DC _080649D4: ldr r0, _080649D8 b _080649E6 .align 2, 0 _080649D8: .4byte gUnknown_80FE70C _080649DC: ldr r0, _080649E0 b _080649E6 .align 2, 0 _080649E0: .4byte gUnknown_80FE720 _080649E4: ldr r0, _08064A14 _080649E6: ldr r5, [r0] movs r4, 0 str r4, [sp] movs r0, 0xC movs r1, 0 adds r2, r5, 0 movs r3, 0 bl xxx_call_draw_string str r4, [sp] movs r0, 0x8 movs r1, 0x12 adds r2, r5, 0 movs r3, 0 bl xxx_call_draw_string movs r0, 0 bl sub_80073E0 add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08064A14: .4byte gUnknown_80FE724 thumb_func_end sub_80649A0 thumb_func_start sub_8064A18 sub_8064A18: push {lr} ldr r1, _08064A38 movs r0, 0 str r0, [r1] movs r0, 0x26 movs r1, 0 bl sub_8044F5C movs r0, 0xC movs r1, 0 bl sub_8044F5C bl sub_8045064 pop {r0} bx r0 .align 2, 0 _08064A38: .4byte gUnknown_202EE6C thumb_func_end sub_8064A18 thumb_func_start sub_8064A3C sub_8064A3C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xE8 mov r0, sp adds r0, 0x20 str r0, [sp, 0xE4] add r1, sp, 0x80 mov r10, r1 add r0, sp, 0xE0 mov r9, r0 add r5, sp, 0x14 _08064A58: mov r0, r10 movs r1, 0 movs r2, 0x60 bl memset add r1, sp, 0x84 movs r0, 0x6 str r0, [r1] add r0, sp, 0x88 movs r1, 0x2 strh r1, [r0] strh r1, [r0, 0x2] add r1, sp, 0x8C movs r0, 0x1A strh r0, [r1] mov r0, sp adds r0, 0x8E movs r1, 0xC strh r1, [r0] add r0, sp, 0x90 strh r1, [r0] add r0, sp, 0x94 mov r1, r9 str r1, [r0] add r0, sp, 0x98 movs r1, 0x3 str r1, [r0, 0x4] add r0, sp, 0xB0 str r1, [r0, 0x4] add r0, sp, 0xC8 str r1, [r0, 0x4] ldr r0, [sp, 0xE4] mov r1, r10 movs r2, 0x60 bl memcpy add r0, sp, 0x14 bl sub_801317C movs r0, 0x1 mov r1, r9 strb r0, [r1] movs r0, 0 strb r0, [r1, 0x1] movs r0, 0x10 strb r0, [r1, 0x2] movs r0, 0 strb r0, [r1, 0x3] ldr r0, [sp, 0xE4] movs r1, 0 bl sub_803ECB4 bl sub_8043D10 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 bl sub_80073B8 ldr r0, _08064B0C lsls r4, 2 adds r0, r4, r0 ldr r2, [r0] movs r1, 0 str r1, [sp] movs r0, 0x10 movs r3, 0 bl xxx_call_draw_string ldr r0, _08064B10 adds r4, r0 ldr r4, [r4] movs r0, 0 str r0, [sp] movs r0, 0x8 movs r1, 0x18 adds r2, r4, 0 movs r3, 0 bl xxx_call_draw_string movs r0, 0 bl sub_80073E0 adds r0, r4, 0 add r1, sp, 0x4 bl sub_8097DF0 adds r6, r0, 0 b _08064B28 .align 2, 0 _08064B0C: .4byte gUnknown_80F8104 _08064B10: .4byte gUnknown_80F7F70 _08064B14: movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08064B22 ldrb r0, [r5, 0x2] cmp r0, 0 beq _08064B28 _08064B22: bl sub_8083D30 b _08064BC8 _08064B28: cmp r6, 0 beq _08064B30 bl sub_8062500 _08064B30: adds r0, r5, 0 movs r1, 0 bl nullsub_34 movs r0, 0x16 bl sub_803E46C ldr r0, _08064B78 ldrh r1, [r0, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08064B50 ldrb r0, [r5, 0x1] cmp r0, 0 beq _08064B14 _08064B50: bl sub_8083D08 cmp r6, 0 beq _08064BC8 movs r4, 0 cmp r4, r6 blt _08064B60 b _08064A58 _08064B60: subs r1, r6, 0x1 mov r8, r1 _08064B64: lsls r0, r4, 2 add r0, sp adds r0, 0x4 ldr r0, [r0] adds r1, r5, 0 bl sub_80639E4 adds r7, r4, 0x1 b _08064B90 .align 2, 0 _08064B78: .4byte gUnknown_20255F0 _08064B7C: movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08064B8A ldrb r0, [r5, 0x2] cmp r0, 0 beq _08064B90 _08064B8A: bl sub_8083D30 b _08064BBC _08064B90: cmp r4, r8 bge _08064B98 bl sub_8062500 _08064B98: adds r0, r5, 0 movs r1, 0 bl nullsub_34 movs r0, 0x16 bl sub_803E46C ldr r0, _08064BC4 ldrh r1, [r0, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08064BB8 ldrb r0, [r5, 0x1] cmp r0, 0 beq _08064B7C _08064BB8: bl sub_8083D08 _08064BBC: adds r4, r7, 0 cmp r4, r6 blt _08064B64 b _08064A58 .align 2, 0 _08064BC4: .4byte gUnknown_20255F0 _08064BC8: movs r0, 0 movs r1, 0 bl sub_803EAF0 add sp, 0xE8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8064A3C thumb_func_start sub_8064BE0 sub_8064BE0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r0, _08064C94 ldr r0, [r0] movs r1, 0xCB lsls r1, 3 adds r0, r1 ldrb r0, [r0] movs r1, 0x4 mov r9, r1 cmp r0, 0 beq _08064C02 movs r0, 0x5 mov r9, r0 _08064C02: ldr r1, _08064C98 movs r0, 0 str r0, [r1] mov r10, r0 ldr r6, _08064C9C ldr r7, _08064CA0 movs r1, 0x2A adds r1, r6 mov r8, r1 _08064C14: movs r5, 0 bl sub_8065250 _08064C1A: adds r0, r6, 0 bl AddMenuCursorSprite movs r0, 0x24 bl sub_803E46C ldrh r1, [r7, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08064C3E movs r0, 0x1 bl sub_8083CE0 adds r0, r6, 0 movs r1, 0x1 bl sub_80136E0 _08064C3E: ldrh r1, [r7, 0x4] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08064C56 movs r0, 0x1 bl sub_8083CE0 adds r0, r6, 0 movs r1, 0x1 bl sub_8013744 _08064C56: ldrh r1, [r7, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08064C6A adds r0, r6, 0 adds r0, 0x29 ldrb r0, [r0] cmp r0, 0 beq _08064CAA _08064C6A: movs r1, 0x18 ldrsh r0, [r6, r1] cmp r0, 0x4 bne _08064C8C ldr r0, _08064C94 ldr r0, [r0] movs r1, 0xCB lsls r1, 3 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _08064CA4 bl sub_80441BC lsls r0, 24 cmp r0, 0 bne _08064CA4 _08064C8C: bl sub_8083D08 b _08064CC0 .align 2, 0 _08064C94: .4byte gUnknown_203B418 _08064C98: .4byte gUnknown_202F2E0 _08064C9C: .4byte gUnknown_202EE10 _08064CA0: .4byte gUnknown_20255F0 _08064CA4: bl sub_8083D30 b _08064CC0 _08064CAA: movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08064CBA mov r1, r8 ldrb r0, [r1] cmp r0, 0 beq _08064C1A _08064CBA: bl sub_8083D30 movs r5, 0x1 _08064CC0: ldr r4, _08064D68 adds r0, r4, 0 bl AddMenuCursorSprite movs r0, 0x24 bl sub_803E46C mov r0, r10 cmp r0, 0 bne _08064C14 cmp r5, 0 bne _08064D4C ldr r5, _08064D6C movs r1, 0x18 ldrsh r0, [r4, r1] str r0, [r5] cmp r0, 0 bne _08064CE8 bl sub_8064D74 _08064CE8: ldr r0, [r5] cmp r0, 0x1 bne _08064CF2 bl sub_80650C0 _08064CF2: ldr r0, [r5] cmp r0, 0x2 bne _08064CFC bl sub_80532B4 _08064CFC: ldr r0, [r5] cmp r0, 0x3 bne _08064D06 bl sub_806519C _08064D06: ldr r0, _08064D70 ldr r0, [r0] movs r1, 0xCB lsls r1, 3 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _08064D2A bl sub_80441BC lsls r0, 24 cmp r0, 0 bne _08064D2A ldr r0, [r5] cmp r0, 0x4 bne _08064D2A bl sub_8065FB4 _08064D2A: ldr r0, _08064D6C ldr r0, [r0] cmp r0, r9 bne _08064D36 bl sub_8065BF4 _08064D36: ldr r0, _08064D70 ldr r0, [r0] ldrb r0, [r0, 0x4] cmp r0, 0 bne _08064D4C bl sub_805F1AC lsls r0, 16 cmp r0, 0 bne _08064D4C b _08064C14 _08064D4C: bl sub_8040A84 movs r0, 0 movs r1, 0 bl sub_803EAF0 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08064D68: .4byte gUnknown_202EE10 _08064D6C: .4byte gUnknown_202F2E0 _08064D70: .4byte gUnknown_203B418 thumb_func_end sub_8064BE0 thumb_func_start sub_8064D74 sub_8064D74: push {r4-r7,lr} mov r7, r8 push {r7} ldr r6, _08064DE0 ldr r7, _08064DE4 movs r0, 0x2A adds r0, r6 mov r8, r0 _08064D84: movs r5, 0 bl sub_8065574 _08064D8A: adds r0, r6, 0 bl AddMenuCursorSprite movs r0, 0x24 bl sub_803E46C ldrh r1, [r7, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08064DAE movs r0, 0x1 bl sub_8083CE0 adds r0, r6, 0 movs r1, 0x1 bl sub_80136E0 _08064DAE: ldrh r1, [r7, 0x4] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08064DC6 movs r0, 0x1 bl sub_8083CE0 adds r0, r6, 0 movs r1, 0x1 bl sub_8013744 _08064DC6: ldrh r1, [r7, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08064DDA adds r0, r6, 0 adds r0, 0x29 ldrb r0, [r0] cmp r0, 0 beq _08064DE8 _08064DDA: bl sub_8083D08 b _08064DFE .align 2, 0 _08064DE0: .4byte gUnknown_202EE10 _08064DE4: .4byte gUnknown_20255F0 _08064DE8: movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08064DF8 mov r1, r8 ldrb r0, [r1] cmp r0, 0 beq _08064D8A _08064DF8: bl sub_8083D30 movs r5, 0x1 _08064DFE: ldr r4, _08064E2C adds r0, r4, 0 bl AddMenuCursorSprite movs r0, 0x24 bl sub_803E46C cmp r5, 0 bne _08064E56 ldr r0, _08064E30 ldr r1, _08064E34 ldr r0, [r0] ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldr r0, [r0] str r0, [r1] movs r1, 0x18 ldrsh r0, [r4, r1] cmp r0, 0 bne _08064E38 bl sub_8064E68 b _08064E40 .align 2, 0 _08064E2C: .4byte gUnknown_202EE10 _08064E30: .4byte gUnknown_203B46C _08064E34: .4byte gUnknown_202F2E8 _08064E38: cmp r0, 0x1 bne _08064E4C bl sub_8064F50 _08064E40: lsls r0, 24 lsrs r5, r0, 24 adds r0, r5, 0 bl sub_8065040 b _08064D84 _08064E4C: cmp r0, 0x2 bne _08064D84 bl sub_806509C b _08064D84 _08064E56: movs r0, 0 movs r1, 0 bl sub_803EAF0 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8064D74 thumb_func_start sub_8064E68 sub_8064E68: push {r4-r7,lr} mov r7, r8 push {r7} movs r7, 0 ldr r0, _08064EDC strh r7, [r0, 0x18] adds r4, r0, 0 ldr r6, _08064EE0 movs r0, 0x2A adds r0, r4 mov r8, r0 _08064E7E: movs r7, 0 movs r5, 0 bl sub_80656C0 _08064E86: adds r0, r4, 0 bl AddMenuCursorSprite movs r0, 0x24 bl sub_803E46C ldrh r1, [r6, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08064EAA movs r0, 0x1 bl sub_8083CE0 adds r0, r4, 0 movs r1, 0x1 bl sub_80136E0 _08064EAA: ldrh r1, [r6, 0x4] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08064EC2 movs r0, 0x1 bl sub_8083CE0 adds r0, r4, 0 movs r1, 0x1 bl sub_8013744 _08064EC2: ldrh r1, [r6, 0x4] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _08064EE4 movs r0, 0 bl sub_8083CE0 movs r1, 0x18 ldrsh r0, [r4, r1] bl sub_8065A8C b _08064F2E .align 2, 0 _08064EDC: .4byte gUnknown_202EE10 _08064EE0: .4byte gUnknown_20255F0 _08064EE4: movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _08064EFC movs r0, 0 bl sub_8083CE0 movs r2, 0x18 ldrsh r0, [r4, r2] bl sub_8065B3C b _08064F2E _08064EFC: ldrh r1, [r6, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08064F0E mov r2, r8 ldrb r0, [r2] cmp r0, 0 beq _08064F14 _08064F0E: bl sub_8083D08 b _08064F30 _08064F14: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08064F24 bl sub_8083D30 movs r7, 0x1 b _08064F30 _08064F24: bl sub_8065BEC lsls r0, 24 cmp r0, 0 beq _08064E86 _08064F2E: movs r5, 0x1 _08064F30: ldr r0, _08064F4C bl AddMenuCursorSprite movs r0, 0x24 bl sub_803E46C cmp r5, 0 bne _08064E7E adds r0, r7, 0 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08064F4C: .4byte gUnknown_202EE10 thumb_func_end sub_8064E68 thumb_func_start sub_8064F50 sub_8064F50: push {r4-r7,lr} mov r7, r8 push {r7} movs r7, 0 ldr r0, _08064FC8 strh r7, [r0, 0x18] adds r4, r0, 0 ldr r6, _08064FCC movs r0, 0x2A adds r0, r4 mov r8, r0 _08064F66: movs r7, 0 movs r5, 0 bl sub_8065948 _08064F6E: adds r0, r4, 0 bl AddMenuCursorSprite movs r0, 0x24 bl sub_803E46C ldrh r1, [r6, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08064F92 movs r0, 0x1 bl sub_8083CE0 adds r0, r4, 0 movs r1, 0x1 bl sub_80136E0 _08064F92: ldrh r1, [r6, 0x4] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08064FAA movs r0, 0x1 bl sub_8083CE0 adds r0, r4, 0 movs r1, 0x1 bl sub_8013744 _08064FAA: ldrh r1, [r6, 0x4] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _08064FD0 movs r0, 0 bl sub_8083CE0 movs r1, 0x18 ldrsh r0, [r4, r1] adds r0, 0x5 bl sub_8065A8C b _0806501C .align 2, 0 _08064FC8: .4byte gUnknown_202EE10 _08064FCC: .4byte gUnknown_20255F0 _08064FD0: movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _08064FEA movs r0, 0 bl sub_8083CE0 movs r2, 0x18 ldrsh r0, [r4, r2] adds r0, 0x5 bl sub_8065B3C b _0806501C _08064FEA: ldrh r1, [r6, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08064FFC mov r2, r8 ldrb r0, [r2] cmp r0, 0 beq _08065002 _08064FFC: bl sub_8083D08 b _0806501E _08065002: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08065012 bl sub_8083D30 movs r7, 0x1 b _0806501E _08065012: bl sub_8065BF0 lsls r0, 24 cmp r0, 0 beq _08064F6E _0806501C: movs r5, 0x1 _0806501E: ldr r0, _0806503C bl AddMenuCursorSprite movs r0, 0x24 bl sub_803E46C cmp r5, 0 bne _08064F66 adds r0, r7, 0 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0806503C: .4byte gUnknown_202EE10 thumb_func_end sub_8064F50 thumb_func_start sub_8065040 sub_8065040: push {r4,lr} lsls r0, 24 movs r4, 0 cmp r0, 0 beq _0806505C ldr r0, _08065058 bl sub_80949DC lsls r0, 24 cmp r0, 0 bne _0806505E b _08065062 .align 2, 0 _08065058: .4byte gUnknown_202F2E8 _0806505C: movs r4, 0x1 _0806505E: cmp r4, 0 beq _08065088 _08065062: ldr r0, _08065090 ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl sub_8052B8C cmp r0, 0x1 bne _08065088 ldr r0, _08065094 ldr r1, [r0] ldr r0, _08065098 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldr r0, [r0] str r0, [r1] bl sub_803E13C bl sub_8040238 _08065088: pop {r4} pop {r0} bx r0 .align 2, 0 _08065090: .4byte gUnknown_80FEBF8 _08065094: .4byte gUnknown_203B46C _08065098: .4byte gUnknown_202F2E8 thumb_func_end sub_8065040 thumb_func_start sub_806509C sub_806509C: push {lr} ldr r0, _080650BC ldr r1, [r0] movs r0, 0 movs r2, 0 bl sub_8052B8C cmp r0, 0x1 bne _080650B8 movs r0, 0 bl sub_8094998 bl sub_803E13C _080650B8: pop {r0} bx r0 .align 2, 0 _080650BC: .4byte gUnknown_80FEC28 thumb_func_end sub_806509C thumb_func_start sub_80650C0 sub_80650C0: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} movs r0, 0 mov r9, r0 ldr r5, _08065134 ldr r6, _08065138 movs r1, 0x2A adds r1, r5 mov r8, r1 _080650D6: movs r7, 0 bl sub_806544C _080650DC: adds r0, r5, 0 bl AddMenuCursorSprite movs r0, 0x24 bl sub_803E46C ldrh r1, [r6, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08065100 movs r0, 0x1 bl sub_8083CE0 adds r0, r5, 0 movs r1, 0x1 bl sub_80136E0 _08065100: ldrh r1, [r6, 0x4] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08065118 movs r0, 0x1 bl sub_8083CE0 adds r0, r5, 0 movs r1, 0x1 bl sub_8013744 _08065118: ldrh r1, [r6, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0806512C adds r0, r5, 0 adds r0, 0x29 ldrb r0, [r0] cmp r0, 0 beq _0806513C _0806512C: bl sub_8083D08 b _08065152 .align 2, 0 _08065134: .4byte gUnknown_202EE10 _08065138: .4byte gUnknown_20255F0 _0806513C: movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _0806514C mov r1, r8 ldrb r0, [r1] cmp r0, 0 beq _080650DC _0806514C: bl sub_8083D30 movs r7, 0x1 _08065152: ldr r4, _08065178 adds r0, r4, 0 bl AddMenuCursorSprite movs r0, 0x24 bl sub_803E46C mov r0, r9 cmp r0, 0 bne _080650D6 cmp r7, 0 bne _0806518E movs r1, 0x18 ldrsh r0, [r4, r1] cmp r0, 0 bne _0806517C bl sub_80651D0 b _08065184 .align 2, 0 _08065178: .4byte gUnknown_202EE10 _0806517C: cmp r0, 0x1 bne _08065184 bl sub_80651FC _08065184: bl sub_805F1AC lsls r0, 16 cmp r0, 0 beq _080650D6 _0806518E: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80650C0 thumb_func_start sub_806519C sub_806519C: push {lr} ldr r0, _080651CC ldr r1, [r0] movs r2, 0xCF lsls r2, 3 adds r0, r1, r2 ldrb r0, [r0] subs r2, 0x34 adds r1, r2 ldrb r1, [r1] movs r2, 0 bl sub_80319A4 _080651B6: movs r0, 0x47 bl sub_803E46C bl sub_80319F8 cmp r0, 0 beq _080651B6 bl sub_8031A3C pop {r0} bx r0 .align 2, 0 _080651CC: .4byte gUnknown_203B418 thumb_func_end sub_806519C thumb_func_start sub_80651D0 sub_80651D0: push {lr} ldr r0, _080651F0 ldr r1, [r0] movs r0, 0 movs r2, 0 bl sub_8052B8C cmp r0, 0x1 bne _080651F4 bl sub_805F1A0 movs r1, 0x2B bl sub_8044C94 movs r0, 0 b _080651F6 .align 2, 0 _080651F0: .4byte gUnknown_80FDE6C _080651F4: movs r0, 0x1 _080651F6: pop {r1} bx r1 thumb_func_end sub_80651D0 thumb_func_start sub_80651FC sub_80651FC: push {r4,r5,lr} ldr r0, _08065238 ldr r1, [r0] movs r0, 0 movs r2, 0 bl sub_8052B8C adds r5, r0, 0 cmp r5, 0x1 bne _08065248 bl sub_805F1A0 movs r1, 0x2E bl sub_8044C94 ldr r4, _0806523C bl sub_8083600 adds r2, r0, 0 adds r0, r4, 0 movs r1, 0 bl sub_8083AB0 ldr r0, _08065240 ldr r0, [r0] ldr r1, _08065244 adds r0, r1 strb r5, [r0] movs r0, 0 b _0806524A .align 2, 0 _08065238: .4byte gUnknown_80FDEB8 _0806523C: .4byte 0x0000021b _08065240: .4byte gUnknown_203B418 _08065244: .4byte 0x00000654 _08065248: movs r0, 0x1 _0806524A: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80651FC thumb_func_start sub_8065250 sub_8065250: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC8 add r5, sp, 0x64 adds r0, r5, 0 movs r1, 0 movs r2, 0x60 bl memset movs r0, 0x6 str r0, [sp, 0x68] add r0, sp, 0x6C movs r4, 0 movs r7, 0 movs r1, 0x2 mov r9, r1 mov r1, r9 strh r1, [r0] strh r1, [r0, 0x2] add r0, sp, 0x70 movs r1, 0x12 mov r10, r1 mov r1, r10 strh r1, [r0] adds r0, 0x2 movs r1, 0x10 mov r8, r1 mov r1, r8 strh r1, [r0] add r0, sp, 0x74 strh r1, [r0] add r6, sp, 0xC4 str r6, [sp, 0x78] movs r1, 0x3 str r1, [sp, 0x80] add r0, sp, 0x94 str r1, [r0, 0x4] add r0, sp, 0xAC str r1, [r0, 0x4] add r0, sp, 0x4 adds r1, r5, 0 movs r2, 0x60 bl memcpy movs r0, 0x1 strb r0, [r6] strb r4, [r6, 0x1] strb r4, [r6, 0x3] ldr r4, _080653D0 ldr r0, _080653D4 ldr r0, [r0] strh r0, [r4, 0x18] ldr r1, _080653D8 ldr r0, [r1] movs r1, 0xCB lsls r1, 3 adds r0, r1 ldrb r0, [r0] movs r5, 0x5 cmp r0, 0 beq _080652D2 movs r5, 0x6 _080652D2: strh r5, [r4, 0x1A] strh r5, [r4, 0x1C] strh r7, [r4, 0x1E] strh r7, [r4, 0x20] strh r7, [r4, 0x4] mov r0, r8 strh r0, [r4, 0x6] strh r7, [r4, 0xC] strh r7, [r4, 0xE] strh r7, [r4, 0x14] str r7, [r4] adds r0, r4, 0 adds r0, 0x28 bl sub_801317C add r0, sp, 0x4 mov r1, r10 strh r1, [r0, 0xC] adds r0, r5, 0 movs r1, 0xC bl sub_80095E4 add r2, sp, 0x4 adds r1, r2, 0 adds r0, 0x2 strh r0, [r1, 0x10] strh r0, [r2, 0xE] movs r0, 0xA strb r0, [r6, 0x2] adds r0, r1, 0 mov r1, r9 strh r1, [r0, 0x8] movs r1, 0x1 bl sub_803ECB4 adds r0, r4, 0 movs r1, 0 bl sub_80137B0 movs r0, 0 bl sub_80073B8 movs r5, 0 ldr r0, _080653DC ldr r2, [r0] str r5, [sp] movs r0, 0x10 movs r1, 0 movs r3, 0 bl sub_8014FF0 adds r0, r4, 0 movs r1, 0 bl sub_8013800 adds r1, r0, 0 ldr r0, _080653E0 ldr r2, [r0] str r7, [sp] movs r0, 0x8 movs r3, 0 bl sub_8014FF0 adds r0, r4, 0 movs r1, 0x1 bl sub_8013800 adds r1, r0, 0 ldr r0, _080653E4 ldr r2, [r0] str r7, [sp] movs r0, 0x8 movs r3, 0 bl sub_8014FF0 adds r0, r4, 0 movs r1, 0x2 bl sub_8013800 adds r1, r0, 0 ldr r0, _080653E8 ldr r2, [r0] str r7, [sp] movs r0, 0x8 movs r3, 0 bl sub_8014FF0 movs r5, 0x4 adds r0, r4, 0 movs r1, 0x3 bl sub_8013800 adds r1, r0, 0 ldr r0, _080653EC ldr r2, [r0] str r7, [sp] movs r0, 0x8 movs r3, 0 bl sub_8014FF0 ldr r1, _080653D8 ldr r0, [r1] movs r1, 0xCB lsls r1, 3 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _0806540E bl sub_80441BC lsls r0, 24 cmp r0, 0 bne _080653F4 movs r5, 0x5 adds r0, r4, 0 movs r1, 0x4 bl sub_8013800 adds r1, r0, 0 ldr r0, _080653F0 ldr r2, [r0] str r7, [sp] movs r0, 0x8 movs r3, 0 bl sub_8014FF0 b _0806540E .align 2, 0 _080653D0: .4byte gUnknown_202EE10 _080653D4: .4byte gUnknown_202F2E0 _080653D8: .4byte gUnknown_203B418 _080653DC: .4byte gUnknown_80FE8F8 _080653E0: .4byte gUnknown_80FE9CC _080653E4: .4byte gUnknown_80FE9E8 _080653E8: .4byte gUnknown_80FE9F8 _080653EC: .4byte gUnknown_80FEA10 _080653F0: .4byte gUnknown_80FEA28 _080653F4: movs r5, 0x5 adds r0, r4, 0 movs r1, 0x4 bl sub_8013800 adds r1, r0, 0 ldr r0, _08065440 ldr r2, [r0] str r7, [sp] movs r0, 0x8 movs r3, 0 bl sub_8014FF0 _0806540E: ldr r0, _08065444 adds r1, r5, 0 bl sub_8013800 adds r1, r0, 0 ldr r0, _08065448 ldr r2, [r0] movs r0, 0 str r0, [sp] movs r0, 0x8 movs r3, 0 bl sub_8014FF0 movs r0, 0 bl sub_80073E0 add sp, 0xC8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08065440: .4byte gUnknown_80FEA44 _08065444: .4byte gUnknown_202EE10 _08065448: .4byte gUnknown_80FEA50 thumb_func_end sub_8065250 thumb_func_start sub_806544C sub_806544C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC8 add r0, sp, 0x64 mov r10, r0 movs r1, 0 movs r2, 0x60 bl memset movs r0, 0x6 str r0, [sp, 0x68] add r0, sp, 0x6C movs r4, 0 movs r5, 0 movs r1, 0x2 mov r9, r1 mov r2, r9 strh r2, [r0] strh r2, [r0, 0x2] add r0, sp, 0x70 movs r7, 0x12 strh r7, [r0] adds r0, 0x2 movs r6, 0x10 strh r6, [r0] add r0, sp, 0x74 strh r6, [r0] add r0, sp, 0xC4 mov r8, r0 str r0, [sp, 0x78] movs r1, 0x3 str r1, [sp, 0x80] add r0, sp, 0x94 str r1, [r0, 0x4] add r0, sp, 0xAC str r1, [r0, 0x4] add r0, sp, 0x4 mov r1, r10 movs r2, 0x60 bl memcpy movs r0, 0x1 mov r1, r8 strb r0, [r1] strb r4, [r1, 0x1] strb r4, [r1, 0x3] ldr r4, _08065568 strh r5, [r4, 0x18] mov r2, r9 strh r2, [r4, 0x1A] strh r2, [r4, 0x1C] strh r5, [r4, 0x1E] strh r5, [r4, 0x20] strh r5, [r4, 0x4] strh r6, [r4, 0x6] strh r5, [r4, 0xC] strh r5, [r4, 0xE] strh r5, [r4, 0x14] str r5, [r4] adds r0, r4, 0 adds r0, 0x28 bl sub_801317C add r0, sp, 0x4 strh r7, [r0, 0xC] movs r0, 0x2 movs r1, 0xC bl sub_80095E4 add r2, sp, 0x4 adds r1, r2, 0 adds r0, 0x2 strh r0, [r1, 0x10] strh r0, [r2, 0xE] movs r0, 0xA mov r1, r8 strb r0, [r1, 0x2] adds r0, r2, 0 mov r2, r9 strh r2, [r0, 0x8] movs r1, 0x1 bl sub_803ECB4 adds r0, r4, 0 movs r1, 0 bl sub_80137B0 movs r0, 0 bl sub_80073B8 ldr r0, _0806556C ldr r2, [r0] str r5, [sp] movs r0, 0x10 movs r1, 0 movs r3, 0 bl sub_8014FF0 adds r0, r4, 0 movs r1, 0 bl sub_8013800 adds r1, r0, 0 ldr r6, _08065570 movs r2, 0xAC lsls r2, 1 adds r0, r6, r2 ldr r2, [r0] str r5, [sp] movs r0, 0x8 movs r3, 0 bl sub_8014FF0 adds r0, r4, 0 movs r1, 0x1 bl sub_8013800 adds r1, r0, 0 movs r2, 0xB8 lsls r2, 1 adds r0, r6, r2 ldr r2, [r0] str r5, [sp] movs r0, 0x8 movs r3, 0 bl sub_8014FF0 movs r0, 0 bl sub_80073E0 add sp, 0xC8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08065568: .4byte gUnknown_202EE10 _0806556C: .4byte gUnknown_80FE8F4 _08065570: .4byte gUnknown_80F7C50 thumb_func_end sub_806544C thumb_func_start sub_8065574 sub_8065574: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xD4 add r0, sp, 0x10 mov r10, r0 add r7, sp, 0x70 adds r0, r7, 0 movs r1, 0 movs r2, 0x60 bl memset movs r0, 0x6 str r0, [sp, 0x74] add r0, sp, 0x78 movs r4, 0 movs r6, 0 movs r1, 0x2 strh r1, [r0] strh r1, [r0, 0x2] add r0, sp, 0x7C movs r1, 0xC strh r1, [r0] adds r0, 0x2 movs r1, 0x10 mov r9, r1 mov r1, r9 strh r1, [r0] add r0, sp, 0x80 strh r1, [r0] add r0, sp, 0x84 add r1, sp, 0xD0 mov r8, r1 str r1, [r0] add r0, sp, 0x88 movs r5, 0x3 str r5, [r0, 0x4] add r0, sp, 0xA0 str r5, [r0, 0x4] add r0, sp, 0xB8 str r5, [r0, 0x4] mov r0, r10 adds r1, r7, 0 movs r2, 0x60 bl memcpy movs r0, 0x1 mov r1, r8 strb r0, [r1] strb r4, [r1, 0x1] strb r4, [r1, 0x3] ldr r4, _080656AC strh r6, [r4, 0x18] strh r5, [r4, 0x1A] strh r5, [r4, 0x1C] strh r6, [r4, 0x1E] strh r6, [r4, 0x20] strh r6, [r4, 0x4] mov r0, r9 strh r0, [r4, 0x6] strh r6, [r4, 0xC] strh r6, [r4, 0xE] strh r6, [r4, 0x14] str r6, [r4] adds r0, r4, 0 adds r0, 0x28 bl sub_801317C movs r0, 0xC mov r1, r10 strh r0, [r1, 0xC] movs r0, 0x3 movs r1, 0xC bl sub_80095E4 adds r0, 0x2 mov r1, r10 strh r0, [r1, 0x10] strh r0, [r1, 0xE] movs r0, 0xA mov r1, r8 strb r0, [r1, 0x2] movs r1, 0x2 mov r0, r10 strh r1, [r0, 0x8] movs r1, 0x1 bl sub_803ECB4 adds r0, r4, 0 movs r1, 0 bl sub_80137B0 adds r0, r4, 0 movs r1, 0 bl sub_8013800 str r0, [sp, 0x4] adds r0, r4, 0 movs r1, 0x1 bl sub_8013800 str r0, [sp, 0x8] adds r0, r4, 0 movs r1, 0x2 bl sub_8013800 str r0, [sp, 0xC] movs r0, 0 bl sub_80073B8 ldr r0, _080656B0 ldr r2, [r0] str r6, [sp] movs r0, 0x10 movs r1, 0 movs r3, 0 bl sub_8014FF0 ldr r1, [sp, 0x4] ldr r0, _080656B4 ldr r2, [r0] str r6, [sp] movs r0, 0x8 movs r3, 0 bl sub_8014FF0 ldr r1, [sp, 0x8] ldr r0, _080656B8 ldr r2, [r0] str r6, [sp] movs r0, 0x8 movs r3, 0 bl sub_8014FF0 ldr r1, [sp, 0xC] ldr r0, _080656BC ldr r2, [r0] str r6, [sp] movs r0, 0x8 movs r3, 0 bl sub_8014FF0 movs r0, 0 bl sub_80073E0 add sp, 0xD4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080656AC: .4byte gUnknown_202EE10 _080656B0: .4byte gUnknown_80FE8F0 _080656B4: .4byte gUnknown_80FE730 _080656B8: .4byte gUnknown_80FE73C _080656BC: .4byte gUnknown_80FE748 thumb_func_end sub_8065574 thumb_func_start sub_80656C0 sub_80656C0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xDC add r0, sp, 0x18 mov r9, r0 add r7, sp, 0x78 adds r0, r7, 0 movs r1, 0 movs r2, 0x60 bl memset movs r0, 0x6 str r0, [sp, 0x7C] add r0, sp, 0x80 movs r5, 0 movs r1, 0x2 mov r10, r1 mov r2, r10 strh r2, [r0] strh r2, [r0, 0x2] add r1, sp, 0x84 movs r0, 0x12 strh r0, [r1] mov r0, sp adds r0, 0x86 movs r3, 0x10 mov r8, r3 mov r4, r8 strh r4, [r0] add r0, sp, 0x88 strh r4, [r0] add r0, sp, 0x8C add r6, sp, 0xD8 str r6, [r0] add r0, sp, 0x90 movs r1, 0x3 str r1, [r0, 0x4] add r0, sp, 0xA8 str r1, [r0, 0x4] add r0, sp, 0xC0 str r1, [r0, 0x4] mov r0, r9 adds r1, r7, 0 movs r2, 0x60 bl memcpy adds r1, r7, 0 ldr r0, _0806583C ldm r0!, {r2-r4} stm r1!, {r2-r4} movs r0, 0x1 strb r0, [r6] movs r0, 0 strb r0, [r6, 0x1] strb r0, [r6, 0x3] ldr r4, _08065840 movs r0, 0x5 strh r0, [r4, 0x1A] strh r0, [r4, 0x1C] strh r5, [r4, 0x1E] strh r5, [r4, 0x20] strh r5, [r4, 0x4] mov r1, r8 strh r1, [r4, 0x6] strh r5, [r4, 0xC] strh r5, [r4, 0xE] strh r5, [r4, 0x14] str r5, [r4] adds r0, r4, 0 adds r0, 0x28 bl sub_801317C movs r0, 0x18 mov r2, r9 strh r0, [r2, 0xC] movs r0, 0x5 movs r1, 0xC bl sub_80095E4 adds r0, 0x2 mov r3, r9 strh r0, [r3, 0x10] strh r0, [r3, 0xE] movs r0, 0xA strb r0, [r6, 0x2] mov r0, r10 strh r0, [r3, 0x8] mov r0, r9 movs r1, 0x1 bl sub_803ECB4 adds r0, r4, 0 movs r1, 0 bl sub_80137B0 adds r0, r4, 0 movs r1, 0 bl sub_8013800 str r0, [sp, 0x4] adds r0, r4, 0 movs r1, 0x1 bl sub_8013800 str r0, [sp, 0x8] adds r0, r4, 0 movs r1, 0x2 bl sub_8013800 str r0, [sp, 0xC] adds r0, r4, 0 movs r1, 0x3 bl sub_8013800 str r0, [sp, 0x10] adds r0, r4, 0 movs r1, 0x4 bl sub_8013800 str r0, [sp, 0x14] movs r0, 0 bl sub_80073B8 ldr r0, _08065844 ldr r2, [r0] str r5, [sp] movs r0, 0x10 movs r1, 0 movs r3, 0 bl sub_8014FF0 ldr r1, [sp, 0x4] ldr r0, _08065848 ldr r2, [r0] str r5, [sp] movs r0, 0x8 movs r3, 0 bl sub_8014FF0 ldr r1, [sp, 0x8] ldr r0, _0806584C ldr r2, [r0] str r5, [sp] movs r0, 0x8 movs r3, 0 bl sub_8014FF0 ldr r1, [sp, 0xC] ldr r0, _08065850 ldr r2, [r0] str r5, [sp] movs r0, 0x8 movs r3, 0 bl sub_8014FF0 ldr r1, [sp, 0x10] ldr r0, _08065854 ldr r2, [r0] str r5, [sp] movs r0, 0x8 movs r3, 0 bl sub_8014FF0 ldr r1, [sp, 0x14] ldr r0, _08065858 ldr r2, [r0] str r5, [sp] movs r0, 0x8 movs r3, 0 bl sub_8014FF0 ldr r0, _0806585C ldrb r0, [r0] adds r4, r7, 0 cmp r0, 0 beq _08065860 ldr r2, [sp, 0x4] adds r2, 0xA movs r0, 0x7 str r0, [sp] movs r0, 0 movs r1, 0x88 movs r3, 0x15 bl sub_80078A4 b _08065872 .align 2, 0 _0806583C: .4byte gUnknown_8106CE8 _08065840: .4byte gUnknown_202EE10 _08065844: .4byte gUnknown_80FE730 _08065848: .4byte gUnknown_80FE764 _0806584C: .4byte gUnknown_80FE788 _08065850: .4byte gUnknown_80FE7A8 _08065854: .4byte gUnknown_80FE7C0 _08065858: .4byte gUnknown_80FE7E4 _0806585C: .4byte gUnknown_202F2E8 _08065860: ldr r2, [sp, 0x4] adds r2, 0xA movs r0, 0x7 str r0, [sp] movs r0, 0 movs r1, 0x50 movs r3, 0x16 bl sub_80078A4 _08065872: ldr r0, _08065890 ldrb r0, [r0, 0x1] cmp r0, 0 beq _08065894 ldr r2, [sp, 0x8] adds r2, 0xA movs r0, 0x7 str r0, [sp] movs r0, 0 movs r1, 0x88 movs r3, 0x16 bl sub_80078A4 b _080658A6 .align 2, 0 _08065890: .4byte gUnknown_202F2E8 _08065894: ldr r2, [sp, 0x8] adds r2, 0xA movs r0, 0x7 str r0, [sp] movs r0, 0 movs r1, 0x50 movs r3, 0x12 bl sub_80078A4 _080658A6: ldr r0, _080658C4 ldrb r0, [r0, 0x2] cmp r0, 0 beq _080658C8 ldr r2, [sp, 0xC] adds r2, 0xA movs r0, 0x7 str r0, [sp] movs r0, 0 movs r1, 0x88 movs r3, 0x10 bl sub_80078A4 b _080658DA .align 2, 0 _080658C4: .4byte gUnknown_202F2E8 _080658C8: ldr r2, [sp, 0xC] adds r2, 0xA movs r0, 0x7 str r0, [sp] movs r0, 0 movs r1, 0x50 movs r3, 0xC bl sub_80078A4 _080658DA: ldr r0, _080658F8 ldrb r0, [r0, 0x3] cmp r0, 0 beq _080658FC ldr r2, [sp, 0x10] adds r2, 0xA movs r0, 0x7 str r0, [sp] movs r0, 0 movs r1, 0x88 movs r3, 0xC bl sub_80078A4 b _0806590E .align 2, 0 _080658F8: .4byte gUnknown_202F2E8 _080658FC: ldr r2, [sp, 0x10] adds r2, 0xA movs r0, 0x7 str r0, [sp] movs r0, 0 movs r1, 0x50 movs r3, 0x10 bl sub_80078A4 _0806590E: ldr r0, _08065944 ldrb r1, [r0, 0x4] lsls r0, r1, 2 adds r1, r0, r1 lsls r1, 3 adds r1, 0x50 ldr r2, [sp, 0x14] adds r2, 0xA adds r0, r4, r0 ldr r3, [r0] movs r0, 0x7 str r0, [sp] movs r0, 0 bl sub_80078A4 movs r0, 0 bl sub_80073E0 add sp, 0xDC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08065944: .4byte gUnknown_202F2E8 thumb_func_end sub_80656C0 thumb_func_start sub_8065948 sub_8065948: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xCC add r0, sp, 0x64 mov r10, r0 movs r1, 0 movs r2, 0x60 bl memset movs r0, 0x6 str r0, [sp, 0x68] add r0, sp, 0x6C movs r4, 0 movs r5, 0 movs r1, 0x2 mov r9, r1 mov r2, r9 strh r2, [r0] strh r2, [r0, 0x2] add r1, sp, 0x70 movs r0, 0x12 strh r0, [r1] mov r0, sp adds r0, 0x72 movs r6, 0x10 strh r6, [r0] add r0, sp, 0x74 strh r6, [r0] add r3, sp, 0xC4 mov r8, r3 str r3, [sp, 0x78] movs r1, 0x3 str r1, [sp, 0x80] add r0, sp, 0x94 str r1, [r0, 0x4] add r0, sp, 0xAC str r1, [r0, 0x4] add r0, sp, 0x4 mov r1, r10 movs r2, 0x60 bl memcpy mov r1, r10 ldr r0, _08065A78 ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} movs r0, 0x1 mov r7, r8 strb r0, [r7] strb r4, [r7, 0x1] strb r4, [r7, 0x3] ldr r4, _08065A7C strh r0, [r4, 0x1A] strh r0, [r4, 0x1C] strh r5, [r4, 0x1E] strh r5, [r4, 0x20] strh r5, [r4, 0x4] strh r6, [r4, 0x6] strh r5, [r4, 0xC] strh r5, [r4, 0xE] strh r5, [r4, 0x14] str r5, [r4] adds r0, r4, 0 adds r0, 0x28 bl sub_801317C add r1, sp, 0x4 movs r0, 0x18 strh r0, [r1, 0xC] movs r0, 0x1 movs r1, 0xC bl sub_80095E4 add r2, sp, 0x4 adds r1, r2, 0 adds r0, 0x2 strh r0, [r1, 0x10] strh r0, [r2, 0xE] movs r0, 0xA strb r0, [r7, 0x2] adds r0, r1, 0 mov r1, r9 strh r1, [r0, 0x8] movs r1, 0x1 bl sub_803ECB4 adds r0, r4, 0 movs r1, 0 bl sub_80137B0 movs r4, 0 mov r7, r10 add r6, sp, 0xC8 adds r5, r6, 0 _08065A0A: ldr r0, _08065A7C adds r1, r4, 0 bl sub_8013800 stm r5!, {r0} adds r4, 0x1 cmp r4, 0 ble _08065A0A movs r0, 0 bl sub_80073B8 ldr r0, _08065A80 ldr r2, [r0] movs r4, 0 str r4, [sp] movs r0, 0x10 movs r1, 0 movs r3, 0 bl sub_8014FF0 ldr r1, [r6] ldr r0, _08065A84 ldr r2, [r0] str r4, [sp] movs r0, 0x8 movs r3, 0 bl sub_8014FF0 ldr r0, _08065A88 ldrb r1, [r0, 0x8] lsls r3, r1, 2 adds r1, r3, r1 lsls r1, 3 adds r1, 0x50 add r0, sp, 0xC8 ldr r2, [r0] adds r2, 0xA adds r3, r7, r3 ldr r3, [r3] movs r0, 0x7 str r0, [sp] movs r0, 0 bl sub_80078A4 movs r0, 0 bl sub_80073E0 add sp, 0xCC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08065A78: .4byte gUnknown_8106CF4 _08065A7C: .4byte gUnknown_202EE10 _08065A80: .4byte gUnknown_80FE73C _08065A84: .4byte gUnknown_80FE808 _08065A88: .4byte gUnknown_202F2E8 thumb_func_end sub_8065948 thumb_func_start sub_8065A8C sub_8065A8C: push {lr} cmp r0, 0x5 bhi _08065B38 lsls r0, 2 ldr r1, _08065A9C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08065A9C: .4byte _08065AA0 .align 2, 0 _08065AA0: .4byte _08065AB8 .4byte _08065ACC .4byte _08065AE0 .4byte _08065AF4 .4byte _08065B08 .4byte _08065B22 _08065AB8: ldr r2, _08065AC8 movs r1, 0 ldrb r0, [r2] cmp r0, 0 bne _08065AC4 movs r1, 0x1 _08065AC4: strb r1, [r2] b _08065B38 .align 2, 0 _08065AC8: .4byte gUnknown_202F2E8 _08065ACC: ldr r2, _08065ADC movs r1, 0 ldrb r0, [r2, 0x1] cmp r0, 0 bne _08065AD8 movs r1, 0x1 _08065AD8: strb r1, [r2, 0x1] b _08065B38 .align 2, 0 _08065ADC: .4byte gUnknown_202F2E8 _08065AE0: ldr r2, _08065AF0 movs r1, 0 ldrb r0, [r2, 0x2] cmp r0, 0 bne _08065AEC movs r1, 0x1 _08065AEC: strb r1, [r2, 0x2] b _08065B38 .align 2, 0 _08065AF0: .4byte gUnknown_202F2E8 _08065AF4: ldr r2, _08065B04 movs r1, 0 ldrb r0, [r2, 0x3] cmp r0, 0 bne _08065B00 movs r1, 0x1 _08065B00: strb r1, [r2, 0x3] b _08065B38 .align 2, 0 _08065B04: .4byte gUnknown_202F2E8 _08065B08: ldr r1, _08065B18 ldrb r0, [r1, 0x4] cmp r0, 0 bne _08065B1C movs r0, 0x2 strb r0, [r1, 0x4] b _08065B38 .align 2, 0 _08065B18: .4byte gUnknown_202F2E8 _08065B1C: subs r0, 0x1 strb r0, [r1, 0x4] b _08065B38 _08065B22: ldr r1, _08065B30 ldrb r0, [r1, 0x8] cmp r0, 0 bne _08065B34 movs r0, 0x2 b _08065B36 .align 2, 0 _08065B30: .4byte gUnknown_202F2E8 _08065B34: subs r0, 0x1 _08065B36: strb r0, [r1, 0x8] _08065B38: pop {r0} bx r0 thumb_func_end sub_8065A8C thumb_func_start sub_8065B3C sub_8065B3C: push {lr} cmp r0, 0x5 bhi _08065BE8 lsls r0, 2 ldr r1, _08065B4C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08065B4C: .4byte _08065B50 .align 2, 0 _08065B50: .4byte _08065B68 .4byte _08065B7C .4byte _08065B90 .4byte _08065BA4 .4byte _08065BB8 .4byte _08065BD2 _08065B68: ldr r2, _08065B78 movs r1, 0 ldrb r0, [r2] cmp r0, 0 bne _08065B74 movs r1, 0x1 _08065B74: strb r1, [r2] b _08065BE8 .align 2, 0 _08065B78: .4byte gUnknown_202F2E8 _08065B7C: ldr r2, _08065B8C movs r1, 0 ldrb r0, [r2, 0x1] cmp r0, 0 bne _08065B88 movs r1, 0x1 _08065B88: strb r1, [r2, 0x1] b _08065BE8 .align 2, 0 _08065B8C: .4byte gUnknown_202F2E8 _08065B90: ldr r2, _08065BA0 movs r1, 0 ldrb r0, [r2, 0x2] cmp r0, 0 bne _08065B9C movs r1, 0x1 _08065B9C: strb r1, [r2, 0x2] b _08065BE8 .align 2, 0 _08065BA0: .4byte gUnknown_202F2E8 _08065BA4: ldr r2, _08065BB4 movs r1, 0 ldrb r0, [r2, 0x3] cmp r0, 0 bne _08065BB0 movs r1, 0x1 _08065BB0: strb r1, [r2, 0x3] b _08065BE8 .align 2, 0 _08065BB4: .4byte gUnknown_202F2E8 _08065BB8: ldr r1, _08065BC8 ldrb r0, [r1, 0x4] cmp r0, 0x2 bne _08065BCC movs r0, 0 strb r0, [r1, 0x4] b _08065BE8 .align 2, 0 _08065BC8: .4byte gUnknown_202F2E8 _08065BCC: adds r0, 0x1 strb r0, [r1, 0x4] b _08065BE8 _08065BD2: ldr r1, _08065BE0 ldrb r0, [r1, 0x8] cmp r0, 0x2 bne _08065BE4 movs r0, 0 b _08065BE6 .align 2, 0 _08065BE0: .4byte gUnknown_202F2E8 _08065BE4: adds r0, 0x1 _08065BE6: strb r0, [r1, 0x8] _08065BE8: pop {r0} bx r0 thumb_func_end sub_8065B3C thumb_func_start sub_8065BEC sub_8065BEC: movs r0, 0 bx lr thumb_func_end sub_8065BEC thumb_func_start sub_8065BF0 sub_8065BF0: movs r0, 0 bx lr thumb_func_end sub_8065BF0 thumb_func_start sub_8065BF4 sub_8065BF4: push {r4-r7,lr} mov r7, r8 push {r7} ldr r5, _08065C60 ldr r6, _08065C64 movs r0, 0x2A adds r0, r5 mov r8, r0 _08065C04: movs r7, 0 bl sub_8065CAC _08065C0A: adds r0, r5, 0 bl AddMenuCursorSprite movs r0, 0x24 bl sub_803E46C ldrh r1, [r6, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08065C2E movs r0, 0x1 bl sub_8083CE0 adds r0, r5, 0 movs r1, 0x1 bl sub_80136E0 _08065C2E: ldrh r1, [r6, 0x4] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08065C46 movs r0, 0x1 bl sub_8083CE0 adds r0, r5, 0 movs r1, 0x1 bl sub_8013744 _08065C46: ldrh r1, [r6, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08065C5A adds r0, r5, 0 adds r0, 0x29 ldrb r0, [r0] cmp r0, 0 beq _08065C68 _08065C5A: bl sub_8083D08 b _08065C7E .align 2, 0 _08065C60: .4byte gUnknown_202EE10 _08065C64: .4byte gUnknown_20255F0 _08065C68: movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08065C78 mov r1, r8 ldrb r0, [r1] cmp r0, 0 beq _08065C0A _08065C78: bl sub_8083D30 movs r7, 0x1 _08065C7E: ldr r4, _08065C9C adds r0, r4, 0 bl AddMenuCursorSprite movs r0, 0x24 bl sub_803E46C cmp r7, 0 bne _08065CA0 movs r1, 0x18 ldrsh r0, [r4, r1] bl sub_8065DBC b _08065C04 .align 2, 0 _08065C9C: .4byte gUnknown_202EE10 _08065CA0: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8065BF4 thumb_func_start sub_8065CAC sub_8065CAC: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC8 add r0, sp, 0x64 mov r10, r0 movs r1, 0 movs r2, 0x60 bl memset movs r0, 0x6 str r0, [sp, 0x68] add r0, sp, 0x6C movs r4, 0 movs r5, 0 movs r1, 0x2 mov r9, r1 mov r1, r9 strh r1, [r0] strh r1, [r0, 0x2] add r0, sp, 0x70 movs r7, 0xC strh r7, [r0] adds r0, 0x2 movs r6, 0x10 strh r6, [r0] add r0, sp, 0x74 strh r6, [r0] add r0, sp, 0xC4 mov r8, r0 str r0, [sp, 0x78] movs r1, 0x3 str r1, [sp, 0x80] add r0, sp, 0x94 str r1, [r0, 0x4] add r0, sp, 0xAC str r1, [r0, 0x4] add r0, sp, 0x4 mov r1, r10 movs r2, 0x60 bl memcpy movs r0, 0x1 mov r1, r8 strb r0, [r1] strb r4, [r1, 0x1] strb r4, [r1, 0x3] ldr r4, _08065DB0 strh r5, [r4, 0x18] movs r0, 0x7 strh r0, [r4, 0x1A] strh r0, [r4, 0x1C] strh r5, [r4, 0x1E] strh r5, [r4, 0x20] strh r5, [r4, 0x4] strh r6, [r4, 0x6] strh r5, [r4, 0xC] strh r5, [r4, 0xE] strh r5, [r4, 0x14] str r5, [r4] adds r0, r4, 0 adds r0, 0x28 bl sub_801317C add r0, sp, 0x4 strh r7, [r0, 0xC] movs r0, 0x7 movs r1, 0xC bl sub_80095E4 add r2, sp, 0x4 adds r1, r2, 0 adds r0, 0x2 strh r0, [r1, 0x10] strh r0, [r2, 0xE] movs r0, 0xA mov r1, r8 strb r0, [r1, 0x2] adds r0, r2, 0 mov r1, r9 strh r1, [r0, 0x8] movs r1, 0x1 bl sub_803ECB4 adds r0, r4, 0 movs r1, 0 bl sub_80137B0 movs r0, 0 bl sub_80073B8 ldr r0, _08065DB4 ldr r2, [r0] str r5, [sp] movs r0, 0x10 movs r1, 0 movs r3, 0 bl sub_8014FF0 movs r4, 0 ldr r5, _08065DB8 _08065D7A: ldr r0, _08065DB0 adds r1, r4, 0 bl sub_8013800 adds r1, r0, 0 ldm r5!, {r2} movs r0, 0 str r0, [sp] movs r0, 0x8 movs r3, 0 bl sub_8014FF0 adds r4, 0x1 cmp r4, 0x6 ble _08065D7A movs r0, 0 bl sub_80073E0 add sp, 0xC8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08065DB0: .4byte gUnknown_202EE10 _08065DB4: .4byte gUnknown_80FF770 _08065DB8: .4byte gUnknown_80FF774 thumb_func_end sub_8065CAC thumb_func_start sub_8065DBC sub_8065DBC: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xEC adds r6, r0, 0 ldr r0, _08065F28 ldr r0, [r0] ldrb r1, [r0, 0x9] negs r0, r1 orrs r0, r1 lsrs r0, 31 str r0, [sp, 0xC8] mov r0, sp adds r0, 0x6C str r0, [sp, 0xD4] mov r1, sp adds r1, 0x70 str r1, [sp, 0xD8] mov r2, sp adds r2, 0x72 str r2, [sp, 0xDC] adds r0, 0x8 str r0, [sp, 0xE0] adds r1, 0xC str r1, [sp, 0xE4] adds r2, 0x22 str r2, [sp, 0xE8] adds r0, 0x38 str r0, [sp, 0xD0] subs r1, 0x18 str r1, [sp, 0xCC] movs r2, 0x10 mov r10, r2 ldr r5, _08065F2C add r0, sp, 0xC4 mov r9, r0 add r1, sp, 0x4 mov r8, r1 _08065E0C: movs r7, 0 ldr r0, [sp, 0xCC] movs r1, 0 movs r2, 0x60 bl memset movs r0, 0x6 str r0, [sp, 0x68] movs r0, 0x2 ldr r2, [sp, 0xD4] strh r0, [r2] strh r0, [r2, 0x2] movs r0, 0xC ldr r1, [sp, 0xD8] strh r0, [r1] mov r0, r10 ldr r2, [sp, 0xDC] strh r0, [r2] ldr r1, [sp, 0xE0] strh r0, [r1] mov r2, r9 str r2, [sp, 0x78] movs r0, 0x3 ldr r1, [sp, 0xE4] str r0, [r1, 0x4] ldr r2, [sp, 0xE8] str r0, [r2, 0x4] ldr r1, [sp, 0xD0] str r0, [r1, 0x4] add r0, sp, 0x4 ldr r1, [sp, 0xCC] movs r2, 0x60 bl memcpy movs r1, 0x7 add r0, sp, 0xC4 strb r1, [r0] mov r2, r9 strb r6, [r2, 0x1] movs r0, 0 strb r0, [r2, 0x3] strh r6, [r5, 0x1E] strh r1, [r5, 0x20] strh r7, [r5, 0x1A] strh r7, [r5, 0x18] strh r7, [r5, 0x1C] strh r7, [r5, 0x4] mov r1, r10 strh r1, [r5, 0x6] strh r7, [r5, 0x14] str r7, [r5] adds r0, r5, 0 adds r0, 0x28 bl sub_801317C movs r0, 0x18 mov r2, r8 strh r0, [r2, 0xC] movs r0, 0x8 movs r1, 0xC bl sub_80095E4 adds r0, 0x2 mov r1, r8 strh r0, [r1, 0x10] strh r0, [r1, 0xE] movs r0, 0xA mov r2, r9 strb r0, [r2, 0x2] movs r0, 0x2 strh r0, [r1, 0x8] add r0, sp, 0x4 movs r1, 0x1 bl sub_803ECB4 ldr r1, _08065F30 movs r2, 0 ldrsh r0, [r1, r2] adds r0, 0x13 lsls r0, 3 strh r0, [r5, 0xC] movs r2, 0x2 ldrsh r0, [r1, r2] adds r0, 0x1 lsls r0, 3 subs r0, 0x2 strh r0, [r5, 0xE] movs r0, 0 bl sub_80073B8 lsls r0, r6, 3 adds r0, 0x10 ldr r1, _08065F34 lsls r4, r6, 2 adds r1, r4, r1 ldr r2, [r1] str r7, [sp] movs r1, 0 movs r3, 0 bl sub_8014FF0 ldr r1, _08065F38 ldr r2, [sp, 0xC8] lsls r0, r2, 5 adds r4, r0 adds r4, r1 ldr r2, [r4] str r7, [sp] movs r0, 0x8 movs r1, 0x10 movs r3, 0 bl sub_8014FF0 movs r0, 0 bl sub_80073E0 _08065EF4: adds r0, r5, 0 bl AddMenuCursorSprite movs r0, 0x24 bl sub_803E46C ldr r0, _08065F3C ldrh r1, [r0, 0x2] mov r0, r10 ands r0, r1 cmp r0, 0 bne _08065F16 adds r0, r5, 0 adds r0, 0x2B ldrb r0, [r0] cmp r0, 0 beq _08065F40 _08065F16: movs r0, 0 bl sub_8083CE0 adds r6, 0x1 cmp r6, 0x7 bne _08065F64 movs r6, 0 b _08065F64 .align 2, 0 _08065F28: .4byte gUnknown_203B46C _08065F2C: .4byte gUnknown_202EE10 _08065F30: .4byte gUnknown_2027370 _08065F34: .4byte gUnknown_80FF774 _08065F38: .4byte gUnknown_80FF7EC _08065F3C: .4byte gUnknown_20255F0 _08065F40: movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _08065F52 adds r0, r5, 0 adds r0, 0x2C ldrb r0, [r0] cmp r0, 0 beq _08065F68 _08065F52: movs r0, 0 bl sub_8083CE0 subs r6, 0x1 movs r0, 0x1 negs r0, r0 cmp r6, r0 bne _08065F64 movs r6, 0x6 _08065F64: movs r7, 0x1 b _08065F94 _08065F68: movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08065F7A adds r0, r5, 0 adds r0, 0x29 ldrb r0, [r0] cmp r0, 0 beq _08065F80 _08065F7A: bl sub_8083D08 b _08065F94 _08065F80: movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08065F90 ldr r1, _08065FB0 ldrb r0, [r1] cmp r0, 0 beq _08065EF4 _08065F90: bl sub_8083D30 _08065F94: movs r0, 0x24 bl sub_803E46C cmp r7, 0 beq _08065FA0 b _08065E0C _08065FA0: add sp, 0xEC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08065FB0: .4byte gUnknown_202EE3A thumb_func_end sub_8065DBC thumb_func_start sub_8065FB4 sub_8065FB4: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r4, _08065FE0 add sp, r4 movs r0, 0 mov r10, r0 ldr r4, _08065FE4 ldr r0, [r4] ldr r1, _08065FE8 adds r0, r1 ldrb r0, [r0] bl sub_8090148 lsls r0, 24 cmp r0, 0 bne _08065FF0 ldr r0, _08065FEC b _08065FFE .align 2, 0 _08065FE0: .4byte 0xfffff608 _08065FE4: .4byte gUnknown_203B418 _08065FE8: .4byte 0x00000644 _08065FEC: .4byte gUnknown_80FA5F4 _08065FF0: ldr r0, [r4] ldr r2, _0806600C adds r0, r2 ldrb r0, [r0] cmp r0, 0 beq _08066014 ldr r0, _08066010 _08065FFE: ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage b _08066194 .align 2, 0 _0806600C: .4byte 0x0000065d _08066010: .4byte gUnknown_80FA61C _08066014: mov r0, sp bl sub_80664FC ldr r6, _08066130 _0806601C: movs r0, 0 mov r8, r0 mov r1, r10 lsls r0, r1, 2 add r0, r10 lsls r0, 6 subs r0, r1 lsls r0, 2 add r0, sp mov r9, r0 ldr r0, _08066134 strb r1, [r0, 0x1] ldr r0, _08066138 movs r1, 0x1 bl sub_803ECB4 mov r2, r8 strh r2, [r6, 0x1A] strh r2, [r6, 0x18] strh r2, [r6, 0x1C] mov r0, r10 strh r0, [r6, 0x1E] movs r0, 0x2 strh r0, [r6, 0x20] strh r2, [r6, 0x4] movs r0, 0x10 strh r0, [r6, 0x6] strh r2, [r6, 0x14] mov r1, r8 str r1, [r6] adds r0, r6, 0 adds r0, 0x28 bl sub_801317C ldr r0, _0806613C mov r2, r8 str r2, [r0] movs r1, 0 ldr r0, _08066140 strb r1, [r0] mov r0, r9 mov r1, r10 bl sub_80661AC ldr r1, _08066144 movs r2, 0 ldrsh r0, [r1, r2] adds r0, 0x10 lsls r0, 3 strh r0, [r6, 0xC] movs r2, 0x2 ldrsh r0, [r1, r2] adds r0, 0x1 lsls r0, 3 subs r0, 0x2 strh r0, [r6, 0xE] _0806608C: movs r5, 0 ldr r0, _08066140 strb r5, [r0] movs r0, 0 ldr r1, _08066148 bl sub_8014140 adds r4, r0, 0 mov r0, r9 adds r1, r4, 0 bl sub_8066288 lsls r0, 24 lsrs r0, 24 negs r1, r0 orrs r1, r0 lsrs r5, r1, 31 mov r0, r9 adds r1, r4, 0 bl sub_8066358 lsls r0, 24 cmp r0, 0 beq _080660BE movs r5, 0x1 _080660BE: cmp r5, 0 bne _080660CE ldr r0, _08066130 bl AddMenuCursorSprite movs r0, 0x45 bl sub_803E46C _080660CE: ldr r2, _08066140 ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080660E2 movs r0, 0x1 movs r1, 0x8 bl sub_8066434 _080660E2: ldr r0, _08066140 ldrb r1, [r0] movs r7, 0x2 adds r0, r7, 0 ands r0, r1 cmp r0, 0 beq _080660F8 movs r0, 0 movs r1, 0x70 bl sub_8066434 _080660F8: ldr r5, _0806614C ldrh r1, [r5, 0x2] movs r0, 0x30 ands r0, r1 cmp r0, 0 bne _0806611A ldr r4, _08066130 adds r0, r4, 0 adds r0, 0x2C ldrb r0, [r0] cmp r0, 0 bne _0806611A adds r0, r4, 0 adds r0, 0x2B ldrb r0, [r0] cmp r0, 0 beq _08066150 _0806611A: movs r0, 0 bl sub_8083CE0 movs r0, 0 mov r1, r10 cmp r1, 0 bne _0806612A movs r0, 0x1 _0806612A: mov r10, r0 b _08066184 .align 2, 0 _08066130: .4byte gUnknown_202EE10 _08066134: .4byte gUnknown_203B43C _08066138: .4byte gUnknown_8106D08 _0806613C: .4byte gUnknown_202F2F8 _08066140: .4byte gUnknown_202F2FC _08066144: .4byte gUnknown_2027370 _08066148: .4byte gUnknown_8106D68 _0806614C: .4byte gUnknown_20255F0 _08066150: bl sub_80048C8 lsls r0, 24 cmp r0, 0 bne _0806608C ldrh r1, [r5, 0x2] adds r0, r7, 0 ands r0, r1 cmp r0, 0 bne _0806616E adds r0, r4, 0 adds r0, 0x2A ldrb r0, [r0] cmp r0, 0 beq _08066174 _0806616E: bl sub_8083D30 b _0806618C _08066174: movs r0, 0xC ands r0, r1 cmp r0, 0 beq _0806608C bl sub_8083D08 movs r2, 0x1 mov r8, r2 _08066184: mov r0, r8 cmp r0, 0 bne _0806618C b _0806601C _0806618C: movs r0, 0 movs r1, 0 bl sub_803EAF0 _08066194: ldr r3, _080661A8 add sp, r3 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080661A8: .4byte 0x000009f8 thumb_func_end sub_8065FB4 thumb_func_start sub_80661AC sub_80661AC: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x44 adds r6, r0, 0 adds r5, r1, 0 ldr r0, _080661DC ldr r4, [r0] movs r0, 0x20 mov r8, r0 movs r0, 0 bl sub_80073B8 cmp r5, 0 bne _080661E4 ldr r0, _080661E0 ldr r2, [r0] str r5, [sp] movs r0, 0xC movs r1, 0 movs r3, 0 bl xxx_call_draw_string b _080661F6 .align 2, 0 _080661DC: .4byte gUnknown_202F2F8 _080661E0: .4byte gUnknown_80FEA68 _080661E4: ldr r0, _08066254 ldr r2, [r0] movs r0, 0 str r0, [sp] movs r0, 0x14 movs r1, 0 movs r3, 0 bl xxx_call_draw_string _080661F6: movs r1, 0x9F lsls r1, 3 adds r0, r6, r1 ldr r1, [r0] cmp r1, 0 beq _08066260 movs r7, 0x7 lsls r0, r4, 1 adds r5, r0, r6 _08066208: cmp r4, 0 blt _08066244 movs r1, 0x9F lsls r1, 3 adds r0, r6, r1 ldr r0, [r0] cmp r4, r0 bge _08066244 movs r1, 0xD4 lsls r1, 2 adds r0, r6, r1 adds r0, r4 ldrb r2, [r0] add r0, sp, 0x4 ldr r1, _08066258 bl sub_800D158 movs r0, 0 ldrsh r1, [r5, r0] ldr r0, _0806625C bl sub_808D930 movs r0, 0 str r0, [sp] movs r0, 0x8 mov r1, r8 add r2, sp, 0x4 movs r3, 0 bl sub_8014FF0 _08066244: subs r7, 0x1 adds r5, 0x2 adds r4, 0x1 movs r1, 0xC add r8, r1 cmp r7, 0 bge _08066208 b _08066270 .align 2, 0 _08066254: .4byte gUnknown_80FEA80 _08066258: .4byte gUnknown_8106D8C _0806625C: .4byte gUnknown_202DF98 _08066260: ldr r0, _08066284 ldr r2, [r0] str r1, [sp] movs r0, 0x8 mov r1, r8 movs r3, 0 bl xxx_call_draw_string _08066270: movs r0, 0 bl sub_80073E0 add sp, 0x44 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08066284: .4byte gUnknown_80FEA8C thumb_func_end sub_80661AC thumb_func_start sub_8066288 sub_8066288: push {r4,r5,lr} sub sp, 0x44 adds r5, r0, 0 adds r3, r1, 0 ldr r0, _080662B8 ldr r4, [r0] cmp r4, 0 beq _080662B4 subs r4, 0x1 ldr r2, _080662BC ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 strb r0, [r2] ldr r0, _080662C0 ldrh r1, [r0, 0x4] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _080662C4 cmp r3, 0x1 beq _080662C4 _080662B4: movs r0, 0 b _0806633E .align 2, 0 _080662B8: .4byte gUnknown_202F2F8 _080662BC: .4byte gUnknown_202F2FC _080662C0: .4byte gUnknown_20255F0 _080662C4: movs r0, 0 bl sub_8083CE0 movs r0, 0 bl sub_80073B8 movs r0, 0x10 str r0, [sp] movs r0, 0 movs r1, 0 movs r2, 0x10 movs r3, 0x90 bl sub_80087EC ldr r1, _08066348 movs r2, 0xD4 lsls r2, 2 adds r0, r5, r2 adds r0, r4 ldrb r2, [r0] add r0, sp, 0x4 bl sub_800D158 ldr r0, _0806634C lsls r1, r4, 1 adds r1, r5, r1 movs r2, 0 ldrsh r1, [r1, r2] bl sub_808D930 movs r0, 0 str r0, [sp] movs r0, 0x8 movs r1, 0x14 add r2, sp, 0x4 movs r3, 0 bl sub_8014FF0 movs r0, 0 bl sub_80073E0 movs r0, 0x45 bl sub_803E46C ldr r5, _08066350 movs r4, 0x5 _08066320: ldr r1, [r5] movs r0, 0 bl _call_via_r1 movs r0, 0x45 bl sub_803E46C subs r4, 0x1 cmp r4, 0 bge _08066320 ldr r1, _08066354 ldr r0, [r1] subs r0, 0x1 str r0, [r1] movs r0, 0x1 _0806633E: add sp, 0x44 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08066348: .4byte gUnknown_8106D8C _0806634C: .4byte gUnknown_202DF98 _08066350: .4byte gUnknown_203B084 _08066354: .4byte gUnknown_202F2F8 thumb_func_end sub_8066288 thumb_func_start sub_8066358 sub_8066358: push {r4-r6,lr} sub sp, 0x44 adds r5, r0, 0 adds r3, r1, 0 ldr r0, _08066394 ldr r0, [r0] adds r4, r0, 0 adds r4, 0x8 movs r6, 0x80 movs r1, 0x9F lsls r1, 3 adds r0, r5, r1 ldr r0, [r0] cmp r0, r4 ble _08066390 ldr r2, _08066398 ldrb r0, [r2] movs r1, 0x2 orrs r0, r1 strb r0, [r2] ldr r0, _0806639C ldrh r1, [r0, 0x4] adds r0, r6, 0 ands r0, r1 cmp r0, 0 bne _080663A0 cmp r3, 0x2 beq _080663A0 _08066390: movs r0, 0 b _0806641A .align 2, 0 _08066394: .4byte gUnknown_202F2F8 _08066398: .4byte gUnknown_202F2FC _0806639C: .4byte gUnknown_20255F0 _080663A0: movs r0, 0 bl sub_8083CE0 movs r0, 0 bl sub_80073B8 movs r0, 0x10 str r0, [sp] movs r0, 0 movs r1, 0 adds r2, r6, 0 movs r3, 0x48 bl sub_80087EC ldr r1, _08066424 movs r2, 0xD4 lsls r2, 2 adds r0, r5, r2 adds r0, r4 ldrb r2, [r0] add r0, sp, 0x4 bl sub_800D158 ldr r0, _08066428 lsls r1, r4, 1 adds r1, r5, r1 movs r2, 0 ldrsh r1, [r1, r2] bl sub_808D930 movs r0, 0 str r0, [sp] movs r0, 0x8 adds r1, r6, 0 add r2, sp, 0x4 movs r3, 0 bl sub_8014FF0 movs r0, 0 bl sub_80073E0 movs r0, 0xD bl sub_803E46C ldr r5, _0806642C movs r4, 0x5 _080663FC: ldr r1, [r5] movs r0, 0 bl _call_via_r1 movs r0, 0xD bl sub_803E46C subs r4, 0x1 cmp r4, 0 bge _080663FC ldr r1, _08066430 ldr r0, [r1] adds r0, 0x1 str r0, [r1] movs r0, 0x1 _0806641A: add sp, 0x44 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08066424: .4byte gUnknown_8106D8C _08066428: .4byte gUnknown_202DF98 _0806642C: .4byte gUnknown_203B080 _08066430: .4byte gUnknown_202F2F8 thumb_func_end sub_8066358 thumb_func_start sub_8066434 sub_8066434: push {r4-r7,lr} mov r12, r1 lsls r0, 24 lsrs r2, r0, 24 ldr r7, _080664C8 ldr r0, _080664CC ldr r0, [r0] movs r1, 0x8 ands r0, r1 cmp r0, 0 bne _080664C0 ldr r0, _080664D0 ldrh r1, [r0] ldr r3, _080664D4 ands r3, r1 ldr r1, _080664D8 ands r3, r1 ldr r1, _080664DC ands r3, r1 ldr r1, _080664E0 ands r3, r1 ldr r1, _080664E4 ands r3, r1 negs r1, r2 orrs r1, r2 asrs r1, 31 movs r2, 0x80 lsls r2, 6 ands r2, r1 ldrh r1, [r0, 0x2] ldr r4, _080664E8 ands r4, r1 orrs r4, r2 movs r5, 0xF ldr r2, _080664EC movs r6, 0x2 ldrsh r1, [r7, r6] lsls r1, 3 add r1, r12 ands r1, r2 lsls r1, 4 ldrh r2, [r0, 0x6] ands r5, r2 orrs r5, r1 strh r5, [r0, 0x6] movs r2, 0 ldrsh r1, [r7, r2] lsls r1, 3 adds r1, 0x40 ldr r2, _080664F0 ands r1, r2 movs r2, 0xFE lsls r2, 8 ands r4, r2 orrs r4, r1 movs r2, 0x80 lsls r2, 7 ldr r1, _080664F4 ands r3, r1 orrs r3, r2 strh r3, [r0] ands r4, r1 strh r4, [r0, 0x2] ldr r1, _080664F8 strh r1, [r0, 0x4] movs r1, 0x7F movs r2, 0 movs r3, 0 bl AddSprite _080664C0: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080664C8: .4byte gUnknown_2027370 _080664CC: .4byte gUnknown_202EDCC _080664D0: .4byte gUnknown_202F300 _080664D4: .4byte 0x0000feff _080664D8: .4byte 0x0000fdff _080664DC: .4byte 0x0000f3ff _080664E0: .4byte 0x0000efff _080664E4: .4byte 0x0000dfff _080664E8: .4byte 0x0000c1ff _080664EC: .4byte 0x00000fff _080664F0: .4byte 0x000001ff _080664F4: .4byte 0x00003fff _080664F8: .4byte 0x0000f3f0 thumb_func_end sub_8066434 thumb_func_start sub_80664FC sub_80664FC: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C0 str r0, [sp, 0x1A8] movs r7, 0 ldr r2, _08066604 ldr r3, _08066608 movs r1, 0 _08066512: mov r4, sp adds r0, r4, r7 strb r1, [r0] adds r7, 0x1 cmp r7, r2 ble _08066512 movs r4, 0 adds r1, r3, 0 ldr r0, [r3] ldr r7, _0806660C adds r0, r7 ldr r0, [r0] cmp r4, r0 bge _08066578 ldr r6, _08066610 _08066530: movs r5, 0x1 ldr r2, [r1] lsls r0, r4, 3 adds r0, r2, r0 ldr r7, _08066614 adds r1, r0, r7 movs r7, 0 ldrsh r1, [r1, r7] movs r7, 0xD1 lsls r7, 6 adds r0, r7 movs r7, 0 ldrsh r0, [r0, r7] cmp r1, 0 bne _08066554 cmp r0, 0 beq _08066566 movs r5, 0x2 _08066554: adds r0, r2, r6 str r3, [sp, 0x1BC] bl sub_808E9B8 lsls r0, 16 asrs r0, 16 add r0, sp strb r5, [r0] ldr r3, [sp, 0x1BC] _08066566: adds r6, 0x8 adds r4, 0x1 ldr r1, _08066608 ldr r0, [r1] ldr r2, _0806660C adds r0, r2 ldr r0, [r0] cmp r4, r0 blt _08066530 _08066578: ldr r0, [r3] ldr r4, _08066618 adds r0, r4 ldrb r0, [r0] cmp r0, 0 beq _0806658A add r1, sp, 0x17C movs r0, 0x1 strb r0, [r1] _0806658A: movs r0, 0x5 _0806658C: subs r0, 0x1 cmp r0, 0 bge _0806658C movs r7, 0 _08066594: movs r0, 0 mov r8, r0 movs r1, 0x1 adds r2, r7, 0x1 str r2, [sp, 0x1AC] lsls r4, r7, 2 str r4, [sp, 0x1B0] _080665A2: lsls r0, r1, 16 asrs r6, r0, 16 movs r0, 0x7 mov r10, r0 movs r2, 0 mov r9, r2 mov r4, sp adds r0, r4, r6 ldrb r0, [r0] adds r1, 0x1 str r1, [sp, 0x1B4] cmp r0, 0 bne _080665BE b _08066704 _080665BE: cmp r7, 0 bne _08066620 adds r0, r6, 0 bl sub_806F9BC lsls r0, 24 cmp r0, 0 bne _080665D0 b _08066704 _080665D0: adds r0, r6, 0 bl sub_80981DC lsls r0, 24 cmp r0, 0 bne _080665DE b _08066704 _080665DE: adds r0, r6, 0 bl sub_808DCC0 lsls r0, 16 ldr r1, _0806661C cmp r0, r1 bne _080665EE b _08066704 _080665EE: cmp r6, 0x97 bne _0806669E movs r0, 0x7A bl sub_80860A8 lsls r0, 24 cmp r0, 0 bne _08066600 b _08066704 _08066600: b _0806669E .align 2, 0 _08066604: .4byte 0x000001a7 _08066608: .4byte gUnknown_203B418 _0806660C: .4byte 0x000037e4 _08066610: .4byte 0x0000343c _08066614: .4byte 0x0000343e _08066618: .4byte 0x0000066e _0806661C: .4byte 0xfc190000 _08066620: movs r5, 0 ldr r0, _080666CC ldr r2, [r0] movs r4, 0x1 movs r3, 0xCE lsls r3, 1 _0806662C: ldrb r1, [r2] adds r0, r4, 0 ands r0, r1 cmp r0, 0 beq _0806663E movs r1, 0x8 ldrsh r0, [r2, r1] cmp r0, r6 beq _08066646 _0806663E: adds r2, 0x58 adds r5, 0x1 cmp r5, r3 ble _0806662C _08066646: ldr r0, _080666D0 cmp r5, r0 beq _08066650 movs r2, 0x1 mov r9, r2 _08066650: mov r4, r9 cmp r4, 0 bne _0806669E movs r5, 0 ldr r2, _080666CC _0806665A: movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, _080666D4 adds r1, r0 ldr r0, [r2] adds r4, r0, r1 ldrb r1, [r4] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0806668C movs r1, 0xA ldrsh r0, [r4, r1] str r2, [sp, 0x1B8] bl sub_806A564 lsls r0, 24 ldr r2, [sp, 0x1B8] cmp r0, 0 bne _0806668C movs r1, 0xE ldrsh r0, [r4, r1] cmp r0, r6 beq _08066692 _0806668C: adds r5, 0x1 cmp r5, 0x3 ble _0806665A _08066692: cmp r5, 0x4 beq _0806669E movs r2, 0x1 mov r9, r2 movs r4, 0x6 mov r10, r4 _0806669E: cmp r7, 0 bne _080666D8 mov r1, sp adds r0, r1, r6 ldrb r0, [r0] cmp r0, 0x2 bne _080666B0 movs r2, 0x2 mov r10, r2 _080666B0: mov r4, r8 lsls r0, r4, 1 ldr r1, [sp, 0x1A8] adds r0, r1, r0 strh r6, [r0] movs r2, 0xD4 lsls r2, 2 adds r0, r1, r2 add r0, r8 mov r4, r10 strb r4, [r0] movs r0, 0x1 add r8, r0 b _08066704 .align 2, 0 _080666CC: .4byte gUnknown_203B45C _080666D0: .4byte 0x0000019d _080666D4: .4byte 0x00008df8 _080666D8: mov r1, r9 cmp r1, 0 beq _08066704 ldr r2, [sp, 0x1B0] adds r0, r2, r7 lsls r0, 6 subs r0, r7 lsls r0, 2 ldr r4, [sp, 0x1A8] adds r0, r4 mov r2, r8 lsls r1, r2, 1 adds r1, r0, r1 strh r6, [r1] movs r4, 0xD4 lsls r4, 2 adds r0, r4 add r0, r8 mov r1, r10 strb r1, [r0] movs r2, 0x1 add r8, r2 _08066704: ldr r1, [sp, 0x1B4] ldr r0, _08066740 cmp r1, r0 bgt _0806670E b _080665A2 _0806670E: ldr r4, [sp, 0x1B0] adds r0, r4, r7 lsls r0, 6 subs r0, r7 lsls r0, 2 ldr r7, [sp, 0x1A8] adds r0, r7 movs r1, 0x9F lsls r1, 3 adds r0, r1 mov r2, r8 str r2, [r0] ldr r7, [sp, 0x1AC] cmp r7, 0x1 bgt _0806672E b _08066594 _0806672E: add sp, 0x1C0 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08066740: .4byte 0x000001a3 thumb_func_end sub_80664FC thumb_func_start sub_8066744 sub_8066744: push {lr} ldr r1, [r0, 0x70] adds r1, 0x48 movs r2, 0x1 strb r2, [r1] adds r0, 0x4 movs r1, 0 bl sub_8045DB4 pop {r0} bx r0 thumb_func_end sub_8066744 thumb_func_start sub_806675C sub_806675C: push {r4-r7,lr} adds r5, r0, 0 lsls r1, 24 lsrs r7, r1, 24 movs r1, 0 movs r2, 0xFE bl sub_8044D90 adds r4, r0, 0 movs r3, 0 ldr r6, _080667C0 _08066772: lsls r1, r3, 2 ldr r0, [r6] adds r1, r0, r1 ldrb r2, [r1] movs r0, 0x1 ands r0, r2 cmp r0, 0 beq _08066798 movs r0, 0x10 ands r0, r2 cmp r0, 0 beq _08066798 movs r0, 0x8 ands r0, r2 cmp r0, 0 bne _080667EC movs r0, 0xEF ands r0, r2 strb r0, [r1] _08066798: adds r3, 0x1 cmp r3, 0x13 ble _08066772 ldr r0, _080667C4 adds r1, r4, 0 bl sub_8045BF8 ldr r0, _080667C8 bl sub_8083E38 cmp r7, 0 beq _08066812 ldrb r1, [r4] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _080667D0 ldr r0, _080667CC b _080667DE .align 2, 0 _080667C0: .4byte gUnknown_203B460 _080667C4: .4byte gUnknown_202DE58 _080667C8: .4byte 0x00000133 _080667CC: .4byte gUnknown_80F8D04 _080667D0: ldrb r0, [r4, 0x2] bl sub_8090BD0 lsls r0, 24 cmp r0, 0 bne _08066808 ldr r0, _080667E8 _080667DE: ldr r1, [r0] adds r0, r5, 0 bl sub_80522A8 b _08066812 .align 2, 0 _080667E8: .4byte gUnknown_80F8CE4 _080667EC: ldr r0, _08066800 bl sub_8045BF8 ldr r0, _08066804 ldr r1, [r0] adds r0, r5, 0 bl sub_80522A8 b _08066838 .align 2, 0 _08066800: .4byte gUnknown_202DE58 _08066804: .4byte gUnknown_80F8C7C _08066808: ldr r0, _08066840 ldr r1, [r0] adds r0, r5, 0 bl sub_80522A8 _08066812: ldrb r0, [r4] movs r1, 0x10 orrs r1, r0 strb r1, [r4] movs r0, 0x8 ands r1, r0 cmp r1, 0 beq _08066838 cmp r7, 0 beq _08066838 ldr r0, _08066844 adds r1, r4, 0 bl sub_8045BF8 ldr r0, _08066848 ldr r1, [r0] adds r0, r5, 0 bl sub_80522A8 _08066838: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08066840: .4byte gUnknown_80F8CE8 _08066844: .4byte gUnknown_202DE58 _08066848: .4byte gUnknown_80F8BE0 thumb_func_end sub_806675C thumb_func_start sub_806684C sub_806684C: push {r4-r6,lr} adds r5, r0, 0 lsls r1, 24 lsrs r6, r1, 24 movs r4, 0 _08066856: ldr r0, _0806688C lsls r1, r4, 2 ldr r0, [r0] adds r1, r0, r1 ldrb r2, [r1] movs r0, 0x1 ands r0, r2 cmp r0, 0 beq _080668B8 movs r0, 0x10 ands r0, r2 cmp r0, 0 beq _080668B8 movs r0, 0x8 ands r0, r2 cmp r0, 0 beq _08066898 ldr r0, _08066890 bl sub_8045BF8 ldr r0, _08066894 ldr r1, [r0] adds r0, r5, 0 bl sub_80522A8 b _080668BE .align 2, 0 _0806688C: .4byte gUnknown_203B460 _08066890: .4byte gUnknown_202DE58 _08066894: .4byte gUnknown_80F8C7C _08066898: movs r0, 0xEF ands r0, r2 strb r0, [r1] ldr r0, _080668C4 bl sub_8045BF8 ldr r0, _080668C8 bl sub_8083E38 cmp r6, 0 beq _080668B8 ldr r0, _080668CC ldr r1, [r0] adds r0, r5, 0 bl sub_80522A8 _080668B8: adds r4, 0x1 cmp r4, 0x13 ble _08066856 _080668BE: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080668C4: .4byte gUnknown_202DE58 _080668C8: .4byte 0x00000133 _080668CC: .4byte gUnknown_80F8D20 thumb_func_end sub_806684C thumb_func_start sub_80668D0 sub_80668D0: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0xC adds r6, r0, 0 movs r1, 0x1 bl sub_8044DA4 mov r8, r0 ldr r4, [r6, 0x70] ldr r7, [r0, 0x70] adds r0, r6, 0 movs r1, 0 movs r2, 0x2 bl sub_8044D90 adds r5, r0, 0 adds r4, 0x48 ldrb r0, [r4] movs r1, 0 mov r9, r1 cmp r0, 0x80 bne _08066904 movs r2, 0x1 mov r9, r2 _08066904: mov r0, r9 cmp r0, 0 bne _08066928 ldrb r1, [r5] movs r0, 0x18 ands r0, r1 cmp r0, 0x18 bne _08066928 ldr r0, _08066920 adds r1, r5, 0 bl sub_8045BF8 ldr r0, _08066924 b _08066950 .align 2, 0 _08066920: .4byte gUnknown_202DEA8 _08066924: .4byte gUnknown_80F8C44 _08066928: ldr r0, _0806695C mov r1, r8 movs r2, 0 bl sub_8045B94 adds r1, r7, 0 adds r1, 0x60 ldrb r2, [r1] movs r0, 0x1 ands r0, r2 cmp r0, 0 beq _08066A04 movs r0, 0x8 ands r0, r2 cmp r0, 0 beq _08066968 ldr r0, _08066960 bl sub_8045BF8 ldr r0, _08066964 _08066950: ldr r1, [r0] adds r0, r6, 0 bl sub_80522A8 b _08066A96 .align 2, 0 _0806695C: .4byte gUnknown_202DFE8 _08066960: .4byte gUnknown_202DEA8 _08066964: .4byte gUnknown_80F8C40 _08066968: ldr r1, [r7, 0x60] str r1, [sp] ldr r2, [r5] str r2, [sp, 0x4] movs r4, 0xEF mov r0, sp ldrb r0, [r0] ands r0, r4 ldr r3, _080669A8 ands r1, r3 orrs r1, r0 str r1, [sp] add r5, sp, 0x4 ldrb r0, [r5] ands r0, r4 ands r2, r3 orrs r2, r0 str r2, [sp, 0x4] adds r0, r6, 0 movs r1, 0 movs r2, 0x64 bl sub_8044DF0 mov r1, r9 cmp r1, 0 beq _080669AC adds r0, r6, 0x4 mov r1, sp movs r2, 0x1 bl sub_80460F8 b _080669B2 .align 2, 0 _080669A8: .4byte 0xffffff00 _080669AC: mov r0, sp bl sub_8091290 _080669B2: ldr r0, [sp, 0x4] str r0, [r7, 0x60] ldr r4, _080669F4 adds r0, r4, 0 adds r1, r5, 0 bl sub_8045BF8 adds r4, 0x50 adds r0, r4, 0 mov r1, sp bl sub_8045BF8 ldr r0, _080669F8 bl sub_8083E38 ldr r0, _080669FC ldr r1, [r0] adds r0, r6, 0 bl sub_80522A8 add r0, sp, 0x4 ldrb r1, [r0] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08066A52 ldr r0, _08066A00 ldr r1, [r0] adds r0, r6, 0 bl sub_80522A8 b _08066A52 .align 2, 0 _080669F4: .4byte gUnknown_202DE58 _080669F8: .4byte 0x0000014d _080669FC: .4byte gUnknown_80F8CA8 _08066A00: .4byte gUnknown_80F8BE0 _08066A04: ldr r2, [r5] str r2, [sp, 0x8] movs r1, 0xEF add r4, sp, 0x8 ldrb r0, [r4] ands r0, r1 ldr r1, _08066AA4 ands r2, r1 orrs r2, r0 str r2, [sp, 0x8] adds r0, r6, 0 movs r1, 0 movs r2, 0x65 bl sub_8044DF0 ldr r0, [sp, 0x8] str r0, [r7, 0x60] ldr r0, _08066AA8 adds r1, r4, 0 bl sub_8045BF8 ldr r0, _08066AAC bl sub_8083E38 ldr r0, _08066AB0 ldr r1, [r0] adds r0, r6, 0 bl sub_80522A8 ldrb r1, [r4] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08066A52 ldr r0, _08066AB4 ldr r1, [r0] adds r0, r6, 0 bl sub_80522A8 _08066A52: mov r0, r8 bl sub_806A6E8 mov r1, r8 adds r1, 0x4 mov r0, r8 bl sub_80706A4 lsls r0, 24 cmp r0, 0 beq _08066A74 adds r0, r6, 0 mov r1, r8 movs r2, 0 movs r3, 0 bl sub_807D148 _08066A74: ldrb r0, [r7, 0x7] cmp r0, 0 bne _08066A86 ldrh r1, [r7] movs r2, 0x80 lsls r2, 7 adds r0, r2, 0 orrs r0, r1 strh r0, [r7] _08066A86: ldr r0, _08066AB8 ldr r0, [r0] ldr r1, _08066ABC adds r0, r1 ldrb r1, [r0] adds r0, r6, 0 bl sub_807AB38 _08066A96: add sp, 0xC pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08066AA4: .4byte 0xffffff00 _08066AA8: .4byte gUnknown_202DE58 _08066AAC: .4byte 0x0000014d _08066AB0: .4byte gUnknown_80F8D44 _08066AB4: .4byte gUnknown_80F8BE0 _08066AB8: .4byte gUnknown_203B418 _08066ABC: .4byte 0x00003a08 thumb_func_end sub_80668D0 thumb_func_start sub_8066AC0 sub_8066AC0: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r7, r0, 0 movs r1, 0 bl sub_8044DA4 adds r6, r0, 0 ldr r2, [r6, 0x70] mov r8, r2 adds r5, r2, 0 adds r5, 0x60 ldr r0, _08066AF0 ldr r0, [r0] adds r0, 0x4C ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08066AF8 ldr r0, _08066AF4 b _08066B10 .align 2, 0 _08066AF0: .4byte gUnknown_203B460 _08066AF4: .4byte gUnknown_80F8D60 _08066AF8: ldrb r1, [r5] movs r0, 0x8 ands r0, r1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _08066B24 ldr r0, _08066B1C adds r1, r5, 0 bl sub_8045BF8 ldr r0, _08066B20 _08066B10: ldr r1, [r0] adds r0, r7, 0 bl sub_80522A8 b _08066BAC .align 2, 0 _08066B1C: .4byte gUnknown_202DE58 _08066B20: .4byte gUnknown_80F8BE0 _08066B24: ldr r2, [r2, 0x60] str r2, [sp] movs r1, 0xEF mov r0, sp ldrb r0, [r0] ands r0, r1 ldr r1, _08066BB8 ands r2, r1 orrs r2, r0 str r2, [sp] ldr r0, _08066BBC mov r1, sp bl sub_8045BF8 ldr r0, _08066BC0 adds r1, r6, 0 movs r2, 0 bl sub_8045B94 strb r4, [r5, 0x2] strb r4, [r5, 0x1] strb r4, [r5] mov r0, sp bl sub_8091290 ldr r0, _08066BC4 bl sub_8083E38 ldr r0, _08066BC8 ldr r1, [r0] adds r0, r7, 0 bl sub_80522A8 adds r0, r6, 0 bl sub_806A6E8 adds r1, r6, 0x4 adds r0, r6, 0 bl sub_80706A4 lsls r0, 24 cmp r0, 0 beq _08066B86 adds r0, r7, 0 adds r1, r6, 0 movs r2, 0 movs r3, 0 bl sub_807D148 _08066B86: mov r1, r8 ldrb r0, [r1, 0x7] cmp r0, 0 bne _08066B9C ldrh r1, [r1] movs r2, 0x80 lsls r2, 7 adds r0, r2, 0 orrs r0, r1 mov r1, r8 strh r0, [r1] _08066B9C: ldr r0, _08066BCC ldr r0, [r0] ldr r2, _08066BD0 adds r0, r2 ldrb r1, [r0] adds r0, r7, 0 bl sub_807AB38 _08066BAC: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08066BB8: .4byte 0xffffff00 _08066BBC: .4byte gUnknown_202DE58 _08066BC0: .4byte gUnknown_202DF98 _08066BC4: .4byte 0x0000014d _08066BC8: .4byte gUnknown_80F8D7C _08066BCC: .4byte gUnknown_203B418 _08066BD0: .4byte 0x00003a08 thumb_func_end sub_8066AC0 thumb_func_start sub_8066BD4 sub_8066BD4: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r7, r0, 0 movs r1, 0 bl sub_8044DA4 mov r9, r0 ldr r0, [r0, 0x70] mov r8, r0 mov r10, r8 mov r6, r8 adds r6, 0x60 ldr r2, _08066C10 adds r0, r7, 0 movs r1, 0x1 bl sub_8044D90 adds r5, r0, 0 ldrb r2, [r6] movs r0, 0x8 ands r0, r2 cmp r0, 0 beq _08066C18 ldr r0, _08066C14 adds r1, r6, 0 b _08066C26 .align 2, 0 _08066C10: .4byte 0x00001565 _08066C14: .4byte gUnknown_202DE58 _08066C18: ldrb r1, [r5] movs r0, 0x18 ands r0, r1 cmp r0, 0x18 bne _08066C40 ldr r0, _08066C38 adds r1, r5, 0 _08066C26: bl sub_8045BF8 ldr r0, _08066C3C ldr r1, [r0] adds r0, r7, 0 bl sub_80522A8 b _08066CC8 .align 2, 0 _08066C38: .4byte gUnknown_202DE58 _08066C3C: .4byte gUnknown_80F8BE0 _08066C40: movs r1, 0xEF adds r0, r1, 0 ands r0, r2 strb r0, [r6] ldrb r0, [r5] ands r1, r0 strb r1, [r5] ldr r4, _08066CD8 adds r0, r4, 0 adds r1, r6, 0 bl sub_8045BF8 adds r4, 0x50 adds r0, r4, 0 adds r1, r5, 0 bl sub_8045BF8 ldr r0, _08066CDC mov r1, r9 movs r2, 0 bl sub_8045B94 mov r2, r8 ldr r1, [r2, 0x60] ldr r0, [r5] str r0, [r2, 0x60] str r1, [r5] ldr r0, _08066CE0 bl sub_8083E38 ldr r0, _08066CE4 ldr r1, [r0] adds r0, r7, 0 bl sub_80522A8 mov r1, r9 adds r1, 0x4 mov r0, r9 bl sub_80706A4 lsls r0, 24 cmp r0, 0 beq _08066CA2 adds r0, r7, 0 mov r1, r9 movs r2, 0 movs r3, 0 bl sub_807D148 _08066CA2: mov r1, r10 ldrb r0, [r1, 0x7] cmp r0, 0 bne _08066CB8 ldrh r1, [r1] movs r2, 0x80 lsls r2, 7 adds r0, r2, 0 orrs r0, r1 mov r1, r10 strh r0, [r1] _08066CB8: ldr r0, _08066CE8 ldr r0, [r0] ldr r2, _08066CEC adds r0, r2 ldrb r1, [r0] adds r0, r7, 0 bl sub_807AB38 _08066CC8: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08066CD8: .4byte gUnknown_202DE58 _08066CDC: .4byte gUnknown_202DFE8 _08066CE0: .4byte 0x0000014d _08066CE4: .4byte gUnknown_80F8DB4 _08066CE8: .4byte gUnknown_203B418 _08066CEC: .4byte 0x00003a08 thumb_func_end sub_8066BD4 thumb_func_start sub_8066CF0 sub_8066CF0: push {lr} movs r1, 0 bl sub_8044DA4 ldr r0, [r0, 0x70] adds r0, 0xFC movs r1, 0x1 strb r1, [r0] pop {r0} bx r0 thumb_func_end sub_8066CF0 thumb_func_start sub_8066D04 sub_8066D04: push {r4-r6,lr} adds r4, r0, 0 ldr r6, [r4, 0x70] movs r1, 0 movs r2, 0x4 bl sub_8044D90 adds r5, r0, 0 ldr r0, _08066D2C adds r1, r5, 0 bl sub_8045BF8 adds r0, r6, 0 adds r0, 0x48 ldrb r0, [r0] cmp r0, 0x80 bne _08066D34 ldr r0, _08066D30 b _08066DB2 .align 2, 0 _08066D2C: .4byte gUnknown_202DE58 _08066D30: .4byte gUnknown_80F8DE0 _08066D34: cmp r0, 0x14 bhi _08066D4C ldrb r1, [r5] movs r0, 0x18 ands r0, r1 cmp r0, 0x18 bne _08066D4C ldr r0, _08066D48 b _08066DB2 .align 2, 0 _08066D48: .4byte gUnknown_80F8BE0 _08066D4C: adds r0, r6, 0 adds r0, 0x48 ldrb r0, [r0] cmp r0, 0x81 bne _08066D68 ldrb r1, [r5] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08066D68 ldr r0, _08066D64 b _08066DB2 .align 2, 0 _08066D64: .4byte gUnknown_80F8BE0 _08066D68: movs r1, 0x4 ldrsh r0, [r4, r1] movs r2, 0x6 ldrsh r1, [r4, r2] bl sub_804954C adds r2, r0, 0 ldrh r1, [r2] movs r0, 0x80 lsls r0, 2 ands r0, r1 cmp r0, 0 bne _08066DB0 movs r0, 0x3 ands r0, r1 cmp r0, 0x1 bne _08066DB0 ldr r6, [r2, 0x14] cmp r6, 0 bne _08066DB0 ldrb r1, [r5] movs r0, 0xEF ands r0, r1 strb r0, [r5] ldr r0, _08066DBC adds r1, r5, 0 bl sub_8045BF8 adds r0, r4, 0x4 adds r1, r5, 0 movs r2, 0x1 bl sub_80460F8 lsls r0, 24 cmp r0, 0 bne _08066DC4 _08066DB0: ldr r0, _08066DC0 _08066DB2: ldr r1, [r0] adds r0, r4, 0 bl sub_80522A8 b _08066DF8 .align 2, 0 _08066DBC: .4byte gUnknown_202DE58 _08066DC0: .4byte gUnknown_80F8E04 _08066DC4: strb r6, [r5, 0x2] strb r6, [r5, 0x1] strb r6, [r5] bl sub_80910B4 ldr r0, _08066E00 bl sub_8083E38 ldr r0, _08066E04 adds r1, r4, 0 movs r2, 0 bl sub_8045B94 ldr r0, _08066E08 ldr r1, [r0] adds r0, r4, 0 bl sub_80522A8 ldr r0, _08066E0C ldr r0, [r0] ldr r1, _08066E10 adds r0, r1 ldrb r1, [r0] adds r0, r4, 0 bl sub_807AB38 _08066DF8: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08066E00: .4byte 0x0000014d _08066E04: .4byte gUnknown_202DF98 _08066E08: .4byte gUnknown_80F8E28 _08066E0C: .4byte gUnknown_203B418 _08066E10: .4byte 0x00003a08 thumb_func_end sub_8066D04 thumb_func_start sub_8066E14 sub_8066E14: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC mov r9, r0 ldr r0, [r0, 0x70] mov r10, r0 mov r0, r9 movs r1, 0 movs r2, 0x5 bl sub_8044D90 adds r6, r0, 0 mov r0, r9 movs r1, 0x1 movs r2, 0x6 bl sub_8044D90 adds r2, r0, 0 adds r7, r2, 0 mov r0, r10 adds r0, 0x48 ldrb r0, [r0] cmp r0, 0x80 beq _08066E54 ldr r0, _08066E50 b _08066F1E .align 2, 0 _08066E50: .4byte gUnknown_80F8E2C _08066E54: mov r0, r10 adds r0, 0x50 ldrb r1, [r0] str r0, [sp, 0x8] cmp r1, 0x14 bhi _08066E80 ldrb r1, [r2] movs r0, 0x18 ands r0, r1 cmp r0, 0x18 bne _08066E80 ldr r0, _08066E78 adds r1, r2, 0 bl sub_8045BF8 ldr r0, _08066E7C b _08066F1E .align 2, 0 _08066E78: .4byte gUnknown_202DE58 _08066E7C: .4byte gUnknown_80F8BE0 _08066E80: ldr r1, [sp, 0x8] ldrb r0, [r1] cmp r0, 0x81 bne _08066EA8 adds r2, r7, 0 ldrb r1, [r2] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08066EA8 ldr r0, _08066EA0 adds r1, r2, 0 bl sub_8045BF8 ldr r0, _08066EA4 b _08066F1E .align 2, 0 _08066EA0: .4byte gUnknown_202DEA8 _08066EA4: .4byte gUnknown_80F8C48 _08066EA8: mov r2, r9 movs r3, 0x4 ldrsh r0, [r2, r3] movs r3, 0x6 ldrsh r1, [r2, r3] bl sub_804954C ldr r0, [r0, 0x14] cmp r0, 0 beq _08066ECC bl sub_80450F8 cmp r0, 0x3 beq _08066ECC ldr r0, _08066EC8 b _08066F1E .align 2, 0 _08066EC8: .4byte gUnknown_80F8E54 _08066ECC: adds r0, r6, 0 ldr r5, [r0] str r5, [sp] adds r4, r7, 0 ldr r6, [r4] mov r8, sp str r6, [sp, 0x4] movs r3, 0xEF mov r0, sp ldrb r2, [r0] ands r2, r3 ldr r1, _08066F28 adds r0, r1, 0 ands r0, r5 orrs r0, r2 str r0, [sp] mov r2, r8 ldrb r0, [r2, 0x4] ands r0, r3 ands r1, r6 orrs r1, r0 str r1, [sp, 0x4] mov r5, r10 adds r5, 0x4C adds r0, r5, 0 movs r1, 0x1 bl sub_80461C8 movs r0, 0 strb r0, [r4, 0x2] strb r0, [r4, 0x1] strb r0, [r4] add r1, sp, 0x4 adds r0, r5, 0 movs r2, 0x1 bl sub_80460F8 lsls r0, 24 cmp r0, 0 bne _08066F30 ldr r0, _08066F2C _08066F1E: ldr r1, [r0] mov r0, r9 bl sub_80522A8 b _08066F7E .align 2, 0 _08066F28: .4byte 0xffffff00 _08066F2C: .4byte gUnknown_80F8E78 _08066F30: ldr r3, [sp, 0x8] ldrb r0, [r3] cmp r0, 0x81 bne _08066F40 ldr r0, [sp] mov r1, r10 str r0, [r1, 0x60] b _08066F46 _08066F40: mov r0, sp bl sub_8091290 _08066F46: bl sub_80910B4 ldr r4, _08066F90 add r1, sp, 0x4 adds r0, r4, 0 bl sub_8045BF8 adds r4, 0x50 adds r0, r4, 0 mov r1, sp bl sub_8045BF8 ldr r0, _08066F94 bl sub_8083E38 ldr r0, _08066F98 ldr r1, [r0] mov r0, r9 bl sub_80522A8 ldr r0, _08066F9C ldr r0, [r0] ldr r2, _08066FA0 adds r0, r2 ldrb r1, [r0] mov r0, r9 bl sub_807AB38 _08066F7E: add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08066F90: .4byte gUnknown_202DE58 _08066F94: .4byte 0x0000014d _08066F98: .4byte gUnknown_80F8EAC _08066F9C: .4byte gUnknown_203B418 _08066FA0: .4byte 0x00003a08 thumb_func_end sub_8066E14 thumb_func_start sub_8066FA4 sub_8066FA4: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC adds r7, r0, 0 ldr r0, [r7, 0x70] mov r9, r0 movs r1, 0x4 ldrsh r0, [r7, r1] movs r2, 0x6 ldrsh r1, [r7, r2] bl sub_804954C mov r10, r0 adds r0, r7, 0 movs r1, 0 movs r2, 0x7 bl sub_8044D90 adds r4, r0, 0 adds r5, r4, 0 ldr r0, _08067000 mov r8, r0 adds r1, r4, 0 bl sub_8045BF8 mov r0, r9 adds r0, 0x48 ldrb r0, [r0] cmp r0, 0x14 bhi _08067008 ldrb r1, [r4] movs r0, 0x18 ands r0, r1 cmp r0, 0x18 bne _08067008 mov r0, r8 adds r0, 0x50 adds r1, r4, 0 bl sub_8045BF8 ldr r0, _08067004 b _0806709E .align 2, 0 _08067000: .4byte gUnknown_202DE58 _08067004: .4byte gUnknown_80F8C48 _08067008: mov r0, r9 adds r0, 0x48 ldrb r1, [r0] str r0, [sp, 0x8] cmp r1, 0x81 bne _08067028 adds r0, r5, 0 ldrb r1, [r0] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08067028 ldr r0, _08067024 b _0806709E .align 2, 0 _08067024: .4byte gUnknown_80F8C44 _08067028: mov r1, r10 ldr r0, [r1, 0x14] cmp r0, 0 beq _08067040 bl sub_80450F8 cmp r0, 0x3 beq _08067040 ldr r0, _0806703C b _0806709E .align 2, 0 _0806703C: .4byte gUnknown_80F8E54 _08067040: mov r2, r10 ldr r0, [r2, 0x14] bl sub_8045108 adds r4, r0, 0 ldr r0, _080670A8 adds r1, r4, 0 bl sub_8045BF8 ldr r6, [r5] str r6, [sp] ldr r4, [r4] mov r8, sp str r4, [sp, 0x4] movs r3, 0xEF mov r0, sp ldrb r2, [r0] ands r2, r3 ldr r1, _080670AC adds r0, r1, 0 ands r0, r6 orrs r0, r2 str r0, [sp] mov r2, r8 ldrb r0, [r2, 0x4] ands r0, r3 ands r1, r4 orrs r1, r0 str r1, [sp, 0x4] adds r4, r7, 0x4 adds r0, r4, 0 movs r1, 0x1 bl sub_80461C8 movs r0, 0 strb r0, [r5, 0x2] strb r0, [r5, 0x1] strb r0, [r5] adds r0, r4, 0 mov r1, sp movs r2, 0x1 bl sub_80460F8 lsls r0, 24 cmp r0, 0 bne _080670B4 ldr r0, _080670B0 _0806709E: ldr r1, [r0] adds r0, r7, 0 bl sub_80522A8 b _080670EE .align 2, 0 _080670A8: .4byte gUnknown_202DEA8 _080670AC: .4byte 0xffffff00 _080670B0: .4byte gUnknown_80F8E78 _080670B4: ldr r1, [sp, 0x8] ldrb r0, [r1] cmp r0, 0x81 bne _080670C4 ldr r0, [sp, 0x4] mov r2, r9 str r0, [r2, 0x60] b _080670CA _080670C4: add r0, sp, 0x4 bl sub_8091290 _080670CA: bl sub_80910B4 ldr r0, _08067100 bl sub_8083E38 ldr r0, _08067104 ldr r1, [r0] adds r0, r7, 0 bl sub_80522A8 ldr r0, _08067108 ldr r0, [r0] ldr r1, _0806710C adds r0, r1 ldrb r1, [r0] adds r0, r7, 0 bl sub_807AB38 _080670EE: add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08067100: .4byte 0x0000014d _08067104: .4byte gUnknown_80F8EAC _08067108: .4byte gUnknown_203B418 _0806710C: .4byte 0x00003a08 thumb_func_end sub_8066FA4 thumb_func_start sub_8067110 sub_8067110: push {r4-r6,lr} sub sp, 0xC adds r5, r0, 0 ldr r4, [r5, 0x70] movs r1, 0 movs r2, 0x8 bl sub_8044D90 adds r6, r0, 0 ldr r0, _08067190 adds r1, r6, 0 bl sub_8045BF8 ldr r0, _08067194 adds r1, r4, 0 movs r2, 0 bl sub_80708B4 adds r0, r5, 0 adds r1, r6, 0 bl sub_8048D50 lsls r0, 24 cmp r0, 0 beq _08067188 adds r0, r6, 0 bl sub_80464AC adds r1, r0, 0 adds r0, r5, 0 bl sub_80522A8 ldr r0, [r6] str r0, [sp, 0x8] adds r0, r5, 0 movs r1, 0 movs r2, 0x66 bl sub_8044DF0 movs r0, 0x1E movs r1, 0x11 bl sub_803E708 str r5, [sp] add r0, sp, 0x8 str r0, [sp, 0x4] movs r0, 0 movs r1, 0 movs r2, 0 adds r3, r5, 0 bl sub_80479B8 ldr r0, _08067198 ldr r0, [r0] ldr r1, _0806719C adds r0, r1 ldrb r1, [r0] adds r0, r5, 0 bl sub_807AB38 _08067188: add sp, 0xC pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08067190: .4byte gUnknown_202DE58 _08067194: .4byte gUnknown_202DF98 _08067198: .4byte gUnknown_203B418 _0806719C: .4byte 0x00003a08 thumb_func_end sub_8067110 thumb_func_start sub_80671A0 sub_80671A0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 adds r6, r0, 0 ldr r0, [r6, 0x70] mov r8, r0 adds r0, r6, 0 movs r1, 0 movs r2, 0x9 bl sub_8044D90 adds r4, r0, 0 mov r0, r8 adds r0, 0x48 ldrb r0, [r0] cmp r0, 0x81 bne _080671E8 ldrb r1, [r4] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _080671E8 ldr r0, _080671E0 adds r1, r4, 0 bl sub_8045BF8 ldr r0, _080671E4 b _08067230 .align 2, 0 _080671E0: .4byte gUnknown_202DE58 _080671E4: .4byte gUnknown_80F8BE0 _080671E8: ldrb r0, [r4, 0x2] bl sub_8090BD0 lsls r0, 24 cmp r0, 0 beq _08067202 ldrb r0, [r4, 0x2] bl sub_8090BD0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08067220 _08067202: ldrb r1, [r4] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08067220 ldr r0, _08067218 adds r1, r4, 0 bl sub_8045BF8 ldr r0, _0806721C b _08067230 .align 2, 0 _08067218: .4byte gUnknown_202DE58 _0806721C: .4byte gUnknown_80F8BE0 _08067220: adds r0, r6, 0 movs r1, 0x1 bl sub_8071518 lsls r0, 24 cmp r0, 0 beq _08067248 ldr r0, _08067244 _08067230: ldr r1, [r0] adds r0, r6, 0 bl sub_80522A8 movs r0, 0x14 movs r1, 0x4C bl sub_803E708 b _080674F8 .align 2, 0 _08067244: .4byte gUnknown_80FF76C _08067248: ldr r2, [r4] str r2, [sp, 0x4] movs r1, 0xEF add r0, sp, 0x4 ldrb r0, [r0] ands r0, r1 ldr r1, _080672C0 ands r2, r1 orrs r2, r0 str r2, [sp, 0x4] mov r0, r8 adds r0, 0x48 ldrb r1, [r0] adds r5, r0, 0 cmp r1, 0x80 bne _08067272 movs r4, 0 adds r0, 0x4 movs r1, 0x1 bl sub_80461C8 _08067272: movs r7, 0x1 ldr r0, [sp, 0x4] lsrs r0, 16 lsls r0, 24 lsrs r0, 24 bl sub_8090BD0 lsls r0, 24 cmp r0, 0 beq _0806729A ldr r0, [sp, 0x4] lsrs r0, 16 lsls r0, 24 lsrs r0, 24 bl sub_8090BD0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080672A8 _0806729A: ldr r0, [sp, 0x4] lsrs r0, 8 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bls _080672A8 movs r7, 0 _080672A8: cmp r7, 0 beq _080672C4 ldrb r0, [r5] cmp r0, 0x80 beq _080672F6 movs r0, 0 strb r0, [r4, 0x2] strb r0, [r4, 0x1] strb r0, [r4] bl sub_80910B4 b _080672F6 .align 2, 0 _080672C0: .4byte 0xffffff00 _080672C4: ldrb r0, [r5] cmp r0, 0x80 bne _080672F0 ldr r2, [sp, 0x4] lsrs r0, r2, 8 subs r0, 0x1 lsls r0, 24 lsrs r0, 16 ldr r1, _080672EC ands r2, r1 orrs r2, r0 str r2, [sp, 0x4] mov r0, r8 adds r0, 0x4C add r1, sp, 0x4 movs r2, 0x1 bl sub_80460F8 b _080672F6 .align 2, 0 _080672EC: .4byte 0xffff00ff _080672F0: ldrb r0, [r4, 0x1] subs r0, 0x1 strb r0, [r4, 0x1] _080672F6: adds r0, r6, 0 movs r1, 0x29 bl sub_8046CB0 lsls r0, 24 cmp r0, 0 beq _08067310 movs r0, 0x8 bl sub_8084100 mov r1, r8 adds r1, 0x46 strb r0, [r1] _08067310: adds r0, r6, 0 bl sub_8045888 lsls r0, 24 movs r1, 0xE0 add r1, r8 mov r10, r1 adds r1, r6, 0x4 str r1, [sp, 0x10] add r1, sp, 0xC mov r9, r1 cmp r0, 0 beq _08067364 mov r0, r8 adds r0, 0x46 ldrb r4, [r0] movs r1, 0xB2 lsls r1, 1 adds r0, r6, 0 bl sub_80421C0 movs r7, 0x7 movs r5, 0x7 _0806733E: subs r4, 0x1 ands r4, r7 adds r0, r6, 0 movs r1, 0 adds r2, r4, 0 bl sub_806CDD4 movs r0, 0x2 movs r1, 0x15 bl sub_803E708 subs r5, 0x1 cmp r5, 0 bge _0806733E movs r1, 0xB3 lsls r1, 1 add r1, r8 movs r0, 0x4 strb r0, [r1] _08067364: add r4, sp, 0x4 ldrb r0, [r4, 0x2] bl sub_8090BD0 lsls r0, 24 cmp r0, 0 beq _08067380 ldrb r0, [r4, 0x2] bl sub_8090BD0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08067384 _08067380: movs r0, 0x1 strb r0, [r4, 0x1] _08067384: ldr r0, _080673B0 add r4, sp, 0x4 adds r1, r4, 0 bl sub_8045C08 ldr r0, _080673B4 mov r1, r8 movs r2, 0 bl sub_80708B4 ldrb r0, [r4, 0x2] bl sub_8090BD0 lsls r0, 24 cmp r0, 0 bne _080673BC ldr r0, _080673B8 ldr r1, [r0] adds r0, r6, 0 bl sub_80522A8 b _080673C6 .align 2, 0 _080673B0: .4byte gUnknown_202DE58 _080673B4: .4byte gUnknown_202DF98 _080673B8: .4byte gUnknown_80F8EC8 _080673BC: ldr r0, _080673F8 ldr r1, [r0] adds r0, r6, 0 bl sub_80522A8 _080673C6: add r0, sp, 0x4 ldrb r0, [r0, 0x2] bl sub_8090BD0 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r6, 0 bl sub_8042208 adds r0, r6, 0 movs r1, 0x27 bl sub_8046CB0 lsls r0, 24 cmp r0, 0 beq _08067400 ldr r0, _080673FC ldr r1, [sp, 0xC] ands r1, r0 movs r0, 0x80 lsls r0, 1 orrs r1, r0 str r1, [sp, 0xC] b _08067408 .align 2, 0 _080673F8: .4byte gUnknown_80F8EC4 _080673FC: .4byte 0xffff00ff _08067400: ldr r1, _0806741C ldr r0, [sp, 0xC] ands r0, r1 str r0, [sp, 0xC] _08067408: mov r1, r10 ldrb r0, [r1] cmp r0, 0x1 beq _08067440 cmp r0, 0x1 bgt _08067420 cmp r0, 0 beq _08067426 b _08067462 .align 2, 0 _0806741C: .4byte 0xffff00ff _08067420: cmp r0, 0x2 beq _0806744C b _08067462 _08067426: ldr r1, _08067438 ldr r0, [sp, 0xC] ands r0, r1 ldr r1, _0806743C ands r0, r1 movs r1, 0xA0 lsls r1, 12 b _0806745E .align 2, 0 _08067438: .4byte 0xffffff00 _0806743C: .4byte 0x0000ffff _08067440: ldr r1, _08067448 ldr r0, [sp, 0xC] ands r0, r1 b _08067456 .align 2, 0 _08067448: .4byte 0xffffff00 _0806744C: ldr r1, _080674B4 ldr r0, [sp, 0xC] ands r0, r1 movs r1, 0x1 orrs r0, r1 _08067456: ldr r1, _080674B8 ands r0, r1 movs r1, 0xC6 lsls r1, 15 _0806745E: orrs r0, r1 str r0, [sp, 0xC] _08067462: adds r0, r6, 0 movs r1, 0xF bl sub_8046CB0 lsls r0, 24 cmp r0, 0 beq _08067486 ldr r1, _080674B4 ldr r0, [sp, 0xC] ands r0, r1 movs r1, 0x1 orrs r0, r1 ldr r1, _080674B8 ands r0, r1 movs r1, 0xC6 lsls r1, 15 orrs r0, r1 str r0, [sp, 0xC] _08067486: add r0, sp, 0x4 ldrb r0, [r0, 0x2] bl sub_8090BD0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080674BC add r4, sp, 0x8 adds r0, r4, 0 adds r1, r6, 0 bl sub_8083904 mov r0, r9 str r0, [sp] adds r0, r6, 0 add r1, sp, 0x4 ldr r2, [sp, 0x10] adds r3, r4, 0 bl sub_80475C4 b _080674D0 .align 2, 0 _080674B4: .4byte 0xffffff00 _080674B8: .4byte 0x0000ffff _080674BC: mov r0, r8 adds r0, 0x46 ldrb r3, [r0] mov r1, r9 str r1, [sp] adds r0, r6, 0 add r1, sp, 0x4 ldr r2, [sp, 0x10] bl sub_8047190 _080674D0: adds r0, r6, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080674F8 mov r0, r8 adds r0, 0x46 ldrb r1, [r0] adds r0, r6, 0 bl sub_806CE68 ldr r0, _08067508 ldr r0, [r0] ldr r1, _0806750C adds r0, r1 ldrb r1, [r0] adds r0, r6, 0 bl sub_807AB38 _080674F8: add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08067508: .4byte gUnknown_203B418 _0806750C: .4byte 0x00003a08 thumb_func_end sub_80671A0 thumb_func_start sub_8067510 sub_8067510: push {r4,lr} adds r4, r0, 0 bl sub_806773C adds r1, r0, 0 movs r2, 0x1 negs r2, r2 adds r0, r4, 0 bl sub_8067558 pop {r4} pop {r0} bx r0 thumb_func_end sub_8067510 thumb_func_start sub_806752C sub_806752C: push {r4,lr} ldr r1, _08067550 ldr r1, [r1] ldrb r0, [r0, 0x4] lsls r0, 2 ldr r2, _08067554 adds r1, r2 adds r1, r0 ldr r4, [r1] bl sub_8083600 adds r1, r4, 0 movs r2, 0 bl sub_8067558 pop {r4} pop {r0} bx r0 .align 2, 0 _08067550: .4byte gUnknown_203B418 _08067554: .4byte 0x0001357c thumb_func_end sub_806752C thumb_func_start sub_8067558 sub_8067558: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x12C adds r6, r0, 0 adds r5, r1, 0 mov r9, r2 ldr r0, [r6, 0x70] mov r8, r0 cmp r5, 0 bne _0806757C ldr r0, _08067578 ldr r1, [r0] movs r0, 0 b _08067716 .align 2, 0 _08067578: .4byte gUnknown_80F8EE4 _0806757C: adds r0, r6, 0 bl sub_8070BC0 lsls r0, 24 cmp r0, 0 bne _08067594 ldr r0, _08067590 ldr r1, [r0] movs r0, 0 b _08067716 .align 2, 0 _08067590: .4byte gUnknown_80F8EE4 _08067594: adds r0, r6, 0 adds r1, r5, 0 movs r2, 0x1 movs r3, 0 bl sub_8071598 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080675AA b _0806771E _080675AA: adds r0, r5, 0 adds r1, r6, 0 movs r2, 0x1 movs r3, 0 bl sub_8071598 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080675C0 b _0806771E _080675C0: ldr r7, [r5, 0x70] ldr r4, _08067608 adds r0, r4, 0 adds r1, r7, 0 movs r2, 0 bl sub_80708B4 adds r4, 0x50 adds r0, r4, 0 mov r1, r8 movs r2, 0x7 bl sub_80708B4 bl sub_8084778 adds r0, r6, 0 adds r1, r5, 0 bl sub_807A96C adds r0, r5, 0 bl sub_8070BC0 lsls r0, 24 cmp r0, 0 beq _08067600 adds r0, r5, 0 movs r1, 0x1 bl sub_8070B6C lsls r0, 24 cmp r0, 0 beq _08067610 _08067600: ldr r0, _0806760C ldr r1, [r0] movs r0, 0 b _08067716 .align 2, 0 _08067608: .4byte gUnknown_202DF98 _0806760C: .4byte gUnknown_80FE008 _08067610: adds r0, r6, 0x4 adds r1, r5, 0x4 bl sub_80983D8 adds r1, r0, 0 adds r0, r6, 0 bl sub_806CEFC mov r1, r9 cmp r1, 0 blt _0806762E adds r0, r5, 0 bl sub_806CEFC b _0806763C _0806762E: mov r0, r8 adds r0, 0x46 ldrb r1, [r0] adds r1, 0x4 adds r0, r5, 0 bl sub_806CEFC _0806763C: ldrb r0, [r7, 0x8] cmp r0, 0x1 bne _08067648 bl sub_807EF84 b _0806772A _08067648: adds r0, r7, 0 adds r0, 0xA4 ldrb r0, [r0] cmp r0, 0x1 bne _08067694 ldr r0, _08067668 ldr r1, [r0] ldr r2, _0806766C adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 beq _08067674 ldr r0, _08067670 ldr r1, [r0] movs r0, 0 b _08067716 .align 2, 0 _08067668: .4byte gUnknown_203B418 _0806766C: .4byte 0x0000066e _08067670: .4byte gUnknown_80FF674 _08067674: ldr r3, _08067688 adds r0, r1, r3 ldrb r0, [r0] cmp r0, 0 beq _0806768C adds r0, r5, 0 bl sub_80845E0 b _0806772A .align 2, 0 _08067688: .4byte 0x00000677 _0806768C: adds r0, r5, 0 bl sub_8084448 b _0806772A _08067694: movs r0, 0x4 ldrsh r5, [r7, r0] movs r6, 0 adds r0, r7, 0 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x4A bne _080676AA movs r5, 0xD2 lsls r5, 1 b _080676CC _080676AA: cmp r0, 0x47 bne _080676B8 ldr r5, _080676B4 b _080676CC .align 2, 0 _080676B4: .4byte 0x000001a5 _080676B8: cmp r0, 0x41 bne _080676CC ldr r0, _080676E8 ldr r0, [r0] ldr r1, _080676EC adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _080676CC movs r6, 0x1 _080676CC: movs r3, 0x10 ldrsh r2, [r7, r3] adds r0, r2, 0 cmp r2, 0 bge _080676D8 adds r0, r2, 0x3 _080676D8: movs r3, 0xE ldrsh r1, [r7, r3] asrs r0, 2 cmp r1, r0 bgt _080676F0 movs r2, 0x2 b _08067708 .align 2, 0 _080676E8: .4byte gUnknown_203B418 _080676EC: .4byte 0x0000065c _080676F0: movs r0, 0xE ldrsh r4, [r7, r0] lsls r0, r2, 1 adds r0, r2 lsls r0, 1 movs r1, 0xA bl __divsi3 movs r2, 0 cmp r4, r0 bgt _08067708 movs r2, 0x1 _08067708: mov r0, sp adds r1, r5, 0 adds r3, r6, 0 bl sub_806A3D4 movs r0, 0 mov r1, sp _08067716: movs r2, 0x1 bl PrintFieldMessage b _0806772A _0806771E: ldr r0, _08067738 ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage _0806772A: add sp, 0x12C pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08067738: .4byte gUnknown_80F8EE4 thumb_func_end sub_8067558 thumb_func_start sub_806773C sub_806773C: push {r4,r5,lr} adds r5, r0, 0 bl sub_80696A8 adds r4, r0, 0 cmp r4, 0 beq _08067760 adds r0, r4, 0 bl sub_80450F8 cmp r0, 0x1 bne _08067760 ldr r0, [r5, 0x70] ldrb r0, [r0, 0x6] cmp r0, 0 bne _08067760 adds r0, r4, 0 b _08067762 _08067760: movs r0, 0 _08067762: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_806773C thumb_func_start sub_8067768 sub_8067768: push {r4,lr} ldr r1, _0806778C ldr r1, [r1] ldrb r0, [r0, 0x4] lsls r0, 2 ldr r2, _08067790 adds r1, r2 adds r1, r0 ldr r4, [r1] bl sub_8083600 adds r1, r4, 0 movs r2, 0 bl sub_8067794 pop {r4} pop {r0} bx r0 .align 2, 0 _0806778C: .4byte gUnknown_203B418 _08067790: .4byte 0x0001357c thumb_func_end sub_8067768 thumb_func_start sub_8067794 sub_8067794: push {r4-r7,lr} sub sp, 0x40 adds r7, r1, 0 ldr r4, [r7, 0x70] cmp r7, 0 bne _080677B4 ldr r0, _080677B0 ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage b _0806786C .align 2, 0 _080677B0: .4byte gUnknown_80F8F08 _080677B4: ldr r0, _080677F0 adds r1, r7, 0 movs r2, 0 bl sub_8045B94 ldr r0, _080677F4 ldr r5, [r0] ldr r0, _080677F8 ldr r6, [r0] ldrb r2, [r4, 0xA] cmp r2, 0 blt _08067834 ldr r1, _080677FC movs r0, 0x64 muls r0, r2 ldr r2, _08067800 adds r0, r2 ldr r1, [r1] adds r4, r1, r0 movs r1, 0xA ldrsh r0, [r4, r1] bl sub_806A564 lsls r0, 24 cmp r0, 0 beq _0806780C ldr r0, _08067804 ldr r5, [r0] ldr r0, _08067808 b _08067832 .align 2, 0 _080677F0: .4byte gUnknown_202DF98 _080677F4: .4byte gUnknown_80F9094 _080677F8: .4byte gUnknown_80F913C _080677FC: .4byte gUnknown_203B45C _08067800: .4byte 0x00008df8 _08067804: .4byte gUnknown_80F9114 _08067808: .4byte gUnknown_80F9154 _0806780C: movs r2, 0xA ldrsh r0, [r4, r2] bl sub_806A58C lsls r0, 24 cmp r0, 0 beq _08067834 bl sub_8044210 lsls r0, 24 cmp r0, 0 beq _0806782C ldr r0, _08067828 b _0806782E .align 2, 0 _08067828: .4byte gUnknown_80F90DC _0806782C: ldr r0, _08067874 _0806782E: ldr r5, [r0] ldr r0, _08067878 _08067832: ldr r6, [r0] _08067834: movs r0, 0 adds r1, r5, 0 movs r2, 0 bl sub_8052B8C cmp r0, 0x1 bne _0806786C ldr r4, _0806787C mov r0, sp adds r1, r4, 0 movs r2, 0x40 bl strncpy ldr r1, _08067880 adds r0, r7, 0 movs r2, 0 bl sub_8068FE0 adds r0, r4, 0 mov r1, sp movs r2, 0x40 bl strncpy movs r0, 0 adds r1, r6, 0 movs r2, 0x1 bl PrintFieldMessage _0806786C: add sp, 0x40 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08067874: .4byte gUnknown_80F90C8 _08067878: .4byte gUnknown_80F9150 _0806787C: .4byte gUnknown_202DF98 _08067880: .4byte 0x0000021d thumb_func_end sub_8067794 thumb_func_start sub_8067884 sub_8067884: push {r4-r6,lr} sub sp, 0x4 adds r5, r0, 0 movs r6, 0 b _0806789A _0806788E: ldr r1, _08067900 adds r0, r4, r1 ldrb r0, [r0] cmp r0, 0 bne _080678C6 adds r6, 0x1 _0806789A: adds r0, r5, 0 movs r1, 0x1 bl sub_8070828 cmp r6, r0 bge _080678C6 ldr r4, [r5, 0x70] adds r0, r4, 0 adds r0, 0x50 ldrb r1, [r0] movs r0, 0 str r0, [sp] adds r0, r5, 0 movs r2, 0x1 movs r3, 0 bl sub_8055A00 bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _0806788E _080678C6: adds r0, r5, 0 movs r1, 0x1 bl sub_8057588 bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _080678F6 adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080678F0 ldr r0, [r5, 0x70] adds r0, 0x50 ldrb r1, [r0] adds r0, r5, 0 bl sub_806A9B4 _080678F0: adds r0, r5, 0 bl sub_806A1B0 _080678F6: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08067900: .4byte 0x00000159 thumb_func_end sub_8067884 thumb_func_start sub_8067904 sub_8067904: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 adds r5, r0, 0 lsls r1, 16 lsrs r1, 16 mov r9, r1 ldr r6, [r5, 0x70] ldr r1, _08067940 movs r0, 0 str r0, [r1] add r0, sp, 0x8 mov r1, r9 bl sub_8092A88 adds r0, r6, 0 adds r0, 0xBC ldrb r0, [r0] cmp r0, 0x1 bne _0806794C ldr r0, _08067944 adds r1, r5, 0 movs r2, 0 bl sub_8045B94 ldr r0, _08067948 b _08067962 .align 2, 0 _08067940: .4byte gUnknown_202F208 _08067944: .4byte gUnknown_202DF98 _08067948: .4byte gUnknown_80F8F20 _0806794C: adds r0, r6, 0 adds r0, 0xAC ldrb r0, [r0] cmp r0, 0x4 bne _08067974 ldr r0, _0806796C adds r1, r5, 0 movs r2, 0 bl sub_8045B94 ldr r0, _08067970 _08067962: ldr r1, [r0] adds r0, r5, 0 bl sub_80522A8 b _08067A56 .align 2, 0 _0806796C: .4byte gUnknown_202DF98 _08067970: .4byte gUnknown_80F8F38 _08067974: movs r0, 0xB0 lsls r0, 1 movs r1, 0 mov r10, r1 cmp r9, r0 bne _08067984 movs r2, 0x1 mov r10, r2 _08067984: movs r0, 0 mov r8, r0 movs r7, 0 add r4, sp, 0x8 b _080679D2 _0806798E: movs r1, 0xBC lsls r1, 1 adds r0, r6, r1 strh r7, [r0] ldrb r0, [r4] movs r1, 0x8 orrs r0, r1 orrs r0, r7 movs r1, 0x4 orrs r0, r1 strb r0, [r4] movs r0, 0xA strb r0, [r4, 0x4] str r7, [sp] str r4, [sp, 0x4] adds r0, r5, 0 mov r1, r10 movs r2, 0 movs r3, 0 bl sub_8055FA0 adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080679DE ldr r2, _08067A68 adds r0, r6, r2 ldrb r0, [r0] cmp r0, 0 bne _080679DE movs r0, 0x1 add r8, r0 _080679D2: adds r0, r5, 0 movs r1, 0x1 bl sub_8070828 cmp r8, r0 blt _0806798E _080679DE: adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08067A56 movs r0, 0xB0 lsls r0, 1 cmp r9, r0 bne _08067A04 ldr r0, _08067A6C ldr r0, [r0] cmp r0, 0 bne _08067A04 ldr r0, _08067A70 ldr r1, [r0] adds r0, r5, 0 bl sub_80522A8 _08067A04: ldrb r0, [r6, 0x7] cmp r0, 0 beq _08067A50 movs r0, 0xB0 lsls r0, 1 cmp r9, r0 beq _08067A50 ldr r4, _08067A74 adds r3, r6, 0 adds r3, 0x46 ldrb r0, [r3] lsls r0, 2 adds r0, r4 ldrh r0, [r0] ldrh r1, [r5, 0x4] adds r0, r1 lsls r0, 16 lsrs r0, 16 ldr r2, _08067A78 ldr r1, [sp, 0x10] ands r1, r2 orrs r1, r0 str r1, [sp, 0x10] ldrb r0, [r3] lsls r0, 2 adds r0, r4 ldrh r0, [r0, 0x2] ldrh r2, [r5, 0x6] adds r0, r2 lsls r0, 16 ldr r2, _08067A7C ands r1, r2 orrs r1, r0 str r1, [sp, 0x10] add r0, sp, 0x10 movs r1, 0x1 bl sub_807FE44 _08067A50: adds r0, r5, 0 bl sub_8071DA4 _08067A56: add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08067A68: .4byte 0x00000159 _08067A6C: .4byte gUnknown_202F208 _08067A70: .4byte gUnknown_80FC690 _08067A74: .4byte gUnknown_80F4448 _08067A78: .4byte 0xffff0000 _08067A7C: .4byte 0x0000ffff thumb_func_end sub_8067904 thumb_func_start sub_8067A80 sub_8067A80: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x6C str r1, [sp, 0x68] mov r8, r2 mov r9, r3 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x64] ldr r1, _08067AC8 add r0, sp, 0x4 movs r2, 0x60 bl memcpy ldr r1, _08067ACC movs r0, 0 str r0, [r1] mov r10, r0 cmp r10, r8 blt _08067AB0 b _08067ED8 _08067AB0: ldr r5, _08067AD0 mov r4, r9 mov r3, r8 _08067AB6: ldm r4!, {r2} ldrh r1, [r2] adds r0, r5, 0 ands r0, r1 strh r0, [r2] subs r3, 0x1 cmp r3, 0 bne _08067AB6 b _08067ED8 .align 2, 0 _08067AC8: .4byte gUnknown_8106DC8 _08067ACC: .4byte gUnknown_202F30C _08067AD0: .4byte 0x00007fff _08067AD4: movs r7, 0 ldr r1, _08067B98 movs r0, 0x1 strb r0, [r1] strb r7, [r1, 0x1] movs r0, 0xE strb r0, [r1, 0x2] strb r7, [r1, 0x3] add r0, sp, 0x4 movs r1, 0x1 bl sub_803ECB4 ldr r5, _08067B9C ldr r2, [r5] ldr r0, [sp, 0x68] str r0, [sp] ldr r0, [sp, 0x64] mov r1, r9 mov r3, r8 bl sub_8067F00 ldr r4, _08067BA0 mov r0, r8 cmp r0, 0x8 ble _08067B08 movs r0, 0x8 _08067B08: strh r0, [r4, 0x1A] mov r1, r10 strh r1, [r4, 0x18] movs r0, 0x8 strh r0, [r4, 0x1C] strh r7, [r4, 0x1E] strh r7, [r4, 0x20] strh r7, [r4, 0x4] movs r0, 0x12 strh r0, [r4, 0x6] strh r7, [r4, 0xC] strh r7, [r4, 0xE] strh r7, [r4, 0x14] str r7, [r4] adds r0, r4, 0 adds r0, 0x28 bl sub_801317C adds r0, r4, 0 movs r1, 0 bl sub_80137B0 adds r6, r5, 0 _08067B36: ldr r0, _08067BA0 bl AddMenuCursorSprite movs r5, 0 movs r7, 0 ldr r0, [r6] mov r2, r8 subs r0, r2, r0 cmp r0, 0x8 ble _08067B50 movs r5, 0x1 bl sub_80684C4 _08067B50: ldr r0, [r6] cmp r0, 0 beq _08067B5C movs r7, 0x1 bl sub_8068344 _08067B5C: movs r0, 0 ldr r1, _08067BA4 bl sub_8014140 adds r4, r0, 0 movs r0, 0x37 bl sub_803E46C cmp r4, 0x2 bne _08067BAC cmp r5, 0 beq _08067BAC ldr r0, [r6] mov r3, r8 subs r0, r3, r0 cmp r0, 0x8 ble _08067BF0 ldr r5, _08067BA8 movs r4, 0x5 _08067B82: ldr r1, [r5] movs r0, 0 bl _call_via_r1 movs r0, 0x37 bl sub_803E46C subs r4, 0x1 cmp r4, 0 bge _08067B82 b _08067BEA .align 2, 0 _08067B98: .4byte gUnknown_202F308 _08067B9C: .4byte gUnknown_202F30C _08067BA0: .4byte gUnknown_202EE10 _08067BA4: .4byte gUnknown_8106DA4 _08067BA8: .4byte gUnknown_203B080 _08067BAC: ldr r0, _08067BF8 ldrh r1, [r0, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08067C0C movs r0, 0x1 bl sub_8083CE0 ldr r1, _08067BFC movs r2, 0x18 ldrsh r0, [r1, r2] cmp r0, 0x7 bne _08067C04 ldr r0, [r6] mov r3, r8 subs r0, r3, r0 cmp r0, 0x8 ble _08067BF0 ldr r5, _08067C00 movs r4, 0x5 _08067BD6: ldr r1, [r5] movs r0, 0 bl _call_via_r1 movs r0, 0x37 bl sub_803E46C subs r4, 0x1 cmp r4, 0 bge _08067BD6 _08067BEA: ldr r0, [r6] adds r0, 0x1 str r0, [r6] _08067BF0: movs r7, 0 movs r0, 0x7 mov r10, r0 b _08067CF6 .align 2, 0 _08067BF8: .4byte gUnknown_20255F0 _08067BFC: .4byte gUnknown_202EE10 _08067C00: .4byte gUnknown_203B080 _08067C04: adds r0, r1, 0 movs r1, 0 bl sub_80136E0 _08067C0C: cmp r4, 0x1 bne _08067C44 cmp r7, 0 beq _08067C44 ldr r0, [r6] cmp r0, 0 beq _08067C38 ldr r5, _08067C40 movs r4, 0x5 _08067C1E: ldr r1, [r5] movs r0, 0 bl _call_via_r1 movs r0, 0x37 bl sub_803E46C subs r4, 0x1 cmp r4, 0 bge _08067C1E ldr r0, [r6] subs r0, 0x1 str r0, [r6] _08067C38: movs r7, 0 movs r1, 0 mov r10, r1 b _08067CF6 .align 2, 0 _08067C40: .4byte gUnknown_203B084 _08067C44: ldr r0, _08067C8C ldrh r1, [r0, 0x4] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08067CA0 movs r0, 0x1 bl sub_8083CE0 ldr r1, _08067C90 movs r2, 0x18 ldrsh r0, [r1, r2] cmp r0, 0 bne _08067C98 ldr r0, [r6] cmp r0, 0 beq _08067C84 ldr r5, _08067C94 movs r4, 0x5 _08067C6A: ldr r1, [r5] movs r0, 0 bl _call_via_r1 movs r0, 0x37 bl sub_803E46C subs r4, 0x1 cmp r4, 0 bge _08067C6A ldr r0, [r6] subs r0, 0x1 str r0, [r6] _08067C84: movs r7, 0 movs r3, 0 mov r10, r3 b _08067CF6 .align 2, 0 _08067C8C: .4byte gUnknown_20255F0 _08067C90: .4byte gUnknown_202EE10 _08067C94: .4byte gUnknown_203B084 _08067C98: adds r0, r1, 0 movs r1, 0 bl sub_8013744 _08067CA0: bl sub_80048C8 lsls r0, 24 cmp r0, 0 beq _08067CAC b _08067B36 _08067CAC: ldr r0, _08067CD4 ldrh r1, [r0, 0x2] movs r0, 0x8 ands r0, r1 cmp r0, 0 bne _08067D40 movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08067CCC ldr r2, _08067CD8 adds r0, r2, 0 adds r0, 0x29 ldrb r0, [r0] cmp r0, 0 beq _08067CDC _08067CCC: bl sub_8083D08 movs r7, 0x1 b _08067CF6 .align 2, 0 _08067CD4: .4byte gUnknown_20255F0 _08067CD8: .4byte gUnknown_202EE10 _08067CDC: movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08067CF0 adds r0, r2, 0 adds r0, 0x2A ldrb r0, [r0] cmp r0, 0 bne _08067CF0 b _08067B36 _08067CF0: bl sub_8083D30 movs r7, 0x2 _08067CF6: ldr r4, _08067D34 adds r0, r4, 0 bl AddMenuCursorSprite movs r0, 0x37 bl sub_803E46C cmp r7, 0 bne _08067D0A b _08067AD4 _08067D0A: cmp r7, 0x2 bne _08067D48 movs r1, 0x18 ldrsh r0, [r4, r1] mov r10, r0 ldr r0, _08067D38 ldr r0, [r0] ldr r2, [sp, 0x68] cmp r0, r2 bge _08067D20 b _08067AD4 _08067D20: ldr r0, _08067D3C ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl sub_8052B8C cmp r0, 0x1 bne _08067D32 b _08067ED8 _08067D32: b _08067AD4 .align 2, 0 _08067D34: .4byte gUnknown_202EE10 _08067D38: .4byte gUnknown_202F310 _08067D3C: .4byte gUnknown_80FDFB8 _08067D40: bl sub_8083D1C movs r7, 0x3 b _08067CF6 _08067D48: cmp r7, 0x3 bne _08067D64 movs r0, 0x18 ldrsh r3, [r4, r0] mov r10, r3 ldr r0, _08067D60 ldr r0, [r0] add r0, r10 lsls r0, 2 add r0, r9 b _08067ED0 .align 2, 0 _08067D60: .4byte gUnknown_202F30C _08067D64: movs r2, 0x18 ldrsh r1, [r4, r2] mov r10, r1 ldr r0, _08067DAC ldr r0, [r0] adds r4, r0, r1 ldr r1, _08067DB0 movs r0, 0 str r0, [r1] movs r0, 0x29 movs r1, 0 bl sub_8044F5C movs r0, 0x2A movs r1, 0 bl sub_8044F5C movs r0, 0x40 movs r1, 0 bl sub_8044F5C lsls r0, r4, 2 add r0, r9 ldr r0, [r0] ldrh r0, [r0] movs r3, 0x80 lsls r3, 8 adds r1, r3, 0 ands r0, r1 cmp r0, 0 beq _08067DBC movs r0, 0x29 bl sub_8044FF0 b _08067DC2 .align 2, 0 _08067DAC: .4byte gUnknown_202F30C _08067DB0: .4byte gUnknown_202EE6C _08067DB4: bl sub_8083D08 movs r7, 0x1 b _08067E6E _08067DBC: movs r0, 0x2A bl sub_8044FF0 _08067DC2: lsls r0, r4, 2 mov r2, r9 adds r1, r0, r2 ldr r2, [r1] ldrb r1, [r2, 0x2] adds r6, r0, 0 cmp r1, 0 bne _08067DDC ldrb r1, [r2, 0x4] cmp r1, 0x40 beq _08067DDC cmp r1, 0x41 bne _08067DE2 _08067DDC: movs r0, 0x29 bl sub_8044FF0 _08067DE2: bl sub_8045064 add r0, sp, 0x4 movs r1, 0x15 bl sub_805FC30 ldr r4, _08067EA0 ldr r5, _08067EA4 adds r7, r4, 0 adds r7, 0x2A _08067DF6: adds r0, r4, 0 bl AddMenuCursorSprite movs r0, 0x37 bl sub_803E46C ldrh r1, [r5, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08067E1A movs r0, 0x1 bl sub_8083CE0 adds r0, r4, 0 movs r1, 0x1 bl sub_80136E0 _08067E1A: ldrh r1, [r5, 0x4] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08067E32 movs r0, 0x1 bl sub_8083CE0 adds r0, r4, 0 movs r1, 0x1 bl sub_8013744 _08067E32: ldrh r1, [r5, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08067E46 adds r0, r4, 0 adds r0, 0x29 ldrb r0, [r0] cmp r0, 0 beq _08067E58 _08067E46: movs r3, 0x18 ldrsh r0, [r4, r3] bl sub_8044F3C lsls r0, 24 cmp r0, 0 bne _08067DB4 bl sub_8083D30 _08067E58: ldrh r1, [r5, 0x2] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08067E68 ldrb r0, [r7] cmp r0, 0 beq _08067DF6 _08067E68: bl sub_8083D30 movs r7, 0 _08067E6E: ldr r4, _08067EA0 adds r0, r4, 0 bl AddMenuCursorSprite movs r0, 0x37 bl sub_803E46C cmp r7, 0 bne _08067E82 b _08067AD4 _08067E82: movs r1, 0x18 ldrsh r0, [r4, r1] cmp r0, 0 bne _08067EA8 mov r2, r9 adds r0, r6, r2 ldr r1, [r0] ldrh r2, [r1] movs r3, 0x80 lsls r3, 8 adds r0, r3, 0 orrs r0, r2 strh r0, [r1] b _08067EBC .align 2, 0 _08067EA0: .4byte gUnknown_202EE10 _08067EA4: .4byte gUnknown_20255F0 _08067EA8: cmp r0, 0x1 bne _08067ECC mov r1, r9 adds r0, r6, r1 ldr r2, [r0] ldrh r0, [r2] ldr r3, _08067EC8 adds r1, r3, 0 ands r0, r1 strh r0, [r2] _08067EBC: mov r0, r8 mov r1, r9 bl sub_8068310 b _08067AD4 .align 2, 0 _08067EC8: .4byte 0x00007fff _08067ECC: mov r1, r9 adds r0, r6, r1 _08067ED0: ldr r0, [r0] bl sub_806806C b _08067AD4 _08067ED8: mov r0, r8 mov r1, r9 bl sub_8068310 ldr r0, _08067EFC ldr r0, [r0] ldr r2, [sp, 0x68] cmp r0, r2 bge _08067EEC b _08067AD4 _08067EEC: add sp, 0x6C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08067EFC: .4byte gUnknown_202F310 thumb_func_end sub_8067A80 thumb_func_start sub_8067F00 sub_8067F00: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 adds r4, r0, 0 mov r9, r1 str r3, [sp, 0x4] lsls r4, 24 lsrs r4, 24 subs r7, r2, 0x1 movs r0, 0x16 mov r8, r0 movs r0, 0 bl sub_80073B8 ldr r0, _08067F44 adds r1, r4, 0 movs r2, 0 bl sub_8092578 ldr r2, _08067F48 movs r0, 0 str r0, [sp] movs r0, 0xC movs r1, 0 movs r3, 0 bl sub_8014FF0 movs r1, 0 mov r10, r1 b _08067FF6 .align 2, 0 _08067F44: .4byte gUnknown_202DF98 _08067F48: .4byte gUnknown_8106E28 _08067F4C: ldr r4, _08067F8C lsls r6, r7, 2 mov r0, r9 adds r5, r6, r0 ldr r1, [r5] adds r0, r4, 0 movs r2, 0 bl sub_808D9AC adds r4, 0x50 ldr r0, [r5] movs r2, 0x8 ldrsh r1, [r0, r2] adds r0, r4, 0 bl sub_808D930 ldr r1, _08067F90 adds r0, r7, 0x1 str r0, [r1] ldr r0, [r5] ldrh r1, [r0] movs r0, 0x80 lsls r0, 8 ands r0, r1 cmp r0, 0 beq _08067F9C ldr r0, _08067F94 ldr r1, _08067F98 bl strcpy b _08067FA4 .align 2, 0 _08067F8C: .4byte gUnknown_202DF98 _08067F90: .4byte gUnknown_202DE30 _08067F94: .4byte gUnknown_202DE58 _08067F98: .4byte gUnknown_8106E2C _08067F9C: ldr r0, _08067FCC ldr r1, _08067FD0 bl strcpy _08067FA4: mov r1, r9 adds r0, r6, r1 ldr r0, [r0] ldrh r1, [r0] movs r0, 0x80 lsls r0, 7 ands r0, r1 lsls r0, 16 lsrs r0, 16 cmp r0, 0 beq _08067FD8 ldr r2, _08067FD4 movs r0, 0 str r0, [sp] movs r0, 0x7 mov r1, r8 movs r3, 0 bl sub_8014FF0 b _08067FE6 .align 2, 0 _08067FCC: .4byte gUnknown_202DE58 _08067FD0: .4byte gUnknown_8106E30 _08067FD4: .4byte gUnknown_8106E34 _08067FD8: ldr r2, _08068028 str r0, [sp] movs r0, 0x7 mov r1, r8 movs r3, 0 bl sub_8014FF0 _08067FE6: movs r2, 0x1 add r10, r2 movs r0, 0xC add r8, r0 adds r7, 0x1 mov r1, r10 cmp r1, 0x9 bgt _08068000 _08067FF6: cmp r7, 0 blt _08067FE6 ldr r2, [sp, 0x4] cmp r7, r2 blt _08067F4C _08068000: movs r0, 0 bl sub_80073E0 movs r0, 0x1 bl sub_80073B8 ldr r0, _0806802C ldr r0, [r0] ldr r1, [sp, 0x28] cmp r0, r1 blt _08068034 ldr r2, _08068030 movs r0, 0 str r0, [sp] movs r0, 0x8 movs r1, 0x2 movs r3, 0x1 bl sub_8014FF0 b _0806804C .align 2, 0 _08068028: .4byte gUnknown_8106E48 _0806802C: .4byte gUnknown_202F310 _08068030: .4byte gUnknown_8106E5C _08068034: ldr r1, _08068064 ldr r2, [sp, 0x28] subs r0, r2, r0 str r0, [r1] ldr r2, _08068068 movs r0, 0 str r0, [sp] movs r0, 0x8 movs r1, 0x2 movs r3, 0x1 bl sub_8014FF0 _0806804C: movs r0, 0x1 bl sub_80073E0 add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08068064: .4byte gUnknown_202DE30 _08068068: .4byte gUnknown_8106E6C thumb_func_end sub_8067F00 thumb_func_start sub_806806C sub_806806C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x110 str r0, [sp, 0x108] add r4, sp, 0x98 adds r0, r4, 0 movs r1, 0 movs r2, 0x60 bl memset movs r0, 0x6 str r0, [r4, 0x4] movs r1, 0x2 strh r1, [r4, 0x8] strh r1, [r4, 0xA] movs r2, 0x12 strh r2, [r4, 0xC] movs r0, 0xE strh r0, [r4, 0xE] strh r2, [r4, 0x10] strh r1, [r4, 0x12] ldr r0, _080681B4 str r0, [r4, 0x14] movs r0, 0x3 str r0, [r4, 0x1C] str r0, [r4, 0x34] str r0, [r4, 0x4C] movs r7, 0 add r1, sp, 0x44 strh r7, [r1] mov r0, sp adds r0, 0x5A strh r7, [r0] ldr r0, _080681B8 strh r7, [r0, 0x18] mov r9, r1 adds r1, 0xB4 str r1, [sp, 0x10C] add r2, sp, 0x68 mov r10, r2 adds r6, r0, 0 _080680C4: movs r3, 0 mov r8, r3 add r1, sp, 0xF8 ldr r0, _080681BC ldm r0!, {r2-r4} stm r1!, {r2-r4} ldr r0, [r0] str r0, [r1] ldr r1, _080681B4 movs r2, 0x4 strb r2, [r1] strb r7, [r1, 0x1] movs r0, 0xA strb r0, [r1, 0x2] mov r4, r8 strb r4, [r1, 0x3] strh r7, [r6, 0x1E] strh r2, [r6, 0x20] mov r0, r8 strh r0, [r6, 0x1A] strh r0, [r6, 0x18] strh r0, [r6, 0x1C] strh r0, [r6, 0x4] movs r0, 0x10 strh r0, [r6, 0x6] mov r1, r8 strh r1, [r6, 0x14] mov r2, r8 str r2, [r6] adds r0, r6, 0 adds r0, 0x28 bl sub_801317C add r0, sp, 0x98 movs r1, 0x1 bl sub_803ECB4 ldr r0, _080681C0 ldr r0, [r0] ldr r3, _080681C4 adds r0, r3 ldrb r2, [r0] add r0, sp, 0x4 ldr r1, [sp, 0x108] bl sub_808FF20 lsls r4, r7, 2 mov r0, sp adds r0, r4 adds r0, 0xF8 ldr r0, [r0] mov r1, r8 str r1, [sp] adds r1, r7, 0 add r2, sp, 0x4 mov r3, r10 bl sub_808F844 ldr r1, _080681C8 movs r2, 0 ldrsh r0, [r1, r2] adds r0, 0xF lsls r0, 3 strh r0, [r6, 0xC] movs r3, 0x2 ldrsh r0, [r1, r3] adds r0, 0x1 lsls r0, 3 subs r0, 0x2 strh r0, [r6, 0xE] _08068150: ldr r0, _080681B8 bl AddMenuCursorSprite ldr r1, [sp, 0x10C] adds r0, r1, r4 ldr r0, [r0] cmp r0, 0x4 bne _0806817A mov r2, r10 ldrb r0, [r2, 0x8] cmp r0, 0 beq _0806816C bl sub_80684C4 _0806816C: mov r3, r9 movs r1, 0 ldrsh r0, [r3, r1] cmp r0, 0 beq _0806817A bl sub_8068344 _0806817A: movs r0, 0 ldr r1, _080681CC bl sub_8014140 adds r5, r0, 0 movs r0, 0x1C bl sub_803E46C ldr r3, _080681D0 ldrh r1, [r3, 0x2] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _080681A2 ldr r2, _080681B8 adds r0, r2, 0 adds r0, 0x2B ldrb r0, [r0] cmp r0, 0 beq _080681D4 _080681A2: movs r0, 0 bl sub_8083CE0 adds r7, 0x1 cmp r7, 0x4 beq _080681B0 b _080682E8 _080681B0: movs r7, 0 b _080682E8 .align 2, 0 _080681B4: .4byte gUnknown_202F308 _080681B8: .4byte gUnknown_202EE10 _080681BC: .4byte gUnknown_8106E80 _080681C0: .4byte gUnknown_203B418 _080681C4: .4byte 0x0000065a _080681C8: .4byte gUnknown_2027370 _080681CC: .4byte gUnknown_8106DA4 _080681D0: .4byte gUnknown_20255F0 _080681D4: movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _080681E6 adds r0, r2, 0 adds r0, 0x2C ldrb r0, [r0] cmp r0, 0 beq _080681FA _080681E6: movs r0, 0 bl sub_8083CE0 subs r7, 0x1 movs r0, 0x1 negs r0, r0 cmp r7, r0 bne _080682E8 movs r7, 0x3 b _080682E8 _080681FA: ldr r2, [sp, 0x10C] adds r0, r2, r4 ldr r0, [r0] cmp r0, 0x4 bne _08068294 ldrh r1, [r3, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08068212 cmp r5, 0x2 bne _08068248 _08068212: mov r3, r10 ldrb r0, [r3, 0x8] cmp r0, 0 beq _08068248 movs r0, 0 bl sub_8083CE0 ldr r5, _08068244 movs r4, 0x5 _08068224: ldr r1, [r5] movs r0, 0 bl _call_via_r1 movs r0, 0x1C bl sub_803E46C subs r4, 0x1 cmp r4, 0 bge _08068224 mov r4, r9 ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] b _080682E8 .align 2, 0 _08068244: .4byte gUnknown_203B080 _08068248: ldr r0, _0806828C ldrh r1, [r0, 0x4] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _08068258 cmp r5, 0x1 bne _08068294 _08068258: mov r1, r9 movs r2, 0 ldrsh r0, [r1, r2] cmp r0, 0 beq _08068294 movs r0, 0 bl sub_8083CE0 ldr r5, _08068290 movs r4, 0x5 _0806826C: ldr r1, [r5] movs r0, 0 bl _call_via_r1 movs r0, 0x1C bl sub_803E46C subs r4, 0x1 cmp r4, 0 bge _0806826C mov r3, r9 ldrh r0, [r3] subs r0, 0x1 strh r0, [r3] b _080682E8 .align 2, 0 _0806828C: .4byte gUnknown_20255F0 _08068290: .4byte gUnknown_203B084 _08068294: bl sub_80048C8 lsls r0, 24 cmp r0, 0 beq _080682A0 b _08068150 _080682A0: ldr r0, _080682C4 ldrh r1, [r0, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080682B8 ldr r2, _080682C8 adds r0, r2, 0 adds r0, 0x29 ldrb r0, [r0] cmp r0, 0 beq _080682CC _080682B8: bl sub_8083D08 movs r4, 0x1 mov r8, r4 b _080682E8 .align 2, 0 _080682C4: .4byte gUnknown_20255F0 _080682C8: .4byte gUnknown_202EE10 _080682CC: movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _080682E0 adds r0, r2, 0 adds r0, 0x2A ldrb r0, [r0] cmp r0, 0 bne _080682E0 b _08068150 _080682E0: bl sub_8083D30 movs r0, 0x1 mov r8, r0 _080682E8: movs r0, 0x37 bl sub_803E46C mov r1, r8 cmp r1, 0 bne _080682F6 b _080680C4 _080682F6: movs r0, 0 movs r1, 0 bl sub_803EAF0 add sp, 0x110 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_806806C thumb_func_start sub_8068310 sub_8068310: push {r4-r6,lr} movs r4, 0 ldr r6, _08068340 cmp r4, r0 bge _08068338 movs r5, 0x80 lsls r5, 8 adds r3, r1, 0 adds r2, r0, 0 _08068322: ldr r0, [r3] ldrh r1, [r0] adds r0, r5, 0 ands r0, r1 cmp r0, 0 beq _08068330 adds r4, 0x1 _08068330: adds r3, 0x4 subs r2, 0x1 cmp r2, 0 bne _08068322 _08068338: str r4, [r6] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08068340: .4byte gUnknown_202F310 thumb_func_end sub_8068310 thumb_func_start sub_8068344 sub_8068344: push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x8 ldr r0, _08068494 ldr r0, [r0] movs r1, 0x8 ands r0, r1 cmp r0, 0 bne _0806835C b _08068486 _0806835C: ldr r0, _08068498 mov r9, r0 movs r0, 0 movs r1, 0 str r0, [sp] str r1, [sp, 0x4] mov r0, sp ldrh r0, [r0] ldr r1, _0806849C ands r1, r0 ldr r3, _080684A0 ldr r0, [sp] ands r0, r3 orrs r0, r1 str r0, [sp] mov r1, sp ldrh r1, [r1] adds r2, r3, 0 ands r2, r0 orrs r2, r1 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r0, _080684A4 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r6, _080684A8 mov r8, r6 mov r0, r8 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r0, _080684AC ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r0, _080684B0 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] movs r4, 0x80 lsls r4, 7 mov r0, sp ldrh r1, [r0] ldr r6, _080684B4 adds r0, r6, 0 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] orrs r4, r0 ands r3, r1 orrs r3, r4 str r3, [sp] movs r1, 0x80 lsls r1, 6 mov r5, sp ldrh r0, [r5, 0x2] ldr r2, _080684B8 ands r2, r0 orrs r2, r1 ands r2, r6 movs r3, 0xFC lsls r3, 2 ldrh r1, [r5, 0x4] movs r0, 0xFC lsls r0, 8 ands r0, r1 orrs r0, r3 mov r1, r8 ands r0, r1 movs r3, 0xF movs r1, 0xF0 lsls r1, 8 ldr r4, _080684BC ands r0, r4 orrs r0, r1 strh r0, [r5, 0x4] mov r6, r9 movs r1, 0x2 ldrsh r0, [r6, r1] lsls r0, 3 adds r0, 0x8 ands r0, r4 lsls r0, 4 ldrh r1, [r5, 0x6] ands r3, r1 orrs r3, r0 strh r3, [r5, 0x6] movs r3, 0 ldrsh r0, [r6, r3] lsls r0, 3 adds r0, 0x40 ldr r1, _080684C0 ands r0, r1 movs r1, 0xFE lsls r1, 8 ands r2, r1 orrs r2, r0 strh r2, [r5, 0x2] movs r1, 0x80 lsls r1, 1 mov r0, sp movs r2, 0 movs r3, 0 bl AddSprite _08068486: add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08068494: .4byte gUnknown_202EDCC _08068498: .4byte gUnknown_2027370 _0806849C: .4byte 0x0000feff _080684A0: .4byte 0xffff0000 _080684A4: .4byte 0x0000fdff _080684A8: .4byte 0x0000f3ff _080684AC: .4byte 0x0000efff _080684B0: .4byte 0x0000dfff _080684B4: .4byte 0x00003fff _080684B8: .4byte 0x0000c1ff _080684BC: .4byte 0x00000fff _080684C0: .4byte 0x000001ff thumb_func_end sub_8068344 thumb_func_start sub_80684C4 sub_80684C4: push {r4-r6,lr} sub sp, 0x8 ldr r0, _080685E8 ldr r0, [r0] movs r1, 0x8 ands r0, r1 cmp r0, 0 bne _080684D6 b _080685DE _080684D6: ldr r6, _080685EC movs r0, 0 movs r1, 0 str r0, [sp] str r1, [sp, 0x4] mov r0, sp ldrh r0, [r0] ldr r1, _080685F0 ands r1, r0 ldr r3, _080685F4 ldr r0, [sp] ands r0, r3 orrs r0, r1 str r0, [sp] mov r1, sp ldrh r1, [r1] adds r2, r3, 0 ands r2, r0 orrs r2, r1 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r0, _080685F8 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r5, _080685FC adds r0, r5, 0 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r0, _08068600 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r0, _08068604 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] movs r4, 0x80 lsls r4, 7 mov r0, sp ldrh r1, [r0] ldr r0, _08068608 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] orrs r4, r0 ands r3, r1 orrs r3, r4 str r3, [sp] mov r3, sp movs r2, 0xFC lsls r2, 2 ldrh r1, [r3, 0x4] movs r0, 0xFC lsls r0, 8 ands r0, r1 orrs r0, r2 ands r0, r5 movs r2, 0xF movs r1, 0xF0 lsls r1, 8 ldr r4, _0806860C ands r0, r4 orrs r0, r1 strh r0, [r3, 0x4] movs r1, 0x2 ldrsh r0, [r6, r1] lsls r0, 3 adds r0, 0x70 ands r0, r4 lsls r0, 4 ldrh r1, [r3, 0x6] ands r2, r1 orrs r2, r0 strh r2, [r3, 0x6] movs r1, 0 ldrsh r0, [r6, r1] lsls r0, 3 adds r0, 0x40 ldr r1, _08068610 ands r0, r1 strh r0, [r3, 0x2] subs r1, 0xFF mov r0, sp movs r2, 0 movs r3, 0 bl AddSprite _080685DE: add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080685E8: .4byte gUnknown_202EDCC _080685EC: .4byte gUnknown_2027370 _080685F0: .4byte 0x0000feff _080685F4: .4byte 0xffff0000 _080685F8: .4byte 0x0000fdff _080685FC: .4byte 0x0000f3ff _08068600: .4byte 0x0000efff _08068604: .4byte 0x0000dfff _08068608: .4byte 0x00003fff _0806860C: .4byte 0x00000fff _08068610: .4byte 0x000001ff thumb_func_end sub_80684C4 thumb_func_start sub_8068614 sub_8068614: push {lr} ldr r0, _0806862C ldr r1, _08068630 bl OpenFileAndGetFileDataPtr ldr r1, _08068634 ldr r1, [r1] ldr r2, _08068638 adds r1, r2 str r0, [r1] pop {r0} bx r0 .align 2, 0 _0806862C: .4byte gUnknown_8106E98 _08068630: .4byte gUnknown_8510000 _08068634: .4byte gUnknown_203B418 _08068638: .4byte 0x000181e4 thumb_func_end sub_8068614 thumb_func_start sub_806863C sub_806863C: push {lr} ldr r0, _08068650 ldr r0, [r0] ldr r1, _08068654 adds r0, r1 ldr r0, [r0] bl CloseFile pop {r0} bx r0 .align 2, 0 _08068650: .4byte gUnknown_203B418 _08068654: .4byte 0x000181e4 thumb_func_end sub_806863C thumb_func_start sub_8068658 sub_8068658: push {r4-r6,lr} movs r4, 0 ldr r6, _08068740 ldr r5, _08068744 ldr r3, _08068748 movs r2, 0 _08068664: ldr r0, [r5] lsls r1, r4, 2 adds r0, r3 adds r0, r1 str r2, [r0] adds r4, 0x1 cmp r4, r6 ble _08068664 ldr r0, _0806874C movs r1, 0x1 bl sub_8068838 movs r4, 0 ldr r1, _08068744 ldr r0, [r1] ldr r2, _08068750 adds r0, r2 ldr r0, [r0] cmp r4, r0 bge _080686B2 adds r6, r1, 0 ldr r5, _08068754 _08068690: ldr r0, [r6] adds r0, r5 bl sub_808E9B8 lsls r0, 16 asrs r0, 16 movs r1, 0x1 bl sub_8068838 adds r5, 0x8 adds r4, 0x1 ldr r0, [r6] ldr r1, _08068750 adds r0, r1 ldr r0, [r0] cmp r4, r0 blt _08068690 _080686B2: ldr r0, _08068744 ldr r0, [r0] movs r2, 0xD1 lsls r2, 3 adds r1, r0, r2 movs r2, 0 ldrsh r0, [r1, r2] cmp r0, 0 beq _080686CA movs r1, 0x1 bl sub_8068838 _080686CA: movs r4, 0 ldr r6, _08068758 movs r5, 0x1 _080686D0: movs r0, 0x64 muls r0, r4 ldr r1, _0806875C adds r0, r1 ldr r1, [r6] adds r1, r0 ldrh r2, [r1] adds r0, r5, 0 ands r0, r2 cmp r0, 0 beq _080686F8 lsrs r0, r2, 1 ands r0, r5 cmp r0, 0 beq _080686F8 movs r2, 0xE ldrsh r0, [r1, r2] movs r1, 0 bl sub_8068838 _080686F8: adds r4, 0x1 cmp r4, 0x3 ble _080686D0 ldr r0, _08068744 ldr r0, [r0] ldr r1, _08068760 adds r0, r1 movs r2, 0 ldrsh r0, [r0, r2] cmp r0, 0x31 bne _08068738 movs r4, 0 ldr r5, _08068758 _08068712: movs r0, 0x58 muls r0, r4 ldr r1, _08068764 adds r0, r1 ldr r1, [r5] adds r2, r1, r0 ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08068732 movs r1, 0x8 ldrsh r0, [r2, r1] movs r1, 0x1 bl sub_8068838 _08068732: adds r4, 0x1 cmp r4, 0x3 ble _08068712 _08068738: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08068740: .4byte 0x000001a7 _08068744: .4byte gUnknown_203B418 _08068748: .4byte 0x00017b44 _0806874C: .4byte 0x000001a5 _08068750: .4byte 0x000037e4 _08068754: .4byte 0x0000343c _08068758: .4byte gUnknown_203B45C _0806875C: .4byte 0x00008df8 _08068760: .4byte 0x00003a14 _08068764: .4byte 0x00008f88 thumb_func_end sub_8068658 thumb_func_start sub_8068768 sub_8068768: push {r4,r5,lr} movs r5, 0 _0806876C: ldr r0, _080687A4 ldr r0, [r0] lsls r1, r5, 2 ldr r2, _080687A8 adds r0, r2 adds r0, r1 ldr r4, [r0] cmp r4, 0 beq _08068796 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08068796 ldr r0, [r4, 0x70] movs r1, 0x4 ldrsh r0, [r0, r1] movs r1, 0 bl sub_8068838 _08068796: adds r5, 0x1 cmp r5, 0x13 ble _0806876C pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080687A4: .4byte gUnknown_203B418 _080687A8: .4byte 0x000135cc thumb_func_end sub_8068768 thumb_func_start sub_80687AC sub_80687AC: ldr r0, _080687C4 ldr r1, [r0] ldr r0, _080687C8 adds r2, r1, r0 movs r0, 0x80 lsls r0, 3 str r0, [r2] ldr r0, _080687CC adds r1, r0 movs r0, 0xA str r0, [r1] bx lr .align 2, 0 _080687C4: .4byte gUnknown_203B418 _080687C8: .4byte 0x000037f0 _080687CC: .4byte 0x000037f4 thumb_func_end sub_80687AC thumb_func_start sub_80687D0 sub_80687D0: lsls r0, 16 ldr r1, _080687E4 ldr r1, [r1] asrs r0, 14 ldr r2, _080687E8 adds r1, r2 adds r1, r0 ldr r0, [r1] bx lr .align 2, 0 _080687E4: .4byte gUnknown_203B418 _080687E8: .4byte 0x00017b44 thumb_func_end sub_80687D0 thumb_func_start sub_80687EC sub_80687EC: push {r4,r5,lr} sub sp, 0xC lsls r0, 16 asrs r2, r0, 16 ldr r5, _08068828 ldr r0, [r5] lsls r4, r2, 2 ldr r1, _0806882C adds r0, r1 adds r0, r4 ldr r0, [r0] cmp r0, 0 bne _08068820 ldr r1, _08068830 mov r0, sp bl sprintf ldr r1, _08068834 mov r0, sp bl OpenFileAndGetFileDataPtr ldr r1, [r5] ldr r2, _0806882C adds r1, r2 adds r1, r4 str r0, [r1] _08068820: add sp, 0xC pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08068828: .4byte gUnknown_203B418 _0806882C: .4byte 0x00017b44 _08068830: .4byte gUnknown_8106EA0 _08068834: .4byte gUnknown_8510000 thumb_func_end sub_80687EC thumb_func_start sub_8068838 sub_8068838: push {r4,lr} lsls r0, 16 asrs r4, r0, 16 lsls r1, 24 cmp r1, 0 bne _08068864 movs r0, 0xCF lsls r0, 1 cmp r4, r0 beq _0806885E adds r0, 0x3 cmp r4, r0 beq _0806885E adds r0, 0x1 cmp r4, r0 beq _0806885E adds r0, 0x1 cmp r4, r0 bne _08068864 _0806885E: bl sub_80688B0 b _0806887A _08068864: adds r0, r4, 0 bl sub_80687EC ldr r1, _08068880 adds r0, r4, r1 lsls r0, 16 lsrs r0, 16 cmp r0, 0x3 bhi _0806887A bl sub_8068884 _0806887A: pop {r4} pop {r0} bx r0 .align 2, 0 _08068880: .4byte 0xfffffe88 thumb_func_end sub_8068838 thumb_func_start sub_8068884 sub_8068884: push {lr} movs r0, 0xBC lsls r0, 1 bl sub_80687EC ldr r0, _080688A8 bl sub_80687EC movs r0, 0xBD lsls r0, 1 bl sub_80687EC ldr r0, _080688AC bl sub_80687EC pop {r0} bx r0 .align 2, 0 _080688A8: .4byte 0x00000179 _080688AC: .4byte 0x0000017b thumb_func_end sub_8068884 thumb_func_start sub_80688B0 sub_80688B0: push {lr} ldr r0, _080688C8 ldr r0, [r0] movs r1, 0xE0 lsls r1, 6 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] bl sub_80687EC pop {r0} bx r0 .align 2, 0 _080688C8: .4byte gUnknown_203B418 thumb_func_end sub_80688B0 thumb_func_start sub_80688CC sub_80688CC: push {r4-r6,lr} movs r5, 0 ldr r6, _08068900 _080688D2: ldr r0, [r6] lsls r4, r5, 2 ldr r1, _08068904 adds r0, r1 adds r0, r4 ldr r0, [r0] cmp r0, 0 beq _080688F2 bl CloseFile ldr r0, [r6] ldr r1, _08068904 adds r0, r1 adds r0, r4 movs r1, 0 str r1, [r0] _080688F2: adds r5, 0x1 ldr r0, _08068908 cmp r5, r0 ble _080688D2 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08068900: .4byte gUnknown_203B418 _08068904: .4byte 0x00017b44 _08068908: .4byte 0x000001a7 thumb_func_end sub_80688CC thumb_func_start sub_806890C sub_806890C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x64 movs r0, 0 mov r8, r0 mov r10, r0 ldr r6, _08068A60 add r5, sp, 0x8 _08068922: movs r0, 0x58 mov r1, r10 muls r1, r0 adds r0, r1, 0 ldr r2, [r6] adds r7, r2, r0 ldrh r1, [r7] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08068A1C lsrs r0, r1, 1 movs r3, 0x1 ands r0, r3 cmp r0, 0 beq _08068A1C movs r0, 0x64 mov r4, r8 muls r4, r0 ldr r0, _08068A64 adds r0, r4 mov r9, r0 adds r0, r2, r0 mov r1, r10 bl sub_808DE30 ldr r0, _08068A68 ldr r0, [r0] ldr r1, _08068A6C adds r0, r1 ldrb r0, [r0] bl sub_8090104 lsls r0, 24 cmp r0, 0 beq _08068A06 movs r0, 0x80 lsls r0, 1 str r0, [sp, 0x60] movs r2, 0x8 ldrsh r1, [r7, r2] add r0, sp, 0x60 str r0, [sp] movs r3, 0 str r3, [sp, 0x4] add r0, sp, 0x8 movs r2, 0 bl sub_808CFD0 ldr r0, [r6] adds r0, r4 ldrb r1, [r5, 0x3] ldr r2, _08068A70 adds r0, r2 strb r1, [r0] ldr r1, [r6] adds r1, r4 ldrh r2, [r5, 0x14] movs r3, 0x8E lsls r3, 8 adds r0, r1, r3 strh r2, [r0] ldrh r2, [r5, 0x16] adds r3, 0x8 adds r0, r1, r3 strh r2, [r0] ldrh r2, [r5, 0x16] adds r3, 0x2 adds r0, r1, r3 strh r2, [r0] ldrb r0, [r5, 0x18] ldr r2, _08068A74 adds r1, r2 strb r0, [r1] ldr r0, [r6] adds r0, r4 ldrb r1, [r5, 0x19] adds r3, 0x3 adds r0, r3 strb r1, [r0] ldr r0, [r6] adds r0, r4 ldrb r1, [r5, 0x1A] adds r2, 0x2 adds r0, r2 strb r1, [r0] ldr r0, [r6] adds r0, r4 ldrb r1, [r5, 0x1B] adds r3, 0x2 adds r0, r3 strb r1, [r0] ldr r2, [r6] ldr r1, _08068A78 adds r0, r2, r1 adds r0, r4 ldr r1, [sp, 0x24] str r1, [r0] adds r2, r4 adds r3, 0x35 adds r1, r2, r3 ldr r0, [sp, 0x28] str r0, [r1] add r0, sp, 0x2C ldrb r0, [r0] ldr r1, _08068A7C adds r2, r1 strb r0, [r2] ldr r0, [r6] add r0, r9 adds r0, 0x1C add r1, sp, 0x34 bl sub_8093F50 _08068A06: ldr r0, [r6] adds r0, r4 ldr r2, _08068A80 adds r0, r2 mov r3, r8 strh r3, [r0] movs r0, 0x1 add r8, r0 mov r1, r8 cmp r1, 0x4 beq _08068A2A _08068A1C: movs r2, 0x1 add r10, r2 movs r0, 0xCE lsls r0, 1 cmp r10, r0 bgt _08068A2A b _08068922 _08068A2A: mov r3, r8 cmp r3, 0x3 bgt _08068A50 ldr r4, _08068A60 ldr r3, _08068A64 movs r2, 0 movs r0, 0x64 mov r1, r8 muls r1, r0 _08068A3C: ldr r0, [r4] adds r0, r1 adds r0, r3 strh r2, [r0] adds r1, 0x64 movs r0, 0x1 add r8, r0 mov r0, r8 cmp r0, 0x3 ble _08068A3C _08068A50: add sp, 0x64 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08068A60: .4byte gUnknown_203B45C _08068A64: .4byte 0x00008df8 _08068A68: .4byte gUnknown_203B418 _08068A6C: .4byte 0x00000644 _08068A70: .4byte 0x00008dfb _08068A74: .4byte 0x00008e0c _08068A78: .4byte 0x00008e10 _08068A7C: .4byte 0x00008e48 _08068A80: .4byte 0x00008e04 thumb_func_end sub_806890C thumb_func_start sub_8068A84 sub_8068A84: push {r4-r7,lr} adds r6, r0, 0 movs r4, 0 movs r5, 0 ldr r7, _08068AE0 _08068A8E: movs r0, 0x64 muls r0, r5 ldr r1, _08068AE4 adds r0, r1 ldr r1, [r7] adds r2, r1, r0 ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08068AB2 movs r1, 0xE ldrsh r0, [r2, r1] bl sub_808DACC lsls r0, 24 lsrs r0, 24 adds r4, r0 _08068AB2: adds r5, 0x1 cmp r5, 0x3 ble _08068A8E movs r1, 0x8 ldrsh r0, [r6, r1] bl sub_808DACC lsls r0, 24 lsrs r0, 24 adds r4, r0 cmp r4, 0x6 ble _08068B04 ldr r0, _08068AE8 adds r1, r6, 0 movs r2, 0 bl sub_808D9AC ldrb r0, [r6, 0x4] cmp r0, 0x4A bne _08068AF0 ldr r0, _08068AEC b _08068BB2 .align 2, 0 _08068AE0: .4byte gUnknown_203B45C _08068AE4: .4byte 0x00008df8 _08068AE8: .4byte gUnknown_202DF98 _08068AEC: .4byte gUnknown_80FE0F4 _08068AF0: cmp r0, 0x47 bne _08068AFC ldr r0, _08068AF8 b _08068BB2 .align 2, 0 _08068AF8: .4byte gUnknown_80FE0F8 _08068AFC: ldr r0, _08068B00 b _08068BB2 .align 2, 0 _08068B00: .4byte gUnknown_80FE0AC _08068B04: movs r5, 0 ldr r2, _08068B6C _08068B08: movs r0, 0x64 muls r0, r5 ldr r1, _08068B70 adds r0, r1 ldr r1, [r2] adds r4, r1, r0 ldrb r1, [r4] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08068B80 adds r0, r4, 0 adds r1, r6, 0 ldr r2, _08068B74 bl sub_808DE50 ldrh r0, [r4] movs r1, 0x1 movs r2, 0 orrs r1, r0 strh r1, [r4] movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x19 bgt _08068B3E movs r0, 0x1A strh r0, [r4, 0x8] _08068B3E: ldrh r0, [r4] movs r1, 0x2 orrs r0, r1 strh r0, [r4] strh r5, [r4, 0xC] adds r0, r4, 0 adds r0, 0x40 strb r2, [r0, 0x2] strb r2, [r0, 0x1] strb r2, [r0] ldr r0, _08068B78 adds r1, r6, 0 movs r2, 0x6 bl sub_808D9AC ldrb r0, [r6, 0x4] cmp r0, 0x4A beq _08068BB0 cmp r0, 0x47 beq _08068BD0 ldr r0, _08068B7C b _08068BB2 .align 2, 0 _08068B6C: .4byte gUnknown_203B45C _08068B70: .4byte 0x00008df8 _08068B74: .4byte 0x000055aa _08068B78: .4byte gUnknown_202DF98 _08068B7C: .4byte gUnknown_80FE134 _08068B80: adds r5, 0x1 cmp r5, 0x3 ble _08068B08 ldr r0, _08068B9C adds r1, r6, 0 movs r2, 0x6 bl sub_808D9AC ldrb r0, [r6, 0x4] cmp r0, 0x4A bne _08068BA4 ldr r0, _08068BA0 b _08068BB2 .align 2, 0 _08068B9C: .4byte gUnknown_202DF98 _08068BA0: .4byte gUnknown_80FE0F4 _08068BA4: cmp r0, 0x47 bne _08068BC4 ldr r0, _08068BAC b _08068BB2 .align 2, 0 _08068BAC: .4byte gUnknown_80FE0F8 _08068BB0: ldr r0, _08068BC0 _08068BB2: ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage b _08068BD0 .align 2, 0 _08068BC0: .4byte gUnknown_80FE168 _08068BC4: ldr r0, _08068BD8 ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage _08068BD0: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08068BD8: .4byte gUnknown_80FE0AC thumb_func_end sub_8068A84 thumb_func_start sub_8068BDC sub_8068BDC: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r4, _08068CC4 add sp, r4 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x220] movs r1, 0 mov r0, sp adds r0, 0x39 _08068BF6: strb r1, [r0] subs r0, 0x1 cmp r0, sp bge _08068BF6 movs r6, 0 ldr r0, _08068CC8 mov r8, r0 movs r7, 0x1 _08068C06: movs r0, 0x64 muls r0, r6 ldr r1, _08068CCC adds r0, r1 mov r2, r8 ldr r1, [r2] adds r4, r1, r0 ldrb r1, [r4] adds r0, r7, 0 ands r0, r1 cmp r0, 0 beq _08068C50 movs r3, 0xA ldrsh r0, [r4, r3] bl sub_806A564 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _08068C50 adds r4, 0x40 ldrb r1, [r4] adds r0, r7, 0 ands r0, r1 cmp r0, 0 beq _08068C50 ldrb r0, [r4, 0x2] cmp r0, 0x69 bne _08068C50 adds r0, r4, 0 bl sub_80915D4 bl sub_80913A0 strb r5, [r4, 0x2] strb r5, [r4, 0x1] strb r5, [r4] _08068C50: adds r6, 0x1 cmp r6, 0x3 ble _08068C06 movs r6, 0 movs r5, 0x1 _08068C5A: ldr r1, _08068CC8 movs r0, 0x64 muls r0, r6 ldr r2, _08068CCC adds r0, r2 ldr r1, [r1] adds r4, r1, r0 ldrb r1, [r4] adds r0, r5, 0 ands r0, r1 cmp r0, 0 beq _08068CFE movs r3, 0xA ldrsh r0, [r4, r3] bl sub_806A564 lsls r0, 24 cmp r0, 0 bne _08068CFE ldr r1, _08068CD0 adds r0, r1, 0 ldrh r2, [r4, 0xE] adds r0, r2 lsls r0, 16 lsrs r0, 16 cmp r0, 0x2 bhi _08068C96 movs r0, 0xBC lsls r0, 1 strh r0, [r4, 0xE] _08068C96: movs r3, 0xA ldrsh r0, [r4, r3] bl sub_806A58C lsls r0, 24 cmp r0, 0 beq _08068CE8 ldr r0, _08068CD4 ldr r0, [r0] ldr r1, _08068CD8 adds r0, r1 ldrb r0, [r0] bl sub_8090104 lsls r0, 24 cmp r0, 0 beq _08068CDC movs r2, 0xA ldrsh r0, [r4, r2] adds r1, r4, 0 bl sub_808DFDC b _08068CFE .align 2, 0 _08068CC4: .4byte 0xfffffdd8 _08068CC8: .4byte gUnknown_203B45C _08068CCC: .4byte 0x00008df8 _08068CD0: .4byte 0xfffffe87 _08068CD4: .4byte gUnknown_203B418 _08068CD8: .4byte 0x00000644 _08068CDC: movs r3, 0xA ldrsh r0, [r4, r3] adds r1, r4, 0 bl sub_808DF2C b _08068CFE _08068CE8: ldr r0, [sp, 0x220] cmp r0, 0 beq _08068CFE movs r1, 0xE ldrsh r0, [r4, r1] bl sub_808DBA8 lsls r0, 24 lsrs r0, 24 add r0, sp strb r5, [r0] _08068CFE: adds r6, 0x1 cmp r6, 0x3 ble _08068C5A movs r1, 0 _08068D06: lsls r0, r1, 24 lsrs r0, 24 mov r8, r0 mov r0, sp add r0, r8 ldrb r0, [r0] adds r1, 0x1 str r1, [sp, 0x224] cmp r0, 0 bne _08068D1C b _08068F08 _08068D1C: mov r0, r8 add r1, sp, 0x1F0 movs r2, 0x1 movs r3, 0x1 bl sub_8092404 mov r0, r8 add r1, sp, 0x214 movs r2, 0 movs r3, 0 bl sub_8092638 movs r7, 0 add r1, sp, 0x1F0 ldrh r0, [r1] ldr r2, _08068E10 cmp r0, r2 beq _08068D60 ldr r0, _08068E14 ldr r3, [r0] adds r5, r2, 0 add r2, sp, 0x3C movs r4, 0x58 _08068D4A: ldrh r0, [r1] muls r0, r4 adds r0, r3, r0 stm r2!, {r0} adds r1, 0x2 adds r7, 0x1 cmp r7, 0x14 bgt _08068D60 ldrh r0, [r1] cmp r0, r5 bne _08068D4A _08068D60: movs r6, 0 ldr r2, _08068E14 mov r10, r2 movs r3, 0 mov r9, r3 _08068D6A: movs r0, 0x64 muls r0, r6 ldr r1, _08068E18 adds r0, r1 mov r2, r10 ldr r1, [r2] adds r5, r1, r0 ldrb r1, [r5] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08068DD6 movs r3, 0xA ldrsh r0, [r5, r3] bl sub_806A5A4 lsls r0, 24 cmp r0, 0 beq _08068DD6 movs r1, 0xE ldrsh r0, [r5, r1] bl sub_808DBA8 lsls r0, 24 lsrs r0, 24 cmp r0, r8 bne _08068DD6 ldr r2, [sp, 0x220] cmp r2, 0 beq _08068DD6 add r4, sp, 0x3C lsls r0, r7, 2 adds r4, r0 add r0, sp, 0x90 movs r1, 0x58 muls r1, r6 adds r0, r1 str r0, [r4] adds r1, r5, 0 bl sub_808DF44 ldr r2, [r4] ldrh r0, [r2] movs r3, 0x80 lsls r3, 7 adds r1, r3, 0 orrs r0, r1 strh r0, [r2] ldr r0, [r4] mov r1, r9 strb r1, [r0, 0xC] ldr r0, [r4] strb r1, [r0, 0x10] adds r7, 0x1 _08068DD6: adds r6, 0x1 cmp r6, 0x3 ble _08068D6A add r0, sp, 0x214 movs r2, 0 ldrsh r0, [r0, r2] cmp r7, r0 bgt _08068E1C cmp r7, 0 bgt _08068DEC b _08068F08 _08068DEC: add r5, sp, 0x3C movs r3, 0x80 lsls r3, 7 adds r6, r3, 0 adds r4, r7, 0 _08068DF6: ldr r1, [r5] ldrh r0, [r1] ands r0, r6 cmp r0, 0 beq _08068E06 adds r0, r1, 0 bl sub_808D1DC _08068E06: adds r5, 0x4 subs r4, 0x1 cmp r4, 0 bne _08068DF6 b _08068F08 .align 2, 0 _08068E10: .4byte 0x0000ffff _08068E14: .4byte gUnknown_203B45C _08068E18: .4byte 0x00008df8 _08068E1C: ldr r0, _08068E78 mov r1, r8 movs r2, 0 bl sub_8092578 ldr r0, _08068E7C ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage add r4, sp, 0x3C _08068E34: add r0, sp, 0x214 movs r2, 0 ldrsh r1, [r0, r2] subs r1, r7, r1 mov r0, r8 adds r2, r7, 0 adds r3, r4, 0 bl sub_8067A80 movs r6, 0 cmp r6, r7 bge _08068E8E movs r5, 0x80 lsls r5, 8 adds r3, r4, 0 _08068E52: ldr r2, [r3] ldrh r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08068E86 adds r0, r5, 0 ands r0, r1 cmp r0, 0 beq _08068E86 ldrb r0, [r2, 0x4] subs r0, 0x44 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _08068E80 movs r0, 0x1 b _08068E82 .align 2, 0 _08068E78: .4byte gUnknown_202DE58 _08068E7C: .4byte gUnknown_80FE1A4 _08068E80: movs r0, 0 _08068E82: cmp r0, 0 bne _08068E8E _08068E86: adds r3, 0x4 adds r6, 0x1 cmp r6, r7 blt _08068E52 _08068E8E: cmp r6, r7 beq _08068EA2 ldr r0, _08068F24 ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl sub_8052B8C cmp r0, 0x1 bne _08068E34 _08068EA2: cmp r7, 0 ble _08068ED4 movs r3, 0x80 lsls r3, 8 mov r9, r3 adds r3, r4, 0 movs r0, 0x1 mov r8, r0 movs r5, 0 adds r6, r7, 0 _08068EB6: ldr r2, [r3] ldrh r1, [r2] mov r0, r8 ands r0, r1 cmp r0, 0 beq _08068ECC mov r0, r9 ands r0, r1 cmp r0, 0 beq _08068ECC strh r5, [r2] _08068ECC: adds r3, 0x4 subs r6, 0x1 cmp r6, 0 bne _08068EB6 _08068ED4: cmp r7, 0 ble _08068F08 movs r1, 0x80 lsls r1, 7 adds r5, r1, 0 adds r6, r7, 0 _08068EE0: ldr r2, [r4] ldrh r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08068F00 adds r0, r1, 0 ands r0, r5 cmp r0, 0 beq _08068F00 adds r0, r2, 0 bl sub_808D1DC ldr r1, [r4] movs r0, 0 strh r0, [r1] _08068F00: adds r4, 0x4 subs r6, 0x1 cmp r6, 0 bne _08068EE0 _08068F08: ldr r1, [sp, 0x224] cmp r1, 0x39 bgt _08068F10 b _08068D06 _08068F10: movs r3, 0x8A lsls r3, 2 add sp, r3 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08068F24: .4byte gUnknown_80FE20C thumb_func_end sub_8068BDC thumb_func_start sub_8068F28 sub_8068F28: push {r4-r7,lr} movs r6, 0 ldr r7, _08068F5C _08068F2E: movs r0, 0x64 muls r0, r6 ldr r1, _08068F60 adds r0, r1 ldr r1, [r7] adds r4, r1, r0 ldrb r1, [r4] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08068F74 movs r1, 0xA ldrsh r0, [r4, r1] bl sub_806A564 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 beq _08068F64 movs r0, 0 strh r0, [r4] b _08068F74 .align 2, 0 _08068F5C: .4byte gUnknown_203B45C _08068F60: .4byte 0x00008df8 _08068F64: movs r1, 0xA ldrsh r0, [r4, r1] bl sub_806A538 lsls r0, 24 cmp r0, 0 beq _08068F74 strh r5, [r4] _08068F74: adds r6, 0x1 cmp r6, 0x3 ble _08068F2E pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8068F28 thumb_func_start sub_8068F80 sub_8068F80: push {r4,r5,lr} bl sub_8083600 adds r5, r0, 0 ldr r0, _08068FD4 ldr r4, [r0] ldr r1, _08068FD8 adds r0, r4, r1 movs r1, 0 strb r1, [r0] ldr r2, _08068FDC adds r0, r4, r2 strb r1, [r0] adds r2, 0x6 adds r0, r4, r2 strb r1, [r0] adds r0, r4, 0 adds r0, 0xC0 str r1, [r0] cmp r5, 0 beq _08068FCC adds r0, r5, 0 bl sub_8045128 ldrh r0, [r0] lsrs r0, 5 movs r1, 0x1 ands r0, r1 movs r2, 0xD3 lsls r2, 3 adds r1, r4, r2 strb r0, [r1] adds r2, 0x1 adds r1, r4, r2 strb r0, [r1] adds r0, r5, 0x4 bl sub_804AC20 _08068FCC: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08068FD4: .4byte gUnknown_203B418 _08068FD8: .4byte 0x0000066c _08068FDC: .4byte 0x0000066d thumb_func_end sub_8068F80 thumb_func_start sub_8068FE0 sub_8068FE0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x84 mov r8, r0 str r2, [sp, 0x74] lsls r1, 16 asrs r1, 16 mov r9, r1 ldr r7, [r0, 0x70] bl sub_8045128 adds r4, r0, 0 ldr r0, [sp, 0x74] cmp r0, 0 bne _0806900E mov r0, sp bl sub_80457DC mov r1, sp str r1, [sp, 0x74] _0806900E: ldr r0, [r4, 0x10] cmp r0, r8 bne _08069018 movs r0, 0 str r0, [r4, 0x10] _08069018: mov r2, r8 movs r3, 0x4 ldrsh r0, [r2, r3] movs r3, 0x6 ldrsh r1, [r2, r3] bl sub_80402AC movs r5, 0 adds r6, r7, 0 adds r6, 0xC8 movs r0, 0xB0 adds r0, r7 mov r10, r0 mov r1, r8 adds r1, 0x22 str r1, [sp, 0x80] mov r2, r8 adds r2, 0x20 str r2, [sp, 0x7C] adds r3, r7, 0 adds r3, 0x40 str r3, [sp, 0x78] _08069044: ldr r0, _080690E4 ldr r0, [r0] lsls r1, r5, 2 ldr r2, _080690E8 adds r0, r2 adds r0, r1 ldr r4, [r0] cmp r4, 0 beq _08069072 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08069072 ldr r0, [r4, 0x70] adds r1, r0, 0 adds r1, 0x80 ldr r0, [r1] cmp r0, r8 bne _08069072 movs r0, 0 str r0, [r1] _08069072: adds r5, 0x1 cmp r5, 0x13 ble _08069044 ldrb r0, [r6] cmp r0, 0x2 bne _0806908A ldr r0, _080690E4 ldr r0, [r0] ldr r3, _080690EC adds r0, r3 movs r1, 0 strb r1, [r0] _0806908A: mov r1, r10 ldrb r0, [r1] subs r0, 0x3 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _080690A2 adds r0, r7, 0 adds r0, 0x9C ldr r0, [r0] bl sub_8076CB4 _080690A2: mov r0, r8 bl sub_8078084 movs r0, 0 ldr r2, [sp, 0x80] strb r0, [r2] ldr r3, [sp, 0x7C] strb r0, [r3] ldr r1, _080690F0 str r0, [r1] ldr r1, [sp, 0x78] ldrb r0, [r1] cmp r0, 0x41 bne _080690FC ldr r3, _080690E4 ldr r2, [r3] ldr r1, _080690F4 adds r0, r2, r1 ldrb r1, [r0] cmp r1, 0 bne _080690FC movs r0, 0x1 strb r0, [r2, 0x10] strh r1, [r7, 0xE] ldr r0, [r3] ldr r2, _080690F8 adds r0, r2 mov r1, r8 movs r2, 0 bl sub_8045B94 b _08069484 .align 2, 0 _080690E4: .4byte gUnknown_203B418 _080690E8: .4byte 0x000135cc _080690EC: .4byte 0x000037fc _080690F0: .4byte gUnknown_203B450 _080690F4: .4byte 0x0000065c _080690F8: .4byte 0x000005f4 _080690FC: ldrb r0, [r7, 0x7] cmp r0, 0 bne _08069104 b _0806928E _08069104: movs r0, 0x3C movs r1, 0x49 bl sub_803E708 bl sub_80532B4 ldr r5, _08069198 ldr r2, [r5] ldrb r0, [r2, 0x6] cmp r0, 0 bne _080691C8 ldr r3, _0806919C adds r0, r2, r3 ldrb r0, [r0] cmp r0, 0 bne _080691E0 movs r0, 0x87 lsls r0, 2 cmp r9, r0 beq _080691E0 adds r0, 0x6 cmp r9, r0 beq _080691E0 subs r0, 0x4 cmp r9, r0 beq _080691E0 ldr r1, _080691A0 adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0 bne _080691E0 ldr r6, _080691A4 adds r0, r2, r6 movs r1, 0 ldrsb r1, [r0, r1] cmp r1, 0 blt _080691E0 adds r3, 0xA adds r0, r2, r3 ldrb r0, [r0] cmp r0, 0x1 beq _080691E0 cmp r1, 0 ble _080691B4 ldr r0, _080691A8 ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl sub_8052B8C adds r4, r0, 0 cmp r4, 0x1 bne _080691E0 ldr r0, _080691AC ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage ldr r0, [r5] strb r4, [r0, 0x4] ldr r0, [r5] strb r4, [r0, 0x6] ldr r0, [r5] ldr r1, _080691B0 adds r0, r1 strb r4, [r0] ldr r1, [r5] adds r1, r6 ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] b _08069484 .align 2, 0 _08069198: .4byte gUnknown_203B418 _0806919C: .4byte 0x0000066e _080691A0: .4byte 0x00003a0d _080691A4: .4byte 0x0000067b _080691A8: .4byte gUnknown_80FE268 _080691AC: .4byte gUnknown_80FE28C _080691B0: .4byte 0x00000654 _080691B4: ldr r0, _080691C4 ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage b _080691E0 .align 2, 0 _080691C4: .4byte gUnknown_80FE2D0 _080691C8: movs r1, 0x1 strb r1, [r2, 0x4] ldr r0, [r5] strb r1, [r0, 0x6] ldr r0, [r5] ldr r2, _080691DC adds r0, r2 strb r1, [r0] b _08069484 .align 2, 0 _080691DC: .4byte 0x00000654 _080691E0: mov r0, r9 ldr r1, [sp, 0x74] mov r2, r8 bl sub_8083AB0 ldr r0, _080691F8 cmp r9, r0 bne _0806928E movs r6, 0 movs r5, 0 b _080691FE .align 2, 0 _080691F8: .4byte 0x0000021f _080691FC: adds r5, 0x1 _080691FE: cmp r5, 0x3 bgt _08069228 ldr r0, _080692C4 ldr r0, [r0] lsls r1, r5, 2 ldr r3, _080692C8 adds r0, r3 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080691FC ldr r6, [r4, 0x70] adds r0, r6, 0 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x41 bne _080691FC _08069228: cmp r6, 0 beq _0806928E ldr r5, _080692CC ldrb r0, [r6, 0xA] movs r1, 0x64 muls r1, r0 ldr r2, _080692D0 adds r1, r2 ldr r2, [r5] adds r4, r2, r1 adds r1, r6, 0 bl sub_806C264 movs r3, 0xA ldrsh r0, [r4, r3] bl sub_806A58C lsls r0, 24 cmp r0, 0 beq _0806928A ldr r0, _080692C4 ldr r0, [r0] ldr r1, _080692D4 adds r0, r1 ldrb r0, [r0] bl sub_8090104 lsls r0, 24 cmp r0, 0 bne _0806926E movs r2, 0xA ldrsh r0, [r4, r2] adds r1, r4, 0 bl sub_808DF2C _0806926E: bl sub_8044210 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 bne _0806928A movs r3, 0xA ldrsh r1, [r4, r3] movs r0, 0x58 muls r0, r1 ldr r1, [r5] adds r0, r1 adds r0, 0x28 strb r2, [r0] _0806928A: movs r0, 0 strh r0, [r4] _0806928E: ldrb r0, [r7, 0x6] cmp r0, 0 beq _080692DC movs r5, 0 movs r1, 0xB4 lsls r1, 1 adds r0, r7, r1 movs r2, 0x98 adds r2, r7 mov r10, r2 ldrb r3, [r0] cmp r5, r3 bge _0806930A ldr r4, _080692D8 subs r1, 0x1 adds r2, r7, r1 movs r3, 0 adds r1, r0, 0 _080692B2: ldrb r0, [r2] adds r0, r5 adds r0, r4 strb r3, [r0] adds r5, 0x1 ldrb r0, [r1] cmp r5, r0 blt _080692B2 b _0806930A .align 2, 0 _080692C4: .4byte gUnknown_203B418 _080692C8: .4byte 0x0001357c _080692CC: .4byte gUnknown_203B45C _080692D0: .4byte 0x00008df8 _080692D4: .4byte 0x00000644 _080692D8: .4byte gUnknown_202EE76 _080692DC: movs r5, 0 movs r1, 0xB4 lsls r1, 1 adds r0, r7, r1 movs r2, 0x98 adds r2, r7 mov r10, r2 ldrb r3, [r0] cmp r5, r3 bge _0806930A ldr r4, _0806932C subs r1, 0x1 adds r2, r7, r1 movs r3, 0 adds r1, r0, 0 _080692FA: ldrb r0, [r2] adds r0, r5 adds r0, r4 strb r3, [r0] adds r5, 0x1 ldrb r0, [r1] cmp r5, r0 blt _080692FA _0806930A: ldr r1, [sp, 0x78] ldrb r0, [r1] cmp r0, 0x4A bne _08069338 ldr r2, _08069330 ldr r1, [r2] movs r0, 0x2 strb r0, [r1, 0x10] ldr r0, [r2] ldr r2, _08069334 adds r0, r2 mov r1, r8 movs r2, 0 bl sub_8045B94 b _08069352 .align 2, 0 _0806932C: .4byte gUnknown_202EE70 _08069330: .4byte gUnknown_203B418 _08069334: .4byte 0x000005f4 _08069338: cmp r0, 0x47 bne _08069352 ldr r2, _08069494 ldr r1, [r2] movs r0, 0x3 strb r0, [r1, 0x10] ldr r0, [r2] ldr r3, _08069498 adds r0, r3 mov r1, r8 movs r2, 0 bl sub_8045B94 _08069352: bl sub_8083600 cmp r0, 0 beq _080693C6 movs r0, 0x87 lsls r0, 2 cmp r9, r0 beq _080693C6 ldrb r0, [r7, 0x7] cmp r0, 0 bne _080693C6 ldr r4, _08069494 ldr r0, [r4] ldrb r0, [r0, 0x10] cmp r0, 0 bne _080693C6 adds r0, r7, 0 adds r0, 0xA4 ldrb r1, [r0] movs r2, 0 movs r0, 0xFA lsls r0, 1 cmp r9, r0 bne _08069384 movs r2, 0x1 _08069384: mov r0, r8 bl sub_8084E00 ldr r1, _0806949C adds r0, r1, 0 ldrh r2, [r7, 0x4] adds r0, r2 lsls r0, 16 lsrs r0, 16 cmp r0, 0x2 bhi _080693C6 bl sub_80441BC lsls r0, 24 cmp r0, 0 bne _080693C6 ldrb r0, [r7, 0x6] cmp r0, 0 beq _080693CC ldr r0, [r4] ldr r3, _080694A0 adds r0, r3 movs r1, 0x1 strb r1, [r0] ldr r0, _080694A4 ldr r1, [r0] mov r0, r8 bl sub_805239C bl sub_803E178 bl sub_8049ED4 _080693C6: ldrb r0, [r7, 0x6] cmp r0, 0 bne _08069466 _080693CC: ldr r6, _080694A8 ldrb r0, [r7, 0xA] movs r1, 0x64 muls r1, r0 ldr r2, _080694AC adds r1, r2 ldr r2, [r6] adds r4, r2, r1 adds r1, r7, 0 bl sub_806C264 movs r3, 0xA ldrsh r0, [r4, r3] bl sub_806A58C lsls r0, 24 cmp r0, 0 beq _08069462 ldr r5, _08069494 ldr r0, [r5] ldr r1, _080694B0 adds r0, r1 ldrb r0, [r0] bl sub_8090104 lsls r0, 24 cmp r0, 0 bne _0806940E movs r2, 0xA ldrsh r0, [r4, r2] adds r1, r4, 0 bl sub_808DF2C _0806940E: bl sub_8044210 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 bne _0806942A movs r3, 0xA ldrsh r1, [r4, r3] movs r0, 0x58 muls r0, r1 ldr r1, [r6] adds r0, r1 adds r0, 0x28 strb r2, [r0] _0806942A: ldrb r1, [r7, 0x7] negs r0, r1 orrs r0, r1 lsrs r1, r0, 31 ldr r0, [r5] ldr r2, _080694B4 adds r0, r2 ldrb r0, [r0] cmp r0, 0 bne _08069448 ldr r3, [sp, 0x78] ldrb r0, [r3] cmp r0, 0x41 bne _08069448 movs r1, 0x1 _08069448: cmp r1, 0 bne _08069462 movs r0, 0xA ldrsh r1, [r4, r0] movs r0, 0x58 muls r1, r0 ldr r0, _080694A8 ldr r0, [r0] adds r1, r0 ldrh r2, [r1] ldr r0, _080694B8 ands r0, r2 strh r0, [r1] _08069462: movs r0, 0 strh r0, [r4] _08069466: mov r1, r10 ldr r0, [r1] bl sub_800F934 ldr r0, _080694BC movs r2, 0 str r2, [r0] ldr r0, _08069494 ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0xC] mov r3, r8 str r2, [r3] bl sub_8045ACC _08069484: add sp, 0x84 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08069494: .4byte gUnknown_203B418 _08069498: .4byte 0x000005f4 _0806949C: .4byte 0xfffffe5f _080694A0: .4byte 0x000037fe _080694A4: .4byte gUnknown_80FA580 _080694A8: .4byte gUnknown_203B45C _080694AC: .4byte 0x00008df8 _080694B0: .4byte 0x00000644 _080694B4: .4byte 0x0000065c _080694B8: .4byte 0x0000fffd _080694BC: .4byte gUnknown_203B450 thumb_func_end sub_8068FE0 thumb_func_start sub_80694C0 sub_80694C0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r4, r0, 0 adds r7, r1, 0 mov r8, r2 lsls r3, 24 lsrs r3, 24 mov r9, r3 adds r0, r7, 0 mov r1, r8 bl sub_8049590 mov r10, r0 ldr r5, [r4, 0x70] adds r6, r5, 0 adds r6, 0xB0 ldrb r0, [r6] subs r0, 0x3 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _080694FC adds r0, r5, 0 adds r0, 0x9C ldr r0, [r0] bl sub_8076CB4 _080694FC: ldrb r0, [r6] cmp r0, 0x7 beq _0806950A cmp r0, 0x5 beq _0806950A cmp r0, 0x2 bne _08069512 _0806950A: adds r0, r4, 0 adds r1, r4, 0 bl sub_807A324 _08069512: movs r0, 0x4 ldrsh r2, [r4, r0] cmp r7, r2 bne _08069522 movs r1, 0x6 ldrsh r0, [r4, r1] cmp r8, r0 beq _080695DE _08069522: movs r1, 0x4 ldrsh r0, [r4, r1] cmp r0, 0 blt _08069552 movs r1, 0x6 ldrsh r0, [r4, r1] cmp r0, 0 blt _08069552 adds r1, r0, 0 adds r0, r2, 0 bl sub_8049590 adds r1, r0, 0 ldr r0, [r1, 0x10] cmp r0, r4 bne _08069546 movs r0, 0 str r0, [r1, 0x10] _08069546: movs r1, 0x4 ldrsh r0, [r4, r1] movs r2, 0x6 ldrsh r1, [r4, r2] bl sub_80402AC _08069552: ldrh r0, [r4, 0x4] strh r0, [r4, 0x8] ldrh r0, [r4, 0x6] strh r0, [r4, 0xA] strh r7, [r4, 0x4] mov r0, r8 strh r0, [r4, 0x6] ldrb r0, [r5, 0x7] cmp r0, 0 beq _0806956E ldr r0, _0806959C strh r7, [r0] mov r1, r8 strh r1, [r0, 0x2] _0806956E: mov r2, r10 str r4, [r2, 0x10] ldrb r0, [r5, 0x7] cmp r0, 0 beq _08069588 ldr r0, _080695A0 strh r7, [r0] mov r1, r8 strh r1, [r0, 0x2] ldr r0, _080695A4 ldr r1, [r0] movs r0, 0 strb r0, [r1, 0x1] _08069588: adds r0, r7, 0 mov r1, r8 bl sub_80402AC mov r2, r9 cmp r2, 0 beq _080695A8 cmp r2, 0x1 beq _080695C4 b _080695CE .align 2, 0 _0806959C: .4byte gUnknown_203B410 _080695A0: .4byte gUnknown_202EE0C _080695A4: .4byte gUnknown_203B418 _080695A8: ldr r0, [r5, 0x70] str r0, [r5, 0x74] ldr r0, [r5, 0x6C] str r0, [r5, 0x70] ldr r0, [r5, 0x68] str r0, [r5, 0x6C] adds r0, r5, 0 adds r0, 0xE4 ldrb r0, [r0] cmp r0, 0x1 beq _080695CE ldr r0, [r4, 0x8] str r0, [r5, 0x68] b _080695CE _080695C4: ldr r0, [r4, 0x4] str r0, [r5, 0x68] str r0, [r5, 0x6C] str r0, [r5, 0x70] str r0, [r5, 0x74] _080695CE: mov r1, r10 ldrb r0, [r1, 0x9] adds r1, r4, 0 adds r1, 0x25 strb r0, [r1] adds r0, r4, 0 bl sub_806CF98 _080695DE: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80694C0 thumb_func_start sub_80695EC sub_80695EC: push {r4-r7,lr} adds r4, r0, 0 adds r6, r1, 0 adds r7, r2, 0 ldr r1, [r4, 0x70] adds r5, r1, 0 adds r0, r1, 0 adds r0, 0xB0 ldrb r0, [r0] subs r0, 0x3 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _08069612 adds r0, r1, 0 adds r0, 0x9C ldr r0, [r0] bl sub_8076CB4 _08069612: movs r1, 0x4 ldrsh r0, [r4, r1] cmp r6, r0 bne _08069622 movs r1, 0x6 ldrsh r0, [r4, r1] cmp r7, r0 beq _08069658 _08069622: ldrh r0, [r4, 0x4] strh r0, [r4, 0x8] ldrh r0, [r4, 0x6] strh r0, [r4, 0xA] strh r6, [r4, 0x4] strh r7, [r4, 0x6] ldr r0, [r5, 0x70] str r0, [r5, 0x74] ldr r0, [r5, 0x6C] str r0, [r5, 0x70] ldr r0, [r5, 0x68] str r0, [r5, 0x6C] adds r0, r5, 0 adds r0, 0xE4 ldrb r0, [r0] cmp r0, 0x1 beq _08069648 ldr r0, [r4, 0x8] str r0, [r5, 0x68] _08069648: adds r0, r6, 0 adds r1, r7, 0 bl sub_804954C ldrb r1, [r0, 0x9] adds r0, r4, 0 adds r0, 0x25 strb r1, [r0] _08069658: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80695EC thumb_func_start sub_8069660 sub_8069660: push {r4,r5,lr} adds r4, r0, 0 ldr r0, [r4, 0x70] adds r5, r0, 0 adds r5, 0x46 ldrb r1, [r5] adds r0, r4, 0 bl sub_8070F80 lsls r0, 24 cmp r0, 0 bne _0806967C movs r0, 0 b _0806969E _0806967C: movs r1, 0x4 ldrsh r0, [r4, r1] ldr r1, _080696A4 ldrb r2, [r5] lsls r2, 2 adds r2, r1 movs r3, 0 ldrsh r1, [r2, r3] adds r0, r1 movs r3, 0x6 ldrsh r1, [r4, r3] movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 bl sub_804954C ldr r0, [r0, 0x10] _0806969E: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080696A4: .4byte gUnknown_80F4448 thumb_func_end sub_8069660 thumb_func_start sub_80696A8 sub_80696A8: push {r4,r5,lr} adds r4, r0, 0 ldr r0, [r4, 0x70] adds r5, r0, 0 adds r5, 0x46 ldrb r1, [r5] adds r0, r4, 0 bl sub_8071138 lsls r0, 24 cmp r0, 0 beq _080696F4 movs r1, 0x4 ldrsh r0, [r4, r1] ldr r1, _080696F0 ldrb r2, [r5] lsls r2, 2 adds r2, r1 movs r3, 0 ldrsh r1, [r2, r3] adds r0, r1 movs r3, 0x6 ldrsh r1, [r4, r3] movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 bl sub_804954C ldr r1, [r0, 0x10] cmp r1, 0 beq _080696F4 ldr r0, [r1] cmp r0, 0x1 bne _080696F4 adds r0, r1, 0 b _080696F6 .align 2, 0 _080696F0: .4byte gUnknown_80F4448 _080696F4: movs r0, 0 _080696F6: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80696A8 thumb_func_start sub_80696FC sub_80696FC: push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 ldr r3, [r4, 0x70] ldr r5, _08069764 adds r3, 0x46 ldrb r0, [r3] lsls r0, 2 adds r0, r5 ldrh r0, [r0] ldrh r1, [r4, 0x4] adds r0, r1 lsls r0, 16 lsrs r0, 16 ldr r1, _08069768 ldr r2, [sp] ands r2, r1 orrs r2, r0 str r2, [sp] ldrb r0, [r3] lsls r0, 2 adds r0, r5 ldrh r0, [r0, 0x2] ldrh r1, [r4, 0x6] adds r0, r1 lsls r0, 16 ldr r1, _0806976C ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp movs r2, 0 ldrsh r0, [r0, r2] asrs r1, 16 bl sub_804954C adds r5, r0, 0 adds r0, r4, 0 mov r1, sp bl sub_80705F0 lsls r0, 24 cmp r0, 0 bne _08069770 ldr r1, [r5, 0x10] cmp r1, 0 beq _08069770 ldr r0, [r1] cmp r0, 0x1 bne _08069770 adds r0, r1, 0 b _08069772 .align 2, 0 _08069764: .4byte gUnknown_80F4448 _08069768: .4byte 0xffff0000 _0806976C: .4byte 0x0000ffff _08069770: movs r0, 0 _08069772: add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80696FC thumb_func_start sub_806977C sub_806977C: push {r4-r7,lr} sub sp, 0x4 adds r4, r0, 0 ldr r0, [r4, 0x70] ldr r7, _0806982C adds r5, r0, 0 adds r5, 0x46 ldrb r0, [r5] lsls r0, 2 adds r0, r7 ldrh r0, [r0] ldrh r1, [r4, 0x4] adds r0, r1 lsls r0, 16 lsrs r0, 16 ldr r1, _08069830 ldr r2, [sp] ands r2, r1 orrs r2, r0 str r2, [sp] ldrb r0, [r5] lsls r0, 2 adds r0, r7 ldrh r0, [r0, 0x2] ldrh r1, [r4, 0x6] adds r0, r1 lsls r0, 16 ldr r1, _08069834 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp movs r2, 0 ldrsh r0, [r0, r2] asrs r1, 16 bl sub_804954C mov r6, sp adds r0, r4, 0 mov r1, sp bl sub_80705F0 lsls r0, 24 cmp r0, 0 bne _08069838 ldrb r0, [r5] lsls r0, 2 adds r0, r7 movs r1, 0 ldrsh r0, [r0, r1] lsls r0, 1 ldrh r2, [r4, 0x4] adds r0, r2 mov r1, sp strh r0, [r1] ldrb r0, [r5] lsls r0, 2 adds r0, r7 movs r1, 0x2 ldrsh r0, [r0, r1] lsls r0, 1 ldrh r2, [r4, 0x6] adds r0, r2 strh r0, [r6, 0x2] mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0x2 ldrsh r1, [r6, r2] bl sub_804954C adds r5, r0, 0 adds r0, r4, 0 mov r1, sp bl sub_80705F0 lsls r0, 24 cmp r0, 0 bne _08069838 ldr r1, [r5, 0x10] cmp r1, 0 beq _08069838 ldr r0, [r1] cmp r0, 0x1 bne _08069838 adds r0, r1, 0 b _0806983A .align 2, 0 _0806982C: .4byte gUnknown_80F4448 _08069830: .4byte 0xffff0000 _08069834: .4byte 0x0000ffff _08069838: movs r0, 0 _0806983A: add sp, 0x4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_806977C thumb_func_start sub_8069844 sub_8069844: push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 mov r8, r1 ldr r5, [r1, 0x70] adds r0, r6, 0x2 adds r1, r5, 0 movs r2, 0 bl sub_80708B4 ldrh r0, [r5, 0x2] strh r0, [r6] movs r1, 0xE ldrsh r0, [r5, r1] str r0, [r6, 0x24] movs r2, 0x10 ldrsh r0, [r5, r2] str r0, [r6, 0x28] ldrb r0, [r5, 0x9] str r0, [r6, 0x2C] ldr r0, [r5, 0x18] str r0, [r6, 0x30] movs r2, 0 _08069874: adds r1, r6, 0 adds r1, 0x34 adds r1, r2 adds r0, r5, 0 adds r0, 0x14 adds r0, r2 ldrb r0, [r0] strb r0, [r1] adds r1, r6, 0 adds r1, 0x36 adds r1, r2 adds r0, r5, 0 adds r0, 0x16 adds r0, r2 ldrb r0, [r0] strb r0, [r1] adds r1, r6, 0 adds r1, 0x16 adds r1, r2 adds r0, r5, 0 adds r0, 0x5C adds r0, r2 ldrb r0, [r0] strb r0, [r1] adds r1, r6, 0 adds r1, 0x18 adds r1, r2 adds r0, r5, 0 adds r0, 0x5E adds r0, r2 ldrb r0, [r0] strb r0, [r1] adds r2, 0x1 cmp r2, 0x1 ble _08069874 ldrb r2, [r5, 0x7] adds r1, r6, 0 adds r1, 0x38 movs r0, 0 strb r2, [r1] adds r2, r6, 0 adds r2, 0x39 strb r0, [r2] adds r3, r6, 0 adds r3, 0x3A strb r0, [r3] adds r4, r6, 0 adds r4, 0x3B strb r0, [r4] movs r7, 0x3C adds r7, r6 mov r12, r7 strb r0, [r7] adds r0, r5, 0 adds r0, 0x60 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0806995C movs r0, 0x8 ands r0, r1 cmp r0, 0 bne _0806995C adds r1, r5, 0 adds r1, 0x62 ldrb r0, [r1] cmp r0, 0x13 bne _08069908 ldr r0, _080699A4 ldrb r0, [r0] ldrb r7, [r2] adds r0, r7 strb r0, [r2] _08069908: ldrb r0, [r1] cmp r0, 0x2B bne _08069918 ldr r0, _080699A8 ldrb r0, [r0] ldrb r7, [r2] adds r0, r7 strb r0, [r2] _08069918: ldrb r0, [r1] cmp r0, 0x21 bne _08069928 ldr r0, _080699AC ldrb r0, [r0] ldrb r2, [r3] adds r0, r2 strb r0, [r3] _08069928: ldrb r0, [r1] cmp r0, 0x2B bne _08069938 ldr r0, _080699A8 ldrb r0, [r0] ldrb r7, [r3] adds r0, r7 strb r0, [r3] _08069938: ldrb r0, [r1] cmp r0, 0x1E bne _08069948 ldr r0, _080699B0 ldrb r0, [r0] ldrb r2, [r4] adds r0, r2 strb r0, [r4] _08069948: ldrb r0, [r1] cmp r0, 0x22 bne _0806995C ldr r0, _080699B4 ldrb r0, [r0] mov r7, r12 ldrb r7, [r7] adds r0, r7 mov r1, r12 strb r0, [r1] _0806995C: adds r0, r5, 0 adds r0, 0x94 ldrb r1, [r0] adds r0, r6, 0 adds r0, 0x54 strb r1, [r0] ldr r0, [r5, 0x60] str r0, [r6, 0x20] ldrh r0, [r5, 0xC] movs r1, 0 strh r0, [r6, 0x3E] ldr r0, [r5, 0x40] str r0, [r6, 0x1C] adds r0, r6, 0 adds r0, 0x44 strb r1, [r0] adds r0, 0x4 strb r1, [r0] adds r0, r5, 0 adds r0, 0x8C ldr r0, [r0] str r0, [r6, 0x50] ldr r0, _080699B8 ldr r0, [r0] ldr r2, _080699BC adds r0, r2 ldrb r0, [r0] cmp r0, 0 beq _080699C0 adds r0, r5, 0 bl sub_806A4DC adds r1, r6, 0 adds r1, 0x4C b _080699C6 .align 2, 0 _080699A4: .4byte gUnknown_810AC60 _080699A8: .4byte gUnknown_810AC68 _080699AC: .4byte gUnknown_810AC62 _080699B0: .4byte gUnknown_810AC64 _080699B4: .4byte gUnknown_810AC66 _080699B8: .4byte gUnknown_203B418 _080699BC: .4byte 0x0000065a _080699C0: adds r1, r6, 0 adds r1, 0x4C movs r0, 0x3 _080699C6: strb r0, [r1] movs r4, 0 movs r7, 0x10 ldrsh r0, [r5, r7] cmp r0, 0 bge _080699D4 adds r0, 0x3 _080699D4: movs r2, 0xE ldrsh r1, [r5, r2] asrs r0, 2 cmp r1, r0 bgt _080699E8 adds r1, r6, 0 adds r1, 0x58 movs r0, 0x6 strb r0, [r1] movs r4, 0x1 _080699E8: ldr r0, _08069A24 ldr r0, [r0] ldr r7, _08069A28 adds r0, r7 ldrb r0, [r0] cmp r0, 0 beq _08069A02 adds r0, r6, 0 adds r0, 0x58 adds r0, r4 movs r1, 0xB strb r1, [r0] adds r4, 0x1 _08069A02: movs r1, 0x9E lsls r1, 1 adds r0, r5, r1 ldr r0, [r0] bl sub_8094450 cmp r0, 0 bne _08069A38 ldrb r0, [r5, 0x7] cmp r0, 0 beq _08069A2C adds r0, r6, 0 adds r0, 0x58 adds r0, r4 movs r1, 0x13 b _08069A34 .align 2, 0 _08069A24: .4byte gUnknown_203B418 _08069A28: .4byte 0x00000676 _08069A2C: adds r0, r6, 0 adds r0, 0x58 adds r0, r4 movs r1, 0x3B _08069A34: strb r1, [r0] adds r4, 0x1 _08069A38: mov r2, r8 ldr r0, [r2, 0x70] movs r7, 0x82 lsls r7, 1 adds r2, r0, r7 ldr r0, [r2] cmp r0, 0x1 ble _08069A54 adds r0, r6, 0 adds r0, 0x58 adds r0, r4 movs r1, 0x1B strb r1, [r0] adds r4, 0x1 _08069A54: ldr r0, [r2] cmp r0, 0 bgt _08069A66 adds r0, r6, 0 adds r0, 0x58 adds r0, r4 movs r1, 0x28 strb r1, [r0] adds r4, 0x1 _08069A66: ldr r0, [r5, 0x2C] cmp r0, 0xFF ble _08069AAE ldr r0, [r5, 0x30] cmp r0, 0xFF ble _08069AAE ldr r0, [r5, 0x34] cmp r0, 0xFF ble _08069AAE ldr r0, [r5, 0x38] cmp r0, 0xFF ble _08069AAE movs r1, 0x1C ldrsh r0, [r5, r1] cmp r0, 0x9 ble _08069AAE movs r2, 0x1E ldrsh r0, [r5, r2] cmp r0, 0x9 ble _08069AAE movs r7, 0x20 ldrsh r0, [r5, r7] cmp r0, 0x9 ble _08069AAE movs r1, 0x22 ldrsh r0, [r5, r1] cmp r0, 0x9 ble _08069AAE movs r2, 0x24 ldrsh r0, [r5, r2] cmp r0, 0x9 ble _08069AAE movs r7, 0x26 ldrsh r0, [r5, r7] cmp r0, 0x9 bgt _08069ABA _08069AAE: adds r0, r6, 0 adds r0, 0x58 adds r0, r4 movs r1, 0x37 strb r1, [r0] adds r4, 0x1 _08069ABA: adds r0, r5, 0 adds r0, 0xA8 ldrb r1, [r0] cmp r1, 0 beq _08069AD2 cmp r4, 0xB bgt _08069AD2 adds r0, r6, 0 adds r0, 0x58 adds r0, r4 strb r1, [r0] adds r4, 0x1 _08069AD2: adds r0, r5, 0 adds r0, 0xAC ldrb r1, [r0] cmp r1, 0 beq _08069AEC cmp r4, 0xB bgt _08069AEC adds r0, r6, 0 adds r0, 0x58 adds r0, r4 adds r1, 0x6 strb r1, [r0] adds r4, 0x1 _08069AEC: adds r0, r5, 0 adds r0, 0xB0 ldrb r1, [r0] cmp r1, 0 beq _08069B06 cmp r4, 0xB bgt _08069B06 adds r0, r6, 0 adds r0, 0x58 adds r0, r4 adds r1, 0xB strb r1, [r0] adds r4, 0x1 _08069B06: adds r0, r5, 0 adds r0, 0xBC ldrb r1, [r0] cmp r1, 0 beq _08069B20 cmp r4, 0xB bgt _08069B20 adds r0, r6, 0 adds r0, 0x58 adds r0, r4 adds r1, 0x13 strb r1, [r0] adds r4, 0x1 _08069B20: adds r0, r5, 0 adds r0, 0xC0 ldrb r1, [r0] cmp r1, 0 beq _08069B3A cmp r4, 0xB bgt _08069B3A adds r0, r6, 0 adds r0, 0x58 adds r0, r4 adds r1, 0x1B strb r1, [r0] adds r4, 0x1 _08069B3A: adds r0, r5, 0 adds r0, 0xC4 ldrb r1, [r0] cmp r1, 0 beq _08069B54 cmp r4, 0xB bgt _08069B54 adds r0, r6, 0 adds r0, 0x58 adds r0, r4 adds r1, 0x28 strb r1, [r0] adds r4, 0x1 _08069B54: adds r0, r5, 0 adds r0, 0xC8 ldrb r1, [r0] cmp r1, 0 beq _08069B6E cmp r4, 0xB bgt _08069B6E adds r0, r6, 0 adds r0, 0x58 adds r0, r4 adds r1, 0x37 strb r1, [r0] adds r4, 0x1 _08069B6E: adds r0, r5, 0 adds r0, 0xD0 ldrb r1, [r0] cmp r1, 0 beq _08069B88 cmp r4, 0xB bgt _08069B88 adds r0, r6, 0 adds r0, 0x58 adds r0, r4 adds r1, 0x3B strb r1, [r0] adds r4, 0x1 _08069B88: adds r0, r5, 0 adds r0, 0xDC ldrb r1, [r0] cmp r1, 0 beq _08069BA2 cmp r4, 0xB bgt _08069BA2 adds r0, r6, 0 adds r0, 0x58 adds r0, r4 adds r1, 0x3E strb r1, [r0] adds r4, 0x1 _08069BA2: adds r0, r5, 0 adds r0, 0xE0 ldrb r1, [r0] cmp r1, 0 beq _08069BBC cmp r4, 0xB bgt _08069BBC adds r0, r6, 0 adds r0, 0x58 adds r0, r4 adds r1, 0x43 strb r1, [r0] adds r4, 0x1 _08069BBC: adds r0, r5, 0 adds r0, 0xE4 ldrb r1, [r0] cmp r1, 0 beq _08069BD6 cmp r4, 0xB bgt _08069BD6 adds r0, r6, 0 adds r0, 0x58 adds r0, r4 adds r1, 0x46 strb r1, [r0] adds r4, 0x1 _08069BD6: adds r0, r5, 0 adds r0, 0xE8 ldrb r1, [r0] cmp r1, 0 beq _08069BF0 cmp r4, 0xB bgt _08069BF0 adds r0, r6, 0 adds r0, 0x58 adds r0, r4 adds r1, 0x4A strb r1, [r0] adds r4, 0x1 _08069BF0: adds r0, r5, 0 adds r0, 0xEC ldrb r1, [r0] cmp r1, 0 beq _08069C0A cmp r4, 0xB bgt _08069C0A adds r0, r6, 0 adds r0, 0x58 adds r0, r4 adds r1, 0x4E strb r1, [r0] adds r4, 0x1 _08069C0A: movs r1, 0x89 lsls r1, 1 adds r0, r5, r1 ldrb r0, [r0] cmp r0, 0 beq _08069C26 cmp r4, 0xB bgt _08069C26 adds r0, r6, 0 adds r0, 0x58 adds r0, r4 movs r1, 0x50 strb r1, [r0] adds r4, 0x1 _08069C26: adds r0, r5, 0 adds r0, 0xF0 ldrb r0, [r0] cmp r0, 0 beq _08069C40 cmp r4, 0xB bgt _08069C40 adds r0, r6, 0 adds r0, 0x58 adds r0, r4 movs r1, 0x51 strb r1, [r0] adds r4, 0x1 _08069C40: adds r0, r5, 0 adds r0, 0xF1 ldrb r0, [r0] cmp r0, 0 beq _08069C5A cmp r4, 0xB bgt _08069C5A adds r0, r6, 0 adds r0, 0x58 adds r0, r4 movs r1, 0x52 strb r1, [r0] adds r4, 0x1 _08069C5A: adds r0, r5, 0 adds r0, 0xF4 ldrb r0, [r0] cmp r0, 0 beq _08069C74 cmp r4, 0xB bgt _08069C74 adds r0, r6, 0 adds r0, 0x58 adds r0, r4 movs r1, 0x53 strb r1, [r0] adds r4, 0x1 _08069C74: adds r0, r5, 0 adds r0, 0xF5 ldrb r0, [r0] cmp r0, 0 beq _08069C8E cmp r4, 0xB bgt _08069C8E adds r0, r6, 0 adds r0, 0x58 adds r0, r4 movs r1, 0x54 strb r1, [r0] adds r4, 0x1 _08069C8E: mov r0, r8 bl sub_8071494 lsls r0, 24 cmp r0, 0 beq _08069CAA cmp r4, 0xB bgt _08069CAA adds r0, r6, 0 adds r0, 0x58 adds r0, r4 movs r1, 0x55 strb r1, [r0] adds r4, 0x1 _08069CAA: adds r0, r5, 0 adds r0, 0xFD ldrb r0, [r0] cmp r0, 0 beq _08069CC4 cmp r4, 0xB bgt _08069CC4 adds r0, r6, 0 adds r0, 0x58 adds r0, r4 movs r1, 0x56 strb r1, [r0] adds r4, 0x1 _08069CC4: mov r0, r8 movs r1, 0 bl sub_8070828 cmp r0, 0x1 ble _08069CE0 cmp r4, 0xB bgt _08069CE0 adds r0, r6, 0 adds r0, 0x58 adds r0, r4 movs r1, 0x57 strb r1, [r0] adds r4, 0x1 _08069CE0: adds r0, r5, 0 adds r0, 0xF2 ldrb r0, [r0] cmp r0, 0 beq _08069CFA cmp r4, 0xB bgt _08069D0E adds r0, r6, 0 adds r0, 0x58 adds r0, r4 movs r1, 0x58 strb r1, [r0] adds r4, 0x1 _08069CFA: cmp r4, 0xB bgt _08069D0E adds r1, r6, 0 adds r1, 0x58 movs r2, 0 _08069D04: adds r0, r1, r4 strb r2, [r0] adds r4, 0x1 cmp r4, 0xB ble _08069D04 _08069D0E: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8069844 thumb_func_start sub_8069D18 sub_8069D18: push {r4,r5,lr} ldr r3, [r1, 0x70] ldr r4, _08069D48 adds r3, 0x46 ldrb r2, [r3] lsls r2, 2 adds r2, r4 ldrh r2, [r2] ldrh r5, [r1, 0x4] adds r2, r5 strh r2, [r0] ldrb r2, [r3] lsls r2, 2 adds r2, r4 ldrh r2, [r2, 0x2] ldrh r1, [r1, 0x6] adds r2, r1 strh r2, [r0, 0x2] ldrb r1, [r3] movs r0, 0x1 ands r0, r1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08069D48: .4byte gUnknown_80F4448 thumb_func_end sub_8069D18 thumb_func_start sub_8069D4C sub_8069D4C: push {r4-r6,lr} sub sp, 0xC adds r5, r0, 0 ldr r4, [r1, 0x70] ldrh r0, [r4, 0x2] strh r0, [r5] ldr r0, [r1, 0x4] str r0, [r5, 0x4] adds r0, r4, 0 adds r0, 0xF7 ldrb r0, [r0] cmp r0, 0 beq _08069D6A ldrh r0, [r4, 0x12] b _08069D6C _08069D6A: ldrh r0, [r4, 0x10] _08069D6C: strh r0, [r5, 0x8] ldrb r0, [r4, 0x9] strh r0, [r5, 0xE] movs r0, 0x2 ldrsh r1, [r4, r0] ldrb r2, [r4, 0x9] mov r0, sp bl sub_808E010 ldr r0, [sp] str r0, [r5, 0x10] ldrb r0, [r4, 0x14] strb r0, [r5, 0xA] ldrb r0, [r4, 0x15] strb r0, [r5, 0xB] ldrb r0, [r4, 0x16] strb r0, [r5, 0xC] ldrb r0, [r4, 0x17] strb r0, [r5, 0xD] ldr r0, [r4, 0x60] str r0, [r5, 0x1C] adds r1, r5, 0 adds r1, 0x20 movs r2, 0x8C lsls r2, 1 adds r0, r4, r2 ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} movs r3, 0x9E lsls r3, 1 adds r0, r4, r3 ldr r0, [r0] str r0, [r5, 0x14] movs r6, 0xA0 lsls r6, 1 adds r0, r4, r6 ldr r0, [r0] str r0, [r5, 0x18] ldr r0, [r4, 0x3C] str r0, [r5, 0x44] add sp, 0xC pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8069D4C thumb_func_start sub_8069DCC sub_8069DCC: push {r4,lr} ldr r1, [r0, 0x70] mov r12, r1 ldr r3, _08069E08 mov r4, r12 adds r4, 0x46 ldrb r1, [r4] lsls r1, 2 adds r1, r3 ldrh r1, [r1] ldrh r2, [r0, 0x4] adds r1, r2 movs r2, 0xB6 lsls r2, 1 add r2, r12 strh r1, [r2] ldrb r1, [r4] lsls r1, 2 adds r1, r3 ldrh r1, [r1, 0x2] ldrh r0, [r0, 0x6] adds r1, r0 movs r0, 0xB7 lsls r0, 1 add r0, r12 strh r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _08069E08: .4byte gUnknown_80F4448 thumb_func_end sub_8069DCC thumb_func_start sub_8069E0C sub_8069E0C: push {r4-r7,lr} adds r4, r0, 0 ldr r5, [r4, 0x70] movs r1, 0x25 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _08069E44 adds r0, r4, 0 bl sub_807E580 ldr r1, _08069E40 lsls r0, 24 lsrs r0, 22 adds r0, r1 ldrb r1, [r0] adds r0, r5, 0 adds r0, 0x5C movs r2, 0 strb r1, [r0] adds r0, 0x1 strb r2, [r0] adds r6, r5, 0 adds r6, 0x5E b _08069E62 .align 2, 0 _08069E40: .4byte gUnknown_80F520C _08069E44: movs r4, 0 adds r7, r5, 0 adds r7, 0x5C adds r6, r5, 0 adds r6, 0x5E _08069E4E: movs r1, 0x2 ldrsh r0, [r5, r1] adds r1, r4, 0 bl sub_808DC68 adds r1, r7, r4 strb r0, [r1] adds r4, 0x1 cmp r4, 0x1 ble _08069E4E _08069E62: movs r4, 0 _08069E64: movs r1, 0x2 ldrsh r0, [r5, r1] adds r1, r4, 0 bl sub_808DC84 adds r1, r6, r4 strb r0, [r1] adds r4, 0x1 cmp r4, 0x1 ble _08069E64 ldr r0, _08069E88 ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0xC] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08069E88: .4byte gUnknown_203B418 thumb_func_end sub_8069E0C thumb_func_start sub_8069E8C sub_8069E8C: push {r4-r7,lr} ldr r3, _08069ED8 ldr r2, [r3] ldrb r0, [r2, 0xC] cmp r0, 0 beq _08069F44 movs r1, 0 strb r1, [r2, 0xC] ldr r0, [r3] ldr r2, _08069EDC adds r0, r2 strb r1, [r0] movs r7, 0 adds r5, r3, 0 movs r6, 0x1 _08069EAA: ldr r0, [r5] lsls r1, r7, 2 ldr r2, _08069EE0 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08069F3E adds r0, r4, 0 movs r1, 0x4 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _08069EE8 ldr r0, [r5] ldr r1, _08069EE4 b _08069F16 .align 2, 0 _08069ED8: .4byte gUnknown_203B418 _08069EDC: .4byte 0x0000e279 _08069EE0: .4byte 0x000135cc _08069EE4: .4byte 0x0000e273 _08069EE8: adds r0, r4, 0 movs r1, 0x1C bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _08069F04 ldr r0, [r5] ldr r2, _08069F00 adds r0, r2 b _08069F18 .align 2, 0 _08069F00: .4byte 0x0000e271 _08069F04: adds r0, r4, 0 movs r1, 0x31 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _08069F1A ldr r0, [r5] ldr r1, _08069F4C _08069F16: adds r0, r1 _08069F18: strb r6, [r0] _08069F1A: adds r0, r4, 0 movs r1, 0x8 bl sub_8071824 lsls r0, 24 cmp r0, 0 bne _08069F36 adds r0, r4, 0 movs r1, 0x2D bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _08069F3E _08069F36: ldr r0, [r5] ldr r2, _08069F50 adds r0, r2 strb r6, [r0] _08069F3E: adds r7, 0x1 cmp r7, 0x13 ble _08069EAA _08069F44: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08069F4C: .4byte 0x0000e270 _08069F50: .4byte 0x0000e279 thumb_func_end sub_8069E8C thumb_func_start sub_8069F54 sub_8069F54: push {r4,r5,lr} adds r5, r0, 0 lsls r1, 16 asrs r0, r1, 16 ldr r2, _08069F88 adds r1, r2 lsrs r1, 16 cmp r1, 0x3 bhi _08069F94 adds r0, r5, 0 movs r1, 0x25 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _08069F90 ldr r4, _08069F8C adds r0, r5, 0 bl sub_807E580 lsls r0, 24 lsrs r0, 22 adds r0, r4 movs r1, 0x2 ldrsh r0, [r0, r1] b _08069F94 .align 2, 0 _08069F88: .4byte 0xfe880000 _08069F8C: .4byte gUnknown_80F520C _08069F90: movs r0, 0xBC lsls r0, 1 _08069F94: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8069F54 thumb_func_start sub_8069F9C sub_8069F9C: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 mov r8, r0 adds r6, r1, 0 mov r9, r2 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _08069FB8 b _0806A0FA _08069FB8: adds r0, r6, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _08069FC6 b _0806A0FA _08069FC6: cmp r8, r6 bne _08069FCC b _0806A0FA _08069FCC: mov r0, r8 ldr r2, [r0, 0x70] adds r3, r2, 0 ldr r7, [r6, 0x70] movs r4, 0x1 negs r4, r4 adds r0, r7, 0 adds r0, 0x5E ldrb r0, [r0] cmp r0, 0x28 bne _08069FE4 movs r4, 0 _08069FE4: adds r0, r7, 0 adds r0, 0x5F ldrb r0, [r0] cmp r0, 0x28 bne _08069FF0 movs r4, 0x1 _08069FF0: cmp r4, 0 blt _0806A068 movs r1, 0 adds r0, r2, 0 adds r0, 0x5E ldrb r2, [r0] cmp r2, 0 beq _0806A006 mov r0, sp strb r2, [r0] movs r1, 0x1 _0806A006: adds r0, r3, 0 adds r0, 0x5F ldrb r2, [r0] cmp r2, 0 beq _0806A018 mov r3, sp adds r0, r3, r1 strb r2, [r0] adds r1, 0x1 _0806A018: cmp r1, 0 beq _0806A068 cmp r1, 0x1 bne _0806A024 movs r1, 0 b _0806A030 _0806A024: adds r0, r1, 0 bl sub_8084100 adds r1, r0, 0 cmp r1, 0 blt _0806A068 _0806A030: adds r0, r7, 0 adds r0, 0x5E adds r0, r4 add r1, sp ldrb r1, [r1] strb r1, [r0] ldr r0, _0806A108 ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0xC] ldr r0, _0806A10C adds r1, r6, 0 movs r2, 0 bl sub_8045B94 ldr r0, _0806A110 ldr r2, [r0] mov r0, r8 adds r1, r6, 0 bl sub_80522F4 adds r0, r6, 0 bl sub_8042900 mov r0, r8 adds r1, r6, 0 bl sub_806ABAC _0806A068: movs r0, 0xAD lsls r0, 1 adds r1, r7, r0 ldrb r0, [r1] cmp r0, 0 beq _0806A0FA movs r0, 0 strb r0, [r1] adds r0, r6, 0 movs r1, 0x3B bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0806A0FA mov r0, r8 mov r1, r9 bl sub_8071A1C lsls r0, 24 lsrs r5, r0, 24 mov r1, r9 ldrh r0, [r1, 0x2] cmp r0, 0x1F bne _0806A0AA mov r0, r8 bl sub_807E580 lsls r0, 24 lsrs r0, 24 ldr r1, _0806A114 adds r0, r1 ldrb r5, [r0] _0806A0AA: cmp r5, 0 beq _0806A0FA adds r0, r6, 0 adds r1, r5, 0 bl sub_8071858 lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _0806A0FA adds r4, r7, 0 adds r4, 0x5C strb r5, [r4] adds r1, r7, 0 adds r1, 0x5D strb r0, [r1] adds r1, 0x99 movs r0, 0x1 strb r0, [r1] ldr r0, _0806A10C adds r1, r6, 0 movs r2, 0 bl sub_8045B94 ldrb r0, [r4] bl sub_8092334 adds r1, r0, 0 ldr r0, _0806A118 bl strcpy ldr r0, _0806A11C ldr r2, [r0] mov r0, r8 adds r1, r6, 0 bl sub_80522F4 adds r0, r6, 0 bl sub_8042968 _0806A0FA: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806A108: .4byte gUnknown_203B418 _0806A10C: .4byte gUnknown_202DF98 _0806A110: .4byte gUnknown_80FCC7C _0806A114: .4byte gUnknown_80F51E4 _0806A118: .4byte gUnknown_202DE58 _0806A11C: .4byte gUnknown_80FCCAC thumb_func_end sub_8069F9C thumb_func_start sub_806A120 sub_806A120: push {r4-r7,lr} adds r7, r0, 0 adds r6, r1, 0 adds r4, r2, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0806A19C adds r0, r6, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0806A19C cmp r7, r6 beq _0806A19C ldr r5, [r6, 0x70] adds r0, r5, 0 adds r0, 0xC4 ldrb r0, [r0] cmp r0, 0xC bne _0806A19C adds r0, r7, 0 adds r1, r4, 0 bl sub_8071A1C lsls r0, 24 lsrs r0, 24 bl sub_8092364 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _0806A19C adds r0, r5, 0 adds r0, 0x5C movs r1, 0 strb r4, [r0] adds r0, 0x1 strb r1, [r0] adds r0, r6, 0 bl sub_8041BBC ldr r0, _0806A1A4 adds r1, r6, 0 movs r2, 0 bl sub_8045B94 adds r0, r4, 0 bl sub_8092334 adds r1, r0, 0 ldr r0, _0806A1A8 bl strcpy ldr r0, _0806A1AC ldr r2, [r0] adds r0, r7, 0 adds r1, r6, 0 bl sub_80522F4 _0806A19C: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806A1A4: .4byte gUnknown_202DF98 _0806A1A8: .4byte gUnknown_202DE58 _0806A1AC: .4byte gUnknown_80FDCC8 thumb_func_end sub_806A120 thumb_func_start sub_806A1B0 sub_806A1B0: push {r4,lr} sub sp, 0x4 adds r4, r0, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0806A1DE adds r0, r4, 0 movs r1, 0x2A bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0806A1DE movs r0, 0 str r0, [sp] adds r0, r4, 0 adds r1, r4, 0 movs r2, 0 movs r3, 0x1 bl sub_8076090 _0806A1DE: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_806A1B0 thumb_func_start sub_806A1E8 sub_806A1E8: push {r4,r5,lr} adds r4, r0, 0 movs r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0806A234 adds r0, r4, 0 bl sub_80450F8 cmp r0, 0x1 bne _0806A210 ldr r0, [r4, 0x70] movs r1, 0 ldrb r0, [r0, 0x6] cmp r0, 0 bne _0806A20E movs r1, 0x1 _0806A20E: adds r5, r1, 0 _0806A210: ldr r0, _0806A23C ldr r0, [r0] ldrb r0, [r0, 0x1] cmp r0, 0 bne _0806A21C movs r5, 0 _0806A21C: cmp r5, 0 beq _0806A234 adds r0, r4, 0 bl sub_8045888 lsls r0, 24 cmp r0, 0 bne _0806A234 adds r0, r4, 0 movs r1, 0x1 bl sub_806A2BC _0806A234: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0806A23C: .4byte gUnknown_203B46C thumb_func_end sub_806A1E8 thumb_func_start sub_806A240 sub_806A240: push {r4-r6,lr} adds r4, r0, 0 adds r5, r1, 0 movs r6, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0806A2B4 adds r0, r4, 0 bl sub_80450F8 cmp r0, 0x1 bne _0806A26A ldr r0, [r4, 0x70] movs r1, 0 ldrb r0, [r0, 0x6] cmp r0, 0 bne _0806A268 movs r1, 0x1 _0806A268: adds r6, r1, 0 _0806A26A: cmp r6, 0 beq _0806A284 adds r0, r4, 0 bl sub_8045888 lsls r0, 24 cmp r0, 0 bne _0806A284 adds r0, r4, 0 movs r1, 0x1 bl sub_806A2BC b _0806A2B4 _0806A284: adds r0, r5, 0 bl sub_80450F8 cmp r0, 0x1 bne _0806A29C ldr r0, [r5, 0x70] movs r1, 0 ldrb r0, [r0, 0x6] cmp r0, 0 bne _0806A29A movs r1, 0x1 _0806A29A: adds r6, r1, 0 _0806A29C: cmp r6, 0 beq _0806A2B4 adds r0, r5, 0 bl sub_8045888 lsls r0, 24 cmp r0, 0 bne _0806A2B4 adds r0, r5, 0 movs r1, 0x1 bl sub_806A2BC _0806A2B4: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_806A240 thumb_func_start sub_806A2BC sub_806A2BC: push {r4-r7,lr} adds r4, r0, 0 lsls r1, 24 lsrs r6, r1, 24 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0806A328 adds r0, r4, 0 bl sub_80450F8 cmp r0, 0x1 bne _0806A328 ldr r5, _0806A2F4 ldr r0, [r5] ldr r1, _0806A2F8 adds r0, r1 ldr r0, [r0] cmp r0, r4 beq _0806A328 adds r7, r4, 0x4 cmp r6, 0 beq _0806A30C movs r0, 0x1 bl sub_804178C b _0806A302 .align 2, 0 _0806A2F4: .4byte gUnknown_203B418 _0806A2F8: .4byte 0x000181f8 _0806A2FC: movs r0, 0x34 bl sub_803E46C _0806A302: ldr r0, [r5] movs r1, 0x12 ldrsh r0, [r0, r1] cmp r0, 0x3B ble _0806A2FC _0806A30C: movs r0, 0x4 movs r1, 0x44 bl sub_803E708 adds r0, r4, 0 bl sub_803F508 adds r0, r7, 0 bl sub_804AC20 ldr r0, _0806A330 ldr r1, [r0] movs r0, 0 strh r0, [r1, 0x12] _0806A328: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806A330: .4byte gUnknown_203B418 thumb_func_end sub_806A2BC thumb_func_start nullsub_95 nullsub_95: bx lr thumb_func_end nullsub_95 thumb_func_start sub_806A338 sub_806A338: push {r4-r6,lr} movs r5, 0 ldr r6, _0806A378 _0806A33E: ldr r0, [r6] lsls r1, r5, 2 ldr r2, _0806A37C adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0806A384 ldr r0, [r4, 0x70] adds r0, 0xC8 ldrb r0, [r0] cmp r0, 0x3 bne _0806A384 ldr r1, [r6] ldr r2, _0806A380 adds r0, r1, r2 str r4, [r0] ldr r0, [r4, 0x70] adds r2, 0xC adds r1, r2 adds r0, 0x98 ldr r0, [r0] str r0, [r1] b _0806A38A .align 2, 0 _0806A378: .4byte gUnknown_203B418 _0806A37C: .4byte 0x000135cc _0806A380: .4byte 0x00017b30 _0806A384: adds r5, 0x1 cmp r5, 0x13 ble _0806A33E _0806A38A: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_806A338 thumb_func_start sub_806A390 sub_806A390: push {r4-r7,lr} ldr r0, [r0, 0x70] movs r7, 0 movs r1, 0x8C lsls r1, 1 adds r4, r0, r1 adds r5, r4, 0 movs r6, 0x3 _0806A3A0: ldrb r1, [r4] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0806A3C2 ldrb r1, [r4, 0x1] movs r0, 0xF7 ands r0, r1 movs r1, 0xEF ands r0, r1 movs r1, 0x4 orrs r0, r1 strb r0, [r4, 0x1] adds r0, r5, 0 bl sub_8092BF4 strb r0, [r4, 0x4] _0806A3C2: adds r4, 0x8 adds r5, 0x8 subs r6, 0x1 cmp r6, 0 bge _0806A3A0 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_806A390 thumb_func_start sub_806A3D4 sub_806A3D4: push {r4-r7,lr} sub sp, 0xC adds r7, r0, 0 adds r6, r2, 0 lsls r1, 16 asrs r5, r1, 16 lsls r3, 24 cmp r3, 0 beq _0806A404 ldr r4, _0806A400 adds r0, r5, 0 movs r1, 0xA bl __divsi3 adds r2, r0, 0 lsls r2, 16 asrs r2, 16 mov r0, sp adds r1, r4, 0 bl sprintf b _0806A41C .align 2, 0 _0806A400: .4byte gUnknown_8106EA8 _0806A404: ldr r4, _0806A450 adds r0, r5, 0 movs r1, 0xA bl __divsi3 adds r2, r0, 0 lsls r2, 16 asrs r2, 16 mov r0, sp adds r1, r4, 0 bl sprintf _0806A41C: ldr r1, _0806A454 mov r0, sp bl OpenFileAndGetFileDataPtr adds r4, r0, 0 adds r0, r5, 0 movs r1, 0xA bl __modsi3 lsls r0, 16 ldr r1, [r4, 0x4] asrs r0, 12 adds r0, r1 lsls r1, r6, 2 adds r0, r1 ldr r1, [r0] adds r0, r7, 0 bl strcpy adds r0, r4, 0 bl CloseFile add sp, 0xC pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806A450: .4byte gUnknown_8106EB0 _0806A454: .4byte gUnknown_83B0000 thumb_func_end sub_806A3D4 thumb_func_start sub_806A458 sub_806A458: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r6, r0, 0 movs r0, 0 mov r9, r0 ldr r0, [r6, 0x70] ldrb r0, [r0, 0x6] mov r10, r0 adds r0, r6, 0 bl sub_80696A8 cmp r0, 0 bne _0806A47C movs r0, 0 b _0806A4CC _0806A47C: movs r7, 0x1 negs r7, r7 _0806A480: movs r5, 0x1 negs r5, r5 adds r1, r7, 0x1 mov r8, r1 _0806A488: movs r2, 0x4 ldrsh r0, [r6, r2] adds r0, r5 movs r2, 0x6 ldrsh r1, [r6, r2] adds r1, r7 bl sub_8049590 adds r4, r0, 0 ldr r0, [r4, 0x10] cmp r0, 0 beq _0806A4B6 bl sub_80450F8 cmp r0, 0x1 bne _0806A4B6 ldr r0, [r4, 0x10] ldr r0, [r0, 0x70] ldrb r0, [r0, 0x6] cmp r0, r10 beq _0806A4B6 movs r0, 0x1 add r9, r0 _0806A4B6: adds r5, 0x1 cmp r5, 0x1 ble _0806A488 mov r7, r8 cmp r7, 0x1 ble _0806A480 movs r0, 0 mov r1, r9 cmp r1, 0x1 ble _0806A4CC movs r0, 0x1 _0806A4CC: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_806A458 thumb_func_start sub_806A4DC sub_806A4DC: push {r4,lr} sub sp, 0x64 adds r4, r0, 0 ldr r1, _0806A530 ldr r0, [sp, 0x60] ands r0, r1 ldr r1, _0806A534 ands r0, r1 movs r1, 0x80 lsls r1, 1 orrs r0, r1 str r0, [sp, 0x60] movs r0, 0x2 ldrsh r1, [r4, r0] add r0, sp, 0x60 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] add r0, sp, 0x8 movs r2, 0 movs r3, 0 bl sub_808CFD0 add r1, sp, 0x8 ldrh r0, [r4, 0x2] strh r0, [r1, 0x8] ldrb r0, [r4, 0x9] strb r0, [r1, 0x3] ldrh r0, [r4, 0xC] strh r0, [r1, 0x14] ldrb r0, [r4, 0x14] strb r0, [r1, 0x18] ldrb r0, [r4, 0x16] strb r0, [r1, 0x1A] adds r0, r1, 0 bl sub_808F700 add sp, 0x64 pop {r4} pop {r1} bx r1 .align 2, 0 _0806A530: .4byte 0xffffff00 _0806A534: .4byte 0xffff00ff thumb_func_end sub_806A4DC thumb_func_start sub_806A538 sub_806A538: push {lr} lsls r0, 16 asrs r1, r0, 16 adds r2, r1, 0 ldr r0, _0806A554 cmp r1, r0 beq _0806A550 ldr r0, _0806A558 cmp r1, r0 beq _0806A550 cmp r2, 0 bge _0806A55C _0806A550: movs r0, 0x1 b _0806A55E .align 2, 0 _0806A554: .4byte 0x000055aa _0806A558: .4byte 0x00005aa5 _0806A55C: movs r0, 0 _0806A55E: pop {r1} bx r1 thumb_func_end sub_806A538 thumb_func_start sub_806A564 sub_806A564: push {lr} lsls r0, 16 asrs r1, r0, 16 ldr r0, _0806A57C cmp r1, r0 beq _0806A584 ldr r0, _0806A580 cmp r1, r0 beq _0806A584 movs r0, 0 b _0806A586 .align 2, 0 _0806A57C: .4byte 0x000055aa _0806A580: .4byte 0x00005aa5 _0806A584: movs r0, 0x1 _0806A586: pop {r1} bx r1 thumb_func_end sub_806A564 thumb_func_start sub_806A58C sub_806A58C: push {lr} lsls r0, 16 movs r1, 0xCE lsls r1, 17 cmp r0, r1 bls _0806A59C movs r0, 0 b _0806A59E _0806A59C: movs r0, 0x1 _0806A59E: pop {r1} bx r1 thumb_func_end sub_806A58C thumb_func_start sub_806A5A4 sub_806A5A4: push {lr} lsls r0, 16 cmp r0, 0 blt _0806A5B0 movs r0, 0 b _0806A5B2 _0806A5B0: movs r0, 0x1 _0806A5B2: pop {r1} bx r1 thumb_func_end sub_806A5A4 thumb_func_start sub_806A5B8 sub_806A5B8: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r6, r0, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _0806A5CE b _0806A6D2 _0806A5CE: adds r0, r6, 0 bl sub_8045128 ldrh r0, [r0] movs r1, 0x3 ands r1, r0 cmp r1, 0x2 bne _0806A664 ldr r4, [r6, 0x70] ldr r1, _0806A640 ldr r0, _0806A644 ldr r0, [r0] ldr r2, _0806A648 adds r0, r2 movs r2, 0 ldrsh r0, [r0, r2] adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 bne _0806A650 adds r0, r4, 0 adds r0, 0xB0 ldrb r0, [r0] cmp r0, 0x1 bne _0806A608 adds r0, r6, 0 adds r1, r6, 0 bl sub_807A324 _0806A608: movs r1, 0x2 ldrsh r0, [r4, r1] bl sub_808DB14 lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 beq _0806A6D2 movs r2, 0x2 ldrsh r1, [r4, r2] ldr r0, _0806A64C cmp r1, r0 beq _0806A6D2 cmp r1, 0x92 beq _0806A6D2 adds r0, r4, 0 adds r0, 0xAC ldrb r0, [r0] cmp r0, 0x1 beq _0806A6D2 adds r0, r6, 0 adds r1, r6, 0 movs r2, 0x1 movs r3, 0 bl sub_8076210 b _0806A6D2 .align 2, 0 _0806A640: .4byte gUnknown_810ACC0 _0806A644: .4byte gUnknown_203B418 _0806A648: .4byte 0x00003a0e _0806A64C: .4byte 0x00000113 _0806A650: adds r0, r4, 0 adds r0, 0xAC ldrb r0, [r0] cmp r0, 0x1 bne _0806A6D2 adds r0, r6, 0 adds r1, r6, 0 bl sub_807A290 b _0806A6D2 _0806A664: cmp r1, 0 bne _0806A6D2 ldr r7, [r6, 0x70] ldrb r0, [r7, 0x7] cmp r0, 0 beq _0806A6D2 movs r0, 0x9E lsls r0, 1 adds r4, r7, r0 ldr r5, [r4] mov r0, sp adds r1, r5, 0 movs r2, 0x5 bl sub_80942C0 ldr r0, [sp] str r0, [r4] movs r1, 0 mov r8, r1 adds r0, r5, 0 bl sub_8094450 cmp r0, 0x13 ble _0806A6A4 ldr r0, [r4] bl sub_8094450 cmp r0, 0x13 bgt _0806A6A4 ldr r0, _0806A6E0 ldr r0, [r0] mov r8, r0 _0806A6A4: adds r0, r5, 0 bl sub_8094450 cmp r0, 0x9 ble _0806A6C4 movs r2, 0x9E lsls r2, 1 adds r0, r7, r2 ldr r0, [r0] bl sub_8094450 cmp r0, 0x9 bgt _0806A6C4 ldr r0, _0806A6E4 ldr r0, [r0] mov r8, r0 _0806A6C4: mov r0, r8 cmp r0, 0 beq _0806A6D2 adds r0, r6, 0 mov r1, r8 bl sub_80522A8 _0806A6D2: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806A6E0: .4byte gUnknown_80FD594 _0806A6E4: .4byte gUnknown_80FD5B8 thumb_func_end sub_806A5B8 thumb_func_start sub_806A6E8 sub_806A6E8: push {r4-r7,lr} sub sp, 0xC adds r7, r0, 0 ldr r6, [r7, 0x70] adds r0, r6, 0 adds r0, 0x64 adds r1, r6, 0 adds r1, 0x62 ldrb r2, [r0] ldrb r1, [r1] cmp r2, r1 beq _0806A77A ldrb r0, [r6, 0x7] cmp r0, 0 bne _0806A764 cmp r1, 0xA beq _0806A70E cmp r1, 0x2B bne _0806A72E _0806A70E: movs r0, 0x9E lsls r0, 1 adds r5, r6, r0 ldr r4, [r5] mov r0, sp movs r1, 0xA bl sub_80943A0 ldr r2, [sp] add r0, sp, 0x4 adds r1, r4, 0 bl sub_80942C0 ldr r0, [sp, 0x4] str r0, [r5] b _0806A744 _0806A72E: cmp r1, 0x1B bne _0806A744 add r0, sp, 0x8 movs r1, 0 bl sub_80943A0 movs r0, 0x9E lsls r0, 1 adds r1, r6, r0 ldr r0, [sp, 0x8] str r0, [r1] _0806A744: ldr r0, _0806A75C ldr r0, [r0] ldr r1, _0806A760 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _0806A776 adds r0, r7, 0 bl sub_80418D4 b _0806A776 .align 2, 0 _0806A75C: .4byte gUnknown_203B418 _0806A760: .4byte 0x00000676 _0806A764: cmp r1, 0x11 beq _0806A76C cmp r2, 0x11 bne _0806A776 _0806A76C: movs r0, 0x1 bl sub_803F580 bl sub_8040A84 _0806A776: bl sub_807AA30 _0806A77A: adds r0, r6, 0 adds r0, 0x60 ldrb r0, [r0] movs r1, 0x1 ands r1, r0 cmp r1, 0 beq _0806A792 adds r0, r6, 0 adds r0, 0x62 ldrb r1, [r0] adds r0, 0x2 b _0806A796 _0806A792: adds r0, r6, 0 adds r0, 0x64 _0806A796: strb r1, [r0] add sp, 0xC pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_806A6E8 thumb_func_start sub_806A7A0 sub_806A7A0: push {r4,r5,lr} movs r5, 0 _0806A7A4: ldr r0, _0806A7E0 ldr r0, [r0] lsls r1, r5, 2 ldr r2, _0806A7E4 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0806A7D2 ldr r2, [r4, 0x70] movs r1, 0xC ldrsh r0, [r2, r1] cmp r0, 0x1 ble _0806A7D2 adds r1, r0, 0 subs r1, 0x1 adds r0, r2, 0 bl sub_806A7E8 _0806A7D2: adds r5, 0x1 cmp r5, 0x3 ble _0806A7A4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0806A7E0: .4byte gUnknown_203B418 _0806A7E4: .4byte 0x0001357c thumb_func_end sub_806A7A0 thumb_func_start sub_806A7E8 sub_806A7E8: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x30 adds r5, r0, 0 mov r0, sp bl sub_808EBA8 mov r9, r0 add r4, sp, 0x18 movs r0, 0xC ldrsh r1, [r5, r0] adds r0, r4, 0 bl sub_808EBA8 adds r6, r0, 0 ldr r0, _0806A828 adds r1, r5, 0 movs r2, 0 bl sub_80708B4 movs r2, 0x1 mov r8, r4 _0806A818: movs r3, 0 movs r5, 0 movs r1, 0 adds r4, r2, 0x1 cmp r3, r9 bge _0806A83E mov r0, sp b _0806A836 .align 2, 0 _0806A828: .4byte gUnknown_202DF98 _0806A82C: adds r1, 0x1 cmp r1, r9 bge _0806A83E mov r7, sp adds r0, r7, r1 _0806A836: ldrb r0, [r0] cmp r0, r2 bne _0806A82C movs r3, 0x1 _0806A83E: movs r1, 0 cmp r1, r6 bge _0806A85C mov r7, r8 ldrb r0, [r7] b _0806A856 _0806A84A: adds r1, 0x1 cmp r1, r6 bge _0806A85C mov r7, r8 adds r0, r7, r1 ldrb r0, [r0] _0806A856: cmp r0, r2 bne _0806A84A movs r5, 0x1 _0806A85C: cmp r3, r5 beq _0806A87A lsls r0, r2, 24 lsrs r0, 24 bl sub_808EAB0 adds r1, r0, 0 ldr r0, _0806A890 bl strcpy ldr r0, _0806A894 ldr r1, [r0] movs r0, 0 bl sub_805239C _0806A87A: adds r2, r4, 0 cmp r2, 0x17 ble _0806A818 add sp, 0x30 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806A890: .4byte gUnknown_202DE58 _0806A894: .4byte gUnknown_80FEAC4 thumb_func_end sub_806A7E8 thumb_func_start sub_806A898 sub_806A898: push {r4-r7,lr} adds r4, r0, 0 lsls r1, 24 lsrs r7, r1, 24 lsls r2, 24 lsrs r1, r2, 24 ldr r5, [r4, 0x70] ldrb r0, [r5, 0x7] cmp r0, 0 beq _0806A8C2 ldrh r1, [r4, 0x4] movs r2, 0xB6 lsls r2, 1 adds r0, r5, r2 strh r1, [r0] ldrh r0, [r4, 0x6] adds r0, 0x1 adds r2, 0x2 adds r1, r5, r2 strh r0, [r1] b _0806A8C8 _0806A8C2: adds r0, r4, 0 bl sub_807ADB8 _0806A8C8: movs r0, 0xB6 lsls r0, 1 adds r6, r5, r0 ldr r0, [r6] cmp r0, 0 beq _0806A90E adds r0, r4, 0 movs r1, 0x1 bl sub_8070B6C lsls r0, 24 cmp r0, 0 beq _0806A8EE adds r0, r4, 0 bl sub_8070CD0 lsls r0, 24 cmp r0, 0 bne _0806A90E _0806A8EE: adds r0, r4, 0x4 adds r1, r6, 0 bl sub_80983D8 adds r2, r0, 0 movs r1, 0x7 ands r0, r1 adds r1, r5, 0 adds r1, 0x46 strb r0, [r1] cmp r7, 0 beq _0806A90E adds r0, r4, 0 adds r1, r2, 0 bl sub_806CE68 _0806A90E: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_806A898 thumb_func_start sub_806A914 sub_806A914: push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r1, 24 lsrs r7, r1, 24 lsls r2, 24 lsrs r6, r2, 24 movs r5, 0 _0806A92A: ldr r0, _0806A96C ldr r0, [r0] lsls r1, r5, 2 ldr r2, _0806A970 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0806A95C ldr r0, [r4, 0x70] cmp r7, 0 beq _0806A952 adds r0, 0xA4 ldrb r0, [r0] cmp r0, 0x1 bne _0806A95C _0806A952: adds r0, r4, 0 mov r1, r8 adds r2, r6, 0 bl sub_806A898 _0806A95C: adds r5, 0x1 cmp r5, 0x13 ble _0806A92A pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806A96C: .4byte gUnknown_203B418 _0806A970: .4byte 0x000135cc thumb_func_end sub_806A914 thumb_func_start sub_806A974 sub_806A974: push {r4,r5,lr} movs r5, 0 _0806A978: ldr r0, _0806A9AC ldr r0, [r0] lsls r1, r5, 2 ldr r2, _0806A9B0 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0806A99E ldr r0, [r4, 0x70] adds r0, 0x46 ldrb r1, [r0] adds r0, r4, 0 bl sub_806CE68 _0806A99E: adds r5, 0x1 cmp r5, 0x13 ble _0806A978 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0806A9AC: .4byte gUnknown_203B418 _0806A9B0: .4byte 0x000135cc thumb_func_end sub_806A974 thumb_func_start sub_806A9B4 sub_806A9B4: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0806AA02 ldr r0, [r4, 0x70] movs r1, 0x8C lsls r1, 1 adds r0, r1 adds r1, r5, 0 bl sub_80935B8 cmp r0, 0 bne _0806A9E0 ldr r0, _0806A9DC b _0806A9E6 .align 2, 0 _0806A9DC: .4byte gUnknown_81002FC _0806A9E0: cmp r0, 0x1 bne _0806A9F4 ldr r0, _0806A9F0 _0806A9E6: ldr r1, [r0] adds r0, r4, 0 bl sub_80522A8 b _0806AA02 .align 2, 0 _0806A9F0: .4byte gUnknown_810035C _0806A9F4: cmp r0, 0x2 bne _0806AA02 ldr r0, _0806AA08 ldr r1, [r0] adds r0, r4, 0 bl sub_80522A8 _0806AA02: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0806AA08: .4byte gUnknown_81003BC thumb_func_end sub_806A9B4 thumb_func_start sub_806AA0C sub_806AA0C: push {r4,r5,lr} lsls r0, 16 asrs r4, r0, 16 lsls r1, 24 lsrs r5, r1, 24 adds r0, r4, 0 bl sub_80981DC lsls r0, 24 cmp r0, 0 beq _0806AA56 ldr r0, _0806AA5C ldr r0, [r0] ldr r1, _0806AA60 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _0806AA40 adds r0, r4, 0 bl sub_808E770 lsls r0, 16 movs r1, 0xCF lsls r1, 17 cmp r0, r1 beq _0806AA56 _0806AA40: cmp r4, 0x97 bne _0806AA68 ldr r0, _0806AA5C ldr r0, [r0] ldr r1, _0806AA64 adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _0806AA56 cmp r5, 0 bne _0806AA68 _0806AA56: movs r0, 0 b _0806AA6A .align 2, 0 _0806AA5C: .4byte gUnknown_203B418 _0806AA60: .4byte 0x000037fd _0806AA64: .4byte 0x000037ff _0806AA68: movs r0, 0x1 _0806AA6A: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_806AA0C thumb_func_start sub_806AA70 sub_806AA70: push {r4-r7,lr} mov r7, r8 push {r7} movs r7, 0 ldr r0, _0806AAB4 mov r8, r0 _0806AA7C: mov r1, r8 ldr r0, [r1] lsls r1, r7, 2 ldr r2, _0806AAB8 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0806AB12 ldr r0, [r4, 0x70] ldrb r2, [r0, 0xA] ldrb r0, [r0, 0x7] cmp r0, 0 beq _0806AAC4 mov r1, r8 ldr r0, [r1] ldrb r0, [r0, 0x11] cmp r0, 0x1 bne _0806AABC adds r0, r4, 0 bl sub_8042B20 b _0806AB0A .align 2, 0 _0806AAB4: .4byte gUnknown_203B418 _0806AAB8: .4byte 0x0001357c _0806AABC: adds r0, r4, 0 bl sub_8042B0C b _0806AB0A _0806AAC4: cmp r2, 0 blt _0806AB12 movs r6, 0 ldr r1, _0806AB24 movs r0, 0x64 muls r0, r2 ldr r2, _0806AB28 adds r0, r2 ldr r1, [r1] adds r5, r1, r0 mov r1, r8 ldr r0, [r1] ldrb r0, [r0, 0x11] cmp r0, 0 bne _0806AB04 movs r2, 0xA ldrsh r0, [r5, r2] bl sub_806A564 lsls r0, 24 cmp r0, 0 bne _0806AB04 movs r1, 0xA ldrsh r0, [r5, r1] bl sub_806A58C lsls r0, 24 cmp r0, 0 beq _0806AB00 movs r6, 0x1 _0806AB00: cmp r6, 0 beq _0806AB12 _0806AB04: adds r0, r4, 0 bl sub_8042B0C _0806AB0A: adds r1, r4, 0 adds r1, 0x20 movs r0, 0 strb r0, [r1] _0806AB12: adds r7, 0x1 cmp r7, 0x3 ble _0806AA7C pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806AB24: .4byte gUnknown_203B45C _0806AB28: .4byte 0x00008df8 thumb_func_end sub_806AA70 thumb_func_start sub_806AB2C sub_806AB2C: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} movs r4, 0 ldr r0, _0806ABA4 mov r9, r0 _0806AB3A: mov r1, r9 ldr r0, [r1] lsls r1, r4, 2 ldr r2, _0806ABA8 adds r0, r2 adds r0, r1 ldr r7, [r0] adds r0, r7, 0 bl sub_80450E0 lsls r0, 24 adds r4, 0x1 mov r8, r4 cmp r0, 0 beq _0806AB92 ldr r5, [r7, 0x70] movs r6, 0 _0806AB5C: mov r1, r9 ldr r0, [r1] lsls r1, r6, 2 ldr r2, _0806ABA8 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0806AB8C cmp r7, r4 beq _0806AB8C adds r0, r5, 0 adds r0, 0x7C ldrh r0, [r0] ldrh r1, [r4, 0x26] cmp r0, r1 bne _0806AB8C adds r0, r5, 0 adds r0, 0x80 str r4, [r0] _0806AB8C: adds r6, 0x1 cmp r6, 0x13 ble _0806AB5C _0806AB92: mov r4, r8 cmp r4, 0x13 ble _0806AB3A pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806ABA4: .4byte gUnknown_203B418 _0806ABA8: .4byte 0x000135cc thumb_func_end sub_806AB2C thumb_func_start sub_806ABAC sub_806ABAC: push {r4-r6,lr} adds r6, r0, 0 adds r4, r1, 0 ldr r5, [r4, 0x70] adds r0, r4, 0 movs r1, 0x16 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0806ABD4 adds r0, r5, 0 adds r0, 0xAC ldrb r0, [r0] cmp r0, 0x4 bne _0806ABD4 adds r0, r6, 0 adds r1, r4, 0 bl sub_807A290 _0806ABD4: adds r0, r4, 0 movs r1, 0x40 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0806ABF4 adds r0, r5, 0 adds r0, 0xBC ldrb r0, [r0] cmp r0, 0x2 bne _0806ABF4 adds r0, r6, 0 adds r1, r4, 0 bl sub_807A400 _0806ABF4: adds r0, r4, 0 movs r1, 0x42 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0806AC14 adds r0, r5, 0 adds r0, 0xAC ldrb r0, [r0] cmp r0, 0x1 bne _0806AC14 adds r0, r6, 0 adds r1, r4, 0 bl sub_807A290 _0806AC14: adds r0, r4, 0 movs r1, 0x29 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0806AC34 adds r0, r5, 0 adds r0, 0xBC ldrb r0, [r0] cmp r0, 0x7 bne _0806AC34 adds r0, r6, 0 adds r1, r4, 0 bl sub_807A400 _0806AC34: adds r0, r4, 0 movs r1, 0x36 bl sub_8071824 lsls r0, 24 cmp r0, 0 bne _0806AC50 adds r0, r4, 0 movs r1, 0x49 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0806AC72 _0806AC50: adds r0, r4, 0 bl sub_8070B28 lsls r0, 24 cmp r0, 0 bne _0806AC66 adds r0, r5, 0 adds r0, 0xA8 ldrb r0, [r0] cmp r0, 0x4 bne _0806AC72 _0806AC66: adds r0, r6, 0 adds r1, r4, 0 movs r2, 0 movs r3, 0x1 bl sub_807A124 _0806AC72: adds r0, r4, 0 movs r1, 0x41 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0806AC92 adds r0, r5, 0 adds r0, 0xB0 ldrb r0, [r0] cmp r0, 0x1 bne _0806AC92 adds r0, r6, 0 adds r1, r4, 0 bl sub_807A324 _0806AC92: adds r0, r4, 0 movs r1, 0x45 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0806ACB8 adds r0, r5, 0 adds r0, 0xAC ldrb r0, [r0] subs r0, 0x2 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _0806ACB8 adds r0, r6, 0 adds r1, r4, 0 bl sub_807A290 _0806ACB8: adds r0, r4, 0 movs r1, 0x25 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0806ACE0 adds r1, r5, 0 adds r1, 0xF6 movs r0, 0 strb r0, [r1] adds r0, r5, 0 adds r0, 0xC4 ldrb r0, [r0] cmp r0, 0xC bne _0806ACE0 adds r0, r6, 0 adds r1, r4, 0 bl sub_807A4C8 _0806ACE0: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_806ABAC thumb_func_start sub_806ACE8 sub_806ACE8: push {r4,r5,lr} adds r4, r1, 0 ldr r0, [r0, 0x70] mov r12, r0 movs r5, 0xEF movs r2, 0x8C lsls r2, 1 add r2, r12 movs r3, 0x3 _0806ACFA: ldrb r1, [r2] adds r0, r5, 0 ands r0, r1 strb r0, [r2] adds r2, 0x8 subs r3, 0x1 cmp r3, 0 bge _0806ACFA movs r2, 0x9C lsls r2, 1 add r2, r12 ldrb r0, [r2] movs r3, 0xEF ands r3, r0 movs r5, 0 strb r3, [r2] ldrh r1, [r4, 0x2] movs r0, 0xB0 lsls r0, 1 cmp r1, r0 bne _0806AD2E movs r1, 0x10 adds r0, r3, 0 orrs r0, r1 strb r0, [r2] b _0806AD36 _0806AD2E: ldrb r0, [r4] movs r1, 0x10 orrs r0, r1 strb r0, [r4] _0806AD36: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_806ACE8 thumb_func_start sub_806AD3C sub_806AD3C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r4, _0806AE1C add sp, r4 ldr r0, _0806AE20 ldr r0, [r0] ldr r1, _0806AE24 adds r4, r0, r1 mov r0, sp movs r1, 0 bl sub_803D808 str r0, [sp, 0x200] movs r7, 0 cmp r7, r0 bge _0806ADEC mov r6, sp adds r7, r0, 0 _0806AD66: adds r0, r6, 0 bl sub_808E9B8 strh r0, [r4] adds r0, r6, 0 bl sub_808E9E4 strh r0, [r4, 0x2] adds r0, r4, 0x4 movs r2, 0 ldrsh r1, [r4, r2] movs r3, 0x2 ldrsh r2, [r4, r3] bl sub_8072AC8 ldrh r0, [r4, 0x4] cmp r0, 0 bne _0806AD90 movs r0, 0xB8 lsls r0, 1 strh r0, [r4, 0x4] _0806AD90: movs r1, 0 ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] bl sub_806C444 strh r0, [r4, 0xC] movs r5, 0 movs r3, 0xE adds r3, r4 mov r9, r3 movs r0, 0x10 adds r0, r4 mov r8, r0 movs r1, 0x14 adds r1, r4 mov r10, r1 _0806ADB2: movs r2, 0 ldrsh r0, [r4, r2] movs r3, 0x2 ldrsh r1, [r4, r3] adds r2, r5, 0 bl sub_806C488 mov r2, r9 adds r1, r2, r5 strb r0, [r1] movs r3, 0 ldrsh r0, [r4, r3] movs r2, 0x2 ldrsh r1, [r4, r2] adds r2, r5, 0 bl sub_806C4D4 mov r3, r8 adds r1, r3, r5 strb r0, [r1] adds r5, 0x1 cmp r5, 0x1 ble _0806ADB2 mov r4, r10 adds r6, 0x8 subs r7, 0x1 cmp r7, 0 bne _0806AD66 ldr r7, [sp, 0x200] _0806ADEC: cmp r7, 0x3F bgt _0806ADFC movs r0, 0 _0806ADF2: strh r0, [r4] adds r4, 0x14 adds r7, 0x1 cmp r7, 0x3F ble _0806ADF2 _0806ADFC: movs r7, 0 ldr r4, _0806AE28 ldr r3, _0806AE20 ldr r2, _0806AE2C movs r1, 0 _0806AE06: ldr r0, [r3] adds r0, r2 adds r0, r7 strb r1, [r0] adds r7, 0x1 cmp r7, r4 ble _0806AE06 movs r0, 0x1 mov r10, r0 movs r7, 0 b _0806AE94 .align 2, 0 _0806AE1C: .4byte 0xfffffdfc _0806AE20: .4byte gUnknown_203B418 _0806AE24: .4byte 0x00002f3c _0806AE28: .4byte 0x000001a7 _0806AE2C: .4byte 0x0000363c _0806AE30: movs r2, 0x1 negs r2, r2 mov r8, r2 mov r9, r8 ldr r3, [sp, 0x200] cmp r3, 0 ble _0806AE7A mov r5, sp adds r6, r3, 0 _0806AE42: adds r0, r5, 0 bl sub_808E9B8 lsls r0, 16 asrs r4, r0, 16 ldr r1, _0806AECC ldr r0, [r1] ldr r2, _0806AED0 adds r0, r2 adds r0, r4 ldrb r0, [r0] cmp r0, 0 bne _0806AE72 adds r0, r5, 0 bl sub_808E9E4 adds r1, r0, 0 adds r0, r4, 0 bl sub_808DD18 cmp r9, r0 bge _0806AE72 mov r9, r0 mov r8, r4 _0806AE72: adds r5, 0x8 subs r6, 0x1 cmp r6, 0 bne _0806AE42 _0806AE7A: mov r3, r8 cmp r3, 0 blt _0806AE9A ldr r1, _0806AECC ldr r0, [r1] ldr r2, _0806AED0 adds r0, r2 add r0, r8 mov r3, r10 strb r3, [r0] movs r0, 0x2 add r10, r0 adds r7, 0x1 _0806AE94: ldr r1, [sp, 0x200] cmp r7, r1 blt _0806AE30 _0806AE9A: movs r7, 0 ldr r5, _0806AECC ldr r4, _0806AED0 movs r3, 0x1 ldr r2, _0806AED4 _0806AEA4: ldr r0, [r5] adds r0, r4 adds r1, r0, r7 ldrb r0, [r1] cmp r0, 0 bne _0806AEB2 strb r3, [r1] _0806AEB2: adds r7, 0x1 cmp r7, r2 ble _0806AEA4 movs r3, 0x81 lsls r3, 2 add sp, r3 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806AECC: .4byte gUnknown_203B418 _0806AED0: .4byte 0x0000363c _0806AED4: .4byte 0x000001a7 thumb_func_end sub_806AD3C thumb_func_start sub_806AED8 sub_806AED8: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x18 mov r10, r0 str r1, [sp, 0x8] str r2, [sp, 0xC] str r3, [sp, 0x10] ldr r0, [sp, 0x38] ldr r1, [sp, 0x3C] mov r8, r1 lsls r0, 16 asrs r7, r0, 16 ldr r1, _0806AF04 ldr r0, [r1] ldr r4, _0806AF08 adds r6, r0, r4 movs r3, 0 b _0806AF7A .align 2, 0 _0806AF04: .4byte gUnknown_203B418 _0806AF08: .4byte 0x00002f3c _0806AF0C: lsls r0, r2, 16 asrs r0, 16 cmp r0, r7 bne _0806AF6E movs r2, 0x2 ldrsh r0, [r6, r2] cmp r0, r8 bne _0806AF6E movs r5, 0xE adds r5, r6 mov r8, r5 movs r0, 0x10 adds r0, r6 mov r9, r0 mov r1, r10 adds r1, 0x20 str r1, [sp, 0x14] adds r5, r6, 0x4 mov r4, r10 movs r7, 0x3 _0806AF34: ldrh r1, [r5] adds r0, r4, 0 bl sub_8092AA8 adds r5, 0x2 adds r4, 0x8 subs r7, 0x1 cmp r7, 0 bge _0806AF34 ldrh r0, [r6, 0xC] ldr r2, [sp, 0x8] strh r0, [r2] movs r5, 0 mov r3, r8 mov r2, r9 _0806AF52: ldr r0, [sp, 0xC] adds r1, r0, r5 adds r0, r3, r5 ldrb r0, [r0] strb r0, [r1] ldr r0, [sp, 0x10] adds r1, r0, r5 adds r0, r2, r5 ldrb r0, [r0] strb r0, [r1] adds r5, 0x1 cmp r5, 0x1 ble _0806AF52 b _0806B084 _0806AF6E: adds r4, 0x14 adds r3, 0x1 cmp r3, 0x3F bgt _0806AF84 ldr r0, [r1] adds r6, r0, r4 _0806AF7A: ldrh r2, [r6] movs r5, 0 ldrsh r0, [r6, r5] cmp r0, 0 bne _0806AF0C _0806AF84: cmp r3, 0x40 bne _0806AFE6 mov r0, sp adds r1, r7, 0 mov r2, r8 bl sub_8072AC8 mov r0, r10 adds r0, 0x20 str r0, [sp, 0x14] mov r5, sp mov r4, r10 movs r6, 0x3 _0806AF9E: ldrh r1, [r5] adds r0, r4, 0 bl sub_8092AA8 adds r5, 0x2 adds r4, 0x8 subs r6, 0x1 cmp r6, 0 bge _0806AF9E adds r0, r7, 0 mov r1, r8 bl sub_806C444 ldr r1, [sp, 0x8] strh r0, [r1] movs r5, 0 _0806AFBE: adds r0, r7, 0 mov r1, r8 adds r2, r5, 0 bl sub_806C488 ldr r2, [sp, 0xC] adds r1, r2, r5 strb r0, [r1] adds r0, r7, 0 mov r1, r8 adds r2, r5, 0 bl sub_806C4D4 ldr r2, [sp, 0x10] adds r1, r2, r5 strb r0, [r1] adds r5, 0x1 cmp r5, 0x1 ble _0806AFBE b _0806B084 _0806AFE6: strh r7, [r6] mov r5, r8 strh r5, [r6, 0x2] adds r4, r6, 0x4 adds r0, r4, 0 adds r1, r7, 0 mov r2, r8 bl sub_8072AC8 movs r1, 0 ldrsh r0, [r6, r1] movs r2, 0x2 ldrsh r1, [r6, r2] bl sub_806C444 strh r0, [r6, 0xC] movs r5, 0 movs r0, 0xE adds r0, r6 mov r8, r0 movs r1, 0x10 adds r1, r6 mov r9, r1 mov r2, r10 adds r2, 0x20 str r2, [sp, 0x14] _0806B01A: movs r1, 0 ldrsh r0, [r6, r1] movs r2, 0x2 ldrsh r1, [r6, r2] adds r2, r5, 0 bl sub_806C488 mov r2, r8 adds r1, r2, r5 strb r0, [r1] movs r1, 0 ldrsh r0, [r6, r1] movs r2, 0x2 ldrsh r1, [r6, r2] adds r2, r5, 0 bl sub_806C4D4 mov r2, r9 adds r1, r2, r5 strb r0, [r1] adds r5, 0x1 cmp r5, 0x1 ble _0806B01A mov r5, r10 movs r7, 0x3 _0806B04C: ldrh r1, [r4] adds r0, r5, 0 bl sub_8092AA8 adds r4, 0x2 adds r5, 0x8 subs r7, 0x1 cmp r7, 0 bge _0806B04C ldrh r0, [r6, 0xC] ldr r5, [sp, 0x8] strh r0, [r5] movs r5, 0 mov r3, r8 mov r2, r9 _0806B06A: ldr r0, [sp, 0xC] adds r1, r0, r5 adds r0, r3, r5 ldrb r0, [r0] strb r0, [r1] ldr r0, [sp, 0x10] adds r1, r0, r5 adds r0, r2, r5 ldrb r0, [r0] strb r0, [r1] adds r5, 0x1 cmp r5, 0x1 ble _0806B06A _0806B084: movs r0, 0 ldr r1, [sp, 0x14] strb r0, [r1] add sp, 0x18 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_806AED8 thumb_func_start sub_806B09C sub_806B09C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 mov r8, r0 lsls r1, 24 lsrs r1, 24 str r1, [sp] movs r7, 0 movs r2, 0 mov r6, r8 adds r6, 0x2 mov r9, r8 _0806B0BA: movs r0, 0x64 muls r0, r2 ldr r1, _0806B0E4 adds r0, r1 ldr r3, _0806B0E8 ldr r1, [r3] adds r5, r1, r0 ldrh r1, [r5] movs r0, 0x1 ands r0, r1 adds r2, 0x1 mov r10, r2 cmp r0, 0 beq _0806B124 lsrs r0, r1, 1 movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _0806B124 movs r4, 0 b _0806B0EE .align 2, 0 _0806B0E4: .4byte 0x00008df8 _0806B0E8: .4byte gUnknown_203B45C _0806B0EC: adds r4, 0x1 _0806B0EE: cmp r4, r7 bge _0806B106 lsls r0, r4, 3 add r0, r8 bl sub_808E9B8 lsls r0, 16 asrs r0, 16 movs r2, 0xE ldrsh r1, [r5, r2] cmp r0, r1 bne _0806B0EC _0806B106: cmp r4, r7 bne _0806B124 movs r3, 0xE ldrsh r2, [r5, r3] mov r0, r9 movs r1, 0 bl sub_808E9D8 movs r0, 0 strh r0, [r6] strh r0, [r6, 0x2] adds r6, 0x8 movs r0, 0x8 add r9, r0 adds r7, 0x1 _0806B124: mov r2, r10 cmp r2, 0x3 ble _0806B0BA mov r0, r8 adds r1, r7, 0 bl sub_803D808 adds r7, r0, 0 ldr r1, [sp] cmp r1, 0 beq _0806B150 lsls r4, r7, 3 add r4, r8 ldr r2, _0806B164 adds r0, r4, 0 movs r1, 0x1 bl sub_808E9D8 movs r0, 0 strh r0, [r4, 0x2] strh r0, [r4, 0x4] adds r7, 0x1 _0806B150: adds r0, r7, 0 add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0806B164: .4byte 0x000001a5 thumb_func_end sub_806B09C thumb_func_start sub_806B168 sub_806B168: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x3C ldr r0, _0806B324 ldr r1, [r0] ldr r2, _0806B328 adds r0, r1, r2 movs r3, 0 ldrsh r0, [r0, r3] ldr r4, _0806B32C adds r1, r4 movs r2, 0 ldrsh r1, [r1, r2] bl sub_804954C ldrb r0, [r0, 0x9] str r0, [sp, 0x2C] movs r3, 0 mov r4, sp adds r4, 0x1C str r4, [sp, 0x30] ldr r2, _0806B330 ldr r1, _0806B334 _0806B19C: ldr r0, [r2] adds r0, r1 strh r3, [r0, 0xC] adds r1, 0x64 adds r3, 0x1 cmp r3, 0x3 ble _0806B19C movs r4, 0 movs r3, 0 ldr r0, _0806B324 mov r8, r0 ldr r0, _0806B330 ldr r7, [r0] movs r5, 0x1 add r6, sp, 0xC _0806B1BA: movs r0, 0x64 muls r0, r3 ldr r1, _0806B334 adds r0, r1 adds r2, r7, r0 ldrh r1, [r2] adds r0, r5, 0 ands r0, r1 cmp r0, 0 beq _0806B1DA lsrs r0, r1, 1 ands r0, r5 cmp r0, 0 beq _0806B1DA stm r6!, {r2} adds r4, 0x1 _0806B1DA: adds r3, 0x1 cmp r3, 0x3 ble _0806B1BA cmp r4, 0x3 bgt _0806B1F4 movs r1, 0 lsls r0, r4, 2 add r0, sp adds r0, 0xC _0806B1EC: stm r0!, {r1} adds r4, 0x1 cmp r4, 0x3 ble _0806B1EC _0806B1F4: movs r4, 0 movs r6, 0 add r2, sp, 0xC ldr r5, [sp, 0x30] movs r3, 0x3 _0806B1FE: ldr r1, [r2] cmp r1, 0 beq _0806B210 ldrb r0, [r1, 0x2] cmp r0, 0 beq _0806B210 str r6, [r2] stm r5!, {r1} adds r4, 0x1 _0806B210: adds r2, 0x4 subs r3, 0x1 cmp r3, 0 bge _0806B1FE mov r2, r8 ldr r0, [r2] ldr r3, _0806B338 adds r0, r3 ldrb r0, [r0] cmp r0, 0 bne _0806B24C movs r6, 0 add r2, sp, 0xC lsls r0, r4, 2 ldr r1, [sp, 0x30] adds r5, r0, r1 movs r3, 0x3 _0806B232: ldr r1, [r2] cmp r1, 0 beq _0806B244 ldrb r0, [r1, 0x4] cmp r0, 0x41 bne _0806B244 str r6, [r2] stm r5!, {r1} adds r4, 0x1 _0806B244: adds r2, 0x4 subs r3, 0x1 cmp r3, 0 bge _0806B232 _0806B24C: movs r5, 0 add r2, sp, 0xC lsls r0, r4, 2 ldr r3, [sp, 0x30] adds r0, r3 movs r3, 0x3 _0806B258: ldr r1, [r2] cmp r1, 0 beq _0806B264 str r5, [r2] stm r0!, {r1} adds r4, 0x1 _0806B264: adds r2, 0x4 subs r3, 0x1 cmp r3, 0 bge _0806B258 cmp r4, 0x3 bgt _0806B280 movs r1, 0 lsls r0, r4, 2 ldr r2, [sp, 0x30] adds r0, r2 _0806B278: stm r0!, {r1} adds r4, 0x1 cmp r4, 0x3 ble _0806B278 _0806B280: movs r3, 0 _0806B282: lsls r0, r3, 2 ldr r4, [sp, 0x30] adds r0, r4, r0 ldr r0, [r0] mov r8, r0 adds r0, r3, 0x1 str r0, [sp, 0x34] mov r1, r8 cmp r1, 0 bne _0806B298 b _0806B3E8 _0806B298: movs r2, 0xE ldrsh r1, [r1, r2] ldr r0, _0806B33C cmp r1, r0 beq _0806B2AE adds r0, 0x2 cmp r1, r0 beq _0806B2AE subs r0, 0x1 cmp r1, r0 bne _0806B2B6 _0806B2AE: movs r0, 0xBC lsls r0, 1 mov r4, r8 strh r0, [r4, 0xE] _0806B2B6: ldr r0, _0806B340 ldr r2, [r0] movs r1, 0 ldrsh r0, [r0, r1] adds r3, 0x1 str r3, [sp, 0x34] ldr r3, _0806B340 cmp r0, 0x63 beq _0806B350 ldr r4, _0806B324 mov r9, r4 ldr r0, _0806B328 mov r10, r0 adds r5, r3, 0 _0806B2D2: lsls r0, r2, 16 asrs r7, r0, 16 mov r4, r9 ldr r1, [r4] mov r4, r10 adds r0, r1, r4 movs r4, 0 ldrsh r0, [r0, r4] adds r0, r7, r0 asrs r6, r2, 16 ldr r2, _0806B32C adds r1, r2 movs r4, 0 ldrsh r1, [r1, r4] adds r1, r6, r1 str r3, [sp, 0x38] bl sub_804954C adds r1, r0, 0 ldrb r0, [r1, 0x9] ldr r3, [sp, 0x38] ldr r2, [sp, 0x2C] cmp r0, r2 bne _0806B344 mov r4, r8 movs r2, 0xE ldrsh r0, [r4, r2] bl sub_807034C lsls r0, 24 lsrs r4, r0, 24 ldr r3, [sp, 0x38] cmp r4, 0 bne _0806B344 mov r3, r8 movs r1, 0xE ldrsh r0, [r3, r1] mov r3, r9 ldr r2, [r3] mov r3, r10 b _0806B3A8 .align 2, 0 _0806B324: .4byte gUnknown_203B418 _0806B328: .4byte 0x0000e218 _0806B32C: .4byte 0x0000e21a _0806B330: .4byte gUnknown_203B45C _0806B334: .4byte 0x00008df8 _0806B338: .4byte 0x0000065c _0806B33C: .4byte 0x00000179 _0806B340: .4byte gUnknown_80F4598 _0806B344: adds r5, 0x4 ldr r2, [r5] movs r4, 0 ldrsh r0, [r5, r4] cmp r0, 0x63 bne _0806B2D2 _0806B350: movs r0, 0 cmp r0, 0 bne _0806B3E8 ldr r2, [r3] movs r1, 0 ldrsh r0, [r3, r1] cmp r0, 0x63 beq _0806B3E8 ldr r3, _0806B3CC mov r9, r3 ldr r5, _0806B3D0 _0806B366: lsls r0, r2, 16 asrs r7, r0, 16 mov r4, r9 ldr r1, [r4] ldr r3, _0806B3D4 adds r0, r1, r3 movs r4, 0 ldrsh r0, [r0, r4] adds r0, r7, r0 asrs r6, r2, 16 ldr r2, _0806B3D8 adds r1, r2 movs r3, 0 ldrsh r1, [r1, r3] adds r1, r6, r1 bl sub_804954C adds r1, r0, 0 mov r4, r8 movs r2, 0xE ldrsh r0, [r4, r2] bl sub_807034C lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _0806B3DC mov r3, r8 movs r1, 0xE ldrsh r0, [r3, r1] mov r3, r9 ldr r2, [r3] ldr r3, _0806B3D4 _0806B3A8: adds r1, r2, r3 movs r3, 0 ldrsh r1, [r1, r3] adds r1, r7, r1 ldr r3, _0806B3D8 adds r2, r3 movs r3, 0 ldrsh r2, [r2, r3] adds r2, r6, r2 str r4, [sp] movs r3, 0x1 str r3, [sp, 0x4] str r4, [sp, 0x8] mov r3, r8 bl sub_806B8CC b _0806B3E8 .align 2, 0 _0806B3CC: .4byte gUnknown_203B418 _0806B3D0: .4byte gUnknown_80F4598 _0806B3D4: .4byte 0x0000e218 _0806B3D8: .4byte 0x0000e21a _0806B3DC: adds r5, 0x4 ldr r2, [r5] movs r4, 0 ldrsh r0, [r5, r4] cmp r0, 0x63 bne _0806B366 _0806B3E8: ldr r3, [sp, 0x34] cmp r3, 0x3 bgt _0806B3F0 b _0806B282 _0806B3F0: bl sub_806B678 add sp, 0x3C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_806B168 thumb_func_start sub_806B404 sub_806B404: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x30 movs r5, 0 movs r2, 0 ldr r0, _0806B480 mov r9, r0 ldr r0, _0806B484 ldr r7, [r0] movs r6, 0x1 ldr r1, _0806B488 mov r8, r1 _0806B422: movs r0, 0x64 muls r0, r2 ldr r3, _0806B48C adds r0, r3 adds r3, r7, r0 ldrh r1, [r3] adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _0806B446 lsrs r0, r1, 1 ands r0, r6 cmp r0, 0 beq _0806B446 movs r1, 0xA ldrsh r0, [r3, r1] cmp r0, r8 beq _0806B490 _0806B446: adds r2, 0x1 cmp r2, 0x3 ble _0806B422 _0806B44C: cmp r5, 0x3 bgt _0806B460 movs r1, 0 lsls r0, r5, 2 add r0, sp adds r0, 0xC _0806B458: stm r0!, {r1} adds r5, 0x1 cmp r5, 0x3 ble _0806B458 _0806B460: movs r0, 0 mov r2, r9 str r0, [r2] bl sub_8083600 adds r5, r0, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0806B49C ldrh r0, [r5, 0x6] lsls r0, 16 ldrh r4, [r5, 0x4] b _0806B4AE .align 2, 0 _0806B480: .4byte gUnknown_203B450 _0806B484: .4byte gUnknown_203B45C _0806B488: .4byte 0x000055aa _0806B48C: .4byte 0x00008df8 _0806B490: lsls r0, r5, 2 add r0, sp adds r0, 0xC str r3, [r0] adds r5, 0x1 b _0806B44C _0806B49C: ldr r0, _0806B560 ldr r0, [r0] ldr r3, _0806B564 adds r1, r0, r3 ldr r2, _0806B568 adds r0, r2 ldrh r0, [r0] lsls r0, 16 ldrh r4, [r1] _0806B4AE: orrs r4, r0 lsls r5, r4, 16 asrs r0, r5, 16 asrs r4, 16 adds r1, r4, 0 bl sub_804954C ldrb r0, [r0, 0x9] str r0, [sp, 0x20] movs r2, 0 str r5, [sp, 0x24] mov r10, r4 _0806B4C6: lsls r0, r2, 2 add r0, sp adds r0, 0xC ldr r6, [r0] adds r2, 0x1 str r2, [sp, 0x28] cmp r6, 0 bne _0806B4D8 b _0806B65E _0806B4D8: ldrh r1, [r6] movs r2, 0x1 adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _0806B4E6 b _0806B65E _0806B4E6: lsrs r0, r1, 1 ands r0, r2 cmp r0, 0 bne _0806B4F0 b _0806B65E _0806B4F0: movs r3, 0xA ldrsh r1, [r6, r3] ldr r0, _0806B56C cmp r1, r0 beq _0806B4FC b _0806B65E _0806B4FC: ldr r0, _0806B570 strh r0, [r6, 0xA] movs r7, 0 ldr r2, _0806B574 ldr r0, [r2] str r0, [sp, 0x1C] add r0, sp, 0x1C movs r3, 0 ldrsh r1, [r0, r3] mov r9, r2 adds r2, r0, 0 cmp r1, 0x63 beq _0806B58C ldr r0, [sp, 0x24] asrs r0, 16 mov r8, r0 _0806B51C: movs r1, 0 ldrsh r0, [r2, r1] add r0, r8 ldr r1, [sp, 0x1C] asrs r1, 16 mov r5, r10 adds r1, r5 str r2, [sp, 0x2C] bl sub_804954C adds r1, r0, 0 ldrb r0, [r1, 0x9] ldr r2, [sp, 0x2C] ldr r3, [sp, 0x20] cmp r0, r3 bne _0806B578 movs r3, 0xE ldrsh r0, [r6, r3] bl sub_807034C lsls r0, 24 lsrs r4, r0, 24 ldr r2, [sp, 0x2C] cmp r4, 0 bne _0806B578 movs r1, 0xE ldrsh r0, [r6, r1] movs r3, 0 ldrsh r1, [r2, r3] add r1, r8 ldr r2, [sp, 0x1C] asrs r2, 16 adds r2, r5 b _0806B642 .align 2, 0 _0806B560: .4byte gUnknown_203B418 _0806B564: .4byte 0x0000e218 _0806B568: .4byte 0x0000e21a _0806B56C: .4byte 0x000055aa _0806B570: .4byte 0x00005aa5 _0806B574: .4byte gUnknown_80F4598 _0806B578: adds r7, 0x1 ldr r1, _0806B5E4 lsls r0, r7, 2 adds r0, r1 ldr r0, [r0] str r0, [sp, 0x1C] movs r1, 0 ldrsh r0, [r2, r1] cmp r0, 0x63 bne _0806B51C _0806B58C: movs r3, 0 cmp r3, 0 bne _0806B65E movs r7, 0 mov r1, r9 ldr r0, [r1] str r0, [sp, 0x1C] movs r3, 0 ldrsh r0, [r2, r3] cmp r0, 0x63 beq _0806B5FC ldr r0, [sp, 0x24] asrs r0, 16 mov r8, r0 _0806B5A8: movs r1, 0 ldrsh r0, [r2, r1] add r0, r8 ldr r1, [sp, 0x1C] asrs r1, 16 mov r5, r10 adds r1, r5 str r2, [sp, 0x2C] bl sub_804954C adds r1, r0, 0 movs r3, 0xE ldrsh r0, [r6, r3] bl sub_807034C lsls r0, 24 lsrs r4, r0, 24 ldr r2, [sp, 0x2C] cmp r4, 0 bne _0806B5E8 movs r1, 0xE ldrsh r0, [r6, r1] movs r3, 0 ldrsh r1, [r2, r3] add r1, r8 ldr r2, [sp, 0x1C] asrs r2, 16 adds r2, r5 b _0806B642 .align 2, 0 _0806B5E4: .4byte gUnknown_80F4598 _0806B5E8: adds r7, 0x1 ldr r1, _0806B654 lsls r0, r7, 2 adds r0, r1 ldr r0, [r0] str r0, [sp, 0x1C] movs r1, 0 ldrsh r0, [r2, r1] cmp r0, 0x63 bne _0806B5A8 _0806B5FC: movs r3, 0 cmp r3, 0 bne _0806B65E movs r7, 0 adds r5, r2, 0 _0806B606: adds r0, r5, 0 str r2, [sp, 0x2C] bl sub_8083660 lsls r0, 24 ldr r2, [sp, 0x2C] cmp r0, 0 beq _0806B658 movs r1, 0 ldrsh r0, [r2, r1] movs r3, 0x2 ldrsh r1, [r5, r3] bl sub_804954C adds r1, r0, 0 movs r3, 0xE ldrsh r0, [r6, r3] bl sub_807034C lsls r0, 24 lsrs r4, r0, 24 ldr r2, [sp, 0x2C] cmp r4, 0 bne _0806B658 movs r1, 0xE ldrsh r0, [r6, r1] movs r3, 0 ldrsh r1, [r2, r3] movs r3, 0x2 ldrsh r2, [r5, r3] _0806B642: str r4, [sp] movs r3, 0x1 str r3, [sp, 0x4] str r4, [sp, 0x8] adds r3, r6, 0 bl sub_806B8CC b _0806B65E .align 2, 0 _0806B654: .4byte gUnknown_80F4598 _0806B658: adds r7, 0x1 cmp r7, 0x63 ble _0806B606 _0806B65E: ldr r2, [sp, 0x28] cmp r2, 0x3 bgt _0806B666 b _0806B4C6 _0806B666: add sp, 0x30 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_806B404 thumb_func_start sub_806B678 sub_806B678: push {r4,r5,lr} movs r5, 0 _0806B67C: ldr r0, _0806B6AC ldr r0, [r0] lsls r1, r5, 2 ldr r2, _0806B6B0 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0806B6B8 ldr r0, [r4, 0x70] ldrb r0, [r0, 0x7] cmp r0, 0 beq _0806B6B8 adds r0, r4, 0 bl sub_803F4A0 ldr r1, _0806B6B4 ldr r0, [r4, 0x4] str r0, [r1] b _0806B6BE .align 2, 0 _0806B6AC: .4byte gUnknown_203B418 _0806B6B0: .4byte 0x0001357c _0806B6B4: .4byte gUnknown_202EE0C _0806B6B8: adds r5, 0x1 cmp r5, 0x3 ble _0806B67C _0806B6BE: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_806B678 thumb_func_start sub_806B6C4 sub_806B6C4: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 ldr r4, _0806B708 ldr r0, [r4] movs r1, 0xD1 lsls r1, 3 adds r0, r1 movs r2, 0 ldrsh r1, [r0, r2] negs r0, r1 orrs r0, r1 lsrs r0, 31 mov r8, r0 movs r0, 0x7A bl sub_80860A8 lsls r0, 24 cmp r0, 0 beq _0806B710 movs r0, 0x97 bl sub_808E734 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _0806B710 ldr r0, [r4] ldr r2, _0806B70C adds r0, r2 b _0806B71A .align 2, 0 _0806B708: .4byte gUnknown_203B418 _0806B70C: .4byte 0x000037ff _0806B710: ldr r0, _0806B77C ldr r0, [r0] ldr r1, _0806B780 adds r0, r1 movs r1, 0x1 _0806B71A: strb r1, [r0] movs r0, 0x38 bl sub_8084100 adds r5, r0, 0 movs r0, 0x20 bl sub_8084100 adds r7, r0, 0 movs r0, 0 _0806B72E: adds r7, 0x1 cmp r7, 0x20 bne _0806B736 movs r7, 0 _0806B736: adds r0, 0x1 mov r10, r0 mov r4, sp movs r2, 0x37 mov r9, r2 _0806B740: adds r5, 0x1 cmp r5, 0x38 bne _0806B748 movs r5, 0 _0806B748: adds r0, r5, 0 adds r1, r7, 0 bl sub_804954C ldrh r1, [r0, 0x4] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _0806B7C2 movs r6, 0 mov r0, r8 cmp r0, 0 beq _0806B784 ldr r0, _0806B77C ldr r0, [r0] movs r1, 0xD1 lsls r1, 3 adds r0, r1 ldrh r0, [r0] strh r0, [r4] movs r1, 0x1 movs r0, 0x1 strh r0, [r4, 0x8] strb r1, [r4, 0x2] movs r6, 0x1 b _0806B794 .align 2, 0 _0806B77C: .4byte gUnknown_203B418 _0806B780: .4byte 0x000037ff _0806B784: movs r0, 0 bl sub_803D970 movs r1, 0 strh r0, [r4] mov r2, r8 strh r2, [r4, 0x8] strb r1, [r4, 0x2] _0806B794: movs r0, 0 str r0, [sp, 0x4] strb r0, [r4, 0x10] strh r5, [r4, 0xC] strh r7, [r4, 0xE] cmp r6, 0 bne _0806B7B2 movs r1, 0 ldrsh r0, [r4, r1] movs r1, 0x1 bl sub_806AA0C lsls r0, 24 cmp r0, 0 beq _0806B7C2 _0806B7B2: mov r0, sp movs r1, 0 bl sub_806B7F8 cmp r0, 0 beq _0806B7C2 movs r2, 0 mov r8, r2 _0806B7C2: movs r0, 0x1 negs r0, r0 add r9, r0 mov r1, r9 cmp r1, 0 bge _0806B740 mov r0, r10 cmp r0, 0x1F ble _0806B72E mov r2, r8 cmp r2, 0 beq _0806B7E2 ldr r0, _0806B7F4 ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0xA] _0806B7E2: add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806B7F4: .4byte gUnknown_203B418 thumb_func_end sub_806B6C4 thumb_func_start sub_806B7F8 sub_806B7F8: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x8 adds r6, r0, 0 lsls r1, 24 lsrs r1, 24 mov r8, r1 movs r1, 0xC ldrsh r0, [r6, r1] movs r2, 0xE ldrsh r1, [r6, r2] bl sub_804954C adds r1, r0, 0 movs r3, 0 ldrsh r0, [r6, r3] bl sub_807034C lsls r0, 24 cmp r0, 0 bne _0806B834 movs r4, 0 ldrsh r0, [r6, r4] bl sub_804550C adds r7, r0, 0 cmp r7, 0 bne _0806B838 _0806B834: movs r0, 0 b _0806B8B8 _0806B838: ldr r3, _0806B8C8 movs r0, 0 adds r1, r7, 0 adds r2, r6, 0 bl sub_806BC68 ldr r5, [r7, 0x70] movs r0, 0x1 strb r0, [r5, 0x6] movs r1, 0x8C lsls r1, 1 adds r0, r5, r1 adds r1, r5, 0 adds r1, 0x10 adds r2, r5, 0 adds r2, 0x14 movs r3, 0x16 adds r3, r5 mov r9, r3 movs r3, 0x2 ldrsh r4, [r5, r3] str r4, [sp] ldrb r4, [r5, 0x9] str r4, [sp, 0x4] mov r3, r9 bl sub_806AED8 ldrh r0, [r5, 0x10] strh r0, [r5, 0xE] movs r4, 0x8A lsls r4, 1 adds r1, r5, r4 ldr r0, [r6, 0x4] str r0, [r1] ldrb r0, [r6, 0x2] cmp r0, 0 bne _0806B8B6 mov r0, r8 cmp r0, 0 bne _0806B8B6 ldrb r0, [r6, 0x10] cmp r0, 0 bne _0806B8B6 movs r0, 0x64 bl sub_8084100 adds r4, r0, 0 movs r1, 0 ldrsh r0, [r6, r1] bl sub_808DB60 lsls r0, 24 lsrs r0, 24 cmp r0, r4 ble _0806B8B6 adds r0, r7, 0 movs r1, 0x7F bl sub_8075BF4 adds r0, r7, 0 movs r1, 0x8 bl sub_806CE68 _0806B8B6: adds r0, r7, 0 _0806B8B8: add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0806B8C8: .4byte gUnknown_202EE0C thumb_func_end sub_806B7F8 thumb_func_start sub_806B8CC sub_806B8CC: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x2C mov r9, r1 mov r10, r2 adds r5, r3, 0 ldr r1, [sp, 0x50] ldr r2, [sp, 0x54] lsls r0, 16 asrs r4, r0, 16 lsls r1, 24 lsrs r6, r1, 24 lsls r2, 24 lsrs r2, 24 str r2, [sp, 0x18] ldrb r1, [r5, 0x2] negs r0, r1 orrs r0, r1 lsrs r0, 31 mov r8, r0 ldr r0, [sp, 0x4C] cmp r0, 0 beq _0806B906 movs r0, 0 ldr r1, [sp, 0x4C] str r0, [r1] _0806B906: adds r0, r4, 0 bl sub_808E770 lsls r0, 16 asrs r1, r0, 16 movs r0, 0xCF lsls r0, 1 cmp r1, r0 bne _0806B932 cmp r6, 0 beq _0806B930 ldr r0, _0806B92C ldr r0, [r0] movs r2, 0xE0 lsls r2, 6 adds r0, r2 movs r3, 0 ldrsh r4, [r0, r3] b _0806B932 .align 2, 0 _0806B92C: .4byte gUnknown_203B418 _0806B930: adds r4, r1, 0 _0806B932: mov r0, r9 mov r1, r10 bl sub_804954C adds r1, r0, 0 adds r0, r4, 0 bl sub_807034C lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0 bne _0806B956 adds r0, r4, 0 bl sub_80453AC str r0, [sp, 0x1C] cmp r0, 0 bne _0806B95A _0806B956: movs r0, 0 b _0806BB3C _0806B95A: mov r0, sp movs r7, 0 mov r1, r9 strh r1, [r0, 0xC] mov r2, r10 strh r2, [r0, 0xE] strh r4, [r0] mov r1, sp ldrb r0, [r5, 0x3] strh r0, [r1, 0x8] mov r0, sp strb r7, [r0, 0x2] str r6, [sp, 0x4] strb r7, [r0, 0x10] ldr r4, _0806BB4C ldr r3, _0806BB50 ldrb r0, [r3] lsls r0, 2 adds r0, r4 ldrh r0, [r0] add r0, r9 lsls r0, 16 lsrs r0, 16 ldr r2, _0806BB54 ldr r1, [sp, 0x14] ands r1, r2 orrs r1, r0 str r1, [sp, 0x14] ldrb r0, [r3] lsls r0, 2 adds r0, r4 ldrh r0, [r0, 0x2] add r0, r10 lsls r0, 16 ldr r2, _0806BB58 ands r1, r2 orrs r1, r0 str r1, [sp, 0x14] ldr r3, _0806BB5C mov r0, r8 cmp r0, 0 beq _0806B9B0 add r3, sp, 0x14 _0806B9B0: movs r0, 0x1 ldr r1, [sp, 0x1C] mov r2, sp bl sub_806BC68 ldr r1, [sp, 0x1C] ldr r4, [r1, 0x70] strb r7, [r4, 0x6] strb r7, [r4, 0x8] mov r2, r8 strb r2, [r4, 0x7] adds r0, r4, 0 adds r0, 0xF9 mov r3, sp ldrb r3, [r3, 0x18] strb r3, [r0] ldr r0, _0806BB60 str r6, [r0] mov r6, r8 cmp r6, 0 beq _0806B9E4 ldr r0, _0806BB5C mov r7, r9 strh r7, [r0] mov r1, r10 strh r1, [r0, 0x2] _0806B9E4: ldrh r0, [r5, 0x10] strh r0, [r4, 0xE] ldrh r0, [r5, 0x12] strh r0, [r4, 0x10] ldr r0, [r5, 0x18] str r0, [r4, 0x18] movs r3, 0 movs r2, 0x1C adds r2, r5 mov r8, r2 movs r6, 0x50 adds r6, r5 mov r10, r6 movs r7, 0x94 adds r7, r4 mov r9, r7 adds r0, r4, 0 adds r0, 0x8C str r0, [sp, 0x20] adds r1, r4, 0 adds r1, 0xF3 str r1, [sp, 0x24] adds r2, r4, 0 adds r2, 0x64 str r2, [sp, 0x28] movs r6, 0x14 adds r6, r4 mov r12, r6 adds r7, r5, 0 adds r7, 0x14 adds r6, r4, 0 adds r6, 0x16 adds r2, r5, 0 adds r2, 0x16 _0806BA28: mov r0, r12 adds r1, r0, r3 adds r0, r7, r3 ldrb r0, [r0] strb r0, [r1] adds r1, r6, r3 adds r0, r2, r3 ldrb r0, [r0] strb r0, [r1] adds r3, 0x1 cmp r3, 0x1 ble _0806BA28 movs r1, 0x8C lsls r1, 1 adds r2, r4, r1 adds r1, r2, 0 mov r0, r8 ldm r0!, {r3,r6,r7} stm r1!, {r3,r6,r7} ldm r0!, {r3,r6,r7} stm r1!, {r3,r6,r7} ldm r0!, {r3,r6,r7} stm r1!, {r3,r6,r7} movs r0, 0x1 mov r8, r0 movs r7, 0xEF movs r6, 0xDF movs r3, 0x3 _0806BA60: ldrb r1, [r2] mov r0, r8 ands r0, r1 cmp r0, 0 beq _0806BA72 adds r0, r7, 0 ands r0, r1 ands r0, r6 strb r0, [r2] _0806BA72: adds r2, 0x8 subs r3, 0x1 cmp r3, 0 bge _0806BA60 movs r1, 0x9C lsls r1, 1 adds r2, r4, r1 ldrb r1, [r2] movs r0, 0xEF ands r0, r1 movs r1, 0xDF ands r0, r1 strb r0, [r2] ldrb r0, [r5, 0x3] strb r0, [r4, 0x9] ldrh r0, [r5, 0x8] movs r2, 0 strh r0, [r4, 0xC] mov r3, r10 ldrb r0, [r3] mov r6, r9 strb r0, [r6] ldr r0, [r5, 0x4C] ldr r7, [sp, 0x20] str r0, [r7] ldr r0, [r5, 0x54] str r0, [r4, 0x3C] ldr r0, [r5, 0x4] str r0, [r4, 0x40] movs r0, 0x9E lsls r0, 1 adds r1, r4, r0 ldr r0, [r5, 0x44] str r0, [r1] movs r3, 0xA0 lsls r3, 1 adds r1, r4, r3 ldr r0, [r5, 0x48] str r0, [r1] ldrh r0, [r5, 0xC] strb r0, [r4, 0xA] ldr r0, [r5, 0x40] str r0, [r4, 0x60] ldr r0, [sp, 0x24] strb r2, [r0] ldr r6, [sp, 0x28] strb r2, [r6] ldr r7, _0806BB64 ldr r0, [r7] ldr r1, _0806BB68 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _0806BB24 bl sub_80441BC lsls r0, 24 cmp r0, 0 bne _0806BB24 adds r0, r4, 0 adds r0, 0x5E ldrb r0, [r0] cmp r0, 0x47 beq _0806BAFC adds r0, r4, 0 adds r0, 0x5F ldrb r0, [r0] cmp r0, 0x47 bne _0806BB24 _0806BAFC: adds r4, 0x60 ldrb r1, [r4] movs r5, 0x1 adds r0, r5, 0 ands r0, r1 cmp r0, 0 bne _0806BB24 movs r0, 0 bl sub_803D73C lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x69 beq _0806BB24 adds r0, r4, 0 movs r2, 0 bl sub_8090A8C ldr r2, [sp, 0x24] strb r5, [r2] _0806BB24: ldr r0, [sp, 0x1C] bl sub_806A6E8 ldr r0, [sp, 0x1C] bl sub_807191C ldr r3, [sp, 0x4C] cmp r3, 0 beq _0806BB3A ldr r6, [sp, 0x1C] str r6, [r3] _0806BB3A: movs r0, 0x1 _0806BB3C: add sp, 0x2C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0806BB4C: .4byte gUnknown_80F4448 _0806BB50: .4byte gUnknown_202F32C _0806BB54: .4byte 0xffff0000 _0806BB58: .4byte 0x0000ffff _0806BB5C: .4byte gUnknown_202EE0C _0806BB60: .4byte gUnknown_203B450 _0806BB64: .4byte gUnknown_203B418 _0806BB68: .4byte 0x00000644 thumb_func_end sub_806B8CC thumb_func_start sub_806BB6C sub_806BB6C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C adds r7, r0, 0 lsls r4, r1, 16 asrs r4, 16 ldr r0, [r7, 0x70] mov r9, r0 mov r8, r9 adds r0, 0x98 ldr r0, [r0] bl sub_800F934 add r0, sp, 0x8 movs r1, 0 mov r10, r1 movs r6, 0 lsls r5, r4, 16 lsrs r5, 16 strh r5, [r0] strh r6, [r0, 0x8] mov r2, r10 strb r2, [r0, 0x2] ldr r0, [r7, 0x4] str r0, [sp, 0x14] str r6, [sp, 0xC] movs r0, 0 adds r1, r4, 0 bl sub_8069F54 lsls r0, 16 adds r1, r7, 0 adds r1, 0x22 mov r2, r10 strb r2, [r1] ldr r1, [r7, 0x70] asrs r2, r0, 16 lsrs r0, 16 strh r0, [r1, 0x4] ldr r0, [r7, 0x70] strh r5, [r0, 0x2] adds r0, r2, 0 bl sub_80687D0 str r0, [r7, 0x64] adds r1, r7, 0 adds r1, 0x6A movs r0, 0x7 strb r0, [r1] adds r0, r7, 0 adds r0, 0x6C mov r5, r10 strb r5, [r0] adds r1, 0x1 movs r0, 0xFF strb r0, [r1] adds r1, 0x2 movs r0, 0x1 strb r0, [r1] adds r1, 0x2 strb r0, [r1] str r6, [r7, 0x1C] mov r0, r9 adds r0, 0xB0 ldrb r0, [r0] subs r0, 0x3 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _0806BC08 mov r0, r9 adds r0, 0x9C ldr r0, [r0] bl sub_8076CB4 _0806BC08: movs r1, 0 mov r6, r9 ldrb r0, [r6, 0x6] cmp r0, 0 bne _0806BC14 movs r1, 0x1 _0806BC14: adds r0, r1, 0 adds r1, r7, 0 add r2, sp, 0x8 movs r3, 0 bl sub_806BC68 movs r0, 0x8C lsls r0, 1 add r0, r8 mov r1, r8 adds r1, 0x10 mov r2, r8 adds r2, 0x14 mov r3, r8 adds r3, 0x16 mov r5, r8 movs r6, 0x2 ldrsh r4, [r5, r6] str r4, [sp] ldrb r4, [r5, 0x9] str r4, [sp, 0x4] bl sub_806AED8 ldrh r0, [r5, 0x10] strh r0, [r5, 0xE] mov r0, r10 strb r0, [r5, 0x8] adds r0, r7, 0 bl sub_80429E8 adds r0, r7, 0 bl sub_80418D4 add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_806BB6C thumb_func_start sub_806BC68 sub_806BC68: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC adds r4, r0, 0 mov r8, r1 adds r7, r2, 0 mov r10, r3 lsls r4, 24 lsrs r4, 24 ldr r1, _0806BD0C ldr r0, [r1] movs r5, 0 movs r2, 0x1 mov r9, r2 mov r3, r9 strb r3, [r0, 0xC] mov r0, r8 ldr r6, [r0, 0x70] adds r0, r6, 0 movs r1, 0x1 bl sub_806BFC0 ldrb r1, [r7, 0x2] adds r0, r6, 0 adds r0, 0xA4 strb r1, [r0] mov r0, r8 adds r0, 0x20 mov r1, r9 strb r1, [r0] adds r0, 0x2 strb r5, [r0] ldr r0, _0806BD10 mov r2, r8 strh r0, [r2, 0x8] movs r0, 0x1 negs r0, r0 strh r0, [r2, 0xA] ldr r0, _0806BD14 strh r0, [r2, 0x4] strh r0, [r2, 0x6] movs r3, 0xC ldrsh r1, [r7, r3] movs r0, 0xE ldrsh r2, [r7, r0] mov r0, r8 movs r3, 0x1 bl sub_80694C0 mov r0, r8 movs r1, 0 bl sub_804535C cmp r4, 0 bne _0806BD5E movs r2, 0 ldrsh r1, [r7, r2] movs r0, 0xBE lsls r0, 1 cmp r1, r0 bne _0806BD20 ldr r3, _0806BD0C ldr r1, [r3] ldr r4, _0806BD18 adds r0, r1, r4 ldrb r0, [r0] cmp r0, 0 bne _0806BD20 ldr r2, _0806BD1C adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 beq _0806BD20 ldrb r0, [r7, 0x2] cmp r0, 0 bne _0806BD20 mov r3, r9 strb r3, [r6, 0x8] b _0806BD24 .align 2, 0 _0806BD0C: .4byte gUnknown_203B418 _0806BD10: .4byte 0x0000ffff _0806BD14: .4byte 0x0000fffe _0806BD18: .4byte 0x0000066e _0806BD1C: .4byte 0x00003a0a _0806BD20: movs r0, 0 strb r0, [r6, 0x8] _0806BD24: movs r4, 0x2 ldrsh r0, [r6, r4] bl sub_808E770 lsls r0, 16 movs r1, 0xCF lsls r1, 17 cmp r0, r1 bne _0806BD42 ldr r0, _0806BD94 ldr r0, [r0] ldr r1, _0806BD98 adds r0, r1 movs r1, 0x1 strb r1, [r0] _0806BD42: movs r2, 0x2 ldrsh r0, [r6, r2] bl sub_808E770 lsls r0, 16 asrs r0, 16 cmp r0, 0x97 bne _0806BD5E ldr r0, _0806BD94 ldr r0, [r0] ldr r3, _0806BD9C adds r0, r3 movs r1, 0x1 strb r1, [r0] _0806BD5E: adds r2, r6, 0 adds r2, 0x98 ldr r0, _0806BD94 ldr r1, [r0] ldr r4, _0806BDA0 adds r1, r4 ldr r0, [r1] str r0, [r2] ldr r0, [r1] adds r0, 0x1 str r0, [r1] adds r1, r6, 0 adds r1, 0x9C movs r0, 0 str r0, [r1] ldrh r1, [r7, 0x8] movs r3, 0x8 ldrsh r0, [r7, r3] mov r9, r2 cmp r0, 0 bne _0806BDA4 movs r4, 0 ldrsh r0, [r7, r4] bl sub_803DA20 strb r0, [r6, 0x9] b _0806BDA6 .align 2, 0 _0806BD94: .4byte gUnknown_203B418 _0806BD98: .4byte 0x000037fd _0806BD9C: .4byte 0x000037ff _0806BDA0: .4byte 0x000037f0 _0806BDA4: strb r1, [r6, 0x9] _0806BDA6: movs r0, 0x8A lsls r0, 1 adds r1, r6, r0 ldr r0, [r7, 0x4] str r0, [r1] movs r4, 0x1 strh r4, [r6, 0xC] adds r0, r6, 0 adds r0, 0x8C movs r1, 0 bl sub_808EC94 adds r0, r6, 0 adds r0, 0x3C bl sub_808E6F4 strh r4, [r6, 0x10] strh r4, [r6, 0xE] mov r0, sp movs r1, 0x64 bl sub_80943A0 movs r2, 0x9E lsls r2, 1 adds r1, r6, r2 ldr r0, [sp] str r0, [r1] add r0, sp, 0x4 movs r1, 0x64 bl sub_80943A0 movs r3, 0xA0 lsls r3, 1 adds r1, r6, r3 ldr r0, [sp, 0x4] str r0, [r1] mov r4, r10 cmp r4, 0 beq _0806BE00 movs r0, 0xB6 lsls r0, 1 adds r1, r6, r0 ldr r0, [r4] str r0, [r1] b _0806BE12 _0806BE00: movs r1, 0xB6 lsls r1, 1 adds r0, r6, r1 mov r2, r10 strh r2, [r0] movs r3, 0xB7 lsls r3, 1 adds r0, r6, r3 strh r2, [r0] _0806BE12: movs r7, 0 movs r4, 0 strh r4, [r6] movs r1, 0xA2 lsls r1, 1 adds r0, r6, r1 strb r7, [r0] ldr r2, _0806BFB4 adds r0, r6, r2 strb r7, [r0] movs r3, 0xFA lsls r3, 1 adds r0, r6, r3 strh r4, [r0] adds r1, 0xB2 adds r0, r6, r1 strh r4, [r0] adds r0, r6, 0 adds r0, 0x78 strb r7, [r0] adds r1, r6, 0 adds r1, 0x88 mov r2, r8 ldr r0, [r2, 0x4] str r0, [r1] adds r0, r6, 0 adds r0, 0x80 str r4, [r0] adds r0, 0x4 str r4, [r0] subs r0, 0x8 strh r4, [r0] adds r0, 0x83 strb r7, [r0] subs r3, 0x80 adds r0, r6, r3 str r4, [r0] movs r1, 0x80 lsls r1, 1 adds r0, r6, r1 strb r7, [r0] adds r0, r6, 0 movs r1, 0x1 bl sub_806BFC0 adds r0, r6, 0 adds r0, 0x60 strb r7, [r0, 0x2] strb r7, [r0, 0x1] strb r7, [r0] adds r0, 0x4 strb r7, [r0] movs r2, 0x80 lsls r2, 2 adds r0, r6, r2 str r4, [r0] movs r3, 0xB2 lsls r3, 1 adds r1, r6, r3 movs r0, 0xFF strb r0, [r1] adds r0, 0x66 adds r1, r6, r0 movs r0, 0x1 negs r0, r0 strb r0, [r1] movs r1, 0xFE lsls r1, 1 adds r0, r6, r1 str r4, [r0] subs r2, 0xB9 adds r0, r6, r2 strb r7, [r0] subs r3, 0x1E adds r0, r6, r3 strb r7, [r0] subs r1, 0x96 adds r0, r6, r1 strb r7, [r0] adds r2, 0xB1 adds r0, r6, r2 strh r4, [r0] adds r3, 0xB4 adds r0, r6, r3 strh r4, [r0] subs r1, 0x1E adds r0, r6, r1 strb r7, [r0] subs r2, 0xAF adds r0, r6, r2 strb r7, [r0] subs r3, 0x82 adds r0, r6, r3 strh r4, [r0] adds r0, r6, 0 adds r0, 0xFA strb r7, [r0] adds r0, 0x2 strb r7, [r0] adds r1, 0x3 adds r0, r6, r1 strb r7, [r0] adds r2, 0x3 adds r0, r6, r2 movs r5, 0x1 strb r5, [r0] subs r3, 0x2A adds r0, r6, r3 strh r4, [r0] adds r1, 0x5 adds r0, r6, r1 strh r4, [r0] adds r2, 0x6 adds r0, r6, r2 strb r7, [r0] adds r3, 0x5 adds r0, r6, r3 strb r7, [r0] movs r4, 0xAA lsls r4, 1 adds r0, r6, r4 strb r7, [r0] adds r1, 0x5 adds r0, r6, r1 strb r7, [r0] adds r2, 0x17 adds r0, r6, r2 strb r7, [r0] adds r0, r6, 0 adds r0, 0xFD strb r7, [r0] adds r1, r6, 0 adds r1, 0xFE movs r0, 0x63 strb r0, [r1] adds r3, 0x5 adds r0, r6, r3 strb r7, [r0] adds r4, 0x5 adds r0, r6, r4 strb r7, [r0] movs r1, 0xAD lsls r1, 1 adds r0, r6, r1 strb r7, [r0] mov r0, r8 bl sub_8070774 movs r2, 0xAB lsls r2, 1 adds r1, r6, r2 strb r5, [r1] movs r3, 0xAE lsls r3, 1 adds r0, r6, r3 strb r7, [r0] adds r4, 0x5 adds r0, r6, r4 strb r7, [r0] adds r2, 0x7 adds r0, r6, r2 strb r7, [r0] adds r3, 0x3 adds r0, r6, r3 strb r7, [r0] adds r4, 0x2 adds r0, r6, r4 strb r7, [r0] ldrh r0, [r6, 0x4] subs r0, 0x32 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bhi _0806BF70 strb r7, [r1] _0806BF70: mov r0, r8 ldrh r1, [r0, 0x6] lsls r1, 16 ldrh r0, [r0, 0x4] orrs r0, r1 str r0, [sp, 0x8] mov r1, r9 ldr r0, [r1] movs r2, 0x4 ldrsh r1, [r6, r2] add r2, sp, 0x8 ldr r3, _0806BFB8 ldr r3, [r3] ldr r4, _0806BFBC adds r3, r4 ldrb r3, [r3] bl sub_800F8D0 mov r0, r8 bl sub_807191C mov r0, r8 movs r1, 0 movs r2, 0 bl sub_806A898 add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806BFB4: .4byte 0x00000145 _0806BFB8: .4byte gUnknown_203B418 _0806BFBC: .4byte 0x00018208 thumb_func_end sub_806BC68 thumb_func_start sub_806BFC0 sub_806BFC0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x3C adds r4, r0, 0 lsls r1, 24 lsrs r1, 24 str r1, [sp] adds r1, r4, 0 adds r1, 0xA8 movs r0, 0 strb r0, [r1] adds r1, 0x1 strb r0, [r1] adds r1, 0x3 strb r0, [r1] adds r1, 0x1 strb r0, [r1] adds r1, 0x1 strb r0, [r1] adds r1, 0x1 strb r0, [r1] adds r1, 0x1 strb r0, [r1] adds r1, 0x8 strb r0, [r1] adds r1, 0x1 strb r0, [r1] adds r2, r4, 0 adds r2, 0xB4 movs r1, 0x22 str r1, [r2] adds r1, r4, 0 adds r1, 0xBC strb r0, [r1] adds r1, 0x1 strb r0, [r1] adds r1, 0x3 strb r0, [r1] adds r1, 0x4 strb r0, [r1] adds r1, 0x1 strb r0, [r1] adds r1, 0x3 strb r0, [r1] adds r1, 0x3 strb r0, [r1] adds r1, 0x1 strb r0, [r1] adds r1, 0x4 strb r0, [r1] adds r1, 0x9 strb r0, [r1] adds r1, 0x1 strb r0, [r1] adds r1, 0x2 strb r0, [r1] adds r1, 0x1 strb r0, [r1] adds r1, 0x3 strb r0, [r1] adds r1, 0x4 strb r0, [r1] adds r1, 0x1 strb r0, [r1] adds r1, 0x3 strb r0, [r1] adds r1, 0x1 strb r0, [r1] adds r1, 0x3 strb r0, [r1] adds r1, 0x1 strb r0, [r1] adds r1, 0x3 strb r0, [r1] adds r1, 0x1 strb r0, [r1] adds r1, 0x1 strb r0, [r1] movs r0, 0xB2 lsls r0, 1 adds r1, r4, r0 movs r0, 0xFF strb r0, [r1] ldr r2, _0806C168 adds r1, r4, r2 movs r0, 0x1 negs r0, r0 strb r0, [r1] movs r1, 0 movs r7, 0x84 lsls r7, 1 adds r0, r4, r7 movs r5, 0x4 _0806C080: strb r1, [r0] strb r1, [r0, 0x5] adds r0, 0x1 subs r5, 0x1 cmp r5, 0 bge _0806C080 movs r0, 0 str r0, [sp, 0x4] movs r5, 0 adds r1, r4, 0 adds r1, 0x5E str r1, [sp, 0x8] movs r2, 0x5C adds r2, r4 mov r10, r2 adds r7, r4, 0 adds r7, 0xFD str r7, [sp, 0x20] adds r0, r4, 0 adds r0, 0xF4 str r0, [sp, 0xC] adds r1, 0x9D str r1, [sp, 0x1C] adds r2, r4, 0 adds r2, 0xF5 str r2, [sp, 0x10] subs r7, 0x7 str r7, [sp, 0x14] adds r0, 0x3 str r0, [sp, 0x18] adds r1, 0x4 str r1, [sp, 0x24] movs r2, 0x1 mov r9, r2 movs r3, 0xA subs r7, 0xC2 str r7, [sp, 0x28] subs r0, 0xCB str r0, [sp, 0x2C] adds r2, r4, 0 adds r2, 0x24 subs r1, 0xDF str r1, [sp, 0x38] adds r6, r4, 0 adds r6, 0x1C movs r7, 0x80 lsls r7, 1 mov r8, r7 _0806C0E0: movs r1, 0x2 ldrsh r0, [r4, r1] adds r1, r5, 0 str r2, [sp, 0x30] str r3, [sp, 0x34] bl sub_808DC84 ldr r7, [sp, 0x8] adds r1, r7, r5 strb r0, [r1] lsls r0, 24 lsrs r0, 24 ldr r2, [sp, 0x30] ldr r3, [sp, 0x34] cmp r0, 0x25 bne _0806C104 movs r0, 0x1 str r0, [sp, 0x4] _0806C104: ldr r1, [sp] cmp r1, 0 beq _0806C11E adds r0, r4, 0 adds r0, 0x14 adds r0, r5 mov r7, r9 strb r7, [r0] adds r0, r4, 0 adds r0, 0x16 adds r0, r5 mov r1, r9 strb r1, [r0] _0806C11E: strh r3, [r6] ldr r7, [sp, 0x38] strh r3, [r7] strh r3, [r2] ldr r1, [sp, 0x2C] mov r0, r8 stm r1!, {r0} str r1, [sp, 0x2C] ldr r7, [sp, 0x28] stm r7!, {r0} str r7, [sp, 0x28] adds r2, 0x2 ldr r0, [sp, 0x38] adds r0, 0x2 str r0, [sp, 0x38] adds r6, 0x2 adds r5, 0x1 cmp r5, 0x1 ble _0806C0E0 ldr r1, [sp, 0x4] cmp r1, 0 beq _0806C170 movs r0, 0 bl sub_807E580 ldr r1, _0806C16C lsls r0, 24 lsrs r0, 22 adds r0, r1 ldrb r0, [r0] movs r1, 0 mov r2, r10 strb r0, [r2] adds r0, r4, 0 adds r0, 0x5D strb r1, [r0] b _0806C188 .align 2, 0 _0806C168: .4byte 0x00000165 _0806C16C: .4byte gUnknown_80F520C _0806C170: movs r5, 0 _0806C172: movs r7, 0x2 ldrsh r0, [r4, r7] adds r1, r5, 0 bl sub_808DC68 mov r2, r10 adds r1, r2, r5 strb r0, [r1] adds r5, 0x1 cmp r5, 0x1 ble _0806C172 _0806C188: ldr r0, _0806C1D0 ldr r1, [r0] movs r2, 0 movs r0, 0x1 strb r0, [r1, 0xC] movs r0, 0 strh r2, [r4, 0x28] movs r7, 0x89 lsls r7, 1 adds r1, r4, r7 strb r0, [r1] ldr r1, [sp, 0x20] strb r0, [r1] ldr r2, _0806C1D4 adds r1, r4, r2 strb r0, [r1] ldr r7, [sp, 0xC] strb r0, [r7] ldr r1, [sp, 0x1C] strb r0, [r1] ldr r2, [sp, 0x10] strb r0, [r2] ldr r7, [sp, 0x14] strb r0, [r7] ldr r1, [sp, 0x18] strb r0, [r1] ldr r2, [sp, 0x24] strb r0, [r2] add sp, 0x3C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806C1D0: .4byte gUnknown_203B418 _0806C1D4: .4byte 0x00000113 thumb_func_end sub_806BFC0 thumb_func_start sub_806C1D8 sub_806C1D8: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} movs r5, 0 _0806C1E2: ldr r0, _0806C258 ldr r0, [r0] lsls r1, r5, 2 ldr r2, _0806C25C adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 adds r5, 0x1 mov r9, r5 cmp r0, 0 beq _0806C244 ldr r4, [r4, 0x70] ldrb r6, [r4, 0xA] cmp r6, 0 blt _0806C244 movs r5, 0 movs r0, 0x8C lsls r0, 1 mov r12, r0 movs r2, 0x1 mov r8, r2 adds r3, r4, 0 movs r7, 0xFE _0806C218: lsls r0, r5, 3 adds r0, r4 add r0, r12 ldrb r1, [r0] mov r0, r8 ands r0, r1 cmp r0, 0 beq _0806C234 ldr r0, _0806C260 adds r2, r3, r0 ldrb r1, [r2] adds r0, r7, 0 ands r0, r1 strb r0, [r2] _0806C234: adds r3, 0x8 adds r5, 0x1 cmp r5, 0x3 ble _0806C218 adds r0, r6, 0 adds r1, r4, 0 bl sub_806C264 _0806C244: mov r5, r9 cmp r5, 0x3 ble _0806C1E2 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806C258: .4byte gUnknown_203B418 _0806C25C: .4byte 0x0001357c _0806C260: .4byte 0x00000119 thumb_func_end sub_806C1D8 thumb_func_start sub_806C264 sub_806C264: push {r4,r5,lr} mov r12, r1 ldr r2, _0806C31C movs r1, 0x64 muls r0, r1 ldr r1, _0806C320 adds r0, r1 ldr r1, [r2] adds r3, r1, r0 mov r2, r12 ldrh r0, [r2, 0xE] strh r0, [r3, 0x10] ldrh r0, [r2, 0x10] strh r0, [r3, 0x12] ldr r0, [r2, 0x18] str r0, [r3, 0x18] adds r2, 0x14 adds r1, r3, 0 adds r1, 0x14 movs r4, 0x1 _0806C28C: ldrb r0, [r2] strb r0, [r1] ldrb r0, [r2, 0x2] strb r0, [r1, 0x2] adds r2, 0x1 adds r1, 0x1 subs r4, 0x1 cmp r4, 0 bge _0806C28C ldr r4, _0806C324 adds r0, r4, 0 mov r5, r12 ldrh r5, [r5, 0x4] adds r0, r5 lsls r0, 16 lsrs r0, 16 cmp r0, 0x2 bhi _0806C2B6 movs r0, 0xBC lsls r0, 1 strh r0, [r3, 0xE] _0806C2B6: adds r1, r3, 0 adds r1, 0x1C movs r0, 0x8C lsls r0, 1 add r0, r12 ldm r0!, {r2,r4,r5} stm r1!, {r2,r4,r5} ldm r0!, {r2,r4,r5} stm r1!, {r2,r4,r5} ldm r0!, {r2,r4,r5} stm r1!, {r2,r4,r5} mov r1, r12 ldrb r0, [r1, 0x9] strb r0, [r3, 0x3] ldrh r0, [r1, 0xC] strh r0, [r3, 0x8] mov r0, r12 adds r0, 0x8C ldr r0, [r0] str r0, [r3, 0x4C] mov r0, r12 adds r0, 0x94 ldrb r1, [r0] adds r0, r3, 0 adds r0, 0x50 strb r1, [r0] mov r2, r12 ldr r0, [r2, 0x3C] str r0, [r3, 0x54] movs r0, 0x9E lsls r0, 1 add r0, r12 ldr r0, [r0] str r0, [r3, 0x44] movs r0, 0xA0 lsls r0, 1 add r0, r12 ldr r0, [r0] str r0, [r3, 0x48] ldr r0, [r2, 0x60] str r0, [r3, 0x40] movs r4, 0xA ldrsh r1, [r3, r4] ldr r0, _0806C328 cmp r1, r0 bne _0806C316 ldr r0, _0806C32C strh r0, [r3, 0xA] _0806C316: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0806C31C: .4byte gUnknown_203B45C _0806C320: .4byte 0x00008df8 _0806C324: .4byte 0xfffffe87 _0806C328: .4byte 0x000055aa _0806C32C: .4byte 0x00005aa5 thumb_func_end sub_806C264 thumb_func_start sub_806C330 sub_806C330: push {r4-r7,lr} adds r4, r0, 0 adds r5, r1, 0 lsls r2, 16 asrs r2, 16 mov r12, r2 lsls r3, 24 lsrs r7, r3, 24 ldr r0, _0806C370 ldr r0, [r0] ldr r1, _0806C374 adds r2, r0, r1 movs r3, 0 ldr r0, [r2, 0x40] cmp r3, r0 bge _0806C382 mov r1, r12 lsls r0, r1, 16 lsrs r6, r0, 16 adds r1, r2, 0 _0806C358: ldrb r0, [r1, 0x3] cmp r0, 0 beq _0806C378 ldrb r0, [r1, 0x4] cmp r0, r4 bne _0806C378 ldrb r0, [r1, 0x5] cmp r0, r5 bne _0806C378 strh r6, [r1] strb r7, [r1, 0x2] b _0806C3B8 .align 2, 0 _0806C370: .4byte gUnknown_203B418 _0806C374: .4byte 0x0000057c _0806C378: adds r1, 0x8 adds r3, 0x1 ldr r0, [r2, 0x40] cmp r3, r0 blt _0806C358 _0806C382: ldr r0, [r2, 0x40] cmp r0, 0x7 bgt _0806C3B8 lsls r0, 3 adds r0, r2, r0 movs r1, 0x1 strb r1, [r0, 0x3] ldr r0, [r2, 0x40] lsls r0, 3 adds r0, r2, r0 strb r4, [r0, 0x4] ldr r0, [r2, 0x40] lsls r0, 3 adds r0, r2, r0 strb r5, [r0, 0x5] ldr r0, [r2, 0x40] lsls r0, 3 adds r0, r2, r0 mov r1, r12 strh r1, [r0] ldr r0, [r2, 0x40] lsls r0, 3 adds r0, r2, r0 strb r7, [r0, 0x2] ldr r0, [r2, 0x40] adds r0, 0x1 str r0, [r2, 0x40] _0806C3B8: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_806C330 thumb_func_start sub_806C3C0 sub_806C3C0: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x18 ldr r0, _0806C424 ldr r0, [r0] ldr r1, _0806C428 adds r7, r0, r1 movs r6, 0 ldr r0, [r7, 0x40] cmp r6, r0 bge _0806C416 mov r5, sp movs r0, 0 mov r8, r0 movs r2, 0 adds r4, r7, 0 _0806C3E2: ldrb r0, [r4, 0x3] cmp r0, 0 beq _0806C40C ldrh r0, [r4] strh r0, [r5] strh r2, [r5, 0x8] ldrb r0, [r4, 0x4] strh r0, [r5, 0xC] ldrb r0, [r4, 0x5] strh r0, [r5, 0xE] ldrb r0, [r4, 0x2] strb r0, [r5, 0x2] str r2, [sp, 0x4] mov r1, r8 strb r1, [r5, 0x10] mov r0, sp movs r1, 0x1 str r2, [sp, 0x14] bl sub_806B7F8 ldr r2, [sp, 0x14] _0806C40C: adds r4, 0x8 adds r6, 0x1 ldr r0, [r7, 0x40] cmp r6, r0 blt _0806C3E2 _0806C416: add sp, 0x18 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806C424: .4byte gUnknown_203B418 _0806C428: .4byte 0x0000057c thumb_func_end sub_806C3C0 thumb_func_start sub_806C42C sub_806C42C: ldr r0, _0806C43C ldr r0, [r0] ldr r1, _0806C440 adds r0, r1 movs r1, 0 str r1, [r0, 0x40] bx lr .align 2, 0 _0806C43C: .4byte gUnknown_203B418 _0806C440: .4byte 0x0000057c thumb_func_end sub_806C42C thumb_func_start sub_806C444 sub_806C444: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xC adds r7, r1, 0 lsls r0, 16 asrs r6, r0, 16 adds r0, r6, 0 bl sub_808DBC0 adds r5, r0, 0 movs r4, 0x2 cmp r4, r7 bgt _0806C478 mov r8, sp _0806C462: mov r0, sp adds r1, r6, 0 adds r2, r4, 0 bl sub_808E010 mov r1, r8 ldrh r0, [r1, 0x4] adds r5, r0 adds r4, 0x1 cmp r4, r7 ble _0806C462 _0806C478: adds r0, r5, 0 add sp, 0xC pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_806C444 thumb_func_start sub_806C488 sub_806C488: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xC adds r7, r1, 0 mov r8, r2 lsls r0, 16 asrs r6, r0, 16 adds r0, r6, 0 mov r1, r8 bl sub_808DC28 adds r5, r0, 0 movs r4, 0x2 cmp r4, r7 bgt _0806C4C4 mov r0, sp adds r0, 0x6 add r8, r0 _0806C4AE: mov r0, sp adds r1, r6, 0 adds r2, r4, 0 bl sub_808E010 mov r1, r8 ldrb r0, [r1] adds r5, r0 adds r4, 0x1 cmp r4, r7 ble _0806C4AE _0806C4C4: adds r0, r5, 0 add sp, 0xC pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_806C488 thumb_func_start sub_806C4D4 sub_806C4D4: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xC adds r7, r1, 0 mov r8, r2 lsls r0, 16 asrs r6, r0, 16 adds r0, r6, 0 mov r1, r8 bl sub_808DC48 adds r5, r0, 0 movs r4, 0x2 cmp r4, r7 bgt _0806C50E add r0, sp, 0x8 add r8, r0 _0806C4F8: mov r0, sp adds r1, r6, 0 adds r2, r4, 0 bl sub_808E010 mov r1, r8 ldrb r0, [r1] adds r5, r0 adds r4, 0x1 cmp r4, r7 ble _0806C4F8 _0806C50E: adds r0, r5, 0 add sp, 0xC pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_806C4D4 thumb_func_start sub_806C51C sub_806C51C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x50 adds r6, r0, 0 ldr r0, [r6, 0x70] mov r8, r0 ldr r0, _0806C544 ldr r1, [r0] ldr r2, _0806C548 adds r0, r1, r2 ldr r0, [r0] cmp r0, r6 bne _0806C54C movs r3, 0 str r3, [sp, 0x38] b _0806C554 .align 2, 0 _0806C544: .4byte gUnknown_203B418 _0806C548: .4byte 0x000181f8 _0806C54C: ldr r4, _0806C5AC adds r0, r1, r4 ldrb r0, [r0] str r0, [sp, 0x38] _0806C554: mov r0, r8 adds r0, 0xC8 ldrb r1, [r0] str r0, [sp, 0x40] cmp r1, 0x2 bne _0806C564 movs r7, 0x1 str r7, [sp, 0x38] _0806C564: adds r0, r6, 0 adds r0, 0x6B adds r1, r6, 0 adds r1, 0x6A ldrb r2, [r0] str r0, [sp, 0x48] mov r9, r1 adds r5, r6, 0 adds r5, 0x6D adds r0, 0x1 str r0, [sp, 0x4C] adds r4, r6, 0 adds r4, 0x6F subs r1, 0x47 str r1, [sp, 0x44] mov r3, r9 ldrb r3, [r3] cmp r2, r3 bne _0806C676 ldrb r0, [r5] ldr r7, [sp, 0x4C] ldrb r7, [r7] cmp r0, r7 bne _0806C654 ldrb r0, [r4] cmp r0, 0 bne _0806C654 movs r2, 0 ldrh r1, [r6, 0x28] movs r0, 0x80 lsls r0, 6 ands r0, r1 cmp r0, 0 beq _0806C5B0 movs r0, 0 b _0806C5B2 .align 2, 0 _0806C5AC: .4byte 0x00018210 _0806C5B0: lsrs r0, r1, 15 _0806C5B2: cmp r0, 0 bne _0806C5B8 movs r2, 0x1 _0806C5B8: adds r0, r6, 0 adds r0, 0x23 str r0, [sp, 0x44] cmp r2, 0 beq _0806C654 adds r0, r6, 0 bl sub_806CEBC lsls r0, 24 lsrs r3, r0, 24 adds r1, r6, 0 adds r1, 0x21 movs r0, 0x1 strb r0, [r1] mov r1, r8 adds r1, 0xFE ldrb r0, [r1] cmp r0, 0x63 bne _0806C620 ldr r1, [sp, 0x48] ldrb r0, [r1] cmp r0, 0xC bhi _0806C61C mov r0, r8 adds r0, 0xC0 ldrb r0, [r0] cmp r0, 0x1 bne _0806C5F4 movs r2, 0x2 b _0806C600 _0806C5F4: ldr r2, [sp, 0x44] ldrb r0, [r2] movs r2, 0x1 cmp r0, 0x2 bhi _0806C600 movs r2, 0 _0806C600: ldr r1, _0806C618 movs r0, 0xD muls r0, r2 ldr r7, [sp, 0x48] ldrb r7, [r7] adds r0, r7 adds r0, r1 ldrb r0, [r0] cmp r0, 0x7 bne _0806C622 adds r0, r3, 0 b _0806C622 .align 2, 0 _0806C618: .4byte gUnknown_8106EC8 _0806C61C: movs r0, 0x63 b _0806C622 _0806C620: ldrb r0, [r1] _0806C622: cmp r0, 0x63 beq _0806C654 mov r1, r9 strb r0, [r1] ldrb r1, [r5] movs r0, 0x7 ands r0, r1 ldr r2, [sp, 0x4C] strb r0, [r2] movs r0, 0x1 strb r0, [r4] mov r7, r9 ldrb r0, [r7] cmp r0, 0x6 bne _0806C654 adds r1, r6, 0 adds r1, 0x6E ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] lsls r0, 24 lsrs r0, 24 cmp r0, 0x10 bne _0806C654 strb r3, [r7] _0806C654: ldr r1, [sp, 0x48] ldrb r0, [r1] mov r2, r9 ldrb r2, [r2] cmp r0, r2 bne _0806C676 ldrb r0, [r5] ldr r3, [sp, 0x4C] ldrb r3, [r3] cmp r0, r3 bne _0806C676 ldrb r0, [r4] movs r7, 0x28 adds r7, r6 mov r10, r7 cmp r0, 0 beq _0806C714 _0806C676: mov r1, r9 ldrb r0, [r1] ldr r2, [sp, 0x48] strb r0, [r2] ldr r3, [sp, 0x4C] mov r10, r3 ldrb r0, [r3] strb r0, [r5] movs r7, 0 strb r7, [r4] adds r0, r6, 0 adds r0, 0x68 movs r1, 0 ldrsh r7, [r0, r1] mov r2, r8 movs r3, 0x4 ldrsh r0, [r2, r3] mov r4, r9 ldrb r1, [r4] bl sub_808DA44 lsls r0, 24 cmp r0, 0 beq _0806C6A8 movs r7, 0 _0806C6A8: ldr r0, [sp, 0x38] cmp r0, 0 bne _0806C6D6 bl Random movs r4, 0x3 ands r4, r0 adds r5, r6, 0 adds r5, 0x28 ldr r1, [r6, 0x64] mov r3, r9 ldrb r2, [r3] mov r0, r10 ldrb r3, [r0] str r7, [sp] str r4, [sp, 0x4] ldr r4, [sp, 0x38] str r4, [sp, 0x8] adds r0, r5, 0 bl sub_80053AC mov r10, r5 b _0806C704 _0806C6D6: ldr r0, _0806C774 bl sub_80687D0 adds r5, r0, 0 bl Random movs r1, 0x3 ands r1, r0 adds r4, r6, 0 adds r4, 0x28 mov r0, r9 ldrb r2, [r0] ldr r0, [sp, 0x4C] ldrb r3, [r0] str r7, [sp] str r1, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] adds r0, r4, 0 adds r1, r5, 0 bl sub_80053AC mov r10, r4 _0806C704: mov r2, r9 ldrb r0, [r2] cmp r0, 0x6 beq _0806C714 adds r1, r6, 0 adds r1, 0x6E movs r0, 0 strb r0, [r1] _0806C714: ldr r0, _0806C778 ldr r1, [r0] ldr r3, _0806C77C adds r0, r1, r3 ldrb r0, [r0] cmp r0, 0 beq _0806C784 ldr r4, [sp, 0x48] ldrb r0, [r4] cmp r0, 0x7 bne _0806C73C mov r7, r8 movs r1, 0x4 ldrsh r0, [r7, r1] bl sub_808DB14 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _0806C7E2 _0806C73C: movs r0, 0xAE lsls r0, 1 add r0, r8 ldrb r0, [r0] cmp r0, 0 beq _0806C76A movs r0, 0xB0 lsls r0, 1 add r0, r8 ldrb r0, [r0] cmp r0, 0 bne _0806C7E2 ldr r0, _0806C780 add r0, r8 ldrb r0, [r0] cmp r0, 0 beq _0806C76A mov r0, r10 bl sub_80054BC mov r0, r10 bl sub_80054BC _0806C76A: mov r0, r10 bl sub_80054BC b _0806C7E2 .align 2, 0 _0806C774: .4byte 0x000001a5 _0806C778: .4byte gUnknown_203B418 _0806C77C: .4byte 0x0001356c _0806C780: .4byte 0x0000015f _0806C784: mov r0, r8 adds r0, 0xB0 ldrb r0, [r0] cmp r0, 0x1 beq _0806C7E2 cmp r0, 0x6 beq _0806C7E2 ldr r2, _0806C7B4 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 beq _0806C7BC ldr r3, _0806C7B8 adds r0, r1, r3 ldrb r0, [r0] cmp r0, 0 bne _0806C7BC mov r0, r10 bl sub_80054BC mov r0, r10 bl sub_80054BC b _0806C7DC .align 2, 0 _0806C7B4: .4byte 0x0000066c _0806C7B8: .4byte 0x0001c05f _0806C7BC: ldr r4, [sp, 0x48] ldrb r0, [r4] cmp r0, 0 beq _0806C7C8 cmp r0, 0x7 bne _0806C7DC _0806C7C8: ldr r0, [r6, 0x70] movs r7, 0x82 lsls r7, 1 adds r0, r7 ldr r0, [r0] cmp r0, 0x1 ble _0806C7DC mov r0, r10 bl sub_80054BC _0806C7DC: mov r0, r10 bl sub_80054BC _0806C7E2: ldr r1, [r6, 0xC] ldr r0, [r6, 0x14] cmp r1, r0 bne _0806C800 ldr r1, [r6, 0x10] ldr r0, [r6, 0x18] cmp r1, r0 bne _0806C800 ldr r1, [sp, 0x44] ldrb r0, [r1] cmp r0, 0x9 bhi _0806C806 adds r0, 0x1 strb r0, [r1] b _0806C806 _0806C800: movs r0, 0 ldr r2, [sp, 0x44] strb r0, [r2] _0806C806: ldr r0, [r6, 0xC] str r0, [r6, 0x14] ldr r2, [r6, 0x10] str r2, [r6, 0x18] cmp r0, 0 bge _0806C814 adds r0, 0xFF _0806C814: asrs r1, r0, 8 ldr r0, _0806C88C ldr r3, [r0] ldr r4, _0806C890 adds r0, r3, r4 movs r7, 0 ldrsh r0, [r0, r7] subs r1, r0 str r1, [sp, 0x2C] ldr r0, [r6, 0x1C] subs r0, r2, r0 movs r1, 0xBA lsls r1, 1 add r1, r8 ldr r1, [r1] subs r0, r1 cmp r0, 0 bge _0806C83A adds r0, 0xFF _0806C83A: asrs r1, r0, 8 ldr r4, _0806C894 adds r0, r3, r4 movs r7, 0 ldrsh r3, [r0, r7] subs r1, r3 str r1, [sp, 0x30] adds r0, r2, 0 cmp r0, 0 bge _0806C850 adds r0, 0xFF _0806C850: asrs r0, 8 subs r0, r3 mov r9, r0 lsrs r0, 31 add r0, r9 asrs r0, 1 mov r9, r0 movs r0, 0xAB lsls r0, 1 add r0, r8 ldrb r0, [r0] cmp r0, 0 bne _0806C870 movs r0, 0x1 negs r0, r0 add r9, r0 _0806C870: movs r0, 0xAE lsls r0, 1 add r0, r8 ldrb r0, [r0] cmp r0, 0 bne _0806C898 adds r0, r6, 0 bl sub_8042768 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x34] b _0806C8D8 .align 2, 0 _0806C88C: .4byte gUnknown_203B418 _0806C890: .4byte 0x000181f0 _0806C894: .4byte 0x000181f2 _0806C898: ldr r0, _0806C8B8 add r0, r8 ldrb r0, [r0] cmp r0, 0 beq _0806C8C6 ldr r0, _0806C8BC ldr r0, [r0] movs r1, 0x4 ands r0, r1 cmp r0, 0 beq _0806C8C0 ldr r1, [sp, 0x2C] adds r1, 0x1 str r1, [sp, 0x2C] b _0806C8C6 .align 2, 0 _0806C8B8: .4byte 0x0000015d _0806C8BC: .4byte gUnknown_202EDCC _0806C8C0: ldr r2, [sp, 0x2C] subs r2, 0x1 str r2, [sp, 0x2C] _0806C8C6: movs r1, 0 movs r0, 0xAF lsls r0, 1 add r0, r8 ldrb r0, [r0] cmp r0, 0 bne _0806C8D6 movs r1, 0x1 _0806C8D6: str r1, [sp, 0x34] _0806C8D8: ldr r0, [r6, 0xC] cmp r0, 0 bge _0806C8E0 adds r0, 0xFF _0806C8E0: lsls r0, 8 lsrs r0, 16 ldr r1, _0806C998 ldr r2, [sp, 0x28] ands r2, r1 orrs r2, r0 str r2, [sp, 0x28] ldr r1, [r6, 0x10] ldr r0, [r6, 0x1C] subs r1, r0 movs r5, 0xBA lsls r5, 1 add r5, r8 ldr r0, [r5] subs r0, r1, r0 cmp r0, 0 bge _0806C904 adds r0, 0xFF _0806C904: lsls r0, 8 lsrs r0, 16 lsls r0, 16 ldr r1, _0806C99C ands r2, r1 orrs r2, r0 str r2, [sp, 0x28] add r0, sp, 0xC mov r1, r10 bl sub_8005700 mov r4, r8 adds r4, 0x98 ldr r0, [r4] add r1, sp, 0x28 ldr r2, _0806C9A0 ldr r2, [r2] ldr r3, _0806C9A4 adds r2, r3 ldrb r3, [r2] add r2, sp, 0xC bl sub_800F958 adds r0, r6, 0 bl sub_804187C adds r2, r0, 0 ldr r4, [r4] mov r0, r8 movs r1, 0x4 ldrsh r7, [r0, r1] movs r3, 0 ldr r0, [sp, 0x34] cmp r0, 0 beq _0806C958 movs r0, 0xA6 lsls r0, 1 add r0, r8 ldrb r1, [r0] negs r0, r1 orrs r0, r1 lsrs r3, r0, 31 _0806C958: adds r0, r4, 0 adds r1, r7, 0 bl sub_800F75C adds r0, r6, 0 mov r1, r9 bl sub_8042EC8 movs r0, 0xAE lsls r0, 1 add r0, r8 ldrb r1, [r0] cmp r1, 0 bne _0806C9BA mov r0, r8 adds r0, 0xFF ldrb r0, [r0] cmp r0, 0x1 bne _0806C9AC ldr r1, [r5] ldr r0, _0806C9A8 cmp r1, r0 bgt _0806C9BA movs r2, 0x80 lsls r2, 4 adds r0, r1, r2 str r0, [r5] movs r1, 0xC8 lsls r1, 8 cmp r0, r1 ble _0806C9BA b _0806C9B8 .align 2, 0 _0806C998: .4byte 0xffff0000 _0806C99C: .4byte 0x0000ffff _0806C9A0: .4byte gUnknown_203B418 _0806C9A4: .4byte 0x00018208 _0806C9A8: .4byte 0x0000c7ff _0806C9AC: ldr r0, [r5] ldr r3, _0806CA5C adds r0, r3 str r0, [r5] cmp r0, 0 bge _0806C9BA _0806C9B8: str r1, [r5] _0806C9BA: ldr r4, [sp, 0x34] cmp r4, 0 bne _0806C9C2 b _0806CBDE _0806C9C2: movs r4, 0 adds r0, r6, 0 bl sub_806CF54 lsls r0, 24 lsrs r7, r0, 24 add r1, sp, 0x1C ldr r2, _0806CA60 strh r2, [r1] ldr r0, _0806CA64 strh r0, [r1, 0x2] strh r2, [r1, 0x4] strh r4, [r1, 0x6] strh r4, [r1, 0x8] ldr r0, _0806CA68 ldr r0, [r0] ldr r2, _0806CA6C adds r0, r2 ldrb r0, [r0] lsls r0, 10 strh r0, [r1, 0xA] mov r3, r8 ldrb r0, [r3, 0x6] adds r5, r1, 0 cmp r0, 0 beq _0806CA08 ldr r1, _0806CA70 adds r0, r1, 0 ldrh r2, [r3, 0x4] adds r0, r2 lsls r0, 16 lsrs r0, 16 cmp r0, 0x2 bhi _0806CA08 movs r4, 0x1 _0806CA08: mov r0, r8 adds r0, 0xE4 ldrb r0, [r0] cmp r0, 0x1 bne _0806CA22 ldr r0, _0806CA68 ldr r0, [r0] ldr r3, _0806CA74 adds r0, r3 ldrb r0, [r0] cmp r0, 0 bne _0806CA22 movs r4, 0x1 _0806CA22: cmp r4, 0 beq _0806CA32 ldrh r1, [r5, 0x6] movs r4, 0x80 lsls r4, 3 adds r0, r4, 0 orrs r0, r1 strh r0, [r5, 0x6] _0806CA32: movs r0, 0 str r0, [sp, 0x3C] mov r1, r8 ldrb r0, [r1, 0x6] cmp r0, 0 beq _0806CA46 ldr r2, [sp, 0x40] ldrb r0, [r2] cmp r0, 0x2 bne _0806CA4A _0806CA46: movs r3, 0x1 str r3, [sp, 0x3C] _0806CA4A: mov r0, r8 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x4A beq _0806CA58 cmp r0, 0x47 bne _0806CA78 _0806CA58: movs r0, 0x1 b _0806CA7A .align 2, 0 _0806CA5C: .4byte 0xfffff400 _0806CA60: .4byte 0x0000f3ff _0806CA64: .4byte 0x0000ffff _0806CA68: .4byte gUnknown_203B418 _0806CA6C: .4byte 0x00018208 _0806CA70: .4byte 0xfffffe5f _0806CA74: .4byte 0x0001820f _0806CA78: movs r0, 0 _0806CA7A: cmp r0, 0 bne _0806CA88 mov r0, r8 adds r0, 0xA4 ldrb r0, [r0] cmp r0, 0x1 bne _0806CA8C _0806CA88: movs r4, 0x1 str r4, [sp, 0x3C] _0806CA8C: mov r0, r8 adds r0, 0xFF ldrb r0, [r0] cmp r0, 0x2 beq _0806CB16 mov r0, r8 adds r0, 0xB0 ldrb r1, [r0] cmp r1, 0x6 beq _0806CAAC subs r0, 0x4 ldrb r0, [r0] cmp r0, 0x4 beq _0806CAAC cmp r1, 0x2 bne _0806CABA _0806CAAC: ldr r0, _0806CAC4 ldr r0, [r0] movs r1, 0x2 ands r0, r1 ldr r1, [sp, 0x2C] adds r1, r0 str r1, [sp, 0x2C] _0806CABA: ldr r2, [sp, 0x38] cmp r2, 0 beq _0806CACC ldr r0, _0806CAC8 b _0806CAD2 .align 2, 0 _0806CAC4: .4byte gUnknown_202EDCC _0806CAC8: .4byte 0x000001a5 _0806CACC: mov r3, r8 movs r4, 0x4 ldrsh r0, [r3, r4] _0806CAD2: movs r1, 0 bl sub_808DD68 lsls r0, 24 lsrs r2, r0, 24 adds r0, r6, 0 adds r0, 0x22 ldrb r1, [r0] cmp r1, 0 bne _0806CAF8 str r2, [sp] str r5, [sp, 0x4] mov r0, r10 ldr r1, [sp, 0x2C] ldr r2, [sp, 0x30] mov r3, r9 bl sub_800558C b _0806CB16 _0806CAF8: cmp r1, 0x1 bne _0806CB16 ldr r0, _0806CBF0 ldr r0, [r0] ands r0, r1 cmp r0, 0 beq _0806CB16 str r2, [sp] str r5, [sp, 0x4] mov r0, r10 ldr r1, [sp, 0x2C] ldr r2, [sp, 0x30] mov r3, r9 bl sub_800558C _0806CB16: ldr r0, [r6, 0xC] cmp r0, 0 bge _0806CB1E adds r0, 0xFF _0806CB1E: asrs r0, 8 ldrh r1, [r6, 0x38] adds r0, r1 movs r1, 0xB8 lsls r1, 1 add r1, r8 strh r0, [r1] ldr r0, [r6, 0x10] cmp r0, 0 bge _0806CB34 adds r0, 0xFF _0806CB34: asrs r0, 8 ldrh r2, [r6, 0x3A] adds r0, r2 movs r3, 0xB9 lsls r3, 1 add r3, r8 strh r0, [r3] movs r4, 0 ldrsh r2, [r1, r4] ldr r0, _0806CBF4 ldr r1, [r0] ldr r4, _0806CBF8 adds r0, r1, r4 movs r4, 0 ldrsh r0, [r0, r4] subs r4, r2, r0 movs r0, 0 ldrsh r2, [r3, r0] ldr r3, _0806CBFC adds r1, r3 movs r3, 0 ldrsh r0, [r1, r3] subs r5, r2, r0 movs r0, 0x20 negs r0, r0 cmp r4, r0 blt _0806CBDE cmp r5, r0 blt _0806CBDE ldr r0, _0806CC00 cmp r4, r0 bgt _0806CBDE cmp r5, 0xBF bgt _0806CBDE cmp r7, 0x6 beq _0806CBDE adds r0, r6, 0 adds r0, 0x22 ldrb r0, [r0] cmp r0, 0 bne _0806CBDE ldr r0, [sp, 0x3C] lsls r2, r0, 3 adds r2, r0 lsls r2, 3 lsls r0, r7, 1 adds r0, r7 lsls r0, 2 ldr r1, _0806CC04 adds r0, r1 adds r3, r2, r0 movs r0, 0xAB lsls r0, 1 add r0, r8 ldrb r0, [r0] cmp r0, 0 beq _0806CBDE movs r2, 0x8 ldrsh r1, [r3, r2] adds r1, r4, r1 ldr r0, _0806CC08 ands r1, r0 ldrh r2, [r3, 0x2] movs r0, 0xFE lsls r0, 8 ands r0, r2 orrs r0, r1 strh r0, [r3, 0x2] movs r4, 0xA ldrsh r1, [r3, r4] adds r1, r5, r1 ldr r0, _0806CC0C ands r1, r0 lsls r1, 4 ldrh r2, [r3, 0x6] movs r0, 0xF ands r0, r2 orrs r0, r1 strh r0, [r3, 0x6] adds r0, r3, 0 movs r1, 0 movs r2, 0 movs r3, 0 bl AddSprite _0806CBDE: add sp, 0x50 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806CBF0: .4byte gUnknown_202EDCC _0806CBF4: .4byte gUnknown_203B418 _0806CBF8: .4byte 0x000181f0 _0806CBFC: .4byte 0x000181f2 _0806CC00: .4byte 0x0000010f _0806CC04: .4byte gUnknown_202ED28 _0806CC08: .4byte 0x000001ff _0806CC0C: .4byte 0x00000fff thumb_func_end sub_806C51C thumb_func_start sub_806CC10 sub_806CC10: push {r4,r5,lr} movs r5, 0 _0806CC14: ldr r0, _0806CC68 ldr r0, [r0] lsls r1, r5, 2 ldr r2, _0806CC6C adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0806CC5C ldr r2, [r4, 0x70] movs r1, 0xB3 lsls r1, 1 adds r0, r2, r1 ldrb r1, [r0] cmp r1, 0 beq _0806CC5C subs r1, 0x1 strb r1, [r0] movs r0, 0x1 ands r1, r0 cmp r1, 0 bne _0806CC5C adds r0, r2, 0 adds r0, 0x46 ldrb r2, [r0] subs r2, 0x1 movs r0, 0x7 ands r2, r0 adds r0, r4, 0 movs r1, 0 bl sub_806CDD4 _0806CC5C: adds r5, 0x1 cmp r5, 0x13 ble _0806CC14 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0806CC68: .4byte gUnknown_203B418 _0806CC6C: .4byte 0x000135cc thumb_func_end sub_806CC10 thumb_func_start sub_806CC70 sub_806CC70: push {r4,r5,lr} movs r5, 0 _0806CC74: ldr r0, _0806CCAC ldr r0, [r0] lsls r1, r5, 2 ldr r2, _0806CCB0 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0806CCA0 adds r0, r4, 0 bl sub_806CEBC adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_806CCB4 _0806CCA0: adds r5, 0x1 cmp r5, 0x13 ble _0806CC74 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0806CCAC: .4byte gUnknown_203B418 _0806CCB0: .4byte 0x000135cc thumb_func_end sub_806CC70 thumb_func_start sub_806CCB4 sub_806CCB4: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0xC adds r5, r0, 0 lsls r1, 24 lsrs r4, r1, 24 ldr r7, [r5, 0x70] ldr r0, _0806CD40 ldr r0, [r0] ldr r2, _0806CD44 adds r1, r0, r2 ldrb r6, [r1] ldr r3, _0806CD48 adds r0, r3 ldr r0, [r0] cmp r5, r0 bne _0806CCDC movs r6, 0 _0806CCDC: adds r0, r5, 0 adds r0, 0x6B movs r3, 0 strb r4, [r0] adds r2, r5, 0 adds r2, 0x6A strb r4, [r2] adds r4, r7, 0 adds r4, 0x46 ldrb r0, [r4] adds r1, r5, 0 adds r1, 0x6D strb r0, [r1] ldrb r0, [r4] subs r1, 0x1 strb r0, [r1] adds r0, r5, 0 adds r0, 0x6F strb r3, [r0] subs r0, 0x7 movs r3, 0 ldrsh r4, [r0, r3] mov r9, r4 adds r0, r7, 0 adds r0, 0xC8 ldrb r0, [r0] adds r7, r2, 0 mov r8, r1 cmp r0, 0x2 beq _0806CD4C cmp r6, 0 bne _0806CD4C bl Random movs r4, 0x3 ands r4, r0 adds r0, r5, 0 adds r0, 0x28 ldr r1, [r5, 0x64] ldrb r2, [r7] mov r7, r8 ldrb r3, [r7] mov r7, r9 str r7, [sp] str r4, [sp, 0x4] str r6, [sp, 0x8] bl sub_80053AC b _0806CD76 .align 2, 0 _0806CD40: .4byte gUnknown_203B418 _0806CD44: .4byte 0x00018210 _0806CD48: .4byte 0x000181f8 _0806CD4C: ldr r0, _0806CD8C bl sub_80687D0 adds r4, r0, 0 bl Random movs r1, 0x3 ands r1, r0 adds r0, r5, 0 adds r0, 0x28 ldrb r2, [r7] mov r6, r8 ldrb r3, [r6] mov r7, r9 str r7, [sp] str r1, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] adds r1, r4, 0 bl sub_80053AC _0806CD76: adds r1, r5, 0 adds r1, 0x6E movs r0, 0 strb r0, [r1] add sp, 0xC pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806CD8C: .4byte 0x000001a5 thumb_func_end sub_806CCB4 thumb_func_start sub_806CD90 sub_806CD90: push {r4,r5,lr} movs r5, 0 _0806CD94: ldr r0, _0806CDCC ldr r0, [r0] lsls r1, r5, 2 ldr r2, _0806CDD0 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0806CDC0 adds r0, r4, 0 bl sub_806CEBC adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_806CCB4 _0806CDC0: adds r5, 0x1 cmp r5, 0x13 ble _0806CD94 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0806CDCC: .4byte gUnknown_203B418 _0806CDD0: .4byte 0x000135cc thumb_func_end sub_806CD90 thumb_func_start sub_806CDD4 sub_806CDD4: push {r4-r6,lr} adds r4, r0, 0 adds r6, r2, 0 lsls r1, 24 lsrs r5, r1, 24 bl sub_80450F8 cmp r0, 0x1 bne _0806CDF4 adds r0, r4, 0 adds r0, 0x6A strb r5, [r0] cmp r6, 0x7 bhi _0806CDF4 adds r0, 0x2 strb r6, [r0] _0806CDF4: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_806CDD4 thumb_func_start sub_806CDFC sub_806CDFC: push {r4-r7,lr} adds r4, r0, 0 adds r6, r2, 0 lsls r1, 24 lsrs r5, r1, 24 adds r7, r5, 0 bl sub_80450F8 cmp r0, 0x1 bne _0806CE2E adds r0, r4, 0 adds r0, 0x6B ldrb r0, [r0] cmp r0, r5 bne _0806CE24 adds r0, r4, 0 adds r0, 0x6D ldrb r0, [r0] cmp r0, r6 beq _0806CE2E _0806CE24: adds r0, r4, 0 adds r1, r7, 0 adds r2, r6, 0 bl sub_806CDD4 _0806CE2E: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_806CDFC thumb_func_start sub_806CE34 sub_806CE34: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl sub_80450F8 cmp r0, 0x1 bne _0806CE62 adds r0, r4, 0 bl sub_806CEBC adds r1, r4, 0 adds r1, 0x6A strb r0, [r1] cmp r5, 0x7 bhi _0806CE62 ldr r0, [r4, 0x70] movs r1, 0x7 ands r1, r5 adds r0, 0x46 strb r1, [r0] adds r0, r4, 0 adds r0, 0x6C strb r1, [r0] _0806CE62: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_806CE34 thumb_func_start sub_806CE68 sub_806CE68: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl sub_80450F8 cmp r0, 0x1 bne _0806CE8C adds r0, r4, 0 bl sub_806CEBC adds r1, r4, 0 adds r1, 0x6A strb r0, [r1] cmp r5, 0x7 bhi _0806CE8C adds r0, r4, 0 adds r0, 0x6C strb r5, [r0] _0806CE8C: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_806CE68 thumb_func_start sub_806CE94 sub_806CE94: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl sub_80450F8 cmp r0, 0x1 bne _0806CEB4 adds r1, r4, 0 adds r1, 0x6A movs r0, 0x6 strb r0, [r1] cmp r5, 0x7 bhi _0806CEB4 adds r0, r4, 0 adds r0, 0x6C strb r5, [r0] _0806CEB4: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_806CE94 thumb_func_start sub_806CEBC sub_806CEBC: push {lr} ldr r0, [r0, 0x70] adds r1, r0, 0 adds r0, 0xA8 ldrb r0, [r0] cmp r0, 0x1 beq _0806CED2 cmp r0, 0x5 beq _0806CED2 cmp r0, 0x3 bne _0806CEE8 _0806CED2: movs r2, 0x4 ldrsh r0, [r1, r2] cmp r0, 0xB9 bne _0806CEE4 adds r0, r1, 0 adds r0, 0xA9 ldrb r0, [r0] cmp r0, 0x7F beq _0806CEF2 _0806CEE4: movs r0, 0x5 b _0806CEF8 _0806CEE8: adds r0, r1, 0 adds r0, 0xC0 ldrb r0, [r0] cmp r0, 0x1 beq _0806CEF6 _0806CEF2: movs r0, 0x7 b _0806CEF8 _0806CEF6: movs r0, 0xB _0806CEF8: pop {r1} bx r1 thumb_func_end sub_806CEBC thumb_func_start sub_806CEFC sub_806CEFC: push {r4,lr} adds r4, r1, 0 ldr r2, [r0, 0x70] movs r3, 0x7 ands r1, r3 adds r2, 0x46 strb r1, [r2] movs r1, 0x7 ands r1, r4 bl sub_806CE68 pop {r4} pop {r0} bx r0 thumb_func_end sub_806CEFC thumb_func_start sub_806CF18 sub_806CF18: push {r4-r6,lr} adds r4, r0, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0806CF4C ldr r6, [r4, 0x70] movs r5, 0 b _0806CF2E _0806CF2C: adds r5, 0x1 _0806CF2E: cmp r5, 0x63 bgt _0806CF4C movs r0, 0x21 bl sub_803E46C movs r1, 0x4 ldrsh r0, [r6, r1] adds r1, r4, 0 adds r1, 0x6B ldrb r1, [r1] bl sub_808DA44 lsls r0, 24 cmp r0, 0 bne _0806CF2C _0806CF4C: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_806CF18 thumb_func_start sub_806CF54 sub_806CF54: ldr r0, [r0, 0x70] movs r1, 0x81 lsls r1, 2 adds r0, r1 ldrb r0, [r0] bx lr thumb_func_end sub_806CF54 thumb_func_start sub_806CF60 sub_806CF60: push {r4,r5,lr} movs r5, 0 _0806CF64: ldr r0, _0806CF90 ldr r0, [r0] lsls r1, r5, 2 ldr r2, _0806CF94 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0806CF84 adds r0, r4, 0 bl sub_806CF98 _0806CF84: adds r5, 0x1 cmp r5, 0x13 ble _0806CF64 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0806CF90: .4byte gUnknown_203B418 _0806CF94: .4byte 0x000135cc thumb_func_end sub_806CF60 thumb_func_start sub_806CF98 sub_806CF98: push {r4-r7,lr} adds r4, r0, 0 bl sub_8045128 ldrh r0, [r0] movs r5, 0x3 ands r5, r0 adds r6, r5, 0 ldr r7, [r4, 0x70] movs r1, 0x4 ldrsh r0, [r7, r1] bl sub_808DAE4 lsls r0, 24 lsrs r4, r0, 24 cmp r5, 0x3 bne _0806CFBE movs r0, 0x6 b _0806CFF8 _0806CFBE: cmp r5, 0x1 bne _0806CFCE bl sub_804AF74 lsls r0, 24 cmp r0, 0 beq _0806CFEE b _0806CFE8 _0806CFCE: cmp r6, 0x2 bne _0806CFEE ldr r1, _0806D000 ldr r0, _0806D004 ldr r0, [r0] ldr r2, _0806D008 adds r0, r2 movs r2, 0 ldrsh r0, [r0, r2] adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 beq _0806CFEE _0806CFE8: ldr r0, _0806D00C adds r0, r4, r0 ldrb r4, [r0] _0806CFEE: movs r1, 0x81 lsls r1, 2 adds r0, r7, r1 strb r4, [r0] adds r0, r4, 0 _0806CFF8: pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0806D000: .4byte gUnknown_810ACC0 _0806D004: .4byte gUnknown_203B418 _0806D008: .4byte 0x00003a0e _0806D00C: .4byte gUnknown_8106EEF thumb_func_end sub_806CF98 thumb_func_start sub_806D010 sub_806D010: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C adds r6, r0, 0 adds r5, r1, 0 mov r8, r2 ldr r0, [sp, 0x40] lsls r0, 16 asrs r0, 16 mov r10, r0 movs r7, 0 ldr r0, [sp, 0x3C] str r0, [sp] mov r1, r10 str r1, [sp, 0x4] ldr r2, [sp, 0x48] str r2, [sp, 0x8] adds r0, r6, 0 adds r1, r5, 0 mov r2, r8 bl sub_806D528 lsls r0, 24 cmp r0, 0 beq _0806D04A b _0806D514 _0806D04A: mov r3, r8 ldrb r0, [r3, 0xF] cmp r0, 0 beq _0806D054 b _0806D514 _0806D054: adds r0, r6, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _0806D062 b _0806D514 _0806D062: adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _0806D070 b _0806D514 _0806D070: adds r0, r6, 0 bl sub_80450F8 cmp r0, 0x1 beq _0806D07C b _0806D514 _0806D07C: adds r0, r5, 0 bl sub_80450F8 cmp r0, 0x1 beq _0806D088 b _0806D514 _0806D088: ldr r0, [sp, 0x44] mov r9, r0 adds r0, r5, 0 bl sub_8070CD0 lsls r0, 24 cmp r0, 0 bne _0806D0A2 ldr r0, [r5, 0x70] adds r0, 0xC0 ldrb r0, [r0] cmp r0, 0 beq _0806D0A6 _0806D0A2: movs r1, 0 mov r9, r1 _0806D0A6: mov r2, r9 cmp r2, 0 beq _0806D100 movs r3, 0x4 ldrsh r1, [r6, r3] movs r2, 0x4 ldrsh r0, [r5, r2] subs r1, r0 cmp r1, 0 bge _0806D0BC negs r1, r1 _0806D0BC: cmp r1, 0x1 bgt _0806D100 movs r3, 0x6 ldrsh r1, [r6, r3] movs r2, 0x6 ldrsh r0, [r5, r2] subs r1, r0 cmp r1, 0 bge _0806D0D0 negs r1, r1 _0806D0D0: cmp r1, 0x1 bgt _0806D100 cmp r6, r5 beq _0806D100 mov r3, r8 ldrb r0, [r3, 0xC] bl sub_8092354 lsls r0, 24 cmp r0, 0 beq _0806D100 ldr r0, [r5, 0x70] adds r0, 0xC4 ldrb r0, [r0] cmp r0, 0xD bne _0806D100 adds r0, r5, 0 adds r1, r6, 0 bl sub_8042730 adds r0, r5, 0 adds r1, r6, 0 bl sub_807F43C _0806D100: ldr r0, [r5, 0x70] adds r0, 0xC0 ldrb r0, [r0] cmp r0, 0xC bne _0806D118 ldr r0, _0806D3BC ldr r2, [r0] adds r0, r6, 0 adds r1, r5, 0 movs r3, 0x1 bl sub_8077084 _0806D118: adds r0, r6, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _0806D126 b _0806D514 _0806D126: adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _0806D134 b _0806D514 _0806D134: mov r0, r9 cmp r0, 0 beq _0806D216 cmp r6, r5 beq _0806D216 movs r2, 0x4 ldrsh r1, [r6, r2] movs r3, 0x4 ldrsh r0, [r5, r3] subs r1, r0 cmp r1, 0 bge _0806D14E negs r1, r1 _0806D14E: cmp r1, 0x1 bgt _0806D216 movs r0, 0x6 ldrsh r1, [r6, r0] movs r2, 0x6 ldrsh r0, [r5, r2] subs r1, r0 cmp r1, 0 bge _0806D162 negs r1, r1 _0806D162: cmp r1, 0x1 bgt _0806D216 mov r3, r8 ldrb r0, [r3, 0xC] bl sub_8092354 lsls r0, 24 lsrs r4, r0, 24 ldr r0, [r5, 0x70] adds r0, 0xC4 ldrb r0, [r0] cmp r0, 0x4 bne _0806D188 cmp r4, 0 beq _0806D188 adds r0, r5, 0 bl sub_8041B18 adds r7, 0x4 _0806D188: ldr r0, [r5, 0x70] adds r0, 0xC4 ldrb r0, [r0] cmp r0, 0xA bne _0806D19E cmp r4, 0 beq _0806D19E adds r0, r5, 0 bl sub_8041B18 adds r7, 0x1 _0806D19E: ldr r0, [r5, 0x70] adds r0, 0xC4 ldrb r0, [r0] cmp r0, 0x8 bne _0806D1B4 cmp r4, 0 bne _0806D1B4 adds r0, r5, 0 bl sub_8041B90 adds r7, 0x4 _0806D1B4: adds r0, r5, 0 movs r1, 0x12 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0806D1C4 adds r7, 0x2 _0806D1C4: cmp r7, 0 beq _0806D216 ldr r0, _0806D3C0 ldr r2, [r0] adds r0, r6, 0 adds r1, r5, 0 bl sub_80522F4 mov r1, r8 ldr r0, [r1] muls r0, r7 cmp r0, 0 bge _0806D1E0 adds r0, 0x3 _0806D1E0: asrs r0, 2 str r0, [sp, 0xC] add r2, sp, 0xC mov r3, r8 ldrb r0, [r3, 0xC] movs r1, 0 strb r0, [r2, 0xC] movs r0, 0x6 str r0, [sp, 0x10] movs r0, 0x2 str r0, [sp, 0x14] adds r0, r2, 0 strb r1, [r0, 0xD] strb r1, [r0, 0xE] strb r1, [r0, 0xF] ldr r0, [sp, 0x3C] str r0, [sp] mov r1, r10 str r1, [sp, 0x4] ldr r2, [sp, 0x48] str r2, [sp, 0x8] adds r0, r5, 0 adds r1, r6, 0 add r2, sp, 0xC movs r3, 0 bl sub_806D528 _0806D216: adds r0, r6, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _0806D224 b _0806D514 _0806D224: adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _0806D232 b _0806D514 _0806D232: mov r3, r9 cmp r3, 0 bne _0806D23A b _0806D48A _0806D23A: cmp r6, r5 bne _0806D240 b _0806D48A _0806D240: movs r0, 0x4 ldrsh r1, [r6, r0] movs r2, 0x4 ldrsh r0, [r5, r2] subs r1, r0 cmp r1, 0 bge _0806D250 negs r1, r1 _0806D250: cmp r1, 0x1 ble _0806D256 b _0806D48A _0806D256: movs r3, 0x6 ldrsh r1, [r6, r3] movs r2, 0x6 ldrsh r0, [r5, r2] subs r1, r0 cmp r1, 0 bge _0806D266 negs r1, r1 _0806D266: cmp r1, 0x1 ble _0806D26C b _0806D48A _0806D26C: mov r3, r8 ldrb r0, [r3, 0xC] bl sub_8092354 lsls r0, 24 lsrs r7, r0, 24 ldr r4, [r6, 0x70] adds r0, r5, 0 movs r1, 0x5 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0806D2C2 adds r0, r6, 0 movs r1, 0xA bl sub_8071858 lsls r0, 24 cmp r0, 0 bne _0806D2C2 adds r0, r6, 0 movs r1, 0x37 bl sub_8071824 lsls r0, 24 cmp r0, 0 bne _0806D2C2 movs r0, 0x64 bl sub_8084100 ldr r1, _0806D3C4 movs r2, 0 ldrsh r1, [r1, r2] cmp r0, r1 bge _0806D2C2 movs r3, 0xBC lsls r3, 1 adds r2, r4, r3 ldrh r1, [r2] movs r0, 0x1 orrs r0, r1 strh r0, [r2] _0806D2C2: adds r0, r5, 0 movs r1, 0xA bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0806D2EE movs r0, 0x64 bl sub_8084100 ldr r1, _0806D3C8 movs r2, 0 ldrsh r1, [r1, r2] cmp r0, r1 bge _0806D2EE movs r3, 0xBC lsls r3, 1 adds r2, r4, r3 ldrh r1, [r2] movs r0, 0x2 orrs r0, r1 strh r0, [r2] _0806D2EE: adds r0, r5, 0 movs r1, 0x17 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0806D328 adds r0, r6, 0 movs r1, 0x11 bl sub_8071858 lsls r0, 24 cmp r0, 0 beq _0806D328 movs r0, 0x64 bl sub_8084100 ldr r1, _0806D3CC movs r2, 0 ldrsh r1, [r1, r2] cmp r0, r1 bge _0806D328 movs r3, 0xBC lsls r3, 1 adds r2, r4, r3 ldrh r1, [r2] movs r0, 0x4 orrs r0, r1 strh r0, [r2] _0806D328: adds r0, r5, 0 movs r1, 0x20 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0806D358 cmp r7, 0 beq _0806D358 movs r0, 0x64 bl sub_8084100 ldr r1, _0806D3D0 movs r2, 0 ldrsh r1, [r1, r2] cmp r0, r1 bge _0806D358 movs r3, 0xBC lsls r3, 1 adds r2, r4, r3 ldrh r1, [r2] movs r0, 0x8 orrs r0, r1 strh r0, [r2] _0806D358: adds r0, r5, 0 movs r1, 0x27 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0806D384 movs r0, 0x64 bl sub_8084100 ldr r1, _0806D3D4 movs r2, 0 ldrsh r1, [r1, r2] cmp r0, r1 bge _0806D384 movs r3, 0xBC lsls r3, 1 adds r2, r4, r3 ldrh r1, [r2] movs r0, 0x20 orrs r0, r1 strh r0, [r2] _0806D384: adds r0, r5, 0 movs r1, 0x3D bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0806D3FA cmp r7, 0 beq _0806D3FA movs r0, 0x64 bl sub_8084100 ldr r1, _0806D3D8 movs r2, 0 ldrsh r1, [r1, r2] cmp r0, r1 bge _0806D3FA movs r0, 0x3 bl sub_8084100 cmp r0, 0 bgt _0806D3DC movs r3, 0xBC lsls r3, 1 adds r2, r4, r3 ldrh r1, [r2] movs r0, 0x40 b _0806D3F6 .align 2, 0 _0806D3BC: .4byte gUnknown_8106A4C _0806D3C0: .4byte gUnknown_80FCFA4 _0806D3C4: .4byte gUnknown_80F4E10 _0806D3C8: .4byte gUnknown_80F4E12 _0806D3CC: .4byte gUnknown_80F4E14 _0806D3D0: .4byte gUnknown_80F4E16 _0806D3D4: .4byte gUnknown_80F4E18 _0806D3D8: .4byte gUnknown_80F4E1A _0806D3DC: cmp r0, 0x1 bgt _0806D3EC movs r0, 0xBC lsls r0, 1 adds r2, r4, r0 ldrh r1, [r2] movs r0, 0x10 b _0806D3F6 _0806D3EC: movs r1, 0xBC lsls r1, 1 adds r2, r4, r1 ldrh r1, [r2] movs r0, 0x80 _0806D3F6: orrs r0, r1 strh r0, [r2] _0806D3FA: adds r0, r5, 0 movs r1, 0x3E bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0806D428 movs r0, 0x64 bl sub_8084100 ldr r1, _0806D4D4 movs r2, 0 ldrsh r1, [r1, r2] cmp r0, r1 bge _0806D428 movs r3, 0xBC lsls r3, 1 adds r2, r4, r3 ldrh r1, [r2] subs r3, 0x78 adds r0, r3, 0 orrs r0, r1 strh r0, [r2] _0806D428: adds r0, r5, 0 movs r1, 0x44 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0806D45A cmp r7, 0 beq _0806D45A movs r0, 0x64 bl sub_8084100 ldr r1, _0806D4D8 movs r2, 0 ldrsh r1, [r1, r2] cmp r0, r1 bge _0806D45A movs r3, 0xBC lsls r3, 1 adds r2, r4, r3 ldrh r1, [r2] adds r3, 0x88 adds r0, r3, 0 orrs r0, r1 strh r0, [r2] _0806D45A: adds r0, r5, 0 movs r1, 0x1 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0806D48A movs r0, 0x64 bl sub_8084100 ldr r1, _0806D4DC movs r2, 0 ldrsh r1, [r1, r2] cmp r0, r1 bge _0806D48A movs r3, 0xBC lsls r3, 1 adds r2, r4, r3 ldrh r1, [r2] movs r3, 0x80 lsls r3, 3 adds r0, r3, 0 orrs r0, r1 strh r0, [r2] _0806D48A: adds r0, r6, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0806D514 adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0806D514 mov r0, r9 cmp r0, 0 beq _0806D514 ldr r2, [r5, 0x70] adds r6, r2, 0 adds r3, r2, 0 adds r3, 0xD0 ldrb r0, [r3] cmp r0, 0x2 bne _0806D514 ldr r0, _0806D4E0 ldr r1, [r0] adds r0, r2, 0 adds r0, 0xD8 ldrb r0, [r0] lsls r0, 2 ldr r2, _0806D4E4 adds r1, r2 adds r1, r0 ldr r4, [r1] cmp r4, 0 bne _0806D4E8 strb r4, [r3] b _0806D514 .align 2, 0 _0806D4D4: .4byte gUnknown_80F4E1C _0806D4D8: .4byte gUnknown_80F4E1E _0806D4DC: .4byte gUnknown_80F4E20 _0806D4E0: .4byte gUnknown_203B418 _0806D4E4: .4byte 0x000135cc _0806D4E8: ldr r0, [r4, 0x70] adds r0, 0x98 adds r1, r6, 0 adds r1, 0xD4 ldr r2, [r0] ldr r0, [r1] cmp r2, r0 beq _0806D4FE movs r0, 0 strb r0, [r3] b _0806D514 _0806D4FE: adds r0, r4, 0 adds r1, r5, 0 bl sub_8041D00 mov r3, r8 ldr r1, [r3] ldr r3, _0806D524 adds r0, r4, 0 movs r2, 0xC bl sub_806F324 _0806D514: add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806D524: .4byte 0x000001f9 thumb_func_end sub_806D010 thumb_func_start sub_806D528 sub_806D528: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x58 mov r9, r0 adds r7, r1, 0 adds r5, r2, 0 str r3, [sp, 0x4C] ldr r0, [sp, 0x7C] lsls r0, 16 asrs r0, 16 str r0, [sp, 0x50] movs r0, 0 str r0, [sp, 0x54] mov r10, r0 mov r8, r0 mov r1, r10 strb r1, [r5, 0xF] adds r0, r7, 0 bl sub_80450F8 cmp r0, 0x1 beq _0806D55C b _0806D754 _0806D55C: ldr r6, [r7, 0x70] mov r0, r9 adds r1, r7, 0 bl sub_807A96C mov r0, r9 adds r1, r7, 0 bl sub_806F450 mov r0, r9 bl sub_80450F8 cmp r0, 0x1 bne _0806D592 mov r2, r9 ldr r0, [r2, 0x70] adds r0, 0xDC ldrb r0, [r0] cmp r0, 0x3 bne _0806D592 ldrb r0, [r5, 0xE] cmp r0, 0 bne _0806D592 ldr r0, _0806D5C8 movs r3, 0 ldrsh r0, [r0, r3] str r0, [r5] _0806D592: ldr r0, _0806D5CC ldr r1, [sp, 0x50] cmp r1, r0 beq _0806D5DC adds r0, r7, 0 movs r1, 0xD bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0806D5DC ldr r1, [r5] ldr r0, _0806D5D0 cmp r1, r0 bne _0806D5DC ldr r0, _0806D5D4 adds r1, r7, 0 movs r2, 0 bl sub_8045B94 ldr r0, _0806D5D8 ldr r2, [r0] mov r0, r9 adds r1, r7, 0 bl sub_80522F4 b _0806D71E .align 2, 0 _0806D5C8: .4byte gUnknown_80F4F8C _0806D5CC: .4byte 0x0000020e _0806D5D0: .4byte 0x0000270f _0806D5D4: .4byte gUnknown_202DFE8 _0806D5D8: .4byte gUnknown_80FCA90 _0806D5DC: adds r0, r6, 0 adds r0, 0xB0 ldrb r4, [r0] mov r10, r0 cmp r4, 0x1 bne _0806D618 ldr r0, _0806D610 adds r1, r7, 0 movs r2, 0 bl sub_8045B94 ldr r0, _0806D614 ldr r2, [r0] mov r0, r9 adds r1, r7, 0 bl sub_80522F4 mov r0, r9 adds r1, r7, 0 bl sub_8042238 strb r4, [r5, 0xF] _0806D608: movs r0, 0 bl _0806E0F0 .align 2, 0 _0806D610: .4byte gUnknown_202DFE8 _0806D614: .4byte gUnknown_80F9600 _0806D618: adds r0, r6, 0 adds r0, 0xA8 ldrb r0, [r0] cmp r0, 0x1 beq _0806D62A cmp r0, 0x5 beq _0806D62A cmp r0, 0x3 bne _0806D63A _0806D62A: adds r0, r6, 0 adds r0, 0xA9 ldrb r0, [r0] cmp r0, 0x7F bne _0806D63A adds r0, r7, 0 bl sub_807A9B0 _0806D63A: adds r0, r7, 0 movs r1, 0x23 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0806D660 ldrb r0, [r5, 0xC] cmp r0, 0x5 bne _0806D660 _0806D64E: ldr r2, [r5] movs r0, 0 str r0, [sp] mov r0, r9 adds r1, r7, 0 movs r3, 0 bl sub_8077C44 b _0806D754 _0806D660: adds r0, r7, 0 movs r1, 0x24 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0806D674 ldrb r0, [r5, 0xC] cmp r0, 0x3 beq _0806D64E _0806D674: movs r2, 0xA9 lsls r2, 1 adds r0, r6, r2 ldrb r0, [r0] cmp r0, 0 bne _0806D6D0 ldrb r0, [r5, 0xD] cmp r0, 0 beq _0806D692 ldr r0, _0806D6A4 ldr r2, [r0] mov r0, r9 adds r1, r7, 0 bl sub_80522F4 _0806D692: ldr r0, [r5, 0x8] cmp r0, 0x1 beq _0806D6B0 cmp r0, 0x1 bcc _0806D6A8 cmp r0, 0x3 beq _0806D6C4 b _0806D6D0 .align 2, 0 _0806D6A4: .4byte gUnknown_80F9614 _0806D6A8: ldr r0, _0806D6AC b _0806D6B2 .align 2, 0 _0806D6AC: .4byte gUnknown_80F9630 _0806D6B0: ldr r0, _0806D6C0 _0806D6B2: ldr r2, [r0] mov r0, r9 adds r1, r7, 0 bl sub_80522F4 b _0806D6D0 .align 2, 0 _0806D6C0: .4byte gUnknown_80F9654 _0806D6C4: ldr r0, _0806D728 ldr r2, [r0] mov r0, r9 adds r1, r7, 0 bl sub_80522F4 _0806D6D0: ldr r4, _0806D72C adds r0, r4, 0 mov r1, r9 movs r2, 0 bl sub_8045B94 adds r4, 0x50 adds r0, r4, 0 adds r1, r7, 0 movs r2, 0 bl sub_8045B94 ldr r1, [r5] cmp r1, 0 bne _0806D760 mov r0, r9 bl sub_8045888 lsls r0, 24 cmp r0, 0 beq _0806D734 adds r0, r7, 0 bl sub_8045888 lsls r0, 24 cmp r0, 0 beq _0806D734 movs r3, 0xA9 lsls r3, 1 adds r0, r6, r3 ldrb r0, [r0] cmp r0, 0 bne _0806D71E ldr r0, _0806D730 ldr r2, [r0] mov r0, r9 adds r1, r7, 0 bl sub_80522F4 _0806D71E: mov r0, r9 adds r1, r7, 0 bl sub_8042238 b _0806D754 .align 2, 0 _0806D728: .4byte gUnknown_80F9670 _0806D72C: .4byte gUnknown_202DF98 _0806D730: .4byte gUnknown_80F9688 _0806D734: movs r1, 0xA9 lsls r1, 1 adds r0, r6, r1 ldrb r0, [r0] cmp r0, 0 bne _0806D74C ldr r0, _0806D75C ldr r2, [r0] mov r0, r9 adds r1, r7, 0 bl sub_80522F4 _0806D74C: movs r0, 0x1E movs r1, 0x18 bl sub_803E708 _0806D754: movs r0, 0x1 strb r0, [r5, 0xF] b _0806D608 .align 2, 0 _0806D75C: .4byte gUnknown_80F9688 _0806D760: ldr r0, _0806D7B8 cmp r1, r0 bne _0806D7C4 ldr r0, [sp, 0x80] cmp r0, 0 beq _0806D796 adds r0, r7, 0 bl sub_8045888 lsls r0, 24 cmp r0, 0 beq _0806D796 adds r0, r7, 0 bl sub_8045128 mov r8, r0 movs r0, 0x14 movs r1, 0x18 bl sub_803E708 mov r2, r8 ldrh r1, [r2, 0x4] movs r0, 0x4 orrs r0, r1 strh r0, [r2, 0x4] bl sub_8049ED4 _0806D796: movs r3, 0xA9 lsls r3, 1 adds r0, r6, r3 ldrb r0, [r0] cmp r0, 0 bne _0806D7AE ldr r0, _0806D7BC ldr r2, [r0] mov r0, r9 adds r1, r7, 0 bl sub_80522F4 _0806D7AE: adds r1, r6, 0 adds r1, 0xA0 ldr r0, _0806D7C0 str r0, [r1] b _0806D84A .align 2, 0 _0806D7B8: .4byte 0x0000270f _0806D7BC: .4byte gUnknown_80F96A8 _0806D7C0: .4byte 0x000003e7 _0806D7C4: ldr r0, _0806D824 str r1, [r0] ldr r1, _0806D828 ldr r0, [r5, 0x4] lsls r0, 2 adds r0, r1 ldr r4, [r0] adds r2, r6, 0 adds r2, 0xA0 ldr r0, [r2] ldr r1, [r5] adds r0, r1 str r0, [r2] ldr r1, _0806D82C cmp r0, r1 ble _0806D7E6 str r1, [r2] _0806D7E6: adds r0, r7, 0 bl sub_8045888 lsls r0, 24 cmp r0, 0 beq _0806D830 ldr r0, [r5, 0x4] cmp r0, 0xE beq _0806D808 ldr r0, [r5] negs r0, r0 movs r3, 0x1 negs r3, r3 adds r1, r7, 0 movs r2, 0x1 bl sub_803ED30 _0806D808: movs r1, 0xA9 lsls r1, 1 adds r0, r6, r1 ldrb r0, [r0] cmp r0, 0 bne _0806D84A cmp r4, 0 beq _0806D84A mov r0, r9 adds r1, r7, 0 adds r2, r4, 0 bl sub_80522F4 b _0806D84A .align 2, 0 _0806D824: .4byte gUnknown_202DE30 _0806D828: .4byte gUnknown_80F9764 _0806D82C: .4byte 0x000003e7 _0806D830: movs r2, 0xA9 lsls r2, 1 adds r0, r6, r2 ldrb r0, [r0] cmp r0, 0 bne _0806D84A cmp r4, 0 beq _0806D84A mov r0, r9 adds r1, r7, 0 adds r2, r4, 0 bl sub_80522F4 _0806D84A: ldr r0, [r5, 0x4] cmp r0, 0xE bne _0806D858 movs r3, 0xE ldrsh r0, [r6, r3] cmp r0, 0x1 bgt _0806D900 _0806D858: mov r0, r8 cmp r0, 0 bne _0806D900 adds r0, r7, 0 bl sub_8045888 lsls r0, 24 cmp r0, 0 beq _0806D900 mov r2, r9 ldr r1, [r2, 0x4] ldr r0, [r7, 0x4] cmp r1, r0 beq _0806D8E6 mov r0, r9 bl sub_80450F8 cmp r0, 0x1 bne _0806D8E6 movs r4, 0 ldrb r0, [r6, 0x7] cmp r0, 0 beq _0806D8B4 ldr r0, _0806D8B0 ldr r0, [r0] ldrb r0, [r0, 0x2] cmp r0, 0 beq _0806D8B6 adds r0, r7, 0 bl sub_806A458 lsls r0, 24 cmp r0, 0 bne _0806D8B6 adds r0, r7, 0 mov r1, r9 bl sub_8045990 lsls r0, 24 lsrs r0, 24 negs r1, r0 orrs r1, r0 lsrs r4, r1, 31 b _0806D8B6 .align 2, 0 _0806D8B0: .4byte gUnknown_203B46C _0806D8B4: movs r4, 0 _0806D8B6: adds r0, r6, 0 adds r0, 0xE8 ldrb r0, [r0] subs r0, 0x1 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _0806D8C8 movs r4, 0 _0806D8C8: cmp r4, 0 beq _0806D8E0 ldr r4, [r7, 0x70] adds r0, r7, 0x4 mov r1, r9 adds r1, 0x4 bl sub_80983D8 movs r1, 0x7 ands r0, r1 adds r4, 0x46 strb r0, [r4] _0806D8E0: adds r0, r7, 0 bl sub_8069DCC _0806D8E6: ldr r0, [r7, 0x70] adds r0, 0x46 ldrb r2, [r0] adds r0, r7, 0 movs r1, 0x6 bl sub_806CDD4 adds r0, r7, 0 adds r1, r5, 0 bl sub_80420E8 movs r3, 0x1 str r3, [sp, 0x54] _0806D900: movs r0, 0xE ldrsh r4, [r6, r0] ldr r1, [r5] cmp r4, r1 ble _0806D910 ldrh r0, [r6, 0xE] subs r0, r1 b _0806D912 _0806D910: movs r0, 0 _0806D912: strh r0, [r6, 0xE] adds r0, r6, 0 adds r0, 0xC4 ldrb r0, [r0] cmp r0, 0x9 bne _0806D93C movs r1, 0xE ldrsh r0, [r6, r1] cmp r0, 0 bne _0806D958 movs r0, 0x1 strh r0, [r6, 0xE] ldr r0, _0806D938 ldr r2, [r0] mov r0, r9 adds r1, r7, 0 bl sub_80522F4 b _0806D958 .align 2, 0 _0806D938: .4byte gUnknown_8100548 _0806D93C: ldr r2, [sp, 0x4C] cmp r2, 0x1 bne _0806D958 movs r3, 0xE ldrsh r0, [r6, r3] cmp r0, 0 bne _0806D958 strh r2, [r6, 0xE] ldr r0, _0806D9C8 ldr r2, [r0] mov r0, r9 adds r1, r7, 0 bl sub_80522F4 _0806D958: movs r1, 0xE ldrsh r0, [r6, r1] subs r4, r0 cmp r4, 0 bge _0806D964 movs r4, 0 _0806D964: ldr r2, [sp, 0x54] cmp r2, 0 bne _0806D970 mov r3, r8 cmp r3, 0 beq _0806D978 _0806D970: movs r0, 0xA movs r1, 0x18 bl sub_803E708 _0806D978: movs r1, 0xE ldrsh r0, [r6, r1] cmp r0, 0 beq _0806D9D4 ldr r2, [sp, 0x54] cmp r2, 0 beq _0806D98E adds r0, r7, 0 movs r1, 0x8 bl sub_806CE68 _0806D98E: adds r0, r7, 0 movs r1, 0x10 bl sub_8046CB0 lsls r0, 24 cmp r0, 0 beq _0806D9B2 cmp r4, 0 ble _0806D9B2 ldr r1, [r5] ldr r0, _0806D9CC cmp r1, r0 beq _0806D9B2 mov r0, r9 adds r1, r7, 0 adds r2, r4, 0 bl sub_8071D4C _0806D9B2: mov r3, r8 cmp r3, 0 bne _0806D9BA b _0806D608 _0806D9BA: ldrh r1, [r3, 0x4] ldr r0, _0806D9D0 ands r0, r1 strh r0, [r3, 0x4] bl sub_8049ED4 b _0806D608 .align 2, 0 _0806D9C8: .4byte gUnknown_810056C _0806D9CC: .4byte 0x0000270f _0806D9D0: .4byte 0x0000fffb _0806D9D4: adds r0, r6, 0 adds r0, 0xE4 ldrb r0, [r0] cmp r0, 0x2 bne _0806D9E6 mov r0, r9 adds r1, r7, 0 bl sub_807A7C8 _0806D9E6: mov r0, r8 cmp r0, 0 beq _0806DA18 movs r0, 0x14 movs r1, 0x18 bl sub_803E708 adds r1, r7, 0 adds r1, 0x22 movs r0, 0x2 strb r0, [r1] movs r0, 0xA movs r1, 0x18 bl sub_803E708 mov r2, r8 ldrh r1, [r2, 0x4] ldr r0, _0806DA14 ands r0, r1 strh r0, [r2, 0x4] bl sub_8049ED4 b _0806DA2E .align 2, 0 _0806DA14: .4byte 0x0000fffb _0806DA18: ldr r3, [sp, 0x54] cmp r3, 0 beq _0806DA2E adds r1, r7, 0 adds r1, 0x22 movs r0, 0x1 strb r0, [r1] movs r0, 0x1E movs r1, 0x18 bl sub_803E708 _0806DA2E: movs r0, 0x1 mov r8, r0 mov r0, r9 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0806DA50 mov r0, r9 bl sub_80450F8 cmp r0, 0x1 bne _0806DA50 cmp r9, r7 beq _0806DA50 movs r1, 0 mov r8, r1 _0806DA50: movs r2, 0xA6 lsls r2, 1 adds r1, r6, r2 movs r0, 0 strb r0, [r1] ldr r4, _0806DA88 adds r0, r4, 0 mov r1, r9 movs r2, 0 bl sub_8045B94 adds r4, 0x50 adds r0, r4, 0 adds r1, r7, 0 movs r2, 0 bl sub_8045B94 ldr r0, [r5, 0x4] subs r0, 0x13 cmp r0, 0x1 bhi _0806DA9C ldrb r0, [r6, 0x6] cmp r0, 0 beq _0806DA90 ldr r0, _0806DA8C ldr r2, [r0] b _0806DAC2 .align 2, 0 _0806DA88: .4byte gUnknown_202DF98 _0806DA8C: .4byte gUnknown_80F9E44 _0806DA90: ldr r0, _0806DA98 ldr r1, [r0] b _0806DB86 .align 2, 0 _0806DA98: .4byte gUnknown_80F9E44 _0806DA9C: ldrb r0, [r6, 0x6] cmp r0, 0 beq _0806DAD0 adds r0, r6, 0 adds r0, 0xA4 ldrb r0, [r0] cmp r0, 0x1 bne _0806DAB8 ldr r0, _0806DAB4 mov r3, r8 lsls r1, r3, 2 b _0806DB82 .align 2, 0 _0806DAB4: .4byte gUnknown_80F9DF0 _0806DAB8: ldr r0, _0806DACC mov r2, r8 lsls r1, r2, 2 adds r1, r0 ldr r2, [r1] _0806DAC2: mov r0, r9 adds r1, r7, 0 bl sub_80522F4 b _0806DBA4 .align 2, 0 _0806DACC: .4byte gUnknown_80F9CC0 _0806DAD0: ldr r2, _0806DB04 ldrb r1, [r6, 0xA] movs r0, 0x64 muls r0, r1 ldr r3, _0806DB08 adds r0, r3 ldr r1, [r2] adds r3, r1, r0 ldrb r0, [r6, 0x7] cmp r0, 0 bne _0806DB00 adds r0, r6, 0 adds r0, 0x40 ldrb r1, [r0] adds r2, r0, 0 cmp r1, 0x41 bne _0806DB18 ldr r0, _0806DB0C ldr r0, [r0] ldr r1, _0806DB10 adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _0806DB18 _0806DB00: ldr r0, _0806DB14 b _0806DB7E .align 2, 0 _0806DB04: .4byte gUnknown_203B45C _0806DB08: .4byte 0x00008df8 _0806DB0C: .4byte gUnknown_203B418 _0806DB10: .4byte 0x0000065c _0806DB14: .4byte gUnknown_80F9CEC _0806DB18: ldrb r0, [r2] cmp r0, 0x4A beq _0806DB22 cmp r0, 0x47 bne _0806DB26 _0806DB22: movs r0, 0x1 b _0806DB28 _0806DB26: movs r0, 0 _0806DB28: cmp r0, 0 beq _0806DB38 ldr r0, _0806DB34 mov r3, r8 lsls r1, r3, 2 b _0806DB82 .align 2, 0 _0806DB34: .4byte gUnknown_80F9DAC _0806DB38: adds r0, r6, 0 adds r0, 0xA4 ldrb r0, [r0] cmp r0, 0x1 bne _0806DB4C ldr r0, _0806DB48 b _0806DB7E .align 2, 0 _0806DB48: .4byte gUnknown_80F9DF0 _0806DB4C: movs r1, 0xA ldrsh r0, [r3, r1] bl sub_806A58C lsls r0, 24 cmp r0, 0 beq _0806DB94 ldr r0, _0806DB70 ldr r0, [r0] ldr r2, _0806DB74 adds r0, r2 ldrb r0, [r0] cmp r0, 0 beq _0806DB7C ldr r0, _0806DB78 mov r3, r8 lsls r1, r3, 2 b _0806DB82 .align 2, 0 _0806DB70: .4byte gUnknown_203B418 _0806DB74: .4byte 0x0000065d _0806DB78: .4byte gUnknown_80F9D8C _0806DB7C: ldr r0, _0806DB90 _0806DB7E: mov r2, r8 lsls r1, r2, 2 _0806DB82: adds r1, r0 ldr r1, [r1] _0806DB86: mov r0, r9 bl sub_805239C b _0806DBA4 .align 2, 0 _0806DB90: .4byte gUnknown_80F9D84 _0806DB94: ldr r0, _0806DC4C mov r3, r8 lsls r1, r3, 2 adds r1, r0 ldr r1, [r1] mov r0, r9 bl sub_805239C _0806DBA4: mov r1, r10 ldrb r0, [r1] subs r0, 0x3 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _0806DBBC adds r0, r6, 0 adds r0, 0x9C ldr r0, [r0] bl sub_8076CB4 _0806DBBC: adds r1, r6, 0 adds r1, 0x60 ldrb r3, [r1] movs r2, 0x1 mov r8, r2 mov r0, r8 ands r0, r3 adds r5, r1, 0 cmp r0, 0 beq _0806DC5C movs r0, 0x8 ands r0, r3 cmp r0, 0 bne _0806DC5C movs r0, 0x2 ands r0, r3 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _0806DC5C ldrb r0, [r5, 0x2] cmp r0, 0xD2 bne _0806DC5C adds r0, r7, 0 bl sub_8042148 adds r0, r7, 0 adds r0, 0x22 strb r4, [r0] ldrh r0, [r6, 0x10] movs r2, 0 strh r0, [r6, 0xE] movs r3, 0xAC lsls r3, 1 adds r0, r6, r3 strb r2, [r0] movs r1, 0xA6 lsls r1, 1 adds r0, r6, r1 mov r3, r8 strb r3, [r0] movs r0, 0x9E lsls r0, 1 adds r1, r6, r0 movs r3, 0xA0 lsls r3, 1 adds r0, r6, r3 ldr r0, [r0] str r0, [r1] ldrb r0, [r6, 0x7] cmp r0, 0 beq _0806DC36 ldr r0, _0806DC50 ldr r1, [r0] ldr r3, _0806DC54 adds r1, r3 strb r2, [r1] ldr r0, [r0] ldr r1, _0806DC58 adds r0, r1 strb r2, [r0] _0806DC36: strb r2, [r5, 0x2] strb r2, [r5, 0x1] strb r2, [r5] adds r0, r6, 0 adds r0, 0xC8 ldrb r0, [r0] cmp r0, 0x3 bne _0806DC48 b _0806DEC8 _0806DC48: b _0806DEE4 .align 2, 0 _0806DC4C: .4byte gUnknown_80F9D28 _0806DC50: .4byte gUnknown_203B418 _0806DC54: .4byte 0x00000679 _0806DC58: .4byte 0x00000676 _0806DC5C: ldrb r0, [r6, 0x7] cmp r0, 0 bne _0806DC64 b _0806DDFC _0806DC64: mov r10, r5 ldrb r1, [r5] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0806DC72 b _0806DDFC _0806DC72: movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _0806DC7C b _0806DDFC _0806DC7C: ldrb r0, [r5, 0x2] cmp r0, 0xD8 beq _0806DC84 b _0806DDFC _0806DC84: movs r4, 0 _0806DC86: ldr r0, _0806DD80 ldr r0, [r0] lsls r1, r4, 2 ldr r2, _0806DD84 adds r0, r2 adds r0, r1 ldr r0, [r0] mov r8, r0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0806DCDE cmp r8, r7 beq _0806DCDE adds r0, r7, 0 mov r1, r8 bl sub_8045990 lsls r0, 24 cmp r0, 0 beq _0806DCDE mov r3, r8 movs r0, 0x4 ldrsh r1, [r3, r0] movs r2, 0x4 ldrsh r0, [r7, r2] subs r1, r0 cmp r1, 0 bge _0806DCC4 negs r1, r1 _0806DCC4: cmp r1, 0x1 bgt _0806DCDE mov r3, r8 movs r0, 0x6 ldrsh r1, [r3, r0] movs r2, 0x6 ldrsh r0, [r7, r2] subs r1, r0 cmp r1, 0 bge _0806DCDA negs r1, r1 _0806DCDA: cmp r1, 0x1 ble _0806DCE4 _0806DCDE: adds r4, 0x1 cmp r4, 0x3 ble _0806DC86 _0806DCE4: cmp r4, 0x4 bne _0806DCEA b _0806DDFC _0806DCEA: adds r0, r7, 0 bl sub_8042148 mov r3, r8 ldr r4, [r3, 0x4] ldr r1, _0806DD88 mov r0, r8 adds r2, r7, 0 bl sub_8068FE0 lsls r1, r4, 16 asrs r1, 16 asrs r4, 16 adds r0, r7, 0 adds r2, r4, 0 movs r3, 0x1 bl sub_80694C0 adds r0, r7, 0 movs r1, 0 bl sub_804535C adds r1, r7, 0 adds r1, 0x22 movs r0, 0 strb r0, [r1] ldrh r0, [r6, 0x10] movs r4, 0 strh r0, [r6, 0xE] adds r0, r7, 0 bl sub_8042A24 movs r1, 0xAC lsls r1, 1 adds r0, r6, r1 strb r4, [r0] movs r2, 0xA6 lsls r2, 1 adds r1, r6, r2 movs r0, 0x1 strb r0, [r1] movs r3, 0x9E lsls r3, 1 adds r1, r6, r3 subs r2, 0xC adds r0, r6, r2 ldr r0, [r0] str r0, [r1] ldrb r0, [r6, 0x7] cmp r0, 0 beq _0806DD62 ldr r0, _0806DD80 ldr r1, [r0] ldr r3, _0806DD8C adds r1, r3 strb r4, [r1] ldr r0, [r0] ldr r1, _0806DD90 adds r0, r1 strb r4, [r0] _0806DD62: mov r2, r10 strb r4, [r2, 0x2] strb r4, [r2, 0x1] strb r4, [r2] adds r0, r6, 0 adds r0, 0xC8 ldrb r0, [r0] cmp r0, 0x3 bne _0806DD94 mov r0, r9 adds r1, r7, 0 movs r2, 0x3 bl sub_807A5D0 b _0806DDA2 .align 2, 0 _0806DD80: .4byte gUnknown_203B418 _0806DD84: .4byte 0x0001357c _0806DD88: .4byte 0x00000221 _0806DD8C: .4byte 0x00000679 _0806DD90: .4byte 0x00000676 _0806DD94: cmp r0, 0x2 bne _0806DDA2 mov r0, r9 adds r1, r7, 0 movs r2, 0x2 bl sub_807A5D0 _0806DDA2: adds r0, r7, 0 bl sub_8078084 adds r0, r6, 0 movs r1, 0 bl sub_806BFC0 bl sub_800DBBC adds r0, r7, 0 bl sub_806A390 adds r0, r7, 0 bl sub_806CEBC adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r7, 0 bl sub_806CCB4 adds r0, r7, 0 bl sub_80418D4 ldr r4, _0806DDF0 adds r0, r4, 0 adds r1, r7, 0 movs r2, 0 bl sub_8045B94 adds r4, 0x50 adds r0, r4, 0 mov r1, r8 movs r2, 0 bl sub_8045B94 ldr r0, _0806DDF4 b _0806DF2E .align 2, 0 _0806DDF0: .4byte gUnknown_202DF98 _0806DDF4: .4byte gUnknown_80FD484 _0806DDF8: mov r4, r8 b _0806DE64 _0806DDFC: adds r0, r7, 0 movs r1, 0x16 bl sub_80718D8 lsls r0, 24 cmp r0, 0 bne _0806DE0C b _0806DF48 _0806DE0C: movs r4, 0 ldrb r1, [r5] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0806DE28 movs r0, 0x8 ands r0, r1 cmp r0, 0 bne _0806DE28 ldrb r0, [r5, 0x2] cmp r0, 0x3A bne _0806DE28 adds r4, r5, 0 _0806DE28: cmp r4, 0 bne _0806DE68 ldrb r0, [r6, 0x6] cmp r0, 0 bne _0806DE64 movs r3, 0 ldr r0, _0806DED4 ldr r2, [r0] mov r12, r2 movs r0, 0x1 mov r10, r0 _0806DE3E: lsls r0, r3, 2 add r0, r12 mov r8, r0 ldrb r1, [r2] mov r0, r10 ands r0, r1 cmp r0, 0 beq _0806DE5C movs r0, 0x8 ands r0, r1 cmp r0, 0 bne _0806DE5C ldrb r0, [r2, 0x2] cmp r0, 0x3A beq _0806DDF8 _0806DE5C: adds r2, 0x4 adds r3, 0x1 cmp r3, 0x13 ble _0806DE3E _0806DE64: cmp r4, 0 beq _0806DF48 _0806DE68: adds r0, r7, 0 bl sub_8042148 adds r0, r4, 0 movs r1, 0x46 movs r2, 0x2 bl sub_8045C28 adds r1, r7, 0 adds r1, 0x22 movs r0, 0 strb r0, [r1] ldrh r0, [r6, 0x10] movs r2, 0 strh r0, [r6, 0xE] movs r1, 0xAC lsls r1, 1 adds r0, r6, r1 strb r2, [r0] movs r3, 0xA6 lsls r3, 1 adds r1, r6, r3 movs r0, 0x1 strb r0, [r1] movs r0, 0x9E lsls r0, 1 adds r1, r6, r0 subs r3, 0xC adds r0, r6, r3 ldr r0, [r0] str r0, [r1] ldrb r0, [r6, 0x7] cmp r0, 0 beq _0806DEBE ldr r0, _0806DED8 ldr r1, [r0] ldr r3, _0806DEDC adds r1, r3 strb r2, [r1] ldr r0, [r0] ldr r1, _0806DEE0 adds r0, r1 strb r2, [r0] _0806DEBE: adds r0, r6, 0 adds r0, 0xC8 ldrb r0, [r0] cmp r0, 0x3 bne _0806DEE4 _0806DEC8: mov r0, r9 adds r1, r7, 0 movs r2, 0x3 bl sub_807A5D0 b _0806DEF2 .align 2, 0 _0806DED4: .4byte gUnknown_203B460 _0806DED8: .4byte gUnknown_203B418 _0806DEDC: .4byte 0x00000679 _0806DEE0: .4byte 0x00000676 _0806DEE4: cmp r0, 0x2 bne _0806DEF2 mov r0, r9 adds r1, r7, 0 movs r2, 0x2 bl sub_807A5D0 _0806DEF2: adds r0, r7, 0 bl sub_8078084 adds r0, r6, 0 movs r1, 0 bl sub_806BFC0 bl sub_800DBBC adds r0, r7, 0 bl sub_806A390 adds r0, r7, 0 bl sub_806CEBC adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r7, 0 bl sub_806CCB4 adds r0, r7, 0 bl sub_80418D4 ldr r0, _0806DF40 adds r1, r7, 0 movs r2, 0 bl sub_8045B94 ldr r0, _0806DF44 _0806DF2E: ldr r1, [r0] mov r0, r9 bl sub_805239C adds r0, r7, 0 bl sub_806F63C bl _0806D608 .align 2, 0 _0806DF40: .4byte gUnknown_202DFE8 _0806DF44: .4byte gUnknown_80FD46C _0806DF48: ldrb r4, [r6, 0x7] cmp r4, 0 bne _0806DF68 ldrb r1, [r5] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0806DF68 adds r1, r7, 0x4 adds r0, r7, 0 adds r2, r5, 0 bl sub_80464C8 strb r4, [r5, 0x2] strb r4, [r5, 0x1] strb r4, [r5] _0806DF68: adds r0, r6, 0 adds r0, 0xF7 ldrb r0, [r0] cmp r0, 0 beq _0806DF7E ldr r0, _0806E02C ldr r0, [r0] ldr r2, _0806E030 adds r0, r2 ldr r1, _0806E034 strh r1, [r0] _0806DF7E: movs r3, 0 mov r10, r3 mov r0, r9 bl sub_80450F8 cmp r0, 0x1 bne _0806E066 mov r0, r9 ldr r4, [r0, 0x70] movs r1, 0x2 ldrsh r0, [r6, r1] ldrb r1, [r6, 0x9] bl sub_808DD18 adds r5, r0, 0 adds r0, r6, 0 adds r0, 0xFB ldrb r0, [r0] cmp r0, 0 beq _0806DFAE cmp r0, 0x2 bne _0806DFB4 lsls r0, r5, 1 adds r5, r0, r5 _0806DFAE: lsrs r0, r5, 31 adds r0, r5, r0 asrs r5, r0, 1 _0806DFB4: cmp r5, 0 bne _0806DFBA movs r5, 0x1 _0806DFBA: ldrb r0, [r4, 0x7] cmp r0, 0 beq _0806DFC8 movs r2, 0x2 ldrsh r0, [r6, r2] bl sub_80980B4 _0806DFC8: adds r0, r6, 0 adds r0, 0xF4 ldrb r0, [r0] cmp r0, 0 beq _0806DFDA ldr r3, _0806E038 adds r1, r4, r3 movs r0, 0x1 strb r0, [r1] _0806DFDA: ldr r0, [sp, 0x78] cmp r0, 0x1 bne _0806E066 ldrb r0, [r4, 0x6] cmp r0, 0 bne _0806E040 ldrb r0, [r6, 0x6] cmp r0, 0 beq _0806E066 mov r0, r9 mov r1, r9 adds r2, r5, 0 bl sub_8071D4C movs r6, 0 _0806DFF8: ldr r0, _0806E02C ldr r0, [r0] lsls r1, r6, 2 ldr r2, _0806E03C adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0806E020 cmp r4, r9 beq _0806E020 mov r0, r9 adds r1, r4, 0 adds r2, r5, 0 bl sub_8071D4C _0806E020: adds r6, 0x1 cmp r6, 0x3 ble _0806DFF8 movs r3, 0x1 mov r10, r3 b _0806E066 .align 2, 0 _0806E02C: .4byte gUnknown_203B418 _0806E030: .4byte 0x0000066a _0806E034: .4byte 0x000003e7 _0806E038: .4byte 0x0000014b _0806E03C: .4byte 0x0001357c _0806E040: ldr r5, _0806E0BC ldr r0, [r5] ldr r1, _0806E0C0 adds r0, r1 ldrb r0, [r0] bl sub_809033C lsls r0, 24 cmp r0, 0 beq _0806E066 ldr r2, _0806E0C4 adds r0, r4, r2 add r3, sp, 0x78 ldrb r3, [r3] strb r3, [r0] ldr r0, [r5] add r1, sp, 0x78 ldrb r1, [r1] strb r1, [r0, 0xD] _0806E066: mov r0, r9 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0806E08A mov r0, r9 bl sub_80450F8 cmp r0, 0x1 bne _0806E08A mov r2, r9 ldr r0, [r2, 0x70] ldrb r0, [r0, 0x7] cmp r0, 0 bne _0806E08A movs r3, 0 mov r10, r3 _0806E08A: mov r0, r10 cmp r0, 0 beq _0806E0E4 add r0, sp, 0x4 adds r1, r7, 0 bl sub_8069D4C mov r0, r9 adds r1, r7, 0 bl sub_806F660 lsls r0, 24 cmp r0, 0 beq _0806E0D8 mov r0, r9 adds r1, r7, 0 add r2, sp, 0x4 bl sub_806FA5C lsls r0, 24 cmp r0, 0 bne _0806E0CC ldr r1, _0806E0C8 adds r0, r7, 0 b _0806E0DC .align 2, 0 _0806E0BC: .4byte gUnknown_203B418 _0806E0C0: .4byte 0x00000644 _0806E0C4: .4byte 0x00000149 _0806E0C8: .4byte 0x000001f5 _0806E0CC: ldr r1, _0806E0D4 movs r0, 0x1 strb r0, [r1] b _0806E0EE .align 2, 0 _0806E0D4: .4byte gUnknown_202F221 _0806E0D8: adds r0, r7, 0 ldr r1, [sp, 0x50] _0806E0DC: mov r2, r9 bl sub_8068FE0 b _0806E0EE _0806E0E4: adds r0, r7, 0 ldr r1, [sp, 0x50] mov r2, r9 bl sub_8068FE0 _0806E0EE: movs r0, 0x1 _0806E0F0: add sp, 0x58 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_806D528 thumb_func_start sub_806E100 sub_806E100: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x28 adds r6, r0, 0 mov r8, r1 str r2, [sp, 0x18] lsls r3, 24 lsrs r7, r3, 24 movs r0, 0 mov r9, r0 movs r1, 0 str r1, [sp, 0x20] mov r2, r8 ldr r2, [r2, 0x70] str r2, [sp, 0x24] ldr r3, [sp, 0x18] ldr r3, [r3, 0x70] mov r10, r3 adds r0, r6, 0 movs r1, 0x1 bl sub_800A020 mov r0, r9 ldr r4, [sp, 0x48] strb r0, [r4, 0xD] strb r0, [r4, 0xE] movs r1, 0 str r1, [sp, 0x1C] ldr r0, [sp, 0x18] bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _0806E14E movs r0, 0x1 b _0806E61A _0806E14E: cmp r7, 0x1 beq _0806E156 cmp r7, 0x7 bne _0806E15A _0806E156: movs r2, 0x1 str r2, [sp, 0x20] _0806E15A: ldr r0, [sp, 0x18] movs r1, 0x35 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0806E170 cmp r7, 0 beq _0806E170 movs r3, 0x1 str r3, [sp, 0x1C] _0806E170: movs r0, 0x2 ldr r4, [sp, 0x48] str r0, [r4, 0x8] movs r5, 0 add r0, sp, 0x10 mov r9, r0 b _0806E1F2 _0806E17E: mov r1, r10 adds r1, 0x5C ldr r2, [sp, 0x20] cmp r2, 0 beq _0806E1B4 adds r0, r1, r5 ldrb r0, [r0] cmp r0, 0xE bne _0806E1B4 mov r0, r10 adds r0, 0xF5 ldrb r0, [r0] cmp r0, 0 bne _0806E1B4 movs r4, 0 ldr r0, _0806E1AC ldr r0, [r0] ldr r3, _0806E1B0 adds r1, r0, r3 movs r0, 0x1 strb r0, [r1] b _0806E1CA .align 2, 0 _0806E1AC: .4byte gUnknown_203B418 _0806E1B0: .4byte 0x00000179 _0806E1B4: ldr r2, _0806E4E4 adds r0, r1, r5 ldrb r1, [r0] lsls r1, 1 lsls r0, r7, 3 adds r0, r7 lsls r0, 2 adds r1, r0 adds r1, r2 movs r0, 0 ldrsh r4, [r1, r0] _0806E1CA: cmp r4, 0x2 beq _0806E1DC lsls r0, r4, 2 add r0, sp ldr r2, [r0] adds r0, r6, 0 adds r1, r6, 0 bl sub_800A34C _0806E1DC: lsls r0, r5, 2 add r0, r9 str r4, [r0] ldr r0, _0806E4E8 ldr r0, [r0] movs r1, 0x9E lsls r1, 1 adds r0, r1 adds r0, r5 strb r4, [r0] adds r5, 0x1 _0806E1F2: cmp r5, 0x1 bgt _0806E20E mov r1, sp ldr r0, _0806E4EC ldm r0!, {r2-r4} stm r1!, {r2-r4} ldr r0, [r0] str r0, [r1] adds r0, r6, 0 bl sub_800A2A0 lsls r0, 24 cmp r0, 0 beq _0806E17E _0806E20E: ldr r2, _0806E4F0 mov r1, r9 ldr r0, [r1, 0x4] lsls r0, 2 ldr r1, [sp, 0x10] lsls r1, 4 adds r0, r1 adds r0, r2 ldr r0, [r0] ldr r2, [sp, 0x48] str r0, [r2, 0x8] movs r3, 0x1 mov r9, r3 cmp r0, 0x3 beq _0806E240 movs r4, 0 mov r9, r4 ldr r0, [sp, 0x1C] cmp r0, 0 beq _0806E240 ldr r0, _0806E4F4 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [r6] str r1, [r6, 0x4] _0806E240: cmp r7, 0x2 beq _0806E248 cmp r7, 0x6 bne _0806E26C _0806E248: ldr r0, [sp, 0x18] movs r1, 0x2 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0806E26C ldr r0, _0806E4E8 ldr r0, [r0] ldr r2, _0806E4F8 adds r1, r0, r2 movs r0, 0x1 strb r0, [r1] ldr r2, _0806E4FC adds r0, r6, 0 adds r1, r6, 0 bl sub_800A34C _0806E26C: cmp r7, 0x2 bne _0806E2A0 ldr r0, [sp, 0x18] bl sub_807723C lsls r0, 24 cmp r0, 0 beq _0806E2A0 ldr r0, _0806E4E8 ldr r0, [r0] movs r3, 0xB7 lsls r3, 1 adds r0, r3 movs r4, 0 movs r5, 0x1 strb r5, [r0] adds r0, r6, 0 movs r1, 0 bl sub_800A020 ldr r0, [sp, 0x48] str r4, [r0, 0x8] strb r4, [r0, 0xD] strb r5, [r0, 0xE] movs r1, 0 mov r9, r1 _0806E2A0: cmp r7, 0x9 bne _0806E2D2 ldr r0, [sp, 0x18] movs r1, 0x37 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0806E2D2 ldr r0, _0806E4E8 ldr r0, [r0] ldr r2, _0806E500 adds r0, r2 movs r4, 0 movs r5, 0x1 strb r5, [r0] adds r0, r6, 0 movs r1, 0 bl sub_800A020 ldr r3, [sp, 0x48] str r4, [r3, 0x8] strb r4, [r3, 0xD] strb r5, [r3, 0xE] mov r9, r4 _0806E2D2: cmp r7, 0x3 bne _0806E340 mov r0, r8 movs r1, 0x10 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0806E340 movs r4, 0 ldr r0, [sp, 0x24] movs r2, 0x10 ldrsh r1, [r0, r2] cmp r1, 0 bge _0806E2F2 adds r1, 0x3 _0806E2F2: asrs r1, 2 ldr r3, [sp, 0x24] movs r2, 0xE ldrsh r0, [r3, r2] cmp r1, r0 blt _0806E300 movs r4, 0x1 _0806E300: ldr r0, [sp, 0x24] movs r1, 0x80 adds r2, r4, 0 bl sub_8071ACC lsls r0, 24 lsrs r5, r0, 24 cmp r4, 0 beq _0806E32A ldr r0, _0806E4E8 ldr r0, [r0] movs r3, 0xB8 lsls r3, 1 adds r0, r3 movs r1, 0x1 strb r1, [r0] ldr r2, _0806E504 adds r0, r6, 0 adds r1, r6, 0 bl sub_800A34C _0806E32A: cmp r5, 0 beq _0806E340 mov r0, r8 bl sub_80428EC ldr r0, _0806E508 ldr r2, [r0] mov r0, r8 ldr r1, [sp, 0x18] bl sub_80522F4 _0806E340: cmp r7, 0x4 bne _0806E3AC mov r0, r8 movs r1, 0x1A bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0806E3AC movs r4, 0 ldr r0, [sp, 0x24] movs r2, 0x10 ldrsh r1, [r0, r2] cmp r1, 0 bge _0806E360 adds r1, 0x3 _0806E360: asrs r1, 2 ldr r3, [sp, 0x24] movs r2, 0xE ldrsh r0, [r3, r2] cmp r1, r0 blt _0806E36E movs r4, 0x1 _0806E36E: ldr r0, [sp, 0x24] movs r1, 0x2 adds r2, r4, 0 bl sub_8071ACC lsls r0, 24 lsrs r5, r0, 24 cmp r4, 0 beq _0806E396 ldr r0, _0806E4E8 ldr r0, [r0] ldr r3, _0806E50C adds r1, r0, r3 movs r0, 0x1 strb r0, [r1] ldr r2, _0806E504 adds r0, r6, 0 adds r1, r6, 0 bl sub_800A34C _0806E396: cmp r5, 0 beq _0806E3AC mov r0, r8 bl sub_80428D8 ldr r0, _0806E510 ldr r2, [r0] mov r0, r8 ldr r1, [sp, 0x18] bl sub_80522F4 _0806E3AC: cmp r7, 0xC bne _0806E41A mov r0, r8 movs r1, 0x43 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0806E41A movs r4, 0 ldr r0, [sp, 0x24] movs r2, 0x10 ldrsh r1, [r0, r2] cmp r1, 0 bge _0806E3CC adds r1, 0x3 _0806E3CC: asrs r1, 2 ldr r3, [sp, 0x24] movs r2, 0xE ldrsh r0, [r3, r2] cmp r1, r0 blt _0806E3DA movs r4, 0x1 _0806E3DA: ldr r0, [sp, 0x24] movs r1, 0x10 adds r2, r4, 0 bl sub_8071ACC lsls r0, 24 lsrs r5, r0, 24 cmp r4, 0 beq _0806E404 ldr r0, _0806E4E8 ldr r0, [r0] movs r3, 0xB9 lsls r3, 1 adds r1, r0, r3 movs r0, 0x1 strb r0, [r1] ldr r2, _0806E504 adds r0, r6, 0 adds r1, r6, 0 bl sub_800A34C _0806E404: cmp r5, 0 beq _0806E41A mov r0, r8 bl sub_8042978 ldr r0, _0806E514 ldr r2, [r0] mov r0, r8 ldr r1, [sp, 0x18] bl sub_80522F4 _0806E41A: cmp r7, 0x2 bne _0806E486 mov r0, r8 movs r1, 0x46 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0806E486 movs r4, 0 ldr r0, [sp, 0x24] movs r2, 0x10 ldrsh r1, [r0, r2] cmp r1, 0 bge _0806E43A adds r1, 0x3 _0806E43A: asrs r1, 2 ldr r3, [sp, 0x24] movs r2, 0xE ldrsh r0, [r3, r2] cmp r1, r0 blt _0806E448 movs r4, 0x1 _0806E448: ldr r0, [sp, 0x24] movs r1, 0x20 adds r2, r4, 0 bl sub_8071ACC lsls r0, 24 lsrs r5, r0, 24 cmp r4, 0 beq _0806E470 ldr r0, _0806E4E8 ldr r0, [r0] ldr r3, _0806E518 adds r1, r0, r3 movs r0, 0x1 strb r0, [r1] ldr r2, _0806E504 adds r0, r6, 0 adds r1, r6, 0 bl sub_800A34C _0806E470: cmp r5, 0 beq _0806E486 mov r0, r8 bl sub_804298C ldr r0, _0806E51C ldr r2, [r0] mov r0, r8 ldr r1, [sp, 0x18] bl sub_80522F4 _0806E486: adds r0, r6, 0 bl sub_800A2A0 lsls r0, 24 cmp r0, 0 bne _0806E4B8 mov r0, r8 adds r1, r7, 0 bl sub_8071858 lsls r0, 24 cmp r0, 0 beq _0806E4B8 ldr r0, _0806E4E8 ldr r0, [r0] movs r4, 0xBA lsls r4, 1 adds r0, r4 movs r1, 0x1 strb r1, [r0] ldr r2, _0806E520 adds r0, r6, 0 adds r1, r6, 0 bl sub_800A34C _0806E4B8: mov r0, r8 bl sub_807E580 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x1 bne _0806E53E cmp r7, 0x2 bne _0806E524 ldr r0, _0806E4E8 ldr r0, [r0] movs r1, 0xB6 lsls r1, 1 adds r0, r1 strb r4, [r0] ldr r2, _0806E520 adds r0, r6, 0 adds r1, r6, 0 bl sub_800A34C b _0806E53E .align 2, 0 _0806E4E4: .4byte gUnknown_80F522C _0806E4E8: .4byte gUnknown_203B418 _0806E4EC: .4byte gUnknown_8106F54 _0806E4F0: .4byte gUnknown_80F54B4 _0806E4F4: .4byte gUnknown_8106EFC _0806E4F8: .4byte 0x0000016d _0806E4FC: .4byte gUnknown_8106F1C _0806E500: .4byte 0x0000016f _0806E504: .4byte gUnknown_8106F0C _0806E508: .4byte gUnknown_80FEDA8 _0806E50C: .4byte 0x00000171 _0806E510: .4byte gUnknown_80FED88 _0806E514: .4byte gUnknown_80FEDC8 _0806E518: .4byte 0x00000173 _0806E51C: .4byte gUnknown_80FEDE8 _0806E520: .4byte gUnknown_8106F14 _0806E524: cmp r7, 0x3 bne _0806E53E ldr r0, _0806E560 ldr r0, [r0] movs r2, 0xB6 lsls r2, 1 adds r0, r2 strb r4, [r0] ldr r2, _0806E564 adds r0, r6, 0 adds r1, r6, 0 bl sub_800A34C _0806E53E: cmp r4, 0x4 bne _0806E586 cmp r7, 0x2 bne _0806E56C ldr r0, _0806E560 ldr r0, [r0] ldr r3, _0806E568 adds r1, r0, r3 movs r0, 0x1 strb r0, [r1] ldr r2, _0806E564 adds r0, r6, 0 adds r1, r6, 0 bl sub_800A34C b _0806E586 .align 2, 0 _0806E560: .4byte gUnknown_203B418 _0806E564: .4byte gUnknown_8106F1C _0806E568: .4byte 0x0000016b _0806E56C: cmp r7, 0x3 bne _0806E586 ldr r0, _0806E62C ldr r0, [r0] ldr r2, _0806E630 adds r1, r0, r2 movs r0, 0x1 strb r0, [r1] ldr r2, _0806E634 adds r0, r6, 0 adds r1, r6, 0 bl sub_800A34C _0806E586: cmp r4, 0x3 bne _0806E5A6 cmp r7, 0x1 beq _0806E5A6 ldr r2, _0806E638 adds r0, r6, 0 adds r1, r6, 0 bl sub_800A34C ldr r0, _0806E62C ldr r0, [r0] movs r3, 0xB5 lsls r3, 1 adds r1, r0, r3 movs r0, 0x1 strb r0, [r1] _0806E5A6: ldr r0, _0806E62C ldr r1, [r0] ldr r2, _0806E63C adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 bne _0806E5B8 cmp r4, 0x6 bne _0806E5CE _0806E5B8: cmp r7, 0x5 bne _0806E5CE ldr r3, _0806E640 adds r1, r3 movs r0, 0x1 strb r0, [r1] ldr r2, _0806E644 adds r0, r6, 0 adds r1, r6, 0 bl sub_800A34C _0806E5CE: ldr r0, _0806E62C ldr r1, [r0] ldr r4, _0806E648 adds r0, r1, r4 ldrb r0, [r0] cmp r0, 0 beq _0806E5F4 cmp r7, 0x2 bne _0806E5F4 movs r0, 0xBB lsls r0, 1 adds r1, r0 movs r0, 0x1 strb r0, [r1] ldr r2, _0806E644 adds r0, r6, 0 adds r1, r6, 0 bl sub_800A34C _0806E5F4: cmp r7, 0x5 bne _0806E618 ldr r0, [sp, 0x24] adds r0, 0xC0 ldrb r0, [r0] cmp r0, 0xB bne _0806E618 ldr r0, _0806E62C ldr r0, [r0] ldr r2, _0806E64C adds r1, r0, r2 movs r0, 0x1 strb r0, [r1] ldr r2, _0806E650 adds r0, r6, 0 adds r1, r6, 0 bl sub_800A34C _0806E618: mov r0, r9 _0806E61A: add sp, 0x28 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0806E62C: .4byte gUnknown_203B418 _0806E630: .4byte 0x0000016b _0806E634: .4byte gUnknown_8106F14 _0806E638: .4byte gUnknown_8106F64 _0806E63C: .4byte 0x0000e277 _0806E640: .4byte 0x00000175 _0806E644: .4byte gUnknown_8106F1C _0806E648: .4byte 0x0000e278 _0806E64C: .4byte 0x00000177 _0806E650: .4byte gUnknown_8106F0C thumb_func_end sub_806E100 thumb_func_start sub_806E654 sub_806E654: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C mov r9, r0 str r1, [sp, 0x14] lsls r2, 24 lsrs r4, r2, 24 movs r5, 0x1 movs r0, 0 str r0, [sp, 0x10] adds r0, r1, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0806E6DC cmp r4, 0x1 beq _0806E682 cmp r4, 0x7 bne _0806E686 _0806E682: movs r1, 0x1 str r1, [sp, 0x10] _0806E686: mov r2, r9 ldr r2, [r2, 0x70] mov r8, r2 ldr r3, [sp, 0x14] ldr r3, [r3, 0x70] mov r10, r3 cmp r4, 0x2 bne _0806E6A2 ldr r0, [sp, 0x14] bl sub_807723C lsls r0, 24 cmp r0, 0 bne _0806E6C6 _0806E6A2: cmp r4, 0x5 bne _0806E6B4 ldr r0, [sp, 0x14] movs r1, 0x23 bl sub_8071824 lsls r0, 24 cmp r0, 0 bne _0806E6C6 _0806E6B4: cmp r4, 0x3 bne _0806E6CA ldr r0, [sp, 0x14] movs r1, 0x24 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0806E6CA _0806E6C6: movs r0, 0 b _0806E894 _0806E6CA: cmp r4, 0x9 bne _0806E6E0 ldr r0, [sp, 0x14] movs r1, 0x37 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0806E6E0 _0806E6DC: movs r0, 0x1 b _0806E894 _0806E6E0: mov r6, r10 adds r6, 0x5C str r6, [sp, 0x18] lsls r0, r4, 3 adds r0, r4 lsls r0, 2 mov r12, r0 adds r2, r6, 0 _0806E6F0: mov r0, sp ldr r1, _0806E724 ldm r1!, {r3,r6,r7} stm r0!, {r3,r6,r7} ldr r1, [r1] str r1, [r0] ldr r7, [sp, 0x10] cmp r7, 0 beq _0806E730 ldrb r0, [r2] cmp r0, 0xE bne _0806E730 mov r0, r10 adds r0, 0xF5 ldrb r0, [r0] cmp r0, 0 bne _0806E730 movs r3, 0 ldr r0, _0806E728 ldr r0, [r0] ldr r6, _0806E72C adds r1, r0, r6 movs r0, 0x1 strb r0, [r1] b _0806E73E .align 2, 0 _0806E724: .4byte gUnknown_8106F6C _0806E728: .4byte gUnknown_203B418 _0806E72C: .4byte 0x00000179 _0806E730: ldrb r0, [r2] lsls r0, 1 add r0, r12 ldr r7, _0806E854 adds r0, r7 movs r1, 0 ldrsh r3, [r0, r1] _0806E73E: cmp r5, 0 beq _0806E75E lsls r0, r3, 2 add r0, sp ldr r0, [r0] muls r5, r0 lsrs r0, r5, 31 adds r0, r5, r0 asrs r5, r0, 1 cmp r5, 0 beq _0806E84E adds r2, 0x1 ldr r0, [sp, 0x18] adds r0, 0x1 cmp r2, r0 ble _0806E6F0 _0806E75E: cmp r4, 0x2 beq _0806E766 cmp r4, 0x6 bne _0806E774 _0806E766: ldr r0, [sp, 0x14] movs r1, 0x2 bl sub_8071824 lsls r0, 24 cmp r0, 0 bne _0806E84E _0806E774: cmp r4, 0x3 bne _0806E7A0 mov r0, r9 movs r1, 0x10 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0806E7A0 mov r2, r8 movs r3, 0x10 ldrsh r1, [r2, r3] cmp r1, 0 bge _0806E792 adds r1, 0x3 _0806E792: asrs r1, 2 mov r6, r8 movs r7, 0xE ldrsh r0, [r6, r7] cmp r1, r0 blt _0806E7A0 lsls r5, 1 _0806E7A0: cmp r4, 0x4 bne _0806E7CC mov r0, r9 movs r1, 0x1A bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0806E7CC mov r0, r8 movs r2, 0x10 ldrsh r1, [r0, r2] cmp r1, 0 bge _0806E7BE adds r1, 0x3 _0806E7BE: asrs r1, 2 mov r3, r8 movs r6, 0xE ldrsh r0, [r3, r6] cmp r1, r0 blt _0806E7CC lsls r5, 1 _0806E7CC: cmp r4, 0xC bne _0806E7F8 mov r0, r9 movs r1, 0x43 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0806E7F8 mov r7, r8 movs r0, 0x10 ldrsh r1, [r7, r0] cmp r1, 0 bge _0806E7EA adds r1, 0x3 _0806E7EA: asrs r1, 2 mov r2, r8 movs r3, 0xE ldrsh r0, [r2, r3] cmp r1, r0 blt _0806E7F8 lsls r5, 1 _0806E7F8: cmp r4, 0x2 bne _0806E824 mov r0, r9 movs r1, 0x46 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0806E824 mov r6, r8 movs r7, 0x10 ldrsh r1, [r6, r7] cmp r1, 0 bge _0806E816 adds r1, 0x3 _0806E816: asrs r1, 2 mov r2, r8 movs r3, 0xE ldrsh r0, [r2, r3] cmp r1, r0 blt _0806E824 lsls r5, 1 _0806E824: cmp r5, 0 beq _0806E84E mov r0, r9 adds r1, r4, 0 bl sub_8071858 lsls r0, 24 cmp r0, 0 beq _0806E838 lsls r5, 1 _0806E838: mov r0, r9 bl sub_807E580 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0806E85A cmp r4, 0x2 beq _0806E858 cmp r4, 0x3 bne _0806E85A _0806E84E: movs r0, 0x2 b _0806E894 .align 2, 0 _0806E854: .4byte gUnknown_80F522C _0806E858: lsls r5, 1 _0806E85A: ldr r0, _0806E8A4 ldr r1, [r0] ldr r6, _0806E8A8 adds r1, r6 ldrb r1, [r1] cmp r1, 0 beq _0806E86C cmp r4, 0x5 beq _0806E84E _0806E86C: ldr r0, [r0] ldr r7, _0806E8AC adds r0, r7 ldrb r0, [r0] cmp r0, 0 beq _0806E87C cmp r4, 0x2 beq _0806E84E _0806E87C: cmp r4, 0x5 bne _0806E88C mov r0, r8 adds r0, 0xC0 ldrb r0, [r0] cmp r0, 0xB bne _0806E88C lsls r5, 1 _0806E88C: cmp r5, 0x2 ble _0806E892 movs r5, 0x3 _0806E892: adds r0, r5, 0x2 _0806E894: add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0806E8A4: .4byte gUnknown_203B418 _0806E8A8: .4byte 0x0000e277 _0806E8AC: .4byte 0x0000e278 thumb_func_end sub_806E654 thumb_func_start sub_806E8B0 sub_806E8B0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC adds r6, r0, 0 mov r9, r1 adds r0, r2, 0 str r3, [sp] lsls r0, 24 lsrs r0, 24 movs r7, 0x1 movs r1, 0x1 mov r8, r1 movs r2, 0x1 str r2, [sp, 0x4] str r1, [sp, 0x8] bl sub_8092354 movs r2, 0 mov r10, r2 lsls r0, 24 cmp r0, 0 bne _0806E8E6 movs r0, 0x1 mov r10, r0 _0806E8E6: adds r0, r6, 0 movs r1, 0x11 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0806E92C ldr r5, [r6, 0x70] adds r0, r6, 0 bl sub_8070A58 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 movs r1, 0x1 adds r2, r4, 0 bl sub_8071ACC lsls r0, 24 lsrs r0, 24 cmp r4, 0 beq _0806E916 movs r7, 0x2 _0806E916: cmp r0, 0 beq _0806E92C adds r0, r6, 0 bl sub_80428B0 ldr r0, _0806EADC ldr r2, [r0] adds r0, r6, 0 mov r1, r9 bl sub_80522F4 _0806E92C: adds r0, r6, 0 movs r1, 0x22 bl sub_8071824 lsls r0, 24 cmp r0, 0 bne _0806E948 adds r0, r6, 0 movs r1, 0x4B bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0806E98E _0806E948: ldr r2, [r6, 0x70] movs r4, 0 ldr r0, [sp, 0x30] cmp r0, 0x20 bgt _0806E95A mov r1, r10 cmp r1, 0 bne _0806E95A movs r4, 0x1 _0806E95A: movs r1, 0x80 lsls r1, 1 adds r0, r2, 0 adds r2, r4, 0 bl sub_8071ACC lsls r0, 24 lsrs r1, r0, 24 cmp r4, 0 beq _0806E978 lsls r0, r7, 1 adds r7, r0, r7 mov r2, r8 lsls r2, 1 mov r8, r2 _0806E978: cmp r1, 0 beq _0806E98E adds r0, r6, 0 bl sub_80428C4 ldr r0, _0806EAE0 ldr r2, [r0] adds r0, r6, 0 mov r1, r9 bl sub_80522F4 _0806E98E: adds r0, r6, 0 movs r1, 0x30 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0806E9AC mov r0, r10 cmp r0, 0 bne _0806E9AC lsls r0, r7, 1 adds r7, r0, r7 mov r1, r8 lsls r1, 1 mov r8, r1 _0806E9AC: ldr r0, [r6, 0x70] ldrb r0, [r0, 0x6] movs r4, 0x1 cmp r0, 0 beq _0806E9B8 movs r4, 0 _0806E9B8: adds r0, r6, 0 movs r1, 0x38 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0806E9EA mov r2, r10 cmp r2, 0x1 bne _0806E9EA ldr r0, _0806EAE4 ldr r0, [r0] ldr r1, _0806EAE8 adds r0, r1 adds r0, r4 ldrb r0, [r0] cmp r0, 0 beq _0806E9EA lsls r0, r7, 4 subs r7, r0, r7 mov r2, r8 lsls r0, r2, 2 add r0, r8 lsls r0, 1 mov r8, r0 _0806E9EA: adds r0, r6, 0 movs r1, 0x3F bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0806EA1C mov r0, r10 cmp r0, 0x1 bne _0806EA1C ldr r0, _0806EAE4 ldr r0, [r0] ldr r1, _0806EAEC adds r0, r1 adds r0, r4 ldrb r0, [r0] cmp r0, 0 beq _0806EA1C lsls r0, r7, 4 subs r7, r0, r7 mov r2, r8 lsls r0, r2, 2 add r0, r8 lsls r0, 1 mov r8, r0 _0806EA1C: mov r0, r9 movs r1, 0x6 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0806EA38 mov r0, r10 cmp r0, 0 bne _0806EA38 lsls r7, 2 mov r1, r8 lsls r0, r1, 2 add r8, r0 _0806EA38: mov r0, r9 movs r1, 0x34 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0806EA90 mov r2, r10 cmp r2, 0 bne _0806EA90 mov r0, r9 ldr r5, [r0, 0x70] bl sub_8070A58 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 movs r1, 0x8 adds r2, r4, 0 bl sub_8071ACC lsls r0, 24 lsrs r1, r0, 24 cmp r4, 0 beq _0806EA7A ldr r2, [sp, 0x4] lsls r0, r2, 1 adds r2, r0, r2 str r2, [sp, 0x4] ldr r0, [sp, 0x8] lsls r0, 1 str r0, [sp, 0x8] _0806EA7A: cmp r1, 0 beq _0806EA90 mov r0, r9 bl sub_8042940 ldr r0, _0806EAF0 ldr r2, [r0] adds r0, r6, 0 mov r1, r9 bl sub_80522F4 _0806EA90: ldr r1, [sp] ldr r0, [r1] muls r0, r7 str r0, [r1] ldr r2, [sp, 0x2C] ldr r0, [r2] ldr r1, [sp, 0x4] muls r0, r1 str r0, [r2] mov r2, r8 cmp r2, 0x1 beq _0806EAB6 ldr r1, [sp] ldr r0, [r1] mov r1, r8 bl __divsi3 ldr r2, [sp] str r0, [r2] _0806EAB6: ldr r0, [sp, 0x8] cmp r0, 0x1 beq _0806EACA ldr r1, [sp, 0x2C] ldr r0, [r1] ldr r1, [sp, 0x8] bl __divsi3 ldr r2, [sp, 0x2C] str r0, [r2] _0806EACA: add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806EADC: .4byte gUnknown_80FEE04 _0806EAE0: .4byte gUnknown_80FEE2C _0806EAE4: .4byte gUnknown_203B418 _0806EAE8: .4byte 0x000037fa _0806EAEC: .4byte 0x000037f8 _0806EAF0: .4byte gUnknown_80FEE54 thumb_func_end sub_806E8B0 thumb_func_start sub_806EAF4 sub_806EAF4: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8C str r0, [sp, 0x70] mov r9, r1 adds r7, r3, 0 ldr r0, [sp, 0xB8] ldr r1, [sp, 0xBC] lsls r2, 24 lsrs r2, 24 str r2, [sp, 0x74] lsls r0, 16 lsrs r4, r0, 16 lsls r1, 24 lsrs r1, 24 str r1, [sp, 0x78] ldr r0, [sp, 0x70] ldr r0, [r0, 0x70] mov r10, r0 mov r1, r9 ldr r1, [r1, 0x70] str r1, [sp, 0x7C] adds r0, r2, 0 bl sub_8092354 movs r2, 0 str r2, [sp, 0x80] lsls r0, 24 cmp r0, 0 bne _0806EB3A movs r3, 0x1 str r3, [sp, 0x80] _0806EB3A: bl sub_806F500 mov r6, r10 ldrb r0, [r6, 0x7] cmp r0, 0 bne _0806EB72 movs r0, 0x9E lsls r0, 1 add r0, r10 ldr r0, [r0] bl sub_8094450 adds r1, r0, 0 cmp r1, 0 bne _0806EB72 movs r0, 0x1 ldr r2, [sp, 0xB0] str r0, [r2] str r1, [r2, 0x4] movs r0, 0x2 str r0, [r2, 0x8] add r3, sp, 0x74 ldrb r3, [r3] strb r3, [r2, 0xC] strb r1, [r2, 0xD] strb r1, [r2, 0xE] strb r1, [r2, 0xF] b _0806F294 _0806EB72: ldr r0, _0806EBA4 cmp r4, r0 bne _0806EBA8 mov r0, r9 movs r1, 0x35 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0806EBA8 movs r0, 0x1 ldr r6, [sp, 0xB0] str r0, [r6] movs r1, 0 str r1, [r6, 0x4] movs r0, 0x2 str r0, [r6, 0x8] add r0, sp, 0x74 ldrb r0, [r0] strb r0, [r6, 0xC] strb r1, [r6, 0xD] strb r1, [r6, 0xE] strb r1, [r6, 0xF] b _0806F294 .align 2, 0 _0806EBA4: .4byte 0x00000163 _0806EBA8: add r1, sp, 0x74 ldrb r2, [r1] ldr r1, [sp, 0xB0] strb r2, [r1, 0xC] ldr r1, _0806EDA4 ldr r0, [r1] movs r2, 0x9A lsls r2, 1 adds r0, r2 add r3, sp, 0x74 ldrb r3, [r3] strb r3, [r0] ldr r2, [r1] movs r6, 0x9C lsls r6, 1 adds r0, r2, r6 ldr r1, [sp, 0x80] str r1, [r0] lsls r1, 1 mov r0, r10 adds r0, 0x1C adds r0, r1 movs r3, 0 ldrsh r4, [r0, r3] mov r8, r1 ldr r6, [sp, 0x78] cmp r6, 0 beq _0806EBF8 ldr r0, [sp, 0x74] cmp r0, 0x2 bne _0806EBF8 mov r1, r10 movs r3, 0x28 ldrsh r0, [r1, r3] adds r4, r0 ldrh r1, [r1, 0x28] movs r6, 0xA2 lsls r6, 1 adds r0, r2, r6 strh r1, [r0] _0806EBF8: mov r0, r10 movs r2, 0x4 ldrsh r1, [r0, r2] ldr r0, _0806EDA8 cmp r1, r0 bne _0806EC06 adds r4, 0x2 _0806EC06: movs r0, 0xD1 lsls r0, 1 cmp r1, r0 bne _0806EC10 subs r4, 0x2 _0806EC10: ldr r0, _0806EDAC cmp r1, r0 bne _0806EC18 subs r4, 0x2 _0806EC18: cmp r4, 0 bge _0806EC1E movs r4, 0 _0806EC1E: cmp r4, 0x14 ble _0806EC24 movs r4, 0x14 _0806EC24: ldr r6, _0806EDA4 ldr r0, [r6] movs r3, 0x9F lsls r3, 1 adds r0, r3 strb r4, [r0] ldr r1, [r6] mov r5, r10 adds r5, 0x14 ldr r0, [sp, 0x80] adds r2, r5, r0 ldrb r0, [r2] adds r0, r7 adds r3, 0x2 adds r1, r3 strh r0, [r1] ldrb r0, [r2] adds r0, r7 lsls r0, 8 ldr r2, _0806EDB0 lsls r1, r4, 2 adds r1, r2 ldr r1, [r1] bl sub_8009DA4 adds r2, r0, 0 ldr r0, [sp, 0x80] lsls r4, r0, 2 mov r0, r10 adds r0, 0x2C adds r0, r4 ldr r1, [r0] adds r0, r2, 0 bl sub_8009DA4 adds r2, r0, 0 str r5, [sp, 0x88] cmp r2, 0 bge _0806EC74 adds r0, 0xFF _0806EC74: asrs r0, 8 str r0, [sp, 0x8] ldr r0, [sp, 0x7C] adds r0, 0x20 add r0, r8 movs r1, 0 ldrsh r3, [r0, r1] ldr r2, [sp, 0x80] cmp r2, 0 bne _0806ECA0 ldr r0, [sp, 0x7C] adds r0, 0xC0 ldrb r0, [r0] cmp r0, 0x6 bne _0806ECA0 ldr r0, [r6] movs r6, 0xBD lsls r6, 1 adds r1, r0, r6 movs r0, 0x1 strb r0, [r1] adds r3, 0x1 _0806ECA0: ldr r0, [sp, 0x7C] movs r2, 0x4 ldrsh r1, [r0, r2] ldr r0, _0806EDA8 cmp r1, r0 bne _0806ECAE subs r3, 0x2 _0806ECAE: movs r0, 0xD1 lsls r0, 1 cmp r1, r0 bne _0806ECB8 adds r3, 0x2 _0806ECB8: ldr r0, _0806EDAC cmp r1, r0 bne _0806ECC0 subs r3, 0x2 _0806ECC0: cmp r3, 0 bge _0806ECC6 movs r3, 0 _0806ECC6: cmp r3, 0x14 ble _0806ECCC movs r3, 0x14 _0806ECCC: ldr r5, _0806EDA4 ldr r0, [r5] ldr r6, _0806EDB4 adds r0, r6 strb r3, [r0] ldr r2, [r5] ldr r0, [sp, 0x7C] adds r0, 0x16 ldr r1, [sp, 0x80] adds r0, r1 ldrb r1, [r0] adds r6, 0x3 adds r2, r6 strh r1, [r2] ldrb r0, [r0] lsls r0, 8 ldr r2, _0806EDB8 lsls r1, r3, 2 adds r1, r2 ldr r1, [r1] bl sub_8009DA4 adds r2, r0, 0 ldr r0, [sp, 0x7C] adds r0, 0x34 adds r0, r4 ldr r1, [r0] adds r0, r2, 0 bl sub_8009DA4 cmp r0, 0 bge _0806ED0E adds r0, 0xFF _0806ED0E: asrs r0, 8 str r0, [sp, 0xC] movs r0, 0x64 bl sub_8084100 str r0, [sp, 0x84] ldr r0, [sp, 0x80] cmp r0, 0 bne _0806EDC8 ldr r0, [sp, 0x70] movs r1, 0x13 bl sub_8046CB0 lsls r0, 24 cmp r0, 0 beq _0806ED4A ldr r2, _0806EDBC movs r3, 0 ldrsh r1, [r2, r3] ldr r0, [sp, 0x8] adds r0, r1 str r0, [sp, 0x8] ldr r1, [r5] movs r6, 0xB0 lsls r6, 1 adds r1, r6 ldrb r0, [r2] ldrb r2, [r1] adds r0, r2 strb r0, [r1] _0806ED4A: ldr r0, [sp, 0x70] movs r1, 0x2B bl sub_8046CB0 lsls r0, 24 cmp r0, 0 beq _0806ED74 ldr r2, _0806EDC0 movs r3, 0 ldrsh r1, [r2, r3] ldr r0, [sp, 0x8] adds r0, r1 str r0, [sp, 0x8] ldr r1, [r5] movs r6, 0xB0 lsls r6, 1 adds r1, r6 ldrb r0, [r2] ldrb r2, [r1] adds r0, r2 strb r0, [r1] _0806ED74: ldr r3, [sp, 0x78] cmp r3, 0 beq _0806EE4A mov r0, r9 movs r1, 0x1E bl sub_8046CB0 lsls r0, 24 cmp r0, 0 beq _0806EE4A ldr r2, _0806EDC4 movs r6, 0 ldrsh r1, [r2, r6] ldr r0, [sp, 0xC] adds r0, r1 str r0, [sp, 0xC] ldr r0, [r5] movs r3, 0xB1 lsls r3, 1 adds r1, r0, r3 ldrb r0, [r2] ldrb r6, [r1] adds r0, r6 b _0806EE48 .align 2, 0 _0806EDA4: .4byte gUnknown_203B418 _0806EDA8: .4byte 0x000001a1 _0806EDAC: .4byte 0x000001a3 _0806EDB0: .4byte gUnknown_80F504C _0806EDB4: .4byte 0x0000013f _0806EDB8: .4byte gUnknown_80F50A0 _0806EDBC: .4byte gUnknown_810AC60 _0806EDC0: .4byte gUnknown_810AC68 _0806EDC4: .4byte gUnknown_810AC64 _0806EDC8: ldr r0, [sp, 0x78] cmp r0, 0 beq _0806EDF6 mov r0, r9 movs r1, 0x22 bl sub_8046CB0 lsls r0, 24 cmp r0, 0 beq _0806EDF6 ldr r2, _0806EEF8 movs r3, 0 ldrsh r1, [r2, r3] ldr r0, [sp, 0xC] adds r0, r1 str r0, [sp, 0xC] ldr r0, [r5] ldr r6, _0806EEFC adds r1, r0, r6 ldrb r0, [r2] ldrb r2, [r1] adds r0, r2 strb r0, [r1] _0806EDF6: ldr r0, [sp, 0x70] movs r1, 0x21 bl sub_8046CB0 lsls r0, 24 cmp r0, 0 beq _0806EE20 ldr r2, _0806EF00 movs r3, 0 ldrsh r1, [r2, r3] ldr r0, [sp, 0x8] adds r0, r1 str r0, [sp, 0x8] ldr r0, _0806EF04 ldr r0, [r0] ldr r6, _0806EF08 adds r1, r0, r6 ldrb r0, [r2] ldrb r2, [r1] adds r0, r2 strb r0, [r1] _0806EE20: ldr r0, [sp, 0x70] movs r1, 0x2B bl sub_8046CB0 lsls r0, 24 cmp r0, 0 beq _0806EE4A ldr r2, _0806EF0C movs r3, 0 ldrsh r1, [r2, r3] ldr r0, [sp, 0x8] adds r0, r1 str r0, [sp, 0x8] ldr r0, _0806EF04 ldr r0, [r0] ldr r6, _0806EF08 adds r1, r0, r6 ldrb r0, [r2] ldrb r2, [r1] adds r0, r2 _0806EE48: strb r0, [r1] _0806EE4A: ldr r0, _0806EF04 ldr r2, [r0] movs r3, 0xA3 lsls r3, 1 adds r1, r2, r3 add r0, sp, 0x8 ldrh r0, [r0] strh r0, [r1] movs r6, 0xA4 lsls r6, 1 adds r1, r2, r6 add r4, sp, 0xC ldrh r0, [r4] strh r0, [r1] ldr r0, [sp, 0x8] cmp r0, 0 bge _0806EE70 movs r0, 0 str r0, [sp, 0x8] _0806EE70: ldr r1, _0806EF10 ldr r0, [sp, 0x8] cmp r0, r1 ble _0806EE7C ldr r0, _0806EF14 str r0, [sp, 0x8] _0806EE7C: movs r3, 0xA8 lsls r3, 1 add r3, r10 ldrh r2, [r3] ldr r1, _0806EF18 adds r0, r1, 0 ands r0, r2 strh r0, [r3] movs r2, 0xA7 lsls r2, 1 add r2, r10 ldrh r0, [r2] ands r1, r0 strh r1, [r2] str r4, [sp] ldr r0, [sp, 0x84] str r0, [sp, 0x4] ldr r0, [sp, 0x70] mov r1, r9 ldr r2, [sp, 0x74] add r3, sp, 0x8 bl sub_806E8B0 add r5, sp, 0x10 ldr r1, [sp, 0x8] ldr r0, [sp, 0xC] subs r1, r0 adds r0, r5, 0 bl sub_800A020 add r4, sp, 0x18 adds r0, r4, 0 movs r1, 0x8 bl sub_800A020 adds r0, r5, 0 adds r1, r5, 0 adds r2, r4, 0 bl sub_800A3F0 mov r1, r10 ldrb r6, [r1, 0x6] mov r8, r5 adds r7, r4, 0 cmp r6, 0 bne _0806EF20 ldrb r1, [r1, 0x9] adds r0, r7, 0 bl sub_800A020 str r6, [sp, 0x20] ldr r0, _0806EF1C add r2, sp, 0x20 str r0, [r2, 0x4] adds r0, r7, 0 adds r1, r7, 0 bl sub_800A34C mov r2, r10 ldrb r0, [r2, 0x9] lsls r0, 1 b _0806EF60 .align 2, 0 _0806EEF8: .4byte gUnknown_810AC66 _0806EEFC: .4byte 0x00000163 _0806EF00: .4byte gUnknown_810AC62 _0806EF04: .4byte gUnknown_203B418 _0806EF08: .4byte 0x00000161 _0806EF0C: .4byte gUnknown_810AC68 _0806EF10: .4byte 0x000003e6 _0806EF14: .4byte 0x000003e7 _0806EF18: .4byte 0x0000feff _0806EF1C: .4byte 0x0000aaaa _0806EF20: ldr r3, [sp, 0x88] ldr r6, [sp, 0x80] adds r0, r3, r6 ldrb r0, [r0] str r0, [sp, 0x28] movs r0, 0x1 str r0, [sp, 0x2C] add r3, sp, 0x28 add r0, sp, 0x2C str r0, [sp] ldr r0, [sp, 0x84] str r0, [sp, 0x4] ldr r0, [sp, 0x70] mov r1, r9 ldr r2, [sp, 0x74] bl sub_806E8B0 ldr r1, [sp, 0x28] adds r0, r7, 0 bl sub_800A020 add r4, sp, 0x20 adds r0, r4, 0 movs r1, 0x3 bl sub_800A020 adds r0, r7, 0 adds r1, r7, 0 adds r2, r4, 0 bl sub_800A3F0 ldr r0, [sp, 0x28] _0806EF60: movs r1, 0x3 bl __divsi3 adds r6, r0, 0 add r5, sp, 0x30 adds r0, r5, 0 mov r1, r8 adds r2, r7, 0 bl sub_800A6D0 ldr r4, _0806F098 ldr r0, [r4] movs r1, 0xA5 lsls r1, 1 adds r0, r1 movs r2, 0 mov r8, r2 strh r6, [r0] adds r0, r5, 0 bl sub_800A048 ldr r1, [r4] movs r3, 0xA6 lsls r3, 1 adds r1, r3 strh r0, [r1] ldr r0, [sp, 0x30] ldr r1, [sp, 0x34] str r0, [sp, 0x38] str r1, [sp, 0x3C] str r0, [sp, 0x48] str r1, [sp, 0x4C] add r6, sp, 0x38 adds r0, r6, 0 adds r1, r6, 0 adds r2, r6, 0 bl sub_800A34C mov r0, r8 str r0, [sp, 0x40] ldr r0, _0806F09C add r5, sp, 0x40 str r0, [r5, 0x4] adds r0, r6, 0 adds r1, r6, 0 adds r2, r5, 0 bl sub_800A34C adds r0, r5, 0 movs r1, 0x2 bl sub_800A020 add r4, sp, 0x48 adds r0, r4, 0 adds r1, r4, 0 adds r2, r5, 0 bl sub_800A34C ldr r1, [sp, 0xC] adds r0, r5, 0 bl sub_800A020 adds r0, r4, 0 adds r1, r4, 0 adds r2, r5, 0 bl sub_800A6F0 adds r0, r5, 0 movs r1, 0xA bl sub_800A020 adds r0, r4, 0 adds r1, r4, 0 adds r2, r5, 0 bl sub_800A6D0 add r5, sp, 0x50 adds r0, r5, 0 adds r1, r6, 0 adds r2, r4, 0 bl sub_800A6D0 ldr r4, _0806F0A0 adds r0, r4, 0 adds r1, r5, 0 bl sub_800A2F0 lsls r0, 24 mov r8, r5 cmp r0, 0 beq _0806F01E ldr r0, [r4] ldr r1, [r4, 0x4] str r0, [sp, 0x50] str r1, [sp, 0x54] _0806F01E: ldr r4, _0806F0A4 mov r0, r8 adds r1, r4, 0 bl sub_800A2F0 lsls r0, 24 cmp r0, 0 beq _0806F036 ldr r0, [r4] ldr r1, [r4, 0x4] str r0, [sp, 0x50] str r1, [sp, 0x54] _0806F036: add r4, sp, 0x58 ldr r1, [sp, 0xB0] str r1, [sp] adds r0, r4, 0 ldr r1, [sp, 0x70] mov r2, r9 ldr r3, [sp, 0x74] bl sub_806E100 lsls r0, 24 lsrs r5, r0, 24 adds r7, r4, 0 ldr r2, [sp, 0x74] cmp r2, 0x2 bne _0806F0BC mov r0, r9 bl sub_807723C lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _0806F0BC ldr r3, [sp, 0x7C] movs r6, 0xA9 lsls r6, 1 adds r1, r3, r6 ldrb r0, [r1] cmp r0, 0 bne _0806F0BC ldr r0, [sp, 0x78] cmp r0, 0 beq _0806F118 movs r0, 0x1 strb r0, [r1] ldr r0, _0806F0A8 mov r1, r9 movs r2, 0 bl sub_8045B94 cmp r4, 0x1 bne _0806F0B0 ldr r0, _0806F0AC ldr r2, [r0] ldr r0, [sp, 0x70] mov r1, r9 bl sub_80522F4 b _0806F0BC .align 2, 0 _0806F098: .4byte gUnknown_203B418 _0806F09C: .4byte 0x00000ccc _0806F0A0: .4byte gUnknown_8106F24 _0806F0A4: .4byte gUnknown_8106F04 _0806F0A8: .4byte gUnknown_202DFE8 _0806F0AC: .4byte gUnknown_80FAE00 _0806F0B0: ldr r0, _0806F15C ldr r2, [r0] ldr r0, [sp, 0x70] mov r1, r9 bl sub_80522F4 _0806F0BC: ldr r1, [sp, 0x78] cmp r1, 0 beq _0806F118 ldr r2, [sp, 0x80] cmp r2, 0 bne _0806F0EE ldr r0, [sp, 0x7C] adds r0, 0xC4 ldrb r4, [r0] cmp r4, 0x1 bne _0806F0EE mov r0, r9 bl sub_8041B74 ldr r2, _0806F160 adds r0, r7, 0 adds r1, r7, 0 bl sub_800A34C ldr r0, _0806F164 ldr r0, [r0] movs r3, 0xB3 lsls r3, 1 adds r0, r3 strb r4, [r0] _0806F0EE: ldr r6, [sp, 0x80] cmp r6, 0x1 bne _0806F118 ldr r0, [sp, 0x7C] adds r0, 0xC4 ldrb r0, [r0] cmp r0, 0x3 bne _0806F118 mov r0, r9 bl sub_8041B5C ldr r2, _0806F160 adds r0, r7, 0 adds r1, r7, 0 bl sub_800A34C ldr r0, _0806F164 ldr r0, [r0] ldr r1, _0806F168 adds r0, r1 strb r6, [r0] _0806F118: mov r0, r9 movs r1, 0xC bl sub_8071824 lsls r0, 24 cmp r0, 0 bne _0806F1F4 mov r0, r9 movs r1, 0x13 bl sub_8071824 lsls r0, 24 cmp r0, 0 bne _0806F1F4 mov r3, r10 ldrb r0, [r3, 0x6] ldr r4, [sp, 0xAC] cmp r0, 0 beq _0806F140 movs r4, 0 _0806F140: mov r0, r10 adds r0, 0xDC ldrb r0, [r0] cmp r0, 0x4 bne _0806F170 ldr r4, _0806F16C ldr r0, _0806F164 ldr r0, [r0] movs r6, 0xB4 lsls r6, 1 adds r0, r6 movs r1, 0x1 strb r1, [r0] b _0806F1DA .align 2, 0 _0806F15C: .4byte gUnknown_80FADD8 _0806F160: .4byte gUnknown_8106F1C _0806F164: .4byte gUnknown_203B418 _0806F168: .4byte 0x00000167 _0806F16C: .4byte 0x000003e7 _0806F170: ldr r0, [sp, 0x70] movs r1, 0xC bl sub_8046CB0 lsls r0, 24 cmp r0, 0 beq _0806F194 ldr r0, _0806F2A4 movs r1, 0 ldrsh r0, [r0, r1] adds r4, r0 ldr r0, _0806F2A8 ldr r0, [r0] movs r2, 0xB2 lsls r2, 1 adds r0, r2 movs r1, 0x1 strb r1, [r0] _0806F194: mov r0, r9 movs r1, 0xD bl sub_8046CB0 lsls r0, 24 cmp r0, 0 beq _0806F1B6 ldr r0, _0806F2A4 movs r3, 0 ldrsh r0, [r0, r3] adds r4, r0 ldr r0, _0806F2A8 ldr r0, [r0] ldr r6, _0806F2AC adds r1, r0, r6 movs r0, 0x1 strb r0, [r1] _0806F1B6: cmp r5, 0 beq _0806F1DA ldr r0, [sp, 0x70] movs r1, 0x1 bl sub_80718D8 lsls r0, 24 cmp r0, 0 beq _0806F1DA ldr r0, _0806F2B0 movs r1, 0 ldrsh r4, [r0, r1] ldr r0, _0806F2A8 ldr r0, [r0] ldr r2, _0806F2B4 adds r1, r0, r2 movs r0, 0x1 strb r0, [r1] _0806F1DA: movs r0, 0x64 bl sub_8084100 cmp r0, r4 bge _0806F1F4 ldr r2, _0806F2B8 adds r0, r7, 0 adds r1, r7, 0 bl sub_800A34C movs r0, 0x1 ldr r3, [sp, 0xB0] strb r0, [r3, 0xD] _0806F1F4: mov r0, r8 bl sub_800A048 ldr r5, _0806F2A8 ldr r1, [r5] movs r6, 0xAA lsls r6, 1 adds r1, r6 str r0, [r1] mov r0, r8 mov r1, r8 adds r2, r7, 0 bl sub_800A34C ldr r0, [r5] movs r1, 0xAE lsls r1, 1 adds r0, r1 ldr r2, [sp, 0xB4] str r2, [r0] add r4, sp, 0x60 adds r0, r4, 0 adds r1, r2, 0 bl sub_800A088 mov r0, r8 mov r1, r8 adds r2, r4, 0 bl sub_800A34C mov r0, r8 bl sub_800A048 ldr r1, [r5] movs r3, 0xA8 lsls r3, 1 adds r1, r3 str r0, [r1] movs r0, 0x80 lsls r0, 7 bl sub_8084100 movs r6, 0 str r6, [sp, 0x58] movs r1, 0xE0 lsls r1, 8 adds r0, r1 str r0, [r7, 0x4] mov r0, r8 mov r1, r8 adds r2, r7, 0 bl sub_800A34C add r4, sp, 0x68 adds r0, r4, 0 movs r1, 0x64 bl sub_800A020 adds r0, r7, 0 adds r1, r4, 0 adds r2, r7, 0 bl sub_800A34C adds r0, r7, 0 bl sub_800A048 ldr r1, [r5] movs r2, 0xAC lsls r2, 1 adds r1, r2 str r0, [r1] mov r0, r8 bl sub_800A048 ldr r3, [sp, 0xB0] str r0, [r3] str r6, [r3, 0x4] cmp r0, 0 bne _0806F294 strb r0, [r3, 0xD] _0806F294: add sp, 0x8C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806F2A4: .4byte gUnknown_80F4DAE _0806F2A8: .4byte gUnknown_203B418 _0806F2AC: .4byte 0x00000165 _0806F2B0: .4byte gUnknown_80F4DB0 _0806F2B4: .4byte 0x00000169 _0806F2B8: .4byte gUnknown_8106F14 thumb_func_end sub_806EAF4 thumb_func_start sub_806F2BC sub_806F2BC: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x14 adds r5, r0, 0 mov r12, r1 ldr r7, [sp, 0x2C] lsls r2, 24 lsrs r4, r2, 24 adds r6, r3, 0 cmp r6, 0 bgt _0806F2D6 movs r6, 0x1 _0806F2D6: ldr r0, _0806F320 cmp r6, r0 ble _0806F2DE adds r6, r0, 0 _0806F2DE: movs r0, 0 mov r8, r0 strb r4, [r7, 0xC] str r7, [sp] add r0, sp, 0x4 adds r1, r5, 0 mov r2, r12 adds r3, r4, 0 bl sub_806E100 add r4, sp, 0xC adds r0, r4, 0 adds r1, r6, 0 bl sub_800A020 adds r0, r4, 0 adds r1, r4, 0 add r2, sp, 0x4 bl sub_800A34C adds r0, r4, 0 bl sub_800A048 str r0, [r7] mov r0, r8 str r0, [r7, 0x4] add sp, 0x14 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806F320: .4byte 0x000003e7 thumb_func_end sub_806F2BC thumb_func_start sub_806F324 sub_806F324: push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x94 mov r8, r0 adds r5, r1, 0 adds r6, r2, 0 lsls r4, r3, 16 asrs r4, 16 add r0, sp, 0x10 bl sub_80457DC add r2, sp, 0x84 str r5, [sp, 0x84] movs r0, 0x2 str r0, [r2, 0x8] movs r0, 0 strb r0, [r2, 0xC] str r6, [r2, 0x4] strb r0, [r2, 0xD] strb r0, [r2, 0xE] strb r0, [r2, 0xF] str r0, [sp] str r4, [sp, 0x4] str r0, [sp, 0x8] str r0, [sp, 0xC] add r0, sp, 0x10 mov r1, r8 movs r3, 0 bl sub_806D010 add sp, 0x94 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_806F324 thumb_func_start sub_806F370 sub_806F370: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x2C mov r10, r0 adds r7, r1, 0 mov r9, r3 ldr r0, [sp, 0x50] ldr r1, [sp, 0x54] ldr r3, [sp, 0x58] lsls r0, 24 lsrs r4, r0, 24 lsls r1, 16 asrs r1, 16 mov r8, r1 adds r5, r2, 0 movs r0, 0x2 str r0, [sp, 0x18] str r3, [sp, 0x14] add r0, sp, 0x10 movs r1, 0 strb r4, [r0, 0xC] strb r1, [r0, 0xD] strb r1, [r0, 0xE] cmp r4, 0 beq _0806F3FC ldr r1, [r7, 0x70] movs r2, 0 lsls r0, r4, 3 mov r3, sp adds r3, 0x20 str r3, [sp, 0x28] ldr r6, _0806F408 mov r12, r6 adds r1, 0x5C adds r0, r4 lsls r3, r0, 2 ldr r4, [sp, 0x28] _0806F3C0: adds r0, r1, r2 ldrb r0, [r0] lsls r0, 1 adds r0, r3 add r0, r12 movs r6, 0 ldrsh r0, [r0, r6] stm r4!, {r0} adds r2, 0x1 cmp r2, 0x1 ble _0806F3C0 adds r0, r7, 0 movs r1, 0x35 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0806F3FC ldr r2, _0806F40C ldr r1, [sp, 0x28] ldr r0, [r1, 0x4] lsls r0, 2 ldr r1, [sp, 0x20] lsls r1, 4 adds r0, r1 adds r0, r2 ldr r0, [r0] cmp r0, 0x3 beq _0806F3FC movs r5, 0 _0806F3FC: str r5, [sp, 0x10] cmp r5, 0 bne _0806F410 add r1, sp, 0x10 movs r0, 0x1 b _0806F414 .align 2, 0 _0806F408: .4byte gUnknown_80F522C _0806F40C: .4byte gUnknown_80F54B4 _0806F410: add r1, sp, 0x10 movs r0, 0 _0806F414: strb r0, [r1, 0xF] mov r3, r9 str r3, [sp] mov r6, r8 str r6, [sp, 0x4] ldr r0, [sp, 0x5C] str r0, [sp, 0x8] ldr r0, [sp, 0x60] str r0, [sp, 0xC] mov r0, r10 adds r1, r7, 0 add r2, sp, 0x10 movs r3, 0 bl sub_806D010 ldr r0, [sp, 0x4C] cmp r0, 0 beq _0806F440 add r0, sp, 0x10 ldrb r0, [r0, 0xF] ldr r1, [sp, 0x4C] strb r0, [r1] _0806F440: add sp, 0x2C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_806F370 thumb_func_start sub_806F450 sub_806F450: push {r4-r6,lr} adds r5, r0, 0 ldr r4, [r1, 0x70] adds r6, r4, 0 ldrb r0, [r4, 0x8] cmp r0, 0 beq _0806F47A adds r0, r5, 0 bl sub_80450F8 cmp r0, 0x1 bne _0806F47A ldr r0, [r5, 0x70] ldrb r0, [r0, 0x6] cmp r0, 0 beq _0806F476 movs r0, 0x2 strb r0, [r4, 0x8] b _0806F47A _0806F476: movs r0, 0x3 strb r0, [r6, 0x8] _0806F47A: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_806F450 thumb_func_start sub_806F480 sub_806F480: push {lr} lsls r1, 24 lsrs r1, 24 ldr r2, [r0, 0x70] adds r3, r2, 0 ldrb r0, [r2, 0x8] cmp r0, 0 beq _0806F49E cmp r1, 0 beq _0806F49A movs r0, 0x2 strb r0, [r2, 0x8] b _0806F49E _0806F49A: movs r0, 0x3 strb r0, [r3, 0x8] _0806F49E: pop {r0} bx r0 thumb_func_end sub_806F480 thumb_func_start sub_806F4A4 sub_806F4A4: push {r4-r6,lr} lsls r1, 24 lsrs r4, r1, 24 ldr r5, [r0, 0x70] movs r1, 0xE bl sub_8071858 lsls r0, 24 cmp r0, 0 beq _0806F4CE cmp r4, 0x1 beq _0806F4C0 cmp r4, 0x7 bne _0806F4CE _0806F4C0: adds r0, r5, 0 adds r0, 0xF5 ldrb r0, [r0] cmp r0, 0 bne _0806F4CE _0806F4CA: movs r0, 0 b _0806F4F6 _0806F4CE: movs r2, 0 lsls r0, r4, 3 ldr r6, _0806F4FC adds r3, r5, 0 adds r3, 0x5C adds r0, r4 lsls r1, r0, 2 _0806F4DC: adds r0, r3, r2 ldrb r0, [r0] lsls r0, 1 adds r0, r1 adds r0, r6 movs r4, 0 ldrsh r0, [r0, r4] cmp r0, 0 beq _0806F4CA adds r2, 0x1 cmp r2, 0x1 ble _0806F4DC movs r0, 0x1 _0806F4F6: pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0806F4FC: .4byte gUnknown_80F522C thumb_func_end sub_806F4A4 thumb_func_start sub_806F500 sub_806F500: ldr r0, _0806F5F4 ldr r0, [r0] mov r12, r0 movs r0, 0x9A lsls r0, 1 add r0, r12 movs r1, 0 strb r1, [r0] str r1, [r0, 0x4] strb r1, [r0, 0x8] strb r1, [r0, 0x9] movs r2, 0xA strb r2, [r0, 0xA] strb r2, [r0, 0xB] movs r2, 0 movs r3, 0x1 strh r3, [r0, 0xC] strh r3, [r0, 0xE] strh r1, [r0, 0x10] strh r1, [r0, 0x14] strh r1, [r0, 0x12] strh r1, [r0, 0x16] strh r1, [r0, 0x18] str r1, [r0, 0x1C] str r1, [r0, 0x24] str r1, [r0, 0x28] movs r0, 0xB0 lsls r0, 1 add r0, r12 strb r2, [r0] ldr r0, _0806F5F8 add r0, r12 strb r2, [r0] movs r0, 0xB1 lsls r0, 1 add r0, r12 strb r2, [r0] ldr r0, _0806F5FC add r0, r12 strb r2, [r0] movs r0, 0xB2 lsls r0, 1 add r0, r12 strb r2, [r0] ldr r0, _0806F600 add r0, r12 strb r2, [r0] movs r0, 0xB3 lsls r0, 1 add r0, r12 strb r2, [r0] ldr r0, _0806F604 add r0, r12 strb r2, [r0] movs r0, 0xB4 lsls r0, 1 add r0, r12 strb r2, [r0] ldr r0, _0806F608 add r0, r12 strb r2, [r0] movs r0, 0xB5 lsls r0, 1 add r0, r12 strb r2, [r0] movs r0, 0xB6 lsls r0, 1 add r0, r12 strb r2, [r0] ldr r0, _0806F60C add r0, r12 strb r2, [r0] ldr r0, _0806F610 add r0, r12 strb r2, [r0] movs r0, 0xB7 lsls r0, 1 add r0, r12 strb r2, [r0] ldr r0, _0806F614 add r0, r12 strb r2, [r0] movs r0, 0xB8 lsls r0, 1 add r0, r12 strb r2, [r0] ldr r0, _0806F618 add r0, r12 strb r2, [r0] movs r0, 0xB9 lsls r0, 1 add r0, r12 strb r2, [r0] ldr r0, _0806F61C add r0, r12 strb r2, [r0] movs r0, 0xBA lsls r0, 1 add r0, r12 strb r2, [r0] ldr r0, _0806F620 add r0, r12 strb r2, [r0] movs r0, 0xBB lsls r0, 1 add r0, r12 strb r2, [r0] ldr r0, _0806F624 add r0, r12 strb r2, [r0] movs r0, 0xBC lsls r0, 1 add r0, r12 strb r2, [r0] ldr r0, _0806F628 add r0, r12 strb r2, [r0] movs r0, 0xBD lsls r0, 1 add r0, r12 strb r2, [r0] bx lr .align 2, 0 _0806F5F4: .4byte gUnknown_203B418 _0806F5F8: .4byte 0x00000161 _0806F5FC: .4byte 0x00000163 _0806F600: .4byte 0x00000165 _0806F604: .4byte 0x00000167 _0806F608: .4byte 0x00000169 _0806F60C: .4byte 0x0000016b _0806F610: .4byte 0x0000016d _0806F614: .4byte 0x0000016f _0806F618: .4byte 0x00000171 _0806F61C: .4byte 0x00000173 _0806F620: .4byte 0x00000175 _0806F624: .4byte 0x00000177 _0806F628: .4byte 0x00000179 thumb_func_end sub_806F500 thumb_func_start sub_806F62C sub_806F62C: ldr r1, _0806F638 lsls r0, 2 adds r0, r1 ldr r0, [r0] bx lr .align 2, 0 _0806F638: .4byte gUnknown_8106F7C thumb_func_end sub_806F62C thumb_func_start sub_806F63C sub_806F63C: push {lr} ldr r1, _0806F658 ldr r1, [r1] ldr r2, _0806F65C adds r1, r2 ldr r1, [r1, 0x10] cmp r1, r0 bne _0806F652 adds r0, r1, 0 bl sub_803F508 _0806F652: pop {r0} bx r0 .align 2, 0 _0806F658: .4byte gUnknown_203B418 _0806F65C: .4byte 0x000181e8 thumb_func_end sub_806F63C thumb_func_start sub_806F660 sub_806F660: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r6, r0, 0 mov r8, r1 ldr r0, [r6, 0x70] mov r10, r0 ldr r4, [r1, 0x70] movs r1, 0x1 negs r1, r1 mov r9, r1 movs r2, 0x4 ldrsh r0, [r4, r2] bl sub_808DACC lsls r0, 24 lsrs r5, r0, 24 ldr r0, _0806F6C0 ldr r3, [r0] ldr r1, _0806F6C4 adds r0, r3, r1 ldrh r2, [r0] subs r0, r2, 0x4 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bls _0806F702 lsls r0, r2, 16 asrs r1, r0, 16 cmp r1, 0x9 beq _0806F702 cmp r1, 0xF beq _0806F702 adds r0, r2, 0 subs r0, 0x2C lsls r0, 16 lsrs r0, 16 cmp r0, 0x4 bhi _0806F6CC ldr r2, _0806F6C8 adds r0, r3, r2 ldrb r0, [r0] cmp r0, 0 bne _0806F702 b _0806F8FC .align 2, 0 _0806F6C0: .4byte gUnknown_203B418 _0806F6C4: .4byte 0x00003a14 _0806F6C8: .4byte 0x0000065c _0806F6CC: cmp r1, 0x31 bne _0806F6F0 ldr r1, _0806F6EC adds r0, r3, r1 ldrb r0, [r0] cmp r0, 0 bne _0806F6DC b _0806F8FC _0806F6DC: movs r0, 0xCF lsls r0, 1 bl sub_8097900 lsls r0, 24 cmp r0, 0 bne _0806F702 b _0806F8FC .align 2, 0 _0806F6EC: .4byte 0x00000659 _0806F6F0: ldr r2, _0806F834 adds r0, r3, r2 ldrb r0, [r0] bl sub_8090148 lsls r0, 24 cmp r0, 0 bne _0806F702 b _0806F8FC _0806F702: ldr r0, _0806F838 ldr r0, [r0] ldr r3, _0806F83C adds r0, r3 ldrb r0, [r0] cmp r0, 0 beq _0806F712 b _0806F8FC _0806F712: ldrh r1, [r4, 0x2] adds r0, r1, 0 subs r0, 0x90 lsls r0, 16 lsrs r0, 16 cmp r0, 0x2 bls _0806F766 lsls r0, r1, 16 asrs r1, r0, 16 ldr r0, _0806F840 cmp r1, r0 beq _0806F766 subs r0, 0x1 cmp r1, r0 beq _0806F766 adds r0, 0x2 cmp r1, r0 beq _0806F766 adds r0, 0x8A cmp r1, r0 beq _0806F766 adds r0, 0x1 cmp r1, r0 beq _0806F766 adds r0, 0x4 cmp r1, r0 beq _0806F766 subs r0, 0x1 cmp r1, r0 beq _0806F766 adds r0, 0x2 cmp r1, r0 beq _0806F766 subs r0, 0x9 cmp r1, r0 beq _0806F766 adds r0, 0x1 cmp r1, r0 beq _0806F766 adds r0, 0x1 cmp r1, r0 bne _0806F776 _0806F766: movs r1, 0x2 ldrsh r0, [r4, r1] bl sub_808E734 lsls r0, 24 cmp r0, 0 beq _0806F776 b _0806F8FC _0806F776: movs r2, 0x2 ldrsh r0, [r4, r2] bl sub_806F9BC lsls r0, 24 cmp r0, 0 bne _0806F786 b _0806F8FC _0806F786: movs r3, 0x4 ldrsh r1, [r6, r3] mov r2, r8 movs r3, 0x4 ldrsh r0, [r2, r3] subs r1, r0 cmp r1, 0 bge _0806F798 negs r1, r1 _0806F798: cmp r1, 0x1 ble _0806F79E b _0806F8FC _0806F79E: movs r0, 0x6 ldrsh r1, [r6, r0] mov r2, r8 movs r3, 0x6 ldrsh r0, [r2, r3] subs r1, r0 cmp r1, 0 bge _0806F7B0 negs r1, r1 _0806F7B0: cmp r1, 0x1 ble _0806F7B6 b _0806F8FC _0806F7B6: adds r0, r4, 0 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x4A bne _0806F7C2 b _0806F8FC _0806F7C2: adds r0, r4, 0 adds r0, 0xA4 ldrb r0, [r0] cmp r0, 0x1 bne _0806F7CE b _0806F8FC _0806F7CE: mov r0, r8 adds r1, r6, 0 bl sub_8045990 lsls r0, 24 cmp r0, 0 bne _0806F7DE b _0806F8FC _0806F7DE: bl sub_806F910 movs r0, 0xFA lsls r0, 2 bl sub_8084100 adds r7, r0, 0 movs r1, 0x2 ldrsh r0, [r4, r1] bl sub_808DCC0 lsls r0, 16 asrs r4, r0, 16 ldr r0, _0806F844 cmp r4, r0 bne _0806F800 b _0806F8FC _0806F800: adds r0, r6, 0 movs r1, 0x2E bl sub_8046CB0 lsls r0, 24 cmp r0, 0 beq _0806F816 ldr r0, _0806F848 movs r2, 0 ldrsh r0, [r0, r2] adds r4, r0 _0806F816: ldr r0, _0806F84C mov r3, r10 ldrb r1, [r3, 0x9] lsls r1, 1 adds r1, r0 movs r2, 0 ldrsh r0, [r1, r2] adds r4, r0 cmp r7, r4 bge _0806F8FC movs r4, 0 movs r0, 0x6 subs r3, r0, r5 ldr r7, _0806F850 b _0806F856 .align 2, 0 _0806F834: .4byte 0x00000644 _0806F838: .4byte gUnknown_203B418 _0806F83C: .4byte 0x0000065d _0806F840: .4byte 0x0000010d _0806F844: .4byte 0xfffffc19 _0806F848: .4byte gUnknown_80F5008 _0806F84C: .4byte gUnknown_80F5700 _0806F850: .4byte gUnknown_202EE70 _0806F854: adds r4, 0x1 _0806F856: cmp r4, r3 bgt _0806F878 movs r2, 0 cmp r2, r5 bge _0806F872 adds r1, r4, r7 b _0806F86C _0806F864: adds r1, 0x1 adds r2, 0x1 cmp r2, r5 bge _0806F872 _0806F86C: ldrb r0, [r1] cmp r0, 0 beq _0806F864 _0806F872: cmp r2, r5 bne _0806F854 mov r9, r4 _0806F878: movs r0, 0x1 negs r0, r0 cmp r9, r0 beq _0806F8F4 movs r4, 0 ldr r3, _0806F8BC ldr r0, [r3] ldr r2, _0806F8C0 adds r0, r2 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0806F8B4 adds r7, r3, 0 adds r5, r2, 0 movs r2, 0 movs r3, 0x1 _0806F89C: adds r2, 0x64 adds r4, 0x1 cmp r4, 0x3 bgt _0806F8B4 ldr r0, [r7] adds r0, r2, r0 adds r0, r5 ldrb r1, [r0] adds r0, r3, 0 ands r0, r1 cmp r0, 0 bne _0806F89C _0806F8B4: cmp r4, 0x4 beq _0806F8F4 movs r4, 0 b _0806F8C6 .align 2, 0 _0806F8BC: .4byte gUnknown_203B45C _0806F8C0: .4byte 0x00008df8 _0806F8C4: adds r4, 0x1 _0806F8C6: cmp r4, 0x3 bgt _0806F8E2 ldr r0, _0806F8EC ldr r0, [r0] lsls r1, r4, 2 ldr r3, _0806F8F0 adds r0, r3 adds r0, r1 ldr r0, [r0] bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _0806F8C4 _0806F8E2: cmp r4, 0x4 beq _0806F8F4 movs r0, 0x1 b _0806F8FE .align 2, 0 _0806F8EC: .4byte gUnknown_203B418 _0806F8F0: .4byte 0x0001357c _0806F8F4: adds r0, r6, 0 mov r1, r8 bl nullsub_96 _0806F8FC: movs r0, 0 _0806F8FE: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_806F660 thumb_func_start nullsub_96 nullsub_96: bx lr thumb_func_end nullsub_96 thumb_func_start sub_806F910 sub_806F910: push {r4-r7,lr} mov r7, r8 push {r7} movs r5, 0 movs r6, 0 movs r7, 0x40 _0806F91C: ldr r0, _0806F9AC ldr r0, [r0] lsls r1, r6, 2 ldr r2, _0806F9B0 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 adds r1, r6, 0x1 mov r8, r1 cmp r0, 0 beq _0806F98A ldr r0, [r4, 0x70] movs r2, 0x4 ldrsh r0, [r0, r2] bl sub_808DACC lsls r0, 24 lsrs r1, r0, 24 adds r0, r4, 0 adds r0, 0x68 strh r7, [r0] ldr r0, [r4, 0x70] ldr r2, _0806F9B4 adds r0, r2 strb r6, [r0] ldr r0, [r4, 0x70] adds r2, 0x1 adds r0, r2 strb r1, [r0] cmp r1, 0 beq _0806F978 ldr r3, _0806F9B8 movs r2, 0x1 _0806F966: cmp r5, 0x5 bgt _0806F972 adds r0, r5, r3 strb r2, [r0] adds r7, 0x10 adds r5, 0x1 _0806F972: subs r1, 0x1 cmp r1, 0 bne _0806F966 _0806F978: adds r0, r4, 0 bl sub_806CEBC adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_806CCB4 _0806F98A: mov r6, r8 cmp r6, 0x3 ble _0806F91C cmp r5, 0x5 bgt _0806F9A2 ldr r2, _0806F9B8 movs r1, 0 _0806F998: adds r0, r5, r2 strb r1, [r0] adds r5, 0x1 cmp r5, 0x5 ble _0806F998 _0806F9A2: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806F9AC: .4byte gUnknown_203B418 _0806F9B0: .4byte 0x0001357c _0806F9B4: .4byte 0x00000167 _0806F9B8: .4byte gUnknown_202EE70 thumb_func_end sub_806F910 thumb_func_start sub_806F9BC sub_806F9BC: push {r4,r5,lr} sub sp, 0xC lsls r0, 16 asrs r4, r0, 16 ldr r5, _0806FA40 ldr r0, [r5] movs r1, 0xCB lsls r1, 3 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _0806FA3C adds r0, r4, 0 bl sub_808529C lsls r0, 24 cmp r0, 0 beq _0806FA3C cmp r4, 0x97 bne _0806F9F2 ldr r0, [r5] movs r1, 0xCF lsls r1, 3 adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 beq _0806FA3C _0806F9F2: movs r0, 0xCC lsls r0, 1 cmp r4, r0 beq _0806FA3C ldr r0, _0806FA44 cmp r4, r0 beq _0806FA3C ldr r0, _0806FA48 cmp r4, r0 beq _0806FA3C movs r0, 0xD1 lsls r0, 1 cmp r4, r0 beq _0806FA3C ldr r0, _0806FA4C cmp r4, r0 beq _0806FA3C adds r0, r4, 0 bl sub_808DBF4 lsls r0, 24 cmp r0, 0 bne _0806FA50 adds r0, r4, 0 bl sub_808DBA8 lsls r0, 24 lsrs r0, 24 mov r1, sp movs r2, 0 movs r3, 0 bl sub_8092638 mov r0, sp ldrb r0, [r0, 0x4] cmp r0, 0 bne _0806FA50 _0806FA3C: movs r0, 0 b _0806FA52 .align 2, 0 _0806FA40: .4byte gUnknown_203B418 _0806FA44: .4byte 0x00000199 _0806FA48: .4byte 0x000001a1 _0806FA4C: .4byte 0x000001a3 _0806FA50: movs r0, 0x1 _0806FA52: add sp, 0xC pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_806F9BC thumb_func_start sub_806FA5C sub_806FA5C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 mov r8, r0 adds r5, r1, 0 adds r6, r2, 0 adds r0, r5, 0x4 mov r1, r8 adds r1, 0x4 bl sub_80983D8 adds r4, r0, 0 movs r0, 0 mov r10, r0 movs r1, 0 ldrsh r0, [r6, r1] bl sub_808DBA8 lsls r0, 24 lsrs r0, 24 mov r9, r0 adds r0, r5, 0 adds r0, 0x22 mov r2, r10 strb r2, [r0] mov r0, r8 adds r1, r5, 0 bl sub_807A0CC adds r0, r5, 0 adds r1, r4, 0 bl sub_806CE68 ldr r0, _0806FAD4 movs r3, 0 ldrsh r1, [r6, r3] bl sub_808D908 ldr r0, _0806FAD8 ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl sub_8052B8C cmp r0, 0 bne _0806FAE4 movs r4, 0 ldrsh r1, [r6, r4] ldr r0, _0806FADC cmp r1, r0 beq _0806FB28 ldr r0, _0806FAE0 ldr r1, [r0] mov r0, r8 bl sub_80522A8 b _0806FB28 .align 2, 0 _0806FAD4: .4byte gUnknown_202DF98 _0806FAD8: .4byte gUnknown_80F9FE8 _0806FADC: .4byte 0x0000019d _0806FAE0: .4byte gUnknown_80FA004 _0806FAE4: movs r7, 0 ldr r3, _0806FB2C ldr r0, [r3] ldr r2, _0806FB30 adds r0, r2 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0806FB1A mov r12, r3 adds r4, r2, 0 movs r2, 0 movs r3, 0x1 _0806FB00: adds r2, 0x64 adds r7, 0x1 cmp r7, 0x3 bgt _0806FB1A mov r1, r12 ldr r0, [r1] adds r0, r2, r0 adds r0, r4 ldrb r1, [r0] adds r0, r3, 0 ands r0, r1 cmp r0, 0 bne _0806FB00 _0806FB1A: cmp r7, 0x4 bne _0806FB38 ldr r0, _0806FB34 ldr r1, [r0] mov r0, r8 bl sub_80522A8 _0806FB28: movs r0, 0 b _0806FCF0 .align 2, 0 _0806FB2C: .4byte gUnknown_203B45C _0806FB30: .4byte 0x00008df8 _0806FB34: .4byte gUnknown_80FA030 _0806FB38: mov r0, r9 bl sub_8092600 lsls r0, 24 cmp r0, 0 bne _0806FB4E mov r0, r9 bl sub_80925EC movs r2, 0x1 mov r10, r2 _0806FB4E: movs r1, 0xFA lsls r1, 1 adds r0, r5, 0 mov r2, r8 bl sub_8068FE0 ldr r1, _0806FC40 movs r0, 0x64 muls r0, r7 ldr r3, _0806FC44 adds r0, r3 ldr r1, [r1] adds r5, r1, r0 movs r4, 0 movs r0, 0x3 strh r0, [r5] strb r4, [r5, 0x2] ldrh r0, [r6, 0xE] strb r0, [r5, 0x3] movs r0, 0x1 strh r0, [r5, 0x8] adds r0, r5, 0 adds r0, 0x4C movs r1, 0 bl sub_808EC94 ldr r0, [r6, 0x44] str r0, [r5, 0x54] adds r0, r5, 0 adds r0, 0x50 strb r4, [r0] ldr r0, _0806FC48 strh r0, [r5, 0xA] strh r7, [r5, 0xC] ldrh r0, [r6] strh r0, [r5, 0xE] ldr r0, _0806FC4C ldr r0, [r0] ldr r4, _0806FC50 adds r0, r4 ldr r0, [r0] str r0, [r5, 0x4] ldrh r0, [r6, 0x8] strh r0, [r5, 0x10] ldrh r0, [r6, 0x8] strh r0, [r5, 0x12] ldr r0, [r6, 0x14] str r0, [r5, 0x44] ldr r0, [r6, 0x18] str r0, [r5, 0x48] movs r2, 0 adds r7, r6, 0 adds r7, 0x20 adds r4, r6, 0 adds r4, 0xA adds r3, r6, 0 adds r3, 0xC adds r1, r5, 0 adds r1, 0x14 _0806FBC4: adds r0, r4, r2 ldrb r0, [r0] strb r0, [r1] adds r0, r3, r2 ldrb r0, [r0] strb r0, [r1, 0x2] adds r1, 0x1 adds r2, 0x1 cmp r2, 0x1 ble _0806FBC4 ldr r0, [r6, 0x10] str r0, [r5, 0x18] adds r1, r5, 0 adds r1, 0x1C adds r0, r7, 0 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldr r0, [r6, 0x1C] str r0, [r5, 0x40] adds r4, r5, 0 adds r4, 0x58 movs r1, 0 ldrsh r0, [r6, r1] bl sub_808D994 adds r1, r0, 0 adds r0, r4, 0 movs r2, 0xA bl sub_8092310 bl sub_8097848 movs r2, 0 ldrsh r0, [r6, r2] movs r3, 0x4 ldrsh r1, [r6, r3] movs r3, 0x6 ldrsh r2, [r6, r3] add r3, sp, 0xC str r3, [sp] movs r3, 0 str r3, [sp, 0x4] movs r3, 0x1 str r3, [sp, 0x8] adds r3, r5, 0 bl sub_806B8CC lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0 bne _0806FC58 ldr r0, _0806FC54 ldr r1, [r0] mov r0, r8 bl sub_80522A8 strh r7, [r5] b _0806FCEE .align 2, 0 _0806FC40: .4byte gUnknown_203B45C _0806FC44: .4byte 0x00008df8 _0806FC48: .4byte 0x0000ffff _0806FC4C: .4byte gUnknown_203B418 _0806FC50: .4byte 0x00000644 _0806FC54: .4byte gUnknown_80FA058 _0806FC58: bl sub_8083D88 movs r0, 0xA0 movs r1, 0x46 bl sub_803E708 ldr r0, _0806FC78 ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl sub_8052B8C cmp r0, 0x1 bne _0806FC94 b _0806FC88 .align 2, 0 _0806FC78: .4byte gUnknown_80FA090 _0806FC7C: ldr r0, _0806FD00 ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage _0806FC88: adds r0, r4, 0 bl sub_805FBE8 lsls r0, 24 cmp r0, 0 beq _0806FC7C _0806FC94: ldr r4, _0806FD04 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0 bl sub_808D9DC ldr r0, _0806FD08 ldr r1, [r0] mov r0, r8 bl sub_80522A8 mov r0, r10 cmp r0, 0 beq _0806FCD8 bl sub_8085480 adds r1, r0, 0 adds r0, r4, 0 movs r2, 0 bl sub_8045B94 ldr r0, _0806FD0C mov r1, r9 bl sub_8092558 movs r0, 0xCE bl sub_8011988 ldr r0, _0806FD10 ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage _0806FCD8: movs r1, 0 ldrsh r0, [r6, r1] cmp r0, 0x97 bne _0806FCEE ldr r2, _0806FD14 ldr r1, [r2] movs r0, 0x1 strb r0, [r1, 0x4] ldr r1, [r2] movs r0, 0x3 strb r0, [r1, 0x11] _0806FCEE: movs r0, 0x1 _0806FCF0: add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0806FD00: .4byte gUnknown_80FA0C8 _0806FD04: .4byte gUnknown_202DF98 _0806FD08: .4byte gUnknown_80FA0F0 _0806FD0C: .4byte gUnknown_202E628 _0806FD10: .4byte gUnknown_80FA120 _0806FD14: .4byte gUnknown_203B418 thumb_func_end sub_806FA5C thumb_func_start sub_806FD18 sub_806FD18: push {r4-r7,lr} ldr r4, [r0, 0x70] movs r6, 0x1 negs r6, r6 movs r1, 0x4 ldrsh r0, [r4, r1] bl sub_808DACC lsls r0, 24 lsrs r5, r0, 24 movs r2, 0x2 ldrsh r0, [r4, r2] bl sub_806F9BC lsls r0, 24 cmp r0, 0 beq _0806FDEC bl sub_806F910 movs r4, 0 movs r0, 0x6 subs r3, r0, r5 ldr r7, _0806FD48 b _0806FD4E .align 2, 0 _0806FD48: .4byte gUnknown_202EE70 _0806FD4C: adds r4, 0x1 _0806FD4E: cmp r4, r3 bgt _0806FD70 movs r2, 0 cmp r2, r5 bge _0806FD6A adds r1, r4, r7 b _0806FD64 _0806FD5C: adds r1, 0x1 adds r2, 0x1 cmp r2, r5 bge _0806FD6A _0806FD64: ldrb r0, [r1] cmp r0, 0 beq _0806FD5C _0806FD6A: cmp r2, r5 bne _0806FD4C adds r6, r4, 0 _0806FD70: movs r0, 0x1 negs r0, r0 cmp r6, r0 beq _0806FDEC movs r4, 0 ldr r3, _0806FDB4 ldr r0, [r3] ldr r2, _0806FDB8 adds r0, r2 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0806FDAC adds r6, r3, 0 adds r5, r2, 0 movs r2, 0 movs r3, 0x1 _0806FD94: adds r2, 0x64 adds r4, 0x1 cmp r4, 0x3 bgt _0806FDAC ldr r0, [r6] adds r0, r2, r0 adds r0, r5 ldrb r1, [r0] adds r0, r3, 0 ands r0, r1 cmp r0, 0 bne _0806FD94 _0806FDAC: cmp r4, 0x4 beq _0806FDEC movs r4, 0 b _0806FDBE .align 2, 0 _0806FDB4: .4byte gUnknown_203B45C _0806FDB8: .4byte 0x00008df8 _0806FDBC: adds r4, 0x1 _0806FDBE: cmp r4, 0x3 bgt _0806FDDA ldr r0, _0806FDE4 ldr r0, [r0] lsls r1, r4, 2 ldr r2, _0806FDE8 adds r0, r2 adds r0, r1 ldr r0, [r0] bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _0806FDBC _0806FDDA: cmp r4, 0x4 beq _0806FDEC movs r0, 0x1 b _0806FDEE .align 2, 0 _0806FDE4: .4byte gUnknown_203B418 _0806FDE8: .4byte 0x0001357c _0806FDEC: movs r0, 0 _0806FDEE: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_806FD18 thumb_func_start sub_806FDF4 sub_806FDF4: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x60 str r0, [sp, 0x58] mov r10, r1 str r2, [sp, 0x5C] movs r0, 0 mov r9, r0 str r0, [r2] add r0, sp, 0xC bl sub_8069D4C movs r6, 0 ldr r3, _0806FE50 ldr r0, [r3] ldr r2, _0806FE54 adds r0, r2 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0806FE46 adds r5, r3, 0 adds r4, r2, 0 movs r2, 0 movs r3, 0x1 _0806FE2E: adds r2, 0x64 adds r6, 0x1 cmp r6, 0x3 bgt _0806FE46 ldr r0, [r5] adds r0, r2, r0 adds r0, r4 ldrb r1, [r0] adds r0, r3, 0 ands r0, r1 cmp r0, 0 bne _0806FE2E _0806FE46: cmp r6, 0x4 bne _0806FE58 movs r0, 0 b _0806FFF8 .align 2, 0 _0806FE50: .4byte gUnknown_203B45C _0806FE54: .4byte 0x00008df8 _0806FE58: add r0, sp, 0xC movs r1, 0 ldrsh r0, [r0, r1] bl sub_808DBA8 lsls r0, 24 lsrs r7, r0, 24 ldr r1, _0806FF74 movs r0, 0x64 muls r0, r6 ldr r2, _0806FF78 adds r0, r2 ldr r1, [r1] adds r5, r1, r0 movs r4, 0 movs r0, 0x3 strh r0, [r5] strb r4, [r5, 0x2] add r0, sp, 0xC ldrh r0, [r0, 0xE] strb r0, [r5, 0x3] movs r0, 0x1 strh r0, [r5, 0x8] adds r0, r5, 0 adds r0, 0x4C movs r1, 0 bl sub_808EC94 ldr r0, [sp, 0x50] str r0, [r5, 0x54] adds r0, r5, 0 adds r0, 0x50 strb r4, [r0] ldr r0, _0806FF7C strh r0, [r5, 0xA] strh r6, [r5, 0xC] add r0, sp, 0xC ldrh r0, [r0] strh r0, [r5, 0xE] ldr r0, _0806FF80 ldr r0, [r0] ldr r3, _0806FF84 adds r0, r3 ldr r0, [r0] str r0, [r5, 0x4] add r0, sp, 0xC ldrh r0, [r0, 0x8] strh r0, [r5, 0x10] add r0, sp, 0xC ldrh r0, [r0, 0x8] strh r0, [r5, 0x12] ldr r0, [sp, 0x20] str r0, [r5, 0x44] ldr r0, [sp, 0x24] str r0, [r5, 0x48] movs r2, 0 add r6, sp, 0x2C add r4, sp, 0x54 mov r8, r4 mov r4, sp adds r4, 0x16 add r3, sp, 0x18 adds r1, r5, 0 adds r1, 0x14 _0806FED8: adds r0, r4, r2 ldrb r0, [r0] strb r0, [r1] adds r0, r3, r2 ldrb r0, [r0] strb r0, [r1, 0x2] adds r1, 0x1 adds r2, 0x1 cmp r2, 0x1 ble _0806FED8 ldr r0, [sp, 0x1C] str r0, [r5, 0x18] adds r1, r5, 0 adds r1, 0x1C adds r0, r6, 0 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldr r0, [sp, 0x28] str r0, [r5, 0x40] adds r4, r5, 0 adds r4, 0x58 add r0, sp, 0xC movs r1, 0 ldrsh r0, [r0, r1] bl sub_808D994 adds r1, r0, 0 adds r0, r4, 0 movs r2, 0xA bl sub_8092310 adds r0, r7, 0 bl sub_8092600 lsls r0, 24 cmp r0, 0 bne _0806FF34 adds r0, r7, 0 bl sub_80925EC movs r2, 0x1 mov r9, r2 _0806FF34: bl sub_8097848 movs r1, 0xFA lsls r1, 1 mov r0, r10 ldr r2, [sp, 0x58] bl sub_8068FE0 add r0, sp, 0xC movs r3, 0 ldrsh r0, [r0, r3] add r1, sp, 0xC movs r2, 0x4 ldrsh r1, [r1, r2] add r2, sp, 0xC movs r3, 0x6 ldrsh r2, [r2, r3] mov r3, r8 str r3, [sp] movs r3, 0 str r3, [sp, 0x4] str r3, [sp, 0x8] adds r3, r5, 0 bl sub_806B8CC lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _0806FF88 strh r0, [r5] b _0806FFF6 .align 2, 0 _0806FF74: .4byte gUnknown_203B45C _0806FF78: .4byte 0x00008df8 _0806FF7C: .4byte 0x0000ffff _0806FF80: .4byte gUnknown_203B418 _0806FF84: .4byte 0x00000644 _0806FF88: ldr r0, _0806FF9C ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl sub_8052B8C cmp r0, 0x1 bne _0806FFB8 b _0806FFAC .align 2, 0 _0806FF9C: .4byte gUnknown_80FA090 _0806FFA0: ldr r0, _08070008 ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage _0806FFAC: adds r0, r4, 0 bl sub_805FBE8 lsls r0, 24 cmp r0, 0 beq _0806FFA0 _0806FFB8: mov r4, r9 cmp r4, 0 beq _0806FFE6 bl sub_8085480 adds r1, r0, 0 ldr r0, _0807000C movs r2, 0 bl sub_8045B94 ldr r0, _08070010 adds r1, r7, 0 bl sub_8092558 movs r0, 0xCE bl sub_8011988 ldr r0, _08070014 ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage _0806FFE6: ldr r0, _08070018 adds r1, r5, 0 movs r2, 0 bl sub_808D9DC ldr r0, [sp, 0x54] ldr r1, [sp, 0x5C] str r0, [r1] _0806FFF6: movs r0, 0x1 _0806FFF8: add sp, 0x60 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08070008: .4byte gUnknown_80FA0C8 _0807000C: .4byte gUnknown_202DF98 _08070010: .4byte gUnknown_202E628 _08070014: .4byte gUnknown_80FA120 _08070018: .4byte gUnknown_202E088 thumb_func_end sub_806FDF4 thumb_func_start sub_807001C sub_807001C: push {r4-r6,lr} adds r5, r0, 0 ldr r4, [r5, 0x70] ldr r0, _08070050 adds r1, r5, 0 movs r2, 0 bl sub_8045B94 adds r0, r4, 0 adds r0, 0x44 movs r1, 0x1 bl sub_8044C94 adds r0, r4, 0 adds r0, 0xA8 ldrb r0, [r0] cmp r0, 0x3 bne _08070042 b _0807019C _08070042: cmp r0, 0x3 bgt _08070054 cmp r0, 0x1 bne _0807004C b _0807019C _0807004C: b _0807005A .align 2, 0 _08070050: .4byte gUnknown_202DF98 _08070054: cmp r0, 0x5 bne _0807005A b _0807019C _0807005A: adds r0, r4, 0 adds r0, 0xB0 ldrb r0, [r0] cmp r0, 0x3 beq _0807008C cmp r0, 0x3 bgt _0807006E cmp r0, 0x1 beq _0807007A b _080700AC _0807006E: cmp r0, 0x4 beq _0807009C cmp r0, 0x6 bne _08070078 b _0807019C _08070078: b _080700AC _0807007A: ldr r0, _08070088 ldr r1, [r0] adds r0, r5, 0 bl sub_80522A8 b _0807019C .align 2, 0 _08070088: .4byte gUnknown_80F954C _0807008C: ldr r0, _08070098 ldr r1, [r0] adds r0, r5, 0 bl sub_80522A8 b _0807019C .align 2, 0 _08070098: .4byte gUnknown_80F956C _0807009C: ldr r0, _080700A8 ldr r1, [r0] adds r0, r5, 0 bl sub_80522A8 b _0807019C .align 2, 0 _080700A8: .4byte gUnknown_80F958C _080700AC: adds r0, r4, 0 adds r0, 0xBC ldrb r0, [r0] cmp r0, 0x3 beq _080700D4 cmp r0, 0x7 beq _080700E4 adds r0, r4, 0 adds r0, 0xC0 ldrb r0, [r0] cmp r0, 0x1 bne _080700F4 ldr r0, _080700D0 ldr r1, [r0] adds r0, r5, 0 bl sub_80522A8 b _0807019C .align 2, 0 _080700D0: .4byte gUnknown_80F95D8 _080700D4: ldr r0, _080700E0 ldr r1, [r0] adds r0, r5, 0 bl sub_80522A8 b _0807019C .align 2, 0 _080700E0: .4byte gUnknown_80F95A4 _080700E4: ldr r0, _080700F0 ldr r1, [r0] adds r0, r5, 0 bl sub_80522A8 b _0807019C .align 2, 0 _080700F0: .4byte gUnknown_80F95BC _080700F4: adds r0, r4, 0 adds r0, 0xC8 ldrb r0, [r0] cmp r0, 0x2 bne _0807012E adds r0, r4, 0 adds r0, 0x44 movs r2, 0x2 ldrsh r1, [r4, r2] bl sub_8044CA0 movs r0, 0x8 bl sub_8084100 adds r1, r4, 0 adds r1, 0x46 strb r0, [r1] ldrh r1, [r5, 0x4] movs r2, 0xB6 lsls r2, 1 adds r0, r4, r2 strh r1, [r0] ldrh r0, [r5, 0x6] subs r0, 0x1 movs r1, 0xB7 lsls r1, 1 adds r2, r4, r1 strh r0, [r2] b _0807019C _0807012E: ldrb r0, [r4, 0x8] cmp r0, 0x1 beq _0807019C adds r0, r4, 0 adds r0, 0xE8 ldrb r0, [r0] cmp r0, 0x1 bne _0807017C adds r6, r4, 0 adds r6, 0x46 ldrb r1, [r6] adds r0, r5, 0 bl sub_8070D6C lsls r0, 24 cmp r0, 0 bne _08070166 movs r0, 0x2 bl sub_8084100 cmp r0, 0 beq _08070174 movs r0, 0x8 bl sub_8084100 movs r1, 0x7 ands r1, r0 strb r1, [r6] _08070166: adds r0, r4, 0 adds r0, 0x44 movs r2, 0x2 ldrsh r1, [r4, r2] bl sub_8044CA0 b _0807019C _08070174: adds r0, r5, 0 bl sub_807BB94 b _0807019C _0807017C: cmp r0, 0x2 beq _08070184 movs r0, 0 b _0807019E _08070184: adds r0, r4, 0 adds r0, 0x44 movs r2, 0x2 ldrsh r1, [r4, r2] bl sub_8044CA0 movs r0, 0x8 bl sub_8084100 adds r1, r4, 0 adds r1, 0x46 strb r0, [r1] _0807019C: movs r0, 0x1 _0807019E: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_807001C thumb_func_start sub_80701A4 sub_80701A4: push {r4-r7,lr} adds r7, r0, 0 ldr r6, [r7, 0x70] movs r4, 0 ldr r0, _080701D4 adds r1, r7, 0 movs r2, 0 bl sub_8045B94 adds r0, r6, 0 adds r0, 0x44 movs r1, 0x1 bl sub_8044C94 adds r0, r6, 0 adds r0, 0xA8 ldrb r0, [r0] cmp r0, 0x3 beq _080701DC cmp r0, 0x3 bgt _080701D8 cmp r0, 0x1 beq _080701DC b _080701E4 .align 2, 0 _080701D4: .4byte gUnknown_202DF98 _080701D8: cmp r0, 0x5 bne _080701E4 _080701DC: ldr r0, _080701E0 b _08070278 .align 2, 0 _080701E0: .4byte gUnknown_80F95EC _080701E4: adds r0, r6, 0 adds r0, 0xB0 ldrb r0, [r0] cmp r0, 0x3 beq _0807020C cmp r0, 0x3 bgt _080701F8 cmp r0, 0x1 beq _08070202 b _0807021C _080701F8: cmp r0, 0x4 beq _08070214 cmp r0, 0x6 beq _08070280 b _0807021C _08070202: ldr r0, _08070208 b _08070278 .align 2, 0 _08070208: .4byte gUnknown_80F954C _0807020C: ldr r0, _08070210 b _08070278 .align 2, 0 _08070210: .4byte gUnknown_80F956C _08070214: ldr r0, _08070218 b _08070278 .align 2, 0 _08070218: .4byte gUnknown_80F958C _0807021C: adds r0, r6, 0 adds r0, 0xBC ldrb r0, [r0] cmp r0, 0x8 bhi _0807026C lsls r0, 2 ldr r1, _08070230 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08070230: .4byte _08070234 .align 2, 0 _08070234: .4byte _0807026C .4byte _0807026C .4byte _08070258 .4byte _0807025C .4byte _0807026C .4byte _0807026C .4byte _0807026C .4byte _08070264 .4byte _0807026C _08070258: movs r4, 0x1 b _0807026C _0807025C: ldr r0, _08070260 b _08070278 .align 2, 0 _08070260: .4byte gUnknown_80F95A4 _08070264: ldr r0, _08070268 b _08070278 .align 2, 0 _08070268: .4byte gUnknown_80F95BC _0807026C: adds r0, r6, 0 adds r0, 0xC0 ldrb r0, [r0] cmp r0, 0x1 bne _08070288 ldr r0, _08070284 _08070278: ldr r1, [r0] adds r0, r7, 0 bl sub_80522A8 _08070280: movs r0, 0x1 b _08070322 .align 2, 0 _08070284: .4byte gUnknown_80F95D8 _08070288: cmp r0, 0 beq _08070320 cmp r0, 0xB beq _08070320 cmp r0, 0xC beq _08070320 cmp r4, 0 beq _080702A8 ldr r0, _080702A4 ldr r1, [r0] adds r0, r7, 0 bl sub_80522A8 b _0807031A .align 2, 0 _080702A4: .4byte gUnknown_8100660 _080702A8: movs r5, 0 movs r0, 0x8C lsls r0, 1 adds r4, r6, r0 _080702B0: ldrb r1, [r4] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08070312 adds r0, r7, 0 adds r1, r4, 0 bl sub_80570AC lsls r0, 24 cmp r0, 0 beq _08070312 adds r0, r6, 0 adds r0, 0xC2 ldrb r0, [r0] cmp r0, r5 bne _08070312 adds r0, r6, 0 adds r0, 0x44 movs r1, 0x14 bl sub_8044C94 adds r3, r5, 0 adds r7, r6, 0 adds r7, 0x50 cmp r5, 0 ble _0807030E ldrb r1, [r4] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0807030E movs r4, 0x2 lsls r0, r5, 3 movs r1, 0x8C lsls r1, 1 adds r0, r1 adds r2, r0, r6 _080702FC: subs r2, 0x8 subs r3, 0x1 cmp r3, 0 ble _0807030E ldrb r1, [r2] adds r0, r4, 0 ands r0, r1 cmp r0, 0 bne _080702FC _0807030E: strb r3, [r7] b _08070280 _08070312: adds r4, 0x8 adds r5, 0x1 cmp r5, 0x3 ble _080702B0 _0807031A: adds r0, r7, 0 bl sub_8079764 _08070320: movs r0, 0 _08070322: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80701A4 thumb_func_start sub_8070328 sub_8070328: push {lr} lsls r0, 16 asrs r0, 16 bl sub_808DB14 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x3 bhi _0807033E adds r0, r1, 0 b _08070344 _0807033E: ldr r0, _08070348 adds r0, r1, r0 ldrb r0, [r0] _08070344: pop {r1} bx r1 .align 2, 0 _08070348: .4byte gUnknown_202F314 thumb_func_end sub_8070328 thumb_func_start sub_807034C sub_807034C: push {r4,lr} adds r4, r1, 0 lsls r0, 16 asrs r2, r0, 16 ldr r0, [r4, 0x10] cmp r0, 0 bne _08070398 ldrh r1, [r4] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _08070398 adds r0, r2, 0 bl sub_8070328 lsls r0, 24 lsrs r2, r0, 24 ldrh r0, [r4] movs r1, 0x3 ands r1, r0 cmp r2, 0x1 beq _08070388 cmp r2, 0x1 bgt _08070382 cmp r2, 0 beq _0807038C b _08070390 _08070382: cmp r2, 0x2 beq _08070394 b _08070390 _08070388: cmp r1, 0x2 beq _08070390 _0807038C: cmp r1, 0x1 bne _08070398 _08070390: movs r0, 0 b _0807039A _08070394: cmp r1, 0 bne _08070390 _08070398: movs r0, 0x1 _0807039A: pop {r4} pop {r1} bx r1 thumb_func_end sub_807034C thumb_func_start sub_80703A0 sub_80703A0: push {r4-r7,lr} adds r6, r0, 0 adds r4, r1, 0 ldr r7, [r6, 0x70] movs r1, 0 ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] bl sub_804954C adds r5, r0, 0 movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0 blt _08070456 movs r2, 0x2 ldrsh r1, [r4, r2] cmp r1, 0 blt _08070456 cmp r0, 0x37 bgt _08070456 cmp r1, 0x1F bgt _08070456 ldr r0, [r5, 0x10] cmp r0, 0 bne _08070456 ldrh r1, [r5] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _08070456 bl sub_80441E8 lsls r0, 24 cmp r0, 0 bne _08070400 adds r0, r7, 0 adds r0, 0xE4 ldrb r0, [r0] cmp r0, 0x3 beq _0807044E adds r0, r6, 0 movs r1, 0x9 bl sub_8046CB0 lsls r0, 24 cmp r0, 0 bne _0807044E _08070400: movs r1, 0x2 ldrsh r0, [r7, r1] bl sub_8070328 lsls r0, 24 lsrs r4, r0, 24 ldrh r0, [r5] movs r5, 0x3 ands r5, r0 adds r0, r6, 0 movs r1, 0xC bl sub_80718D8 lsls r0, 24 cmp r0, 0 beq _08070422 movs r4, 0x2 _08070422: adds r0, r6, 0 movs r1, 0xD bl sub_80718D8 lsls r0, 24 cmp r0, 0 beq _08070432 movs r4, 0x3 _08070432: cmp r4, 0x1 beq _08070446 cmp r4, 0x1 bgt _08070440 cmp r4, 0 beq _0807044A b _0807044E _08070440: cmp r4, 0x2 beq _08070452 b _0807044E _08070446: cmp r5, 0x2 beq _0807044E _0807044A: cmp r5, 0x1 bne _08070456 _0807044E: movs r0, 0 b _08070458 _08070452: cmp r5, 0 bne _0807044E _08070456: movs r0, 0x1 _08070458: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80703A0 thumb_func_start sub_8070460 sub_8070460: push {r4,lr} adds r1, r0, 0 ldr r0, [r1, 0x70] adds r4, r0, 0 adds r0, 0xE4 ldrb r0, [r0] cmp r0, 0x3 beq _08070492 adds r0, r1, 0 movs r1, 0x9 bl sub_8046CB0 lsls r0, 24 cmp r0, 0 bne _08070492 movs r1, 0x2 ldrsh r0, [r4, r1] bl sub_8070328 lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 beq _08070492 movs r0, 0 b _08070494 _08070492: movs r0, 0x1 _08070494: pop {r4} pop {r1} bx r1 thumb_func_end sub_8070460 thumb_func_start sub_807049C sub_807049C: push {r4-r7,lr} adds r6, r0, 0 adds r4, r1, 0 ldr r7, [r6, 0x70] movs r1, 0 ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] bl sub_804954C adds r5, r0, 0 movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0 blt _0807055A movs r2, 0x2 ldrsh r1, [r4, r2] cmp r1, 0 blt _0807055A cmp r0, 0x37 bgt _0807055A cmp r1, 0x1F bgt _0807055A ldrh r1, [r5] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _0807055A ldr r0, [r5, 0x10] cmp r0, 0 beq _080704E2 bl sub_80450F8 cmp r0, 0x1 bne _0807055A _080704E2: bl sub_80441E8 lsls r0, 24 cmp r0, 0 bne _08070504 adds r0, r7, 0 adds r0, 0xE4 ldrb r0, [r0] cmp r0, 0x3 beq _08070552 adds r0, r6, 0 movs r1, 0x9 bl sub_8046CB0 lsls r0, 24 cmp r0, 0 bne _08070552 _08070504: movs r1, 0x2 ldrsh r0, [r7, r1] bl sub_8070328 lsls r0, 24 lsrs r4, r0, 24 ldrh r0, [r5] movs r5, 0x3 ands r5, r0 adds r0, r6, 0 movs r1, 0xC bl sub_80718D8 lsls r0, 24 cmp r0, 0 beq _08070526 movs r4, 0x2 _08070526: adds r0, r6, 0 movs r1, 0xD bl sub_80718D8 lsls r0, 24 cmp r0, 0 beq _08070536 movs r4, 0x3 _08070536: cmp r4, 0x1 beq _0807054A cmp r4, 0x1 bgt _08070544 cmp r4, 0 beq _0807054E b _08070552 _08070544: cmp r4, 0x2 beq _08070556 b _08070552 _0807054A: cmp r5, 0x2 beq _08070552 _0807054E: cmp r5, 0x1 bne _0807055A _08070552: movs r0, 0 b _0807055C _08070556: cmp r5, 0 bne _08070552 _0807055A: movs r0, 0x1 _0807055C: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_807049C thumb_func_start sub_8070564 sub_8070564: push {r4-r6,lr} adds r4, r1, 0 ldr r6, [r0, 0x70] movs r1, 0 ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] bl sub_804954C adds r5, r0, 0 movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0 blt _080705E6 movs r2, 0x2 ldrsh r1, [r4, r2] cmp r1, 0 blt _080705E6 cmp r0, 0x37 bgt _080705E6 cmp r1, 0x1F bgt _080705E6 ldrh r1, [r5] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _080705E6 ldr r0, [r5, 0x10] cmp r0, 0 beq _080705A8 bl sub_80450F8 cmp r0, 0x1 bne _080705E6 _080705A8: movs r1, 0x2 ldrsh r0, [r6, r1] bl sub_8070328 lsls r0, 24 lsrs r2, r0, 24 adds r3, r2, 0 ldrh r0, [r5] movs r1, 0x3 ands r1, r0 adds r0, r1, 0 cmp r2, 0x1 beq _080705DE cmp r2, 0x1 bgt _080705CC cmp r2, 0 beq _080705D8 b _080705D4 _080705CC: cmp r3, 0x3 bgt _080705D4 cmp r1, 0 beq _080705E6 _080705D4: movs r0, 0 b _080705E8 _080705D8: cmp r1, 0x1 bne _080705E6 b _080705D4 _080705DE: cmp r1, 0x2 beq _080705D4 cmp r0, 0x1 beq _080705D4 _080705E6: movs r0, 0x1 _080705E8: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8070564 thumb_func_start sub_80705F0 sub_80705F0: push {r4-r7,lr} adds r6, r0, 0 adds r4, r1, 0 ldr r7, [r6, 0x70] movs r1, 0 ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] bl sub_804954C adds r5, r0, 0 movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0 blt _0807069A movs r2, 0x2 ldrsh r1, [r4, r2] cmp r1, 0 blt _0807069A cmp r0, 0x37 bgt _0807069A cmp r1, 0x1F bgt _0807069A ldrh r1, [r5] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _0807069A ldr r0, [r5, 0x10] cmp r0, 0 beq _08070636 bl sub_80450F8 cmp r0, 0x1 bne _0807069A _08070636: bl sub_80441E8 lsls r0, 24 cmp r0, 0 bne _08070658 adds r0, r7, 0 adds r0, 0xE4 ldrb r0, [r0] cmp r0, 0x3 beq _08070696 adds r0, r6, 0 movs r1, 0x9 bl sub_8046CB0 lsls r0, 24 cmp r0, 0 bne _08070696 _08070658: movs r1, 0x2 ldrsh r0, [r7, r1] bl sub_8070328 lsls r0, 24 lsrs r4, r0, 24 ldrh r0, [r5] movs r5, 0x3 ands r5, r0 adds r0, r6, 0 movs r1, 0xC bl sub_80718D8 lsls r0, 24 cmp r0, 0 beq _0807067A movs r4, 0x2 _0807067A: adds r0, r6, 0 movs r1, 0xD bl sub_80718D8 lsls r0, 24 cmp r0, 0 beq _0807068A movs r4, 0x3 _0807068A: cmp r4, 0 blt _08070696 cmp r4, 0x2 bgt _08070696 cmp r5, 0 beq _0807069A _08070696: movs r0, 0 b _0807069C _0807069A: movs r0, 0x1 _0807069C: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80705F0 thumb_func_start sub_80706A4 sub_80706A4: push {r4-r7,lr} adds r7, r0, 0 adds r4, r1, 0 ldr r6, [r7, 0x70] movs r1, 0 ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] bl sub_804954C adds r5, r0, 0 movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0 blt _0807076A movs r2, 0x2 ldrsh r1, [r4, r2] cmp r1, 0 blt _0807076A cmp r0, 0x37 bgt _0807076A cmp r1, 0x1F bgt _0807076A ldrh r1, [r5] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _0807076A ldr r0, [r5, 0x10] cmp r0, 0 beq _080706F2 bl sub_80450F8 cmp r0, 0x1 bne _0807076A ldr r0, [r5, 0x10] ldr r0, [r0, 0x70] cmp r0, r6 bne _0807076A _080706F2: bl sub_80441E8 lsls r0, 24 cmp r0, 0 bne _08070714 adds r0, r6, 0 adds r0, 0xE4 ldrb r0, [r0] cmp r0, 0x3 beq _08070762 adds r0, r7, 0 movs r1, 0x9 bl sub_8046CB0 lsls r0, 24 cmp r0, 0 bne _08070762 _08070714: movs r1, 0x2 ldrsh r0, [r6, r1] bl sub_8070328 lsls r0, 24 lsrs r4, r0, 24 ldrh r0, [r5] movs r5, 0x3 ands r5, r0 adds r0, r7, 0 movs r1, 0xC bl sub_80718D8 lsls r0, 24 cmp r0, 0 beq _08070736 movs r4, 0x2 _08070736: adds r0, r7, 0 movs r1, 0xD bl sub_80718D8 lsls r0, 24 cmp r0, 0 beq _08070746 movs r4, 0x3 _08070746: cmp r4, 0x1 beq _0807075A cmp r4, 0x1 bgt _08070754 cmp r4, 0 beq _0807075E b _08070762 _08070754: cmp r4, 0x2 beq _08070766 b _08070762 _0807075A: cmp r5, 0x2 beq _08070762 _0807075E: cmp r5, 0x1 bne _0807076A _08070762: movs r0, 0 b _0807076C _08070766: cmp r5, 0 bne _08070762 _0807076A: movs r0, 0x1 _0807076C: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80706A4 thumb_func_start sub_8070774 sub_8070774: push {r4-r6,lr} adds r6, r0, 0 ldr r5, [r6, 0x70] movs r4, 0 movs r0, 0x84 lsls r0, 1 adds r1, r5, r0 movs r2, 0x4 _08070784: ldrb r0, [r1, 0x5] cmp r0, 0 beq _0807078C subs r4, 0x1 _0807078C: ldrb r0, [r1] cmp r0, 0 beq _08070794 adds r4, 0x1 _08070794: adds r1, 0x1 subs r2, 0x1 cmp r2, 0 bge _08070784 adds r0, r5, 0 adds r0, 0xAC ldrb r0, [r0] cmp r0, 0x4 bne _080707A8 subs r4, 0x1 _080707A8: movs r1, 0x2 ldrsh r0, [r5, r1] bl sub_808DAFC adds r4, r0 adds r0, r6, 0 movs r1, 0x6 bl sub_8071858 lsls r0, 24 cmp r0, 0 beq _080707D0 adds r0, r6, 0 bl sub_807E580 lsls r0, 24 lsrs r0, 24 cmp r0, 0x7 bne _080707D0 adds r4, 0x1 _080707D0: movs r0, 0x4 ldrsh r1, [r5, r0] ldr r0, _0807081C cmp r1, r0 bne _080707DC adds r4, 0x1 _080707DC: movs r0, 0x2 ldrsh r1, [r5, r0] movs r0, 0xBE lsls r0, 1 cmp r1, r0 bne _080707FE ldrb r0, [r5, 0x6] cmp r0, 0 beq _080707FE ldr r0, _08070820 ldr r0, [r0] ldr r1, _08070824 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _080707FE adds r4, 0x1 _080707FE: cmp r4, 0 bge _08070804 movs r4, 0 _08070804: cmp r4, 0x4 ble _0807080A movs r4, 0x4 _0807080A: movs r1, 0x82 lsls r1, 1 adds r0, r5, r1 str r4, [r0] adds r0, r4, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0807081C: .4byte 0x000001a3 _08070820: .4byte gUnknown_203B418 _08070824: .4byte 0x0000066e thumb_func_end sub_8070774 thumb_func_start sub_8070828 sub_8070828: push {r4-r6,lr} adds r4, r0, 0 lsls r1, 24 lsrs r6, r1, 24 movs r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _08070840 movs r0, 0 b _080708AE _08070840: adds r0, r4, 0 movs r1, 0x1B bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0807085E adds r0, r4, 0 bl sub_807E580 lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bne _0807085E movs r5, 0x1 _0807085E: adds r0, r4, 0 movs r1, 0x4A bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0807087C adds r0, r4, 0 bl sub_807E580 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0807087C movs r5, 0x1 _0807087C: cmp r6, 0 beq _080708A0 ldr r0, [r4, 0x70] movs r1, 0x40 adds r2, r5, 0 bl sub_8071ACC lsls r0, 24 cmp r0, 0 beq _080708A0 adds r0, r4, 0 bl sub_80429B4 ldr r0, _080708A8 ldr r1, [r0] adds r0, r4, 0 bl sub_80522A8 _080708A0: cmp r5, 0 bne _080708AC movs r0, 0x1 b _080708AE .align 2, 0 _080708A8: .4byte gUnknown_80FEE80 _080708AC: movs r0, 0x2 _080708AE: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8070828 thumb_func_start sub_80708B4 sub_80708B4: push {r4,r5,lr} adds r3, r0, 0 adds r4, r2, 0 ldr r0, _080708E8 ldr r2, [r0] ldr r5, _080708EC adds r0, r2, r5 ldrb r0, [r0] cmp r0, 0 bne _080708DC adds r5, 0x6 adds r0, r2, r5 ldrb r0, [r0] cmp r0, 0 bne _080708DC adds r0, r1, 0 adds r0, 0xE4 ldrb r0, [r0] cmp r0, 0x1 bne _080708F4 _080708DC: ldrb r0, [r1, 0x6] cmp r0, 0 beq _080708F4 ldr r0, _080708F0 b _08070900 .align 2, 0 _080708E8: .4byte gUnknown_203B418 _080708EC: .4byte 0x0001820a _080708F0: .4byte gUnknown_80F8988 _080708F4: adds r0, r1, 0 adds r0, 0xC8 ldrb r0, [r0] cmp r0, 0x2 bne _08070910 ldr r0, _0807090C _08070900: ldr r1, [r0] adds r0, r3, 0 bl strcpy b _0807095A .align 2, 0 _0807090C: .4byte gUnknown_80F8968 _08070910: ldrb r0, [r1, 0x6] cmp r0, 0 beq _08070942 adds r0, r1, 0 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x4A beq _0807092A adds r0, r1, 0 adds r0, 0xA4 ldrb r0, [r0] cmp r0, 0x1 bne _08070936 _0807092A: movs r0, 0x4 ldrsh r1, [r1, r0] adds r0, r3, 0 bl sub_808D8E0 b _0807095A _08070936: movs r5, 0x4 ldrsh r1, [r1, r5] adds r0, r3, 0 bl sub_808D908 b _0807095A _08070942: ldr r2, _08070960 ldrb r1, [r1, 0xA] movs r0, 0x64 muls r0, r1 ldr r1, _08070964 adds r0, r1 ldr r1, [r2] adds r1, r0 adds r0, r3, 0 adds r2, r4, 0 bl sub_808D9DC _0807095A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08070960: .4byte gUnknown_203B45C _08070964: .4byte 0x00008df8 thumb_func_end sub_80708B4 thumb_func_start sub_8070968 sub_8070968: push {r4,lr} adds r4, r0, 0 adds r3, r2, 0 adds r0, r1, 0 adds r0, 0xC8 ldrb r0, [r0] cmp r0, 0x2 bne _08070990 ldr r1, _08070988 adds r2, 0x30 ldr r0, _0807098C ldr r3, [r0] adds r0, r4, 0 bl sub_800D158 b _080709BA .align 2, 0 _08070988: .4byte gUnknown_8106FA4 _0807098C: .4byte gUnknown_80F8974 _08070990: ldrb r0, [r1, 0x6] cmp r0, 0 beq _080709A2 movs r0, 0x4 ldrsh r1, [r1, r0] adds r0, r4, 0 bl sub_808D908 b _080709BA _080709A2: ldr r2, _080709C0 ldrb r1, [r1, 0xA] movs r0, 0x64 muls r0, r1 ldr r1, _080709C4 adds r0, r1 ldr r1, [r2] adds r1, r0 adds r0, r4, 0 adds r2, r3, 0 bl sub_808D9DC _080709BA: pop {r4} pop {r0} bx r0 .align 2, 0 _080709C0: .4byte gUnknown_203B45C _080709C4: .4byte 0x00008df8 thumb_func_end sub_8070968 thumb_func_start sub_80709C8 sub_80709C8: push {r4,lr} adds r3, r0, 0 ldr r0, _080709F8 ldr r2, [r0] ldr r4, _080709FC adds r0, r2, r4 ldrb r0, [r0] cmp r0, 0 bne _080709EE adds r4, 0x6 adds r0, r2, r4 ldrb r0, [r0] cmp r0, 0 bne _080709EE adds r0, r1, 0 adds r0, 0xE4 ldrb r0, [r0] cmp r0, 0x1 bne _08070A04 _080709EE: ldrb r0, [r1, 0x6] cmp r0, 0 beq _08070A04 ldr r0, _08070A00 b _08070A10 .align 2, 0 _080709F8: .4byte gUnknown_203B418 _080709FC: .4byte 0x0001820a _08070A00: .4byte gUnknown_80F8994 _08070A04: adds r0, r1, 0 adds r0, 0xC8 ldrb r0, [r0] cmp r0, 0x2 bne _08070A20 ldr r0, _08070A1C _08070A10: ldr r1, [r0] adds r0, r3, 0 bl strcpy b _08070A48 .align 2, 0 _08070A1C: .4byte gUnknown_80F8974 _08070A20: ldrb r0, [r1, 0x6] cmp r0, 0 beq _08070A32 movs r0, 0x4 ldrsh r1, [r1, r0] adds r0, r3, 0 bl sub_808D8BC b _08070A48 _08070A32: ldr r2, _08070A50 ldrb r1, [r1, 0xA] movs r0, 0x64 muls r0, r1 ldr r1, _08070A54 adds r0, r1 ldr r1, [r2] adds r1, r0 adds r0, r3, 0 bl sub_808DA0C _08070A48: pop {r4} pop {r0} bx r0 .align 2, 0 _08070A50: .4byte gUnknown_203B45C _08070A54: .4byte 0x00008df8 thumb_func_end sub_80709C8 thumb_func_start sub_8070A58 sub_8070A58: push {r4,lr} ldr r0, [r0, 0x70] mov r12, r0 adds r0, 0xA8 ldrb r0, [r0] cmp r0, 0x1 beq _08070ADE cmp r0, 0x3 beq _08070ADE cmp r0, 0x4 beq _08070ADE mov r0, r12 adds r0, 0xAC ldrb r0, [r0] cmp r0, 0 bne _08070ADE mov r0, r12 adds r0, 0xB0 ldrb r0, [r0] cmp r0, 0x5 beq _08070A86 cmp r0, 0 bne _08070ADE _08070A86: mov r0, r12 adds r0, 0xBC ldrb r0, [r0] cmp r0, 0 bne _08070ADE mov r0, r12 adds r0, 0xC8 ldrb r0, [r0] cmp r0, 0x1 beq _08070ADE cmp r0, 0x2 beq _08070ADE mov r0, r12 adds r0, 0xD0 ldrb r0, [r0] cmp r0, 0x1 beq _08070ADE mov r0, r12 adds r0, 0xDC ldrb r0, [r0] cmp r0, 0x2 beq _08070ADE mov r0, r12 adds r0, 0xE8 ldrb r0, [r0] cmp r0, 0x1 beq _08070ADE cmp r0, 0x2 beq _08070ADE mov r0, r12 adds r0, 0xEC ldrb r0, [r0] cmp r0, 0x1 beq _08070ADE mov r0, r12 adds r0, 0xF5 ldrb r0, [r0] cmp r0, 0 bne _08070ADE mov r0, r12 adds r0, 0xFD ldrb r0, [r0] cmp r0, 0 beq _08070AE2 _08070ADE: movs r0, 0x1 b _08070B1E _08070AE2: movs r3, 0 movs r4, 0x1 movs r2, 0x8C lsls r2, 1 add r2, r12 _08070AEC: ldrb r1, [r2] adds r0, r4, 0 ands r0, r1 cmp r0, 0 beq _08070B00 ldrb r1, [r2, 0x1] adds r0, r4, 0 ands r0, r1 cmp r0, 0 bne _08070ADE _08070B00: adds r2, 0x8 adds r3, 0x1 cmp r3, 0x3 ble _08070AEC movs r3, 0 ldr r1, _08070B24 add r1, r12 _08070B0E: adds r0, r1, r3 ldrb r0, [r0] cmp r0, 0 bne _08070ADE adds r3, 0x1 cmp r3, 0x4 ble _08070B0E movs r0, 0 _08070B1E: pop {r4} pop {r1} bx r1 .align 2, 0 _08070B24: .4byte 0x0000010d thumb_func_end sub_8070A58 thumb_func_start sub_8070B28 sub_8070B28: push {lr} ldr r0, [r0, 0x70] adds r0, 0xA8 ldrb r0, [r0] cmp r0, 0x1 beq _08070B40 cmp r0, 0x5 beq _08070B40 cmp r0, 0x3 beq _08070B40 movs r0, 0 b _08070B42 _08070B40: movs r0, 0x1 _08070B42: pop {r1} bx r1 thumb_func_end sub_8070B28 thumb_func_start sub_8070B48 sub_8070B48: push {lr} ldr r0, [r0, 0x70] adds r1, r0, 0 movs r2, 0x10 ldrsh r0, [r1, r2] cmp r0, 0 bge _08070B58 adds r0, 0x3 _08070B58: movs r2, 0xE ldrsh r1, [r1, r2] asrs r0, 2 cmp r1, r0 ble _08070B66 movs r0, 0 b _08070B68 _08070B66: movs r0, 0x1 _08070B68: pop {r1} bx r1 thumb_func_end sub_8070B48 thumb_func_start sub_8070B6C sub_8070B6C: push {lr} lsls r1, 24 ldr r2, [r0, 0x70] cmp r1, 0 beq _08070B80 adds r0, r2, 0 adds r0, 0xE8 ldrb r0, [r0] cmp r0, 0x1 beq _08070BB8 _08070B80: adds r0, r2, 0 adds r0, 0xA8 ldrb r0, [r0] cmp r0, 0x1 beq _08070BB8 cmp r0, 0x5 beq _08070BB8 cmp r0, 0x3 beq _08070BB8 adds r0, r2, 0 adds r0, 0xBC ldrb r0, [r0] cmp r0, 0x3 beq _08070BB8 cmp r0, 0x7 beq _08070BB8 adds r0, r2, 0 adds r0, 0xB0 ldrb r0, [r0] cmp r0, 0x6 beq _08070BB8 adds r0, r2, 0 adds r0, 0xFA ldrb r0, [r0] cmp r0, 0 bne _08070BB8 movs r0, 0 b _08070BBA _08070BB8: movs r0, 0x1 _08070BBA: pop {r1} bx r1 thumb_func_end sub_8070B6C thumb_func_start sub_8070BC0 sub_8070BC0: push {r4-r6,lr} adds r4, r0, 0 ldr r5, [r4, 0x70] movs r1, 0 bl sub_80570F4 lsls r0, 24 cmp r0, 0 bne _08070C56 adds r6, r5, 0 adds r6, 0xA8 ldrb r0, [r6] cmp r0, 0x4 beq _08070C56 cmp r0, 0x3 beq _08070C56 adds r0, r4, 0 bl sub_8071494 lsls r0, 24 cmp r0, 0 bne _08070C56 adds r0, r5, 0 adds r0, 0xEC ldrb r0, [r0] cmp r0, 0x1 beq _08070C56 adds r0, r5, 0 adds r0, 0xB0 ldrb r1, [r0] cmp r1, 0x6 beq _08070C56 cmp r1, 0x1 beq _08070C56 adds r0, r5, 0 adds r0, 0xBC ldrb r3, [r0] adds r4, r0, 0 cmp r3, 0x2 beq _08070C56 ldrb r2, [r6] cmp r2, 0x1 beq _08070C56 adds r0, r5, 0 adds r0, 0xE4 ldrb r0, [r0] cmp r0, 0x1 beq _08070C56 cmp r2, 0x5 beq _08070C56 cmp r3, 0x1 beq _08070C56 cmp r1, 0x3 beq _08070C56 cmp r1, 0x4 beq _08070C56 adds r0, r5, 0 adds r0, 0xE8 ldrb r1, [r0] cmp r1, 0x2 beq _08070C56 adds r0, r5, 0 adds r0, 0xC8 ldrb r0, [r0] cmp r0, 0x2 beq _08070C56 cmp r1, 0x1 beq _08070C56 ldrb r0, [r4] cmp r0, 0x7 beq _08070C56 cmp r0, 0x3 beq _08070C56 movs r0, 0x1 b _08070C58 _08070C56: movs r0, 0 _08070C58: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8070BC0 thumb_func_start sub_8070C60 sub_8070C60: push {r4,lr} adds r4, r0, 0 ldr r1, [r4, 0x70] adds r0, r1, 0 adds r0, 0xA4 ldrb r0, [r0] cmp r0, 0x1 beq _08070CC6 adds r0, r1, 0 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x4A beq _08070C7E cmp r0, 0x47 bne _08070C82 _08070C7E: movs r0, 0x1 b _08070C84 _08070C82: movs r0, 0 _08070C84: cmp r0, 0 bne _08070CC6 ldrb r0, [r1, 0x7] cmp r0, 0 bne _08070C9A adds r0, r4, 0 bl sub_8071494 lsls r0, 24 cmp r0, 0 bne _08070CC6 _08070C9A: adds r0, r4, 0 movs r1, 0 bl sub_8070B6C lsls r0, 24 cmp r0, 0 bne _08070CC6 adds r0, r4, 0 bl sub_8070CD0 lsls r0, 24 cmp r0, 0 bne _08070CC6 adds r0, r4, 0 movs r1, 0 bl sub_80570F4 lsls r0, 24 cmp r0, 0 bne _08070CC6 movs r0, 0 b _08070CC8 _08070CC6: movs r0, 0x1 _08070CC8: pop {r4} pop {r1} bx r1 thumb_func_end sub_8070C60 thumb_func_start sub_8070CD0 sub_8070CD0: push {lr} ldr r1, [r0, 0x70] adds r0, r1, 0 adds r0, 0xA8 ldrb r0, [r0] cmp r0, 0x2 beq _08070CE2 cmp r0, 0 bne _08070CFE _08070CE2: adds r0, r1, 0 adds r0, 0xB0 ldrb r0, [r0] cmp r0, 0x1 beq _08070CFE cmp r0, 0x6 beq _08070CFE adds r0, r1, 0 adds r0, 0xC0 ldrb r0, [r0] cmp r0, 0x1 beq _08070CFE movs r0, 0 b _08070D00 _08070CFE: movs r0, 0x1 _08070D00: pop {r1} bx r1 thumb_func_end sub_8070CD0 thumb_func_start sub_8070D04 sub_8070D04: push {lr} adds r3, r0, 0 lsls r1, 24 ldr r2, [r3, 0x70] cmp r1, 0 bne _08070D22 adds r0, r2, 0 adds r0, 0xA8 ldrb r0, [r0] cmp r0, 0x2 beq _08070D22 cmp r0, 0x4 beq _08070D22 cmp r0, 0 bne _08070D64 _08070D22: adds r0, r2, 0 adds r0, 0xB0 ldrb r0, [r0] cmp r0, 0x1 beq _08070D64 cmp r0, 0x3 beq _08070D64 cmp r0, 0x4 beq _08070D64 cmp r0, 0x6 beq _08070D64 adds r0, r2, 0 adds r0, 0xBC ldrb r0, [r0] cmp r0, 0x1 beq _08070D64 cmp r0, 0x3 beq _08070D64 cmp r0, 0x7 beq _08070D64 adds r0, r2, 0 adds r0, 0xAC ldrb r0, [r0] cmp r0, 0x4 beq _08070D64 adds r0, r3, 0 bl sub_8071494 lsls r0, 24 cmp r0, 0 bne _08070D64 movs r0, 0 b _08070D66 _08070D64: movs r0, 0x1 _08070D66: pop {r1} bx r1 thumb_func_end sub_8070D04 thumb_func_start sub_8070D6C sub_8070D6C: push {r4-r6,lr} adds r4, r0, 0 adds r6, r1, 0 ldr r0, [r4, 0x70] movs r1, 0x2 ldrsh r0, [r0, r1] bl sub_8070328 lsls r0, 24 lsrs r5, r0, 24 movs r2, 0x4 ldrsh r0, [r4, r2] ldr r1, _08070DD8 lsls r2, r6, 2 adds r2, r1 movs r3, 0 ldrsh r1, [r2, r3] adds r0, r1 movs r3, 0x6 ldrsh r1, [r4, r3] movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 bl sub_804954C adds r2, r0, 0 ldrh r1, [r2] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _08070E34 ldr r0, [r2, 0x10] cmp r0, 0 bne _08070E34 bl sub_80441E8 lsls r0, 24 cmp r0, 0 bne _08070E04 ldr r0, [r4, 0x70] adds r0, 0xE4 ldrb r0, [r0] cmp r0, 0x3 beq _08070DD2 adds r0, r4, 0 movs r1, 0x9 bl sub_8046CB0 lsls r0, 24 cmp r0, 0 beq _08070DDC _08070DD2: movs r5, 0x3 b _08070E04 .align 2, 0 _08070DD8: .4byte gUnknown_80F4448 _08070DDC: adds r0, r4, 0 movs r1, 0xC bl sub_80718D8 lsls r0, 24 cmp r0, 0 bne _08070E02 adds r0, r4, 0 movs r1, 0xD bl sub_80718D8 lsls r0, 24 cmp r0, 0 beq _08070E04 movs r0, 0x1 ands r0, r6 movs r5, 0x3 cmp r0, 0 beq _08070E04 _08070E02: movs r5, 0x2 _08070E04: movs r1, 0x4 ldrsh r0, [r4, r1] movs r2, 0x6 ldrsh r1, [r4, r2] bl sub_804954C adds r2, r0, 0 adds r1, r2, 0 adds r1, 0xA adds r1, r5 ldr r2, _08070E30 movs r0, 0x7 ands r0, r6 adds r0, r2 ldrb r1, [r1] ldrb r0, [r0] ands r0, r1 cmp r0, 0 beq _08070E34 movs r0, 0x1 b _08070E36 .align 2, 0 _08070E30: .4byte gUnknown_8106FAD _08070E34: movs r0, 0 _08070E36: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8070D6C thumb_func_start sub_8070E3C sub_8070E3C: push {r4-r7,lr} adds r4, r0, 0 adds r6, r1, 0 adds r7, r2, 0 ldr r0, [r4, 0x70] movs r1, 0x2 ldrsh r0, [r0, r1] bl sub_8070328 lsls r0, 24 lsrs r5, r0, 24 movs r2, 0 ldrsh r0, [r6, r2] ldr r1, _08070EB0 lsls r2, r7, 2 adds r2, r1 movs r3, 0 ldrsh r1, [r2, r3] adds r0, r1 movs r3, 0x2 ldrsh r1, [r6, r3] movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 bl sub_804954C adds r2, r0, 0 ldrh r1, [r2] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _08070F0C ldr r0, [r2, 0x10] cmp r0, 0 beq _08070E8A bl sub_80450F8 cmp r0, 0x1 bne _08070F0C _08070E8A: bl sub_80441E8 lsls r0, 24 cmp r0, 0 bne _08070EDC ldr r0, [r4, 0x70] adds r0, 0xE4 ldrb r0, [r0] cmp r0, 0x3 beq _08070EAC adds r0, r4, 0 movs r1, 0x9 bl sub_8046CB0 lsls r0, 24 cmp r0, 0 beq _08070EB4 _08070EAC: movs r5, 0x3 b _08070EDC .align 2, 0 _08070EB0: .4byte gUnknown_80F4448 _08070EB4: adds r0, r4, 0 movs r1, 0xC bl sub_80718D8 lsls r0, 24 cmp r0, 0 bne _08070EDA adds r0, r4, 0 movs r1, 0xD bl sub_80718D8 lsls r0, 24 cmp r0, 0 beq _08070EDC movs r0, 0x1 ands r0, r7 movs r5, 0x3 cmp r0, 0 beq _08070EDC _08070EDA: movs r5, 0x2 _08070EDC: movs r1, 0 ldrsh r0, [r6, r1] movs r2, 0x2 ldrsh r1, [r6, r2] bl sub_804954C adds r2, r0, 0 adds r1, r2, 0 adds r1, 0xA adds r1, r5 ldr r2, _08070F08 movs r0, 0x7 ands r0, r7 adds r0, r2 ldrb r1, [r1] ldrb r0, [r0] ands r0, r1 cmp r0, 0 beq _08070F0C movs r0, 0x1 b _08070F0E .align 2, 0 _08070F08: .4byte gUnknown_8106FB5 _08070F0C: movs r0, 0 _08070F0E: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8070E3C thumb_func_start sub_8070F14 sub_8070F14: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r1, 0x4 ldrsh r0, [r4, r1] ldr r1, _08070F70 lsls r2, r5, 2 adds r2, r1 movs r3, 0 ldrsh r1, [r2, r3] adds r0, r1 movs r3, 0x6 ldrsh r1, [r4, r3] movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 bl sub_804954C adds r2, r0, 0 ldrh r1, [r2] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _08070F78 ldr r0, [r2, 0x10] cmp r0, 0 bne _08070F78 movs r1, 0x4 ldrsh r0, [r4, r1] movs r2, 0x6 ldrsh r1, [r4, r2] bl sub_804954C adds r2, r0, 0 ldr r1, _08070F74 movs r0, 0x7 ands r0, r5 adds r0, r1 ldrb r1, [r2, 0xA] ldrb r0, [r0] ands r0, r1 cmp r0, 0 beq _08070F78 movs r0, 0x1 b _08070F7A .align 2, 0 _08070F70: .4byte gUnknown_80F4448 _08070F74: .4byte gUnknown_8106FBD _08070F78: movs r0, 0 _08070F7A: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8070F14 thumb_func_start sub_8070F80 sub_8070F80: push {r4-r6,lr} adds r4, r0, 0 adds r6, r1, 0 ldr r0, [r4, 0x70] movs r1, 0x2 ldrsh r0, [r0, r1] bl sub_8070328 lsls r0, 24 lsrs r5, r0, 24 movs r2, 0x4 ldrsh r0, [r4, r2] ldr r1, _08070FF4 lsls r2, r6, 2 adds r2, r1 movs r3, 0 ldrsh r1, [r2, r3] adds r0, r1 movs r3, 0x6 ldrsh r1, [r4, r3] movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 bl sub_804954C adds r2, r0, 0 ldrh r1, [r2] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _08071050 ldr r0, [r2, 0x10] cmp r0, 0 beq _08070FCC bl sub_80450F8 cmp r0, 0x1 bne _08071050 _08070FCC: bl sub_80441E8 lsls r0, 24 cmp r0, 0 bne _08071020 ldr r0, [r4, 0x70] adds r0, 0xE4 ldrb r0, [r0] cmp r0, 0x3 beq _08070FEE adds r0, r4, 0 movs r1, 0x9 bl sub_8046CB0 lsls r0, 24 cmp r0, 0 beq _08070FF8 _08070FEE: movs r5, 0x3 b _08071020 .align 2, 0 _08070FF4: .4byte gUnknown_80F4448 _08070FF8: adds r0, r4, 0 movs r1, 0xC bl sub_80718D8 lsls r0, 24 cmp r0, 0 bne _0807101E adds r0, r4, 0 movs r1, 0xD bl sub_80718D8 lsls r0, 24 cmp r0, 0 beq _08071020 movs r0, 0x1 ands r0, r6 movs r5, 0x3 cmp r0, 0 beq _08071020 _0807101E: movs r5, 0x2 _08071020: movs r1, 0x4 ldrsh r0, [r4, r1] movs r2, 0x6 ldrsh r1, [r4, r2] bl sub_804954C adds r2, r0, 0 adds r1, r2, 0 adds r1, 0xA adds r1, r5 ldr r2, _0807104C movs r0, 0x7 ands r0, r6 adds r0, r2 ldrb r1, [r1] ldrb r0, [r0] ands r0, r1 cmp r0, 0 beq _08071050 movs r0, 0x1 b _08071052 .align 2, 0 _0807104C: .4byte gUnknown_8106FC5 _08071050: movs r0, 0 _08071052: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8070F80 thumb_func_start sub_8071058 sub_8071058: push {r4-r7,lr} adds r5, r0, 0 adds r7, r1, 0 ldr r0, [r5, 0x70] movs r1, 0x2 ldrsh r0, [r0, r1] bl sub_8070328 lsls r0, 24 lsrs r6, r0, 24 movs r2, 0x4 ldrsh r0, [r5, r2] ldr r1, _080710D4 lsls r2, r7, 2 adds r2, r1 movs r3, 0 ldrsh r1, [r2, r3] adds r0, r1 movs r3, 0x6 ldrsh r1, [r5, r3] movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 bl sub_804954C adds r4, r0, 0 ldrh r1, [r4] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _08071130 ldr r0, [r4, 0x10] cmp r0, 0 beq _080710AE bl sub_80450F8 cmp r0, 0x1 beq _080710AE ldr r0, [r4, 0x10] ldr r0, [r0, 0x70] ldrb r0, [r0, 0x6] cmp r0, 0 bne _08071130 _080710AE: bl sub_80441E8 lsls r0, 24 cmp r0, 0 bne _08071100 ldr r0, [r5, 0x70] adds r0, 0xE4 ldrb r0, [r0] cmp r0, 0x3 beq _080710D0 adds r0, r5, 0 movs r1, 0x9 bl sub_8046CB0 lsls r0, 24 cmp r0, 0 beq _080710D8 _080710D0: movs r6, 0x3 b _08071100 .align 2, 0 _080710D4: .4byte gUnknown_80F4448 _080710D8: adds r0, r5, 0 movs r1, 0xC bl sub_80718D8 lsls r0, 24 cmp r0, 0 bne _080710FE adds r0, r5, 0 movs r1, 0xD bl sub_80718D8 lsls r0, 24 cmp r0, 0 beq _08071100 movs r0, 0x1 ands r0, r7 movs r6, 0x3 cmp r0, 0 beq _08071100 _080710FE: movs r6, 0x2 _08071100: movs r1, 0x4 ldrsh r0, [r5, r1] movs r2, 0x6 ldrsh r1, [r5, r2] bl sub_804954C adds r4, r0, 0 adds r1, r4, 0 adds r1, 0xA adds r1, r6 ldr r2, _0807112C movs r0, 0x7 ands r0, r7 adds r0, r2 ldrb r1, [r1] ldrb r0, [r0] ands r0, r1 cmp r0, 0 beq _08071130 movs r0, 0x1 b _08071132 .align 2, 0 _0807112C: .4byte gUnknown_8106FCD _08071130: movs r0, 0 _08071132: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8071058 thumb_func_start sub_8071138 sub_8071138: push {r4-r6,lr} adds r4, r0, 0 adds r6, r1, 0 ldr r0, [r4, 0x70] movs r1, 0x2 ldrsh r0, [r0, r1] bl sub_8070328 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x1 bhi _08071152 movs r5, 0x2 _08071152: movs r2, 0x4 ldrsh r0, [r4, r2] ldr r1, _080711B0 lsls r2, r6, 2 adds r2, r1 movs r3, 0 ldrsh r1, [r2, r3] adds r0, r1 movs r3, 0x6 ldrsh r1, [r4, r3] movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 bl sub_804954C adds r2, r0, 0 ldrh r1, [r2] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _0807120C ldr r0, [r2, 0x10] cmp r0, 0 beq _0807118A bl sub_80450F8 cmp r0, 0x1 bne _0807120C _0807118A: bl sub_80441E8 lsls r0, 24 cmp r0, 0 bne _080711DC ldr r0, [r4, 0x70] adds r0, 0xE4 ldrb r0, [r0] cmp r0, 0x3 beq _080711AC adds r0, r4, 0 movs r1, 0x9 bl sub_8046CB0 lsls r0, 24 cmp r0, 0 beq _080711B4 _080711AC: movs r5, 0x3 b _080711DC .align 2, 0 _080711B0: .4byte gUnknown_80F4448 _080711B4: adds r0, r4, 0 movs r1, 0xC bl sub_80718D8 lsls r0, 24 cmp r0, 0 bne _080711DA adds r0, r4, 0 movs r1, 0xD bl sub_80718D8 lsls r0, 24 cmp r0, 0 beq _080711DC movs r0, 0x1 ands r0, r6 movs r5, 0x3 cmp r0, 0 beq _080711DC _080711DA: movs r5, 0x2 _080711DC: movs r1, 0x4 ldrsh r0, [r4, r1] movs r2, 0x6 ldrsh r1, [r4, r2] bl sub_804954C adds r2, r0, 0 adds r1, r2, 0 adds r1, 0xA adds r1, r5 ldr r2, _08071208 movs r0, 0x7 ands r0, r6 adds r0, r2 ldrb r1, [r1] ldrb r0, [r0] ands r0, r1 cmp r0, 0 beq _0807120C movs r0, 0x1 b _0807120E .align 2, 0 _08071208: .4byte gUnknown_8106FD5 _0807120C: movs r0, 0 _0807120E: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8071138 thumb_func_start sub_8071214 sub_8071214: push {r4-r7,lr} mov r7, r8 push {r7} adds r4, r0, 0 adds r7, r1, 0 mov r8, r2 ldr r0, [r4, 0x70] movs r1, 0x2 ldrsh r0, [r0, r1] bl sub_8070328 lsls r0, 24 lsrs r6, r0, 24 movs r0, 0 mov r2, r8 strb r0, [r2] movs r3, 0x4 ldrsh r0, [r4, r3] ldr r1, _0807130C lsls r2, r7, 2 adds r2, r1 movs r3, 0 ldrsh r1, [r2, r3] adds r0, r1 movs r3, 0x6 ldrsh r1, [r4, r3] movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 bl sub_804954C adds r5, r0, 0 ldrh r1, [r5] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _08071260 b _0807137E _08071260: movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08071286 ldr r0, _08071310 ldr r0, [r0] ldr r1, _08071314 adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _08071286 adds r0, r4, 0 movs r1, 0xF bl sub_80718D8 lsls r0, 24 cmp r0, 0 beq _08071286 b _0807137E _08071286: ldr r0, [r5, 0x14] cmp r0, 0 beq _080712B8 adds r0, r4, 0 movs r1, 0xE bl sub_80718D8 lsls r0, 24 cmp r0, 0 beq _080712B8 ldr r0, [r5, 0x14] bl sub_80450F8 cmp r0, 0x2 bne _080712B8 ldr r0, [r5, 0x14] adds r0, 0x20 ldrb r0, [r0] cmp r0, 0 bne _0807137E ldr r0, [r4, 0x70] adds r0, 0xE8 ldrb r0, [r0] cmp r0, 0x3 beq _0807137E _080712B8: ldrh r1, [r5] movs r0, 0x3 ands r0, r1 cmp r0, 0x2 bne _080712E6 ldr r1, _08071318 ldr r0, _08071310 ldr r0, [r0] ldr r2, _0807131C adds r0, r2 movs r3, 0 ldrsh r0, [r0, r3] adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 bne _080712E6 adds r0, r4, 0 movs r1, 0x14 bl sub_80718D8 lsls r0, 24 cmp r0, 0 bne _0807137E _080712E6: bl sub_80441E8 lsls r0, 24 cmp r0, 0 bne _08071348 ldr r0, [r4, 0x70] adds r0, 0xE4 ldrb r0, [r0] cmp r0, 0x3 beq _08071308 adds r0, r4, 0 movs r1, 0x9 bl sub_8046CB0 lsls r0, 24 cmp r0, 0 beq _08071320 _08071308: movs r6, 0x3 b _08071348 .align 2, 0 _0807130C: .4byte gUnknown_80F4448 _08071310: .4byte gUnknown_203B418 _08071314: .4byte 0x00000671 _08071318: .4byte gUnknown_810ACC0 _0807131C: .4byte 0x00003a0e _08071320: adds r0, r4, 0 movs r1, 0xC bl sub_80718D8 lsls r0, 24 cmp r0, 0 bne _08071346 adds r0, r4, 0 movs r1, 0xD bl sub_80718D8 lsls r0, 24 cmp r0, 0 beq _08071348 movs r0, 0x1 ands r0, r7 movs r6, 0x3 cmp r0, 0 beq _08071348 _08071346: movs r6, 0x2 _08071348: movs r1, 0x4 ldrsh r0, [r4, r1] movs r2, 0x6 ldrsh r1, [r4, r2] bl sub_804954C adds r0, 0xA adds r0, r6 ldr r2, _08071374 movs r1, 0x7 ands r1, r7 adds r1, r2 ldrb r2, [r0] ldrb r0, [r1] ands r0, r2 cmp r0, 0 beq _0807137E ldr r0, [r5, 0x10] cmp r0, 0 bne _08071378 movs r0, 0x1 b _08071380 .align 2, 0 _08071374: .4byte gUnknown_8106FDD _08071378: movs r0, 0x1 mov r3, r8 strb r0, [r3] _0807137E: movs r0, 0 _08071380: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8071214 thumb_func_start sub_807138C sub_807138C: push {r4,r5,lr} adds r4, r0, 0 ldr r0, [r4, 0x70] movs r1, 0x2 ldrsh r0, [r0, r1] bl sub_8070328 lsls r0, 24 lsrs r5, r0, 24 bl sub_80441E8 lsls r0, 24 cmp r0, 0 bne _080713E2 ldr r0, [r4, 0x70] adds r0, 0xE4 ldrb r0, [r0] cmp r0, 0x3 beq _080713E0 adds r0, r4, 0 movs r1, 0x9 bl sub_8046CB0 lsls r0, 24 cmp r0, 0 bne _080713E0 adds r0, r4, 0 movs r1, 0xC bl sub_80718D8 lsls r0, 24 cmp r0, 0 beq _080713D2 movs r5, 0x2 b _080713E2 _080713D2: adds r0, r4, 0 movs r1, 0xD bl sub_80718D8 lsls r0, 24 cmp r0, 0 beq _080713E2 _080713E0: movs r5, 0x3 _080713E2: cmp r5, 0x3 bne _08071408 ldr r4, [r4, 0x70] movs r0, 0x64 bl sub_8084100 movs r1, 0xFD lsls r1, 1 adds r2, r4, r1 ldrh r1, [r2] adds r1, r0 strh r1, [r2] lsls r1, 16 asrs r1, 16 cmp r1, 0xC7 ble _08071458 movs r0, 0 strh r0, [r2] b _08071468 _08071408: ldr r1, _0807145C ldr r0, _08071460 ldr r0, [r0] ldr r2, _08071464 adds r0, r2 movs r2, 0 ldrsh r0, [r0, r2] adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 bne _08071432 cmp r5, 0x1 bne _08071432 adds r0, r4, 0 movs r1, 0x14 bl sub_80718D8 lsls r0, 24 cmp r0, 0 beq _08071432 movs r5, 0 _08071432: movs r1, 0x4 ldrsh r0, [r4, r1] movs r2, 0x6 ldrsh r1, [r4, r2] bl sub_804954C adds r0, 0xA adds r0, r5 ldrb r0, [r0] cmp r0, 0x54 beq _08071468 cmp r0, 0x51 beq _08071468 cmp r0, 0x45 beq _08071468 cmp r0, 0x15 beq _08071468 cmp r0, 0x55 beq _08071468 _08071458: movs r0, 0 b _0807146A .align 2, 0 _0807145C: .4byte gUnknown_810ACC0 _08071460: .4byte gUnknown_203B418 _08071464: .4byte 0x00003a0e _08071468: movs r0, 0x1 _0807146A: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_807138C thumb_func_start sub_8071470 sub_8071470: push {r4,lr} lsls r1, 24 lsrs r4, r1, 24 movs r1, 0x3 bl sub_80718AC lsls r0, 24 cmp r0, 0 beq _0807148A cmp r4, 0 beq _0807148A movs r0, 0x1 b _0807148C _0807148A: movs r0, 0 _0807148C: pop {r4} pop {r1} bx r1 thumb_func_end sub_8071470 thumb_func_start sub_8071494 sub_8071494: push {r4,r5,lr} adds r5, r0, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0807150E ldr r4, [r5, 0x70] adds r0, r4, 0 adds r0, 0xFA ldrb r0, [r0] cmp r0, 0 bne _0807150A ldrb r0, [r4, 0x7] cmp r0, 0 bne _0807150E adds r0, r5, 0 movs r1, 0x2B bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _080714DC movs r2, 0 movs r1, 0x10 ldrsh r0, [r4, r1] lsrs r1, r0, 31 adds r0, r1 movs r3, 0xE ldrsh r1, [r4, r3] asrs r0, 1 cmp r1, r0 bge _080714D8 movs r2, 0x1 _080714D8: cmp r2, 0 bne _0807150A _080714DC: adds r0, r5, 0 movs r1, 0xA bl sub_80718AC lsls r0, 24 cmp r0, 0 bne _0807150A adds r0, r5, 0 movs r1, 0x6 bl sub_80718AC lsls r0, 24 cmp r0, 0 beq _0807150E movs r1, 0x10 ldrsh r0, [r4, r1] lsrs r1, r0, 31 adds r0, r1 movs r2, 0xE ldrsh r1, [r4, r2] asrs r0, 1 cmp r1, r0 bgt _0807150E _0807150A: movs r0, 0x1 b _08071510 _0807150E: movs r0, 0 _08071510: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8071494 thumb_func_start sub_8071518 sub_8071518: push {r4,r5,lr} adds r4, r0, 0 lsls r1, 24 lsrs r5, r1, 24 bl sub_8071494 lsls r0, 24 cmp r0, 0 bne _0807152E movs r0, 0 b _08071538 _0807152E: adds r0, r4, 0 adds r1, r5, 0 bl sub_8071540 movs r0, 0x1 _08071538: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8071518 thumb_func_start sub_8071540 sub_8071540: push {r4-r7,lr} adds r5, r0, 0 lsls r1, 24 lsrs r7, r1, 24 ldr r4, [r5, 0x70] adds r6, r4, 0 ldrb r0, [r4, 0x7] cmp r0, 0 bne _08071590 adds r0, r5, 0 movs r1, 0x2B bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _08071590 movs r2, 0 movs r1, 0x10 ldrsh r0, [r4, r1] lsrs r1, r0, 31 adds r0, r1 movs r3, 0xE ldrsh r1, [r4, r3] asrs r0, 1 cmp r1, r0 bgt _08071576 movs r2, 0x1 _08071576: adds r0, r6, 0 movs r1, 0x4 bl sub_8071ACC lsls r0, 24 lsrs r0, 24 cmp r7, 0 beq _08071590 cmp r0, 0 beq _08071590 adds r0, r5, 0 bl sub_8042910 _08071590: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8071540 thumb_func_start sub_8071598 sub_8071598: push {r4-r6,lr} adds r6, r0, 0 lsls r2, 24 lsrs r2, 24 lsls r3, 24 lsrs r3, 24 ldr r5, [r6, 0x70] ldr r4, [r1, 0x70] cmp r6, r1 bne _080715B0 movs r0, 0 b _08071670 _080715B0: ldrb r0, [r5, 0x8] cmp r0, 0x1 beq _08071606 ldrb r0, [r4, 0x8] cmp r0, 0x1 beq _08071606 adds r0, r5, 0 adds r0, 0xA4 ldrb r1, [r0] cmp r1, 0x4 beq _08071606 adds r0, r4, 0 adds r0, 0xA4 ldrb r0, [r0] cmp r0, 0x4 beq _08071606 cmp r1, 0x1 beq _08071606 cmp r0, 0x1 beq _08071606 cmp r3, 0 beq _080715EC ldrb r0, [r5, 0x6] cmp r0, 0 bne _080715EC adds r0, r4, 0 adds r0, 0xB0 ldrb r0, [r0] cmp r0, 0x6 beq _08071606 _080715EC: cmp r2, 0 bne _0807160A adds r0, r4, 0 adds r0, 0xE4 ldrb r0, [r0] cmp r0, 0x1 bne _0807160A adds r0, r6, 0 bl sub_8071884 lsls r0, 24 cmp r0, 0 bne _0807160A _08071606: movs r0, 0x2 b _08071670 _0807160A: movs r1, 0x80 lsls r1, 1 adds r0, r5, r1 ldrb r0, [r0] movs r6, 0 cmp r0, 0 beq _08071620 movs r6, 0x2 cmp r0, 0x1 bne _08071620 movs r6, 0x1 _08071620: ldrb r0, [r5, 0x8] cmp r0, 0 beq _08071630 movs r5, 0 cmp r0, 0x3 bne _08071638 movs r5, 0x1 b _08071638 _08071630: ldrb r1, [r5, 0x6] negs r0, r1 orrs r0, r1 lsrs r5, r0, 31 _08071638: ldrb r0, [r4, 0x8] cmp r0, 0 beq _08071648 movs r1, 0 cmp r0, 0x3 bne _08071650 movs r1, 0x1 b _08071650 _08071648: ldrb r1, [r4, 0x6] negs r0, r1 orrs r0, r1 lsrs r1, r0, 31 _08071650: movs r3, 0 adds r0, r4, 0 adds r0, 0xC8 ldrb r0, [r0] cmp r0, 0x2 bne _0807165E movs r3, 0x1 _0807165E: ldr r2, _08071678 lsls r0, r1, 1 adds r0, r3, r0 lsls r1, r5, 2 adds r0, r1 lsls r1, r6, 3 adds r0, r1 adds r0, r2 ldrb r0, [r0] _08071670: pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08071678: .4byte gUnknown_8106FE5 thumb_func_end sub_8071598 thumb_func_start sub_807167C sub_807167C: push {lr} ldr r2, [r0, 0x70] ldr r1, [r1, 0x70] adds r0, r2, 0 adds r0, 0xA4 ldrb r0, [r0] cmp r0, 0x1 beq _080716D2 adds r0, r2, 0 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x4A beq _0807169A cmp r0, 0x47 bne _0807169E _0807169A: movs r0, 0x1 b _080716A0 _0807169E: movs r0, 0 _080716A0: cmp r0, 0 bne _080716D2 ldrb r0, [r2, 0x8] cmp r0, 0 bne _080716D2 adds r0, r1, 0 adds r0, 0xA4 ldrb r0, [r0] cmp r0, 0x1 beq _080716D2 adds r0, r1, 0 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x4A beq _080716C2 cmp r0, 0x47 bne _080716C6 _080716C2: movs r0, 0x1 b _080716C8 _080716C6: movs r0, 0 _080716C8: cmp r0, 0 bne _080716D2 ldrb r0, [r1, 0x8] cmp r0, 0 beq _080716D6 _080716D2: movs r0, 0x2 b _080716E4 _080716D6: ldrb r0, [r2, 0x6] ldrb r1, [r1, 0x6] cmp r0, r1 bne _080716E2 movs r0, 0 b _080716E4 _080716E2: movs r0, 0x1 _080716E4: pop {r1} bx r1 thumb_func_end sub_807167C thumb_func_start sub_80716E8 sub_80716E8: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 lsls r2, 24 lsrs r2, 24 ldr r0, [r4, 0x70] adds r0, 0xC4 ldrb r0, [r0] cmp r0, 0x2 bne _08071720 cmp r2, 0 beq _08071714 ldr r0, _08071718 movs r2, 0 bl sub_8045B94 ldr r0, _0807171C ldr r2, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_80522F4 _08071714: movs r0, 0x1 b _08071722 .align 2, 0 _08071718: .4byte gUnknown_202DF98 _0807171C: .4byte gUnknown_80FC2FC _08071720: movs r0, 0 _08071722: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80716E8 thumb_func_start sub_8071728 sub_8071728: push {r4-r6,lr} adds r6, r0, 0 adds r4, r1, 0 lsls r2, 24 lsrs r2, 24 adds r5, r2, 0 ldr r0, [r4, 0x70] adds r0, 0xC4 ldrb r0, [r0] cmp r0, 0xE bne _08071758 cmp r2, 0 beq _0807178E ldr r0, _08071750 movs r2, 0 bl sub_8045B94 ldr r0, _08071754 b _08071784 .align 2, 0 _08071750: .4byte gUnknown_202DF98 _08071754: .4byte gUnknown_80FC31C _08071758: adds r0, r4, 0 movs r1, 0xF bl sub_8071824 lsls r0, 24 cmp r0, 0 bne _08071774 adds r0, r4, 0 movs r1, 0x18 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0807179C _08071774: cmp r5, 0 beq _0807178E ldr r0, _08071794 adds r1, r4, 0 movs r2, 0 bl sub_8045B94 ldr r0, _08071798 _08071784: ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 _0807178E: movs r0, 0x1 b _0807179E .align 2, 0 _08071794: .4byte gUnknown_202DF98 _08071798: .4byte gUnknown_80FCEFC _0807179C: movs r0, 0 _0807179E: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8071728 thumb_func_start sub_80717A4 sub_80717A4: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} mov r8, r0 lsls r1, 16 lsrs r1, 16 mov r9, r1 ldr r6, [r0, 0x70] adds r0, r6, 0 adds r0, 0xA8 ldrb r0, [r0] cmp r0, 0x1 beq _080717CE cmp r0, 0x5 beq _080717CE cmp r0, 0x3 beq _080717CE b _08071816 _080717CA: movs r0, 0x1 b _08071818 _080717CE: movs r7, 0 movs r0, 0x8C lsls r0, 1 adds r4, r6, r0 adds r5, r4, 0 _080717D8: ldrb r1, [r4] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0807180C ldrb r0, [r6, 0x7] cmp r0, 0 bne _080717F0 movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _0807180C _080717F0: mov r0, r8 adds r1, r5, 0 movs r2, 0x1 bl sub_805744C lsls r0, 24 cmp r0, 0 beq _0807180C ldrb r0, [r4, 0x4] cmp r0, 0 beq _0807180C ldrh r0, [r4, 0x2] cmp r0, r9 beq _080717CA _0807180C: adds r4, 0x8 adds r5, 0x8 adds r7, 0x1 cmp r7, 0x3 ble _080717D8 _08071816: movs r0, 0 _08071818: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80717A4 thumb_func_start sub_8071824 sub_8071824: push {r4,r5,lr} adds r4, r0, 0 lsls r1, 24 lsrs r5, r1, 24 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08071850 ldr r1, [r4, 0x70] adds r0, r1, 0 adds r0, 0x5E ldrb r0, [r0] cmp r0, r5 beq _0807184C adds r0, r1, 0 adds r0, 0x5F ldrb r0, [r0] cmp r0, r5 bne _08071850 _0807184C: movs r0, 0x1 b _08071852 _08071850: movs r0, 0 _08071852: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8071824 thumb_func_start sub_8071858 sub_8071858: push {lr} lsls r1, 24 lsrs r1, 24 adds r3, r1, 0 ldr r0, [r0, 0x70] adds r2, r0, 0 cmp r1, 0 beq _0807187A adds r0, 0x5C ldrb r0, [r0] cmp r0, r1 beq _0807187E adds r0, r2, 0 adds r0, 0x5D ldrb r0, [r0] cmp r0, r3 beq _0807187E _0807187A: movs r0, 0 b _08071880 _0807187E: movs r0, 0x1 _08071880: pop {r1} bx r1 thumb_func_end sub_8071858 thumb_func_start sub_8071884 sub_8071884: push {lr} adds r1, r0, 0 ldr r0, [r1, 0x70] adds r0, 0xE8 ldrb r0, [r0] cmp r0, 0x3 beq _080718A4 adds r0, r1, 0 movs r1, 0x1A bl sub_8046CB0 lsls r0, 24 cmp r0, 0 bne _080718A4 movs r0, 0 b _080718A6 _080718A4: movs r0, 0x1 _080718A6: pop {r1} bx r1 thumb_func_end sub_8071884 thumb_func_start sub_80718AC sub_80718AC: push {lr} lsls r1, 24 lsrs r1, 24 ldr r2, [r0, 0x70] ldrb r0, [r2, 0x7] cmp r0, 0 beq _080718C4 movs r0, 0 cmp r1, 0x1 bne _080718D4 movs r0, 0x1 b _080718D4 _080718C4: movs r3, 0 adds r0, r2, 0 adds r0, 0x94 ldrb r0, [r0] cmp r0, r1 bne _080718D2 movs r3, 0x1 _080718D2: adds r0, r3, 0 _080718D4: pop {r1} bx r1 thumb_func_end sub_80718AC thumb_func_start sub_80718D8 sub_80718D8: push {lr} lsls r2, r1, 24 lsrs r2, 24 ldr r0, [r0, 0x70] adds r0, 0x90 movs r1, 0x1 lsls r1, r2 bl sub_808ECD0 lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end sub_80718D8 thumb_func_start sub_80718F4 sub_80718F4: push {r4,lr} adds r4, r1, 0 lsls r4, 24 lsrs r4, 24 lsls r2, 24 lsrs r2, 24 ldr r0, [r0, 0x70] adds r0, 0x90 movs r3, 0x1 adds r1, r3, 0 lsls r1, r4 lsls r3, r2 orrs r1, r3 bl sub_808ECD0 lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 thumb_func_end sub_80718F4 thumb_func_start sub_807191C sub_807191C: push {r4-r6,lr} ldr r5, [r0, 0x70] ldrb r1, [r5, 0x6] cmp r1, 0 beq _08071978 adds r4, r5, 0 adds r4, 0x90 adds r0, r4, 0 movs r1, 0x8 bl sub_808EC30 adds r0, r4, 0 movs r1, 0x6 bl sub_808EC30 adds r0, r4, 0 movs r1, 0x2 bl sub_808EC30 adds r0, r5, 0 adds r0, 0xF7 ldrb r0, [r0] cmp r0, 0 beq _08071954 adds r0, r4, 0 movs r1, 0x12 bl sub_808EC30 _08071954: ldrb r0, [r5, 0x9] ldr r1, _08071974 movs r2, 0 ldrsh r1, [r1, r2] cmp r0, r1 blt _08071968 adds r0, r4, 0 movs r1, 0x16 bl sub_808EC30 _08071968: adds r1, r5, 0 adds r1, 0x94 movs r0, 0x2 strb r0, [r1] b _080719BE .align 2, 0 _08071974: .4byte gUnknown_80F59C4 _08071978: adds r0, r5, 0 adds r0, 0x90 strb r1, [r0] adds r2, r5, 0 adds r2, 0x91 strb r1, [r2] adds r2, 0x1 strb r1, [r2] movs r4, 0x1 adds r6, r0, 0 _0807198C: movs r1, 0xC ldrsh r0, [r5, r1] lsls r1, r4, 24 lsrs r1, 24 bl sub_808EB7C lsls r0, 24 cmp r0, 0 beq _080719B8 movs r1, 0x1 lsls r1, r4 adds r0, r5, 0 adds r0, 0x8C bl sub_808ECD0 lsls r0, 24 cmp r0, 0 beq _080719B8 adds r0, r6, 0 adds r1, r4, 0 bl sub_808EC30 _080719B8: adds r4, 0x1 cmp r4, 0x17 ble _0807198C _080719BE: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_807191C thumb_func_start sub_80719C4 sub_80719C4: push {r4-r6,lr} adds r5, r0, 0 ldr r0, [r5, 0x70] ldrb r0, [r0, 0x6] cmp r0, 0 beq _080719D6 b _08071A0A _080719D2: movs r0, 0x1 b _08071A0C _080719D6: movs r6, 0 _080719D8: ldr r0, _08071A14 ldr r0, [r0] lsls r1, r6, 2 ldr r2, _08071A18 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08071A04 cmp r5, r4 beq _08071A04 adds r0, r5, 0 adds r1, r4, 0 bl sub_8045990 lsls r0, 24 cmp r0, 0 bne _080719D2 _08071A04: adds r6, 0x1 cmp r6, 0x3 ble _080719D8 _08071A0A: movs r0, 0 _08071A0C: pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08071A14: .4byte gUnknown_203B418 _08071A18: .4byte 0x0001357c thumb_func_end sub_80719C4 thumb_func_start sub_8071A1C sub_8071A1C: push {lr} adds r3, r0, 0 adds r2, r1, 0 ldrh r1, [r2, 0x2] movs r0, 0xA2 lsls r0, 1 cmp r1, r0 beq _08071A38 adds r0, r2, 0 bl sub_8092B00 lsls r0, 24 lsrs r0, 24 b _08071A3E _08071A38: ldr r0, [r3, 0x70] adds r0, 0x3E ldrb r0, [r0] _08071A3E: pop {r1} bx r1 thumb_func_end sub_8071A1C thumb_func_start sub_8071A44 sub_8071A44: push {r4,lr} adds r2, r0, 0 adds r4, r1, 0 ldrh r1, [r4, 0x2] movs r0, 0xA2 lsls r0, 1 cmp r1, r0 beq _08071A60 adds r0, r4, 0 bl sub_8092BC0 ldrb r1, [r4, 0x5] adds r0, r1 b _08071A6A _08071A60: ldr r0, [r2, 0x70] movs r1, 0x3C ldrsh r0, [r0, r1] ldrb r4, [r4, 0x5] adds r0, r4 _08071A6A: pop {r4} pop {r1} bx r1 thumb_func_end sub_8071A44 thumb_func_start sub_8071A70 sub_8071A70: push {lr} movs r1, 0x2 ldrsh r0, [r0, r1] bl sub_808DBD8 lsls r0, 24 cmp r0, 0 beq _08071A84 movs r0, 0x1 b _08071A86 _08071A84: movs r0, 0 _08071A86: pop {r1} bx r1 thumb_func_end sub_8071A70 thumb_func_start sub_8071A8C sub_8071A8C: push {r4,lr} adds r4, r0, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08071AC2 ldr r1, [r4, 0x70] adds r0, r1, 0 adds r0, 0xA4 ldrb r0, [r0] cmp r0, 0x1 beq _08071AC2 adds r0, r1, 0 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x4A beq _08071AB4 cmp r0, 0x47 bne _08071AB8 _08071AB4: movs r0, 0x1 b _08071ABA _08071AB8: movs r0, 0 _08071ABA: cmp r0, 0 bne _08071AC2 movs r0, 0x1 b _08071AC4 _08071AC2: movs r0, 0 _08071AC4: pop {r4} pop {r1} bx r1 thumb_func_end sub_8071A8C thumb_func_start sub_8071ACC sub_8071ACC: push {r4,r5,lr} adds r3, r0, 0 lsls r1, 16 lsrs r4, r1, 16 lsls r2, 24 lsrs r5, r2, 24 movs r1, 0xA7 lsls r1, 1 adds r0, r3, r1 ldrh r0, [r0] ands r0, r4 cmp r0, 0 beq _08071AF6 movs r0, 0xA8 lsls r0, 1 adds r2, r3, r0 ldrh r1, [r2] adds r0, r4, 0 orrs r0, r1 strh r0, [r2] b _08071B02 _08071AF6: movs r0, 0xA8 lsls r0, 1 adds r1, r3, r0 ldrh r0, [r1] bics r0, r4 strh r0, [r1] _08071B02: cmp r5, 0 beq _08071B16 movs r1, 0xA7 lsls r1, 1 adds r2, r3, r1 ldrh r1, [r2] adds r0, r4, 0 orrs r0, r1 strh r0, [r2] b _08071B22 _08071B16: movs r0, 0xA7 lsls r0, 1 adds r1, r3, r0 ldrh r0, [r1] bics r0, r4 strh r0, [r1] _08071B22: movs r1, 0xA8 lsls r1, 1 adds r0, r3, r1 ldrh r0, [r0] ands r0, r4 cmp r0, 0 bne _08071B40 subs r1, 0x2 adds r0, r3, r1 ldrh r0, [r0] ands r0, r4 cmp r0, 0 beq _08071B40 movs r0, 0x1 b _08071B42 _08071B40: movs r0, 0 _08071B42: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8071ACC thumb_func_start sub_8071B48 sub_8071B48: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x14 movs r0, 0 mov r8, r0 ldr r0, _08071B94 ldr r6, [r0] ldr r1, _08071B98 adds r0, r6, r1 movs r2, 0 ldrsh r0, [r0, r2] cmp r0, 0 bne _08071B66 b _08071D3E _08071B66: subs r1, 0x20 adds r0, r6, r1 ldrb r0, [r0] cmp r0, 0x15 bne _08071B7C ldr r2, _08071B9C adds r0, r6, r2 ldrb r0, [r0] cmp r0, 0 beq _08071B7C b _08071D3E _08071B7C: ldr r0, _08071BA0 adds r1, r6, r0 ldrh r0, [r1] adds r2, r0, 0x1 strh r2, [r1] ldr r1, _08071BA4 adds r0, r6, r1 ldrb r0, [r0] cmp r0, 0 bne _08071BAC ldr r0, _08071BA8 b _08071BAE .align 2, 0 _08071B94: .4byte gUnknown_203B418 _08071B98: .4byte 0x00000664 _08071B9C: .4byte 0x000037fd _08071BA0: .4byte 0x00000662 _08071BA4: .4byte 0x0000066e _08071BA8: .4byte gUnknown_80F4DAA _08071BAC: ldr r0, _08071C60 _08071BAE: lsls r1, r2, 16 asrs r1, 16 movs r2, 0 ldrsh r0, [r0, r2] cmp r1, r0 bge _08071BBC b _08071D3E _08071BBC: ldr r1, _08071C64 adds r0, r6, r1 movs r2, 0 ldrsh r1, [r0, r2] movs r0, 0xE1 lsls r0, 2 cmp r1, r0 ble _08071BF6 ldr r1, _08071C68 adds r0, r6, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08071BF6 ldrh r0, [r4, 0x26] ldr r2, _08071C6C adds r1, r6, r2 ldr r1, [r1] cmp r0, r1 bne _08071BF6 ldr r0, _08071C70 adds r1, r4, 0 movs r2, 0 bl sub_8045B94 mov r8, r4 _08071BF6: ldr r1, _08071C64 adds r0, r6, r1 movs r1, 0 strh r1, [r0] ldr r2, _08071C68 adds r0, r6, r2 str r1, [r0] movs r7, 0 movs r5, 0 _08071C08: lsls r0, r5, 2 ldr r2, _08071C74 adds r1, r6, r2 adds r1, r0 ldr r4, [r1] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08071C3A movs r1, 0x4 ldrsh r0, [r4, r1] movs r2, 0x6 ldrsh r1, [r4, r2] bl sub_804954C ldrh r0, [r0] movs r2, 0x80 lsls r2, 1 adds r1, r2, 0 ands r0, r1 cmp r0, 0 bne _08071C3A adds r7, 0x1 _08071C3A: adds r5, 0x1 cmp r5, 0xF ble _08071C08 ldr r1, _08071C78 adds r0, r6, r1 ldrb r0, [r0] cmp r0, 0 bne _08071C92 ldr r0, _08071C7C ldr r0, [r0] ldr r2, _08071C80 adds r0, r2 ldrb r0, [r0] cmp r0, 0xFF bne _08071C88 ldr r0, _08071C84 movs r1, 0 ldrsh r0, [r0, r1] b _08071C8E .align 2, 0 _08071C60: .4byte gUnknown_80F4DAC _08071C64: .4byte 0x00000662 _08071C68: .4byte 0x00017b34 _08071C6C: .4byte 0x00017b40 _08071C70: .4byte gUnknown_202DF98 _08071C74: .4byte 0x0001358c _08071C78: .4byte 0x0000066e _08071C7C: .4byte gUnknown_203B418 _08071C80: .4byte 0x00003a0c _08071C84: .4byte gUnknown_80F4DA6 _08071C88: ldr r0, _08071CB8 movs r2, 0 ldrsh r0, [r0, r2] _08071C8E: cmp r7, r0 bge _08071D3E _08071C92: mov r0, r8 cmp r0, 0 beq _08071CA8 ldr r0, _08071CBC ldr r1, [r0] movs r0, 0 bl sub_805239C mov r0, r8 bl sub_8042920 _08071CA8: ldr r1, _08071CC0 adds r0, r6, r1 ldrb r0, [r0] cmp r0, 0 beq _08071CC4 movs r5, 0xBE lsls r5, 1 b _08071CCE .align 2, 0 _08071CB8: .4byte gUnknown_80F4DA8 _08071CBC: .4byte gUnknown_80FED68 _08071CC0: .4byte 0x0000066e _08071CC4: movs r0, 0 bl sub_803D970 lsls r0, 16 asrs r5, r0, 16 _08071CCE: adds r0, r5, 0 bl sub_803DA20 adds r4, r0, 0 cmp r4, 0 bne _08071CDC movs r4, 0x1 _08071CDC: adds r0, r5, 0 movs r1, 0 bl sub_806AA0C lsls r0, 24 cmp r0, 0 beq _08071D3E add r0, sp, 0xC bl sub_8083660 lsls r0, 24 cmp r0, 0 beq _08071D3E mov r0, sp movs r1, 0 strh r5, [r0] strh r4, [r0, 0x8] strb r1, [r0, 0x2] movs r0, 0x64 bl sub_8084100 adds r4, r0, 0 ldr r0, _08071D24 ldr r0, [r0] ldr r2, _08071D28 adds r0, r2 ldrb r0, [r0] bl sub_8090168 lsls r0, 16 asrs r0, 16 cmp r4, r0 bge _08071D2C movs r0, 0x1 b _08071D2E .align 2, 0 _08071D24: .4byte gUnknown_203B418 _08071D28: .4byte 0x00000644 _08071D2C: movs r0, 0 _08071D2E: str r0, [sp, 0x4] mov r1, sp movs r0, 0 strb r0, [r1, 0x10] mov r0, sp movs r1, 0 bl sub_806B7F8 _08071D3E: add sp, 0x14 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8071B48 thumb_func_start sub_8071D4C sub_8071D4C: push {lr} ldr r3, [r1, 0x70] ldrb r0, [r3, 0x9] cmp r0, 0x64 beq _08071D94 adds r0, r3, 0 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x4A beq _08071D64 cmp r0, 0x47 bne _08071D68 _08071D64: movs r0, 0x1 b _08071D6A _08071D68: movs r0, 0 _08071D6A: cmp r0, 0 bne _08071D94 ldr r1, [r3, 0x18] adds r2, r1, r2 ldr r0, _08071D98 cmp r2, r0 ble _08071D7A ldr r2, _08071D9C _08071D7A: subs r2, r1 cmp r2, 0 beq _08071D94 movs r0, 0xFE lsls r0, 1 adds r1, r3, r0 ldr r0, [r1] adds r0, r2 str r0, [r1] ldr r0, _08071DA0 ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0xD] _08071D94: pop {r0} bx r0 .align 2, 0 _08071D98: .4byte 0x0098967e _08071D9C: .4byte 0x0098967f _08071DA0: .4byte gUnknown_203B418 thumb_func_end sub_8071D4C thumb_func_start sub_8071DA4 sub_8071DA4: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xD4 str r0, [sp, 0xB4] ldr r2, _08071E44 ldr r1, [r2] ldrb r0, [r1, 0xD] cmp r0, 0 bne _08071DBE b _08071FE2 _08071DBE: movs r0, 0 strb r0, [r1, 0xD] ldr r0, [r2] ldrb r0, [r0, 0x10] cmp r0, 0 beq _08071DCC b _08071FE2 _08071DCC: ldr r0, [sp, 0xB4] bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _08071DE2 mov r0, sp bl sub_80457DC mov r0, sp str r0, [sp, 0xB4] _08071DE2: movs r4, 0 _08071DE4: movs r5, 0 ldr r0, _08071E44 ldr r0, [r0] lsls r1, r4, 2 ldr r2, _08071E48 adds r0, r2 adds r0, r1 ldr r0, [r0] mov r8, r0 movs r0, 0 str r0, [sp, 0xB8] movs r1, 0 movs r2, 0 str r1, [sp, 0xBC] str r2, [sp, 0xC0] movs r0, 0 movs r1, 0 str r0, [sp, 0xC4] str r1, [sp, 0xC8] adds r1, r4, 0x1 str r1, [sp, 0xCC] mov r2, r8 cmp r2, 0 bne _08071E16 b _08071FDA _08071E16: mov r0, r8 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _08071E24 b _08071FDA _08071E24: mov r0, r8 ldr r6, [r0, 0x70] movs r1, 0xE ldrsh r0, [r6, r1] cmp r0, 0 bne _08071E32 b _08071FDA _08071E32: adds r1, r6, 0 adds r1, 0xF9 ldrb r0, [r1] cmp r0, 0 beq _08071E4C add r2, sp, 0xB8 ldrb r2, [r2] strb r2, [r1] b _08071FCA .align 2, 0 _08071E44: .4byte gUnknown_203B418 _08071E48: .4byte 0x000135cc _08071E4C: movs r1, 0xFE lsls r1, 1 adds r0, r6, r1 ldr r0, [r0] mov r10, r0 cmp r0, 0 beq _08071EB6 ldrb r0, [r6, 0x7] cmp r0, 0 beq _08071E68 ldrb r1, [r6, 0x9] add r0, sp, 0x74 bl sub_808EB48 _08071E68: movs r0, 0x10 ldrsh r2, [r6, r0] str r2, [sp, 0xB8] ldrb r1, [r6, 0x14] str r1, [sp, 0xBC] ldrb r2, [r6, 0x15] str r2, [sp, 0xC0] ldrb r0, [r6, 0x16] str r0, [sp, 0xC4] ldrb r1, [r6, 0x17] str r1, [sp, 0xC8] ldrb r0, [r6, 0x9] cmp r0, 0x64 beq _08071EB6 ldr r0, [r6, 0x18] add r0, r10 str r0, [r6, 0x18] mov r2, r10 ldr r0, _08071EE8 str r2, [r0] ldr r0, _08071EEC adds r1, r6, 0 movs r2, 0 bl sub_80708B4 ldr r0, _08071EF0 ldr r2, [r0] ldr r0, [sp, 0xB4] mov r1, r8 bl sub_80522F4 ldr r0, [sp, 0xB4] mov r1, r8 movs r2, 0x1 movs r3, 0x1 bl sub_80723D0 lsls r0, 24 lsrs r5, r0, 24 _08071EB6: ldr r1, _08071EF4 adds r0, r6, r1 ldrb r0, [r0] adds r4, 0x1 str r4, [sp, 0xCC] cmp r0, 0 beq _08071F3A movs r2, 0x2 ldrsh r0, [r6, r2] add r1, sp, 0x8C movs r2, 0 movs r3, 0 bl sub_808E400 adds r7, r0, 0 add r0, sp, 0x8C mov r9, r0 cmp r7, 0 beq _08071F38 adds r0, r7, 0 bl sub_8084100 adds r4, r0, 0 movs r1, 0 b _08071F02 .align 2, 0 _08071EE8: .4byte gUnknown_202DE30 _08071EEC: .4byte gUnknown_202DF98 _08071EF0: .4byte gUnknown_80F9E64 _08071EF4: .4byte 0x00000149 _08071EF8: adds r4, 0x1 cmp r4, r7 blt _08071F00 movs r4, 0 _08071F00: adds r1, 0x1 _08071F02: cmp r1, r7 bge _08071F38 lsls r0, r4, 1 mov r2, r9 adds r5, r2, r0 movs r2, 0 ldrsh r0, [r5, r2] str r1, [sp, 0xD0] bl sub_803D930 lsls r0, 24 ldr r1, [sp, 0xD0] cmp r0, 0 beq _08071EF8 movs r2, 0 ldrsh r0, [r5, r2] bl sub_80687D0 ldr r1, [sp, 0xD0] cmp r0, 0 beq _08071EF8 movs r0, 0 ldrsh r2, [r5, r0] ldr r0, [sp, 0xB4] mov r1, r8 bl sub_8072B78 _08071F38: movs r5, 0 _08071F3A: cmp r5, 0 beq _08071F7A ldrb r0, [r6, 0x6] cmp r0, 0 bne _08071F7A movs r1, 0x10 ldrsh r0, [r6, r1] ldr r2, [sp, 0xB8] subs r0, r2 ldr r1, _08071FF4 str r0, [r1] ldrb r0, [r6, 0x14] ldr r2, [sp, 0xBC] subs r0, r2 str r0, [r1, 0x4] ldrb r0, [r6, 0x16] ldr r1, [sp, 0xC4] subs r0, r1 ldr r2, _08071FF4 str r0, [r2, 0x8] ldrb r0, [r6, 0x15] ldr r1, [sp, 0xC0] subs r0, r1 str r0, [r2, 0xC] ldrb r0, [r6, 0x17] ldr r2, [sp, 0xC8] subs r0, r2 ldr r1, _08071FF4 str r0, [r1, 0x10] mov r0, r8 bl sub_807218C _08071F7A: mov r2, r10 cmp r2, 0 beq _08071FCA ldrb r0, [r6, 0x7] cmp r0, 0 beq _08071FCA ldrb r1, [r6, 0x9] add r0, sp, 0x80 bl sub_808EB48 movs r4, 0 add r7, sp, 0x74 add r5, sp, 0x80 _08071F94: adds r0, r7, r4 ldrb r0, [r0] cmp r0, 0 bne _08071FC4 adds r0, r5, r4 ldrb r0, [r0] cmp r0, 0x1 bne _08071FC4 ldr r0, _08071FF8 mov r1, r8 movs r2, 0 bl sub_8045B94 lsls r1, r4, 24 lsrs r1, 24 ldr r0, _08071FFC bl sub_808EAC0 ldr r0, _08072000 ldr r2, [r0] ldr r0, [sp, 0xB4] mov r1, r8 bl sub_80522F4 _08071FC4: adds r4, 0x1 cmp r4, 0xB ble _08071F94 _08071FCA: movs r1, 0xFE lsls r1, 1 adds r0, r6, r1 movs r1, 0 str r1, [r0] ldr r2, _08072004 adds r0, r6, r2 strb r1, [r0] _08071FDA: ldr r4, [sp, 0xCC] cmp r4, 0x13 bgt _08071FE2 b _08071DE4 _08071FE2: add sp, 0xD4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08071FF4: .4byte gUnknown_202DE30 _08071FF8: .4byte gUnknown_202DF98 _08071FFC: .4byte gUnknown_202DE58 _08072000: .4byte gUnknown_80FF730 _08072004: .4byte 0x00000149 thumb_func_end sub_8071DA4 thumb_func_start sub_8072008 sub_8072008: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x38 mov r9, r0 mov r8, r1 adds r4, r2, 0 ldr r0, [sp, 0x58] lsls r3, 24 lsrs r3, 24 mov r10, r3 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x24] mov r0, r8 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _08072036 b _08072162 _08072036: movs r0, 0 str r0, [sp, 0x28] mov r1, r8 ldr r5, [r1, 0x70] ldrb r0, [r5, 0x7] cmp r0, 0 beq _0807204C add r0, sp, 0xC ldrb r1, [r5, 0x9] bl sub_808EB48 _0807204C: movs r0, 0x10 ldrsh r2, [r5, r0] str r2, [sp, 0x2C] ldrb r6, [r5, 0x14] ldrb r7, [r5, 0x15] ldrb r1, [r5, 0x16] str r1, [sp, 0x30] ldrb r2, [r5, 0x17] str r2, [sp, 0x34] adds r0, r5, 0 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x4A beq _0807206C cmp r0, 0x47 bne _08072070 _0807206C: movs r0, 0x1 b _08072072 _08072070: movs r0, 0 _08072072: cmp r0, 0 bne _080720E6 ldrb r0, [r5, 0x9] adds r2, r0, r4 cmp r2, 0x63 ble _08072080 movs r2, 0x64 _08072080: cmp r2, r0 beq _080720E6 movs r0, 0x2 ldrsh r1, [r5, r0] mov r0, sp bl sub_808E010 ldr r0, [sp] str r0, [r5, 0x18] mov r0, r9 mov r1, r8 mov r2, r10 ldr r3, [sp, 0x24] bl sub_80723D0 ldr r1, [sp, 0x28] orrs r1, r0 lsls r0, r1, 24 lsrs r0, 24 str r0, [sp, 0x28] cmp r0, 0 beq _080720E6 ldrb r0, [r5, 0x6] cmp r0, 0 bne _080720E6 ldr r1, _08072174 movs r2, 0x10 ldrsh r0, [r5, r2] ldr r2, [sp, 0x2C] subs r0, r2 str r0, [r1] ldrb r0, [r5, 0x14] subs r0, r6 str r0, [r1, 0x4] ldrb r0, [r5, 0x16] ldr r2, [sp, 0x30] subs r0, r2 str r0, [r1, 0x8] ldrb r0, [r5, 0x15] subs r0, r7 str r0, [r1, 0xC] ldrb r0, [r5, 0x17] ldr r2, [sp, 0x34] subs r0, r2 str r0, [r1, 0x10] mov r0, r10 cmp r0, 0 beq _080720E6 mov r0, r8 bl sub_807218C _080720E6: ldrb r0, [r5, 0x7] cmp r0, 0 beq _08072130 add r4, sp, 0x18 ldrb r1, [r5, 0x9] adds r0, r4, 0 bl sub_808EB48 movs r6, 0 add r7, sp, 0xC _080720FA: adds r0, r7, r6 ldrb r0, [r0] cmp r0, 0 bne _0807212A adds r0, r4, r6 ldrb r0, [r0] cmp r0, 0x1 bne _0807212A ldr r0, _08072178 mov r1, r8 movs r2, 0 bl sub_8045B94 lsls r1, r6, 24 lsrs r1, 24 ldr r0, _0807217C bl sub_808EAC0 ldr r0, _08072180 ldr r2, [r0] mov r0, r9 mov r1, r8 bl sub_80522F4 _0807212A: adds r6, 0x1 cmp r6, 0xB ble _080720FA _08072130: movs r1, 0xFE lsls r1, 1 adds r0, r5, r1 movs r1, 0 str r1, [r0] ldr r2, _08072184 adds r0, r5, r2 strb r1, [r0] ldr r0, [sp, 0x28] cmp r0, 0 bne _08072162 mov r1, r10 cmp r1, 0 beq _08072162 ldr r0, _08072178 mov r1, r8 movs r2, 0 bl sub_8045B94 ldr r0, _08072188 ldr r2, [r0] mov r0, r9 mov r1, r8 bl sub_80522F4 _08072162: add sp, 0x38 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08072174: .4byte gUnknown_202DE30 _08072178: .4byte gUnknown_202DF98 _0807217C: .4byte gUnknown_202DE58 _08072180: .4byte gUnknown_80FF730 _08072184: .4byte 0x00000149 _08072188: .4byte gUnknown_80F9B74 thumb_func_end sub_8072008 thumb_func_start sub_807218C sub_807218C: push {r4-r6,lr} sub sp, 0x190 adds r4, r0, 0 movs r6, 0 ldr r5, [r4, 0x70] movs r1, 0 bl sub_806A2BC ldr r0, _080721C8 adds r1, r5, 0 movs r2, 0 bl sub_80708B4 adds r0, r4, 0 bl sub_8070BC0 lsls r0, 24 cmp r0, 0 beq _08072200 movs r3, 0 movs r0, 0x2 ldrsh r1, [r5, r0] adds r0, r5, 0 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x4A bne _080721CC movs r1, 0xD2 lsls r1, 1 b _080721EC .align 2, 0 _080721C8: .4byte gUnknown_202DF98 _080721CC: cmp r0, 0x47 bne _080721D8 ldr r1, _080721D4 b _080721EC .align 2, 0 _080721D4: .4byte 0x000001a5 _080721D8: cmp r0, 0x41 bne _080721EC ldr r0, _080721F8 ldr r0, [r0] ldr r2, _080721FC adds r0, r2 ldrb r0, [r0] cmp r0, 0 bne _080721EC movs r3, 0x1 _080721EC: mov r0, sp movs r2, 0x3 bl sub_806A3D4 b _0807220A .align 2, 0 _080721F8: .4byte gUnknown_203B418 _080721FC: .4byte 0x0000065c _08072200: ldr r0, _08072308 ldr r1, [r0] mov r0, sp bl strcpy _0807220A: movs r0, 0 mov r1, sp movs r2, 0x1 bl PrintFieldMessage mov r0, sp movs r1, 0 strb r1, [r0] ldr r4, _0807230C ldr r0, [r4] cmp r0, 0 ble _0807222E ldr r0, _08072310 ldr r1, [r0] mov r0, sp bl strcat adds r6, 0x1 _0807222E: ldr r0, [r4, 0x4] cmp r0, 0 ble _0807225A ldr r0, _08072314 adds r1, r6, r0 ldrb r0, [r1] cmp r0, 0 beq _0807224E ldr r0, _08072318 ldrb r1, [r1] lsls r1, 2 adds r1, r0 ldr r1, [r1] mov r0, sp bl strcat _0807224E: ldr r0, _0807231C ldr r1, [r0] mov r0, sp bl strcat adds r6, 0x1 _0807225A: ldr r0, _0807230C ldr r0, [r0, 0x8] cmp r0, 0 ble _08072288 ldr r0, _08072314 adds r1, r6, r0 ldrb r0, [r1] cmp r0, 0 beq _0807227C ldr r0, _08072318 ldrb r1, [r1] lsls r1, 2 adds r1, r0 ldr r1, [r1] mov r0, sp bl strcat _0807227C: ldr r0, _08072320 ldr r1, [r0] mov r0, sp bl strcat adds r6, 0x1 _08072288: ldr r0, _0807230C ldr r0, [r0, 0xC] cmp r0, 0 ble _080722B6 ldr r0, _08072314 adds r1, r6, r0 ldrb r0, [r1] cmp r0, 0 beq _080722AA ldr r0, _08072318 ldrb r1, [r1] lsls r1, 2 adds r1, r0 ldr r1, [r1] mov r0, sp bl strcat _080722AA: ldr r0, _08072324 ldr r1, [r0] mov r0, sp bl strcat adds r6, 0x1 _080722B6: ldr r0, _0807230C ldr r0, [r0, 0x10] cmp r0, 0 ble _080722E2 ldr r0, _08072314 adds r1, r6, r0 ldrb r0, [r1] cmp r0, 0 beq _080722D8 ldr r0, _08072318 ldrb r1, [r1] lsls r1, 2 adds r1, r0 ldr r1, [r1] mov r0, sp bl strcat _080722D8: ldr r0, _08072328 ldr r1, [r0] mov r0, sp bl strcat _080722E2: mov r0, sp ldrb r0, [r0] cmp r0, 0 beq _080722F4 movs r0, 0 mov r1, sp movs r2, 0x1 bl PrintFieldMessage _080722F4: bl sub_8083600 movs r1, 0 bl sub_806A2BC add sp, 0x190 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08072308: .4byte gUnknown_80FCF18 _0807230C: .4byte gUnknown_202DE30 _08072310: .4byte gUnknown_80F9ACC _08072314: .4byte gUnknown_8107010 _08072318: .4byte gUnknown_8107018 _0807231C: .4byte gUnknown_80F9AEC _08072320: .4byte gUnknown_80F9B10 _08072324: .4byte gUnknown_80F9B34 _08072328: .4byte gUnknown_80F9B58 thumb_func_end sub_807218C thumb_func_start sub_807232C sub_807232C: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xC mov r8, r0 adds r5, r1, 0 adds r7, r2, 0 adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080723B6 movs r6, 0 ldr r4, [r5, 0x70] adds r0, r4, 0 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x4A beq _08072358 cmp r0, 0x47 bne _0807235C _08072358: movs r0, 0x1 b _0807235E _0807235C: movs r0, 0 _0807235E: cmp r0, 0 bne _0807238C ldrb r0, [r4, 0x9] subs r2, r0, r7 cmp r2, 0 bgt _0807236C movs r2, 0x1 _0807236C: cmp r2, r0 beq _0807238C movs r0, 0x2 ldrsh r1, [r4, r0] mov r0, sp bl sub_808E010 ldr r0, [sp] str r0, [r4, 0x18] mov r0, r8 adds r1, r5, 0 bl sub_80725A4 orrs r6, r0 lsls r0, r6, 24 lsrs r6, r0, 24 _0807238C: movs r1, 0xFE lsls r1, 1 adds r0, r4, r1 movs r1, 0 str r1, [r0] ldr r2, _080723C4 adds r0, r4, r2 strb r1, [r0] cmp r6, 0 bne _080723B6 ldr r0, _080723C8 adds r1, r5, 0 movs r2, 0 bl sub_8045B94 ldr r0, _080723CC ldr r2, [r0] mov r0, r8 adds r1, r5, 0 bl sub_80522F4 _080723B6: add sp, 0xC pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080723C4: .4byte 0x00000149 _080723C8: .4byte gUnknown_202DF98 _080723CC: .4byte gUnknown_80F9B94 thumb_func_end sub_807232C thumb_func_start sub_80723D0 sub_80723D0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x24 str r0, [sp, 0xC] mov r10, r1 lsls r2, 24 lsrs r2, 24 str r2, [sp, 0x10] lsls r3, 24 lsrs r3, 24 str r3, [sp, 0x14] movs r0, 0 str r0, [sp, 0x18] mov r0, r10 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08072422 mov r1, r10 ldr r5, [r1, 0x70] movs r0, 0x2 ldrsh r3, [r5, r0] str r3, [sp, 0x1C] ldr r1, [r5, 0x18] str r1, [sp, 0x20] adds r0, r5, 0 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x4A beq _08072418 cmp r0, 0x47 bne _0807241C _08072418: movs r0, 0x1 b _0807241E _0807241C: movs r0, 0 _0807241E: cmp r0, 0 beq _08072426 _08072422: movs r0, 0 b _08072576 _08072426: ldrb r0, [r5, 0x9] adds r0, 0x1 mov r8, r0 mov r9, sp b _0807255A _08072430: mov r3, r8 strb r3, [r5, 0x9] ldr r0, [sp, 0x20] str r0, [r5, 0x18] ldr r1, [sp, 0x10] cmp r1, 0 beq _080724A4 ldrb r0, [r5, 0x6] cmp r0, 0 bne _08072480 mov r0, r10 movs r1, 0 bl sub_806A2BC ldr r3, [sp, 0x18] cmp r3, 0 bne _08072456 bl sub_8083D58 _08072456: ldr r0, _08072474 mov r1, r8 str r1, [r0] ldr r0, _08072478 adds r1, r5, 0 movs r2, 0 bl sub_80708B4 ldr r0, _0807247C ldr r1, [r0] mov r0, r10 bl sub_80528F4 b _080724A4 .align 2, 0 _08072474: .4byte gUnknown_202DE30 _08072478: .4byte gUnknown_202DF98 _0807247C: .4byte gUnknown_80F9E80 _08072480: ldr r3, [sp, 0x18] cmp r3, 0 bne _0807248A bl sub_8083D58 _0807248A: ldr r0, _08072588 mov r1, r8 str r1, [r0] ldr r0, _0807258C adds r1, r5, 0 movs r2, 0 bl sub_80708B4 ldr r0, _08072590 ldr r1, [r0] mov r0, r10 bl sub_805239C _080724A4: movs r3, 0x1 str r3, [sp, 0x18] mov r1, r9 ldrh r0, [r1, 0x4] ldrh r3, [r5, 0x10] adds r0, r3 movs r2, 0 strh r0, [r5, 0x10] ldrh r1, [r1, 0x4] ldrh r3, [r5, 0xE] adds r1, r3 strh r1, [r5, 0xE] lsls r0, 16 ldr r1, _08072594 cmp r0, r1 ble _080724C8 ldr r0, _08072598 strh r0, [r5, 0x10] _080724C8: movs r0, 0xE ldrsh r1, [r5, r0] ldrh r2, [r5, 0x10] movs r3, 0x10 ldrsh r0, [r5, r3] cmp r1, r0 blt _080724D8 strh r2, [r5, 0xE] _080724D8: ldr r7, _0807259C ldrb r4, [r5, 0x14] str r4, [r7] ldrb r1, [r5, 0x15] str r1, [r7, 0x4] ldr r6, _080725A0 ldrb r2, [r5, 0x16] str r2, [r6] ldrb r0, [r5, 0x17] mov r12, r0 mov r3, r9 ldrb r0, [r3, 0x6] adds r4, r0 str r4, [r7] ldrb r0, [r3, 0x7] adds r1, r0 str r1, [r7, 0x4] ldrb r0, [r3, 0x8] adds r2, r0 str r2, [r6] ldrb r0, [r3, 0x9] mov r1, r12 adds r3, r1, r0 str r3, [r6, 0x4] cmp r4, 0xFE ble _08072510 movs r3, 0xFF str r3, [r7] _08072510: ldr r0, [r7, 0x4] cmp r0, 0xFE ble _0807251A movs r0, 0xFF str r0, [r7, 0x4] _0807251A: ldr r0, [r6] cmp r0, 0xFE ble _08072524 movs r1, 0xFF str r1, [r6] _08072524: ldr r0, [r6, 0x4] cmp r0, 0xFE ble _0807252E movs r3, 0xFF str r3, [r6, 0x4] _0807252E: mov r0, r10 bl sub_807191C mov r0, r10 bl sub_8079764 ldr r0, [r7] strb r0, [r5, 0x14] ldr r0, [r7, 0x4] strb r0, [r5, 0x15] ldr r0, [r6] strb r0, [r5, 0x16] ldr r0, [r6, 0x4] strb r0, [r5, 0x17] ldr r0, [sp, 0xC] mov r1, r10 ldr r2, [sp, 0x10] ldr r3, [sp, 0x14] bl sub_8072778 movs r0, 0x1 add r8, r0 _0807255A: mov r1, r8 cmp r1, 0x64 bgt _08072574 mov r0, sp ldr r1, [sp, 0x1C] mov r2, r8 bl sub_808E010 ldr r0, [sp] ldr r3, [sp, 0x20] cmp r0, r3 bgt _08072574 b _08072430 _08072574: ldr r0, [sp, 0x18] _08072576: add sp, 0x24 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08072588: .4byte gUnknown_202DE30 _0807258C: .4byte gUnknown_202DF98 _08072590: .4byte gUnknown_80F9E80 _08072594: .4byte 0x03e60000 _08072598: .4byte 0x000003e7 _0807259C: .4byte gUnknown_202F31C _080725A0: .4byte gUnknown_202F324 thumb_func_end sub_80723D0 thumb_func_start sub_80725A4 sub_80725A4: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x24 str r0, [sp, 0xC] str r1, [sp, 0x10] adds r0, r1, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _080725C2 b _0807272E _080725C2: ldr r0, [sp, 0x10] ldr r5, [r0, 0x70] movs r2, 0x2 ldrsh r1, [r5, r2] str r1, [sp, 0x18] ldr r3, [r5, 0x18] str r3, [sp, 0x1C] ldrb r0, [r5, 0x9] str r0, [sp, 0x20] adds r0, r5, 0 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x4A beq _080725E2 cmp r0, 0x47 bne _080725E6 _080725E2: movs r0, 0x1 b _080725E8 _080725E6: movs r0, 0 _080725E8: cmp r0, 0 beq _080725EE b _0807272E _080725EE: movs r1, 0x1 mov r8, r1 b _080725F8 _080725F4: movs r2, 0x1 add r8, r2 _080725F8: ldrb r3, [r5, 0x9] cmp r8, r3 bge _08072610 mov r0, sp ldr r1, [sp, 0x18] mov r2, r8 bl sub_808E010 ldr r0, [sp] ldr r1, [sp, 0x1C] cmp r0, r1 blt _080725F4 _08072610: mov r2, r8 subs r2, 0x1 str r2, [sp, 0x14] ldrb r3, [r5, 0x9] mov r8, r3 cmp r8, r2 ble _08072710 mov r9, sp movs r0, 0x1 mov r10, r0 _08072624: mov r4, r8 adds r4, 0x1 mov r1, r8 cmp r1, 0x63 bgt _08072640 mov r0, sp ldr r1, [sp, 0x18] adds r2, r4, 0 bl sub_808E010 ldr r0, [sp] subs r0, 0x1 str r0, [r5, 0x18] b _08072644 _08072640: ldr r2, [sp, 0x1C] str r2, [r5, 0x18] _08072644: ldr r3, [sp, 0x20] cmp r3, r8 ble _08072704 mov r0, sp ldr r1, [sp, 0x18] adds r2, r4, 0 bl sub_808E010 mov r0, r8 strb r0, [r5, 0x9] ldrh r0, [r5, 0x10] mov r2, r9 ldrh r1, [r2, 0x4] subs r0, r1 strh r0, [r5, 0x10] ldrh r0, [r5, 0xE] ldrh r1, [r2, 0x4] subs r0, r1 strh r0, [r5, 0xE] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 bgt _08072676 mov r3, r10 strh r3, [r5, 0xE] _08072676: movs r1, 0x10 ldrsh r0, [r5, r1] cmp r0, 0x1 bgt _08072682 mov r2, r10 strh r2, [r5, 0x10] _08072682: movs r3, 0xE ldrsh r1, [r5, r3] ldrh r2, [r5, 0x10] movs r3, 0x10 ldrsh r0, [r5, r3] cmp r1, r0 blt _08072692 strh r2, [r5, 0xE] _08072692: ldr r7, _08072734 ldrb r4, [r5, 0x14] str r4, [r7] ldrb r1, [r5, 0x15] str r1, [r7, 0x4] ldr r6, _08072738 ldrb r2, [r5, 0x16] str r2, [r6] ldrb r0, [r5, 0x17] mov r12, r0 mov r3, r9 ldrb r0, [r3, 0x6] subs r4, r0 str r4, [r7] ldrb r0, [r3, 0x7] subs r1, r0 str r1, [r7, 0x4] ldrb r0, [r3, 0x8] subs r2, r0 str r2, [r6] ldrb r0, [r3, 0x9] mov r1, r12 subs r3, r1, r0 str r3, [r6, 0x4] cmp r4, 0x1 bgt _080726CA mov r2, r10 str r2, [r7] _080726CA: ldr r0, [r7, 0x4] cmp r0, 0x1 bgt _080726D4 mov r3, r10 str r3, [r7, 0x4] _080726D4: ldr r0, [r6] cmp r0, 0x1 bgt _080726DE mov r0, r10 str r0, [r6] _080726DE: ldr r0, [r6, 0x4] cmp r0, 0x1 bgt _080726E8 mov r1, r10 str r1, [r6, 0x4] _080726E8: ldr r0, [sp, 0x10] bl sub_807191C ldr r0, [sp, 0x10] bl sub_8079764 ldr r0, [r7] strb r0, [r5, 0x14] ldr r0, [r7, 0x4] strb r0, [r5, 0x15] ldr r0, [r6] strb r0, [r5, 0x16] ldr r0, [r6, 0x4] strb r0, [r5, 0x17] _08072704: movs r2, 0x1 negs r2, r2 add r8, r2 ldr r3, [sp, 0x14] cmp r8, r3 bgt _08072624 _08072710: ldr r0, _0807273C adds r1, r5, 0 movs r2, 0 bl sub_80708B4 ldrb r1, [r5, 0x9] ldr r0, [sp, 0x20] cmp r1, r0 bne _08072744 ldr r0, _08072740 ldr r2, [r0] ldr r0, [sp, 0xC] ldr r1, [sp, 0x10] bl sub_80522F4 _0807272E: movs r0, 0 b _08072760 .align 2, 0 _08072734: .4byte gUnknown_202F31C _08072738: .4byte gUnknown_202F324 _0807273C: .4byte gUnknown_202DF98 _08072740: .4byte gUnknown_80F9EEC _08072744: ldr r0, _08072770 str r1, [r0] movs r1, 0xD3 lsls r1, 1 ldr r0, [sp, 0x10] bl sub_80421C0 ldr r0, _08072774 ldr r2, [r0] ldr r0, [sp, 0xC] ldr r1, [sp, 0x10] bl sub_80522F4 movs r0, 0x1 _08072760: add sp, 0x24 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08072770: .4byte gUnknown_202DE30 _08072774: .4byte gUnknown_80F9EC8 thumb_func_end sub_80725A4 thumb_func_start sub_8072778 sub_8072778: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xD0 mov r9, r1 lsls r2, 24 lsrs r2, 24 str r2, [sp, 0xC4] lsls r3, 24 lsrs r3, 24 str r3, [sp, 0xC8] ldr r0, [r1, 0x70] mov r8, r0 movs r1, 0 str r1, [sp, 0xCC] ldrb r0, [r0, 0x6] cmp r0, 0 beq _080727A8 movs r2, 0 str r2, [sp, 0xC8] movs r4, 0 str r4, [sp, 0xC4] _080727A8: mov r0, r8 movs r2, 0x2 ldrsh r1, [r0, r2] ldrb r2, [r0, 0x9] movs r4, 0xC ldrsh r3, [r0, r4] mov r0, sp bl sub_808E0AC adds r7, r0, 0 add r4, sp, 0x20 movs r1, 0x8C lsls r1, 1 add r1, r8 adds r0, r4, 0 bl sub_8093FC8 mov r10, r4 cmp r7, 0 beq _08072810 adds r0, r7, 0 bl sub_8084100 movs r2, 0 lsls r0, 1 mov r1, sp adds r6, r1, r0 mov r5, sp adds r5, 0x21 mov r3, r10 _080727E4: lsls r0, r2, 3 add r0, sp adds r0, 0x20 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08072806 ldrh r1, [r6] adds r0, r3, 0 bl sub_8092A88 ldrb r1, [r5] movs r0, 0x4 orrs r0, r1 strb r0, [r5] b _08072810 _08072806: adds r5, 0x8 adds r3, 0x8 adds r2, 0x1 cmp r2, 0x7 ble _080727E4 _08072810: movs r5, 0 movs r4, 0x1 _08072814: movs r7, 0 movs r2, 0 _08072818: lsls r0, r2, 3 add r0, sp adds r0, 0x20 ldrb r1, [r0] adds r0, r4, 0 ands r0, r1 cmp r0, 0 beq _0807282A adds r7, 0x1 _0807282A: adds r2, 0x1 cmp r2, 0x7 ble _08072818 cmp r7, 0x4 bgt _080728D4 movs r3, 0 movs r5, 0 cmp r3, r7 bge _0807287C movs r4, 0x8C lsls r4, 1 add r4, r8 mov r6, r10 _08072844: lsls r0, r5, 3 movs r2, 0x8C lsls r2, 1 add r2, r8 adds r2, r0 ldr r0, [r6] ldr r1, [r6, 0x4] str r0, [r2] str r1, [r2, 0x4] ldrb r1, [r4, 0x1] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08072872 movs r0, 0xFB ands r0, r1 strb r0, [r4, 0x1] add r0, sp, 0x60 adds r1, r4, 0 movs r2, 0 bl sub_80928C0 movs r3, 0x1 _08072872: adds r4, 0x8 adds r6, 0x8 adds r5, 0x1 cmp r5, r7 blt _08072844 _0807287C: cmp r5, 0x3 bgt _08072894 movs r2, 0x8C lsls r2, 1 movs r1, 0 _08072886: lsls r0, r5, 3 add r0, r8 adds r0, r2 strb r1, [r0] adds r5, 0x1 cmp r5, 0x3 ble _08072886 _08072894: cmp r3, 0 beq _08072928 ldr r2, [sp, 0xC4] cmp r2, 0 beq _08072928 ldr r0, _080728C8 mov r1, r8 movs r2, 0 bl sub_80708B4 ldr r0, _080728CC add r1, sp, 0x60 bl strcpy mov r0, r9 movs r1, 0x9C lsls r1, 1 bl sub_80421C0 ldr r0, _080728D0 ldr r1, [r0] mov r0, r9 bl sub_80528F4 b _08072928 .align 2, 0 _080728C8: .4byte gUnknown_202DF98 _080728CC: .4byte gUnknown_202DE58 _080728D0: .4byte gUnknown_80F9F04 _080728D4: mov r1, r8 ldrb r0, [r1, 0x6] cmp r0, 0 bne _08072918 ldr r2, [sp, 0xC8] cmp r2, 0 beq _08072918 ldr r0, [sp, 0xCC] cmp r0, 0 bne _08072902 ldr r1, [sp, 0xC4] cmp r1, 0 beq _08072902 movs r0, 0xA movs r1, 0x6 bl sub_803E708 ldr r0, _08072914 ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage _08072902: movs r2, 0x1 str r2, [sp, 0xCC] mov r0, r9 mov r1, r10 movs r3, 0 bl sub_8063E70 b _08072920 .align 2, 0 _08072914: .4byte gUnknown_80F9FA4 _08072918: mov r0, r9 mov r1, r10 bl sub_8072B24 _08072920: adds r5, 0x1 cmp r5, 0x1D bgt _08072928 b _08072814 _08072928: add sp, 0xD0 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8072778 thumb_func_start sub_8072938 sub_8072938: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xA4 mov r9, r0 lsls r1, 16 lsrs r5, r1, 16 ldr r0, [r0, 0x70] mov r8, r0 movs r1, 0 mov r10, r1 movs r1, 0x8C lsls r1, 1 add r1, r8 mov r0, sp bl sub_8093FC8 movs r3, 0 mov r4, sp mov r2, sp _08072964: ldrb r1, [r4] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08072980 adds r0, r2, 0 adds r1, r5, 0 bl sub_8092A88 ldrb r1, [r4, 0x1] movs r0, 0x4 orrs r0, r1 strb r0, [r4, 0x1] b _0807298A _08072980: adds r4, 0x8 adds r2, 0x8 adds r3, 0x1 cmp r3, 0x7 ble _08072964 _0807298A: movs r4, 0 movs r5, 0x1 _0807298E: movs r7, 0 mov r2, sp movs r3, 0x7 _08072994: ldrb r1, [r2] adds r0, r5, 0 ands r0, r1 cmp r0, 0 beq _080729A0 adds r7, 0x1 _080729A0: adds r2, 0x8 subs r3, 0x1 cmp r3, 0 bge _08072994 cmp r7, 0x4 bgt _08072A50 movs r5, 0 cmp r5, r7 bge _080729F4 movs r4, 0x8C lsls r4, 1 add r4, r8 mov r6, sp _080729BA: lsls r0, r5, 3 movs r2, 0x8C lsls r2, 1 add r2, r8 adds r2, r0 ldr r0, [r6] ldr r1, [r6, 0x4] str r0, [r2] str r1, [r2, 0x4] ldrb r1, [r4, 0x1] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _080729EA movs r0, 0xFB ands r0, r1 strb r0, [r4, 0x1] add r0, sp, 0x40 adds r1, r4, 0 movs r2, 0 bl sub_80928C0 movs r0, 0x1 mov r10, r0 _080729EA: adds r4, 0x8 adds r6, 0x8 adds r5, 0x1 cmp r5, r7 blt _080729BA _080729F4: cmp r5, 0x3 bgt _08072A0C movs r2, 0x8C lsls r2, 1 movs r1, 0 _080729FE: lsls r0, r5, 3 add r0, r8 adds r0, r2 strb r1, [r0] adds r5, 0x1 cmp r5, 0x3 ble _080729FE _08072A0C: mov r1, r10 cmp r1, 0 beq _08072A92 mov r1, r8 ldrb r0, [r1, 0x6] cmp r0, 0 bne _08072A8C ldr r0, _08072A44 mov r1, r9 movs r2, 0 bl sub_8045B94 ldr r0, _08072A48 add r1, sp, 0x40 bl strcpy mov r0, r9 movs r1, 0x9C lsls r1, 1 bl sub_80421C0 ldr r0, _08072A4C ldr r1, [r0] mov r0, r9 bl sub_80528F4 b _08072A8C .align 2, 0 _08072A44: .4byte gUnknown_202DF98 _08072A48: .4byte gUnknown_202DE58 _08072A4C: .4byte gUnknown_80F9F04 _08072A50: movs r0, 0 mov r10, r0 mov r1, r8 ldrb r0, [r1, 0x6] cmp r0, 0 bne _08072A84 ldr r0, _08072A80 ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage mov r0, r9 mov r1, sp movs r2, 0x1 movs r3, 0x1 bl sub_8063E70 lsls r0, 24 cmp r0, 0 bne _08072A84 movs r0, 0 b _08072AB0 .align 2, 0 _08072A80: .4byte gUnknown_80FDF40 _08072A84: adds r4, 0x1 cmp r4, 0x1D bgt _08072A8C b _0807298E _08072A8C: mov r0, r10 cmp r0, 0 bne _08072AAE _08072A92: mov r1, r8 ldrb r0, [r1, 0x6] cmp r0, 0 bne _08072AAE ldr r0, _08072AC0 mov r1, r9 movs r2, 0 bl sub_8045B94 ldr r0, _08072AC4 ldr r1, [r0] mov r0, r9 bl sub_80528F4 _08072AAE: movs r0, 0x1 _08072AB0: add sp, 0xA4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08072AC0: .4byte gUnknown_202DF98 _08072AC4: .4byte gUnknown_80F9F2C thumb_func_end sub_8072938 thumb_func_start sub_8072AC8 sub_8072AC8: push {r4-r7,lr} sub sp, 0x4 adds r6, r0, 0 adds r7, r2, 0 lsls r1, 16 asrs r0, r1, 16 movs r3, 0 adds r2, r6, 0x6 _08072AD8: strh r3, [r2] subs r2, 0x2 cmp r2, r6 bge _08072AD8 movs r5, 0 bl sub_8092B18 adds r4, r0, 0 b _08072B04 _08072AEA: cmp r5, 0x4 bne _08072AF6 movs r0, 0x4 bl sub_8084100 b _08072AFA _08072AF6: adds r0, r5, 0 adds r5, 0x1 _08072AFA: lsls r0, 1 adds r0, r6 mov r1, sp ldrh r1, [r1] strh r1, [r0] _08072B04: ldrb r0, [r4] cmp r0, 0 beq _08072B1C adds r0, r4, 0 mov r1, sp bl sub_808E07C adds r4, r0, 0 ldrb r0, [r4] adds r4, 0x1 cmp r0, r7 ble _08072AEA _08072B1C: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8072AC8 thumb_func_start sub_8072B24 sub_8072B24: push {r4-r7,lr} adds r5, r1, 0 movs r4, 0 movs r7, 0x1 movs r6, 0xFD adds r2, r5, 0 movs r3, 0x7 _08072B32: ldrb r1, [r2] adds r0, r7, 0 ands r0, r1 cmp r0, 0 beq _08072B44 adds r0, r6, 0 ands r0, r1 strb r0, [r2] adds r4, 0x1 _08072B44: adds r2, 0x8 subs r3, 0x1 cmp r3, 0 bge _08072B32 adds r0, r4, 0 bl sub_8084100 adds r3, r0, 0 adds r4, r5, 0 adds r4, 0x38 cmp r3, 0x6 bgt _08072B6C lsls r0, r3, 3 adds r2, r0, r5 _08072B60: ldr r0, [r2, 0x8] ldr r1, [r2, 0xC] stm r2!, {r0,r1} adds r3, 0x1 cmp r3, 0x6 ble _08072B60 _08072B6C: movs r0, 0 strb r0, [r4] pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8072B24 thumb_func_start sub_8072B78 sub_8072B78: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x20 mov r8, r0 adds r7, r1, 0 lsls r5, r2, 16 asrs r5, 16 ldr r6, [r7, 0x70] ldr r4, _08072BFC adds r0, r4, 0 adds r1, r6, 0 movs r2, 0 bl sub_80708B4 adds r4, 0x50 adds r0, r4, 0 adds r1, r5, 0 bl sub_808D908 adds r0, r5, 0 bl sub_80687D0 adds r4, r0, 0 lsls r0, r5, 16 lsrs r0, 16 strh r0, [r6, 0x4] strh r0, [r6, 0x2] ldrb r2, [r6, 0x9] mov r0, sp adds r1, r5, 0 bl sub_808E010 ldr r0, [sp] str r0, [r6, 0x18] str r4, [r7, 0x64] adds r0, r6, 0 movs r1, 0 bl sub_806BFC0 adds r0, r7, 0 bl sub_8069E0C adds r0, r7, 0 movs r1, 0x7 bl sub_806CCB4 ldr r0, _08072C00 ldr r2, [r0] mov r0, r8 adds r1, r7, 0 bl sub_80522F4 adds r0, r7, 0 bl sub_8042A44 bl sub_8083D78 movs r0, 0x9E lsls r0, 1 cmp r5, r0 bne _08072C74 movs r5, 0 ldr r4, _08072C04 b _08072C0C .align 2, 0 _08072BFC: .4byte gUnknown_202DF98 _08072C00: .4byte gUnknown_80FE2EC _08072C04: .4byte gUnknown_80F4448 _08072C08: adds r4, 0x4 adds r5, 0x1 _08072C0C: cmp r5, 0x7 bgt _08072C36 movs r1, 0 ldrsh r0, [r4, r1] movs r2, 0x4 ldrsh r1, [r7, r2] adds r0, r1 movs r3, 0x2 ldrsh r1, [r4, r3] movs r3, 0x6 ldrsh r2, [r7, r3] adds r1, r2 bl sub_804954C adds r1, r0, 0 ldr r0, _08072C80 bl sub_807034C lsls r0, 24 cmp r0, 0 bne _08072C08 _08072C36: ldr r0, _08072C80 mov r8, r0 bl sub_803D930 lsls r0, 24 cmp r0, 0 beq _08072C74 add r0, sp, 0xC movs r3, 0 movs r4, 0 mov r1, r8 strh r1, [r0] ldrb r1, [r6, 0x9] strh r1, [r0, 0x8] strb r3, [r0, 0x2] ldr r1, _08072C84 lsls r2, r5, 2 adds r2, r1 ldrh r1, [r7, 0x4] ldrh r5, [r2] adds r1, r5 strh r1, [r0, 0xC] ldrh r1, [r7, 0x6] ldrh r2, [r2, 0x2] adds r1, r2 strh r1, [r0, 0xE] str r4, [r0, 0x4] strb r3, [r0, 0x10] movs r1, 0x1 bl sub_806B7F8 _08072C74: add sp, 0x20 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08072C80: .4byte 0x0000013d _08072C84: .4byte gUnknown_80F4448 thumb_func_end sub_8072B78 thumb_func_start sub_8072C88 sub_8072C88: push {lr} ldr r1, [r0, 0x70] ldrb r0, [r1, 0x6] cmp r0, 0 bne _08072CA2 adds r0, r1, 0 adds r0, 0x94 ldrb r0, [r0] bl sub_808EAFC lsls r0, 24 lsrs r0, 24 b _08072CA4 _08072CA2: movs r0, 0 _08072CA4: pop {r1} bx r1 thumb_func_end sub_8072C88 thumb_func_start sub_8072CA8 sub_8072CA8: push {r4,r5,lr} adds r5, r0, 0 ldr r0, [r5, 0x70] ldrb r0, [r0, 0x6] cmp r0, 0 bne _08072CEC bl sub_8083600 adds r4, r0, 0 cmp r4, 0 beq _08072CEC ldr r0, [r4, 0x70] adds r0, 0xC8 ldrb r0, [r0] cmp r0, 0x2 beq _08072CEC adds r0, r5, 0 adds r1, r4, 0 movs r2, 0 movs r3, 0 bl sub_8071598 lsls r0, 24 cmp r0, 0 bne _08072CEC adds r0, r5, 0 adds r1, r4, 0 bl sub_8045A00 lsls r0, 24 cmp r0, 0 beq _08072CEC adds r0, r4, 0 b _08072CEE _08072CEC: movs r0, 0 _08072CEE: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8072CA8 thumb_func_start sub_8072CF4 sub_8072CF4: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 adds r4, r0, 0 movs r0, 0x1 bl sub_804178C ldr r1, _08072D4C movs r0, 0x1 strb r0, [r1] ldr r6, [r4, 0x70] adds r0, r6, 0 adds r0, 0xFC movs r1, 0 strb r1, [r0] subs r0, 0x9 strb r1, [r0] ldr r0, _08072D50 ldr r0, [r0] adds r0, 0xB8 str r4, [r0] ldr r2, _08072D54 adds r0, r6, 0 adds r0, 0x44 ldrh r0, [r0] lsls r1, r0, 1 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 beq _08072D64 ldrb r0, [r6, 0x7] cmp r0, 0 beq _08072D58 adds r0, r2, 0x1 adds r0, r1, r0 ldrb r1, [r0] adds r0, r4, 0 bl sub_805EFB4 b _08072D64 .align 2, 0 _08072D4C: .4byte gUnknown_203B434 _08072D50: .4byte gUnknown_203B418 _08072D54: .4byte gUnknown_80F58F4 _08072D58: adds r0, r2, 0x1 adds r0, r1, r0 ldrb r1, [r0] adds r0, r4, 0 bl sub_8075BA4 _08072D64: adds r0, r4, 0 movs r1, 0 bl sub_8070D04 lsls r0, 24 cmp r0, 0 beq _08072D86 adds r0, r4, 0 movs r1, 0x1 bl sub_80570F4 lsls r0, 24 cmp r0, 0 beq _08072D86 adds r0, r4, 0 bl sub_8079764 _08072D86: movs r7, 0x1 movs r5, 0xFB movs r0, 0x8C lsls r0, 1 adds r2, r6, r0 movs r3, 0x3 _08072D92: ldrb r1, [r2] adds r0, r7, 0 ands r0, r1 cmp r0, 0 beq _08072DA4 ldrb r1, [r2, 0x1] adds r0, r5, 0 ands r0, r1 strb r0, [r2, 0x1] _08072DA4: adds r2, 0x8 subs r3, 0x1 cmp r3, 0 bge _08072D92 adds r0, r4, 0 movs r1, 0 bl sub_8045028 lsls r0, 24 cmp r0, 0 bne _08072E08 adds r0, r4, 0 bl sub_807520C lsls r0, 24 cmp r0, 0 beq _08072DF0 bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _08072DD2 b _080732D4 _08072DD2: adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _08072DE0 b _080732D4 _08072DE0: ldr r0, _08072DEC ldrb r0, [r0] cmp r0, 0 beq _08072DF0 movs r0, 0x1 b _080732D6 .align 2, 0 _08072DEC: .4byte gUnknown_202F32D _08072DF0: ldrb r0, [r6, 0x7] cmp r0, 0 bne _08072DFC movs r0, 0xA bl sub_8052740 _08072DFC: adds r0, r4, 0 bl sub_806A1E8 movs r0, 0xA bl sub_803E46C _08072E08: adds r0, r6, 0 adds r0, 0x44 ldrh r1, [r0] adds r5, r0, 0 cmp r1, 0x1 bls _08072E26 cmp r1, 0x4 beq _08072E26 cmp r1, 0x2 beq _08072E26 movs r2, 0xA4 lsls r2, 1 adds r1, r6, r2 movs r0, 0x1 strb r0, [r1] _08072E26: movs r3, 0 mov r10, r3 movs r7, 0xA5 lsls r7, 1 adds r0, r6, r7 mov r1, r10 strb r1, [r0] ldr r0, _08072E50 strb r1, [r0] ldr r0, _08072E54 strb r1, [r0] ldrh r0, [r5] subs r0, 0x2 cmp r0, 0x3F bls _08072E46 b _080731B4 _08072E46: lsls r0, 2 ldr r1, _08072E58 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08072E50: .4byte gUnknown_202F221 _08072E54: .4byte gUnknown_202F222 _08072E58: .4byte _08072E5C .align 2, 0 _08072E5C: .4byte _08072F5C .4byte _080731B4 .4byte _080731B4 .4byte _080731B4 .4byte _080731B4 .4byte _080731B4 .4byte _08073104 .4byte _080730A4 .4byte _0807310C .4byte _0807311C .4byte _080731B4 .4byte _08073094 .4byte _08073094 .4byte _080731B4 .4byte _080731B4 .4byte _080731B4 .4byte _08073094 .4byte _0807314C .4byte _08073154 .4byte _0807303E .4byte _080731B4 .4byte _0807315C .4byte _080731B4 .4byte _080731B4 .4byte _080731B4 .4byte _080731B4 .4byte _080731B4 .4byte _080731B4 .4byte _080731B4 .4byte _080731B4 .4byte _080731B4 .4byte _080731B4 .4byte _080731B4 .4byte _08073186 .4byte _0807318E .4byte _08073170 .4byte _08073046 .4byte _0807311C .4byte _080731B4 .4byte _080731B4 .4byte _080731B4 .4byte _080731B4 .4byte _080731B4 .4byte _080731B4 .4byte _080731B4 .4byte _080731B4 .4byte _080731B4 .4byte _0807309C .4byte _08073162 .4byte _080731B4 .4byte _080731B4 .4byte _080731B4 .4byte _080730AC .4byte _080730B4 .4byte _080730C4 .4byte _08073196 .4byte _08073114 .4byte _080730E0 .4byte _080730CC .4byte _080730D6 .4byte _080730BC .4byte _0807317E .4byte _080731B4 .4byte _0807311C _08072F5C: adds r0, r6, 0 adds r0, 0xB0 ldrb r0, [r0] cmp r0, 0x2 beq _08072F76 cmp r0, 0x7 beq _08072F76 cmp r0, 0x5 beq _08072F76 cmp r0, 0x3 beq _08072F76 cmp r0, 0x4 bne _08072F84 _08072F76: movs r0, 0 strh r0, [r5] ldr r2, _08072F80 adds r1, r6, r2 b _08072FDA .align 2, 0 _08072F80: .4byte 0x00000147 _08072F84: movs r3, 0 mov r9, r3 ldr r1, _08072FE0 adds r2, r6, 0 adds r2, 0x46 ldrb r3, [r2] lsls r0, r3, 2 adds r0, r1 ldrh r1, [r0] ldrh r7, [r4, 0x4] adds r1, r7 lsls r1, 16 ldrh r0, [r0, 0x2] ldrh r7, [r4, 0x6] adds r0, r7 lsls r0, 16 lsrs r1, 16 mov r8, r1 orrs r1, r0 mov r8, r1 ldrh r1, [r6] movs r0, 0x80 lsls r0, 8 ands r0, r1 adds r7, r2, 0 cmp r0, 0 bne _08072FCC adds r0, r4, 0 adds r1, r3, 0 bl sub_8070D6C lsls r0, 24 cmp r0, 0 bne _08072FCC movs r2, 0x1 mov r9, r2 _08072FCC: mov r3, r9 cmp r3, 0 beq _08072FE8 movs r0, 0 strh r0, [r5] ldr r7, _08072FE4 adds r1, r6, r7 _08072FDA: movs r0, 0x1 strb r0, [r1] b _080731B8 .align 2, 0 _08072FE0: .4byte gUnknown_80F4448 _08072FE4: .4byte 0x00000147 _08072FE8: ldrh r1, [r4, 0x6] lsls r1, 16 ldrh r0, [r4, 0x4] orrs r0, r1 str r0, [sp] mov r0, r8 lsls r1, r0, 16 asrs r1, 16 asrs r2, r0, 16 adds r0, r4, 0 movs r3, 0 bl sub_80694C0 ldrb r1, [r7] adds r0, r4, 0 mov r2, sp bl sub_8074FB0 adds r0, r4, 0 movs r1, 0xD bl sub_80718D8 lsls r0, 24 cmp r0, 0 beq _08073038 adds r0, r6, 0 adds r0, 0xE4 ldrb r0, [r0] cmp r0, 0x3 beq _08073038 adds r0, r4, 0 movs r1, 0x9 bl sub_8046CB0 lsls r0, 24 cmp r0, 0 bne _08073038 adds r0, r4, 0x4 bl sub_804AE08 _08073038: movs r1, 0x1 mov r10, r1 b _080731B8 _0807303E: adds r0, r4, 0 bl sub_807CABC b _080731B8 _08073046: ldr r0, _08073064 ldr r1, [r0] ldr r2, _08073068 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0x15 bne _08073074 ldr r3, _0807306C adds r0, r1, r3 ldrb r0, [r0] cmp r0, 0 bne _08073074 ldr r0, _08073070 b _080731A2 .align 2, 0 _08073064: .4byte gUnknown_203B418 _08073068: .4byte 0x00000644 _0807306C: .4byte 0x000037fe _08073070: .4byte gUnknown_80FA5B4 _08073074: bl sub_804267C ldr r0, _0807308C ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0x2] ldr r1, _08073090 adds r0, r6, 0 adds r0, 0x46 ldrb r0, [r0] strb r0, [r1] b _080731B8 .align 2, 0 _0807308C: .4byte gUnknown_203B418 _08073090: .4byte gUnknown_202F32C _08073094: adds r0, r4, 0 bl sub_8067110 b _080731B8 _0807309C: adds r0, r4, 0 bl sub_807CB3C b _080731B8 _080730A4: adds r0, r4, 0 bl sub_8066744 b _080731B8 _080730AC: adds r0, r4, 0 bl sub_80668D0 b _080731B8 _080730B4: adds r0, r4, 0 bl sub_8066AC0 b _080731B8 _080730BC: adds r0, r4, 0 bl sub_8066BD4 b _080731B8 _080730C4: adds r0, r4, 0 bl sub_8066CF0 b _080731B8 _080730CC: adds r0, r4, 0 movs r1, 0x1 bl sub_806675C b _080731B8 _080730D6: adds r0, r4, 0 movs r1, 0x1 bl sub_806684C b _080731B8 _080730E0: ldr r0, _080730FC ldr r1, [r0] adds r2, r1, 0 adds r2, 0xBC adds r0, r6, 0 adds r0, 0x48 ldrb r0, [r0] lsls r0, 2 ldr r7, _08073100 adds r1, r7 adds r1, r0 ldr r0, [r1] str r0, [r2] b _080731B8 .align 2, 0 _080730FC: .4byte gUnknown_203B418 _08073100: .4byte 0x0001357c _08073104: adds r0, r4, 0 bl sub_8066D04 b _080731B8 _0807310C: adds r0, r4, 0 bl sub_8066E14 b _080731B8 _08073114: adds r0, r4, 0 bl sub_8066FA4 b _080731B8 _0807311C: adds r0, r6, 0 bl sub_8071A70 lsls r0, 24 cmp r0, 0 beq _08073136 adds r0, r4, 0 bl nullsub_95 adds r0, r4, 0 bl sub_80671A0 b _080731B8 _08073136: ldr r0, _08073144 adds r1, r4, 0 movs r2, 0 bl sub_8045B94 ldr r0, _08073148 b _080731A2 .align 2, 0 _08073144: .4byte gUnknown_202DF98 _08073148: .4byte gUnknown_80FE6D4 _0807314C: adds r0, r4, 0 bl sub_8067510 b _080731B8 _08073154: adds r0, r4, 0 bl sub_8067884 b _080731B8 _0807315C: movs r1, 0xB0 lsls r1, 1 b _08073164 _08073162: ldr r1, _0807316C _08073164: adds r0, r4, 0 bl sub_8067904 b _080731B8 .align 2, 0 _0807316C: .4byte 0x00000163 _08073170: adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0 movs r3, 0 bl sub_807FE9C b _080731B8 _0807317E: adds r0, r4, 0 bl sub_8073D08 b _080731B8 _08073186: adds r0, r4, 0 bl sub_8073CF0 b _080731B8 _0807318E: adds r0, r4, 0 bl sub_8073CFC b _080731B8 _08073196: ldr r0, _080731AC adds r1, r4, 0 movs r2, 0 bl sub_8045B94 ldr r0, _080731B0 _080731A2: ldr r1, [r0] adds r0, r4, 0 bl sub_80522A8 b _080731B8 .align 2, 0 _080731AC: .4byte gUnknown_202DF98 _080731B0: .4byte gUnknown_80FE478 _080731B4: movs r0, 0x1 strh r0, [r5] _080731B8: adds r0, r4, 0 bl sub_807FD84 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _080731CC b _080732D4 _080731CC: ldr r0, [r4, 0x70] movs r2, 0xA5 lsls r2, 1 adds r1, r0, r2 ldrb r0, [r1] cmp r0, 0 bne _080731E2 strb r0, [r1] adds r0, r4, 0 bl sub_8079764 _080731E2: movs r0, 0 bl sub_8041888 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080732D4 bl sub_8085140 ldr r3, _080732E8 adds r1, r6, r3 ldrb r0, [r1] cmp r0, 0 beq _08073242 movs r5, 0 strb r5, [r1] movs r7, 0x8C lsls r7, 1 adds r2, r6, r7 movs r0, 0x1 mov r12, r0 movs r7, 0x10 movs r3, 0x3 _08073214: ldrb r1, [r2] mov r0, r12 ands r0, r1 cmp r0, 0 beq _0807322C adds r0, r7, 0 ands r0, r1 cmp r0, 0 beq _0807322C movs r0, 0 strb r0, [r2, 0x4] movs r5, 0x1 _0807322C: adds r2, 0x8 subs r3, 0x1 cmp r3, 0 bge _08073214 cmp r5, 0 beq _08073242 ldr r0, _080732EC ldr r1, [r0] adds r0, r4, 0 bl sub_80522A8 _08073242: bl sub_807360C bl sub_8044B84 lsls r0, 24 cmp r0, 0 bne _08073264 bl sub_807348C bl sub_80732F0 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080732D4 _08073264: mov r1, r10 cmp r1, 0 beq _08073270 adds r0, r4, 0 bl sub_8075818 _08073270: adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080732D4 bl sub_8044B84 lsls r0, 24 cmp r0, 0 bne _0807328A bl sub_8046D20 _0807328A: movs r0, 0 bl sub_8041888 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080732D4 movs r2, 0xA2 lsls r2, 1 adds r0, r6, r2 ldrb r0, [r0] cmp r0, 0 bne _080732D4 mov r3, r10 cmp r3, 0 bne _080732D4 adds r1, r4, 0x4 adds r0, r4, 0 bl sub_80706A4 lsls r0, 24 cmp r0, 0 beq _080732C8 adds r0, r4, 0 adds r1, r4, 0 movs r2, 0 movs r3, 0 bl sub_807D148 _080732C8: adds r0, r4, 0 bl sub_8074094 adds r0, r4, 0 bl sub_8071DA4 _080732D4: movs r0, 0 _080732D6: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080732E8: .4byte 0x0000014b _080732EC: .4byte gUnknown_80FD2CC thumb_func_end sub_8072CF4 thumb_func_start sub_80732F0 sub_80732F0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 movs r4, 0 _080732FE: movs r5, 0 ldr r0, _0807335C ldr r0, [r0] lsls r1, r4, 2 ldr r2, _08073360 adds r0, r2 adds r0, r1 ldr r0, [r0] mov r8, r0 bl sub_80450E0 lsls r0, 24 adds r4, 0x1 str r4, [sp, 0x10] cmp r0, 0 bne _08073320 b _08073472 _08073320: mov r0, r8 ldr r7, [r0, 0x70] movs r1, 0xB2 lsls r1, 1 adds r4, r7, r1 ldrb r0, [r4] cmp r0, 0xFF bne _08073332 b _08073472 _08073332: adds r2, r0, 0 mov r9, r2 mov r0, r8 movs r1, 0x1 bl sub_8070D04 lsls r0, 24 cmp r0, 0 bne _0807336E mov r0, r8 bl sub_8070B28 lsls r0, 24 cmp r0, 0 bne _08073364 ldrb r0, [r4] movs r2, 0xFF orrs r0, r2 strb r0, [r4] b _08073472 .align 2, 0 _0807335C: .4byte gUnknown_203B418 _08073360: .4byte 0x000135cc _08073364: adds r0, r7, 0 adds r0, 0xEC ldrb r0, [r0] cmp r0, 0x1 bne _08073378 _0807336E: ldrb r0, [r4] movs r1, 0xFF orrs r0, r1 strb r0, [r4] b _08073472 _08073378: movs r0, 0x4 bl sub_8084100 adds r3, r0, 0 movs r4, 0 _08073382: lsls r0, r3, 3 movs r2, 0x8C lsls r2, 1 adds r0, r2 adds r2, r7, r0 ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08073448 ldr r0, [r2] ldr r1, [r2, 0x4] str r0, [sp, 0x8] str r1, [sp, 0xC] ldr r1, [sp, 0x8] lsrs r0, r1, 16 cmp r0, 0x8A beq _08073448 adds r1, r0, 0 ldr r0, _08073434 cmp r1, r0 beq _08073448 movs r6, 0 movs r0, 0x46 adds r0, r7 mov r10, r0 movs r1, 0x8C lsls r1, 1 adds r4, r7, r1 _080733BC: lsls r0, r6, 3 movs r2, 0x8C lsls r2, 1 adds r0, r2 adds r5, r7, r0 ldrb r1, [r4] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080733F4 ldrb r0, [r7, 0x7] cmp r0, 0 bne _080733DE movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _080733F4 _080733DE: ldrh r0, [r4, 0x2] cmp r0, 0xE3 bne _080733F4 mov r0, r8 adds r1, r5, 0 movs r2, 0x1 bl sub_80573CC lsls r0, 24 cmp r0, 0 bne _08073440 _080733F4: adds r4, 0x8 adds r6, 0x1 cmp r6, 0x3 ble _080733BC _080733FC: ldr r0, _08073438 mov r1, r8 movs r2, 0 bl sub_8045B94 ldr r0, _0807343C ldr r1, [r0] mov r0, r8 bl sub_80522A8 movs r0, 0x7 mov r1, r9 ands r1, r0 movs r0, 0 mov r2, r10 strb r1, [r2] str r0, [sp] add r0, sp, 0x8 str r0, [sp, 0x4] mov r0, r8 movs r1, 0 movs r2, 0 movs r3, 0x1 bl sub_8055FA0 movs r5, 0x1 b _08073456 .align 2, 0 _08073434: .4byte 0x00000147 _08073438: .4byte gUnknown_202DF98 _0807343C: .4byte gUnknown_80FCF38 _08073440: adds r0, r5, 0x4 bl sub_80838EC b _080733FC _08073448: adds r3, 0x1 cmp r3, 0x4 bne _08073450 movs r3, 0 _08073450: adds r4, 0x1 cmp r4, 0x3 ble _08073382 _08073456: movs r2, 0xB2 lsls r2, 1 adds r1, r7, r2 ldrb r0, [r1] movs r2, 0xFF orrs r0, r2 strb r0, [r1] cmp r5, 0 beq _08073472 mov r0, r8 movs r1, 0xB8 lsls r1, 2 bl sub_80421C0 _08073472: ldr r4, [sp, 0x10] cmp r4, 0x13 bgt _0807347A b _080732FE _0807347A: add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80732F0 thumb_func_start sub_807348C sub_807348C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x18 movs r4, 0 movs r0, 0xFF mov r9, r0 _0807349E: ldr r0, _080734E8 ldr r0, [r0] lsls r1, r4, 2 ldr r2, _080734EC adds r0, r2 adds r0, r1 ldr r7, [r0] adds r0, r7, 0 bl sub_80450E0 lsls r0, 24 adds r4, 0x1 str r4, [sp, 0x10] cmp r0, 0 bne _080734BE b _080735E6 _080734BE: ldr r6, [r7, 0x70] ldr r0, _080734F0 adds r4, r6, r0 ldrb r0, [r4] cmp r0, 0xFF bne _080734CC b _080735E6 _080734CC: adds r1, r0, 0 mov r8, r1 adds r0, r7, 0 movs r1, 0x1 bl sub_8070D04 lsls r0, 24 cmp r0, 0 beq _080734F4 ldrb r0, [r4] mov r2, r9 orrs r0, r2 strb r0, [r4] b _080735DA .align 2, 0 _080734E8: .4byte gUnknown_203B418 _080734EC: .4byte 0x000135cc _080734F0: .4byte 0x00000165 _080734F4: adds r0, r7, 0 bl sub_8070B28 lsls r0, 24 cmp r0, 0 bne _08073514 ldrb r0, [r4] mov r1, r9 orrs r0, r1 strb r0, [r4] movs r2, 0xB2 lsls r2, 1 adds r1, r6, r2 ldrb r0, [r1] mov r2, r9 b _080735E2 _08073514: adds r0, r6, 0 adds r0, 0xEC ldrb r0, [r0] cmp r0, 0x1 bne _0807354A ldrb r0, [r4] mov r1, r9 orrs r0, r1 strb r0, [r4] movs r2, 0xB2 lsls r2, 1 adds r1, r6, r2 ldrb r0, [r1] mov r2, r9 b _080735E2 _08073532: ldr r0, [r5] ldr r1, [r5, 0x4] str r0, [sp, 0x8] str r1, [sp, 0xC] adds r0, r5, 0x4 bl sub_80838EC adds r0, r7, 0 adds r1, r5, 0 bl sub_806ACE8 b _0807359C _0807354A: movs r3, 0 movs r0, 0x46 adds r0, r6 mov r10, r0 movs r1, 0x8C lsls r1, 1 adds r4, r6, r1 _08073558: lsls r0, r3, 3 movs r2, 0x8C lsls r2, 1 adds r0, r2 adds r5, r6, r0 ldrb r1, [r4] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08073594 ldrb r0, [r6, 0x7] cmp r0, 0 bne _0807357A movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08073594 _0807357A: ldrh r0, [r4, 0x2] cmp r0, 0x19 bne _08073594 adds r0, r7, 0 adds r1, r5, 0 movs r2, 0x1 str r3, [sp, 0x14] bl sub_80573CC lsls r0, 24 ldr r3, [sp, 0x14] cmp r0, 0 bne _08073532 _08073594: adds r4, 0x8 adds r3, 0x1 cmp r3, 0x3 ble _08073558 _0807359C: ldr r0, _08073600 adds r1, r7, 0 movs r2, 0 bl sub_8045B94 ldr r0, _08073604 ldr r1, [r0] adds r0, r7, 0 bl sub_80522A8 movs r0, 0x7 mov r1, r8 ands r1, r0 movs r0, 0 mov r2, r10 strb r1, [r2] str r0, [sp] add r0, sp, 0x8 str r0, [sp, 0x4] adds r0, r7, 0 movs r1, 0 movs r2, 0 movs r3, 0x1 bl sub_8055FA0 ldr r2, _08073608 adds r1, r6, r2 ldrb r0, [r1] mov r2, r9 orrs r0, r2 strb r0, [r1] _080735DA: movs r0, 0xB2 lsls r0, 1 adds r1, r6, r0 ldrb r0, [r1] _080735E2: orrs r0, r2 strb r0, [r1] _080735E6: ldr r4, [sp, 0x10] cmp r4, 0x13 bgt _080735EE b _0807349E _080735EE: add sp, 0x18 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08073600: .4byte gUnknown_202DF98 _08073604: .4byte gUnknown_80FCF50 _08073608: .4byte 0x00000165 thumb_func_end sub_807348C thumb_func_start sub_807360C sub_807360C: push {r4,r5,lr} movs r5, 0 _08073610: ldr r0, _08073650 ldr r0, [r0] lsls r1, r5, 2 ldr r2, _08073654 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08073644 ldr r0, [r4, 0x70] movs r2, 0xA9 lsls r2, 1 adds r1, r0, r2 ldrb r0, [r1] cmp r0, 0 beq _08073644 movs r0, 0 strb r0, [r1] adds r0, r4, 0 adds r1, r4, 0 bl sub_8077274 _08073644: adds r5, 0x1 cmp r5, 0x13 ble _08073610 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08073650: .4byte gUnknown_203B418 _08073654: .4byte 0x000135cc thumb_func_end sub_807360C thumb_func_start sub_8073658 sub_8073658: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x58 mov r8, r0 ldr r6, [r0, 0x70] bl sub_8070C60 lsls r0, 24 cmp r0, 0 beq _080736B8 adds r1, r6, 0 adds r1, 0xFC movs r0, 0 strb r0, [r1] b _080739C4 _0807367C: adds r0, r6, 0 adds r0, 0x44 movs r1, 0x24 bl sub_8044C94 adds r0, r6, 0 adds r0, 0x48 add r1, sp, 0x54 ldrb r1, [r1] strb r1, [r0] mov r2, r8 ldrh r1, [r2, 0x4] adds r0, 0x4 strh r1, [r0] ldrh r0, [r2, 0x6] adds r1, r6, 0 adds r1, 0x4E strh r0, [r1] ldr r0, _080736B4 adds r0, r7, r0 ldr r0, [r0] movs r1, 0x7 ands r0, r1 adds r1, r6, 0 adds r1, 0x46 strb r0, [r1] b _08073718 .align 2, 0 _080736B4: .4byte gUnknown_202F330 _080736B8: adds r0, r6, 0 adds r0, 0xFC ldrb r0, [r0] cmp r0, 0 bne _080736C4 b _080737DC _080736C4: adds r7, r6, 0 adds r7, 0x60 ldrb r1, [r7] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080736D4 b _080739C4 _080736D4: movs r3, 0x81 str r3, [sp, 0x54] ldrb r0, [r7, 0x2] bl sub_8090BD0 lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _0807372C mov r0, r8 movs r1, 0x2 adds r2, r7, 0 movs r3, 0x1 bl sub_80739DC movs r5, 0 ldr r0, _08073724 ldr r0, [r0] cmp r5, r0 bge _08073718 ldr r4, _08073728 _080736FE: lsls r7, r5, 2 ldr r0, [r4] bl sub_8084144 lsls r0, 24 cmp r0, 0 bne _0807367C adds r4, 0x4 adds r5, 0x1 ldr r0, _08073724 ldr r0, [r0] cmp r5, r0 blt _080736FE _08073718: ldr r0, _08073724 ldr r0, [r0] cmp r5, r0 beq _08073722 b _080739C4 _08073722: b _08073792 .align 2, 0 _08073724: .4byte gUnknown_203B440 _08073728: .4byte gUnknown_202F358 _0807372C: cmp r0, 0x1 bne _0807377C mov r0, r8 adds r1, r7, 0 mov r2, sp movs r3, 0x1 bl sub_8073AA0 ldr r0, _08073778 ldr r0, [r0] cmp r0, 0 beq _08073792 bl sub_8084100 adds r4, r0, 0 adds r0, r6, 0 adds r0, 0x44 movs r1, 0x24 bl sub_8044C94 adds r0, r6, 0 adds r0, 0x48 add r1, sp, 0x54 ldrb r1, [r1] strb r1, [r0] mov r2, r8 ldrh r1, [r2, 0x4] adds r0, 0x4 strh r1, [r0] ldrh r0, [r2, 0x6] adds r1, r6, 0 adds r1, 0x4E strh r0, [r1] mov r0, r8 adds r0, 0x4 lsls r4, 2 add r4, sp b _0807395E .align 2, 0 _08073778: .4byte gUnknown_203B440 _0807377C: subs r0, 0x2 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _08073792 adds r0, r6, 0 adds r0, 0x44 movs r1, 0x23 bl sub_8044C94 b _080738CE _08073792: adds r0, r6, 0 adds r0, 0x44 movs r1, 0x39 bl sub_8044C94 b _080739C4 _0807379E: adds r0, r6, 0 adds r0, 0x44 movs r1, 0x24 bl sub_8044C94 adds r0, r6, 0 adds r0, 0x48 add r3, sp, 0x54 ldrb r3, [r3] strb r3, [r0] mov r0, r8 ldrh r1, [r0, 0x4] adds r0, r6, 0 adds r0, 0x4C strh r1, [r0] mov r1, r8 ldrh r0, [r1, 0x6] adds r1, r6, 0 adds r1, 0x4E strh r0, [r1] ldr r0, _080737D8 add r0, r10 ldr r0, [r0] movs r1, 0x7 ands r0, r1 adds r1, r6, 0 adds r1, 0x46 strb r0, [r1] b _080739C4 .align 2, 0 _080737D8: .4byte gUnknown_202F330 _080737DC: mov r0, r8 movs r1, 0x16 bl sub_80718D8 lsls r0, 24 cmp r0, 0 bne _080737EC b _080739C4 _080737EC: movs r2, 0x1 str r2, [sp, 0x50] _080737F0: ldr r3, [sp, 0x50] cmp r3, 0x1 bne _080737FE adds r7, r6, 0 adds r7, 0x60 movs r0, 0x81 b _0807384E _080737FE: ldr r1, [sp, 0x50] cmp r1, 0 bne _08073832 mov r2, r8 movs r3, 0x4 ldrsh r0, [r2, r3] movs r3, 0x6 ldrsh r1, [r2, r3] bl sub_804954C adds r4, r0, 0 ldr r0, [r4, 0x14] cmp r0, 0 bne _0807381C b _080739B8 _0807381C: bl sub_80450F8 cmp r0, 0x3 beq _08073826 b _080739B8 _08073826: ldr r0, [r4, 0x14] bl sub_8045108 adds r7, r0, 0 movs r0, 0x80 b _0807384E _08073832: ldrb r0, [r6, 0x7] cmp r0, 0 bne _0807383A b _080739C4 _0807383A: ldr r1, _080738C0 ldr r2, [sp, 0x50] lsls r0, r2, 2 subs r0, 0x8 ldr r1, [r1] adds r7, r1, r0 adds r0, r2, 0 subs r0, 0x1 lsls r0, 24 lsrs r0, 24 _0807384E: str r0, [sp, 0x54] ldrb r1, [r7] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0807385C b _080739B8 _0807385C: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08073866 b _080739B8 _08073866: movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08073870 b _080739B8 _08073870: ldrb r0, [r7, 0x2] movs r1, 0 bl sub_8090DAC lsls r0, 24 cmp r0, 0 beq _080738EC mov r0, r8 adds r1, r7, 0 movs r2, 0x2 bl sub_8048F28 adds r5, r0, 0 cmp r5, 0 beq _080738EC ldrb r0, [r7, 0x2] bl sub_8090BD0 lsls r0, 24 lsrs r0, 24 adds r4, r0, 0 cmp r4, 0x9 bne _080738A4 ldrb r0, [r6, 0x6] cmp r0, 0 beq _080738EC _080738A4: adds r0, r5, 0 bl sub_8084144 lsls r0, 24 cmp r0, 0 beq _080738EC cmp r4, 0x9 bne _080738C4 adds r0, r6, 0 adds r0, 0x44 movs r1, 0x31 bl sub_8044C94 b _080738CE .align 2, 0 _080738C0: .4byte gUnknown_203B460 _080738C4: adds r0, r6, 0 adds r0, 0x44 movs r1, 0x23 bl sub_8044C94 _080738CE: adds r0, r6, 0 adds r0, 0x48 add r3, sp, 0x54 ldrb r3, [r3] strb r3, [r0] mov r0, r8 ldrh r1, [r0, 0x4] adds r0, r6, 0 adds r0, 0x4C strh r1, [r0] mov r2, r8 ldrh r1, [r2, 0x6] adds r0, 0x2 strh r1, [r0] b _080739C4 _080738EC: adds r0, r6, 0 bl sub_8071A70 lsls r0, 24 cmp r0, 0 beq _080739B8 movs r3, 0x1 mov r9, r3 _080738FC: ldrb r0, [r7, 0x2] mov r1, r9 bl sub_8090DAC lsls r0, 24 cmp r0, 0 beq _080739AE ldrb r0, [r7, 0x2] bl sub_8090BD0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08073978 mov r0, r8 adds r1, r7, 0 mov r2, sp movs r3, 0 bl sub_8073AA0 ldr r1, _08073974 ldr r0, [r1] cmp r0, 0 beq _080739AE bl sub_8084100 adds r4, r0, 0 adds r0, r6, 0 adds r0, 0x44 movs r1, 0x24 bl sub_8044C94 adds r0, r6, 0 adds r0, 0x48 add r2, sp, 0x54 ldrb r2, [r2] strb r2, [r0] mov r3, r8 ldrh r1, [r3, 0x4] adds r0, 0x4 strh r1, [r0] ldrh r0, [r3, 0x6] adds r1, r6, 0 adds r1, 0x4E strh r0, [r1] lsls r4, 2 add r4, sp mov r0, r8 adds r0, 0x4 _0807395E: adds r1, r4, 0 bl sub_80983D8 movs r1, 0x7 ands r0, r1 adds r1, r6, 0 adds r1, 0x46 strb r0, [r1] ldr r0, [r4] str r0, [r6, 0x58] b _080739C4 .align 2, 0 _08073974: .4byte gUnknown_203B440 _08073978: mov r0, r8 mov r1, r9 adds r2, r7, 0 movs r3, 0 bl sub_80739DC movs r5, 0 ldr r1, _080739D4 ldr r0, [r1] cmp r5, r0 bge _080739AE ldr r4, _080739D8 _08073990: lsls r2, r5, 2 mov r10, r2 ldr r0, [r4] bl sub_8084144 lsls r0, 24 cmp r0, 0 beq _080739A2 b _0807379E _080739A2: adds r4, 0x4 adds r5, 0x1 ldr r3, _080739D4 ldr r0, [r3] cmp r5, r0 blt _08073990 _080739AE: movs r0, 0x1 add r9, r0 mov r1, r9 cmp r1, 0x2 ble _080738FC _080739B8: ldr r2, [sp, 0x50] adds r2, 0x1 str r2, [sp, 0x50] cmp r2, 0x15 bgt _080739C4 b _080737F0 _080739C4: add sp, 0x58 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080739D4: .4byte gUnknown_203B440 _080739D8: .4byte gUnknown_202F358 thumb_func_end sub_8073658 thumb_func_start sub_80739DC sub_80739DC: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 adds r5, r0, 0 mov r10, r1 mov r9, r2 lsls r3, 24 lsrs r3, 24 mov r8, r3 ldr r1, _08073A44 movs r0, 0 str r0, [r1] ldr r1, _08073A48 movs r2, 0 adds r0, r1, 0x7 _08073A00: strb r2, [r0] subs r0, 0x1 cmp r0, r1 bge _08073A00 movs r7, 0 _08073A0A: ldr r0, _08073A4C ldr r0, [r0] lsls r1, r7, 2 ldr r2, _08073A50 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08073A88 cmp r5, r4 beq _08073A88 mov r0, r10 cmp r0, 0x1 bne _08073A54 adds r0, r5, 0 adds r1, r4, 0 movs r2, 0 movs r3, 0 bl sub_8071598 lsls r0, 24 cmp r0, 0 bne _08073A88 movs r6, 0x3 b _08073A6A .align 2, 0 _08073A44: .4byte gUnknown_203B440 _08073A48: .4byte gUnknown_202F350 _08073A4C: .4byte gUnknown_203B418 _08073A50: .4byte 0x000135cc _08073A54: adds r0, r5, 0 adds r1, r4, 0 movs r2, 0 movs r3, 0x1 bl sub_8071598 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08073A88 movs r6, 0x1 _08073A6A: adds r0, r5, 0 adds r1, r4, 0 bl sub_8045990 lsls r0, 24 cmp r0, 0 beq _08073A88 mov r2, r8 str r2, [sp] adds r0, r5, 0 adds r1, r4, 0 mov r2, r9 adds r3, r6, 0 bl sub_8073B78 _08073A88: adds r7, 0x1 cmp r7, 0x13 ble _08073A0A add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80739DC thumb_func_start sub_8073AA0 sub_8073AA0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r5, r0, 0 mov r10, r1 mov r9, r2 lsls r3, 24 lsrs r3, 24 mov r8, r3 ldr r1, _08073B6C movs r0, 0 str r0, [r1] movs r6, 0 adds r7, r1, 0 _08073AC0: ldr r0, _08073B70 ldr r0, [r0] lsls r1, r6, 2 ldr r2, _08073B74 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08073B56 cmp r5, r4 beq _08073B56 adds r0, r5, 0 adds r1, r4, 0 bl sub_8045990 lsls r0, 24 cmp r0, 0 beq _08073B56 adds r0, r5, 0 adds r1, r4, 0 movs r2, 0 movs r3, 0x1 bl sub_8071598 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08073B56 movs r3, 0x4 ldrsh r1, [r4, r3] movs r2, 0x4 ldrsh r0, [r5, r2] subs r2, r1, r0 cmp r2, 0 bge _08073B10 negs r2, r2 _08073B10: movs r3, 0x6 ldrsh r1, [r4, r3] movs r3, 0x6 ldrsh r0, [r5, r3] subs r1, r0 cmp r1, 0 bge _08073B20 negs r1, r1 _08073B20: cmp r1, r2 bge _08073B26 adds r1, r2, 0 _08073B26: cmp r1, 0xA bgt _08073B56 mov r0, r8 cmp r0, 0 bne _08073B44 adds r0, r4, 0 mov r1, r10 movs r2, 0x1 bl sub_8048F28 bl sub_8084144 lsls r0, 24 cmp r0, 0 beq _08073B56 _08073B44: ldr r2, [r7] lsls r1, r2, 2 add r1, r9 ldrh r0, [r4, 0x4] strh r0, [r1] ldrh r0, [r4, 0x6] strh r0, [r1, 0x2] adds r2, 0x1 str r2, [r7] _08073B56: adds r6, 0x1 cmp r6, 0x13 ble _08073AC0 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08073B6C: .4byte gUnknown_203B440 _08073B70: .4byte gUnknown_203B418 _08073B74: .4byte 0x000135cc thumb_func_end sub_8073AA0 thumb_func_start sub_8073B78 sub_8073B78: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r4, r0, 0 adds r5, r1, 0 mov r9, r2 mov r10, r3 ldr r0, [sp, 0x20] lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r0, 0x4 ldrsh r1, [r4, r0] movs r2, 0x4 ldrsh r0, [r5, r2] subs r2, r1, r0 cmp r2, 0 bge _08073BA2 negs r2, r2 _08073BA2: movs r3, 0x6 ldrsh r1, [r4, r3] movs r6, 0x6 ldrsh r0, [r5, r6] subs r1, r0 cmp r1, 0 bge _08073BB2 negs r1, r1 _08073BB2: ldr r0, [r4, 0x70] adds r0, 0xE0 ldrb r0, [r0] cmp r0, 0 bne _08073BCA adds r0, r1, 0 cmp r1, r2 bge _08073BC4 adds r0, r2, 0 _08073BC4: cmp r0, 0xA ble _08073BCA b _08073CDC _08073BCA: movs r6, 0x1 negs r6, r6 cmp r2, r1 bne _08073C14 movs r7, 0x4 ldrsh r1, [r4, r7] movs r2, 0x4 ldrsh r0, [r5, r2] ldrh r2, [r4, 0x4] ldrh r3, [r5, 0x4] cmp r1, r0 bge _08073BFA movs r6, 0x6 ldrsh r1, [r4, r6] movs r7, 0x6 ldrsh r0, [r5, r7] cmp r1, r0 bge _08073BF2 movs r6, 0x1 b _08073C7E _08073BF2: cmp r1, r0 ble _08073BFA movs r6, 0x3 b _08073C7E _08073BFA: lsls r1, r2, 16 lsls r0, r3, 16 movs r6, 0x7 cmp r1, r0 ble _08073C7A movs r0, 0x6 ldrsh r1, [r4, r0] movs r2, 0x6 ldrsh r0, [r5, r2] cmp r1, r0 ble _08073C7A movs r6, 0x5 b _08073C7E _08073C14: movs r3, 0x4 ldrsh r1, [r4, r3] movs r7, 0x4 ldrsh r0, [r5, r7] ldrh r2, [r4, 0x4] ldrh r3, [r5, 0x4] cmp r1, r0 bne _08073C34 movs r0, 0x6 ldrsh r1, [r4, r0] movs r7, 0x6 ldrsh r0, [r5, r7] cmp r1, r0 bge _08073C34 movs r6, 0 b _08073C7E _08073C34: lsls r1, r2, 16 lsls r0, r3, 16 cmp r1, r0 bge _08073C4C movs r0, 0x6 ldrsh r1, [r4, r0] movs r7, 0x6 ldrsh r0, [r5, r7] cmp r1, r0 bne _08073C4C movs r6, 0x2 b _08073C7E _08073C4C: lsls r1, r2, 16 lsls r0, r3, 16 cmp r1, r0 bne _08073C64 movs r0, 0x6 ldrsh r1, [r4, r0] movs r7, 0x6 ldrsh r0, [r5, r7] cmp r1, r0 ble _08073C64 movs r6, 0x4 b _08073C7E _08073C64: lsls r1, r2, 16 lsls r0, r3, 16 cmp r1, r0 ble _08073C7A movs r0, 0x6 ldrsh r1, [r4, r0] movs r2, 0x6 ldrsh r0, [r5, r2] cmp r1, r0 bne _08073C7A movs r6, 0x6 _08073C7A: cmp r6, 0 blt _08073CDC _08073C7E: ldr r0, _08073CC0 adds r7, r6, r0 ldrb r0, [r7] cmp r0, 0 bne _08073CDC adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 movs r3, 0xA bl sub_807C9F8 lsls r0, 24 cmp r0, 0 beq _08073CDC movs r0, 0x1 strb r0, [r7] ldr r1, _08073CC4 ldr r0, _08073CC8 ldr r0, [r0] lsls r0, 2 adds r1, r0, r1 str r6, [r1] ldr r1, _08073CCC adds r4, r0, r1 mov r3, r8 cmp r3, 0 bne _08073CD0 adds r0, r5, 0 mov r1, r9 mov r2, r10 bl sub_8048F28 b _08073CD2 .align 2, 0 _08073CC0: .4byte gUnknown_202F350 _08073CC4: .4byte gUnknown_202F330 _08073CC8: .4byte gUnknown_203B440 _08073CCC: .4byte gUnknown_202F358 _08073CD0: movs r0, 0x64 _08073CD2: str r0, [r4] ldr r1, _08073CEC ldr r0, [r1] adds r0, 0x1 str r0, [r1] _08073CDC: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08073CEC: .4byte gUnknown_203B440 thumb_func_end sub_8073B78 thumb_func_start sub_8073CF0 sub_8073CF0: push {lr} bl sub_8067110 pop {r0} bx r0 thumb_func_end sub_8073CF0 thumb_func_start sub_8073CFC sub_8073CFC: push {lr} bl sub_80671A0 pop {r0} bx r0 thumb_func_end sub_8073CFC thumb_func_start sub_8073D08 sub_8073D08: push {lr} bl sub_8073D14 pop {r0} bx r0 thumb_func_end sub_8073D08 thumb_func_start sub_8073D14 sub_8073D14: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xB0 adds r6, r0, 0 ldr r4, [r6, 0x70] bl sub_8045128 ldr r5, [r0, 0x14] cmp r5, 0 bne _08073D30 b _0807407A _08073D30: bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _08073D3C b _0807407A _08073D3C: ldr r0, _08073D68 adds r1, r6, 0 movs r2, 0 bl sub_8045B94 ldrb r0, [r4, 0x7] cmp r0, 0 beq _08073D4E b _0807407A _08073D4E: ldrb r0, [r4, 0x8] cmp r0, 0x1 bne _08073D56 b _0807407A _08073D56: adds r0, r4, 0 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x4A beq _08073D64 cmp r0, 0x47 bne _08073D6C _08073D64: movs r0, 0x1 b _08073D6E .align 2, 0 _08073D68: .4byte gUnknown_202DF98 _08073D6C: movs r0, 0 _08073D6E: cmp r0, 0 beq _08073D74 b _0807407A _08073D74: adds r0, r4, 0 adds r0, 0xA4 ldrb r0, [r0] cmp r0, 0x1 bne _08073D80 b _0807407A _08073D80: ldr r0, [r6, 0x70] mov r10, r0 adds r0, r5, 0 bl sub_8045108 adds r5, r0, 0 ldrb r1, [r5] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08073D98 b _0807407A _08073D98: adds r0, r6, 0 movs r1, 0x1 bl sub_8071518 lsls r0, 24 cmp r0, 0 beq _08073DC8 ldr r0, _08073DBC adds r1, r5, 0 bl sub_8045BF8 ldr r0, _08073DC0 adds r1, r6, 0 movs r2, 0 bl sub_8045B94 ldr r0, _08073DC4 b _0807404C .align 2, 0 _08073DBC: .4byte gUnknown_202DE58 _08073DC0: .4byte gUnknown_202DF98 _08073DC4: .4byte gUnknown_80F8F88 _08073DC8: mov r1, r10 ldrb r0, [r1, 0x6] cmp r0, 0 bne _08073E24 ldrb r0, [r5, 0x2] bl sub_8090BD0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x6 bne _08073E24 mov r7, r10 ldrb r0, [r7, 0x6] cmp r0, 0 beq _08073DF4 ldr r0, _08073DF0 bl sub_8083E38 b _08073DFC .align 2, 0 _08073DF0: .4byte 0x0000014b _08073DF4: movs r0, 0xA6 lsls r0, 1 bl sub_8083E38 _08073DFC: adds r0, r5, 0 bl sub_80915D4 bl sub_80913A0 ldr r0, _08073E1C adds r1, r5, 0 bl sub_8045BF8 adds r0, r6, 0x4 movs r1, 0x1 bl sub_80461C8 ldr r0, _08073E20 b _0807404C .align 2, 0 _08073E1C: .4byte gUnknown_202DE58 _08073E20: .4byte gUnknown_80F9054 _08073E24: ldr r0, _08073E64 ldr r0, [r0] ldr r1, _08073E68 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _08073E70 mov r7, r10 ldrb r0, [r7, 0x6] cmp r0, 0 bne _08073E70 movs r4, 0 add r2, sp, 0x54 adds r7, 0x60 ldr r0, _08073E6C mov r1, sp ldr r0, [r0] adds r3, r2, 0 _08073E48: stm r3!, {r0} stm r1!, {r4} adds r0, 0x4 adds r4, 0x1 cmp r4, 0x13 ble _08073E48 str r7, [r2, 0x50] movs r0, 0x1 negs r0, r0 str r0, [sp, 0x50] movs r0, 0x15 mov r8, r0 b _08073E80 .align 2, 0 _08073E64: .4byte gUnknown_203B418 _08073E68: .4byte 0x0000065b _08073E6C: .4byte gUnknown_203B460 _08073E70: mov r0, r10 adds r0, 0x60 str r0, [sp, 0x54] movs r0, 0x1 negs r0, r0 str r0, [sp] movs r1, 0x1 mov r8, r1 _08073E80: ldrb r0, [r5, 0x2] add r7, sp, 0xA8 strb r0, [r7] adds r0, r7, 0 ldrb r0, [r0] cmp r0, 0x8 bls _08073E90 b _08073FA8 _08073E90: ldrb r1, [r5] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08073E9C b _08073FA8 _08073E9C: movs r1, 0x1 negs r1, r1 mov r12, r1 mov r7, r12 str r7, [sp, 0xAC] movs r4, 0 cmp r4, r8 bge _08073EEC ldr r0, _08073F94 mov r9, r0 add r3, sp, 0x54 _08073EB2: ldr r2, [r3] ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08073EE4 movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08073EE4 ldr r1, [r5] mov r7, r9 ands r1, r7 ldr r0, [r2] ands r0, r7 cmp r1, r0 bne _08073EE4 ldrb r0, [r2, 0x1] cmp r0, 0x63 beq _08073EE4 ldr r1, [sp, 0xAC] cmp r1, r0 bge _08073EE4 str r0, [sp, 0xAC] mov r12, r4 _08073EE4: adds r3, 0x4 adds r4, 0x1 cmp r4, r8 blt _08073EB2 _08073EEC: movs r0, 0x1 negs r0, r0 cmp r12, r0 bne _08073F40 mov r7, r12 str r7, [sp, 0xAC] movs r4, 0 cmp r4, r8 bge _08073F38 add r0, sp, 0xA8 ldrb r0, [r0] mov r9, r0 add r3, sp, 0x54 _08073F06: ldr r2, [r3] ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08073F30 movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08073F30 ldrb r1, [r2, 0x2] cmp r9, r1 bne _08073F30 ldrb r0, [r2, 0x1] cmp r0, 0x63 beq _08073F30 ldr r7, [sp, 0xAC] cmp r7, r0 bge _08073F30 str r0, [sp, 0xAC] mov r12, r4 _08073F30: adds r3, 0x4 adds r4, 0x1 cmp r4, r8 blt _08073F06 _08073F38: movs r0, 0x1 negs r0, r0 cmp r12, r0 beq _08073FA8 _08073F40: add r0, sp, 0x54 mov r1, r12 lsls r4, r1, 2 adds r3, r0, r4 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r5, 0x1] adds r1, r0 cmp r1, 0x62 ble _08073F56 movs r1, 0x63 _08073F56: strb r1, [r2, 0x1] ldrb r1, [r5] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08073F6C ldr r0, [r3] ldrb r1, [r0] movs r2, 0x8 orrs r1, r2 strb r1, [r0] _08073F6C: ldr r0, _08073F98 adds r1, r5, 0 bl sub_8045BF8 adds r0, r6, 0x4 movs r1, 0x1 bl sub_80461C8 movs r0, 0xA5 lsls r0, 1 bl sub_8083E38 mov r7, sp adds r0, r7, r4 ldr r0, [r0] cmp r0, 0 bge _08073FA0 ldr r0, _08073F9C b _0807404C .align 2, 0 _08073F94: .4byte 0x00ff0008 _08073F98: .4byte gUnknown_202DE58 _08073F9C: .4byte gUnknown_80F9018 _08073FA0: ldr r0, _08073FA4 b _0807404C .align 2, 0 _08073FA4: .4byte gUnknown_80F9050 _08073FA8: movs r4, 0 cmp r4, r8 bge _08073FD2 ldr r0, [sp, 0x54] ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08073FD2 movs r3, 0x1 add r2, sp, 0x54 _08073FBE: adds r2, 0x4 adds r4, 0x1 cmp r4, r8 bge _08073FD2 ldr r0, [r2] ldrb r1, [r0] adds r0, r3, 0 ands r0, r1 cmp r0, 0 bne _08073FBE _08073FD2: cmp r4, r8 bne _08073FEC ldr r0, _08073FE4 adds r1, r5, 0 bl sub_8045BF8 ldr r0, _08073FE8 b _0807404C .align 2, 0 _08073FE4: .4byte gUnknown_202DE58 _08073FE8: .4byte gUnknown_80F8F54 _08073FEC: mov r1, r10 ldrb r0, [r1, 0x6] cmp r0, 0 beq _08074000 ldr r0, _08073FFC bl sub_8083E38 b _08074008 .align 2, 0 _08073FFC: .4byte 0x0000014b _08074000: movs r0, 0xA5 lsls r0, 1 bl sub_8083E38 _08074008: lsls r0, r4, 2 add r0, sp ldr r0, [r0] cmp r0, 0 bge _08074034 ldr r0, [r5] mov r7, r10 str r0, [r7, 0x60] ldr r0, _0807402C adds r1, r5, 0 bl sub_8045BF8 adds r0, r6, 0x4 movs r1, 0x1 bl sub_80461C8 ldr r0, _08074030 b _0807404C .align 2, 0 _0807402C: .4byte gUnknown_202DE58 _08074030: .4byte gUnknown_80F9018 _08074034: adds r0, r5, 0 bl sub_8091290 lsls r0, 24 cmp r0, 0 beq _08074060 ldr r0, _08074058 adds r1, r6, 0 movs r2, 0 bl sub_8045B94 ldr r0, _0807405C _0807404C: ldr r1, [r0] adds r0, r6, 0 bl sub_805239C b _0807407A .align 2, 0 _08074058: .4byte gUnknown_202DF98 _0807405C: .4byte gUnknown_80F8FAC _08074060: ldr r0, _0807408C adds r1, r5, 0 bl sub_8045BF8 adds r0, r6, 0x4 movs r1, 0x1 bl sub_80461C8 ldr r0, _08074090 ldr r1, [r0] adds r0, r6, 0 bl sub_805239C _0807407A: add sp, 0xB0 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0807408C: .4byte gUnknown_202DE58 _08074090: .4byte gUnknown_80F9050 thumb_func_end sub_8073D14 thumb_func_start sub_8074094 sub_8074094: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x30 adds r5, r0, 0 cmp r5, 0 bne _080740AA bl _08074B2E _080740AA: bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _080740B8 bl _08074B2E _080740B8: bl sub_8044B28 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0 beq _080740C8 bl _08074B2E _080740C8: ldr r0, [r5, 0x70] mov r8, r0 movs r0, 0xA3 lsls r0, 1 add r0, r8 strb r6, [r0] bl sub_805229C adds r0, r5, 0 bl sub_807E8F0 adds r0, r5, 0 movs r1, 0x16 bl sub_8046CB0 lsls r0, 24 cmp r0, 0 beq _08074170 ldr r4, _0807434C add r4, r8 ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] lsls r0, 24 lsrs r0, 24 cmp r0, 0x13 bls _08074102 movs r0, 0x13 strb r0, [r4] _08074102: movs r0, 0x64 bl sub_8084100 ldr r2, _08074350 ldrb r1, [r4] lsls r1, 1 adds r1, r2 movs r2, 0 ldrsh r1, [r1, r2] cmp r0, r1 bge _08074170 strb r6, [r4] adds r0, r5, 0 bl sub_80444F4 movs r0, 0 bl sub_807520C adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _08074136 bl _08074B2E _08074136: bl sub_8044B28 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _08074146 bl _08074B2E _08074146: adds r0, r5, 0 adds r1, r5, 0 movs r2, 0 movs r3, 0 bl sub_807D148 mov r3, r8 ldrb r0, [r3, 0x7] cmp r0, 0 bne _0807415C b _080743B0 _0807415C: ldr r1, _08074354 ldr r0, [r1] strb r4, [r0, 0x1] ldr r0, [r1] movs r4, 0xB8 lsls r4, 3 adds r0, r4 movs r1, 0x1 negs r1, r1 str r1, [r0] _08074170: mov r1, r8 ldrb r0, [r1, 0x7] cmp r0, 0 bne _0807417A b _080743B0 _0807417A: movs r2, 0 mov r9, r2 movs r4, 0xA adds r0, r5, 0 movs r1, 0x17 bl sub_8046CB0 lsls r0, 24 cmp r0, 0 beq _08074190 movs r4, 0 _08074190: adds r0, r5, 0 movs r1, 0x1F bl sub_8046CB0 lsls r0, 24 cmp r0, 0 beq _080741A0 subs r4, 0x1 _080741A0: adds r0, r5, 0 movs r1, 0x10 bl sub_80718D8 lsls r0, 24 cmp r0, 0 beq _080741B0 subs r4, 0x1 _080741B0: adds r0, r5, 0 movs r1, 0x1B bl sub_8046CB0 lsls r0, 24 cmp r0, 0 beq _080741C0 adds r4, 0x1 _080741C0: adds r0, r5, 0 movs r1, 0xA bl sub_8046CB0 lsls r0, 24 cmp r0, 0 beq _080741D0 adds r4, 0x1 _080741D0: adds r0, r5, 0 movs r1, 0x2B bl sub_8046CB0 lsls r0, 24 cmp r0, 0 beq _080741E0 adds r4, 0x1 _080741E0: cmp r4, 0 bge _080741E6 movs r4, 0 _080741E6: cmp r4, 0x13 ble _080741EC movs r4, 0x13 _080741EC: mov r3, r9 str r3, [sp, 0x8] ldr r0, _08074358 str r0, [sp, 0xC] add r6, sp, 0x10 lsls r2, r4, 3 ldr r0, _0807435C adds r2, r0 adds r0, r6, 0 add r1, sp, 0x8 bl sub_800A34C ldr r2, _08074360 add r2, r8 ldrb r0, [r2] cmp r0, 0x1 bls _0807421E ldr r1, _08074364 lsls r0, 2 adds r0, r1 ldr r1, [r0] lsls r1, 16 ldr r0, [r6, 0x4] adds r0, r1 str r0, [r6, 0x4] _0807421E: mov r4, r9 strb r4, [r2] movs r4, 0x9E lsls r4, 1 add r4, r8 ldr r7, [r4] add r0, sp, 0x18 adds r1, r6, 0 bl sub_80943A8 ldr r2, [sp, 0x18] add r0, sp, 0x1C adds r1, r7, 0 bl sub_80942C0 ldr r0, [sp, 0x1C] str r0, [r4] movs r6, 0x1 adds r0, r7, 0 bl sub_8094450 cmp r0, 0x13 ble _0807425C ldr r0, [r4] bl sub_8094450 cmp r0, 0x13 bgt _0807425C ldr r0, _08074368 ldr r0, [r0] mov r9, r0 _0807425C: adds r0, r7, 0 bl sub_8094450 cmp r0, 0x9 ble _0807427C movs r0, 0x9E lsls r0, 1 add r0, r8 ldr r0, [r0] bl sub_8094450 cmp r0, 0x9 bgt _0807427C ldr r0, _0807436C ldr r0, [r0] mov r9, r0 _0807427C: movs r4, 0x9E lsls r4, 1 add r4, r8 ldr r0, [r4] bl sub_8094450 cmp r0, 0 bne _08074298 add r0, sp, 0x20 movs r1, 0 bl sub_80943A0 ldr r0, [sp, 0x20] str r0, [r4] _08074298: ldr r0, [r4] bl sub_8094450 cmp r0, 0 bge _080742AE add r0, sp, 0x24 movs r1, 0 bl sub_80943A0 ldr r0, [sp, 0x24] str r0, [r4] _080742AE: ldr r0, [r4] bl sub_8094450 cmp r0, 0 bne _08074384 bl sub_805E804 adds r0, r5, 0 bl sub_80444F4 movs r0, 0 bl sub_807520C adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _080742D8 bl _08074B2E _080742D8: bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _080742E6 bl _08074B2E _080742E6: ldr r3, _08074354 ldr r0, [r3] ldr r2, _08074370 adds r1, r0, r2 ldrb r0, [r1] cmp r0, 0x9 bhi _080742F8 adds r0, 0x1 strb r0, [r1] _080742F8: ldr r0, [r3] adds r0, r2 ldrb r2, [r0] cmp r2, 0x1 bne _08074308 ldr r0, _08074374 ldr r0, [r0] mov r9, r0 _08074308: cmp r2, 0x2 bne _08074314 ldr r0, _08074378 ldr r0, [r0] mov r9, r0 movs r6, 0 _08074314: cmp r2, 0x3 bne _08074320 ldr r0, _0807437C ldr r0, [r0] mov r9, r0 movs r6, 0 _08074320: adds r0, r5, 0 adds r1, r5, 0 bl sub_807A96C ldr r3, _08074380 adds r0, r5, 0 movs r1, 0x1 movs r2, 0xE bl sub_806F324 movs r1, 0xA3 lsls r1, 1 add r1, r8 movs r0, 0x1 strb r0, [r1] ldr r0, [r4] bl sub_8094450 cmp r0, 0 beq _08074390 b _080743B0 .align 2, 0 _0807434C: .4byte 0x00000169 _08074350: .4byte gUnknown_80F5594 _08074354: .4byte gUnknown_203B418 _08074358: .4byte 0x0000199a _0807435C: .4byte gUnknown_80F54F4 _08074360: .4byte 0x00000153 _08074364: .4byte gUnknown_80F60DC _08074368: .4byte gUnknown_80FD594 _0807436C: .4byte gUnknown_80FD5B8 _08074370: .4byte 0x00000679 _08074374: .4byte gUnknown_80FD5DC _08074378: .4byte gUnknown_80FD608 _0807437C: .4byte gUnknown_80FD628 _08074380: .4byte 0x00000211 _08074384: ldr r0, _08074408 ldr r0, [r0] ldr r1, _0807440C adds r0, r1 movs r1, 0 strb r1, [r0] _08074390: mov r2, r9 cmp r2, 0 beq _080743B0 cmp r6, 0 beq _080743A0 ldr r0, _08074410 bl sub_8083E38 _080743A0: adds r0, r5, 0 mov r1, r9 bl sub_80522A8 movs r0, 0x1E movs r1, 0x32 bl sub_803E708 _080743B0: adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _080743BE b _08074B2E _080743BE: bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _080743CA b _08074B2E _080743CA: ldr r0, _08074408 ldr r0, [r0] ldr r3, _08074414 adds r0, r3 ldrb r0, [r0] cmp r0, 0 bne _08074480 adds r0, r5, 0 bl sub_807E580 lsls r0, 24 lsrs r0, 24 cmp r0, 0x5 bne _0807441C adds r0, r5, 0 movs r1, 0x6 bl sub_8071858 lsls r0, 24 cmp r0, 0 bne _08074466 ldr r0, _08074418 movs r4, 0 ldrsh r1, [r0, r4] movs r3, 0x88 lsls r3, 2 adds r0, r5, 0 movs r2, 0x12 bl sub_806F324 b _08074466 .align 2, 0 _08074408: .4byte gUnknown_203B418 _0807440C: .4byte 0x00000679 _08074410: .4byte 0x00000153 _08074414: .4byte 0x0000e266 _08074418: .4byte gUnknown_80F4F8E _0807441C: adds r0, r5, 0 bl sub_807E580 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _08074466 adds r0, r5, 0 movs r1, 0x9 bl sub_8071858 lsls r0, 24 cmp r0, 0 bne _08074466 adds r0, r5, 0 movs r1, 0xD bl sub_8071858 lsls r0, 24 cmp r0, 0 bne _08074466 adds r0, r5, 0 movs r1, 0x11 bl sub_8071858 lsls r0, 24 cmp r0, 0 bne _08074466 ldr r0, _08074608 movs r2, 0 ldrsh r1, [r0, r2] movs r3, 0x88 lsls r3, 2 adds r0, r5, 0 movs r2, 0x12 bl sub_806F324 _08074466: adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _08074474 b _08074B2E _08074474: bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _08074480 b _08074B2E _08074480: movs r0, 0x64 bl sub_8084100 adds r4, r0, 0 adds r0, r5, 0 movs r1, 0x21 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _080744D8 ldr r0, _0807460C movs r3, 0 ldrsh r0, [r0, r3] cmp r4, r0 bge _080744D8 adds r0, r5, 0 bl sub_8070A58 lsls r0, 24 cmp r0, 0 beq _080744D8 movs r0, 0 bl sub_807520C adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _080744C0 b _08074B2E _080744C0: bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _080744CC b _08074B2E _080744CC: adds r0, r5, 0 adds r1, r5, 0 movs r2, 0x1 movs r3, 0 bl sub_8079F20 _080744D8: adds r0, r5, 0 movs r1, 0xB bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0807450C ldr r2, _08074610 add r2, r8 ldrb r0, [r2] adds r0, 0x1 strb r0, [r2] ldrb r1, [r2] ldr r0, _08074614 movs r4, 0 ldrsh r0, [r0, r4] cmp r1, r0 blt _0807450C movs r0, 0 strb r0, [r2] adds r0, r5, 0 adds r1, r5, 0 movs r2, 0x7F movs r3, 0 bl sub_8077910 _0807450C: mov r0, r8 adds r0, 0xA8 ldrb r0, [r0] cmp r0, 0x4 bne _0807453C movs r0, 0 bl sub_807520C adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _0807452A b _08074B2E _0807452A: bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _08074536 b _08074B2E _08074536: adds r0, r5, 0 bl sub_80420B8 _0807453C: mov r0, r8 adds r0, 0xAC ldrb r1, [r0] adds r6, r0, 0 cmp r1, 0x1 bne _080745B6 mov r4, r8 adds r4, 0xAE ldrb r0, [r4] cmp r0, 0 beq _0807455C subs r0, 0x1 strb r0, [r4] lsls r0, 24 cmp r0, 0 bne _0807459C _0807455C: movs r0, 0 bl sub_807520C adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _08074570 b _08074B2E _08074570: bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _0807457C b _08074B2E _0807457C: ldr r0, _08074618 ldrh r0, [r0] strb r0, [r4] adds r0, r5, 0 adds r1, r5, 0 bl sub_807A96C ldr r0, _0807461C movs r2, 0 ldrsh r1, [r0, r2] movs r3, 0x82 lsls r3, 2 adds r0, r5, 0 movs r2, 0x1 bl sub_806F324 _0807459C: adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _080745AA b _08074B2E _080745AA: bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _080745B6 b _08074B2E _080745B6: ldrb r0, [r6] cmp r0, 0x2 bne _08074628 mov r4, r8 adds r4, 0xAE ldrb r0, [r4] cmp r0, 0 beq _080745D0 subs r0, 0x1 strb r0, [r4] lsls r0, 24 cmp r0, 0 bne _08074696 _080745D0: movs r0, 0 bl sub_807520C adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _080745E4 b _08074B2E _080745E4: bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _080745F0 b _08074B2E _080745F0: ldr r0, _08074620 ldrh r0, [r0] strb r0, [r4] adds r0, r5, 0 adds r1, r5, 0 bl sub_807A96C ldr r0, _08074624 movs r3, 0 ldrsh r1, [r0, r3] b _0807468C .align 2, 0 _08074608: .4byte gUnknown_80F4F8E _0807460C: .4byte gUnknown_80F4E0C _08074610: .4byte 0x00000113 _08074614: .4byte gUnknown_80F4F30 _08074618: .4byte gUnknown_80F4F32 _0807461C: .4byte gUnknown_80F4F70 _08074620: .4byte gUnknown_80F4F34 _08074624: .4byte gUnknown_80F4F72 _08074628: cmp r0, 0x3 bne _080746B0 mov r2, r8 adds r2, 0xAE ldrb r0, [r2] cmp r0, 0 beq _08074640 subs r0, 0x1 strb r0, [r2] lsls r0, 24 cmp r0, 0 bne _08074696 _08074640: mov r1, r8 adds r1, 0xAF ldrb r4, [r1] cmp r4, 0x1C bhi _0807464E adds r0, r4, 0x1 strb r0, [r1] _0807464E: ldr r0, _08074718 ldrh r0, [r0] strb r0, [r2] cmp r4, 0x1C ble _0807465A movs r4, 0x1D _0807465A: movs r0, 0 bl sub_807520C adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _0807466E b _08074B2E _0807466E: bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _0807467A b _08074B2E _0807467A: adds r0, r5, 0 adds r1, r5, 0 bl sub_807A96C ldr r1, _0807471C lsls r0, r4, 1 adds r0, r1 movs r4, 0 ldrsh r1, [r0, r4] _0807468C: ldr r3, _08074720 adds r0, r5, 0 movs r2, 0x3 bl sub_806F324 _08074696: adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _080746A4 b _08074B2E _080746A4: bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _080746B0 b _08074B2E _080746B0: mov r0, r8 adds r0, 0xB0 ldrb r1, [r0] mov r10, r0 cmp r1, 0x7 bne _08074730 mov r4, r8 adds r4, 0xB9 ldrb r0, [r4] cmp r0, 0 beq _080746D0 subs r0, 0x1 strb r0, [r4] lsls r0, 24 cmp r0, 0 bne _08074786 _080746D0: movs r0, 0 bl sub_807520C adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _080746E4 b _08074B2E _080746E4: bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _080746F0 b _08074B2E _080746F0: ldr r0, _08074724 ldrh r0, [r0] strb r0, [r4] adds r0, r5, 0 adds r1, r5, 0 bl sub_807A96C mov r0, r8 adds r0, 0xB4 ldr r1, [r0] adds r0, r5, 0 bl sub_8041C4C ldr r0, _08074728 movs r2, 0 ldrsh r1, [r0, r2] ldr r3, _0807472C adds r0, r5, 0 movs r2, 0x2 b _08074782 .align 2, 0 _08074718: .4byte gUnknown_80F4F36 _0807471C: .4byte gUnknown_80F4FC8 _08074720: .4byte 0x0000020a _08074724: .4byte gUnknown_80F4F38 _08074728: .4byte gUnknown_80F4F74 _0807472C: .4byte 0x00000209 _08074730: cmp r1, 0x4 bne _080747B0 mov r4, r8 adds r4, 0xB9 ldrb r0, [r4] cmp r0, 0 beq _08074748 subs r0, 0x1 strb r0, [r4] lsls r0, 24 cmp r0, 0 bne _08074786 _08074748: movs r0, 0 bl sub_807520C adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _0807475C b _08074B2E _0807475C: bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _08074768 b _08074B2E _08074768: ldr r0, _080747A4 ldrh r0, [r0] strb r0, [r4] adds r0, r5, 0 adds r1, r5, 0 bl sub_807A96C ldr r0, _080747A8 movs r3, 0 ldrsh r1, [r0, r3] ldr r3, _080747AC adds r0, r5, 0 movs r2, 0x5 _08074782: bl sub_806F324 _08074786: adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _08074794 b _08074B2E _08074794: bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _080747A0 b _08074B2E _080747A0: b _08074802 .align 2, 0 _080747A4: .4byte gUnknown_80F4F3A _080747A8: .4byte gUnknown_80F4F76 _080747AC: .4byte 0x0000020b _080747B0: cmp r1, 0x5 bne _08074802 mov r4, r8 adds r4, 0xB9 ldrb r0, [r4] cmp r0, 0 beq _080747C8 subs r0, 0x1 strb r0, [r4] lsls r0, 24 cmp r0, 0 bne _08074802 _080747C8: movs r0, 0 bl sub_807520C adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _080747DC b _08074B2E _080747DC: bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _080747E8 b _08074B2E _080747E8: ldr r0, _080748D4 ldrh r0, [r0] strb r0, [r4] ldr r0, _080748D8 movs r4, 0 ldrsh r2, [r0, r4] movs r0, 0x1 str r0, [sp] adds r0, r5, 0 adds r1, r5, 0 movs r3, 0 bl sub_8077C44 _08074802: mov r0, r8 adds r0, 0xC8 ldrb r0, [r0] cmp r0, 0x1 bne _0807488A mov r2, r8 adds r2, 0xCC ldrb r0, [r2] cmp r0, 0 beq _08074820 subs r0, 0x1 strb r0, [r2] lsls r0, 24 cmp r0, 0 bne _08074870 _08074820: mov r0, r8 movs r3, 0x10 ldrsh r1, [r0, r3] cmp r1, 0 bge _0807482C adds r1, 0x3 _0807482C: asrs r4, r1, 2 cmp r4, 0 bne _08074834 movs r4, 0x1 _08074834: ldr r0, _080748DC ldrh r0, [r0] strb r0, [r2] movs r0, 0 bl sub_807520C adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _0807484E b _08074B2E _0807484E: bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _0807485A b _08074B2E _0807485A: adds r0, r5, 0 adds r1, r5, 0 bl sub_807A96C movs r3, 0x83 lsls r3, 2 adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x7 bl sub_806F324 _08074870: adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _0807487E b _08074B2E _0807487E: bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _0807488A b _08074B2E _0807488A: mov r3, r8 adds r3, 0xD0 ldrb r4, [r3] mov r9, r4 cmp r4, 0x1 beq _08074898 b _080749AE _08074898: mov r2, r8 adds r2, 0xDA ldrb r0, [r2] cmp r0, 0 beq _080748AC subs r0, 0x1 strb r0, [r2] lsls r0, 24 cmp r0, 0 bne _08074994 _080748AC: ldr r0, _080748E0 movs r1, 0 ldrsh r6, [r0, r1] ldr r0, _080748E4 ldr r1, [r0] mov r0, r8 adds r0, 0xD8 ldrb r0, [r0] lsls r0, 2 ldr r4, _080748E8 adds r1, r4 adds r1, r0 ldr r4, [r1] ldr r0, _080748EC ldrh r0, [r0] strb r0, [r2] cmp r4, 0 bne _080748F0 strb r4, [r3] b _08074994 .align 2, 0 _080748D4: .4byte gUnknown_80F4F3C _080748D8: .4byte gUnknown_80F4FB2 _080748DC: .4byte gUnknown_80F4F3E _080748E0: .4byte gUnknown_80F4FB4 _080748E4: .4byte gUnknown_203B418 _080748E8: .4byte 0x000135cc _080748EC: .4byte gUnknown_80F4F40 _080748F0: ldr r0, [r4, 0x70] adds r0, 0x98 mov r1, r8 adds r1, 0xD4 ldr r2, [r0] ldr r0, [r1] cmp r2, r0 beq _08074906 movs r0, 0 strb r0, [r3] b _08074994 _08074906: adds r0, r5, 0 movs r1, 0x3A bl sub_8071824 lsls r0, 24 lsrs r7, r0, 24 adds r0, r5, 0 bl sub_80444F4 movs r0, 0 bl sub_807520C adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _0807492C b _08074B2E _0807492C: adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _0807493A b _08074B2E _0807493A: bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _08074946 b _08074B2E _08074946: mov r1, r10 ldrb r0, [r1] cmp r0, 0x1 beq _08074994 adds r0, r5, 0 adds r1, r5, 0 bl sub_807A96C ldr r3, _08074980 adds r0, r5, 0 adds r1, r6, 0 movs r2, 0x9 bl sub_806F324 cmp r7, 0 beq _08074984 adds r0, r4, 0 adds r1, r4, 0 bl sub_807A96C movs r3, 0xFD lsls r3, 1 adds r0, r4, 0 adds r1, r6, 0 movs r2, 0xD bl sub_806F324 b _08074994 .align 2, 0 _08074980: .4byte 0x0000020d _08074984: mov r2, r9 str r2, [sp] adds r0, r4, 0 adds r1, r4, 0 adds r2, r6, 0 movs r3, 0 bl sub_8077C44 _08074994: adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _080749A2 b _08074B2E _080749A2: bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _080749AE b _08074B2E _080749AE: mov r4, r8 adds r4, 0xFD ldrb r0, [r4] cmp r0, 0 beq _08074A46 adds r0, r4, 0 bl sub_80838EC ldrb r0, [r4] cmp r0, 0 bne _08074A46 movs r0, 0 bl sub_807520C adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _080749D8 b _08074B2E _080749D8: bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _080749E4 b _08074B2E _080749E4: ldr r0, _08074A18 adds r1, r5, 0 movs r2, 0 bl sub_8045B94 ldr r0, _08074A1C ldr r1, [r0] adds r0, r5, 0 bl sub_80522A8 adds r0, r5, 0 adds r1, r5, 0 bl sub_807A96C mov r0, r8 adds r0, 0xC4 ldrb r0, [r0] cmp r0, 0x7 bne _08074A24 ldr r0, _08074A20 ldr r1, [r0] adds r0, r5, 0 bl sub_80522A8 b _08074A30 .align 2, 0 _08074A18: .4byte gUnknown_202DFE8 _08074A1C: .4byte gUnknown_80FEB30 _08074A20: .4byte gUnknown_810075C _08074A24: ldr r1, _08074B40 ldr r3, _08074B44 adds r0, r5, 0 movs r2, 0xB bl sub_806F324 _08074A30: adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08074B2E bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _08074B2E _08074A46: mov r0, r8 adds r0, 0xC0 ldrb r1, [r0] adds r7, r0, 0 cmp r1, 0x1 bne _08074AD4 mov r4, r8 adds r4, 0xC1 adds r0, r4, 0 bl sub_80838EC ldrb r0, [r4] cmp r0, 0 bne _08074AD4 strb r0, [r7] adds r0, r5, 0 movs r1, 0 bl sub_8070B6C lsls r0, 24 cmp r0, 0 bne _08074AD4 adds r0, r5, 0 movs r1, 0 bl sub_8070D04 lsls r0, 24 cmp r0, 0 bne _08074AD4 adds r0, r5, 0 bl sub_8070CD0 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0 bne _08074AD4 movs r0, 0 bl sub_807520C add r4, sp, 0x28 ldr r1, _08074B48 adds r0, r4, 0 bl sub_8092A88 ldrb r0, [r4] movs r1, 0x10 orrs r0, r1 strb r0, [r4] str r6, [sp] str r4, [sp, 0x4] adds r0, r5, 0 movs r1, 0 movs r2, 0 movs r3, 0 bl sub_8055FA0 adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08074B2E bl sub_8044B28 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _08074B2E mov r0, r8 adds r0, 0xA0 str r1, [r0] _08074AD4: adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08074B2E bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _08074B2E ldrb r0, [r7] cmp r0, 0xC bne _08074B1E mov r4, r8 adds r4, 0xC1 adds r0, r4, 0 bl sub_80838EC ldrb r0, [r4] cmp r0, 0 bne _08074B1E strb r0, [r7] movs r1, 0xA5 lsls r1, 1 add r1, r8 strb r0, [r1] ldr r0, _08074B4C adds r1, r5, 0 movs r2, 0 bl sub_8045B94 ldr r0, _08074B50 ldr r1, [r0] adds r0, r5, 0 bl sub_80522A8 _08074B1E: adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08074B2E bl sub_8044B28 _08074B2E: add sp, 0x30 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08074B40: .4byte 0x0000270f _08074B44: .4byte 0x0000020e _08074B48: .4byte 0x00000165 _08074B4C: .4byte gUnknown_202DF98 _08074B50: .4byte gUnknown_80FABD8 thumb_func_end sub_8074094 thumb_func_start sub_8074B54 sub_8074B54: push {r4-r7,lr} mov r7, r8 push {r7} adds r7, r0, 0 cmp r7, 0 bne _08074B62 b _08074F96 _08074B62: bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _08074B6E b _08074F96 _08074B6E: bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _08074B7A b _08074F96 _08074B7A: bl sub_805229C ldr r6, [r7, 0x70] movs r1, 0xA3 lsls r1, 1 adds r0, r6, r1 ldrb r0, [r0] cmp r0, 0 bne _08074C48 adds r0, r6, 0 adds r0, 0xAC ldrb r0, [r0] cmp r0, 0x2 beq _08074C48 cmp r0, 0x3 beq _08074C48 movs r4, 0 ldrb r0, [r6, 0x6] cmp r0, 0 bne _08074BAE movs r2, 0x2 ldrsh r0, [r6, r2] bl sub_808DB2C lsls r0, 24 lsrs r4, r0, 24 _08074BAE: cmp r4, 0 beq _08074C48 adds r0, r7, 0 movs r1, 0xA bl sub_8046CB0 lsls r0, 24 cmp r0, 0 beq _08074BC8 ldr r0, _08074EF8 movs r3, 0 ldrsh r0, [r0, r3] adds r4, r0 _08074BC8: adds r0, r6, 0 adds r0, 0xC4 ldrb r0, [r0] cmp r0, 0x6 bne _08074BDA ldr r0, _08074EFC movs r1, 0 ldrsh r0, [r0, r1] adds r4, r0 _08074BDA: adds r0, r7, 0 movs r1, 0x3 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _08074BFE adds r0, r7, 0 bl sub_807E580 lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bne _08074BFE ldr r0, _08074F00 movs r2, 0 ldrsh r0, [r0, r2] adds r4, r0 _08074BFE: movs r0, 0xFA lsls r0, 1 cmp r4, r0 ble _08074C08 adds r4, r0, 0 _08074C08: cmp r4, 0x1D bgt _08074C0E movs r4, 0x1E _08074C0E: movs r3, 0xFC lsls r3, 1 adds r1, r6, r3 ldrh r0, [r6, 0x10] ldrh r2, [r1] adds r0, r2 strh r0, [r1] movs r3, 0 ldrsh r0, [r1, r3] cmp r0, r4 blt _08074C38 _08074C24: ldrh r0, [r6, 0xE] adds r0, 0x1 strh r0, [r6, 0xE] ldrh r0, [r1] subs r0, r4 strh r0, [r1] movs r2, 0 ldrsh r0, [r1, r2] cmp r0, r4 bge _08074C24 _08074C38: movs r3, 0xE ldrsh r1, [r6, r3] ldrh r2, [r6, 0x10] movs r3, 0x10 ldrsh r0, [r6, r3] cmp r1, r0 blt _08074C48 strh r2, [r6, 0xE] _08074C48: adds r0, r6, 0 adds r0, 0xA8 ldrb r0, [r0] cmp r0, 0 beq _08074C6E adds r4, r6, 0 adds r4, 0xA9 adds r0, r4, 0 bl sub_80838EC ldrb r0, [r4] cmp r0, 0 bne _08074C6E adds r0, r7, 0 adds r1, r7, 0 movs r2, 0x1 movs r3, 0x1 bl sub_807A124 _08074C6E: adds r0, r7, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _08074C7C b _08074F96 _08074C7C: bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _08074C88 b _08074F96 _08074C88: adds r0, r6, 0 adds r0, 0xAC ldrb r0, [r0] cmp r0, 0 beq _08074CAA adds r4, r6, 0 adds r4, 0xAD adds r0, r4, 0 bl sub_80838EC ldrb r0, [r4] cmp r0, 0 bne _08074CAA adds r0, r7, 0 adds r1, r7, 0 bl sub_807A290 _08074CAA: adds r0, r7, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _08074CB8 b _08074F96 _08074CB8: bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _08074CC4 b _08074F96 _08074CC4: adds r0, r6, 0 adds r0, 0xB0 ldrb r0, [r0] cmp r0, 0 beq _08074CE6 adds r4, r6, 0 adds r4, 0xB8 adds r0, r4, 0 bl sub_80838EC ldrb r0, [r4] cmp r0, 0 bne _08074CE6 adds r0, r7, 0 adds r1, r7, 0 bl sub_807A324 _08074CE6: adds r0, r7, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _08074CF4 b _08074F96 _08074CF4: bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _08074D00 b _08074F96 _08074D00: adds r0, r6, 0 adds r0, 0xBC ldrb r0, [r0] cmp r0, 0 beq _08074D22 adds r4, r6, 0 adds r4, 0xBD adds r0, r4, 0 bl sub_80838EC ldrb r0, [r4] cmp r0, 0 bne _08074D22 adds r0, r7, 0 adds r1, r7, 0 bl sub_807A400 _08074D22: adds r0, r7, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _08074D30 b _08074F96 _08074D30: bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _08074D3C b _08074F96 _08074D3C: adds r0, r6, 0 adds r0, 0xC4 ldrb r0, [r0] cmp r0, 0 beq _08074D5E adds r4, r6, 0 adds r4, 0xC5 adds r0, r4, 0 bl sub_80838EC ldrb r0, [r4] cmp r0, 0 bne _08074D5E adds r0, r7, 0 adds r1, r7, 0 bl sub_807A4C8 _08074D5E: adds r0, r7, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _08074D6C b _08074F96 _08074D6C: bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _08074D78 b _08074F96 _08074D78: adds r0, r6, 0 adds r0, 0xC8 ldrb r0, [r0] cmp r0, 0 beq _08074D9C adds r4, r6, 0 adds r4, 0xCB adds r0, r4, 0 bl sub_80838EC ldrb r0, [r4] cmp r0, 0 bne _08074D9C adds r0, r7, 0 adds r1, r7, 0 movs r2, 0 bl sub_807A5D0 _08074D9C: adds r0, r7, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _08074DAA b _08074F96 _08074DAA: bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _08074DB6 b _08074F96 _08074DB6: adds r0, r6, 0 adds r0, 0xD0 ldrb r0, [r0] cmp r0, 0 beq _08074DD8 adds r4, r6, 0 adds r4, 0xD9 adds r0, r4, 0 bl sub_80838EC ldrb r0, [r4] cmp r0, 0 bne _08074DD8 adds r0, r7, 0 adds r1, r7, 0 bl sub_807A6C8 _08074DD8: adds r0, r7, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _08074DE6 b _08074F96 _08074DE6: bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _08074DF2 b _08074F96 _08074DF2: adds r0, r6, 0 adds r0, 0xDC ldrb r0, [r0] cmp r0, 0 beq _08074E14 adds r4, r6, 0 adds r4, 0xDD adds r0, r4, 0 bl sub_80838EC ldrb r0, [r4] cmp r0, 0 bne _08074E14 adds r0, r7, 0 adds r1, r7, 0 bl sub_807A734 _08074E14: adds r0, r7, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _08074E22 b _08074F96 _08074E22: bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _08074E2E b _08074F96 _08074E2E: adds r0, r6, 0 adds r0, 0xE4 ldrb r0, [r0] cmp r0, 0 beq _08074E50 adds r4, r6, 0 adds r4, 0xE5 adds r0, r4, 0 bl sub_80838EC ldrb r0, [r4] cmp r0, 0 bne _08074E50 adds r0, r7, 0 adds r1, r7, 0 bl sub_807A7C8 _08074E50: adds r0, r7, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _08074E5E b _08074F96 _08074E5E: bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _08074E6A b _08074F96 _08074E6A: adds r0, r6, 0 adds r0, 0xE8 ldrb r0, [r0] cmp r0, 0 beq _08074E8C adds r4, r6, 0 adds r4, 0xE9 adds r0, r4, 0 bl sub_80838EC ldrb r0, [r4] cmp r0, 0 bne _08074E8C adds r0, r7, 0 adds r1, r7, 0 bl sub_807A888 _08074E8C: adds r0, r7, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _08074E9A b _08074F96 _08074E9A: bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _08074F96 adds r0, r6, 0 adds r0, 0xEC ldrb r0, [r0] cmp r0, 0 beq _08074EC6 adds r4, r6, 0 adds r4, 0xED adds r0, r4, 0 bl sub_80838EC ldrb r0, [r4] cmp r0, 0 bne _08074EC6 adds r0, r7, 0 adds r1, r7, 0 bl sub_807A924 _08074EC6: adds r0, r7, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08074F96 bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _08074F96 adds r4, r6, 0 adds r4, 0xFA ldrb r0, [r4] cmp r0, 0 beq _08074F18 adds r0, r4, 0 bl sub_80838EC ldrb r0, [r4] cmp r0, 0 bne _08074F18 ldr r0, _08074F04 adds r1, r7, 0 b _08074F08 .align 2, 0 _08074EF8: .4byte gUnknown_80F4FC4 _08074EFC: .4byte gUnknown_80F4FC0 _08074F00: .4byte gUnknown_80F4FC2 _08074F04: .4byte gUnknown_202DF98 _08074F08: movs r2, 0 bl sub_8045B94 ldr r0, _08074FA0 ldr r1, [r0] adds r0, r7, 0 bl sub_80522A8 _08074F18: movs r0, 0 mov r8, r0 movs r5, 0 _08074F1E: ldr r1, _08074FA4 adds r0, r6, r1 adds r4, r0, r5 ldrb r0, [r4] cmp r0, 0 beq _08074F3C adds r0, r5, r1 adds r0, r6, r0 bl sub_80838EC ldrb r0, [r4] cmp r0, 0 bne _08074F3C movs r2, 0x1 mov r8, r2 _08074F3C: movs r3, 0x84 lsls r3, 1 adds r0, r6, r3 adds r4, r0, r5 ldrb r0, [r4] cmp r0, 0 beq _08074F5C adds r0, r5, r3 adds r0, r6, r0 bl sub_80838EC ldrb r0, [r4] cmp r0, 0 bne _08074F5C movs r0, 0x1 mov r8, r0 _08074F5C: adds r5, 0x1 cmp r5, 0x4 ble _08074F1E mov r1, r8 cmp r1, 0 beq _08074F96 ldr r0, [r7, 0x70] movs r2, 0x82 lsls r2, 1 adds r0, r2 ldr r4, [r0] adds r0, r7, 0 bl sub_8070774 adds r5, r0, 0 cmp r4, r5 beq _08074F96 ldr r0, _08074FA8 adds r1, r7, 0 movs r2, 0 bl sub_8045B94 ldr r1, _08074FAC lsls r0, r5, 2 adds r0, r1 ldr r1, [r0] adds r0, r7, 0 bl sub_80522A8 _08074F96: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08074FA0: .4byte gUnknown_8100740 _08074FA4: .4byte 0x0000010d _08074FA8: .4byte gUnknown_202DF98 _08074FAC: .4byte gUnknown_80FA124 thumb_func_end sub_8074B54 thumb_func_start sub_8074FB0 sub_8074FB0: push {r4-r6,lr} adds r3, r0, 0 adds r5, r1, 0 ldr r4, [r3, 0x70] movs r1, 0xFA lsls r1, 1 adds r0, r4, r1 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0x3 ble _08074FD0 adds r1, r4, 0 adds r1, 0x44 movs r0, 0 strh r0, [r1] b _08075040 _08074FD0: ldr r0, _08074FE0 ldr r0, [r0] ldrb r0, [r0] cmp r0, 0 beq _08074FE8 ldr r1, _08074FE4 movs r0, 0x2 b _08074FEC .align 2, 0 _08074FE0: .4byte gUnknown_203B46C _08074FE4: .4byte gUnknown_202F378 _08074FE8: ldr r1, _08075048 movs r0, 0x1 _08074FEC: str r0, [r1] adds r6, r1, 0 movs r1, 0xFA lsls r1, 1 adds r0, r4, r1 movs r1, 0 ldrsh r0, [r0, r1] lsls r1, r0, 3 subs r1, r0 lsls r1, 2 movs r0, 0xC2 lsls r0, 1 adds r1, r0 adds r1, r4, r1 movs r0, 0 strb r0, [r1, 0x1A] str r5, [r1, 0xC] ldrh r0, [r3, 0x4] strh r0, [r1] ldrh r0, [r3, 0x6] strh r0, [r1, 0x2] movs r3, 0 ldrsh r0, [r2, r3] str r0, [r1, 0x4] movs r3, 0x2 ldrsh r0, [r2, r3] str r0, [r1, 0x8] ldr r0, _0807504C lsls r2, r5, 2 adds r2, r0 movs r5, 0 ldrsh r0, [r2, r5] ldr r3, [r6] muls r0, r3 str r0, [r1, 0x10] movs r5, 0x2 ldrsh r0, [r2, r5] muls r0, r3 str r0, [r1, 0x14] adds r0, r4, 0 bl sub_8075050 _08075040: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08075048: .4byte gUnknown_202F378 _0807504C: .4byte gUnknown_80F4D44 thumb_func_end sub_8074FB0 thumb_func_start sub_8075050 sub_8075050: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 mov r9, r0 adds r6, r1, 0 ldr r0, _08075070 ldr r0, [r0] ldrb r0, [r0] cmp r0, 0 beq _08075078 ldr r1, _08075074 movs r0, 0x2 b _0807507C .align 2, 0 _08075070: .4byte gUnknown_203B46C _08075074: .4byte gUnknown_202F378 _08075078: ldr r1, _080750D0 movs r0, 0x1 _0807507C: str r0, [r1] movs r1, 0xFA lsls r1, 1 add r1, r9 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] lsls r0, 16 asrs r0, 16 cmp r0, 0x2 bne _080750D4 ldr r0, _080750D0 ldr r1, [r0] lsls r1, 1 movs r0, 0x18 bl __divsi3 movs r1, 0xCE lsls r1, 1 add r1, r9 strh r0, [r1] movs r2, 0xCA lsls r2, 1 add r2, r9 ldr r1, [r2] lsls r1, 1 str r1, [r2] movs r2, 0xCC lsls r2, 1 add r2, r9 ldr r1, [r2] lsls r1, 1 str r1, [r2] strh r0, [r6, 0x18] ldr r0, [r6, 0x10] lsls r0, 1 str r0, [r6, 0x10] ldr r0, [r6, 0x14] lsls r0, 1 str r0, [r6, 0x14] b _080751F8 .align 2, 0 _080750D0: .4byte gUnknown_202F378 _080750D4: cmp r0, 0x3 bne _08075160 ldr r1, [r6, 0x10] str r1, [sp] ldr r0, [r6, 0x14] str r0, [sp, 0x4] movs r4, 0xCE lsls r4, 1 add r4, r9 movs r5, 0 movs r7, 0x1 _080750EA: ldr r1, _0807515C ldr r0, [r1] lsls r1, r0, 1 adds r1, r0 movs r0, 0x18 bl __divsi3 strh r0, [r4] movs r3, 0xCA lsls r3, 1 add r3, r9 adds r3, r5 ldr r1, [r3] lsls r0, r1, 1 adds r0, r1 str r0, [r3] movs r2, 0xCC lsls r2, 1 add r2, r9 adds r2, r5 ldr r1, [r2] lsls r0, r1, 1 adds r0, r1 str r0, [r2] ldr r0, [r3] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 str r0, [r3] ldr r0, [r2] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 str r0, [r2] adds r4, 0x1C adds r5, 0x1C subs r7, 0x1 cmp r7, 0 bge _080750EA ldr r1, _0807515C ldr r0, [r1] lsls r1, r0, 1 adds r1, r0 movs r0, 0x18 bl __divsi3 strh r0, [r6, 0x18] ldr r1, [sp] lsls r0, r1, 1 adds r0, r1 str r0, [r6, 0x10] ldr r1, [sp, 0x4] lsls r0, r1, 1 adds r0, r1 str r0, [r6, 0x14] b _080751F8 .align 2, 0 _0807515C: .4byte gUnknown_202F378 _08075160: cmp r0, 0x4 bne _080751EC ldr r0, [r6, 0x10] str r0, [sp] ldr r1, [r6, 0x14] str r1, [sp, 0x4] movs r7, 0xCE lsls r7, 1 add r7, r9 movs r0, 0 mov r8, r0 movs r1, 0x2 mov r10, r1 _0807517A: ldr r0, _080751E8 ldr r1, [r0] lsls r1, 2 movs r0, 0x18 bl __divsi3 strh r0, [r7] movs r4, 0xCA lsls r4, 1 add r4, r9 add r4, r8 ldr r0, [r4] lsls r0, 2 str r0, [r4] movs r5, 0xCC lsls r5, 1 add r5, r9 add r5, r8 ldr r0, [r5] lsls r0, 2 str r0, [r5] ldr r0, [r4] movs r1, 0x3 bl __divsi3 str r0, [r4] ldr r0, [r5] movs r1, 0x3 bl __divsi3 str r0, [r5] adds r7, 0x1C movs r1, 0x1C add r8, r1 movs r0, 0x1 negs r0, r0 add r10, r0 mov r1, r10 cmp r1, 0 bge _0807517A ldr r0, _080751E8 ldr r1, [r0] lsls r1, 2 movs r0, 0x18 bl __divsi3 strh r0, [r6, 0x18] ldr r1, [sp] lsls r0, r1, 2 str r0, [r6, 0x10] ldr r1, [sp, 0x4] lsls r0, r1, 2 str r0, [r6, 0x14] b _080751F8 .align 2, 0 _080751E8: .4byte gUnknown_202F378 _080751EC: ldr r0, _08075208 ldr r1, [r0] movs r0, 0x18 bl __divsi3 strh r0, [r6, 0x18] _080751F8: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08075208: .4byte gUnknown_202F378 thumb_func_end sub_8075050 thumb_func_start sub_807520C sub_807520C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x18 mov r10, r0 movs r7, 0 movs r0, 0 mov r9, r0 ldr r0, _08075238 mov r1, r9 strb r1, [r0] ldr r0, _0807523C ldr r0, [r0] ldrb r0, [r0] cmp r0, 0 beq _08075244 ldr r1, _08075240 movs r0, 0x2 b _08075248 .align 2, 0 _08075238: .4byte gUnknown_202F32D _0807523C: .4byte gUnknown_203B46C _08075240: .4byte gUnknown_202F378 _08075244: ldr r1, _080752D0 movs r0, 0x1 _08075248: str r0, [r1] movs r2, 0 mov r8, r2 _0807524E: ldr r0, _080752D4 ldr r0, [r0] mov r3, r8 lsls r1, r3, 2 ldr r4, _080752D8 adds r0, r4 adds r0, r1 ldr r5, [r0] adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0807534C ldr r4, [r5, 0x70] movs r1, 0xFA lsls r1, 1 adds r0, r4, r1 movs r3, 0 ldrsh r2, [r0, r3] cmp r2, 0 bne _080752E0 ldr r0, _080752DC adds r1, r4, r0 ldrb r0, [r1] cmp r0, 0 beq _0807534C strb r2, [r1] movs r1, 0xB6 lsls r1, 1 adds r6, r4, r1 ldr r1, [r6] cmp r1, 0 beq _0807534C ldr r0, [r5, 0x4] cmp r1, r0 beq _0807534C adds r0, r5, 0 movs r1, 0x1 bl sub_8070B6C lsls r0, 24 cmp r0, 0 beq _080752B2 adds r0, r5, 0 bl sub_8070CD0 lsls r0, 24 cmp r0, 0 bne _0807534C _080752B2: adds r0, r5, 0x4 adds r1, r6, 0 bl sub_80983D8 adds r1, r0, 0 adds r0, r4, 0 adds r0, 0x46 ldrb r0, [r0] cmp r1, r0 beq _0807534C adds r0, r5, 0 bl sub_806CE68 b _0807534C .align 2, 0 _080752D0: .4byte gUnknown_202F378 _080752D4: .4byte gUnknown_203B418 _080752D8: .4byte 0x000135cc _080752DC: .4byte 0x00000147 _080752E0: ldrh r1, [r4] movs r2, 0x80 lsls r2, 6 adds r0, r2, 0 orrs r0, r1 strh r0, [r4] movs r3, 0xC4 lsls r3, 1 adds r0, r4, r3 ldr r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 11 movs r1, 0xC0 lsls r1, 4 adds r0, r1 str r0, [sp] movs r2, 0xC6 lsls r2, 1 adds r0, r4, r2 ldr r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 11 movs r3, 0x80 lsls r3, 5 adds r0, r3 str r0, [sp, 0x4] adds r0, r5, 0 mov r1, sp bl sub_804535C movs r1, 0xC8 lsls r1, 1 adds r0, r4, r1 ldr r2, [r0] adds r0, r5, 0 movs r1, 0 bl sub_806CDFC movs r2, 0xFB lsls r2, 1 adds r0, r4, r2 movs r3, 0 strh r3, [r0] movs r7, 0x1 adds r0, r5, 0 bl sub_8045888 lsls r0, 24 cmp r0, 0 beq _0807534C movs r4, 0x1 mov r9, r4 _0807534C: movs r0, 0x1 add r8, r0 mov r1, r8 cmp r1, 0x13 bgt _08075358 b _0807524E _08075358: cmp r7, 0 bne _08075360 movs r0, 0 b _0807566C _08075360: ldr r0, _08075390 ldr r0, [r0] adds r1, r0, 0 adds r1, 0xB8 ldr r2, [r1] str r2, [sp, 0x10] mov r3, r10 str r3, [r1] ldr r4, _08075394 adds r0, r4 ldrb r0, [r0] cmp r0, 0 beq _0807537C b _080754AE _0807537C: mov r0, r9 cmp r0, 0 bne _08075384 b _080754AE _08075384: movs r0, 0x35 bl sub_80526D0 movs r5, 0 b _0807549E .align 2, 0 _08075390: .4byte gUnknown_203B418 _08075394: .4byte 0x0000066c _08075398: movs r0, 0x7 bl sub_803E46C movs r1, 0 mov r8, r1 adds r5, 0x1 mov r9, r5 _080753A6: ldr r0, _08075420 ldr r0, [r0] mov r2, r8 lsls r1, r2, 2 ldr r3, _08075424 adds r0, r3 adds r0, r1 ldr r3, [r0] adds r0, r3, 0 str r3, [sp, 0x14] bl sub_80450E0 lsls r0, 24 ldr r3, [sp, 0x14] cmp r0, 0 beq _08075492 ldr r0, [r3, 0x70] adds r7, r0, 0 movs r4, 0xFB lsls r4, 1 adds r5, r7, r4 movs r1, 0 ldrsh r0, [r5, r1] lsls r1, r0, 3 subs r1, r0 lsls r1, 2 movs r2, 0xC2 lsls r2, 1 adds r1, r2 adds r4, r7, r1 movs r0, 0xFA lsls r0, 1 adds r6, r7, r0 movs r1, 0 ldrsh r0, [r6, r1] cmp r0, 0 beq _08075492 ldr r1, [r4, 0x10] ldr r2, [r4, 0x14] adds r0, r3, 0 bl sub_804539C ldrh r0, [r4, 0x18] subs r0, 0x1 strh r0, [r4, 0x18] lsls r0, 16 asrs r2, r0, 16 ldr r3, [sp, 0x14] cmp r2, 0 bne _08075492 ldrh r0, [r5] adds r0, 0x1 strh r0, [r5] lsls r0, 16 asrs r0, 16 movs r4, 0 ldrsh r1, [r6, r4] cmp r0, r1 bne _08075428 strh r2, [r6] b _08075492 .align 2, 0 _08075420: .4byte gUnknown_203B418 _08075424: .4byte 0x000135cc _08075428: movs r0, 0 ldrsh r1, [r5, r0] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 movs r2, 0xC4 lsls r2, 1 adds r1, r7, r2 adds r1, r0 ldr r1, [r1] lsls r0, r1, 1 adds r0, r1 lsls r0, 11 movs r4, 0xC0 lsls r4, 4 adds r0, r4 str r0, [sp, 0x8] movs r0, 0 ldrsh r1, [r5, r0] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r2, 0x4 adds r1, r7, r2 adds r1, r0 ldr r1, [r1] lsls r0, r1, 1 adds r0, r1 lsls r0, 11 movs r4, 0x80 lsls r4, 5 adds r0, r4 add r1, sp, 0x8 str r0, [r1, 0x4] adds r0, r3, 0 str r3, [sp, 0x14] bl sub_804535C movs r0, 0 ldrsh r1, [r5, r0] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 movs r2, 0xC8 lsls r2, 1 adds r1, r7, r2 adds r1, r0 ldr r2, [r1] ldr r3, [sp, 0x14] adds r0, r3, 0 movs r1, 0 bl sub_806CDFC _08075492: movs r3, 0x1 add r8, r3 mov r4, r8 cmp r4, 0x13 ble _080753A6 mov r5, r9 _0807549E: ldr r0, _08075510 ldr r1, [r0] movs r0, 0x18 bl __divsi3 cmp r5, r0 bge _080754AE b _08075398 _080754AE: movs r0, 0 mov r8, r0 _080754B2: ldr r0, _08075514 ldr r0, [r0] mov r2, r8 lsls r1, r2, 2 ldr r3, _08075518 adds r0, r3 adds r0, r1 ldr r5, [r0] adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080754F6 ldr r4, [r5, 0x70] movs r0, 0xFA lsls r0, 1 adds r1, r4, r0 movs r0, 0 strh r0, [r1] adds r0, r5, 0 bl nullsub_97 ldrh r0, [r4] movs r2, 0x80 lsls r2, 6 adds r1, r2, 0 ands r0, r1 cmp r0, 0 beq _080754F6 adds r0, r5, 0 movs r1, 0 bl sub_804535C _080754F6: movs r3, 0x1 add r8, r3 mov r4, r8 cmp r4, 0x13 ble _080754B2 bl sub_807AA30 movs r7, 0 _08075506: movs r5, 0 adds r0, r7, 0x1 mov r8, r0 b _08075600 .align 2, 0 _08075510: .4byte gUnknown_202F378 _08075514: .4byte gUnknown_203B418 _08075518: .4byte 0x000135cc _0807551C: ldr r2, [r4, 0x70] cmp r7, 0 bne _0807552A ldrb r0, [r2, 0x7] cmp r0, 0 beq _080755FE b _08075530 _0807552A: ldrb r0, [r2, 0x7] cmp r0, 0 bne _080755FE _08075530: ldr r6, [r4, 0x4] ldrh r1, [r2] movs r3, 0x80 lsls r3, 6 adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _080755BC ldr r3, _08075560 adds r0, r3, 0 ands r0, r1 strh r0, [r2] ldrb r0, [r2, 0x7] cmp r0, 0 beq _08075564 adds r0, r4, 0x4 bl sub_804AC20 movs r0, 0 bl sub_807EC28 bl sub_805EE30 b _0807556A .align 2, 0 _08075560: .4byte 0x0000dfff _08075564: adds r0, r4, 0 bl sub_8075708 _0807556A: adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080755FE bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _0807562A movs r0, 0 bl sub_8043ED0 adds r0, r4, 0 bl sub_8074094 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080755FE bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _0807562A adds r0, r4, 0 bl sub_8071DA4 bl sub_8046D20 ldr r0, _08075650 ldr r0, [r0] ldr r1, _08075654 adds r0, r1 ldrb r1, [r0] adds r0, r4, 0 bl sub_8075900 _080755BC: adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080755FE bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _0807562A ldr r0, [r4, 0x4] cmp r6, r0 beq _080755DE ldr r1, _08075658 movs r0, 0x1 strb r0, [r1] _080755DE: adds r0, r4, 0 bl sub_806A5B8 adds r1, r4, 0x4 adds r0, r4, 0 bl sub_80706A4 lsls r0, 24 cmp r0, 0 beq _080755FE adds r0, r4, 0 adds r1, r4, 0 movs r2, 0 movs r3, 0 bl sub_807D148 _080755FE: adds r5, 0x1 _08075600: cmp r5, 0x13 bgt _0807562A ldr r0, _08075650 ldr r0, [r0] lsls r1, r5, 2 ldr r2, _0807565C adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080755FE bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _0807562A b _0807551C _0807562A: mov r7, r8 cmp r7, 0x1 bgt _08075632 b _08075506 _08075632: bl sub_8086AC0 bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _08075660 bl sub_8085140 ldr r0, _08075650 ldr r0, [r0] adds r0, 0xB8 ldr r3, [sp, 0x10] str r3, [r0] b _0807566A .align 2, 0 _08075650: .4byte gUnknown_203B418 _08075654: .4byte 0x00003a08 _08075658: .4byte gUnknown_202F32D _0807565C: .4byte 0x000135cc _08075660: ldr r0, _0807567C ldr r0, [r0] adds r0, 0xB8 ldr r4, [sp, 0x10] str r4, [r0] _0807566A: movs r0, 0x1 _0807566C: add sp, 0x18 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0807567C: .4byte gUnknown_203B418 thumb_func_end sub_807520C thumb_func_start sub_8075680 sub_8075680: push {r4-r7,lr} movs r7, 0 _08075684: ldr r0, _080756FC ldr r0, [r0] lsls r1, r7, 2 ldr r2, _08075700 adds r0, r2 adds r0, r1 ldr r5, [r0] adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080756EE ldr r6, [r5, 0x70] ldrb r0, [r6, 0x7] cmp r0, 0 bne _080756EE movs r0, 0xB6 lsls r0, 1 adds r4, r6, r0 ldr r1, [r4] cmp r1, 0 beq _080756EE ldr r0, [r5, 0x4] cmp r1, r0 beq _080756EE adds r0, r5, 0 movs r1, 0x1 bl sub_8070B6C lsls r0, 24 cmp r0, 0 bne _080756EE adds r0, r5, 0x4 adds r1, r4, 0 bl sub_80983D8 adds r4, r0, 0 movs r1, 0x7 ands r0, r1 adds r1, r6, 0 adds r1, 0x46 strb r0, [r1] adds r0, r5, 0 bl sub_806CEBC adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 adds r2, r4, 0 bl sub_806CDD4 _080756EE: adds r7, 0x1 cmp r7, 0x13 ble _08075684 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080756FC: .4byte gUnknown_203B418 _08075700: .4byte 0x000135cc thumb_func_end sub_8075680 thumb_func_start nullsub_97 nullsub_97: bx lr thumb_func_end nullsub_97 thumb_func_start sub_8075708 sub_8075708: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r4, r0, 0 ldr r6, [r4, 0x70] bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0807580C adds r0, r4, 0 bl sub_8045128 adds r5, r0, 0 adds r0, r4, 0 movs r1, 0xD bl sub_80718D8 lsls r0, 24 cmp r0, 0 beq _08075752 adds r0, r6, 0 adds r0, 0xE4 ldrb r0, [r0] cmp r0, 0x3 beq _08075752 adds r0, r4, 0 movs r1, 0x9 bl sub_8046CB0 lsls r0, 24 cmp r0, 0 bne _08075752 adds r0, r4, 0x4 bl sub_804AE84 _08075752: ldr r5, [r5, 0x14] cmp r5, 0 beq _0807580C adds r0, r5, 0 bl sub_80450F8 cmp r0, 0x5 bhi _0807580C lsls r0, 2 ldr r1, _0807576C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0807576C: .4byte _08075770 .align 2, 0 _08075770: .4byte _0807580C .4byte _0807580C .4byte _08075788 .4byte _08075806 .4byte _0807580C .4byte _0807580C _08075788: adds r0, r5, 0 bl sub_8045104 adds r7, r0, 0 movs r0, 0 mov r8, r0 mov r9, r0 adds r0, r4, 0 movs r1, 0x13 bl sub_80718D8 lsls r0, 24 cmp r0, 0 beq _080757BA adds r1, r5, 0 adds r1, 0x20 ldrb r0, [r1] cmp r0, 0 bne _080757BA movs r0, 0x1 strb r0, [r1] bl sub_8049ED4 movs r0, 0x1 mov r9, r0 _080757BA: ldrb r0, [r7, 0x1] cmp r0, 0 bne _080757D2 adds r0, r5, 0 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0 beq _080757EC ldrb r0, [r6, 0x6] cmp r0, 0 bne _080757EC b _080757F2 _080757D2: cmp r0, 0x1 bne _080757DE ldrb r0, [r6, 0x6] cmp r0, 0 beq _080757EC b _080757F2 _080757DE: cmp r0, 0x2 bne _080757EC ldrb r0, [r6, 0x6] cmp r0, 0 bne _080757EC movs r0, 0x1 mov r8, r0 _080757EC: mov r0, r8 cmp r0, 0 beq _0807580C _080757F2: mov r0, r9 cmp r0, 0 bne _0807580C adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0 movs r3, 0x1 bl sub_807FE9C b _0807580C _08075806: adds r0, r4, 0 bl sub_8073D14 _0807580C: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8075708 thumb_func_start sub_8075818 sub_8075818: push {r4-r6,lr} adds r4, r0, 0 ldr r6, [r4, 0x70] bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080758F6 adds r0, r4, 0 bl sub_8045128 adds r5, r0, 0 adds r0, r4, 0 movs r1, 0xD bl sub_80718D8 lsls r0, 24 cmp r0, 0 beq _08075848 ldrh r1, [r5] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _080758F2 _08075848: ldr r4, [r5, 0x14] cmp r4, 0 beq _080758F6 adds r0, r4, 0 bl sub_80450F8 cmp r0, 0x5 bhi _080758F6 lsls r0, 2 ldr r1, _08075864 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08075864: .4byte _08075868 .align 2, 0 _08075868: .4byte _080758F6 .4byte _080758F6 .4byte _08075880 .4byte _080758BE .4byte _080758F6 .4byte _080758F6 _08075880: adds r0, r4, 0 bl sub_8045104 movs r1, 0 ldrb r0, [r0, 0x1] cmp r0, 0 bne _080758A0 adds r0, r4, 0 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0 beq _080758B8 ldrb r0, [r6, 0x6] cmp r0, 0 bne _080758B8 b _080758F2 _080758A0: cmp r0, 0x1 bne _080758AC ldrb r0, [r6, 0x6] cmp r0, 0 beq _080758B8 b _080758F2 _080758AC: cmp r0, 0x2 bne _080758B8 ldrb r0, [r6, 0x6] cmp r0, 0 bne _080758B8 movs r1, 0x1 _080758B8: cmp r1, 0 beq _080758F6 b _080758F2 _080758BE: ldrb r0, [r6, 0x7] cmp r0, 0 bne _080758F6 adds r0, r6, 0 adds r0, 0x60 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080758F6 ldrh r1, [r5] movs r0, 0x3 ands r0, r1 cmp r0, 0 bne _080758E2 ldrb r0, [r6, 0x6] cmp r0, 0 bne _080758F6 _080758E2: adds r0, r4, 0 bl sub_8045108 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _080758F6 _080758F2: movs r0, 0x1 b _080758F8 _080758F6: movs r0, 0 _080758F8: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8075818 thumb_func_start sub_8075900 sub_8075900: push {r4-r6,lr} adds r4, r0, 0 lsls r1, 24 lsrs r6, r1, 24 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0807597A ldr r0, [r4, 0x70] ldrb r0, [r0, 0x6] cmp r0, 0 bne _0807597A bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _0807597A ldr r5, _08075980 ldr r0, [r5] ldr r1, _08075984 adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _0807597A adds r0, r4, 0 bl sub_8045128 ldrh r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0807597A bl sub_8083600 ldr r1, _08075988 ldr r1, [r1] bl sub_80522A8 ldr r0, [r5] ldr r1, _0807598C adds r0, r1 movs r1, 0x1 strb r1, [r0] adds r0, r4, 0 adds r1, r6, 0 bl sub_807AB38 movs r0, 0 bl sub_8041888 adds r0, r4, 0x4 bl sub_803F428 lsls r0, 24 cmp r0, 0 beq _0807597A movs r0, 0x78 movs r1, 0x39 bl sub_803E708 _0807597A: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08075980: .4byte gUnknown_203B418 _08075984: .4byte 0x00000671 _08075988: .4byte gUnknown_80FE308 _0807598C: .4byte 0x00000672 thumb_func_end sub_8075900 thumb_func_start sub_8075990 sub_8075990: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r7, r0, 0 ldr r5, [r7, 0x70] ldrh r1, [r5] movs r0, 0x80 lsls r0, 8 ands r0, r1 lsls r0, 16 lsrs r6, r0, 16 cmp r6, 0 beq _080759C2 adds r0, r5, 0 adds r0, 0xB0 ldrb r0, [r0] cmp r0, 0x6 beq _080759B8 b _08075B92 _080759B8: adds r0, r7, 0 adds r1, r7, 0 bl sub_807A324 b _08075B92 _080759C2: movs r1, 0x80 lsls r1, 1 adds r0, r5, r1 strb r6, [r0] adds r0, r5, 0 adds r0, 0xA4 ldrb r1, [r0] mov r9, r0 cmp r1, 0 beq _080759E4 adds r0, r7, 0 bl sub_8085A50 lsls r0, 24 cmp r0, 0 bne _080759E4 b _08075B92 _080759E4: mov r2, r9 ldrb r0, [r2] cmp r0, 0x1 beq _08075A36 adds r4, r5, 0 adds r4, 0xFC ldrb r0, [r4] cmp r0, 0 beq _08075A36 adds r0, r7, 0 bl sub_8070C60 lsls r0, 24 cmp r0, 0 beq _08075A24 strb r6, [r4] ldr r0, _08075A1C adds r1, r7, 0 movs r2, 0 bl sub_8045B94 ldr r0, _08075A20 ldr r1, [r0] adds r0, r7, 0 bl sub_80522A8 b _08075B92 .align 2, 0 _08075A1C: .4byte gUnknown_202DF98 _08075A20: .4byte gUnknown_81004E4 _08075A24: adds r0, r7, 0 bl sub_8073658 adds r0, r5, 0 adds r0, 0x44 ldrh r0, [r0] cmp r0, 0 beq _08075A36 b _08075B92 _08075A36: adds r0, r7, 0 bl sub_807001C lsls r0, 24 cmp r0, 0 beq _08075A44 b _08075B92 _08075A44: ldr r0, _08075AA4 ldr r0, [r0] ldr r1, _08075AA8 adds r0, r1 ldrb r0, [r0] movs r2, 0x44 adds r2, r5 mov r8, r2 cmp r0, 0 beq _08075AB6 movs r6, 0 _08075A5A: ldr r0, _08075AA4 ldr r0, [r0] lsls r1, r6, 2 ldr r2, _08075AAC adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08075AB0 ldr r0, [r4, 0x70] adds r0, 0xC8 ldrb r0, [r0] cmp r0, 0x2 bne _08075AB0 adds r0, r7, 0 adds r1, r4, 0 bl sub_8045990 lsls r0, 24 cmp r0, 0 beq _08075AB0 ldr r0, [r4, 0x70] adds r0, 0xC9 ldrb r0, [r0] movs r1, 0x1 cmp r0, 0 beq _08075A9A movs r1, 0x2 _08075A9A: movs r2, 0x80 lsls r2, 1 adds r0, r5, r2 strb r1, [r0] b _08075AB6 .align 2, 0 _08075AA4: .4byte gUnknown_203B418 _08075AA8: .4byte 0x000037fc _08075AAC: .4byte 0x000135cc _08075AB0: adds r6, 0x1 cmp r6, 0x13 ble _08075A5A _08075AB6: mov r4, r8 adds r0, r4, 0 bl sub_8044C88 mov r1, r9 ldrb r0, [r1] cmp r0, 0x1 bne _08075AF4 movs r2, 0x2 ldrsh r1, [r5, r2] adds r0, r4, 0 bl sub_8044CA0 movs r0, 0x8 bl sub_8084100 adds r1, r5, 0 adds r1, 0x46 strb r0, [r1] ldrh r1, [r7, 0x4] movs r2, 0xB6 lsls r2, 1 adds r0, r5, r2 strh r1, [r0] ldrh r0, [r7, 0x6] subs r0, 0x1 movs r1, 0xB7 lsls r1, 1 adds r2, r5, r1 strh r0, [r2] b _08075B92 _08075AF4: adds r0, r7, 0 bl sub_8073658 ldrh r6, [r4] cmp r6, 0 bne _08075B92 adds r0, r7, 0 movs r1, 0x15 bl sub_80718D8 lsls r0, 24 cmp r0, 0 bne _08075B3C adds r0, r7, 0 bl sub_807BB94 ldrh r0, [r4] cmp r0, 0 bne _08075B92 adds r0, r5, 0 adds r0, 0xBC ldrb r0, [r0] cmp r0, 0x2 beq _08075B46 movs r1, 0x2 ldrsh r0, [r5, r1] bl sub_808DB48 lsls r0, 24 cmp r0, 0 beq _08075B92 adds r0, r7, 0 movs r1, 0x1 bl sub_807ADB8 b _08075B92 _08075B3C: adds r0, r5, 0 adds r0, 0xBC ldrb r0, [r0] cmp r0, 0x2 bne _08075B52 _08075B46: movs r2, 0x2 ldrsh r1, [r5, r2] adds r0, r4, 0 bl sub_8044CA0 b _08075B92 _08075B52: movs r1, 0x2 ldrsh r0, [r5, r1] bl sub_808DB48 lsls r0, 24 cmp r0, 0 beq _08075B68 adds r0, r7, 0 movs r1, 0x1 bl sub_807ADB8 _08075B68: mov r2, r8 ldrh r0, [r2] cmp r0, 0x1 bhi _08075B92 adds r0, r7, 0 bl sub_807BB94 mov r1, r8 ldrh r0, [r1] cmp r0, 0x1 bls _08075B92 adds r0, r5, 0 adds r0, 0x79 strb r6, [r0] movs r2, 0xA2 lsls r2, 1 adds r0, r5, r2 strb r6, [r0] ldr r1, _08075BA0 adds r0, r5, r1 strb r6, [r0] _08075B92: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08075BA0: .4byte 0x00000147 thumb_func_end sub_8075990 thumb_func_start sub_8075BA4 sub_8075BA4: push {r4,r5,lr} adds r5, r0, 0 lsls r1, 24 ldr r4, [r5, 0x70] cmp r1, 0 beq _08075BD0 adds r0, r4, 0 adds r0, 0xBC ldrb r0, [r0] cmp r0, 0x4 bne _08075BD0 adds r0, r4, 0 adds r0, 0x46 ldrb r1, [r0] adds r1, 0x4 movs r2, 0x7 ands r1, r2 strb r1, [r0] adds r0, r5, 0 bl sub_8069DCC b _08075BEC _08075BD0: adds r0, r4, 0 adds r0, 0xBC ldrb r0, [r0] cmp r0, 0x2 bne _08075BEC movs r0, 0x8 bl sub_8084100 adds r1, r4, 0 adds r1, 0x46 strb r0, [r1] adds r0, r5, 0 bl sub_8069DCC _08075BEC: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8075BA4 thumb_func_start sub_8075BF4 sub_8075BF4: push {r4-r7,lr} adds r5, r0, 0 adds r4, r1, 0 movs r7, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _08075C0A movs r0, 0 b _08075C52 _08075C0A: ldr r6, [r5, 0x70] adds r1, r6, 0 adds r1, 0xA8 ldrb r0, [r1] cmp r0, 0x3 beq _08075C48 cmp r0, 0x1 beq _08075C44 movs r0, 0x1 strb r0, [r1] cmp r4, 0x7F beq _08075C3C adds r0, r5, 0 movs r1, 0x2F bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _08075C3C lsrs r0, r4, 31 adds r0, r4, r0 asrs r4, r0, 1 cmp r4, 0 bgt _08075C3C movs r4, 0x1 _08075C3C: adds r0, r6, 0 adds r0, 0xA9 strb r4, [r0] b _08075C4A _08075C44: movs r7, 0x1 b _08075C4A _08075C48: movs r7, 0x2 _08075C4A: adds r0, r5, 0 bl sub_80418D4 adds r0, r7, 0 _08075C52: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8075BF4 thumb_func_start sub_8075C58 sub_8075C58: push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 adds r4, r1, 0 mov r8, r2 lsls r3, 24 lsrs r5, r3, 24 adds r7, r5, 0 movs r2, 0x1 adds r3, r5, 0 bl sub_8075CFC lsls r0, 24 cmp r0, 0 bne _08075CEC ldr r0, [r4, 0x70] adds r0, 0xA8 ldrb r0, [r0] cmp r0, 0x2 bne _08075C90 cmp r5, 0 beq _08075CEC ldr r0, _08075C8C b _08075CCE .align 2, 0 _08075C8C: .4byte gUnknown_80FB380 _08075C90: cmp r0, 0x5 bne _08075CA0 cmp r7, 0 beq _08075CEC ldr r0, _08075C9C b _08075CCE .align 2, 0 _08075C9C: .4byte gUnknown_80FB384 _08075CA0: adds r0, r4, 0 bl sub_8041AF4 adds r0, r4, 0 mov r1, r8 bl sub_8075BF4 lsls r0, 24 lsrs r5, r0, 24 adds r0, r4, 0 movs r1, 0x8 bl sub_806CE68 cmp r5, 0x1 bne _08075CC8 ldr r0, _08075CC4 b _08075CCE .align 2, 0 _08075CC4: .4byte gUnknown_80FB338 _08075CC8: cmp r5, 0x2 bne _08075CE0 ldr r0, _08075CDC _08075CCE: ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 b _08075CEC .align 2, 0 _08075CDC: .4byte gUnknown_80FB35C _08075CE0: ldr r0, _08075CF8 ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 _08075CEC: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08075CF8: .4byte gUnknown_80FB318 thumb_func_end sub_8075C58 thumb_func_start sub_8075CFC sub_8075CFC: push {r4-r7,lr} adds r6, r0, 0 adds r4, r1, 0 lsls r2, 24 lsrs r7, r2, 24 lsls r3, 24 lsrs r5, r3, 24 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08075DAA ldr r0, _08075D4C adds r1, r4, 0 movs r2, 0 bl sub_8045B94 cmp r7, 0 beq _08075D34 adds r0, r6, 0 adds r1, r4, 0 adds r2, r5, 0 bl sub_80716E8 lsls r0, 24 cmp r0, 0 bne _08075DAA _08075D34: adds r0, r4, 0 movs r1, 0x11 bl sub_80718D8 lsls r0, 24 cmp r0, 0 beq _08075D54 cmp r5, 0 beq _08075DAA ldr r0, _08075D50 b _08075DA0 .align 2, 0 _08075D4C: .4byte gUnknown_202DF98 _08075D50: .4byte gUnknown_80FCD54 _08075D54: adds r0, r4, 0 movs r1, 0x36 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _08075D70 cmp r5, 0 beq _08075DAA ldr r0, _08075D6C b _08075DA0 .align 2, 0 _08075D6C: .4byte gUnknown_80FCD58 _08075D70: adds r0, r4, 0 movs r1, 0x49 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _08075D8C cmp r5, 0 beq _08075DAA ldr r0, _08075D88 b _08075DA0 .align 2, 0 _08075D88: .4byte gUnknown_80FCD88 _08075D8C: adds r0, r4, 0 movs r1, 0x15 bl sub_8046CB0 lsls r0, 24 cmp r0, 0 beq _08075DB4 cmp r5, 0 beq _08075DAA ldr r0, _08075DB0 _08075DA0: ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 _08075DAA: movs r0, 0x1 b _08075DB6 .align 2, 0 _08075DB0: .4byte gUnknown_80FD548 _08075DB4: movs r0, 0 _08075DB6: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8075CFC thumb_func_start sub_8075DBC sub_8075DBC: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r7, r0, 0 adds r5, r1, 0 mov r8, r2 movs r0, 0 mov r9, r0 adds r0, r7, 0 movs r2, 0x1 movs r3, 0x1 bl sub_8075CFC lsls r0, 24 cmp r0, 0 bne _08075E62 ldr r6, [r5, 0x70] adds r4, r6, 0 adds r4, 0xA8 ldrb r0, [r4] cmp r0, 0x2 beq _08075E50 adds r0, r5, 0 bl sub_8041EC8 ldrb r0, [r4] cmp r0, 0x3 beq _08075E1A adds r4, 0x1 mov r0, r8 strb r0, [r4] adds r0, r5, 0 movs r1, 0x2F bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _08075E1E ldrb r0, [r4] lsrs r0, 1 strb r0, [r4] cmp r0, 0 bne _08075E1E movs r0, 0x1 strb r0, [r4] b _08075E1E _08075E1A: movs r0, 0x1 mov r9, r0 _08075E1E: adds r1, r6, 0 adds r1, 0xA8 movs r0, 0x3 strb r0, [r1] adds r0, r5, 0 movs r1, 0x8 bl sub_806CE68 mov r0, r9 cmp r0, 0 beq _08075E3C ldr r0, _08075E38 b _08075E3E .align 2, 0 _08075E38: .4byte gUnknown_80FB3CC _08075E3C: ldr r0, _08075E4C _08075E3E: ldr r2, [r0] adds r0, r7, 0 adds r1, r5, 0 bl sub_80522F4 b _08075E5C .align 2, 0 _08075E4C: .4byte gUnknown_80FB3A4 _08075E50: ldr r0, _08075E70 ldr r2, [r0] adds r0, r7, 0 adds r1, r5, 0 bl sub_80522F4 _08075E5C: adds r0, r5, 0 bl sub_80418D4 _08075E62: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08075E70: .4byte gUnknown_80FB3D0 thumb_func_end sub_8075DBC thumb_func_start sub_8075E74 sub_8075E74: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r7, r0, 0 adds r5, r1, 0 mov r8, r2 movs r0, 0 mov r9, r0 adds r0, r7, 0 movs r2, 0 movs r3, 0x1 bl sub_8075CFC lsls r0, 24 cmp r0, 0 bne _08075F22 ldr r6, [r5, 0x70] adds r4, r6, 0 adds r4, 0xA8 ldrb r0, [r4] cmp r0, 0x2 beq _08075F10 adds r0, r5, 0 bl sub_8041ED8 ldrb r0, [r4] cmp r0, 0 beq _08075EB2 cmp r0, 0x4 bne _08075ED8 _08075EB2: adds r4, r6, 0 adds r4, 0xA9 mov r0, r8 strb r0, [r4] adds r0, r5, 0 movs r1, 0x2F bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _08075EDC ldrb r0, [r4] lsrs r0, 1 strb r0, [r4] cmp r0, 0 bne _08075EDC movs r0, 0x1 strb r0, [r4] b _08075EDC _08075ED8: movs r0, 0x1 mov r9, r0 _08075EDC: adds r1, r6, 0 adds r1, 0xA8 movs r0, 0x5 strb r0, [r1] adds r0, r5, 0 movs r1, 0x8 bl sub_806CE68 mov r0, r9 cmp r0, 0 beq _08075EFC ldr r0, _08075EF8 b _08075EFE .align 2, 0 _08075EF8: .4byte gUnknown_80FB360 _08075EFC: ldr r0, _08075F0C _08075EFE: ldr r2, [r0] adds r0, r7, 0 adds r1, r5, 0 bl sub_80522F4 b _08075F1C .align 2, 0 _08075F0C: .4byte gUnknown_80FB31C _08075F10: ldr r0, _08075F30 ldr r2, [r0] adds r0, r7, 0 adds r1, r5, 0 bl sub_80522F4 _08075F1C: adds r0, r5, 0 bl sub_80418D4 _08075F22: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08075F30: .4byte gUnknown_80FB388 thumb_func_end sub_8075E74 thumb_func_start sub_8075F34 sub_8075F34: push {r4-r6,lr} adds r5, r0, 0 adds r4, r1, 0 adds r6, r2, 0 movs r2, 0x1 movs r3, 0x1 bl sub_8075CFC lsls r0, 24 cmp r0, 0 bne _08075FC2 ldr r2, [r4, 0x70] adds r1, r2, 0 adds r1, 0xA8 ldrb r0, [r1] cmp r0, 0 bne _08075F78 movs r0, 0x4 strb r0, [r1] adds r0, r2, 0 adds r0, 0xA9 strb r6, [r0] adds r0, r4, 0 bl nullsub_91 adds r0, r4, 0 movs r1, 0x8 bl sub_806CE68 ldr r0, _08075F74 b _08075F9E .align 2, 0 _08075F74: .4byte gUnknown_80FB3E0 _08075F78: cmp r0, 0x1 beq _08075F84 cmp r0, 0x3 beq _08075F84 cmp r0, 0x5 bne _08075F8C _08075F84: ldr r0, _08075F88 b _08075F9E .align 2, 0 _08075F88: .4byte gUnknown_80FB418 _08075F8C: cmp r0, 0x2 bne _08075F98 ldr r0, _08075F94 b _08075F9E .align 2, 0 _08075F94: .4byte gUnknown_80FB3F8 _08075F98: cmp r0, 0x4 bne _08075FB0 ldr r0, _08075FAC _08075F9E: ldr r2, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_80522F4 b _08075FBC .align 2, 0 _08075FAC: .4byte gUnknown_80FB414 _08075FB0: ldr r0, _08075FC8 ldr r2, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_80522F4 _08075FBC: adds r0, r4, 0 bl sub_80418D4 _08075FC2: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08075FC8: .4byte gUnknown_80FB3E0 thumb_func_end sub_8075F34 thumb_func_start sub_8075FCC sub_8075FCC: push {r4-r7,lr} adds r6, r0, 0 adds r4, r1, 0 movs r7, 0 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08076086 ldr r5, [r4, 0x70] adds r0, r5, 0 adds r0, 0xA8 ldrb r0, [r0] cmp r0, 0x1 beq _08075FF4 cmp r0, 0x5 beq _08075FF4 cmp r0, 0x3 bne _08075FF6 _08075FF4: movs r7, 0x1 _08075FF6: ldr r0, _08076060 adds r1, r4, 0 movs r2, 0 bl sub_8045B94 adds r1, r5, 0 adds r1, 0xA8 ldrb r0, [r1] cmp r0, 0x2 beq _08076074 movs r0, 0x2 strb r0, [r1] ldr r1, _08076064 adds r0, r4, 0 movs r2, 0 bl sub_808417C adds r0, 0x1 adds r1, r5, 0 adds r1, 0xA9 strb r0, [r1] ldr r0, _08076068 adds r1, r5, r0 movs r0, 0xFF strb r0, [r1] adds r0, 0x65 adds r1, r5, r0 movs r0, 0x1 negs r0, r0 strb r0, [r1] adds r0, r4, 0 bl sub_8041EE8 adds r0, r4, 0 movs r1, 0x8 bl sub_806CE68 cmp r7, 0 beq _08076050 ldr r0, _0807606C ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 _08076050: ldr r0, _08076070 ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 b _08076080 .align 2, 0 _08076060: .4byte gUnknown_202DF98 _08076064: .4byte gUnknown_80F4E7C _08076068: .4byte 0x00000165 _0807606C: .4byte gUnknown_80FB41C _08076070: .4byte gUnknown_80FB458 _08076074: ldr r0, _0807608C ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 _08076080: adds r0, r4, 0 bl sub_80418D4 _08076086: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0807608C: .4byte gUnknown_80FB43C thumb_func_end sub_8075FCC thumb_func_start sub_8076090 sub_8076090: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r6, r0, 0 adds r4, r1, 0 adds r7, r3, 0 ldr r0, [sp, 0x1C] lsls r2, 24 lsrs r2, 24 mov r8, r2 lsls r0, 24 lsrs r0, 24 mov r9, r0 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0807613A ldr r5, [r4, 0x70] mov r0, r8 cmp r0, 0 beq _080760D0 adds r0, r6, 0 adds r1, r4, 0 mov r2, r9 bl sub_80716E8 lsls r0, 24 cmp r0, 0 bne _0807613A _080760D0: ldr r0, _08076100 adds r1, r5, 0 movs r2, 0 bl sub_80708B4 adds r1, r5, 0 adds r1, 0xBC ldrb r0, [r1] cmp r0, 0x3 beq _08076110 movs r0, 0x3 strb r0, [r1] adds r1, r7, 0x1 adds r0, r5, 0 adds r0, 0xBD strb r1, [r0] adds r0, r4, 0 bl nullsub_72 cmp r7, 0x1 bne _08076108 ldr r0, _08076104 b _08076116 .align 2, 0 _08076100: .4byte gUnknown_202DF98 _08076104: .4byte gUnknown_80FB480 _08076108: ldr r0, _0807610C b _08076116 .align 2, 0 _0807610C: .4byte gUnknown_80FB4D4 _08076110: cmp r7, 0x1 bne _08076128 ldr r0, _08076124 _08076116: ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 b _08076134 .align 2, 0 _08076124: .4byte gUnknown_80FB4B0 _08076128: ldr r0, _08076148 ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 _08076134: adds r0, r4, 0 bl sub_80418D4 _0807613A: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08076148: .4byte gUnknown_80FB4F0 thumb_func_end sub_8076090 thumb_func_start sub_807614C sub_807614C: push {r4-r7,lr} adds r6, r0, 0 adds r4, r1, 0 lsls r2, 24 lsrs r7, r2, 24 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08076206 ldr r5, [r4, 0x70] adds r0, r6, 0 adds r1, r4, 0 adds r2, r7, 0 bl sub_80716E8 lsls r0, 24 cmp r0, 0 bne _08076206 adds r0, r4, 0 movs r1, 0x29 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _080761A8 ldr r0, _080761A0 adds r1, r4, 0 movs r2, 0 bl sub_8045B94 cmp r7, 0 beq _08076206 ldr r0, _080761A4 ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 b _08076206 .align 2, 0 _080761A0: .4byte gUnknown_202DF98 _080761A4: .4byte gUnknown_80FCC4C _080761A8: ldr r0, _080761E8 adds r1, r5, 0 movs r2, 0 bl sub_80708B4 adds r1, r5, 0 adds r1, 0xBC ldrb r0, [r1] cmp r0, 0x7 beq _080761F4 movs r0, 0x7 strb r0, [r1] ldr r1, _080761EC adds r0, r4, 0 movs r2, 0x1 bl sub_808417C adds r0, 0x1 adds r1, r5, 0 adds r1, 0xBD strb r0, [r1] adds r0, r4, 0 bl sub_8041EF8 ldr r0, _080761F0 ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 b _08076200 .align 2, 0 _080761E8: .4byte gUnknown_202DF98 _080761EC: .4byte gUnknown_80F4F00 _080761F0: .4byte gUnknown_80FB50C _080761F4: ldr r0, _0807620C ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 _08076200: adds r0, r4, 0 bl sub_80418D4 _08076206: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0807620C: .4byte gUnknown_80FB52C thumb_func_end sub_807614C thumb_func_start sub_8076210 sub_8076210: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r7, r0, 0 adds r5, r1, 0 lsls r2, 24 lsrs r2, 24 mov r9, r2 lsls r3, 24 lsrs r3, 24 mov r10, r3 adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _08076238 b _080763DA _08076238: adds r0, r7, 0 adds r1, r5, 0 mov r2, r10 bl sub_80716E8 lsls r0, 24 cmp r0, 0 beq _0807624A b _080763DA _0807624A: ldr r0, [r5, 0x70] mov r8, r0 ldr r0, _08076274 mov r1, r8 movs r2, 0 bl sub_80708B4 adds r0, r5, 0 movs r1, 0x42 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0807627C mov r1, r10 cmp r1, 0 bne _0807626E b _080763DA _0807626E: ldr r0, _08076278 b _080762CC .align 2, 0 _08076274: .4byte gUnknown_202DF98 _08076278: .4byte gUnknown_80FCE5C _0807627C: adds r0, r5, 0 movs r1, 0x2 bl sub_8071858 lsls r0, 24 cmp r0, 0 beq _0807629C mov r2, r10 cmp r2, 0 bne _08076292 b _080763DA _08076292: ldr r0, _08076298 b _080762CC .align 2, 0 _08076298: .4byte gUnknown_80FCE84 _0807629C: adds r0, r5, 0 bl sub_8045128 ldrh r1, [r0] movs r0, 0x3 ands r0, r1 cmp r0, 0x2 bne _080762E8 ldr r1, _080762D8 ldr r0, _080762DC ldr r0, [r0] ldr r3, _080762E0 adds r0, r3 movs r2, 0 ldrsh r0, [r0, r2] adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 beq _080762E8 mov r3, r10 cmp r3, 0 bne _080762CA b _080763DA _080762CA: ldr r0, _080762E4 _080762CC: ldr r2, [r0] adds r0, r7, 0 adds r1, r5, 0 bl sub_80522F4 b _080763DA .align 2, 0 _080762D8: .4byte gUnknown_810ACC0 _080762DC: .4byte gUnknown_203B418 _080762E0: .4byte 0x00003a0e _080762E4: .4byte gUnknown_80FEBBC _080762E8: movs r6, 0x1 mov r1, r8 adds r1, 0xAC ldrb r0, [r1] cmp r0, 0x1 beq _08076338 movs r4, 0 strb r6, [r1] ldr r1, _08076330 adds r0, r5, 0 movs r2, 0x1 bl sub_808417C adds r0, 0x1 mov r1, r8 adds r1, 0xAD strb r0, [r1] mov r0, r8 adds r0, 0xAE strb r4, [r0] adds r0, 0x1 strb r4, [r0] movs r6, 0 mov r0, r9 cmp r0, 0 beq _08076322 adds r0, r5, 0 bl sub_8041C34 _08076322: ldr r0, _08076334 ldr r2, [r0] adds r0, r7, 0 adds r1, r5, 0 bl sub_80522F4 b _08076344 .align 2, 0 _08076330: .4byte gUnknown_80F4E30 _08076334: .4byte gUnknown_80FB548 _08076338: ldr r0, _080763E8 ldr r2, [r0] adds r0, r7, 0 adds r1, r5, 0 bl sub_80522F4 _08076344: adds r0, r5, 0 bl sub_80418D4 adds r0, r5, 0 movs r1, 0x19 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _080763DA cmp r6, 0 bne _080763DA movs r1, 0 mov r9, r1 movs r6, 0 _08076362: movs r2, 0x4 ldrsh r0, [r5, r2] ldr r1, _080763EC lsls r2, r6, 2 adds r2, r1 movs r3, 0 ldrsh r1, [r2, r3] adds r0, r1 movs r3, 0x6 ldrsh r1, [r5, r3] movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 bl sub_804954C ldr r4, [r0, 0x10] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080763D4 adds r0, r4, 0 bl sub_80450F8 cmp r0, 0x1 bne _080763D4 mov r0, r9 cmp r0, 0 bne _080763B8 movs r1, 0x1 mov r9, r1 ldr r0, _080763F0 mov r1, r8 movs r2, 0 bl sub_80708B4 ldr r0, _080763F4 ldr r2, [r0] adds r0, r7, 0 adds r1, r5, 0 bl sub_80522F4 _080763B8: adds r0, r5, 0 adds r1, r4, 0 bl sub_807167C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080763D4 adds r0, r7, 0 adds r1, r4, 0 movs r2, 0x1 mov r3, r10 bl sub_8076210 _080763D4: adds r6, 0x1 cmp r6, 0x7 ble _08076362 _080763DA: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080763E8: .4byte gUnknown_80FB564 _080763EC: .4byte gUnknown_80F4448 _080763F0: .4byte gUnknown_202DF98 _080763F4: .4byte gUnknown_80FF01C thumb_func_end sub_8076210 thumb_func_start sub_80763F8 sub_80763F8: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r7, r0, 0 adds r5, r1, 0 lsls r2, 24 lsrs r2, 24 mov r10, r2 adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _0807641A b _080765C0 _0807641A: adds r0, r7, 0 adds r1, r5, 0 mov r2, r10 bl sub_80716E8 lsls r0, 24 cmp r0, 0 beq _0807642C b _080765C0 _0807642C: ldr r0, [r5, 0x70] mov r8, r0 ldr r0, _08076454 mov r1, r8 movs r2, 0 bl sub_80708B4 adds r0, r5, 0 movs r1, 0x14 bl sub_8046CB0 lsls r0, 24 cmp r0, 0 beq _0807645C mov r1, r10 cmp r1, 0 bne _08076450 b _080765C0 _08076450: ldr r0, _08076458 b _080764A4 .align 2, 0 _08076454: .4byte gUnknown_202DF98 _08076458: .4byte gUnknown_80FD524 _0807645C: adds r0, r5, 0 movs r1, 0x45 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0807647C mov r3, r10 cmp r3, 0 bne _08076472 b _080765C0 _08076472: ldr r0, _08076478 b _080764A4 .align 2, 0 _08076478: .4byte gUnknown_80FCEB0 _0807647C: adds r0, r5, 0 movs r1, 0x8 bl sub_8071858 lsls r0, 24 cmp r0, 0 bne _0807649A adds r0, r5, 0 movs r1, 0x11 bl sub_8071858 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _080764B4 _0807649A: mov r0, r10 cmp r0, 0 bne _080764A2 b _080765C0 _080764A2: ldr r0, _080764B0 _080764A4: ldr r2, [r0] adds r0, r7, 0 adds r1, r5, 0 bl sub_80522F4 b _080765C0 .align 2, 0 _080764B0: .4byte gUnknown_80FCEDC _080764B4: movs r6, 0x1 mov r1, r8 adds r1, 0xAC ldrb r0, [r1] cmp r0, 0x3 beq _08076520 cmp r0, 0x2 beq _0807650C movs r0, 0x2 strb r0, [r1] ldr r1, _08076504 adds r0, r5, 0 movs r2, 0x1 bl sub_808417C adds r0, 0x1 mov r1, r8 adds r1, 0xAD strb r0, [r1] mov r0, r8 adds r0, 0xAE strb r4, [r0] adds r0, 0x1 strb r4, [r0] movs r6, 0 adds r0, r5, 0 bl sub_8041C6C ldr r0, _08076508 ldr r2, [r0] adds r0, r7, 0 adds r1, r5, 0 bl sub_80522F4 adds r0, r5, 0 movs r1, 0x8 bl sub_806CE94 b _0807652C .align 2, 0 _08076504: .4byte gUnknown_80F4E34 _08076508: .4byte gUnknown_80FB598 _0807650C: ldr r0, _0807651C ldr r2, [r0] adds r0, r7, 0 adds r1, r5, 0 bl sub_80522F4 b _0807652C .align 2, 0 _0807651C: .4byte gUnknown_80FB5D4 _08076520: ldr r0, _080765D0 ldr r2, [r0] adds r0, r7, 0 adds r1, r5, 0 bl sub_80522F4 _0807652C: adds r0, r5, 0 movs r1, 0x19 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _080765BA cmp r6, 0 bne _080765BA movs r1, 0 mov r9, r1 movs r6, 0 _08076544: movs r3, 0x4 ldrsh r0, [r5, r3] ldr r1, _080765D4 lsls r2, r6, 2 adds r2, r1 movs r3, 0 ldrsh r1, [r2, r3] adds r0, r1 movs r3, 0x6 ldrsh r1, [r5, r3] movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 bl sub_804954C ldr r4, [r0, 0x10] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080765B4 adds r0, r4, 0 bl sub_80450F8 cmp r0, 0x1 bne _080765B4 mov r0, r9 cmp r0, 0 bne _0807659A movs r1, 0x1 mov r9, r1 ldr r0, _080765D8 mov r1, r8 movs r2, 0 bl sub_80708B4 ldr r0, _080765DC ldr r2, [r0] adds r0, r7, 0 adds r1, r5, 0 bl sub_80522F4 _0807659A: adds r0, r5, 0 adds r1, r4, 0 bl sub_807167C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080765B4 adds r0, r7, 0 adds r1, r4, 0 mov r2, r10 bl sub_80763F8 _080765B4: adds r6, 0x1 cmp r6, 0x7 ble _08076544 _080765BA: adds r0, r5, 0 bl sub_80418D4 _080765C0: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080765D0: .4byte gUnknown_80FB5F8 _080765D4: .4byte gUnknown_80F4448 _080765D8: .4byte gUnknown_202DF98 _080765DC: .4byte gUnknown_80FF01C thumb_func_end sub_80763F8 thumb_func_start sub_80765E0 sub_80765E0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r7, r0, 0 adds r5, r1, 0 lsls r2, 24 lsrs r2, 24 mov r10, r2 adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _08076602 b _08076790 _08076602: adds r0, r7, 0 adds r1, r5, 0 mov r2, r10 bl sub_80716E8 lsls r0, 24 cmp r0, 0 beq _08076614 b _08076790 _08076614: ldr r0, [r5, 0x70] mov r8, r0 ldr r0, _0807663C mov r1, r8 movs r2, 0 bl sub_80708B4 adds r0, r5, 0 movs r1, 0x14 bl sub_8046CB0 lsls r0, 24 cmp r0, 0 beq _08076644 mov r1, r10 cmp r1, 0 bne _08076638 b _08076790 _08076638: ldr r0, _08076640 b _0807668C .align 2, 0 _0807663C: .4byte gUnknown_202DF98 _08076640: .4byte gUnknown_80FD524 _08076644: adds r0, r5, 0 movs r1, 0x45 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _08076664 mov r3, r10 cmp r3, 0 bne _0807665A b _08076790 _0807665A: ldr r0, _08076660 b _0807668C .align 2, 0 _08076660: .4byte gUnknown_80FCEB0 _08076664: adds r0, r5, 0 movs r1, 0x8 bl sub_8071858 lsls r0, 24 cmp r0, 0 bne _08076682 adds r0, r5, 0 movs r1, 0x11 bl sub_8071858 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _0807669C _08076682: mov r0, r10 cmp r0, 0 bne _0807668A b _08076790 _0807668A: ldr r0, _08076698 _0807668C: ldr r2, [r0] adds r0, r7, 0 adds r1, r5, 0 bl sub_80522F4 b _08076790 .align 2, 0 _08076698: .4byte gUnknown_80FCEDC _0807669C: movs r6, 0x1 mov r1, r8 adds r1, 0xAC ldrb r0, [r1] cmp r0, 0x3 beq _080766F0 movs r0, 0x3 strb r0, [r1] ldr r1, _080766E8 adds r0, r5, 0 movs r2, 0x1 bl sub_808417C adds r0, 0x1 mov r1, r8 adds r1, 0xAD strb r0, [r1] mov r0, r8 adds r0, 0xAE strb r4, [r0] adds r0, 0x1 strb r4, [r0] movs r6, 0 adds r0, r5, 0 bl sub_8041C7C ldr r0, _080766EC ldr r2, [r0] adds r0, r7, 0 adds r1, r5, 0 bl sub_80522F4 adds r0, r5, 0 movs r1, 0x8 bl sub_806CE94 b _080766FC .align 2, 0 _080766E8: .4byte gUnknown_80F4E38 _080766EC: .4byte gUnknown_80FB5B4 _080766F0: ldr r0, _080767A0 ldr r2, [r0] adds r0, r7, 0 adds r1, r5, 0 bl sub_80522F4 _080766FC: adds r0, r5, 0 movs r1, 0x19 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0807678A cmp r6, 0 bne _0807678A movs r1, 0 mov r9, r1 movs r6, 0 _08076714: movs r3, 0x4 ldrsh r0, [r5, r3] ldr r1, _080767A4 lsls r2, r6, 2 adds r2, r1 movs r3, 0 ldrsh r1, [r2, r3] adds r0, r1 movs r3, 0x6 ldrsh r1, [r5, r3] movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 bl sub_804954C ldr r4, [r0, 0x10] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08076784 adds r0, r4, 0 bl sub_80450F8 cmp r0, 0x1 bne _08076784 mov r0, r9 cmp r0, 0 bne _0807676A movs r1, 0x1 mov r9, r1 ldr r0, _080767A8 mov r1, r8 movs r2, 0 bl sub_80708B4 ldr r0, _080767AC ldr r2, [r0] adds r0, r7, 0 adds r1, r5, 0 bl sub_80522F4 _0807676A: adds r0, r5, 0 adds r1, r4, 0 bl sub_807167C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08076784 adds r0, r7, 0 adds r1, r4, 0 mov r2, r10 bl sub_80765E0 _08076784: adds r6, 0x1 cmp r6, 0x7 ble _08076714 _0807678A: adds r0, r5, 0 bl sub_80418D4 _08076790: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080767A0: .4byte gUnknown_80FB5F8 _080767A4: .4byte gUnknown_80F4448 _080767A8: .4byte gUnknown_202DF98 _080767AC: .4byte gUnknown_80FF01C thumb_func_end sub_80765E0 thumb_func_start sub_80767B0 sub_80767B0: push {r4-r7,lr} mov r7, r8 push {r7} mov r8, r0 adds r5, r1, 0 lsls r2, 24 lsrs r4, r2, 24 adds r6, r4, 0 adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _080767CE b _080768C8 _080767CE: ldr r0, _0807680C adds r1, r5, 0 movs r2, 0 bl sub_8045B94 ldr r7, [r5, 0x70] adds r0, r7, 0 adds r0, 0xB0 ldrb r0, [r0] cmp r0, 0x1 beq _080768C8 mov r0, r8 adds r1, r5, 0 adds r2, r4, 0 bl sub_80716E8 lsls r0, 24 cmp r0, 0 bne _080768C8 adds r0, r5, 0 movs r1, 0x41 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _08076814 cmp r4, 0 beq _080768C8 ldr r0, _08076810 b _0807685C .align 2, 0 _0807680C: .4byte gUnknown_202DF98 _08076810: .4byte gUnknown_80FCDE0 _08076814: adds r0, r5, 0 movs r1, 0x6 bl sub_8071858 lsls r0, 24 cmp r0, 0 beq _08076830 cmp r4, 0 beq _080768C8 ldr r0, _0807682C b _0807685C .align 2, 0 _0807682C: .4byte gUnknown_80FCE00 _08076830: adds r0, r5, 0 bl sub_8045128 ldrh r1, [r0] movs r0, 0x3 ands r0, r1 cmp r0, 0x2 bne _08076878 ldr r1, _08076868 ldr r0, _0807686C ldr r0, [r0] ldr r2, _08076870 adds r0, r2 movs r2, 0 ldrsh r0, [r0, r2] adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 bne _08076878 cmp r6, 0 beq _080768C8 ldr r0, _08076874 _0807685C: ldr r2, [r0] mov r0, r8 adds r1, r5, 0 bl sub_80522F4 b _080768C8 .align 2, 0 _08076868: .4byte gUnknown_810ACC0 _0807686C: .4byte gUnknown_203B418 _08076870: .4byte 0x00003a0e _08076874: .4byte gUnknown_80FCE34 _08076878: adds r6, r7, 0 adds r6, 0xB0 ldrb r0, [r6] subs r0, 0x3 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _08076892 adds r0, r7, 0 adds r0, 0x9C ldr r0, [r0] bl sub_8076CB4 _08076892: adds r0, r5, 0 bl sub_8041F08 movs r4, 0 movs r0, 0x1 strb r0, [r6] ldr r1, _080768D4 adds r0, r5, 0 movs r2, 0x1 bl sub_808417C adds r0, 0x1 adds r1, r7, 0 adds r1, 0xB8 strb r0, [r1] adds r0, r7, 0 adds r0, 0xB9 strb r4, [r0] ldr r0, _080768D8 ldr r2, [r0] mov r0, r8 adds r1, r5, 0 bl sub_80522F4 adds r0, r5, 0 bl sub_80418D4 _080768C8: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080768D4: .4byte gUnknown_80F4E2C _080768D8: .4byte gUnknown_80FB610 thumb_func_end sub_80767B0 thumb_func_start sub_80768DC sub_80768DC: push {r4-r7,lr} mov r7, r8 push {r7} adds r7, r0, 0 adds r5, r1, 0 lsls r2, 16 asrs r2, 16 mov r8, r2 lsls r3, 24 lsrs r4, r3, 24 adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080769BE adds r0, r7, 0 adds r1, r5, 0 adds r2, r4, 0 bl sub_80716E8 lsls r0, 24 cmp r0, 0 bne _080769BE ldr r6, [r5, 0x70] adds r0, r6, 0 adds r0, 0xB0 ldrb r1, [r0] subs r0, r1, 0x3 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _0807692A adds r0, r6, 0 adds r0, 0x9C ldr r0, [r0] bl sub_8076CB4 b _08076948 _0807692A: lsls r0, r1, 24 lsrs r0, 24 cmp r0, 0x5 bne _08076948 ldr r0, _0807699C adds r1, r5, 0 movs r2, 0 bl sub_8045B94 ldr r0, _080769A0 ldr r2, [r0] adds r0, r7, 0 adds r1, r5, 0 bl sub_80522F4 _08076948: ldr r0, _0807699C adds r1, r5, 0 movs r2, 0 bl sub_8045B94 adds r1, r6, 0 adds r1, 0xB0 ldrb r0, [r1] cmp r0, 0x7 beq _080769AC movs r4, 0 movs r0, 0x7 strb r0, [r1] ldr r1, _080769A4 adds r0, r5, 0 movs r2, 0x1 bl sub_808417C adds r0, 0x1 adds r1, r6, 0 adds r1, 0xB8 strb r0, [r1] adds r0, r6, 0 adds r0, 0xB9 strb r4, [r0] subs r0, 0x5 mov r1, r8 str r1, [r0] adds r0, r5, 0 bl nullsub_71 ldr r0, _080769A8 ldr r2, [r0] adds r0, r7, 0 adds r1, r5, 0 bl sub_80522F4 adds r0, r5, 0 movs r1, 0x8 bl sub_806CE94 b _080769B8 .align 2, 0 _0807699C: .4byte gUnknown_202DF98 _080769A0: .4byte gUnknown_80FA844 _080769A4: .4byte gUnknown_80F4E58 _080769A8: .4byte gUnknown_80FB628 _080769AC: ldr r0, _080769C8 ldr r2, [r0] adds r0, r7, 0 adds r1, r5, 0 bl sub_80522F4 _080769B8: adds r0, r5, 0 bl sub_80418D4 _080769BE: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080769C8: .4byte gUnknown_80FB64C thumb_func_end sub_80768DC thumb_func_start sub_80769CC sub_80769CC: push {r4-r7,lr} adds r7, r0, 0 adds r5, r1, 0 adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08076A9A adds r0, r7, 0 adds r1, r5, 0 movs r2, 0x1 bl sub_80716E8 lsls r0, 24 cmp r0, 0 bne _08076A9A ldr r6, [r5, 0x70] adds r0, r6, 0 adds r0, 0xB0 ldrb r1, [r0] subs r0, r1, 0x3 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _08076A0C adds r0, r6, 0 adds r0, 0x9C ldr r0, [r0] bl sub_8076CB4 b _08076A2A _08076A0C: lsls r0, r1, 24 lsrs r0, 24 cmp r0, 0x5 bne _08076A2A ldr r0, _08076A78 adds r1, r5, 0 movs r2, 0 bl sub_8045B94 ldr r0, _08076A7C ldr r2, [r0] adds r0, r7, 0 adds r1, r5, 0 bl sub_80522F4 _08076A2A: ldr r0, _08076A78 adds r1, r5, 0 movs r2, 0 bl sub_8045B94 adds r1, r6, 0 adds r1, 0xB0 ldrb r0, [r1] cmp r0, 0x2 beq _08076A88 movs r4, 0 movs r0, 0x2 strb r0, [r1] ldr r1, _08076A80 adds r0, r5, 0 movs r2, 0x1 bl sub_808417C adds r0, 0x1 adds r1, r6, 0 adds r1, 0xB8 strb r0, [r1] adds r0, r6, 0 adds r0, 0xB9 strb r4, [r0] adds r0, r5, 0 bl nullsub_70 ldr r0, _08076A84 ldr r2, [r0] adds r0, r7, 0 adds r1, r5, 0 bl sub_80522F4 adds r0, r5, 0 movs r1, 0x8 bl sub_806CE94 b _08076A94 .align 2, 0 _08076A78: .4byte gUnknown_202DF98 _08076A7C: .4byte gUnknown_80FA844 _08076A80: .4byte gUnknown_80F4E54 _08076A84: .4byte gUnknown_80FB668 _08076A88: ldr r0, _08076AA0 ldr r2, [r0] adds r0, r7, 0 adds r1, r5, 0 bl sub_80522F4 _08076A94: adds r0, r5, 0 bl sub_80418D4 _08076A9A: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08076AA0: .4byte gUnknown_80FB688 thumb_func_end sub_80769CC thumb_func_start sub_8076AA4 sub_8076AA4: push {r4-r7,lr} mov r7, r8 push {r7} mov r8, r0 adds r5, r1, 0 adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08076B3A ldr r1, [r5, 0x70] adds r7, r1, 0 adds r6, r1, 0 adds r6, 0xB0 ldrb r0, [r6] subs r0, 0x3 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _08076AD8 adds r0, r1, 0 adds r0, 0x9C ldr r0, [r0] bl sub_8076CB4 _08076AD8: ldr r0, _08076B1C adds r1, r5, 0 movs r2, 0 bl sub_8045B94 ldrb r0, [r6] cmp r0, 0x5 beq _08076B28 movs r4, 0 movs r0, 0x5 strb r0, [r6] ldr r1, _08076B20 adds r0, r5, 0 movs r2, 0x1 bl sub_808417C adds r0, 0x1 adds r1, r7, 0 adds r1, 0xB8 strb r0, [r1] adds r0, r7, 0 adds r0, 0xB9 strb r4, [r0] adds r0, r5, 0 bl nullsub_90 ldr r0, _08076B24 ldr r2, [r0] mov r0, r8 adds r1, r5, 0 bl sub_80522F4 b _08076B34 .align 2, 0 _08076B1C: .4byte gUnknown_202DF98 _08076B20: .4byte gUnknown_80F4E60 _08076B24: .4byte gUnknown_80FB6A4 _08076B28: ldr r0, _08076B44 ldr r2, [r0] mov r0, r8 adds r1, r5, 0 bl sub_80522F4 _08076B34: adds r0, r5, 0 bl sub_80418D4 _08076B3A: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08076B44: .4byte gUnknown_80FB6C0 thumb_func_end sub_8076AA4 thumb_func_start sub_8076B48 sub_8076B48: push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 adds r4, r1, 0 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _08076B60 b _08076C9E _08076B60: adds r0, r6, 0 adds r1, r4, 0 movs r2, 0x1 bl sub_80716E8 lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0 beq _08076B74 b _08076C9E _08076B74: ldr r5, [r6, 0x70] ldr r0, [r4, 0x70] mov r8, r0 adds r1, r5, 0 adds r1, 0xB0 ldrb r0, [r1] subs r0, 0x3 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bls _08076C20 mov r2, r8 adds r2, 0xB0 ldrb r0, [r2] cmp r0, 0x3 beq _08076C20 cmp r0, 0x4 beq _08076C20 movs r0, 0x3 strb r0, [r1] adds r1, 0x8 movs r0, 0x7F strb r0, [r1] adds r0, r5, 0 adds r0, 0xB9 strb r7, [r0] movs r0, 0x4 strb r0, [r2] ldr r1, _08076C0C adds r0, r4, 0 movs r2, 0x1 bl sub_808417C adds r0, 0x1 mov r1, r8 adds r1, 0xB8 strb r0, [r1] mov r0, r8 adds r0, 0xB9 strb r7, [r0] adds r2, r5, 0 adds r2, 0x9C ldr r0, _08076C10 ldr r1, [r0] ldr r0, _08076C14 adds r1, r0 ldr r0, [r1] str r0, [r2] mov r2, r8 adds r2, 0x9C ldr r0, [r1] str r0, [r2] ldr r0, [r1] adds r0, 0x1 str r0, [r1] adds r0, r6, 0 adds r1, r4, 0 bl nullsub_69 ldr r0, _08076C18 adds r1, r4, 0 movs r2, 0 bl sub_8045B94 ldr r0, _08076C1C ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 adds r0, r4, 0 movs r1, 0x8 bl sub_806CE94 b _08076C98 .align 2, 0 _08076C0C: .4byte gUnknown_80F4E5C _08076C10: .4byte gUnknown_203B418 _08076C14: .4byte 0x000037f4 _08076C18: .4byte gUnknown_202DF98 _08076C1C: .4byte gUnknown_80FB6D8 _08076C20: adds r7, r5, 0 adds r7, 0xB0 ldrb r0, [r7] cmp r0, 0x3 bne _08076C40 ldr r0, _08076CA8 adds r1, r6, 0 movs r2, 0 bl sub_8045B94 ldr r0, _08076CAC ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 _08076C40: mov r5, r8 adds r5, 0xB0 ldrb r0, [r5] cmp r0, 0x3 bne _08076C60 ldr r0, _08076CA8 adds r1, r4, 0 movs r2, 0 bl sub_8045B94 ldr r0, _08076CAC ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 _08076C60: ldrb r0, [r7] cmp r0, 0x4 bne _08076C7C ldr r0, _08076CA8 adds r1, r6, 0 movs r2, 0 bl sub_8045B94 ldr r0, _08076CB0 ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 _08076C7C: ldrb r0, [r5] cmp r0, 0x4 bne _08076C98 ldr r0, _08076CA8 adds r1, r4, 0 movs r2, 0 bl sub_8045B94 ldr r0, _08076CB0 ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 _08076C98: adds r0, r4, 0 bl sub_80418D4 _08076C9E: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08076CA8: .4byte gUnknown_202DF98 _08076CAC: .4byte gUnknown_80FB6FC _08076CB0: .4byte gUnknown_80FB718 thumb_func_end sub_8076B48 thumb_func_start sub_8076CB4 sub_8076CB4: push {r4-r7,lr} adds r7, r0, 0 movs r5, 0 movs r6, 0 _08076CBC: ldr r0, _08076D08 ldr r0, [r0] lsls r1, r5, 2 ldr r2, _08076D0C adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08076CFA ldr r1, [r4, 0x70] adds r2, r1, 0 adds r2, 0x9C ldr r0, [r2] cmp r0, r7 bne _08076CF4 adds r1, 0xB0 ldrb r0, [r1] subs r0, 0x3 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _08076CF2 strb r6, [r1] _08076CF2: str r6, [r2] _08076CF4: adds r0, r4, 0 bl sub_80418D4 _08076CFA: adds r5, 0x1 cmp r5, 0x13 ble _08076CBC pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08076D08: .4byte gUnknown_203B418 _08076D0C: .4byte 0x000135cc thumb_func_end sub_8076CB4 thumb_func_start sub_8076D10 sub_8076D10: push {r4-r7,lr} adds r7, r0, 0 adds r6, r1, 0 adds r0, r6, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08076E0E adds r0, r7, 0 adds r1, r6, 0 movs r2, 0x1 bl sub_80716E8 lsls r0, 24 cmp r0, 0 bne _08076E0E adds r0, r6, 0 bl sub_8041C08 ldr r4, [r6, 0x70] adds r5, r4, 0 adds r5, 0xB0 ldrb r0, [r5] subs r0, 0x3 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _08076D54 adds r0, r4, 0 adds r0, 0x9C ldr r0, [r0] bl sub_8076CB4 _08076D54: ldr r0, _08076D74 adds r1, r6, 0 movs r2, 0 bl sub_8045B94 ldrb r0, [r5] cmp r0, 0x6 beq _08076DAC movs r0, 0x6 strb r0, [r5] ldrb r0, [r4, 0x7] cmp r0, 0 beq _08076D7C ldr r1, _08076D78 b _08076D7E .align 2, 0 _08076D74: .4byte gUnknown_202DF98 _08076D78: .4byte gUnknown_80F4EBC _08076D7C: ldr r1, _08076DA4 _08076D7E: adds r0, r6, 0 movs r2, 0x1 bl sub_808417C adds r0, 0x1 adds r1, r4, 0 adds r1, 0xB8 strb r0, [r1] adds r1, r4, 0 adds r1, 0xB9 movs r0, 0 strb r0, [r1] ldr r0, _08076DA8 ldr r2, [r0] adds r0, r7, 0 adds r1, r6, 0 bl sub_80522F4 b _08076DB8 .align 2, 0 _08076DA4: .4byte gUnknown_80F4EC0 _08076DA8: .4byte gUnknown_80FB7BC _08076DAC: ldr r0, _08076E14 ldr r2, [r0] adds r0, r7, 0 adds r1, r6, 0 bl sub_80522F4 _08076DB8: ldrb r0, [r4, 0x6] cmp r0, 0 beq _08076E08 movs r5, 0 movs r7, 0 _08076DC2: ldr r0, _08076E18 ldr r0, [r0] lsls r1, r5, 2 ldr r2, _08076E1C adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08076E02 ldr r1, [r4, 0x70] adds r3, r1, 0 adds r3, 0x78 ldrb r0, [r3] cmp r0, 0x1 bne _08076E02 adds r2, r1, 0 adds r2, 0x80 ldr r0, [r2] cmp r0, r6 bne _08076E02 movs r0, 0x6 strb r0, [r3] str r7, [r2] adds r0, r1, 0 adds r0, 0x7C strh r7, [r0] subs r0, 0x2 strb r7, [r0] _08076E02: adds r5, 0x1 cmp r5, 0x3 ble _08076DC2 _08076E08: adds r0, r6, 0 bl sub_80418D4 _08076E0E: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08076E14: .4byte gUnknown_80FB7DC _08076E18: .4byte gUnknown_203B418 _08076E1C: .4byte 0x0001357c thumb_func_end sub_8076D10 thumb_func_start sub_8076E20 sub_8076E20: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r6, r0, 0 adds r4, r1, 0 adds r5, r2, 0 mov r9, r3 ldr r0, [sp, 0x1C] ldr r1, [sp, 0x20] lsls r0, 24 lsrs r7, r0, 24 lsls r1, 24 lsrs r1, 24 mov r8, r1 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _08076E4C b _08076F6E _08076E4C: cmp r5, 0 beq _08076E64 ldr r0, _08076E5C ldr r1, _08076E60 ldr r1, [r1] bl strcpy b _08076E6E .align 2, 0 _08076E5C: .4byte gUnknown_202DE58 _08076E60: .4byte gUnknown_80FC0C8 _08076E64: ldr r0, _08076EA0 ldr r1, _08076EA4 ldr r1, [r1] bl strcpy _08076E6E: cmp r7, 0 beq _08076EE4 adds r0, r6, 0 adds r1, r4, 0 mov r2, r8 bl sub_8071728 lsls r0, 24 cmp r0, 0 bne _08076F6E adds r0, r4, 0 movs r1, 0xB bl sub_8046CB0 lsls r0, 24 cmp r0, 0 beq _08076EB0 ldr r0, _08076EA8 adds r1, r4, 0 movs r2, 0 bl sub_8045B94 ldr r0, _08076EAC b _08076ECE .align 2, 0 _08076EA0: .4byte gUnknown_202DE58 _08076EA4: .4byte gUnknown_80FC0B8 _08076EA8: .4byte gUnknown_202DF98 _08076EAC: .4byte gUnknown_80FD550 _08076EB0: adds r0, r4, 0 movs r1, 0x9 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _08076EE4 cmp r5, 0 bne _08076EE4 ldr r0, _08076EDC adds r1, r4, 0 movs r2, 0 bl sub_8045B94 ldr r0, _08076EE0 _08076ECE: ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 b _08076F6E .align 2, 0 _08076EDC: .4byte gUnknown_202DF98 _08076EE0: .4byte gUnknown_80FCA60 _08076EE4: ldr r7, [r4, 0x70] ldr r0, _08076F0C adds r1, r4, 0 movs r2, 0 bl sub_8045B94 adds r0, r4, 0 adds r1, r5, 0 bl sub_8041F28 mov r0, r9 cmp r0, 0x1 bne _08076F18 ldr r0, _08076F10 ldr r1, _08076F14 ldr r1, [r1] bl strcpy b _08076F22 .align 2, 0 _08076F0C: .4byte gUnknown_202DF98 _08076F10: .4byte gUnknown_202DEA8 _08076F14: .4byte gUnknown_80FC0E4 _08076F18: ldr r0, _08076F50 ldr r1, _08076F54 ldr r1, [r1] bl strcpy _08076F22: lsls r1, r5, 1 adds r0, r7, 0 adds r0, 0x1C adds r1, r0, r1 movs r2, 0 ldrsh r3, [r1, r2] mov r0, r9 subs r3, r0 cmp r3, 0 bge _08076F38 movs r3, 0 _08076F38: movs r2, 0 ldrsh r0, [r1, r2] cmp r0, r3 beq _08076F5C strh r3, [r1] ldr r0, _08076F58 ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 b _08076F68 .align 2, 0 _08076F50: .4byte gUnknown_202DEA8 _08076F54: .4byte gUnknown_80FC0D4 _08076F58: .4byte gUnknown_80FC15C _08076F5C: ldr r0, _08076F7C ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 _08076F68: adds r0, r4, 0 bl sub_80418D4 _08076F6E: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08076F7C: .4byte gUnknown_80FC274 thumb_func_end sub_8076E20 thumb_func_start sub_8076F80 sub_8076F80: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r6, r0, 0 adds r4, r1, 0 adds r5, r2, 0 mov r9, r3 ldr r0, [sp, 0x1C] ldr r1, [sp, 0x20] lsls r0, 24 lsrs r7, r0, 24 lsls r1, 24 lsrs r1, 24 mov r8, r1 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08077072 cmp r5, 0 beq _08076FC4 ldr r0, _08076FBC ldr r1, _08076FC0 ldr r1, [r1] bl strcpy b _08076FCE .align 2, 0 _08076FBC: .4byte gUnknown_202DE58 _08076FC0: .4byte gUnknown_80FC0AC _08076FC4: ldr r0, _08077008 ldr r1, _0807700C ldr r1, [r1] bl strcpy _08076FCE: cmp r7, 0 beq _08076FE2 adds r0, r6, 0 adds r1, r4, 0 mov r2, r8 bl sub_8071728 lsls r0, 24 cmp r0, 0 bne _08077072 _08076FE2: ldr r7, [r4, 0x70] ldr r0, _08077010 adds r1, r4, 0 movs r2, 0 bl sub_8045B94 adds r0, r4, 0 adds r1, r5, 0 bl sub_8041F4C mov r0, r9 cmp r0, 0x1 bne _0807701C ldr r0, _08077014 ldr r1, _08077018 ldr r1, [r1] bl strcpy b _08077026 .align 2, 0 _08077008: .4byte gUnknown_202DE58 _0807700C: .4byte gUnknown_80FC09C _08077010: .4byte gUnknown_202DF98 _08077014: .4byte gUnknown_202DEA8 _08077018: .4byte gUnknown_80FC0E4 _0807701C: ldr r0, _08077054 ldr r1, _08077058 ldr r1, [r1] bl strcpy _08077026: lsls r1, r5, 1 adds r0, r7, 0 adds r0, 0x20 adds r1, r0, r1 movs r2, 0 ldrsh r3, [r1, r2] mov r0, r9 subs r3, r0 cmp r3, 0 bge _0807703C movs r3, 0 _0807703C: movs r2, 0 ldrsh r0, [r1, r2] cmp r0, r3 beq _08077060 strh r3, [r1] ldr r0, _0807705C ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 b _0807706C .align 2, 0 _08077054: .4byte gUnknown_202DEA8 _08077058: .4byte gUnknown_80FC0D4 _0807705C: .4byte gUnknown_80FC158 _08077060: ldr r0, _08077080 ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 _0807706C: adds r0, r4, 0 bl sub_80418D4 _08077072: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08077080: .4byte gUnknown_80FC248 thumb_func_end sub_8076F80 thumb_func_start sub_8077084 sub_8077084: push {r4-r7,lr} mov r7, r8 push {r7} mov r8, r0 adds r4, r1, 0 adds r5, r2, 0 adds r6, r3, 0 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08077152 ldr r7, [r4, 0x70] ldr r0, _080770C4 adds r1, r4, 0 movs r2, 0 bl sub_8045B94 adds r0, r4, 0 adds r1, r5, 0 bl sub_8041F70 cmp r5, 0 beq _080770D0 ldr r0, _080770C8 ldr r1, _080770CC ldr r1, [r1] bl strcpy b _080770DA .align 2, 0 _080770C4: .4byte gUnknown_202DF98 _080770C8: .4byte gUnknown_202DE58 _080770CC: .4byte gUnknown_80FC0C8 _080770D0: ldr r0, _080770EC ldr r1, _080770F0 ldr r1, [r1] bl strcpy _080770DA: cmp r6, 0x1 bne _080770FC ldr r0, _080770F4 ldr r1, _080770F8 ldr r1, [r1] bl strcpy b _08077106 .align 2, 0 _080770EC: .4byte gUnknown_202DE58 _080770F0: .4byte gUnknown_80FC0B8 _080770F4: .4byte gUnknown_202DEA8 _080770F8: .4byte gUnknown_80FC0E4 _080770FC: ldr r0, _08077134 ldr r1, _08077138 ldr r1, [r1] bl strcpy _08077106: lsls r1, r5, 1 adds r0, r7, 0 adds r0, 0x1C adds r1, r0, r1 movs r0, 0 ldrsh r3, [r1, r0] adds r3, r6 cmp r3, 0x13 ble _0807711A movs r3, 0x14 _0807711A: movs r2, 0 ldrsh r0, [r1, r2] cmp r0, r3 beq _08077140 strh r3, [r1] ldr r0, _0807713C ldr r2, [r0] mov r0, r8 adds r1, r4, 0 bl sub_80522F4 b _0807714C .align 2, 0 _08077134: .4byte gUnknown_202DEA8 _08077138: .4byte gUnknown_80FC0D4 _0807713C: .4byte gUnknown_80FC13C _08077140: ldr r0, _0807715C ldr r2, [r0] mov r0, r8 adds r1, r4, 0 bl sub_80522F4 _0807714C: adds r0, r4, 0 bl sub_80418D4 _08077152: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0807715C: .4byte gUnknown_80FC270 thumb_func_end sub_8077084 thumb_func_start sub_8077160 sub_8077160: push {r4-r7,lr} mov r7, r8 push {r7} mov r8, r0 adds r4, r1, 0 adds r5, r2, 0 adds r6, r3, 0 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0807722E ldr r7, [r4, 0x70] ldr r0, _080771A0 adds r1, r4, 0 movs r2, 0 bl sub_8045B94 adds r0, r4, 0 adds r1, r5, 0 bl sub_8041F94 cmp r5, 0 beq _080771AC ldr r0, _080771A4 ldr r1, _080771A8 ldr r1, [r1] bl strcpy b _080771B6 .align 2, 0 _080771A0: .4byte gUnknown_202DF98 _080771A4: .4byte gUnknown_202DE58 _080771A8: .4byte gUnknown_80FC0AC _080771AC: ldr r0, _080771C8 ldr r1, _080771CC ldr r1, [r1] bl strcpy _080771B6: cmp r6, 0x1 bne _080771D8 ldr r0, _080771D0 ldr r1, _080771D4 ldr r1, [r1] bl strcpy b _080771E2 .align 2, 0 _080771C8: .4byte gUnknown_202DE58 _080771CC: .4byte gUnknown_80FC09C _080771D0: .4byte gUnknown_202DEA8 _080771D4: .4byte gUnknown_80FC0E4 _080771D8: ldr r0, _08077210 ldr r1, _08077214 ldr r1, [r1] bl strcpy _080771E2: lsls r1, r5, 1 adds r0, r7, 0 adds r0, 0x20 adds r1, r0, r1 movs r0, 0 ldrsh r3, [r1, r0] adds r3, r6 cmp r3, 0x13 ble _080771F6 movs r3, 0x14 _080771F6: movs r2, 0 ldrsh r0, [r1, r2] cmp r0, r3 beq _0807721C strh r3, [r1] ldr r0, _08077218 ldr r2, [r0] mov r0, r8 adds r1, r4, 0 bl sub_80522F4 b _08077228 .align 2, 0 _08077210: .4byte gUnknown_202DEA8 _08077214: .4byte gUnknown_80FC0D4 _08077218: .4byte gUnknown_80FC138 _0807721C: ldr r0, _08077238 ldr r2, [r0] mov r0, r8 adds r1, r4, 0 bl sub_80522F4 _08077228: adds r0, r4, 0 bl sub_80418D4 _0807722E: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08077238: .4byte gUnknown_80FC21C thumb_func_end sub_8077160 thumb_func_start sub_807723C sub_807723C: push {r4,lr} adds r4, r0, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08077258 adds r0, r4, 0 movs r1, 0x48 bl sub_8071824 lsls r0, 24 cmp r0, 0 bne _0807725C _08077258: movs r0, 0 b _0807726C _0807725C: ldr r0, [r4, 0x70] movs r1, 0x28 ldrsh r0, [r0, r1] cmp r0, 0x1 bgt _0807726A movs r0, 0x2 b _0807726C _0807726A: movs r0, 0x1 _0807726C: pop {r4} pop {r1} bx r1 thumb_func_end sub_807723C thumb_func_start sub_8077274 sub_8077274: push {r4,r5,lr} adds r5, r1, 0 adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080772B4 ldr r0, [r5, 0x70] adds r4, r0, 0 ldr r0, _080772BC adds r1, r5, 0 movs r2, 0 bl sub_8045B94 movs r0, 0x28 ldrsh r1, [r4, r0] adds r1, 0x1 cmp r1, 0x1 ble _0807729E movs r1, 0x2 _0807729E: movs r2, 0x28 ldrsh r0, [r4, r2] cmp r0, r1 beq _080772AE strh r1, [r4, 0x28] adds r0, r5, 0 bl sub_8041C58 _080772AE: adds r0, r5, 0 bl sub_80418D4 _080772B4: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080772BC: .4byte gUnknown_202DF98 thumb_func_end sub_8077274 thumb_func_start sub_80772C0 sub_80772C0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} mov r9, r0 adds r5, r1, 0 adds r4, r2, 0 adds r7, r3, 0 ldr r0, [sp, 0x20] lsls r0, 24 lsrs r6, r0, 24 adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _080772E6 b _08077422 _080772E6: cmp r4, 0 beq _08077300 ldr r0, _080772F8 ldr r1, _080772FC ldr r1, [r1] bl strcpy b _0807730A .align 2, 0 _080772F8: .4byte gUnknown_202DE58 _080772FC: .4byte gUnknown_80FC0C8 _08077300: ldr r0, _08077340 ldr r1, _08077344 ldr r1, [r1] bl strcpy _0807730A: cmp r7, 0xFF bgt _08077320 mov r0, r9 adds r1, r5, 0 adds r2, r6, 0 bl sub_8071728 lsls r0, 24 cmp r0, 0 beq _08077320 b _08077422 _08077320: adds r0, r5, 0 movs r1, 0xB bl sub_8046CB0 lsls r0, 24 cmp r0, 0 beq _08077350 cmp r7, 0xFF bgt _08077350 ldr r0, _08077348 adds r1, r5, 0 movs r2, 0 bl sub_8045B94 ldr r0, _0807734C b _08077376 .align 2, 0 _08077340: .4byte gUnknown_202DE58 _08077344: .4byte gUnknown_80FC0B8 _08077348: .4byte gUnknown_202DF98 _0807734C: .4byte gUnknown_80FD550 _08077350: adds r0, r5, 0 movs r1, 0x9 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0807738C cmp r4, 0 bne _0807738C cmp r7, 0xFF bgt _0807738C cmp r6, 0 beq _08077422 ldr r0, _08077384 adds r1, r5, 0 movs r2, 0 bl sub_8045B94 ldr r0, _08077388 _08077376: ldr r2, [r0] mov r0, r9 adds r1, r5, 0 bl sub_80522F4 b _08077422 .align 2, 0 _08077384: .4byte gUnknown_202DF98 _08077388: .4byte gUnknown_80FCA60 _0807738C: ldr r0, [r5, 0x70] mov r8, r0 ldr r0, _080773B8 adds r1, r5, 0 movs r2, 0 bl sub_8045B94 lsls r1, r4, 2 mov r0, r8 adds r0, 0x2C adds r0, r1 ldr r0, [r0] mov r10, r0 adds r6, r1, 0 cmp r7, 0xFF bgt _080773BC adds r0, r5, 0 adds r1, r4, 0 bl sub_8041FD8 b _080773C4 .align 2, 0 _080773B8: .4byte gUnknown_202DF98 _080773BC: adds r0, r5, 0 adds r1, r4, 0 bl sub_8041FB4 _080773C4: mov r0, r8 adds r0, 0x2C adds r4, r0, r6 ldr r0, [r4] adds r1, r7, 0 bl sub_8009DA4 str r0, [r4] cmp r0, 0x1 bgt _080773DC movs r0, 0x2 str r0, [r4] _080773DC: ldr r0, [r4] ldr r1, _080773F0 cmp r0, r1 ble _080773E6 str r1, [r4] _080773E6: ldr r0, [r4] cmp r10, r0 ble _080773F8 ldr r0, _080773F4 b _080773FE .align 2, 0 _080773F0: .4byte 0x000063fd _080773F4: .4byte gUnknown_80FC11C _080773F8: cmp r10, r0 bge _08077410 ldr r0, _0807740C _080773FE: ldr r2, [r0] mov r0, r9 adds r1, r5, 0 bl sub_80522F4 b _0807741C .align 2, 0 _0807740C: .4byte gUnknown_80FC118 _08077410: ldr r0, _08077430 ldr r2, [r0] mov r0, r9 adds r1, r5, 0 bl sub_80522F4 _0807741C: adds r0, r5, 0 bl sub_80418D4 _08077422: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08077430: .4byte gUnknown_80FC184 thumb_func_end sub_80772C0 thumb_func_start sub_8077434 sub_8077434: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} mov r9, r0 adds r5, r1, 0 adds r4, r2, 0 mov r8, r3 ldr r0, [sp, 0x20] lsls r0, 24 lsrs r6, r0, 24 adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0807752E cmp r4, 0 beq _08077470 ldr r0, _08077468 ldr r1, _0807746C ldr r1, [r1] bl strcpy b _0807747A .align 2, 0 _08077468: .4byte gUnknown_202DE58 _0807746C: .4byte gUnknown_80FC0AC _08077470: ldr r0, _080774BC ldr r1, _080774C0 ldr r1, [r1] bl strcpy _0807747A: mov r0, r8 cmp r0, 0xFF bgt _08077490 mov r0, r9 adds r1, r5, 0 adds r2, r6, 0 bl sub_8071728 lsls r0, 24 cmp r0, 0 bne _0807752E _08077490: ldr r7, [r5, 0x70] ldr r0, _080774C4 adds r1, r5, 0 movs r2, 0 bl sub_8045B94 lsls r1, r4, 2 adds r0, r7, 0 adds r0, 0x34 adds r0, r1 ldr r0, [r0] mov r10, r0 adds r6, r1, 0 mov r0, r8 cmp r0, 0xFF bgt _080774C8 adds r0, r5, 0 adds r1, r4, 0 bl sub_804201C b _080774D0 .align 2, 0 _080774BC: .4byte gUnknown_202DE58 _080774C0: .4byte gUnknown_80FC09C _080774C4: .4byte gUnknown_202DF98 _080774C8: adds r0, r5, 0 adds r1, r4, 0 bl sub_8041FFC _080774D0: adds r0, r7, 0 adds r0, 0x34 adds r4, r0, r6 ldr r0, [r4] mov r1, r8 bl sub_8009DA4 str r0, [r4] cmp r0, 0x1 bgt _080774E8 movs r0, 0x2 str r0, [r4] _080774E8: ldr r0, [r4] ldr r1, _080774FC cmp r0, r1 ble _080774F2 str r1, [r4] _080774F2: ldr r0, [r4] cmp r10, r0 ble _08077504 ldr r0, _08077500 b _0807750A .align 2, 0 _080774FC: .4byte 0x000063fd _08077500: .4byte gUnknown_80FC114 _08077504: cmp r10, r0 bge _0807751C ldr r0, _08077518 _0807750A: ldr r2, [r0] mov r0, r9 adds r1, r5, 0 bl sub_80522F4 b _08077528 .align 2, 0 _08077518: .4byte gUnknown_80FC0FC _0807751C: ldr r0, _0807753C ldr r2, [r0] mov r0, r9 adds r1, r5, 0 bl sub_80522F4 _08077528: adds r0, r5, 0 bl sub_80418D4 _0807752E: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0807753C: .4byte gUnknown_80FC180 thumb_func_end sub_8077434 thumb_func_start sub_8077540 sub_8077540: push {r4-r7,lr} adds r7, r0, 0 adds r4, r1, 0 adds r5, r2, 0 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080775D2 ldr r6, [r4, 0x70] ldr r0, _08077578 adds r1, r4, 0 movs r2, 0 bl sub_8045B94 adds r0, r4, 0 adds r1, r5, 0 bl sub_8042040 cmp r5, 0 beq _08077584 ldr r0, _0807757C ldr r1, _08077580 ldr r1, [r1] bl strcpy b _0807758E .align 2, 0 _08077578: .4byte gUnknown_202DF98 _0807757C: .4byte gUnknown_202DE58 _08077580: .4byte gUnknown_80FC090 _08077584: ldr r0, _080775B4 ldr r1, _080775B8 ldr r1, [r1] bl strcpy _0807758E: lsls r0, r5, 1 adds r1, r6, 0 adds r1, 0x24 adds r1, r0 ldrh r2, [r1] movs r3, 0 ldrsh r0, [r1, r3] cmp r0, 0x13 bgt _080775C0 adds r0, r2, 0x1 strh r0, [r1] ldr r0, _080775BC ldr r2, [r0] adds r0, r7, 0 adds r1, r4, 0 bl sub_80522F4 b _080775CC .align 2, 0 _080775B4: .4byte gUnknown_202DE58 _080775B8: .4byte gUnknown_80FC084 _080775BC: .4byte gUnknown_80FC1C4 _080775C0: ldr r0, _080775D8 ldr r2, [r0] adds r0, r7, 0 adds r1, r4, 0 bl sub_80522F4 _080775CC: adds r0, r4, 0 bl sub_80418D4 _080775D2: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080775D8: .4byte gUnknown_80FC218 thumb_func_end sub_8077540 thumb_func_start sub_80775DC sub_80775DC: push {r4-r7,lr} adds r7, r0, 0 adds r5, r1, 0 adds r6, r2, 0 lsls r3, 24 lsrs r4, r3, 24 adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080776B6 cmp r6, 0 beq _0807760C ldr r0, _08077604 ldr r1, _08077608 ldr r1, [r1] bl strcpy b _08077616 .align 2, 0 _08077604: .4byte gUnknown_202DE58 _08077608: .4byte gUnknown_80FC090 _0807760C: ldr r0, _08077654 ldr r1, _08077658 ldr r1, [r1] bl strcpy _08077616: adds r0, r7, 0 adds r1, r5, 0 adds r2, r4, 0 bl sub_8071728 lsls r0, 24 cmp r0, 0 bne _080776B6 adds r0, r5, 0 movs r1, 0x1E bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _08077664 cmp r6, 0 bne _08077664 cmp r4, 0 beq _080776B6 ldr r0, _0807765C adds r1, r5, 0 movs r2, 0 bl sub_8045B94 ldr r0, _08077660 ldr r2, [r0] adds r0, r7, 0 adds r1, r5, 0 bl sub_80522F4 b _080776B6 .align 2, 0 _08077654: .4byte gUnknown_202DE58 _08077658: .4byte gUnknown_80FC084 _0807765C: .4byte gUnknown_202DF98 _08077660: .4byte gUnknown_80FCA64 _08077664: ldr r4, [r5, 0x70] ldr r0, _0807769C adds r1, r5, 0 movs r2, 0 bl sub_8045B94 adds r0, r5, 0 adds r1, r6, 0 bl sub_8042060 lsls r0, r6, 1 adds r4, 0x24 adds r1, r4, r0 ldrh r2, [r1] movs r3, 0 ldrsh r0, [r1, r3] cmp r0, 0 beq _080776A4 subs r0, r2, 0x1 strh r0, [r1] ldr r0, _080776A0 ldr r2, [r0] adds r0, r7, 0 adds r1, r5, 0 bl sub_80522F4 b _080776B0 .align 2, 0 _0807769C: .4byte gUnknown_202DF98 _080776A0: .4byte gUnknown_80FC1A4 _080776A4: ldr r0, _080776BC ldr r2, [r0] adds r0, r7, 0 adds r1, r5, 0 bl sub_80522F4 _080776B0: adds r0, r5, 0 bl sub_80418D4 _080776B6: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080776BC: .4byte gUnknown_80FC1F0 thumb_func_end sub_80775DC thumb_func_start sub_80776C0 sub_80776C0: push {r4-r6,lr} adds r5, r0, 0 adds r4, r1, 0 lsls r2, 24 lsrs r6, r2, 24 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08077776 adds r0, r5, 0 adds r1, r4, 0 adds r2, r6, 0 bl sub_80716E8 lsls r0, 24 cmp r0, 0 bne _08077776 adds r0, r4, 0 movs r1, 0x1F bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _08077718 ldr r0, _08077710 adds r1, r4, 0 movs r2, 0 bl sub_8045B94 cmp r6, 0 beq _08077776 ldr r0, _08077714 ldr r2, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_80522F4 b _08077776 .align 2, 0 _08077710: .4byte gUnknown_202DF98 _08077714: .4byte gUnknown_80FCC18 _08077718: ldr r6, [r4, 0x70] ldr r0, _08077758 adds r1, r4, 0 movs r2, 0 bl sub_8045B94 adds r1, r6, 0 adds r1, 0xBC ldrb r0, [r1] cmp r0, 0x1 beq _08077764 movs r0, 0x1 strb r0, [r1] ldr r1, _0807775C adds r0, r4, 0 movs r2, 0x1 bl sub_808417C adds r0, 0x1 adds r1, r6, 0 adds r1, 0xBD strb r0, [r1] adds r0, r4, 0 bl sub_80420A0 ldr r0, _08077760 ldr r2, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_80522F4 b _08077770 .align 2, 0 _08077758: .4byte gUnknown_202DF98 _0807775C: .4byte gUnknown_80F4E3C _08077760: .4byte gUnknown_80FB2E0 _08077764: ldr r0, _0807777C ldr r2, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_80522F4 _08077770: adds r0, r4, 0 bl sub_80418D4 _08077776: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0807777C: .4byte gUnknown_80FB300 thumb_func_end sub_80776C0 thumb_func_start sub_8077780 sub_8077780: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r7, r0, 0 adds r5, r1, 0 lsls r2, 24 lsrs r2, 24 mov r10, r2 adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _080777A2 b _080778F0 _080777A2: adds r0, r7, 0 adds r1, r5, 0 mov r2, r10 bl sub_80716E8 lsls r0, 24 cmp r0, 0 beq _080777B4 b _080778F0 _080777B4: adds r0, r5, 0 movs r1, 0x16 bl sub_8071824 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _080777EC ldr r0, _080777E4 adds r1, r5, 0 movs r2, 0 bl sub_8045B94 mov r0, r10 cmp r0, 0 bne _080777D6 b _080778F0 _080777D6: ldr r0, _080777E8 ldr r2, [r0] adds r0, r7, 0 adds r1, r5, 0 bl sub_80522F4 b _080778F0 .align 2, 0 _080777E4: .4byte gUnknown_202DF98 _080777E8: .4byte gUnknown_80FCBF8 _080777EC: movs r6, 0x1 ldr r1, [r5, 0x70] mov r8, r1 ldr r0, _08077844 adds r1, r5, 0 movs r2, 0 bl sub_8045B94 mov r1, r8 adds r1, 0xAC ldrb r0, [r1] cmp r0, 0x4 beq _08077850 movs r0, 0x4 strb r0, [r1] ldr r1, _08077848 adds r0, r5, 0 movs r2, 0x1 bl sub_808417C adds r0, 0x1 mov r1, r8 adds r1, 0xAD strb r0, [r1] mov r0, r8 adds r0, 0xAE strb r4, [r0] adds r0, 0x1 strb r4, [r0] movs r6, 0 ldr r0, _0807784C ldr r2, [r0] adds r0, r7, 0 adds r1, r5, 0 bl sub_80522F4 adds r0, r5, 0 bl sub_8041C1C adds r0, r5, 0 bl sub_8070774 b _0807785C .align 2, 0 _08077844: .4byte gUnknown_202DF98 _08077848: .4byte gUnknown_80F4E50 _0807784C: .4byte gUnknown_80FB2AC _08077850: ldr r0, _08077900 ldr r2, [r0] adds r0, r7, 0 adds r1, r5, 0 bl sub_80522F4 _0807785C: adds r0, r5, 0 movs r1, 0x19 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _080778EA cmp r6, 0 bne _080778EA movs r3, 0 mov r9, r3 movs r6, 0 _08077874: movs r1, 0x4 ldrsh r0, [r5, r1] ldr r1, _08077904 lsls r2, r6, 2 adds r2, r1 movs r3, 0 ldrsh r1, [r2, r3] adds r0, r1 movs r3, 0x6 ldrsh r1, [r5, r3] movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 bl sub_804954C ldr r4, [r0, 0x10] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080778E4 adds r0, r4, 0 bl sub_80450F8 cmp r0, 0x1 bne _080778E4 mov r0, r9 cmp r0, 0 bne _080778CA movs r1, 0x1 mov r9, r1 ldr r0, _08077908 mov r1, r8 movs r2, 0 bl sub_80708B4 ldr r0, _0807790C ldr r2, [r0] adds r0, r7, 0 adds r1, r5, 0 bl sub_80522F4 _080778CA: adds r0, r5, 0 adds r1, r4, 0 bl sub_807167C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080778E4 adds r0, r7, 0 adds r1, r4, 0 mov r2, r10 bl sub_8077780 _080778E4: adds r6, 0x1 cmp r6, 0x7 ble _08077874 _080778EA: adds r0, r5, 0 bl sub_80418D4 _080778F0: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08077900: .4byte gUnknown_80FB2CC _08077904: .4byte gUnknown_80F4448 _08077908: .4byte gUnknown_202DF98 _0807790C: .4byte gUnknown_80FF01C thumb_func_end sub_8077780 thumb_func_start sub_8077910 sub_8077910: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} mov r8, r0 adds r5, r1, 0 adds r4, r2, 0 lsls r3, 24 lsrs r3, 24 mov r9, r3 adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080779DE cmp r4, 0 bne _08077940 ldr r1, _08077964 adds r0, r5, 0 movs r2, 0 bl sub_808417C adds r4, r0, 0x1 _08077940: ldr r6, [r5, 0x70] ldr r0, _08077968 adds r1, r5, 0 movs r2, 0 bl sub_8045B94 adds r0, r5, 0 bl sub_8070774 adds r7, r0, 0 cmp r7, 0x4 bne _08077970 mov r0, r9 cmp r0, 0 beq _080779D8 ldr r0, _0807796C b _0807799E .align 2, 0 _08077964: .4byte gUnknown_80F4E40 _08077968: .4byte gUnknown_202DF98 _0807796C: .4byte gUnknown_80FC2B8 _08077970: movs r2, 0 movs r0, 0x84 lsls r0, 1 adds r1, r6, r0 b _08077988 _0807797A: adds r2, 0x1 cmp r2, 0x4 bgt _08077990 movs r1, 0x84 lsls r1, 1 adds r0, r6, r1 adds r1, r0, r2 _08077988: ldrb r0, [r1] cmp r0, 0 bne _0807797A strb r4, [r1] _08077990: adds r0, r5, 0 bl sub_8070774 adds r4, r0, 0 cmp r7, r4 bne _080779B0 ldr r0, _080779AC _0807799E: ldr r2, [r0] mov r0, r8 adds r1, r5, 0 bl sub_80522F4 b _080779D8 .align 2, 0 _080779AC: .4byte gUnknown_80FC298 _080779B0: adds r0, r5, 0 bl sub_8041CB8 ldr r1, _080779EC lsls r0, r4, 2 adds r0, r1 ldr r2, [r0] mov r0, r8 adds r1, r5, 0 bl sub_80522F4 adds r1, r6, 0 adds r1, 0xF8 movs r2, 0 movs r0, 0x1 strb r0, [r1] movs r1, 0xA4 lsls r1, 1 adds r0, r6, r1 strb r2, [r0] _080779D8: adds r0, r5, 0 bl sub_80418D4 _080779DE: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080779EC: .4byte gUnknown_80FA124 thumb_func_end sub_8077910 thumb_func_start sub_80779F0 sub_80779F0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 mov r10, r0 adds r5, r1, 0 mov r8, r2 lsls r3, 24 lsrs r3, 24 mov r9, r3 adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08077AD0 mov r0, r10 adds r1, r5, 0 mov r2, r9 bl sub_80716E8 lsls r0, 24 cmp r0, 0 bne _08077AD0 ldr r7, [r5, 0x70] ldr r0, _08077A48 adds r1, r5, 0 movs r2, 0 bl sub_8045B94 adds r0, r5, 0 bl sub_8070774 str r0, [sp] cmp r0, 0 bne _08077A50 mov r0, r9 cmp r0, 0 beq _08077ACA ldr r0, _08077A4C b _08077AA2 .align 2, 0 _08077A48: .4byte gUnknown_202DF98 _08077A4C: .4byte gUnknown_80FC2D8 _08077A50: movs r0, 0 cmp r0, r8 bge _08077A8C _08077A56: movs r1, 0 adds r6, r0, 0x1 _08077A5A: ldr r2, _08077A78 adds r0, r7, r2 adds r4, r0, r1 ldrb r0, [r4] cmp r0, 0 bne _08077A80 adds r0, r5, 0 ldr r1, _08077A7C movs r2, 0x1 bl sub_808417C adds r0, 0x1 strb r0, [r4] b _08077A86 .align 2, 0 _08077A78: .4byte 0x0000010d _08077A7C: .4byte gUnknown_80F4E48 _08077A80: adds r1, 0x1 cmp r1, 0x4 ble _08077A5A _08077A86: adds r0, r6, 0 cmp r0, r8 blt _08077A56 _08077A8C: adds r0, r5, 0 bl sub_8070774 adds r4, r0, 0 ldr r0, [sp] cmp r0, r4 bne _08077AB4 mov r2, r9 cmp r2, 0 beq _08077ACA ldr r0, _08077AB0 _08077AA2: ldr r2, [r0] mov r0, r10 adds r1, r5, 0 bl sub_80522F4 b _08077ACA .align 2, 0 _08077AB0: .4byte gUnknown_80FC298 _08077AB4: adds r0, r5, 0 bl sub_8041CCC ldr r0, _08077AE0 lsls r1, r4, 2 adds r1, r0 ldr r2, [r1] mov r0, r10 adds r1, r5, 0 bl sub_80522F4 _08077ACA: adds r0, r5, 0 bl sub_80418D4 _08077AD0: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08077AE0: .4byte gUnknown_80FA124 thumb_func_end sub_80779F0 thumb_func_start sub_8077AE4 sub_8077AE4: push {r4-r7,lr} adds r6, r0, 0 adds r4, r1, 0 lsls r2, 24 lsrs r5, r2, 24 adds r7, r5, 0 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08077BAA adds r0, r6, 0 adds r1, r4, 0 adds r2, r5, 0 bl sub_80716E8 lsls r0, 24 cmp r0, 0 bne _08077BAA ldr r0, _08077B2C adds r1, r4, 0 movs r2, 0 bl sub_8045B94 adds r0, r4, 0 movs r1, 0x12 bl sub_8046CB0 lsls r0, 24 cmp r0, 0 beq _08077B34 cmp r5, 0 beq _08077BAA ldr r0, _08077B30 b _08077B48 .align 2, 0 _08077B2C: .4byte gUnknown_202DF98 _08077B30: .4byte gUnknown_80FD500 _08077B34: adds r0, r4, 0 movs r1, 0x40 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _08077B58 cmp r7, 0 beq _08077BAA ldr r0, _08077B54 _08077B48: ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 b _08077BAA .align 2, 0 _08077B54: .4byte gUnknown_80FCDB4 _08077B58: adds r0, r4, 0 bl sub_8041BE8 ldr r5, [r4, 0x70] adds r1, r5, 0 adds r1, 0xBC ldrb r0, [r1] cmp r0, 0x2 beq _08077B98 movs r0, 0x2 strb r0, [r1] ldr r1, _08077B90 adds r0, r4, 0 movs r2, 0x1 bl sub_808417C adds r0, 0x1 adds r1, r5, 0 adds r1, 0xBD strb r0, [r1] ldr r0, _08077B94 ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 b _08077BA4 .align 2, 0 _08077B90: .4byte gUnknown_80F4E4C _08077B94: .4byte gUnknown_80FB25C _08077B98: ldr r0, _08077BB0 ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 _08077BA4: adds r0, r4, 0 bl sub_80418D4 _08077BAA: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08077BB0: .4byte gUnknown_80FB27C thumb_func_end sub_8077AE4 thumb_func_start sub_8077BB4 sub_8077BB4: push {r4-r6,lr} adds r6, r0, 0 adds r4, r1, 0 lsls r2, 24 lsrs r5, r2, 24 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08077C3A adds r0, r6, 0 adds r1, r4, 0 adds r2, r5, 0 bl sub_80716E8 lsls r0, 24 cmp r0, 0 bne _08077C3A ldr r5, [r4, 0x70] ldr r0, _08077C1C adds r1, r4, 0 movs r2, 0 bl sub_8045B94 adds r1, r5, 0 adds r1, 0xBC ldrb r0, [r1] cmp r0, 0x4 beq _08077C28 movs r0, 0x4 strb r0, [r1] ldr r1, _08077C20 adds r0, r4, 0 movs r2, 0x1 bl sub_808417C adds r0, 0x1 adds r1, r5, 0 adds r1, 0xBD strb r0, [r1] adds r0, r4, 0 bl sub_8041BF8 ldr r0, _08077C24 ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 b _08077C34 .align 2, 0 _08077C1C: .4byte gUnknown_202DF98 _08077C20: .4byte gUnknown_80F4ECC _08077C24: .4byte gUnknown_80FB940 _08077C28: ldr r0, _08077C40 ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 _08077C34: adds r0, r4, 0 bl sub_80418D4 _08077C3A: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08077C40: .4byte gUnknown_80FB960 thumb_func_end sub_8077BB4 thumb_func_start sub_8077C44 sub_8077C44: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 mov r9, r0 adds r5, r1, 0 mov r10, r2 mov r8, r3 ldr r0, [sp, 0x24] lsls r0, 24 lsrs r0, 24 str r0, [sp] adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _08077C6E b _08077DC8 _08077C6E: ldr r4, [r5, 0x70] movs r0, 0x10 ldrsh r7, [r4, r0] movs r1, 0xE ldrsh r6, [r4, r1] ldrh r2, [r4, 0xE] adds r0, r6, 0 ldrh r1, [r4, 0x10] mov r12, r1 adds r1, r7, 0 cmp r0, r1 bne _08077C8C mov r0, r8 cmp r0, 0 bgt _08077C92 _08077C8C: mov r3, r10 cmp r3, 0 bne _08077CD0 _08077C92: ldrh r1, [r4, 0x10] add r1, r8 strh r1, [r4, 0x10] ldrh r0, [r4, 0xE] add r0, r8 strh r0, [r4, 0xE] lsls r1, 16 asrs r1, 16 ldr r0, _08077CCC cmp r1, r0 ble _08077CAA strh r0, [r4, 0x10] _08077CAA: movs r1, 0xE ldrsh r0, [r4, r1] movs r3, 0x10 ldrsh r2, [r4, r3] ldrh r1, [r4, 0x10] cmp r0, r2 ble _08077CBA strh r1, [r4, 0xE] _08077CBA: movs r1, 0xE ldrsh r0, [r4, r1] cmp r0, r2 bne _08077CC4 adds r6, r0, 0 _08077CC4: adds r0, r5, 0 bl sub_8041C94 b _08077CE8 .align 2, 0 _08077CCC: .4byte 0x000003e7 _08077CD0: mov r3, r10 adds r0, r2, r3 strh r0, [r4, 0xE] lsls r0, 16 asrs r0, 16 cmp r0, r1 ble _08077CE2 mov r0, r12 strh r0, [r4, 0xE] _08077CE2: adds r0, r5, 0 bl sub_8041CA8 _08077CE8: movs r1, 0x10 ldrsh r0, [r4, r1] subs r7, r0, r7 movs r2, 0xE ldrsh r0, [r4, r2] subs r6, r0, r6 adds r0, r5, 0 bl sub_80418D4 ldr r0, _08077D1C str r6, [r0] str r7, [r0, 0x4] ldr r0, _08077D20 adds r1, r5, 0 movs r2, 0 bl sub_8045B94 cmp r6, 0 bne _08077D28 cmp r7, 0 bne _08077D28 ldr r3, [sp] cmp r3, 0 beq _08077DC8 ldr r0, _08077D24 b _08077D3A .align 2, 0 _08077D1C: .4byte gUnknown_202DE30 _08077D20: .4byte gUnknown_202DF98 _08077D24: .4byte gUnknown_80FB204 _08077D28: mov r0, r8 cmp r0, 0 bne _08077D4C cmp r6, 0 bne _08077D4C ldr r1, [sp] cmp r1, 0 beq _08077DC8 ldr r0, _08077D48 _08077D3A: ldr r2, [r0] mov r0, r9 adds r1, r5, 0 bl sub_80522F4 b _08077DC8 .align 2, 0 _08077D48: .4byte gUnknown_80FB21C _08077D4C: movs r2, 0 mov r8, r2 cmp r7, 0 beq _08077D6E adds r0, r5, 0 bl sub_8045888 lsls r0, 24 cmp r0, 0 beq _08077D62 mov r8, r7 _08077D62: ldr r0, _08077DA0 ldr r2, [r0] mov r0, r9 adds r1, r5, 0 bl sub_80522F4 _08077D6E: cmp r6, 0 beq _08077DB4 adds r0, r5, 0 bl sub_8045888 lsls r0, 24 cmp r0, 0 beq _08077D80 mov r8, r6 _08077D80: mov r3, r10 cmp r3, 0 beq _08077DB4 movs r0, 0x10 ldrsh r1, [r4, r0] movs r2, 0xE ldrsh r0, [r4, r2] cmp r1, r0 bne _08077DA8 ldr r0, _08077DA4 ldr r2, [r0] mov r0, r9 adds r1, r5, 0 bl sub_80522F4 b _08077DB4 .align 2, 0 _08077DA0: .4byte gUnknown_80FB240 _08077DA4: .4byte gUnknown_80FB1E0 _08077DA8: ldr r0, _08077DD8 ldr r2, [r0] mov r0, r9 adds r1, r5, 0 bl sub_80522F4 _08077DB4: mov r3, r8 cmp r3, 0 beq _08077DC8 movs r3, 0x1 negs r3, r3 mov r0, r8 adds r1, r5, 0 movs r2, 0x1 bl sub_803ED30 _08077DC8: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08077DD8: .4byte gUnknown_80FB1C4 thumb_func_end sub_8077C44 thumb_func_start sub_8077DDC sub_8077DDC: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08077E3C ldr r0, [r4, 0x70] adds r1, r0, 0 adds r1, 0xF1 ldrb r0, [r1] cmp r0, 0 beq _08077E0C ldr r0, _08077E08 ldr r2, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_80522F4 b _08077E3C .align 2, 0 _08077E08: .4byte gUnknown_80FAEF0 _08077E0C: movs r0, 0x1 strb r0, [r1] adds r0, r4, 0 bl nullsub_75 ldr r0, _08077E44 adds r1, r4, 0 movs r2, 0 bl sub_8045B94 ldr r0, _08077E48 ldr r2, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_80522F4 movs r0, 0 bl sub_803F580 bl sub_8040A84 adds r0, r4, 0 bl sub_80418D4 _08077E3C: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08077E44: .4byte gUnknown_202DF98 _08077E48: .4byte gUnknown_80FAEA0 thumb_func_end sub_8077DDC thumb_func_start sub_8077E4C sub_8077E4C: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08077EC0 bl sub_8043D10 lsls r0, 24 cmp r0, 0 beq _08077E70 ldr r0, _08077E6C b _08077E7E .align 2, 0 _08077E6C: .4byte gUnknown_80FAF3C _08077E70: ldr r0, [r4, 0x70] adds r1, r0, 0 adds r1, 0xF2 ldrb r0, [r1] cmp r0, 0 beq _08077E90 ldr r0, _08077E8C _08077E7E: ldr r2, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_80522F4 b _08077EC0 .align 2, 0 _08077E8C: .4byte gUnknown_80FAF1C _08077E90: movs r0, 0x1 strb r0, [r1] adds r0, r4, 0 bl nullsub_76 ldr r0, _08077EC8 adds r1, r4, 0 movs r2, 0 bl sub_8045B94 ldr r0, _08077ECC ldr r2, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_80522F4 movs r0, 0 bl sub_803F580 bl sub_8040A84 adds r0, r4, 0 bl sub_80418D4 _08077EC0: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08077EC8: .4byte gUnknown_202DF98 _08077ECC: .4byte gUnknown_80FAEC8 thumb_func_end sub_8077E4C thumb_func_start sub_8077ED0 sub_8077ED0: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08077F30 ldr r0, [r4, 0x70] adds r1, r0, 0 adds r1, 0xF0 ldrb r0, [r1] cmp r0, 0 beq _08077F00 ldr r0, _08077EFC ldr r2, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_80522F4 b _08077F30 .align 2, 0 _08077EFC: .4byte gUnknown_80FAFD0 _08077F00: movs r0, 0x1 strb r0, [r1] adds r0, r4, 0 bl nullsub_77 ldr r0, _08077F38 adds r1, r4, 0 movs r2, 0 bl sub_8045B94 ldr r0, _08077F3C ldr r2, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_80522F4 movs r0, 0 bl sub_803F580 bl sub_8040A84 adds r0, r4, 0 bl sub_80418D4 _08077F30: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08077F38: .4byte gUnknown_202DF98 _08077F3C: .4byte gUnknown_80FAFAC thumb_func_end sub_8077ED0 thumb_func_start sub_8077F40 sub_8077F40: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r5, r0, 0 adds r4, r1, 0 lsls r2, 24 lsrs r6, r2, 24 mov r9, r6 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _08077F62 b _08078068 _08077F62: adds r0, r5, 0 bl sub_80450F8 mov r10, r0 cmp r0, 0x1 beq _08077F70 b _08078068 _08077F70: ldr r7, [r4, 0x70] cmp r5, r4 bne _08077F88 cmp r6, 0 beq _08078068 ldr r0, _08077F84 ldr r2, [r0] adds r0, r4, 0 b _08078022 .align 2, 0 _08077F84: .4byte gUnknown_8100610 _08077F88: adds r0, r5, 0 adds r1, r4, 0 mov r2, r9 bl sub_80716E8 lsls r0, 24 cmp r0, 0 bne _08078068 ldr r0, _08077FC0 adds r1, r4, 0 movs r2, 0 bl sub_8045B94 adds r0, r4, 0 movs r1, 0x4 bl sub_8071858 lsls r0, 24 lsrs r0, 24 mov r8, r0 cmp r0, 0 beq _08077FC8 mov r0, r9 cmp r0, 0 beq _08078068 ldr r0, _08077FC4 b _0807801E .align 2, 0 _08077FC0: .4byte gUnknown_202DF98 _08077FC4: .4byte gUnknown_8100640 _08077FC8: adds r6, r7, 0 adds r6, 0xD0 ldrb r0, [r6] cmp r0, 0x1 beq _0807801C cmp r0, 0x2 bne _08077FE2 ldr r0, _08078014 ldr r2, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_80522F4 _08077FE2: mov r1, r10 strb r1, [r6] ldr r1, _08078018 adds r0, r4, 0 movs r2, 0x1 bl sub_808417C adds r0, 0x1 adds r1, r7, 0 adds r1, 0xD9 strb r0, [r1] adds r0, r7, 0 adds r0, 0xDA mov r6, r8 strb r6, [r0] adds r0, r4, 0 bl nullsub_78 adds r1, r7, 0 adds r1, 0xD8 movs r0, 0xFF strb r0, [r1] movs r2, 0 adds r3, r1, 0 b _08078030 .align 2, 0 _08078014: .4byte gUnknown_80FAA8C _08078018: .4byte gUnknown_80F4EB0 _0807801C: ldr r0, _0807802C _0807801E: ldr r2, [r0] adds r0, r5, 0 _08078022: adds r1, r4, 0 bl sub_80522F4 b _08078068 .align 2, 0 _0807802C: .4byte gUnknown_80FAE7C _08078030: ldr r0, _08078078 ldr r0, [r0] lsls r1, r2, 2 ldr r6, _0807807C adds r0, r6 adds r0, r1 ldr r0, [r0] cmp r5, r0 bne _08078050 strb r2, [r3] ldr r0, [r5, 0x70] adds r1, r7, 0 adds r1, 0xD4 adds r0, 0x98 ldr r0, [r0] str r0, [r1] _08078050: adds r2, 0x1 cmp r2, 0x13 ble _08078030 ldr r0, _08078080 ldr r2, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_80522F4 adds r0, r4, 0 bl sub_80418D4 _08078068: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08078078: .4byte gUnknown_203B418 _0807807C: .4byte 0x000135cc _08078080: .4byte gUnknown_80FAE58 thumb_func_end sub_8077F40 thumb_func_start sub_8078084 sub_8078084: push {r4-r6,lr} ldr r6, [r0, 0x70] movs r5, 0 _0807808A: ldr r0, _080780DC ldr r0, [r0] lsls r1, r5, 2 ldr r2, _080780E0 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080780D0 ldr r1, [r4, 0x70] adds r3, r1, 0 adds r3, 0xD0 ldrb r0, [r3] subs r0, 0x1 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _080780D0 adds r0, r1, 0 adds r0, 0xD4 adds r1, r6, 0 adds r1, 0x98 ldr r2, [r0] ldr r0, [r1] cmp r2, r0 bne _080780D0 movs r0, 0 strb r0, [r3] adds r0, r4, 0 bl sub_80418D4 _080780D0: adds r5, 0x1 cmp r5, 0x13 ble _0807808A pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080780DC: .4byte gUnknown_203B418 _080780E0: .4byte 0x000135cc thumb_func_end sub_8078084 thumb_func_start sub_80780E4 sub_80780E4: push {r4-r7,lr} mov r7, r8 push {r7} adds r4, r0, 0 adds r5, r1, 0 adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080781C4 adds r0, r4, 0 bl sub_80450F8 cmp r0, 0x1 bne _080781C4 adds r0, r5, 0 bl sub_80450F8 cmp r0, 0x1 bne _080781C4 ldr r6, [r4, 0x70] ldr r0, _0807816C adds r1, r4, 0 movs r2, 0 bl sub_8045B94 adds r7, r6, 0 adds r7, 0xD0 ldrb r0, [r7] cmp r0, 0x2 beq _08078178 cmp r0, 0x1 bne _08078134 ldr r0, _08078170 ldr r2, [r0] adds r0, r4, 0 adds r1, r5, 0 bl sub_80522F4 _08078134: movs r0, 0 mov r8, r0 movs r0, 0x2 strb r0, [r7] ldr r1, _08078174 adds r0, r5, 0 movs r2, 0x1 bl sub_808417C adds r0, 0x1 adds r1, r6, 0 adds r1, 0xD9 strb r0, [r1] adds r0, r6, 0 adds r0, 0xDA mov r1, r8 strb r1, [r0] adds r0, r5, 0 bl nullsub_74 adds r1, r6, 0 adds r1, 0xD8 movs r0, 0xFF strb r0, [r1] movs r2, 0 adds r3, r1, 0 b _0807818C .align 2, 0 _0807816C: .4byte gUnknown_202DF98 _08078170: .4byte gUnknown_80FA79C _08078174: .4byte gUnknown_80F4EF0 _08078178: ldr r0, _08078188 ldr r2, [r0] adds r0, r4, 0 adds r1, r5, 0 bl sub_80522F4 b _080781C4 .align 2, 0 _08078188: .4byte gUnknown_80FBB78 _0807818C: ldr r0, _080781D0 ldr r0, [r0] lsls r1, r2, 2 ldr r7, _080781D4 adds r0, r7 adds r0, r1 ldr r0, [r0] cmp r5, r0 bne _080781AC strb r2, [r3] ldr r0, [r5, 0x70] adds r1, r6, 0 adds r1, 0xD4 adds r0, 0x98 ldr r0, [r0] str r0, [r1] _080781AC: adds r2, 0x1 cmp r2, 0x13 ble _0807818C ldr r0, _080781D8 ldr r2, [r0] adds r0, r4, 0 adds r1, r5, 0 bl sub_80522F4 adds r0, r5, 0 bl sub_80418D4 _080781C4: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080781D0: .4byte gUnknown_203B418 _080781D4: .4byte 0x000135cc _080781D8: .4byte gUnknown_80FBB4C thumb_func_end sub_80780E4 thumb_func_start sub_80781DC sub_80781DC: push {r4-r7,lr} adds r7, r0, 0 adds r4, r1, 0 adds r6, r2, 0 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08078242 ldr r5, [r4, 0x70] ldr r0, _08078228 adds r1, r4, 0 movs r2, 0 bl sub_8045B94 adds r1, r5, 0 adds r1, 0xDC ldrb r0, [r1] cmp r0, 0x1 beq _08078230 movs r0, 0x1 strb r0, [r1] adds r1, r6, 0x1 adds r0, r5, 0 adds r0, 0xDD strb r1, [r0] adds r0, r4, 0 bl sub_8041CDC ldr r0, _0807822C ldr r2, [r0] adds r0, r7, 0 adds r1, r4, 0 bl sub_80522F4 b _0807823C .align 2, 0 _08078228: .4byte gUnknown_202DF98 _0807822C: .4byte gUnknown_80FB73C _08078230: ldr r0, _08078248 ldr r2, [r0] adds r0, r7, 0 adds r1, r4, 0 bl sub_80522F4 _0807823C: adds r0, r4, 0 bl sub_80418D4 _08078242: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08078248: .4byte gUnknown_80FB764 thumb_func_end sub_80781DC thumb_func_start sub_807824C sub_807824C: push {r4-r7,lr} adds r6, r0, 0 adds r4, r1, 0 adds r7, r2, 0 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080782C2 adds r0, r6, 0 adds r1, r4, 0 movs r2, 0x1 bl sub_80716E8 lsls r0, 24 cmp r0, 0 bne _080782C2 ldr r5, [r4, 0x70] ldr r0, _080782A8 adds r1, r4, 0 movs r2, 0 bl sub_8045B94 adds r1, r5, 0 adds r1, 0xDC ldrb r0, [r1] cmp r0, 0x2 beq _080782B0 movs r0, 0x2 strb r0, [r1] adds r1, r7, 0x1 adds r0, r5, 0 adds r0, 0xDD strb r1, [r0] adds r0, r4, 0 bl sub_8041CEC ldr r0, _080782AC ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 b _080782BC .align 2, 0 _080782A8: .4byte gUnknown_202DF98 _080782AC: .4byte gUnknown_80FB780 _080782B0: ldr r0, _080782C8 ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 _080782BC: adds r0, r4, 0 bl sub_80418D4 _080782C2: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080782C8: .4byte gUnknown_80FB7A0 thumb_func_end sub_807824C thumb_func_start sub_80782CC sub_80782CC: push {r4-r6,lr} adds r6, r0, 0 adds r4, r1, 0 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0807833E ldr r5, [r4, 0x70] ldr r0, _08078320 adds r1, r4, 0 movs r2, 0 bl sub_8045B94 adds r1, r5, 0 adds r1, 0xDC ldrb r0, [r1] cmp r0, 0x3 beq _0807832C movs r0, 0x3 strb r0, [r1] ldr r1, _08078324 adds r0, r4, 0 movs r2, 0 bl sub_808417C adds r0, 0x1 adds r1, r5, 0 adds r1, 0xDD strb r0, [r1] adds r0, r4, 0 bl nullsub_79 ldr r0, _08078328 ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 b _08078338 .align 2, 0 _08078320: .4byte gUnknown_202DF98 _08078324: .4byte gUnknown_80F4EC4 _08078328: .4byte gUnknown_80FB8BC _0807832C: ldr r0, _08078344 ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 _08078338: adds r0, r4, 0 bl sub_80418D4 _0807833E: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08078344: .4byte gUnknown_80FB8E4 thumb_func_end sub_80782CC thumb_func_start sub_8078348 sub_8078348: push {r4-r6,lr} adds r6, r0, 0 adds r4, r1, 0 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080783BA ldr r5, [r4, 0x70] ldr r0, _0807839C adds r1, r4, 0 movs r2, 0 bl sub_8045B94 adds r1, r5, 0 adds r1, 0xDC ldrb r0, [r1] cmp r0, 0x4 beq _080783A8 movs r0, 0x4 strb r0, [r1] ldr r1, _080783A0 adds r0, r4, 0 movs r2, 0 bl sub_808417C adds r0, 0x1 adds r1, r5, 0 adds r1, 0xDD strb r0, [r1] adds r0, r4, 0 bl nullsub_80 ldr r0, _080783A4 ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 b _080783B4 .align 2, 0 _0807839C: .4byte gUnknown_202DF98 _080783A0: .4byte gUnknown_80F4EC8 _080783A4: .4byte gUnknown_80FB900 _080783A8: ldr r0, _080783C0 ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 _080783B4: adds r0, r4, 0 bl sub_80418D4 _080783BA: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080783C0: .4byte gUnknown_80FB924 thumb_func_end sub_8078348 thumb_func_start sub_80783C4 sub_80783C4: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x24 adds r5, r0, 0 adds r7, r1, 0 lsls r2, 24 lsrs r2, 24 str r2, [sp, 0x18] adds r0, r7, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _080783E8 b _0807856A _080783E8: adds r0, r5, 0 adds r1, r7, 0 movs r2, 0x1 bl sub_80716E8 lsls r0, 24 cmp r0, 0 beq _080783FA b _0807856A _080783FA: ldr r4, [r7, 0x70] ldr r0, _08078420 adds r1, r7, 0 movs r2, 0 bl sub_8045B94 adds r1, r4, 0 adds r1, 0xC8 ldrb r0, [r1] cmp r0, 0x2 bne _08078428 ldr r0, _08078424 ldr r2, [r0] adds r0, r5, 0 adds r1, r7, 0 bl sub_80522F4 b _0807856A .align 2, 0 _08078420: .4byte gUnknown_202DF98 _08078424: .4byte gUnknown_80FB994 _08078428: movs r6, 0 mov r8, r1 movs r0, 0xC9 adds r0, r4 mov r9, r0 movs r1, 0xCA adds r1, r4 mov r10, r1 adds r2, r4, 0 adds r2, 0xCB str r2, [sp, 0x1C] adds r4, 0xCC str r4, [sp, 0x20] _08078442: ldr r0, _0807857C ldr r0, [r0] lsls r1, r6, 2 ldr r3, _08078580 adds r0, r3 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08078480 cmp r7, r4 beq _08078480 ldr r0, [r4, 0x70] adds r0, 0xC8 ldrb r0, [r0] subs r0, 0x2 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _08078480 adds r0, r5, 0 adds r1, r4, 0 movs r2, 0 bl sub_807A5D0 movs r0, 0x2A bl sub_803E46C _08078480: adds r6, 0x1 cmp r6, 0x13 ble _08078442 adds r0, r7, 0 bl sub_8041D38 ldr r0, _08078584 adds r1, r7, 0 movs r2, 0 bl sub_8045B94 mov r4, r8 ldrb r0, [r4] cmp r0, 0 beq _080784A8 adds r0, r5, 0 adds r1, r7, 0 movs r2, 0x2 bl sub_807A5D0 _080784A8: movs r4, 0 movs r0, 0x2 mov r1, r8 strb r0, [r1] ldr r0, [r5, 0x70] ldrb r0, [r0, 0x6] mov r2, r9 strb r0, [r2] mov r3, sp ldrb r0, [r3, 0x18] mov r3, r10 strb r0, [r3] ldr r1, _08078588 adds r0, r7, 0 movs r2, 0x1 bl sub_808417C adds r0, 0x1 ldr r1, [sp, 0x1C] strb r0, [r1] ldr r2, [sp, 0x20] strb r4, [r2] adds r0, r7, 0 bl sub_806CEBC adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r7, 0 bl sub_806CCB4 ldr r0, _0807857C ldr r0, [r0] ldr r3, _0807858C adds r0, r3 movs r1, 0x1 strb r1, [r0] ldr r0, _08078590 ldr r2, [r0] adds r0, r5, 0 adds r1, r7, 0 bl sub_80522F4 movs r6, 0 mov r8, r6 _08078502: ldr r0, _0807857C ldr r0, [r0] lsls r1, r6, 2 ldr r4, _08078580 adds r0, r4 adds r0, r1 ldr r0, [r0] mov r9, r0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0807855E mov r5, r9 ldr r4, [r5, 0x70] adds r1, r4, 0 adds r1, 0x78 movs r0, 0x6 strb r0, [r1] adds r0, r4, 0 adds r0, 0x80 mov r1, r8 str r1, [r0] subs r0, 0x4 strh r1, [r0] ldrb r0, [r4, 0x7] cmp r0, 0 bne _0807855E mov r1, sp adds r0, r4, 0 adds r0, 0x44 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} mov r0, r9 movs r1, 0x1 bl sub_807ADB8 adds r1, r4, 0 adds r1, 0x44 mov r0, sp ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} _0807855E: adds r6, 0x1 cmp r6, 0x13 ble _08078502 adds r0, r7, 0 bl sub_80418D4 _0807856A: add sp, 0x24 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0807857C: .4byte gUnknown_203B418 _08078580: .4byte 0x000135cc _08078584: .4byte gUnknown_202DF98 _08078588: .4byte gUnknown_80F4ED0 _0807858C: .4byte 0x000037fc _08078590: .4byte gUnknown_80FB978 thumb_func_end sub_80783C4 thumb_func_start sub_8078594 sub_8078594: push {r4-r7,lr} adds r5, r0, 0 adds r6, r1, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0807866E adds r0, r6, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0807866E ldr r4, [r5, 0x70] ldr r7, [r6, 0x70] adds r0, r5, 0 movs r1, 0xE bl sub_8071858 lsls r0, 24 cmp r0, 0 beq _08078640 adds r0, r5, 0 adds r1, r6, 0 movs r2, 0x1 bl sub_80716E8 lsls r0, 24 cmp r0, 0 bne _0807866E adds r0, r5, 0 adds r1, r6, 0 movs r2, 0x1 bl sub_807A5D0 adds r0, r6, 0 bl sub_8041D48 movs r1, 0xE ldrsh r0, [r4, r1] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 strh r0, [r4, 0xE] cmp r0, 0 bne _080785F6 movs r0, 0x1 strh r0, [r4, 0xE] _080785F6: adds r1, r7, 0 adds r1, 0xC8 ldrb r0, [r1] cmp r0, 0x1 beq _0807861C movs r0, 0x1 strb r0, [r1] ldr r1, _08078634 adds r0, r6, 0 movs r2, 0x1 bl sub_808417C adds r0, 0x1 adds r1, r7, 0 adds r1, 0xCB strb r0, [r1] adds r1, 0x1 movs r0, 0 strb r0, [r1] _0807861C: ldr r0, _08078638 adds r1, r6, 0 movs r2, 0 bl sub_8045B94 ldr r0, _0807863C ldr r2, [r0] adds r0, r5, 0 adds r1, r6, 0 bl sub_80522F4 b _08078668 .align 2, 0 _08078634: .4byte gUnknown_80F4EA4 _08078638: .4byte gUnknown_202DF98 _0807863C: .4byte gUnknown_80FB004 _08078640: ldr r0, _08078674 ldr r4, [r0] adds r0, r5, 0 adds r1, r5, 0 adds r2, r4, 0 movs r3, 0x1 bl sub_8077084 adds r0, r5, 0 adds r1, r5, 0 adds r2, r4, 0 movs r3, 0x1 bl sub_8077160 adds r0, r5, 0 adds r1, r5, 0 movs r2, 0x1 movs r3, 0x1 bl sub_80779F0 _08078668: adds r0, r6, 0 bl sub_80418D4 _0807866E: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08078674: .4byte gUnknown_8106A4C thumb_func_end sub_8078594 thumb_func_start sub_8078678 sub_8078678: push {r4-r7,lr} mov r7, r8 push {r7} adds r7, r0, 0 adds r6, r1, 0 adds r0, r6, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08078732 adds r0, r7, 0 adds r1, r6, 0 movs r2, 0x3 bl sub_807A5D0 movs r5, 0 _0807869A: ldr r0, _0807873C ldr r0, [r0] lsls r1, r5, 2 ldr r2, _08078740 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080786C8 ldr r0, [r4, 0x70] adds r0, 0xC8 ldrb r0, [r0] cmp r0, 0x3 bne _080786C8 adds r0, r7, 0 adds r1, r4, 0 movs r2, 0 bl sub_807A5D0 _080786C8: adds r5, 0x1 cmp r5, 0x13 ble _0807869A adds r0, r6, 0 bl nullsub_81 ldr r5, [r6, 0x70] mov r8, r5 adds r1, r5, 0 adds r1, 0xC8 ldrb r0, [r1] cmp r0, 0x3 beq _08078700 movs r4, 0 movs r0, 0x3 strb r0, [r1] ldr r1, _08078744 adds r0, r6, 0 movs r2, 0 bl sub_808417C adds r0, 0x1 adds r1, r5, 0 adds r1, 0xCB strb r0, [r1] adds r0, r5, 0 adds r0, 0xCC strb r4, [r0] _08078700: ldr r0, _0807873C ldr r1, [r0] ldr r2, _08078748 adds r0, r1, r2 str r6, [r0] ldr r0, _0807874C adds r1, r0 mov r0, r8 adds r0, 0x98 ldr r0, [r0] str r0, [r1] ldr r0, _08078750 adds r1, r6, 0 movs r2, 0 bl sub_8045B94 ldr r0, _08078754 ldr r2, [r0] adds r0, r7, 0 adds r1, r6, 0 bl sub_80522F4 adds r0, r6, 0 bl sub_80418D4 _08078732: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0807873C: .4byte gUnknown_203B418 _08078740: .4byte 0x000135cc _08078744: .4byte gUnknown_80F4EA8 _08078748: .4byte 0x00017b30 _0807874C: .4byte 0x00017b3c _08078750: .4byte gUnknown_202DF98 _08078754: .4byte gUnknown_80FB01C thumb_func_end sub_8078678 thumb_func_start sub_8078758 sub_8078758: push {r4-r6,lr} adds r5, r0, 0 adds r4, r1, 0 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080787DA adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x1 bl sub_80716E8 lsls r0, 24 cmp r0, 0 bne _080787DA ldr r6, [r4, 0x70] ldr r0, _080787BC adds r1, r4, 0 movs r2, 0 bl sub_8045B94 adds r1, r6, 0 adds r1, 0xBC ldrb r0, [r1] cmp r0, 0x5 beq _080787C8 movs r0, 0x5 strb r0, [r1] ldr r1, _080787C0 adds r0, r4, 0 movs r2, 0x1 bl sub_808417C adds r0, 0x1 adds r1, r6, 0 adds r1, 0xBD strb r0, [r1] adds r0, r4, 0 bl nullsub_73 ldr r0, _080787C4 ldr r2, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_80522F4 b _080787D4 .align 2, 0 _080787BC: .4byte gUnknown_202DF98 _080787C0: .4byte gUnknown_80F4ED8 _080787C4: .4byte gUnknown_80FB9F0 _080787C8: ldr r0, _080787E0 ldr r2, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_80522F4 _080787D4: adds r0, r4, 0 bl sub_80418D4 _080787DA: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080787E0: .4byte gUnknown_80FBA14 thumb_func_end sub_8078758 thumb_func_start sub_80787E4 sub_80787E4: push {r4-r6,lr} adds r6, r0, 0 adds r5, r1, 0 adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08078852 ldr r4, [r5, 0x70] ldr r0, _08078834 adds r1, r5, 0 movs r2, 0 bl sub_8045B94 movs r0, 0x89 lsls r0, 1 adds r4, r0 ldrb r0, [r4] cmp r0, 0x2 bhi _08078840 adds r0, 0x1 strb r0, [r4] movs r0, 0x1 bl sub_804178C adds r0, r5, 0 bl sub_8041D5C ldr r1, _08078838 ldrb r0, [r4] str r0, [r1] ldr r0, _0807883C ldr r2, [r0] adds r0, r6, 0 adds r1, r5, 0 bl sub_80522F4 b _0807884C .align 2, 0 _08078834: .4byte gUnknown_202DF98 _08078838: .4byte gUnknown_202DE30 _0807883C: .4byte gUnknown_80FBA38 _08078840: ldr r0, _08078858 ldr r2, [r0] adds r0, r6, 0 adds r1, r5, 0 bl sub_80522F4 _0807884C: adds r0, r5, 0 bl sub_80418D4 _08078852: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08078858: .4byte gUnknown_80FBA60 thumb_func_end sub_80787E4 thumb_func_start sub_807885C sub_807885C: push {r4-r7,lr} adds r6, r0, 0 adds r4, r1, 0 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080788DE ldr r0, [r4, 0x70] adds r7, r0, 0 adds r5, r7, 0 adds r5, 0xE4 ldrb r0, [r5] cmp r0, 0x2 bne _08078884 adds r0, r6, 0 adds r1, r4, 0 bl sub_807A7C8 _08078884: ldr r0, _080788C0 adds r1, r4, 0 movs r2, 0 bl sub_8045B94 ldrb r0, [r5] cmp r0, 0x1 beq _080788CC movs r0, 0x1 strb r0, [r5] ldr r1, _080788C4 adds r0, r4, 0 movs r2, 0 bl sub_808417C adds r0, 0x1 adds r1, r7, 0 adds r1, 0xE5 strb r0, [r1] adds r0, r4, 0 bl sub_8041D84 ldr r0, _080788C8 ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 b _080788D8 .align 2, 0 _080788C0: .4byte gUnknown_202DF98 _080788C4: .4byte gUnknown_80F4EE4 _080788C8: .4byte gUnknown_80FBA80 _080788CC: ldr r0, _080788E4 ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 _080788D8: adds r0, r4, 0 bl sub_80418D4 _080788DE: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080788E4: .4byte gUnknown_80FBAA0 thumb_func_end sub_807885C thumb_func_start sub_80788E8 sub_80788E8: push {r4-r6,lr} adds r6, r0, 0 adds r5, r1, 0 adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0807895E adds r0, r6, 0 adds r1, r5, 0 movs r2, 0x1 bl sub_80716E8 lsls r0, 24 cmp r0, 0 bne _0807895E adds r0, r5, 0 bl nullsub_82 ldr r4, [r5, 0x70] ldr r0, _08078940 adds r1, r5, 0 movs r2, 0 bl sub_8045B94 adds r4, 0xFD ldrb r0, [r4] cmp r0, 0 bne _0807894C ldr r1, _08078944 adds r0, r5, 0 movs r2, 0 bl sub_808417C adds r0, 0x1 strb r0, [r4] ldr r0, _08078948 ldr r2, [r0] adds r0, r6, 0 adds r1, r5, 0 bl sub_80522F4 b _08078958 .align 2, 0 _08078940: .4byte gUnknown_202DF98 _08078944: .4byte gUnknown_80F4EEC _08078948: .4byte gUnknown_80FBB04 _0807894C: ldr r0, _08078964 ldr r2, [r0] adds r0, r6, 0 adds r1, r5, 0 bl sub_80522F4 _08078958: adds r0, r5, 0 bl sub_80418D4 _0807895E: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08078964: .4byte gUnknown_80FBB28 thumb_func_end sub_80788E8 thumb_func_start sub_8078968 sub_8078968: push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 adds r4, r1, 0 ldr r5, [r4, 0x70] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08078A4A adds r0, r6, 0 adds r1, r4, 0 movs r2, 0x1 bl sub_80716E8 lsls r0, 24 cmp r0, 0 bne _08078A4A movs r3, 0 ldr r0, _080789E8 mov r8, r0 movs r1, 0x1 mov r12, r1 movs r0, 0x8C lsls r0, 1 adds r2, r5, r0 movs r7, 0x10 _080789A2: ldrb r1, [r2] mov r0, r12 ands r0, r1 cmp r0, 0 beq _080789B4 adds r0, r7, 0 ands r0, r1 cmp r0, 0 bne _080789BC _080789B4: adds r2, 0x8 adds r3, 0x1 cmp r3, 0x3 ble _080789A2 _080789BC: cmp r3, 0x4 bne _080789F0 movs r1, 0x9C lsls r1, 1 adds r0, r5, r1 ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _080789F0 mov r0, r8 adds r1, r4, 0 movs r2, 0 bl sub_8045B94 ldr r0, _080789EC ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 b _08078A4A .align 2, 0 _080789E8: .4byte gUnknown_202DF98 _080789EC: .4byte gUnknown_80FBBD4 _080789F0: mov r0, r8 adds r1, r4, 0 movs r2, 0 bl sub_8045B94 adds r1, r5, 0 adds r1, 0xBC ldrb r0, [r1] cmp r0, 0x6 beq _08078A38 movs r0, 0x6 strb r0, [r1] ldr r1, _08078A30 adds r0, r4, 0 movs r2, 0x1 bl sub_808417C adds r0, 0x1 adds r1, r5, 0 adds r1, 0xBD strb r0, [r1] adds r0, r4, 0 bl nullsub_83 ldr r0, _08078A34 ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 b _08078A44 .align 2, 0 _08078A30: .4byte gUnknown_80F4EF4 _08078A34: .4byte gUnknown_80FBB94 _08078A38: ldr r0, _08078A54 ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 _08078A44: adds r0, r4, 0 bl sub_80418D4 _08078A4A: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08078A54: .4byte gUnknown_80FBBB8 thumb_func_end sub_8078968 thumb_func_start sub_8078A58 sub_8078A58: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x14 mov r8, r0 adds r6, r1, 0 adds r7, r2, 0 adds r5, r3, 0 adds r0, r6, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08078B4A ldr r4, [r6, 0x70] cmp r5, 0 beq _08078AE0 mov r0, sp adds r1, r5, 0 bl sub_80943A0 ldr r2, [sp] movs r0, 0xA0 lsls r0, 1 adds r5, r4, r0 ldr r7, [r5] add r0, sp, 0x4 adds r1, r7, 0 bl sub_80942C0 ldr r2, [sp, 0x4] str r2, [r5] movs r0, 0x9E lsls r0, 1 adds r4, r0 ldr r1, [r4] add r0, sp, 0x8 bl sub_8094318 ldr r0, [sp, 0x8] str r0, [r4] ldr r0, _08078AD0 adds r1, r6, 0 movs r2, 0 bl sub_8045B94 adds r0, r7, 0 bl sub_8094450 adds r4, r0, 0 ldr r0, [r5] bl sub_8094450 cmp r4, r0 beq _08078AD8 adds r0, r6, 0 bl sub_8041D9C ldr r0, _08078AD4 b _08078B22 .align 2, 0 _08078AD0: .4byte gUnknown_202DF98 _08078AD4: .4byte gUnknown_80FBD9C _08078AD8: ldr r0, _08078ADC b _08078B22 .align 2, 0 _08078ADC: .4byte gUnknown_80FBE3C _08078AE0: add r0, sp, 0xC adds r1, r7, 0 bl sub_80943A0 ldr r2, [sp, 0xC] movs r0, 0x9E lsls r0, 1 adds r4, r0 ldr r7, [r4] add r0, sp, 0x10 adds r1, r7, 0 bl sub_80942C0 ldr r0, [sp, 0x10] str r0, [r4] ldr r0, _08078B30 adds r1, r6, 0 movs r2, 0 bl sub_8045B94 adds r0, r7, 0 bl sub_8094450 adds r5, r0, 0 ldr r0, [r4] bl sub_8094450 cmp r5, r0 beq _08078B38 adds r0, r6, 0 bl nullsub_84 ldr r0, _08078B34 _08078B22: ldr r2, [r0] mov r0, r8 adds r1, r6, 0 bl sub_80522F4 b _08078B44 .align 2, 0 _08078B30: .4byte gUnknown_202DF98 _08078B34: .4byte gUnknown_80FBD78 _08078B38: ldr r0, _08078B58 ldr r2, [r0] mov r0, r8 adds r1, r6, 0 bl sub_80522F4 _08078B44: adds r0, r6, 0 bl sub_80418D4 _08078B4A: add sp, 0x14 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08078B58: .4byte gUnknown_80FBE40 thumb_func_end sub_8078A58 thumb_func_start sub_8078B5C sub_8078B5C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x28 mov r9, r0 adds r6, r1, 0 mov r10, r2 str r3, [sp, 0x1C] ldr r0, [sp, 0x48] lsls r0, 24 lsrs r0, 24 mov r8, r0 adds r0, r6, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _08078B86 b _08078D78 _08078B86: ldr r7, [r6, 0x70] ldrb r0, [r7, 0x7] cmp r0, 0 bne _08078BB8 adds r0, r6, 0 movs r1, 0x1B bl sub_8046CB0 lsls r0, 24 cmp r0, 0 beq _08078BB8 mov r0, r8 cmp r0, 0 bne _08078BA4 b _08078D78 _08078BA4: ldr r0, _08078BB4 ldr r2, [r0] mov r0, r9 adds r1, r6, 0 bl sub_80522F4 b _08078D78 .align 2, 0 _08078BB4: .4byte gUnknown_80FBEA0 _08078BB8: movs r5, 0 ldr r1, [sp, 0x1C] cmp r1, 0 beq _08078BE8 movs r1, 0x9E lsls r1, 1 adds r0, r7, r1 ldr r0, [r0] bl sub_8094450 adds r4, r0, 0 movs r1, 0xA0 lsls r1, 1 adds r0, r7, r1 ldr r0, [r0] bl sub_8094450 cmp r4, r0 blt _08078BE0 movs r5, 0x1 _08078BE0: ldr r0, _08078C8C cmp r10, r0 bne _08078BE8 movs r5, 0x1 _08078BE8: cmp r5, 0 beq _08078CC0 movs r0, 0xA0 lsls r0, 1 adds r5, r7, r0 ldr r1, [r5] str r1, [sp, 0x20] subs r0, 0x4 adds r0, r7 mov r10, r0 ldr r0, [r0] bl sub_8094450 adds r4, r0, 0 ldr r0, [r5] bl sub_8094450 movs r1, 0 str r1, [sp, 0x24] cmp r4, r0 bne _08078C16 movs r0, 0x1 str r0, [sp, 0x24] _08078C16: mov r0, sp ldr r1, [sp, 0x1C] bl sub_80943A0 ldr r2, [sp] ldr r1, [r5] add r0, sp, 0x4 bl sub_8094268 ldr r4, [sp, 0x4] str r4, [r5] add r0, sp, 0x8 movs r1, 0xC8 bl sub_80943A0 ldr r2, [sp, 0x8] add r0, sp, 0xC adds r1, r4, 0 bl sub_8094318 ldr r0, [sp, 0xC] str r0, [r5] mov r1, r10 str r0, [r1] ldr r0, [sp, 0x24] cmp r0, 0 bne _08078C5E mov r1, r8 cmp r1, 0 beq _08078C5E ldr r0, _08078C90 ldr r2, [r0] mov r0, r9 adds r1, r6, 0 bl sub_80522F4 _08078C5E: ldr r0, [sp, 0x20] bl sub_8094450 adds r4, r0, 0 movs r1, 0xA0 lsls r1, 1 adds r0, r7, r1 ldr r0, [r0] bl sub_8094450 cmp r4, r0 bne _08078C9C ldr r0, _08078C94 adds r1, r6, 0 movs r2, 0 bl sub_8045B94 mov r0, r8 cmp r0, 0 beq _08078D72 ldr r0, _08078C98 b _08078D4E .align 2, 0 _08078C8C: .4byte 0x000003e7 _08078C90: .4byte gUnknown_80FBE64 _08078C94: .4byte gUnknown_202DF98 _08078C98: .4byte gUnknown_80FBDF0 _08078C9C: adds r0, r6, 0 bl sub_8041DB0 ldr r0, _08078CB8 adds r1, r6, 0 movs r2, 0 bl sub_8045B94 mov r1, r8 cmp r1, 0 beq _08078D72 ldr r0, _08078CBC b _08078D4E .align 2, 0 _08078CB8: .4byte gUnknown_202DF98 _08078CBC: .4byte gUnknown_80FBDC4 _08078CC0: movs r0, 0x9E lsls r0, 1 adds r5, r7, r0 ldr r4, [r5] add r0, sp, 0x10 mov r1, r10 bl sub_80943A0 ldr r2, [sp, 0x10] ldr r1, [r5] add r0, sp, 0x14 bl sub_8094268 ldr r1, [sp, 0x14] str r1, [r5] movs r0, 0xA0 lsls r0, 1 adds r7, r0 ldr r2, [r7] add r0, sp, 0x18 bl sub_8094318 ldr r0, [sp, 0x18] str r0, [r5] ldr r0, _08078D28 cmp r10, r0 bne _08078CFA ldr r0, [r7] str r0, [r5] _08078CFA: adds r0, r6, 0 bl nullsub_85 ldr r0, _08078D2C adds r1, r6, 0 movs r2, 0 bl sub_8045B94 adds r0, r4, 0 bl sub_8094450 adds r4, r0, 0 ldr r0, [r5] bl sub_8094450 cmp r4, r0 bne _08078D34 mov r1, r8 cmp r1, 0 beq _08078D72 ldr r0, _08078D30 b _08078D4E .align 2, 0 _08078D28: .4byte 0x000003e7 _08078D2C: .4byte gUnknown_202DF98 _08078D30: .4byte gUnknown_80FBE14 _08078D34: ldr r0, [r5] bl sub_8094450 adds r4, r0, 0 ldr r0, [r7] bl sub_8094450 cmp r4, r0 blt _08078D60 mov r0, r8 cmp r0, 0 beq _08078D72 ldr r0, _08078D5C _08078D4E: ldr r2, [r0] mov r0, r9 adds r1, r6, 0 bl sub_80522F4 b _08078D72 .align 2, 0 _08078D5C: .4byte gUnknown_80FBE64 _08078D60: mov r1, r8 cmp r1, 0 beq _08078D72 ldr r0, _08078D88 ldr r2, [r0] mov r0, r9 adds r1, r6, 0 bl sub_80522F4 _08078D72: adds r0, r6, 0 bl sub_80418D4 _08078D78: add sp, 0x28 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08078D88: .4byte gUnknown_80FBE84 thumb_func_end sub_8078B5C thumb_func_start sub_8078D8C sub_8078D8C: push {r4-r6,lr} adds r5, r0, 0 adds r4, r1, 0 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08078E0E adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x1 bl sub_80716E8 lsls r0, 24 cmp r0, 0 bne _08078E0E ldr r6, [r4, 0x70] ldr r0, _08078DF0 adds r1, r4, 0 movs r2, 0 bl sub_8045B94 adds r1, r6, 0 adds r1, 0xEC ldrb r0, [r1] cmp r0, 0x1 beq _08078DFC movs r0, 0x1 strb r0, [r1] ldr r1, _08078DF4 adds r0, r4, 0 movs r2, 0x1 bl sub_808417C adds r0, 0x1 adds r1, r6, 0 adds r1, 0xED strb r0, [r1] adds r0, r4, 0 bl nullsub_86 ldr r0, _08078DF8 ldr r2, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_80522F4 b _08078E08 .align 2, 0 _08078DF0: .4byte gUnknown_202DF98 _08078DF4: .4byte gUnknown_80F4F1C _08078DF8: .4byte gUnknown_80FBF68 _08078DFC: ldr r0, _08078E14 ldr r2, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_80522F4 _08078E08: adds r0, r4, 0 bl sub_80418D4 _08078E0E: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08078E14: .4byte gUnknown_80FBF84 thumb_func_end sub_8078D8C thumb_func_start sub_8078E18 sub_8078E18: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r4, _08078E48 add sp, r4 mov r10, r0 adds r5, r1, 0 adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08078F2E ldr r7, [r5, 0x70] adds r0, r7, 0 adds r0, 0xE4 ldrb r0, [r0] cmp r0, 0x2 bne _08078E50 ldr r0, _08078E4C b _08078EC0 .align 2, 0 _08078E48: .4byte 0xfffffe00 _08078E4C: .4byte gUnknown_80FBF04 _08078E50: ldr r0, _08078ECC adds r1, r5, 0 movs r2, 0 bl sub_8045B94 mov r0, sp movs r1, 0 bl sub_803D870 mov r8, r0 cmp r0, 0 beq _08078EBE movs r0, 0 mov r9, r0 movs r6, 0 _08078E6E: mov r0, r8 bl sub_8084100 lsls r0, 3 add r0, sp bl sub_808E9B8 adds r1, r0, 0 lsls r1, 16 asrs r1, 16 adds r0, r5, 0 bl sub_8069F54 lsls r0, 16 asrs r4, r0, 16 movs r1, 0x4 ldrsh r0, [r7, r1] cmp r4, r0 beq _08078EAE adds r0, r4, 0 movs r1, 0x1 bl sub_806AA0C lsls r0, 24 cmp r0, 0 beq _08078EAE adds r0, r4, 0 bl sub_80687D0 mov r9, r0 cmp r0, 0 bne _08078EB4 _08078EAE: adds r6, 0x1 cmp r6, 0x13 ble _08078E6E _08078EB4: cmp r6, 0x14 beq _08078EBE mov r2, r9 cmp r2, 0 bne _08078ED4 _08078EBE: ldr r0, _08078ED0 _08078EC0: ldr r2, [r0] mov r0, r10 adds r1, r5, 0 bl sub_80522F4 b _08078F2E .align 2, 0 _08078ECC: .4byte gUnknown_202DF98 _08078ED0: .4byte gUnknown_80FBEE4 _08078ED4: strh r4, [r7, 0x4] mov r0, r9 str r0, [r5, 0x64] adds r1, r7, 0 adds r1, 0xE4 movs r0, 0x2 strb r0, [r1] ldr r1, _08078F44 adds r0, r5, 0 movs r2, 0x1 bl sub_808417C adds r0, 0x1 adds r1, r7, 0 adds r1, 0xE5 strb r0, [r1] adds r0, r5, 0 bl sub_806CF98 adds r0, r5, 0 bl nullsub_87 adds r0, r5, 0 bl sub_806CEBC adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl sub_806CCB4 ldr r0, _08078F48 movs r2, 0x4 ldrsh r1, [r7, r2] bl sub_808D908 ldr r0, _08078F4C ldr r2, [r0] mov r0, r10 adds r1, r5, 0 bl sub_80522F4 adds r0, r5, 0 bl sub_80418D4 _08078F2E: movs r3, 0x80 lsls r3, 2 add sp, r3 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08078F44: .4byte gUnknown_80F4EFC _08078F48: .4byte gUnknown_202DFE8 _08078F4C: .4byte gUnknown_80FBEC0 thumb_func_end sub_8078E18 thumb_func_start sub_8078F50 sub_8078F50: push {r4-r7,lr} adds r6, r0, 0 adds r4, r1, 0 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08078FD2 ldr r0, [r4, 0x70] adds r7, r0, 0 adds r5, r7, 0 adds r5, 0xE4 ldrb r0, [r5] cmp r0, 0x2 bne _08078F78 adds r0, r6, 0 adds r1, r4, 0 bl sub_807A7C8 _08078F78: ldr r0, _08078FB4 adds r1, r4, 0 movs r2, 0 bl sub_8045B94 ldrb r0, [r5] cmp r0, 0x3 beq _08078FC0 movs r0, 0x3 strb r0, [r5] ldr r1, _08078FB8 adds r0, r4, 0 movs r2, 0 bl sub_808417C adds r0, 0x1 adds r1, r7, 0 adds r1, 0xE5 strb r0, [r1] adds r0, r4, 0 bl nullsub_88 ldr r0, _08078FBC ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 b _08078FCC .align 2, 0 _08078FB4: .4byte gUnknown_202DF98 _08078FB8: .4byte gUnknown_80F4F04 _08078FBC: .4byte gUnknown_80FBF28 _08078FC0: ldr r0, _08078FD8 ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 _08078FCC: adds r0, r4, 0 bl sub_80418D4 _08078FD2: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08078FD8: .4byte gUnknown_80FBF50 thumb_func_end sub_8078F50 thumb_func_start sub_8078FDC sub_8078FDC: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r6, r0, 0 adds r4, r1, 0 lsls r2, 16 asrs r7, r2, 16 mov r10, r7 movs r0, 0 mov r8, r0 mov r9, r0 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080790B6 adds r0, r6, 0 adds r1, r4, 0 movs r2, 0x1 bl sub_80716E8 lsls r0, 24 cmp r0, 0 bne _080790B6 ldr r5, [r4, 0x70] ldr r0, _08079064 adds r1, r4, 0 movs r2, 0 bl sub_8045B94 movs r1, 0x26 ldrsh r0, [r5, r1] cmp r0, 0xA ble _0807902E movs r0, 0xA strh r0, [r5, 0x26] movs r0, 0x1 mov r8, r0 _0807902E: mov r1, r8 cmp r1, 0 beq _0807904C adds r0, r4, 0 adds r1, r7, 0 bl sub_8041DD8 ldr r0, _08079068 ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 movs r0, 0x1 mov r9, r0 _0807904C: adds r5, 0xF5 ldrb r0, [r5] cmp r0, 0 beq _08079070 ldr r0, _0807906C ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 b _080790B6 .align 2, 0 _08079064: .4byte gUnknown_202DF98 _08079068: .4byte gUnknown_80FC000 _0807906C: .4byte gUnknown_80FBFB8 _08079070: mov r1, r9 cmp r1, 0 bne _0807907E adds r0, r4, 0 mov r1, r10 bl sub_8041DD8 _0807907E: adds r0, r4, 0 movs r1, 0xE bl sub_8071858 lsls r0, 24 cmp r0, 0 bne _080790A0 ldr r0, _0807909C ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 b _080790B0 .align 2, 0 _0807909C: .4byte gUnknown_80FBFD8 _080790A0: movs r0, 0x1 strb r0, [r5] ldr r0, _080790C4 ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 _080790B0: adds r0, r4, 0 bl sub_80418D4 _080790B6: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080790C4: .4byte gUnknown_80FBF9C thumb_func_end sub_8078FDC thumb_func_start sub_80790C8 sub_80790C8: push {r4-r6,lr} adds r5, r0, 0 adds r4, r1, 0 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08079134 adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x1 bl sub_80716E8 lsls r0, 24 cmp r0, 0 bne _08079134 ldr r6, _0807911C ldr r0, [r6] ldr r1, _08079120 adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _08079128 adds r0, r4, 0 bl nullsub_89 ldr r0, [r6] ldr r1, _08079120 adds r0, r1 movs r1, 0x1 strb r1, [r0] adds r0, r4, 0 bl sub_80418D4 ldr r0, _08079124 ldr r2, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_80522F4 b _08079134 .align 2, 0 _0807911C: .4byte gUnknown_203B418 _08079120: .4byte 0x00000676 _08079124: .4byte gUnknown_80FC028 _08079128: ldr r0, _0807913C ldr r2, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_80522F4 _08079134: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0807913C: .4byte gUnknown_80FC054 thumb_func_end sub_80790C8 thumb_func_start sub_8079140 sub_8079140: push {r4-r6,lr} adds r5, r0, 0 adds r4, r1, 0 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080791CE adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x1 bl sub_80716E8 lsls r0, 24 cmp r0, 0 bne _080791CE ldr r6, [r4, 0x70] ldr r0, _080791B0 adds r1, r4, 0 movs r2, 0 bl sub_8045B94 adds r1, r6, 0 adds r1, 0xE8 ldrb r0, [r1] cmp r0, 0x1 beq _080791BC movs r0, 0x1 strb r0, [r1] ldr r1, _080791B4 adds r0, r4, 0 movs r2, 0x1 bl sub_808417C adds r0, 0x1 adds r1, r6, 0 adds r1, 0xE9 strb r0, [r1] adds r0, r4, 0 bl sub_8041E0C ldr r0, _080791B8 ldr r2, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_80522F4 movs r0, 0x31 bl sub_803E46C bl sub_8049ED4 bl sub_8040A84 b _080791C8 .align 2, 0 _080791B0: .4byte gUnknown_202DF98 _080791B4: .4byte gUnknown_80F4F08 _080791B8: .4byte gUnknown_80FB7F4 _080791BC: ldr r0, _080791D4 ldr r2, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_80522F4 _080791C8: adds r0, r4, 0 bl sub_80418D4 _080791CE: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080791D4: .4byte gUnknown_80FB810 thumb_func_end sub_8079140 thumb_func_start sub_80791D8 sub_80791D8: push {r4-r7,lr} adds r5, r0, 0 adds r4, r1, 0 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08079266 adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x1 bl sub_80716E8 lsls r0, 24 cmp r0, 0 bne _08079266 ldr r7, [r4, 0x70] ldr r0, _08079248 adds r1, r4, 0 movs r2, 0 bl sub_8045B94 adds r6, r7, 0 adds r6, 0xE8 ldrb r0, [r6] cmp r0, 0x2 beq _08079254 adds r0, r4, 0 bl sub_8041E1C ldr r0, _0807924C ldr r2, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_80522F4 movs r0, 0x2 strb r0, [r6] ldr r1, _08079250 adds r0, r4, 0 movs r2, 0x1 bl sub_808417C adds r0, 0x1 adds r1, r7, 0 adds r1, 0xE9 strb r0, [r1] movs r0, 0x1 bl sub_803F580 bl sub_8049ED4 bl sub_8040A84 b _08079260 .align 2, 0 _08079248: .4byte gUnknown_202DF98 _0807924C: .4byte gUnknown_80FB834 _08079250: .4byte gUnknown_80F4F0C _08079254: ldr r0, _0807926C ldr r2, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_80522F4 _08079260: adds r0, r4, 0 bl sub_80418D4 _08079266: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0807926C: .4byte gUnknown_80FB85C thumb_func_end sub_80791D8 thumb_func_start sub_8079270 sub_8079270: push {r4-r6,lr} adds r6, r0, 0 adds r4, r1, 0 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080792EE ldr r5, [r4, 0x70] ldr r0, _080792D0 adds r1, r4, 0 movs r2, 0 bl sub_8045B94 adds r1, r5, 0 adds r1, 0xE8 ldrb r0, [r1] cmp r0, 0x3 beq _080792DC movs r0, 0x3 strb r0, [r1] ldr r1, _080792D4 adds r0, r4, 0 movs r2, 0 bl sub_808417C adds r0, 0x1 adds r1, r5, 0 adds r1, 0xE9 strb r0, [r1] adds r0, r4, 0 bl sub_8041E3C ldr r0, _080792D8 ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 movs r0, 0x31 bl sub_803E46C bl sub_8049ED4 bl sub_8040A84 b _080792E8 .align 2, 0 _080792D0: .4byte gUnknown_202DF98 _080792D4: .4byte gUnknown_80F4F10 _080792D8: .4byte gUnknown_80FB880 _080792DC: ldr r0, _080792F4 ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 _080792E8: adds r0, r4, 0 bl sub_80418D4 _080792EE: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080792F4: .4byte gUnknown_80FB89C thumb_func_end sub_8079270 thumb_func_start sub_80792F8 sub_80792F8: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 mov r10, r0 adds r6, r1, 0 mov r9, r2 movs r0, 0 mov r8, r0 adds r0, r6, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0807939A ldr r0, [r6, 0x70] movs r1, 0x8C lsls r1, 1 adds r4, r0, r1 adds r5, r4, 0 movs r7, 0x3 _08079326: ldrb r1, [r4] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0807935E ldrb r0, [r4, 0x4] str r0, [sp] adds r0, r5, 0 bl sub_8092BF4 str r0, [sp, 0x4] ldr r1, [sp] ldr r0, [sp, 0x4] cmp r1, r0 bge _0807935E ldr r0, [sp] add r0, r9 str r0, [sp] ldr r1, [sp] ldr r0, [sp, 0x4] cmp r1, r0 ble _08079356 ldr r0, [sp, 0x4] str r0, [sp] _08079356: ldr r0, [sp] strb r0, [r4, 0x4] movs r0, 0x1 mov r8, r0 _0807935E: adds r4, 0x8 adds r5, 0x8 subs r7, 0x1 cmp r7, 0 bge _08079326 mov r1, r8 cmp r1, 0 beq _08079388 adds r0, r6, 0 bl sub_8041E4C ldr r0, _08079384 ldr r2, [r0] mov r0, r10 adds r1, r6, 0 bl sub_80522F4 b _08079394 .align 2, 0 _08079384: .4byte gUnknown_80FDBD0 _08079388: ldr r0, _080793AC ldr r2, [r0] mov r0, r10 adds r1, r6, 0 bl sub_80522F4 _08079394: adds r0, r6, 0 bl sub_80418D4 _0807939A: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080793AC: .4byte gUnknown_80FDBF0 thumb_func_end sub_80792F8 thumb_func_start sub_80793B0 sub_80793B0: push {r4-r6,lr} adds r6, r0, 0 adds r4, r1, 0 adds r5, r2, 0 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08079416 ldr r0, _080793FC adds r1, r4, 0 movs r2, 0 bl sub_8045B94 ldr r0, [r4, 0x70] adds r1, r0, 0 ldrb r0, [r1, 0x14] adds r2, r0, 0 adds r0, r2, r5 cmp r0, 0xFE ble _080793DE movs r0, 0xFF _080793DE: strb r0, [r1, 0x14] lsls r0, 24 lsrs r0, 24 cmp r2, r0 bcs _08079404 adds r0, r4, 0 bl sub_8041E60 ldr r0, _08079400 ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 b _08079410 .align 2, 0 _080793FC: .4byte gUnknown_202DF98 _08079400: .4byte gUnknown_80FC33C _08079404: ldr r0, _0807941C ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 _08079410: adds r0, r4, 0 bl sub_80418D4 _08079416: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0807941C: .4byte gUnknown_80FC360 thumb_func_end sub_80793B0 thumb_func_start sub_8079420 sub_8079420: push {r4-r6,lr} adds r6, r0, 0 adds r4, r1, 0 adds r5, r2, 0 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08079486 ldr r0, _0807946C adds r1, r4, 0 movs r2, 0 bl sub_8045B94 ldr r0, [r4, 0x70] adds r1, r0, 0 ldrb r0, [r1, 0x15] adds r2, r0, 0 adds r0, r2, r5 cmp r0, 0xFE ble _0807944E movs r0, 0xFF _0807944E: strb r0, [r1, 0x15] lsls r0, 24 lsrs r0, 24 cmp r2, r0 bcs _08079474 adds r0, r4, 0 bl sub_8041E74 ldr r0, _08079470 ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 b _08079480 .align 2, 0 _0807946C: .4byte gUnknown_202DF98 _08079470: .4byte gUnknown_80FC388 _08079474: ldr r0, _0807948C ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 _08079480: adds r0, r4, 0 bl sub_80418D4 _08079486: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0807948C: .4byte gUnknown_80FC3B4 thumb_func_end sub_8079420 thumb_func_start sub_8079490 sub_8079490: push {r4-r6,lr} adds r6, r0, 0 adds r4, r1, 0 adds r5, r2, 0 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080794F6 ldr r0, _080794DC adds r1, r4, 0 movs r2, 0 bl sub_8045B94 ldr r0, [r4, 0x70] adds r1, r0, 0 ldrb r0, [r1, 0x16] adds r2, r0, 0 adds r0, r2, r5 cmp r0, 0xFE ble _080794BE movs r0, 0xFF _080794BE: strb r0, [r1, 0x16] lsls r0, 24 lsrs r0, 24 cmp r2, r0 bcs _080794E4 adds r0, r4, 0 bl sub_8041E84 ldr r0, _080794E0 ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 b _080794F0 .align 2, 0 _080794DC: .4byte gUnknown_202DF98 _080794E0: .4byte gUnknown_80FC3D8 _080794E4: ldr r0, _080794FC ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 _080794F0: adds r0, r4, 0 bl sub_80418D4 _080794F6: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080794FC: .4byte gUnknown_80FC3FC thumb_func_end sub_8079490 thumb_func_start sub_8079500 sub_8079500: push {r4-r6,lr} adds r6, r0, 0 adds r4, r1, 0 adds r5, r2, 0 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08079566 ldr r0, _0807954C adds r1, r4, 0 movs r2, 0 bl sub_8045B94 ldr r0, [r4, 0x70] adds r1, r0, 0 ldrb r0, [r1, 0x17] adds r2, r0, 0 adds r0, r2, r5 cmp r0, 0xFE ble _0807952E movs r0, 0xFF _0807952E: strb r0, [r1, 0x17] lsls r0, 24 lsrs r0, 24 cmp r2, r0 bcs _08079554 adds r0, r4, 0 bl sub_8041E94 ldr r0, _08079550 ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 b _08079560 .align 2, 0 _0807954C: .4byte gUnknown_202DF98 _08079550: .4byte gUnknown_80FC428 _08079554: ldr r0, _0807956C ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 _08079560: adds r0, r4, 0 bl sub_80418D4 _08079566: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0807956C: .4byte gUnknown_80FC454 thumb_func_end sub_8079500 thumb_func_start sub_8079570 sub_8079570: push {r4-r6,lr} adds r6, r0, 0 adds r5, r1, 0 ldr r4, [r5, 0x70] ldr r0, _080795A0 movs r2, 0 bl sub_8045B94 adds r4, 0xE0 ldrb r0, [r4] cmp r0, 0x1 beq _080795A8 movs r0, 0x1 strb r0, [r4] adds r0, r5, 0 bl sub_8041EA4 ldr r0, _080795A4 ldr r2, [r0] adds r0, r6, 0 adds r1, r5, 0 bl sub_80522F4 b _080795B4 .align 2, 0 _080795A0: .4byte gUnknown_202DFE8 _080795A4: .4byte gUnknown_80FD20C _080795A8: ldr r0, _080795C0 ldr r2, [r0] adds r0, r6, 0 adds r1, r5, 0 bl sub_80522F4 _080795B4: adds r0, r5, 0 bl sub_80418D4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080795C0: .4byte gUnknown_80FD22C thumb_func_end sub_8079570 thumb_func_start sub_80795C4 sub_80795C4: push {r4-r6,lr} adds r6, r0, 0 adds r5, r1, 0 ldr r4, [r5, 0x70] ldr r0, _080795F4 movs r2, 0 bl sub_8045B94 adds r4, 0xE0 ldrb r0, [r4] cmp r0, 0x2 beq _080795FC movs r0, 0x2 strb r0, [r4] adds r0, r5, 0 bl sub_8041EB4 ldr r0, _080795F8 ldr r2, [r0] adds r0, r6, 0 adds r1, r5, 0 bl sub_80522F4 b _08079608 .align 2, 0 _080795F4: .4byte gUnknown_202DFE8 _080795F8: .4byte gUnknown_80FD254 _080795FC: ldr r0, _08079614 ldr r2, [r0] adds r0, r6, 0 adds r1, r5, 0 bl sub_80522F4 _08079608: adds r0, r5, 0 bl sub_80418D4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08079614: .4byte gUnknown_80FD27C thumb_func_end sub_80795C4 thumb_func_start sub_8079618 sub_8079618: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} mov r9, r0 adds r7, r1, 0 mov r8, r3 lsls r2, 24 lsrs r6, r2, 24 adds r0, r7, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _08079638 b _08079752 _08079638: ldr r5, [r7, 0x70] ldr r0, _08079660 adds r1, r7, 0 movs r2, 0 bl sub_8045B94 adds r0, r5, 0 adds r0, 0xC0 ldrb r0, [r0] cmp r0, r6 bne _08079668 cmp r6, 0xC bne _08079668 ldr r0, _08079664 ldr r2, [r0] mov r0, r9 adds r1, r7, 0 bl sub_80522F4 b _08079752 .align 2, 0 _08079660: .4byte gUnknown_202DF98 _08079664: .4byte gUnknown_80FC074 _08079668: adds r0, r5, 0 adds r0, 0xC0 strb r6, [r0] movs r4, 0 movs r1, 0x8C lsls r1, 1 adds r0, r5, r1 subs r2, r6, 0x7 b _0807968A _0807967A: adds r4, 0x1 cmp r4, 0x3 bgt _08079694 lsls r0, r4, 3 movs r1, 0x8C lsls r1, 1 adds r0, r1 adds r0, r5, r0 _0807968A: cmp r0, r8 bne _0807967A adds r0, r5, 0 adds r0, 0xC2 strb r4, [r0] _08079694: movs r1, 0xA5 lsls r1, 1 adds r0, r5, r1 movs r1, 0x1 strb r1, [r0] movs r4, 0 lsls r0, r2, 24 lsrs r0, 24 cmp r0, 0x1 bhi _080796B2 adds r0, r5, 0 adds r0, 0xFF strb r1, [r0] movs r4, 0x1 b _080796C6 _080796B2: adds r0, r6, 0 subs r0, 0x9 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _080796C6 adds r1, r5, 0 adds r1, 0xFF movs r0, 0x2 strb r0, [r1] _080796C6: cmp r6, 0x1 bne _080796E4 ldr r1, _08079718 adds r0, r7, 0 movs r2, 0 bl sub_808417C adds r0, 0x1 adds r2, r5, 0 adds r2, 0xC1 movs r1, 0 strb r0, [r2] adds r0, r5, 0 adds r0, 0xA0 str r1, [r0] _080796E4: cmp r6, 0xC bne _080796FA ldr r1, _0807971C adds r0, r7, 0 movs r2, 0 bl sub_808417C adds r0, 0x1 adds r1, r5, 0 adds r1, 0xC1 strb r0, [r1] _080796FA: adds r0, r7, 0 adds r1, r4, 0 bl sub_8041BD0 mov r0, r9 adds r1, r7, 0 ldr r2, [sp, 0x1C] bl sub_80522F4 adds r0, r7, 0 bl sub_80418D4 movs r4, 0 ldr r6, _08079720 b _0807972C .align 2, 0 _08079718: .4byte gUnknown_80F4E9C _0807971C: .4byte gUnknown_80F4EA0 _08079720: .4byte 0x0000c7ff _08079724: movs r0, 0x53 bl sub_803E46C adds r4, 0x1 _0807972C: ldr r0, _08079760 cmp r4, r0 bgt _08079752 movs r1, 0x1 adds r0, r5, 0 adds r0, 0xFF ldrb r0, [r0] cmp r0, 0x1 bne _0807974E movs r1, 0xBA lsls r1, 1 adds r0, r5, r1 ldr r0, [r0] movs r1, 0 cmp r0, r6 ble _0807974E movs r1, 0x1 _0807974E: cmp r1, 0 beq _08079724 _08079752: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08079760: .4byte 0x0000018f thumb_func_end sub_8079618 thumb_func_start sub_8079764 sub_8079764: push {r4,lr} adds r4, r0, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0807979A ldr r2, [r4, 0x70] adds r3, r2, 0 adds r3, 0xC0 ldrb r0, [r3] cmp r0, 0x1 beq _08079794 cmp r0, 0xC beq _08079794 movs r1, 0 strb r1, [r3] movs r3, 0xA5 lsls r3, 1 adds r0, r2, r3 strb r1, [r0] adds r0, r2, 0 adds r0, 0xFF strb r1, [r0] _08079794: adds r0, r4, 0 bl sub_80418D4 _0807979A: pop {r4} pop {r0} bx r0 thumb_func_end sub_8079764 thumb_func_start sub_80797A0 sub_80797A0: push {r4-r7,lr} mov r7, r8 push {r7} mov r8, r0 adds r4, r1, 0 lsls r2, 24 lsrs r7, r2, 24 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08079822 ldr r6, [r4, 0x70] ldr r0, _080797E0 adds r1, r4, 0 movs r2, 0 bl sub_8045B94 adds r5, r6, 0 adds r5, 0xC4 ldrb r0, [r5] cmp r0, r7 bne _080797E8 ldr r0, _080797E4 ldr r2, [r0] mov r0, r8 adds r1, r4, 0 bl sub_80522F4 b _08079822 .align 2, 0 _080797E0: .4byte gUnknown_202DF98 _080797E4: .4byte gUnknown_80FB10C _080797E8: adds r0, r4, 0 bl nullsub_57 ldrb r0, [r5] cmp r0, 0x4 beq _0807980A cmp r0, 0xA beq _0807980A ldr r1, _0807982C adds r0, r4, 0 movs r2, 0 bl sub_808417C adds r0, 0x1 adds r1, r6, 0 adds r1, 0xC5 strb r0, [r1] _0807980A: adds r0, r6, 0 adds r0, 0xC4 strb r7, [r0] ldr r0, _08079830 ldr r2, [r0] mov r0, r8 adds r1, r4, 0 bl sub_80522F4 adds r0, r4, 0 bl sub_80418D4 _08079822: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0807982C: .4byte gUnknown_80F4E98 _08079830: .4byte gUnknown_80FB0E0 thumb_func_end sub_80797A0 thumb_func_start sub_8079834 sub_8079834: push {r4-r6,lr} adds r6, r0, 0 adds r4, r1, 0 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080798A6 ldr r5, [r4, 0x70] ldr r0, _08079888 adds r1, r4, 0 movs r2, 0 bl sub_8045B94 adds r1, r5, 0 adds r1, 0xC4 ldrb r0, [r1] cmp r0, 0x2 beq _08079894 movs r0, 0x2 strb r0, [r1] ldr r1, _0807988C adds r0, r4, 0 movs r2, 0 bl sub_808417C adds r0, 0x1 adds r1, r5, 0 adds r1, 0xC5 strb r0, [r1] adds r0, r4, 0 bl nullsub_58 ldr r0, _08079890 ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 b _080798A0 .align 2, 0 _08079888: .4byte gUnknown_202DF98 _0807988C: .4byte gUnknown_80F4E88 _08079890: .4byte gUnknown_80FB048 _08079894: ldr r0, _080798AC ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 _080798A0: adds r0, r4, 0 bl sub_80418D4 _080798A6: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080798AC: .4byte gUnknown_80FB074 thumb_func_end sub_8079834 thumb_func_start sub_80798B0 sub_80798B0: push {r4-r6,lr} adds r6, r0, 0 adds r4, r1, 0 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08079922 ldr r5, [r4, 0x70] ldr r0, _08079904 adds r1, r4, 0 movs r2, 0 bl sub_8045B94 adds r1, r5, 0 adds r1, 0xC4 ldrb r0, [r1] cmp r0, 0xE beq _08079910 movs r0, 0xE strb r0, [r1] ldr r1, _08079908 adds r0, r4, 0 movs r2, 0 bl sub_808417C adds r0, 0x1 adds r1, r5, 0 adds r1, 0xC5 strb r0, [r1] adds r0, r4, 0 bl nullsub_59 ldr r0, _0807990C ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 b _0807991C .align 2, 0 _08079904: .4byte gUnknown_202DF98 _08079908: .4byte gUnknown_80F4E8C _0807990C: .4byte gUnknown_80FB09C _08079910: ldr r0, _08079928 ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 _0807991C: adds r0, r4, 0 bl sub_80418D4 _08079922: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08079928: .4byte gUnknown_80FB0C4 thumb_func_end sub_80798B0 thumb_func_start sub_807992C sub_807992C: push {r4-r6,lr} adds r6, r0, 0 adds r4, r1, 0 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0807999E ldr r5, [r4, 0x70] ldr r0, _08079980 adds r1, r4, 0 movs r2, 0 bl sub_8045B94 adds r1, r5, 0 adds r1, 0xC4 ldrb r0, [r1] cmp r0, 0x6 beq _0807998C movs r0, 0x6 strb r0, [r1] ldr r1, _08079984 adds r0, r4, 0 movs r2, 0 bl sub_808417C adds r0, 0x1 adds r1, r5, 0 adds r1, 0xC5 strb r0, [r1] adds r0, r4, 0 bl sub_8041B34 ldr r0, _08079988 ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 b _08079998 .align 2, 0 _08079980: .4byte gUnknown_202DF98 _08079984: .4byte gUnknown_80F4EB4 _08079988: .4byte gUnknown_80FAE1C _0807998C: ldr r0, _080799A4 ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 _08079998: adds r0, r4, 0 bl sub_80418D4 _0807999E: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080799A4: .4byte gUnknown_80FAE3C thumb_func_end sub_807992C thumb_func_start sub_80799A8 sub_80799A8: push {r4-r6,lr} adds r6, r0, 0 adds r4, r1, 0 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08079A1A ldr r5, [r4, 0x70] ldr r0, _080799FC adds r1, r4, 0 movs r2, 0 bl sub_8045B94 adds r1, r5, 0 adds r1, 0xC4 ldrb r0, [r1] cmp r0, 0x5 beq _08079A08 movs r0, 0x5 strb r0, [r1] ldr r1, _08079A00 adds r0, r4, 0 movs r2, 0 bl sub_808417C adds r0, 0x1 adds r1, r5, 0 adds r1, 0xC5 strb r0, [r1] adds r0, r4, 0 bl nullsub_60 ldr r0, _08079A04 ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 b _08079A14 .align 2, 0 _080799FC: .4byte gUnknown_202DF98 _08079A00: .4byte gUnknown_80F4E90 _08079A04: .4byte gUnknown_80FAF5C _08079A08: ldr r0, _08079A20 ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 _08079A14: adds r0, r4, 0 bl sub_80418D4 _08079A1A: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08079A20: .4byte gUnknown_80FAF8C thumb_func_end sub_80799A8 thumb_func_start sub_8079A24 sub_8079A24: push {r4-r6,lr} adds r6, r0, 0 adds r4, r1, 0 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08079A96 ldr r5, [r4, 0x70] ldr r0, _08079A78 adds r1, r4, 0 movs r2, 0 bl sub_8045B94 adds r1, r5, 0 adds r1, 0xC4 ldrb r0, [r1] cmp r0, 0x3 beq _08079A84 movs r0, 0x3 strb r0, [r1] ldr r1, _08079A7C adds r0, r4, 0 movs r2, 0 bl sub_808417C adds r0, 0x1 adds r1, r5, 0 adds r1, 0xC5 strb r0, [r1] adds r0, r4, 0 bl nullsub_61 ldr r0, _08079A80 ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 b _08079A90 .align 2, 0 _08079A78: .4byte gUnknown_202DF98 _08079A7C: .4byte gUnknown_80F4E84 _08079A80: .4byte gUnknown_80FB130 _08079A84: ldr r0, _08079A9C ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 _08079A90: adds r0, r4, 0 bl sub_80418D4 _08079A96: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08079A9C: .4byte gUnknown_80FB160 thumb_func_end sub_8079A24 thumb_func_start sub_8079AA0 sub_8079AA0: push {r4-r6,lr} adds r6, r0, 0 adds r4, r1, 0 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08079B12 ldr r5, [r4, 0x70] ldr r0, _08079AF4 adds r1, r4, 0 movs r2, 0 bl sub_8045B94 adds r1, r5, 0 adds r1, 0xC4 ldrb r0, [r1] cmp r0, 0x1 beq _08079B00 movs r0, 0x1 strb r0, [r1] ldr r1, _08079AF8 adds r0, r4, 0 movs r2, 0 bl sub_808417C adds r0, 0x1 adds r1, r5, 0 adds r1, 0xC5 strb r0, [r1] adds r0, r4, 0 bl nullsub_62 ldr r0, _08079AFC ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 b _08079B0C .align 2, 0 _08079AF4: .4byte gUnknown_202DF98 _08079AF8: .4byte gUnknown_80F4E80 _08079AFC: .4byte gUnknown_80FB17C _08079B00: ldr r0, _08079B18 ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 _08079B0C: adds r0, r4, 0 bl sub_80418D4 _08079B12: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08079B18: .4byte gUnknown_80FB1A8 thumb_func_end sub_8079AA0 thumb_func_start sub_8079B1C sub_8079B1C: push {r4-r6,lr} adds r6, r0, 0 adds r4, r1, 0 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08079B98 adds r0, r4, 0 bl nullsub_63 ldr r5, [r4, 0x70] adds r1, r5, 0 adds r1, 0xC4 ldrb r0, [r1] cmp r0, 0x7 beq _08079B7C movs r0, 0x7 strb r0, [r1] ldr r1, _08079B70 adds r0, r4, 0 movs r2, 0 bl sub_808417C adds r0, 0x1 adds r1, r5, 0 adds r1, 0xC5 strb r0, [r1] ldr r0, _08079B74 adds r1, r4, 0 movs r2, 0 bl sub_8045B94 ldr r0, _08079B78 ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 b _08079B92 .align 2, 0 _08079B70: .4byte gUnknown_80F4ED4 _08079B74: .4byte gUnknown_202DF98 _08079B78: .4byte gUnknown_80FB9B0 _08079B7C: ldr r0, _08079BA0 adds r1, r4, 0 movs r2, 0 bl sub_8045B94 ldr r0, _08079BA4 ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 _08079B92: adds r0, r4, 0 bl sub_80418D4 _08079B98: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08079BA0: .4byte gUnknown_202DF98 _08079BA4: .4byte gUnknown_80FB9D8 thumb_func_end sub_8079B1C thumb_func_start sub_8079BA8 sub_8079BA8: push {r4-r6,lr} adds r6, r0, 0 adds r4, r1, 0 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08079C1A ldr r5, [r4, 0x70] ldr r0, _08079BFC adds r1, r4, 0 movs r2, 0 bl sub_8045B94 adds r1, r5, 0 adds r1, 0xC4 ldrb r0, [r1] cmp r0, 0x8 beq _08079C08 movs r0, 0x8 strb r0, [r1] ldr r1, _08079C00 adds r0, r4, 0 movs r2, 0 bl sub_808417C adds r0, 0x1 adds r1, r5, 0 adds r1, 0xC5 strb r0, [r1] adds r0, r4, 0 bl nullsub_64 ldr r0, _08079C04 ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 b _08079C14 .align 2, 0 _08079BFC: .4byte gUnknown_202DF98 _08079C00: .4byte gUnknown_80F4EE8 _08079C04: .4byte gUnknown_80FBAC0 _08079C08: ldr r0, _08079C20 ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 _08079C14: adds r0, r4, 0 bl sub_80418D4 _08079C1A: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08079C20: .4byte gUnknown_80FBAE4 thumb_func_end sub_8079BA8 thumb_func_start sub_8079C24 sub_8079C24: push {r4-r6,lr} adds r6, r0, 0 adds r4, r1, 0 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08079C96 ldr r5, [r4, 0x70] ldr r0, _08079C78 adds r1, r4, 0 movs r2, 0 bl sub_8045B94 adds r1, r5, 0 adds r1, 0xC4 ldrb r0, [r1] cmp r0, 0x9 beq _08079C84 movs r0, 0x9 strb r0, [r1] ldr r1, _08079C7C adds r0, r4, 0 movs r2, 0 bl sub_808417C adds r0, 0x1 adds r1, r5, 0 adds r1, 0xC5 strb r0, [r1] adds r0, r4, 0 bl nullsub_65 ldr r0, _08079C80 ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 b _08079C90 .align 2, 0 _08079C78: .4byte gUnknown_202DF98 _08079C7C: .4byte gUnknown_80F4EF8 _08079C80: .4byte gUnknown_80FBBF0 _08079C84: ldr r0, _08079C9C ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 _08079C90: adds r0, r4, 0 bl sub_80418D4 _08079C96: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08079C9C: .4byte gUnknown_80FBC14 thumb_func_end sub_8079C24 thumb_func_start sub_8079CA0 sub_8079CA0: push {r4-r6,lr} adds r6, r0, 0 adds r4, r1, 0 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08079D12 ldr r5, [r4, 0x70] ldr r0, _08079CF4 adds r1, r4, 0 movs r2, 0 bl sub_8045B94 adds r1, r5, 0 adds r1, 0xC4 ldrb r0, [r1] cmp r0, 0xB beq _08079D00 movs r0, 0xB strb r0, [r1] ldr r1, _08079CF8 adds r0, r4, 0 movs r2, 0 bl sub_808417C adds r0, 0x1 adds r1, r5, 0 adds r1, 0xC5 strb r0, [r1] adds r0, r4, 0 bl nullsub_66 ldr r0, _08079CFC ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 b _08079D0C .align 2, 0 _08079CF4: .4byte gUnknown_202DF98 _08079CF8: .4byte gUnknown_80F4F18 _08079CFC: .4byte gUnknown_80FBC38 _08079D00: ldr r0, _08079D18 ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 _08079D0C: adds r0, r4, 0 bl sub_80418D4 _08079D12: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08079D18: .4byte gUnknown_80FBC5C thumb_func_end sub_8079CA0 thumb_func_start sub_8079D1C sub_8079D1C: push {r4-r6,lr} adds r5, r0, 0 adds r4, r1, 0 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08079DAE ldr r6, [r4, 0x70] adds r0, r4, 0 movs r1, 0x25 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _08079D50 ldr r0, _08079D4C ldr r2, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_80522F4 b _08079DAE .align 2, 0 _08079D4C: .4byte gUnknown_8100720 _08079D50: ldr r0, _08079D90 adds r1, r4, 0 movs r2, 0 bl sub_8045B94 adds r1, r6, 0 adds r1, 0xC4 ldrb r0, [r1] cmp r0, 0xC beq _08079D9C movs r0, 0xC strb r0, [r1] ldr r1, _08079D94 adds r0, r4, 0 movs r2, 0 bl sub_808417C adds r0, 0x1 adds r1, r6, 0 adds r1, 0xC5 strb r0, [r1] adds r0, r4, 0 bl nullsub_67 ldr r0, _08079D98 ldr r2, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_80522F4 b _08079DA8 .align 2, 0 _08079D90: .4byte gUnknown_202DF98 _08079D94: .4byte gUnknown_80F4F20 _08079D98: .4byte gUnknown_80FBC7C _08079D9C: ldr r0, _08079DB4 ldr r2, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_80522F4 _08079DA8: adds r0, r4, 0 bl sub_80418D4 _08079DAE: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08079DB4: .4byte gUnknown_80FBCA4 thumb_func_end sub_8079D1C thumb_func_start sub_8079DB8 sub_8079DB8: push {r4-r6,lr} adds r6, r0, 0 adds r4, r1, 0 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08079E2A ldr r5, [r4, 0x70] ldr r0, _08079E0C adds r1, r4, 0 movs r2, 0 bl sub_8045B94 adds r1, r5, 0 adds r1, 0xC4 ldrb r0, [r1] cmp r0, 0xD beq _08079E18 movs r0, 0xD strb r0, [r1] ldr r1, _08079E10 adds r0, r4, 0 movs r2, 0 bl sub_808417C adds r0, 0x1 adds r1, r5, 0 adds r1, 0xC5 strb r0, [r1] adds r0, r4, 0 bl nullsub_68 ldr r0, _08079E14 ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 b _08079E24 .align 2, 0 _08079E0C: .4byte gUnknown_202DF98 _08079E10: .4byte gUnknown_80F4F24 _08079E14: .4byte gUnknown_80FBCC8 _08079E18: ldr r0, _08079E30 ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 _08079E24: adds r0, r4, 0 bl sub_80418D4 _08079E2A: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08079E30: .4byte gUnknown_80FBCF0 thumb_func_end sub_8079DB8 thumb_func_start sub_8079E34 sub_8079E34: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} mov r8, r0 adds r5, r1, 0 lsls r2, 24 lsrs r2, 24 mov r9, r2 movs r6, 0 adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08079F0E ldr r0, [r5, 0x70] mov r12, r0 movs r4, 0 movs r7, 0xA _08079E5C: lsls r2, r4, 1 mov r0, r12 adds r0, 0x1C adds r1, r0, r2 movs r3, 0 ldrsh r0, [r1, r3] cmp r0, 0xA beq _08079E70 strh r7, [r1] movs r6, 0x1 _08079E70: mov r0, r12 adds r0, 0x20 adds r1, r0, r2 movs r3, 0 ldrsh r0, [r1, r3] cmp r0, 0xA beq _08079E82 strh r7, [r1] movs r6, 0x1 _08079E82: mov r0, r12 adds r0, 0x24 adds r1, r0, r2 movs r2, 0 ldrsh r0, [r1, r2] cmp r0, 0xA beq _08079E94 strh r7, [r1] movs r6, 0x1 _08079E94: lsls r3, r4, 2 mov r0, r12 adds r0, 0x2C adds r1, r0, r3 ldr r0, [r1] movs r2, 0x80 lsls r2, 1 cmp r0, r2 beq _08079EAA str r2, [r1] movs r6, 0x1 _08079EAA: mov r0, r12 adds r0, 0x34 adds r1, r0, r3 ldr r0, [r1] cmp r0, r2 beq _08079EBA str r2, [r1] movs r6, 0x1 _08079EBA: adds r4, 0x1 cmp r4, 0x1 ble _08079E5C cmp r6, 0 beq _08079ECC adds r0, r5, 0 bl sub_80420C8 b _08079ED8 _08079ECC: mov r3, r9 cmp r3, 0 beq _08079ED8 adds r0, r5, 0 bl sub_80420C8 _08079ED8: ldr r0, _08079EF4 adds r1, r5, 0 movs r2, 0 bl sub_8045B94 cmp r6, 0 beq _08079EFC ldr r0, _08079EF8 ldr r2, [r0] mov r0, r8 adds r1, r5, 0 bl sub_80522F4 b _08079F08 .align 2, 0 _08079EF4: .4byte gUnknown_202DF98 _08079EF8: .4byte gUnknown_80FBD18 _08079EFC: ldr r0, _08079F1C ldr r2, [r0] mov r0, r8 adds r1, r5, 0 bl sub_80522F4 _08079F08: adds r0, r5, 0 bl sub_80418D4 _08079F0E: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08079F1C: .4byte gUnknown_80FBD3C thumb_func_end sub_8079E34 thumb_func_start sub_8079F20 sub_8079F20: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 adds r5, r0, 0 adds r4, r1, 0 lsls r2, 24 lsrs r2, 24 str r2, [sp] lsls r3, 24 lsrs r3, 24 mov r10, r3 movs r0, 0 mov r8, r0 mov r9, r0 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _08079F50 b _0807A0B8 _08079F50: ldr r7, [r4, 0x70] adds r0, r4, 0 bl sub_8070A58 lsls r0, 24 cmp r0, 0 beq _08079FF2 movs r2, 0x1 mov r8, r2 adds r0, r5, 0 adds r1, r4, 0 movs r2, 0 movs r3, 0 bl sub_807A124 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _08079F7C b _0807A0B8 _08079F7C: adds r0, r5, 0 adds r1, r4, 0 bl sub_807A290 adds r0, r5, 0 adds r1, r4, 0 bl sub_807A324 adds r0, r5, 0 adds r1, r4, 0 bl sub_807A400 adds r0, r5, 0 adds r1, r4, 0 movs r2, 0 bl sub_807A5D0 adds r0, r5, 0 adds r1, r4, 0 bl sub_807A6C8 adds r0, r5, 0 adds r1, r4, 0 bl sub_807A734 adds r0, r5, 0 adds r1, r4, 0 bl sub_807A888 adds r0, r5, 0 adds r1, r4, 0 bl sub_807A924 adds r1, r7, 0 adds r1, 0xFD ldrb r0, [r1] cmp r0, 0 beq _08079FD8 mov r0, r9 strb r0, [r1] ldr r0, _0807A08C ldr r2, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_80522F4 _08079FD8: adds r1, r7, 0 adds r1, 0xF5 ldrb r0, [r1] cmp r0, 0 beq _08079FF2 mov r2, r9 strb r2, [r1] ldr r0, _0807A090 ldr r2, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_80522F4 _08079FF2: adds r0, r4, 0 bl sub_8070774 adds r6, r0, 0 movs r1, 0 movs r3, 0x4 ldr r2, _0807A094 adds r0, r7, r2 _0807A002: strb r1, [r0] subs r0, 0x1 subs r3, 0x1 cmp r3, 0 bge _0807A002 adds r0, r4, 0 bl sub_8070774 cmp r6, r0 beq _0807A032 movs r0, 0x1 mov r8, r0 ldr r1, _0807A098 movs r2, 0x82 lsls r2, 1 adds r0, r7, r2 ldr r0, [r0] lsls r0, 2 adds r0, r1 ldr r2, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_80522F4 _0807A032: movs r6, 0x1 movs r0, 0x8C lsls r0, 1 adds r2, r7, r0 movs r7, 0xFE movs r3, 0x3 _0807A03E: ldrb r1, [r2] adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _0807A05E ldrb r1, [r2, 0x1] adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _0807A05E movs r0, 0x1 mov r8, r0 mov r9, r0 adds r0, r7, 0 ands r0, r1 strb r0, [r2, 0x1] _0807A05E: adds r2, 0x8 subs r3, 0x1 cmp r3, 0 bge _0807A03E mov r2, r8 cmp r2, 0 beq _0807A0A0 ldr r0, [sp] cmp r0, 0 beq _0807A078 adds r0, r4, 0 bl sub_80420C8 _0807A078: mov r2, r9 cmp r2, 0 beq _0807A0B2 ldr r0, _0807A09C ldr r2, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_80522F4 b _0807A0B2 .align 2, 0 _0807A08C: .4byte gUnknown_8100594 _0807A090: .4byte gUnknown_81005B8 _0807A094: .4byte 0x00000111 _0807A098: .4byte gUnknown_80FA124 _0807A09C: .4byte gUnknown_81005DC _0807A0A0: mov r0, r10 cmp r0, 0 bne _0807A0B2 ldr r0, _0807A0C8 ldr r2, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_80522F4 _0807A0B2: adds r0, r4, 0 bl sub_80418D4 _0807A0B8: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0807A0C8: .4byte gUnknown_81004E8 thumb_func_end sub_8079F20 thumb_func_start sub_807A0CC sub_807A0CC: push {r4-r7,lr} adds r5, r1, 0 adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0807A11E ldr r4, [r5, 0x70] adds r0, r4, 0 movs r1, 0 bl sub_806BFC0 adds r1, r4, 0 adds r1, 0xFD movs r0, 0 strb r0, [r1] subs r1, 0x8 strb r0, [r1] movs r7, 0x1 movs r6, 0xFE movs r0, 0x8C lsls r0, 1 adds r2, r4, r0 movs r3, 0x3 _0807A0FE: ldrb r1, [r2] adds r0, r7, 0 ands r0, r1 cmp r0, 0 beq _0807A110 ldrb r1, [r2, 0x1] adds r0, r6, 0 ands r0, r1 strb r0, [r2, 0x1] _0807A110: adds r2, 0x8 subs r3, 0x1 cmp r3, 0 bge _0807A0FE adds r0, r5, 0 bl sub_80418D4 _0807A11E: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_807A0CC thumb_func_start sub_807A124 sub_807A124: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 adds r6, r0, 0 adds r5, r1, 0 lsls r2, 24 lsrs r4, r2, 24 lsls r3, 24 lsrs r3, 24 mov r8, r3 movs r0, 0 mov r9, r0 adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _0807A14E b _0807A27C _0807A14E: ldr r7, [r5, 0x70] ldr r0, _0807A170 adds r1, r5, 0 movs r2, 0 bl sub_8045B94 adds r0, r7, 0 adds r0, 0xA8 ldrb r0, [r0] cmp r0, 0x6 bls _0807A166 b _0807A260 _0807A166: lsls r0, 2 ldr r1, _0807A174 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0807A170: .4byte gUnknown_202DF98 _0807A174: .4byte _0807A178 .align 2, 0 _0807A178: .4byte _0807A260 .4byte _0807A194 .4byte _0807A1A0 .4byte _0807A1B4 .4byte _0807A228 .4byte _0807A1E8 .4byte _0807A260 _0807A194: movs r1, 0x1 mov r9, r1 ldr r0, _0807A19C b _0807A1A2 .align 2, 0 _0807A19C: .4byte gUnknown_80FA6E8 _0807A1A0: ldr r0, _0807A1B0 _0807A1A2: ldr r2, [r0] adds r0, r6, 0 adds r1, r5, 0 bl sub_80522F4 b _0807A260 .align 2, 0 _0807A1B0: .4byte gUnknown_80FA708 _0807A1B4: movs r2, 0x1 mov r9, r2 ldr r0, _0807A1DC ldr r2, [r0] adds r0, r6, 0 adds r1, r5, 0 bl sub_80522F4 mov r0, r8 cmp r0, 0 beq _0807A260 ldr r0, _0807A1E0 movs r2, 0 ldrsh r1, [r0, r2] ldr r3, _0807A1E4 adds r0, r5, 0 movs r2, 0x8 bl sub_806F324 b _0807A260 .align 2, 0 _0807A1DC: .4byte gUnknown_80FA70C _0807A1E0: .4byte gUnknown_80F4F78 _0807A1E4: .4byte 0x0000020f _0807A1E8: movs r0, 0x1 mov r9, r0 ldr r0, _0807A220 ldr r2, [r0] adds r0, r6, 0 adds r1, r5, 0 bl sub_80522F4 ldr r0, _0807A224 movs r1, 0 ldrsh r2, [r0, r1] movs r4, 0 str r4, [sp] adds r0, r6, 0 adds r1, r5, 0 movs r3, 0 bl sub_8077C44 adds r0, r7, 0 adds r0, 0xA8 strb r4, [r0] adds r0, r6, 0 adds r1, r5, 0 movs r2, 0x1 movs r3, 0x1 bl sub_8079F20 b _0807A260 .align 2, 0 _0807A220: .4byte gUnknown_80FA710 _0807A224: .4byte gUnknown_80F4F7A _0807A228: cmp r4, 0 beq _0807A254 adds r1, r7, 0 adds r1, 0xA8 movs r0, 0 strb r0, [r1] ldr r1, _0807A250 adds r0, r5, 0 movs r2, 0x1 bl sub_808417C adds r2, r0, 0 adds r2, 0x1 adds r0, r6, 0 adds r1, r5, 0 movs r3, 0x1 bl sub_8075C58 b _0807A27C .align 2, 0 _0807A250: .4byte gUnknown_80F4F2C _0807A254: ldr r0, _0807A28C ldr r2, [r0] adds r0, r6, 0 adds r1, r5, 0 bl sub_80522F4 _0807A260: adds r1, r7, 0 adds r1, 0xA8 movs r0, 0 strb r0, [r1] adds r0, r5, 0 bl sub_80418D4 mov r2, r9 cmp r2, 0 beq _0807A27C adds r0, r5, 0 movs r1, 0x8 bl sub_806CE68 _0807A27C: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0807A28C: .4byte gUnknown_80FA734 thumb_func_end sub_807A124 thumb_func_start sub_807A290 sub_807A290: push {r4-r6,lr} adds r5, r0, 0 adds r4, r1, 0 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0807A31A ldr r6, [r4, 0x70] ldr r0, _0807A2C4 adds r1, r4, 0 movs r2, 0 bl sub_8045B94 adds r0, r6, 0 adds r0, 0xAC ldrb r0, [r0] cmp r0, 0x5 bhi _0807A30C lsls r0, 2 ldr r1, _0807A2C8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0807A2C4: .4byte gUnknown_202DF98 _0807A2C8: .4byte _0807A2CC .align 2, 0 _0807A2CC: .4byte _0807A30C .4byte _0807A300 .4byte _0807A2E4 .4byte _0807A2E4 .4byte _0807A2EC .4byte _0807A30C _0807A2E4: ldr r0, _0807A2E8 b _0807A2EE .align 2, 0 _0807A2E8: .4byte gUnknown_80FA8A8 _0807A2EC: ldr r0, _0807A2FC _0807A2EE: ldr r2, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_80522F4 b _0807A30C .align 2, 0 _0807A2FC: .4byte gUnknown_80FA868 _0807A300: ldr r0, _0807A320 ldr r2, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_80522F4 _0807A30C: adds r1, r6, 0 adds r1, 0xAC movs r0, 0 strb r0, [r1] adds r0, r4, 0 bl sub_80418D4 _0807A31A: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0807A320: .4byte gUnknown_80FA888 thumb_func_end sub_807A290 thumb_func_start sub_807A324 sub_807A324: push {r4-r7,lr} adds r5, r0, 0 adds r4, r1, 0 movs r7, 0 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0807A3F4 ldr r6, [r4, 0x70] ldr r0, _0807A358 adds r1, r4, 0 movs r2, 0 bl sub_8045B94 adds r0, r6, 0 adds r0, 0xB0 ldrb r0, [r0] cmp r0, 0x8 bhi _0807A3DC lsls r0, 2 ldr r1, _0807A35C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0807A358: .4byte gUnknown_202DF98 _0807A35C: .4byte _0807A360 .align 2, 0 _0807A360: .4byte _0807A3DC .4byte _0807A384 .4byte _0807A3A0 .4byte _0807A3B4 .4byte _0807A3B4 .4byte _0807A3A0 .4byte _0807A3D0 .4byte _0807A398 .4byte _0807A3DC _0807A384: ldr r0, _0807A394 ldr r2, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_80522F4 movs r7, 0x1 b _0807A3DC .align 2, 0 _0807A394: .4byte gUnknown_80FA8BC _0807A398: ldr r0, _0807A39C b _0807A3A2 .align 2, 0 _0807A39C: .4byte gUnknown_80FA820 _0807A3A0: ldr r0, _0807A3B0 _0807A3A2: ldr r2, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_80522F4 b _0807A3DC .align 2, 0 _0807A3B0: .4byte gUnknown_80FA824 _0807A3B4: ldr r0, _0807A3CC ldr r2, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_80522F4 adds r0, r6, 0 adds r0, 0x9C ldr r0, [r0] bl sub_8076CB4 b _0807A3DC .align 2, 0 _0807A3CC: .4byte gUnknown_80FA81C _0807A3D0: ldr r0, _0807A3FC ldr r2, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_80522F4 _0807A3DC: adds r1, r6, 0 adds r1, 0xB0 movs r0, 0 strb r0, [r1] adds r0, r4, 0 bl sub_80418D4 cmp r7, 0 beq _0807A3F4 adds r0, r4, 0 bl sub_8042A74 _0807A3F4: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0807A3FC: .4byte gUnknown_80FABF8 thumb_func_end sub_807A324 thumb_func_start sub_807A400 sub_807A400: push {r4-r6,lr} adds r4, r0, 0 adds r5, r1, 0 adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0807A4BC ldr r6, [r5, 0x70] ldr r0, _0807A434 adds r1, r5, 0 movs r2, 0 bl sub_8045B94 adds r0, r6, 0 adds r0, 0xBC ldrb r0, [r0] cmp r0, 0x8 bhi _0807A4A8 lsls r0, 2 ldr r1, _0807A438 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0807A434: .4byte gUnknown_202DF98 _0807A438: .4byte _0807A43C .align 2, 0 _0807A43C: .4byte _0807A4A8 .4byte _0807A49C .4byte _0807A460 .4byte _0807A478 .4byte _0807A468 .4byte _0807A470 .4byte _0807A488 .4byte _0807A480 .4byte _0807A4A8 _0807A460: ldr r0, _0807A464 b _0807A48A .align 2, 0 _0807A464: .4byte gUnknown_80FA800 _0807A468: ldr r0, _0807A46C b _0807A48A .align 2, 0 _0807A46C: .4byte gUnknown_80FA97C _0807A470: ldr r0, _0807A474 b _0807A48A .align 2, 0 _0807A474: .4byte gUnknown_80FA9DC _0807A478: ldr r0, _0807A47C b _0807A48A .align 2, 0 _0807A47C: .4byte gUnknown_80FAC38 _0807A480: ldr r0, _0807A484 b _0807A48A .align 2, 0 _0807A484: .4byte gUnknown_80FAB90 _0807A488: ldr r0, _0807A498 _0807A48A: ldr r2, [r0] adds r0, r4, 0 adds r1, r5, 0 bl sub_80522F4 b _0807A4A8 .align 2, 0 _0807A498: .4byte gUnknown_80FAAAC _0807A49C: ldr r0, _0807A4C4 ldr r2, [r0] adds r0, r4, 0 adds r1, r5, 0 bl sub_80522F4 _0807A4A8: adds r1, r6, 0 adds r1, 0xBC movs r0, 0 strb r0, [r1] adds r0, r5, 0 bl sub_80418D4 adds r0, r5, 0 bl sub_8070774 _0807A4BC: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0807A4C4: .4byte gUnknown_80FAC18 thumb_func_end sub_807A400 thumb_func_start sub_807A4C8 sub_807A4C8: push {r4,r5,lr} adds r4, r1, 0 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _0807A4DA b _0807A5C4 _0807A4DA: ldr r5, [r4, 0x70] ldr r0, _0807A4FC adds r1, r4, 0 movs r2, 0 bl sub_8045B94 adds r0, r5, 0 adds r0, 0xC4 ldrb r0, [r0] cmp r0, 0xF bhi _0807A5B6 lsls r0, 2 ldr r1, _0807A500 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0807A4FC: .4byte gUnknown_202DF98 _0807A500: .4byte _0807A504 .align 2, 0 _0807A504: .4byte _0807A5B6 .4byte _0807A544 .4byte _0807A54C .4byte _0807A554 .4byte _0807A55C .4byte _0807A564 .4byte _0807A56C .4byte _0807A574 .4byte _0807A57C .4byte _0807A584 .4byte _0807A55C .4byte _0807A58C .4byte _0807A594 .4byte _0807A59C .4byte _0807A5AC .4byte _0807A5B6 _0807A544: ldr r0, _0807A548 b _0807A59E .align 2, 0 _0807A548: .4byte gUnknown_80FA638 _0807A54C: ldr r0, _0807A550 b _0807A59E .align 2, 0 _0807A550: .4byte gUnknown_80FA69C _0807A554: ldr r0, _0807A558 b _0807A59E .align 2, 0 _0807A558: .4byte gUnknown_80FA658 _0807A55C: ldr r0, _0807A560 b _0807A59E .align 2, 0 _0807A560: .4byte gUnknown_80FA67C _0807A564: ldr r0, _0807A568 b _0807A59E .align 2, 0 _0807A568: .4byte gUnknown_80FA6BC _0807A56C: ldr r0, _0807A570 b _0807A59E .align 2, 0 _0807A570: .4byte gUnknown_80FA6D4 _0807A574: ldr r0, _0807A578 b _0807A59E .align 2, 0 _0807A578: .4byte gUnknown_80FA9C0 _0807A57C: ldr r0, _0807A580 b _0807A59E .align 2, 0 _0807A580: .4byte gUnknown_80FAA68 _0807A584: ldr r0, _0807A588 b _0807A59E .align 2, 0 _0807A588: .4byte gUnknown_80FAAC8 _0807A58C: ldr r0, _0807A590 b _0807A59E .align 2, 0 _0807A590: .4byte gUnknown_80FAAE8 _0807A594: ldr r0, _0807A598 b _0807A59E .align 2, 0 _0807A598: .4byte gUnknown_80FAB08 _0807A59C: ldr r0, _0807A5A8 _0807A59E: ldr r1, [r0] adds r0, r4, 0 bl sub_80522A8 b _0807A5B6 .align 2, 0 _0807A5A8: .4byte gUnknown_80FAB28 _0807A5AC: ldr r0, _0807A5CC ldr r1, [r0] adds r0, r4, 0 bl sub_80522A8 _0807A5B6: adds r1, r5, 0 adds r1, 0xC4 movs r0, 0 strb r0, [r1] adds r0, r4, 0 bl sub_80418D4 _0807A5C4: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0807A5CC: .4byte gUnknown_80FAB40 thumb_func_end sub_807A4C8 thumb_func_start sub_807A5D0 sub_807A5D0: push {r4-r7,lr} adds r5, r1, 0 lsls r2, 24 lsrs r6, r2, 24 adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0807A6B2 ldr r7, [r5, 0x70] ldr r0, _0807A604 adds r1, r5, 0 movs r2, 0 bl sub_8045B94 adds r0, r7, 0 adds r0, 0xC8 ldrb r0, [r0] cmp r0, 0x4 bhi _0807A6A4 lsls r0, 2 ldr r1, _0807A608 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0807A604: .4byte gUnknown_202DF98 _0807A608: .4byte _0807A60C .align 2, 0 _0807A60C: .4byte _0807A6A4 .4byte _0807A620 .4byte _0807A668 .4byte _0807A634 .4byte _0807A6A4 _0807A620: cmp r6, 0x1 beq _0807A6A4 ldr r0, _0807A630 ldr r1, [r0] adds r0, r5, 0 bl sub_80522A8 b _0807A6A4 .align 2, 0 _0807A630: .4byte gUnknown_80FA7BC _0807A634: cmp r6, 0x3 beq _0807A642 ldr r0, _0807A658 ldr r1, [r0] adds r0, r5, 0 bl sub_80522A8 _0807A642: ldr r0, _0807A65C ldr r0, [r0] ldr r2, _0807A660 adds r1, r0, r2 movs r2, 0 str r2, [r1] ldr r1, _0807A664 adds r0, r1 str r2, [r0] b _0807A6A4 .align 2, 0 _0807A658: .4byte gUnknown_80FA7DC _0807A65C: .4byte gUnknown_203B418 _0807A660: .4byte 0x00017b30 _0807A664: .4byte 0x00017b3c _0807A668: adds r0, r7, 0 adds r0, 0xC8 movs r4, 0 strb r4, [r0] adds r0, r5, 0 bl sub_806CEBC adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl sub_806CCB4 ldr r0, _0807A6B8 ldr r0, [r0] ldr r2, _0807A6BC adds r0, r2 strb r4, [r0] cmp r6, 0x2 beq _0807A6A4 ldr r0, _0807A6C0 adds r1, r5, 0 movs r2, 0 bl sub_8045B94 ldr r0, _0807A6C4 ldr r1, [r0] adds r0, r5, 0 bl sub_80522A8 _0807A6A4: adds r1, r7, 0 adds r1, 0xC8 movs r0, 0 strb r0, [r1] adds r0, r5, 0 bl sub_80418D4 _0807A6B2: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0807A6B8: .4byte gUnknown_203B418 _0807A6BC: .4byte 0x000037fc _0807A6C0: .4byte gUnknown_202DF98 _0807A6C4: .4byte gUnknown_80FA9A0 thumb_func_end sub_807A5D0 thumb_func_start sub_807A6C8 sub_807A6C8: push {r4,r5,lr} adds r4, r1, 0 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0807A72A ldr r5, [r4, 0x70] ldr r0, _0807A6F8 adds r1, r4, 0 movs r2, 0 bl sub_8045B94 adds r0, r5, 0 adds r0, 0xD0 ldrb r0, [r0] cmp r0, 0x1 beq _0807A6FC cmp r0, 0x1 ble _0807A716 cmp r0, 0x2 beq _0807A70C b _0807A716 .align 2, 0 _0807A6F8: .4byte gUnknown_202DF98 _0807A6FC: ldr r0, _0807A708 ldr r1, [r0] adds r0, r4, 0 bl sub_80522A8 b _0807A716 .align 2, 0 _0807A708: .4byte gUnknown_80FA79C _0807A70C: ldr r0, _0807A730 ldr r1, [r0] adds r0, r4, 0 bl sub_80522A8 _0807A716: adds r1, r5, 0 adds r1, 0xD0 movs r0, 0 strb r0, [r1] adds r1, 0x8 movs r0, 0xFF strb r0, [r1] adds r0, r4, 0 bl sub_80418D4 _0807A72A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0807A730: .4byte gUnknown_80FAA8C thumb_func_end sub_807A6C8 thumb_func_start sub_807A734 sub_807A734: push {r4,r5,lr} adds r4, r1, 0 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0807A7BC ldr r5, [r4, 0x70] ldr r0, _0807A764 adds r1, r4, 0 movs r2, 0 bl sub_8045B94 adds r0, r5, 0 adds r0, 0xDC ldrb r0, [r0] cmp r0, 0x5 bhi _0807A7AE lsls r0, 2 ldr r1, _0807A768 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0807A764: .4byte gUnknown_202DF98 _0807A768: .4byte _0807A76C .align 2, 0 _0807A76C: .4byte _0807A7AE .4byte _0807A784 .4byte _0807A78C .4byte _0807A794 .4byte _0807A7A4 .4byte _0807A7AE _0807A784: ldr r0, _0807A788 b _0807A796 .align 2, 0 _0807A788: .4byte gUnknown_80FA8E0 _0807A78C: ldr r0, _0807A790 b _0807A796 .align 2, 0 _0807A790: .4byte gUnknown_80FA90C _0807A794: ldr r0, _0807A7A0 _0807A796: ldr r1, [r0] adds r0, r4, 0 bl sub_80522A8 b _0807A7AE .align 2, 0 _0807A7A0: .4byte gUnknown_80FA934 _0807A7A4: ldr r0, _0807A7C4 ldr r1, [r0] adds r0, r4, 0 bl sub_80522A8 _0807A7AE: adds r1, r5, 0 adds r1, 0xDC movs r0, 0 strb r0, [r1] adds r0, r4, 0 bl sub_80418D4 _0807A7BC: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0807A7C4: .4byte gUnknown_80FA95C thumb_func_end sub_807A734 thumb_func_start sub_807A7C8 sub_807A7C8: push {r4-r6,lr} adds r4, r1, 0 movs r6, 0 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0807A87E ldr r5, [r4, 0x70] ldr r0, _0807A7FC adds r1, r4, 0 movs r2, 0 bl sub_8045B94 adds r0, r5, 0 adds r0, 0xE4 ldrb r0, [r0] cmp r0, 0x4 bhi _0807A866 lsls r0, 2 ldr r1, _0807A800 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0807A7FC: .4byte gUnknown_202DF98 _0807A800: .4byte _0807A804 .align 2, 0 _0807A804: .4byte _0807A866 .4byte _0807A818 .4byte _0807A834 .4byte _0807A824 .4byte _0807A866 _0807A818: movs r6, 0x1 ldr r0, _0807A820 b _0807A826 .align 2, 0 _0807A820: .4byte gUnknown_80FA9F4 _0807A824: ldr r0, _0807A830 _0807A826: ldr r1, [r0] adds r0, r4, 0 bl sub_80522A8 b _0807A866 .align 2, 0 _0807A830: .4byte gUnknown_80FABBC _0807A834: movs r0, 0x2 ldrsh r1, [r5, r0] adds r0, r4, 0 bl sub_8069F54 strh r0, [r5, 0x4] movs r1, 0x4 ldrsh r0, [r5, r1] bl sub_80687D0 str r0, [r4, 0x64] adds r0, r4, 0 bl sub_806CEBC adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_806CCB4 ldr r0, _0807A884 ldr r1, [r0] adds r0, r4, 0 bl sub_80522A8 _0807A866: adds r1, r5, 0 adds r1, 0xE4 movs r0, 0 strb r0, [r1] adds r0, r4, 0 bl sub_80418D4 cmp r6, 0 beq _0807A87E movs r0, 0x1 bl sub_807EC28 _0807A87E: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0807A884: .4byte gUnknown_80FAB6C thumb_func_end sub_807A7C8 thumb_func_start sub_807A888 sub_807A888: push {r4,r5,lr} adds r4, r1, 0 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0807A918 ldr r5, [r4, 0x70] ldr r0, _0807A8B8 adds r1, r4, 0 movs r2, 0 bl sub_8045B94 adds r0, r5, 0 adds r0, 0xE8 ldrb r0, [r0] cmp r0, 0x4 bhi _0807A8F6 lsls r0, 2 ldr r1, _0807A8BC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0807A8B8: .4byte gUnknown_202DF98 _0807A8BC: .4byte _0807A8C0 .align 2, 0 _0807A8C0: .4byte _0807A8F6 .4byte _0807A8D4 .4byte _0807A8DC .4byte _0807A8EC .4byte _0807A8F6 _0807A8D4: ldr r0, _0807A8D8 b _0807A8DE .align 2, 0 _0807A8D8: .4byte gUnknown_80FAA0C _0807A8DC: ldr r0, _0807A8E8 _0807A8DE: ldr r1, [r0] adds r0, r4, 0 bl sub_80522A8 b _0807A8F6 .align 2, 0 _0807A8E8: .4byte gUnknown_80FAA2C _0807A8EC: ldr r0, _0807A920 ldr r1, [r0] adds r0, r4, 0 bl sub_80522A8 _0807A8F6: adds r0, r5, 0 adds r0, 0xE8 movs r1, 0 strb r1, [r0] adds r0, r4, 0 bl sub_80418D4 ldrb r0, [r5, 0x7] cmp r0, 0 beq _0807A918 movs r0, 0x31 bl sub_803E46C bl sub_8049ED4 bl sub_8040A84 _0807A918: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0807A920: .4byte gUnknown_80FAA48 thumb_func_end sub_807A888 thumb_func_start sub_807A924 sub_807A924: push {r4,r5,lr} adds r5, r1, 0 adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0807A95C ldr r4, [r5, 0x70] ldr r0, _0807A964 adds r1, r5, 0 movs r2, 0 bl sub_8045B94 adds r4, 0xEC ldrb r0, [r4] cmp r0, 0x1 bne _0807A952 ldr r0, _0807A968 ldr r1, [r0] adds r0, r5, 0 bl sub_80522A8 _0807A952: movs r0, 0 strb r0, [r4] adds r0, r5, 0 bl sub_80418D4 _0807A95C: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0807A964: .4byte gUnknown_202DF98 _0807A968: .4byte gUnknown_80FABC0 thumb_func_end sub_807A924 thumb_func_start sub_807A96C sub_807A96C: push {r4-r6,lr} adds r6, r0, 0 adds r4, r1, 0 ldr r0, [r4, 0x70] adds r5, r0, 0 movs r2, 0 adds r0, 0xB0 ldrb r0, [r0] cmp r0, 0x6 bne _0807A988 adds r0, r6, 0 bl sub_807A324 movs r2, 0x1 _0807A988: adds r0, r5, 0 adds r0, 0xA8 ldrh r1, [r0] ldr r0, _0807A9AC cmp r1, r0 bne _0807A9A2 adds r0, r6, 0 adds r1, r4, 0 movs r2, 0 movs r3, 0x1 bl sub_807A124 movs r2, 0x1 _0807A9A2: adds r0, r2, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0807A9AC: .4byte 0x00007f01 thumb_func_end sub_807A96C thumb_func_start sub_807A9B0 sub_807A9B0: push {r4,lr} adds r4, r0, 0 ldr r0, [r4, 0x70] adds r1, r0, 0 adds r1, 0xA8 movs r2, 0 strb r2, [r1] adds r0, 0xA9 strb r2, [r0] adds r0, r4, 0 movs r1, 0x1 movs r2, 0x1 bl sub_806A898 adds r0, r4, 0 bl sub_80418D4 pop {r4} pop {r0} bx r0 thumb_func_end sub_807A9B0 thumb_func_start sub_807A9D8 sub_807A9D8: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0807AA20 ldr r2, [r4, 0x70] adds r3, r2, 0 adds r3, 0xB0 ldrb r0, [r3] cmp r0, 0x1 bne _0807AA20 movs r1, 0 strb r1, [r3] adds r0, r2, 0 adds r0, 0xB8 strb r1, [r0] adds r0, 0x1 strb r1, [r0] ldr r0, _0807AA28 adds r1, r4, 0 movs r2, 0 bl sub_8045B94 ldr r0, _0807AA2C ldr r2, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_80522F4 adds r0, r4, 0 bl sub_80418D4 _0807AA20: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0807AA28: .4byte gUnknown_202DF98 _0807AA2C: .4byte gUnknown_80FA8BC thumb_func_end sub_807A9D8 thumb_func_start sub_807AA30 sub_807AA30: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} movs r4, 0 _0807AA3C: ldr r0, _0807AAD8 ldr r0, [r0] lsls r1, r4, 2 ldr r2, _0807AADC adds r0, r2 adds r0, r1 ldr r5, [r0] adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 adds r4, 0x1 mov r10, r4 cmp r0, 0 beq _0807AB22 ldr r1, [r5, 0x70] adds r0, r1, 0 adds r0, 0xA8 ldrb r0, [r0] cmp r0, 0x1 bne _0807AB22 adds r0, r1, 0 adds r0, 0xA9 ldrb r0, [r0] cmp r0, 0x7F bne _0807AB22 movs r0, 0 mov r9, r0 mov r8, r0 adds r0, r5, 0 bl sub_80450FC lsls r0, 24 lsrs r7, r0, 24 movs r6, 0 _0807AA82: ldr r0, _0807AAD8 ldr r0, [r0] lsls r1, r6, 2 ldr r2, _0807AAE0 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0807AB00 adds r0, r4, 0 movs r1, 0x18 bl sub_8046CB0 lsls r0, 24 cmp r0, 0 bne _0807AB00 movs r0, 0x4 ldrsh r1, [r4, r0] movs r2, 0x4 ldrsh r0, [r5, r2] subs r1, r0 cmp r1, 0 bge _0807AABA negs r1, r1 _0807AABA: cmp r1, 0x1 bgt _0807AAE4 movs r0, 0x6 ldrsh r1, [r4, r0] movs r2, 0x6 ldrsh r0, [r5, r2] subs r1, r0 cmp r1, 0 bge _0807AACE negs r1, r1 _0807AACE: cmp r1, 0x1 bgt _0807AAE4 movs r0, 0x1 mov r9, r0 b _0807AB06 .align 2, 0 _0807AAD8: .4byte gUnknown_203B418 _0807AADC: .4byte 0x0001358c _0807AAE0: .4byte 0x0001357c _0807AAE4: adds r0, r4, 0 movs r1, 0x1D bl sub_8046CB0 lsls r0, 24 cmp r0, 0 beq _0807AB00 adds r0, r4, 0 bl sub_80450FC lsls r0, 24 lsrs r0, 24 cmp r7, r0 beq _0807AB1C _0807AB00: adds r6, 0x1 cmp r6, 0x3 ble _0807AA82 _0807AB06: mov r2, r8 cmp r2, 0 bne _0807AB1C mov r0, r9 cmp r0, 0 beq _0807AB16 movs r2, 0x1 mov r8, r2 _0807AB16: mov r0, r8 cmp r0, 0 beq _0807AB22 _0807AB1C: adds r0, r5, 0 bl sub_807A9B0 _0807AB22: mov r4, r10 cmp r4, 0xF ble _0807AA3C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_807AA30 thumb_func_start sub_807AB38 sub_807AB38: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1A8 adds r2, r0, 0 lsls r1, 24 lsrs r4, r1, 24 ldr r0, [r2, 0x70] ldrb r0, [r0, 0x6] cmp r0, 0 beq _0807AB54 b _0807ADA6 _0807AB54: adds r0, r2, 0 str r2, [sp, 0x1A4] bl sub_8045128 ldrh r1, [r0] movs r0, 0x40 ands r0, r1 ldr r2, [sp, 0x1A4] cmp r0, 0 bne _0807AB6A b _0807ADA6 _0807AB6A: ldr r3, _0807AC10 ldr r0, [r3] ldr r5, _0807AC14 adds r1, r0, r5 ldrb r0, [r1] cmp r0, 0 beq _0807AB7A b _0807ADA6 _0807AB7A: movs r0, 0x1 strb r0, [r1] ldr r3, [r3] ldr r1, _0807AC18 adds r0, r3, r1 ldrb r1, [r0] cmp r1, 0xFF bne _0807AB8C b _0807ADA6 _0807AB8C: lsls r0, r1, 3 subs r0, r1 lsls r0, 2 ldr r5, _0807AC1C adds r0, r5 adds r3, r0 movs r0, 0 mov r8, r0 cmp r4, 0 beq _0807AC20 movs r1, 0x6 ldrsh r0, [r2, r1] subs r6, r0, 0x4 adds r0, 0x4 cmp r6, r0 ble _0807ABAE b _0807ACB4 _0807ABAE: movs r4, 0x4 ldrsh r0, [r2, r4] subs r4, r0, 0x4 adds r0, 0x4 adds r5, r6, 0x1 mov r9, r5 cmp r4, r0 bgt _0807AC00 mov r1, r8 lsls r0, r1, 2 mov r1, sp adds r5, r0, r1 _0807ABC6: adds r0, r4, 0 adds r1, r6, 0 str r2, [sp, 0x1A4] bl sub_8049590 adds r1, r0, 0 ldr r0, [r1, 0x10] ldr r2, [sp, 0x1A4] cmp r0, 0 bne _0807ABF4 ldrh r1, [r1] movs r0, 0x3 ands r0, r1 cmp r0, 0x1 bne _0807ABF4 mov r0, r8 cmp r0, 0x63 bgt _0807ABF4 strh r4, [r5] strh r6, [r5, 0x2] adds r5, 0x4 movs r1, 0x1 add r8, r1 _0807ABF4: adds r4, 0x1 movs r1, 0x4 ldrsh r0, [r2, r1] adds r0, 0x4 cmp r4, r0 ble _0807ABC6 _0807AC00: mov r6, r9 movs r4, 0x6 ldrsh r0, [r2, r4] adds r0, 0x4 cmp r6, r0 ble _0807ABAE b _0807ACB4 .align 2, 0 _0807AC10: .4byte gUnknown_203B418 _0807AC14: .4byte 0x00000671 _0807AC18: .4byte 0x00003a0c _0807AC1C: .4byte 0x000104c4 _0807AC20: movs r5, 0x4 ldrsh r0, [r2, r5] subs r1, r0, 0x4 movs r5, 0x2 ldrsh r4, [r3, r5] mov r10, r4 cmp r10, r1 bge _0807AC32 mov r10, r1 _0807AC32: adds r1, r0, 0x5 movs r0, 0x6 ldrsh r7, [r3, r0] cmp r7, r1 ble _0807AC3E adds r7, r1, 0 _0807AC3E: movs r1, 0x6 ldrsh r0, [r2, r1] subs r2, r0, 0x4 movs r4, 0x4 ldrsh r1, [r3, r4] cmp r1, r2 bge _0807AC4E adds r1, r2, 0 _0807AC4E: adds r0, 0x5 movs r5, 0x8 ldrsh r2, [r3, r5] cmp r2, r0 ble _0807AC5A adds r2, r0, 0 _0807AC5A: adds r6, r1, 0 cmp r6, r2 bge _0807ACB4 _0807AC60: mov r4, r10 adds r0, r6, 0x1 mov r9, r0 cmp r4, r7 bge _0807ACAE mov r1, r8 lsls r0, r1, 2 mov r1, sp adds r5, r0, r1 _0807AC72: adds r0, r4, 0 adds r1, r6, 0 str r2, [sp, 0x1A4] bl sub_8049590 adds r1, r0, 0 ldr r0, [r1, 0x10] ldr r2, [sp, 0x1A4] cmp r0, 0 bne _0807ACA8 ldrh r1, [r1] movs r0, 0x3 ands r0, r1 cmp r0, 0x1 bne _0807ACA8 movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0807ACA8 mov r0, r8 cmp r0, 0x63 bgt _0807ACA8 strh r4, [r5] strh r6, [r5, 0x2] adds r5, 0x4 movs r1, 0x1 add r8, r1 _0807ACA8: adds r4, 0x1 cmp r4, r7 blt _0807AC72 _0807ACAE: mov r6, r9 cmp r6, r2 blt _0807AC60 _0807ACB4: ldr r0, _0807AD74 movs r2, 0 ldrsh r0, [r0, r2] ldr r1, _0807AD78 movs r4, 0 ldrsh r1, [r1, r4] bl sub_808411C adds r7, r0, 0 cmp r7, r8 blt _0807ACCC mov r7, r8 _0807ACCC: movs r6, 0 cmp r6, r7 bge _0807ADA0 mov r10, r6 _0807ACD4: mov r0, r8 bl sub_8084100 adds r2, r0, 0 movs r3, 0 cmp r3, r8 bge _0807AD0C lsls r0, r2, 2 mov r5, sp adds r1, r5, r0 movs r4, 0 ldrsh r1, [r1, r4] adds r5, r0, 0 cmp r1, 0 bne _0807AD1C _0807ACF2: adds r2, 0x1 cmp r2, r8 blt _0807ACFA movs r2, 0 _0807ACFA: adds r3, 0x1 cmp r3, r8 bge _0807AD0C lsls r0, r2, 2 add r0, sp movs r5, 0 ldrsh r0, [r0, r5] cmp r0, 0 beq _0807ACF2 _0807AD0C: lsls r0, r2, 2 mov r2, sp adds r1, r2, r0 movs r4, 0 ldrsh r1, [r1, r4] adds r5, r0, 0 cmp r1, 0 beq _0807ADA0 _0807AD1C: movs r0, 0x1 bl sub_803D970 add r4, sp, 0x190 movs r1, 0 strh r0, [r4] mov r0, r10 strh r0, [r4, 0x8] strb r1, [r4, 0x2] mov r1, r10 str r1, [r4, 0x4] movs r0, 0x1 strb r0, [r4, 0x10] mov r2, sp adds r1, r2, r5 ldrh r0, [r1] strh r0, [r4, 0xC] ldrh r0, [r1, 0x2] strh r0, [r4, 0xE] movs r5, 0 ldrsh r0, [r4, r5] movs r1, 0x1 bl sub_806AA0C lsls r0, 24 adds r6, 0x1 mov r9, r6 cmp r0, 0 beq _0807AD9A adds r0, r4, 0 movs r1, 0 bl sub_806B7F8 adds r4, r0, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0807AD9A movs r0, 0xC8 lsls r0, 8 str r0, [r4, 0x1C] movs r5, 0 b _0807AD84 .align 2, 0 _0807AD74: .4byte gUnknown_80F4DA2 _0807AD78: .4byte gUnknown_80F4DA4 _0807AD7C: movs r0, 0x57 bl sub_803E46C adds r5, 0x1 _0807AD84: cmp r5, 0x63 bgt _0807AD96 ldr r0, [r4, 0x1C] movs r1, 0xAA bl sub_8009DA4 str r0, [r4, 0x1C] cmp r0, 0xFF bgt _0807AD7C _0807AD96: mov r0, r10 str r0, [r4, 0x1C] _0807AD9A: mov r6, r9 cmp r6, r7 blt _0807ACD4 _0807ADA0: movs r0, 0x1 bl sub_804178C _0807ADA6: add sp, 0x1A8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_807AB38 thumb_func_start sub_807ADB8 sub_807ADB8: push {r4-r7,lr} adds r5, r0, 0 lsls r1, 24 lsrs r7, r1, 24 ldr r4, [r5, 0x70] adds r0, r4, 0 adds r0, 0x79 movs r6, 0 strb r6, [r0] adds r0, 0x1 strb r6, [r0] adds r0, 0x1 strb r6, [r0] adds r0, r5, 0 movs r1, 0x7 bl sub_80718AC lsls r0, 24 cmp r0, 0 beq _0807ADFA movs r1, 0x10 ldrsh r0, [r4, r1] lsrs r1, r0, 31 adds r0, r1 movs r2, 0xE ldrsh r1, [r4, r2] asrs r0, 1 cmp r1, r0 bgt _0807ADFA adds r0, r4, 0 adds r0, 0x44 strh r6, [r0] b _0807AEB4 _0807ADFA: adds r0, r5, 0 movs r1, 0x9 bl sub_80718AC lsls r0, 24 cmp r0, 0 beq _0807AE12 adds r1, r4, 0 adds r1, 0x44 movs r0, 0 strh r0, [r1] b _0807AEB4 _0807AE12: ldrb r0, [r4, 0x7] cmp r0, 0 bne _0807AE32 movs r1, 0x9E lsls r1, 1 adds r0, r4, r1 ldr r0, [r0] bl sub_8094450 adds r1, r0, 0 cmp r1, 0 bne _0807AE32 adds r0, r4, 0 adds r0, 0x44 strh r1, [r0] b _0807AEB4 _0807AE32: adds r0, r4, 0 adds r0, 0xA4 ldrb r0, [r0] cmp r0, 0x1 bne _0807AE6A adds r0, r4, 0 adds r0, 0x44 movs r2, 0x2 ldrsh r1, [r4, r2] bl sub_8044CA0 movs r0, 0x8 bl sub_8084100 adds r1, r4, 0 adds r1, 0x46 strb r0, [r1] ldrh r1, [r5, 0x4] movs r2, 0xB6 lsls r2, 1 adds r0, r4, r2 strh r1, [r0] ldrh r0, [r5, 0x6] subs r0, 0x1 adds r2, 0x2 adds r1, r4, r2 strh r0, [r1] b _0807AEB4 _0807AE6A: adds r0, r5, 0 adds r1, r7, 0 bl sub_8071518 lsls r0, 24 cmp r0, 0 beq _0807AE80 adds r0, r5, 0 bl sub_807B5E0 b _0807AE9C _0807AE80: adds r0, r5, 0 bl sub_807AEBC lsls r0, 24 cmp r0, 0 beq _0807AE96 adds r1, r4, 0 adds r1, 0x44 movs r0, 0x3F strh r0, [r1] b _0807AEB4 _0807AE96: adds r0, r5, 0 bl sub_807AF58 _0807AE9C: lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 bne _0807AEAC adds r0, r4, 0 adds r0, 0x44 strh r2, [r0] b _0807AEB4 _0807AEAC: adds r0, r5, 0 adds r1, r7, 0 bl sub_807B2D8 _0807AEB4: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_807ADB8 thumb_func_start sub_807AEBC sub_807AEBC: push {r4-r6,lr} adds r4, r0, 0 ldr r5, [r4, 0x70] bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0807AF50 adds r0, r4, 0 bl sub_8070C60 lsls r0, 24 cmp r0, 0 bne _0807AF50 adds r0, r4, 0 bl sub_8045128 adds r6, r0, 0 ldr r4, [r6, 0x14] cmp r4, 0 beq _0807AF50 adds r0, r4, 0 bl sub_80450F8 cmp r0, 0x5 bhi _0807AF50 lsls r0, 2 ldr r1, _0807AEFC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0807AEFC: .4byte _0807AF00 .align 2, 0 _0807AF00: .4byte _0807AF50 .4byte _0807AF50 .4byte _0807AF50 .4byte _0807AF18 .4byte _0807AF50 .4byte _0807AF50 _0807AF18: ldrb r0, [r5, 0x7] cmp r0, 0 bne _0807AF50 adds r0, r5, 0 adds r0, 0x60 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0807AF50 ldrh r1, [r6] movs r0, 0x3 ands r0, r1 cmp r0, 0 bne _0807AF3C ldrb r0, [r5, 0x6] cmp r0, 0 bne _0807AF50 _0807AF3C: adds r0, r4, 0 bl sub_8045108 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _0807AF50 movs r0, 0x1 b _0807AF52 _0807AF50: movs r0, 0 _0807AF52: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_807AEBC thumb_func_start sub_807AF58 sub_807AF58: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC mov r8, r0 ldr r7, [r0, 0x70] bl sub_8072C88 lsls r0, 24 cmp r0, 0 beq _0807AF74 b _0807B12C _0807AF74: ldr r0, _0807AF8C ldr r1, [r0] ldr r2, _0807AF90 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 beq _0807AF98 ldr r3, _0807AF94 adds r6, r1, r3 movs r4, 0x14 mov r10, r4 b _0807AFB4 .align 2, 0 _0807AF8C: .4byte gUnknown_203B418 _0807AF90: .4byte 0x000037fc _0807AF94: .4byte 0x000135cc _0807AF98: ldrb r0, [r7, 0x6] cmp r0, 0 beq _0807AFAC ldr r0, _0807AFA8 adds r6, r1, r0 movs r1, 0x4 mov r10, r1 b _0807AFB4 .align 2, 0 _0807AFA8: .4byte 0x0001357c _0807AFAC: ldr r2, _0807B01C adds r6, r1, r2 movs r3, 0x10 mov r10, r3 _0807AFB4: mov r0, r8 bl sub_8070460 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x4] movs r4, 0x1 negs r4, r4 str r4, [sp] ldr r0, _0807B020 mov r9, r0 movs r5, 0 adds r1, r7, 0 adds r1, 0x78 str r1, [sp, 0x8] cmp r5, r10 bge _0807B09E _0807AFD6: lsls r0, r5, 2 adds r0, r6 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0807B098 ldr r0, [r4, 0x70] adds r1, r0, 0 adds r1, 0xA4 ldrb r1, [r1] adds r2, r0, 0 cmp r1, 0 bne _0807B098 ldr r0, _0807B024 ldr r0, [r0] ldr r3, _0807B028 adds r0, r3 ldrb r0, [r0] cmp r0, 0 beq _0807B02C mov r0, r8 adds r1, r4, 0 movs r2, 0 movs r3, 0x1 bl sub_8071598 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0807B098 ldr r2, [r4, 0x70] b _0807B03C .align 2, 0 _0807B01C: .4byte 0x0001358c _0807B020: .4byte 0x000003e7 _0807B024: .4byte gUnknown_203B418 _0807B028: .4byte 0x000037fc _0807B02C: ldrb r0, [r7, 0x6] cmp r0, 0 bne _0807B03C adds r0, r2, 0 adds r0, 0xB0 ldrb r0, [r0] cmp r0, 0x6 beq _0807B098 _0807B03C: ldrb r0, [r2, 0x8] cmp r0, 0x1 beq _0807B098 ldr r0, [sp, 0x4] cmp r0, 0 beq _0807B074 mov r2, r8 movs r3, 0x4 ldrsh r1, [r2, r3] movs r2, 0x4 ldrsh r0, [r4, r2] subs r1, r0 cmp r1, 0 bge _0807B05A negs r1, r1 _0807B05A: cmp r1, 0x5 bgt _0807B074 mov r3, r8 movs r0, 0x6 ldrsh r1, [r3, r0] movs r2, 0x6 ldrsh r0, [r4, r2] subs r1, r0 cmp r1, 0 bge _0807B070 negs r1, r1 _0807B070: cmp r1, 0x5 ble _0807B082 _0807B074: mov r0, r8 adds r1, r4, 0 bl sub_8045A00 lsls r0, 24 cmp r0, 0 beq _0807B098 _0807B082: adds r1, r4, 0x4 mov r0, r8 adds r0, 0x4 bl sub_8098434 cmp r9, r0 ble _0807B098 mov r9, r0 str r5, [sp] cmp r0, 0x1 ble _0807B09E _0807B098: adds r5, 0x1 cmp r5, r10 blt _0807AFD6 _0807B09E: ldr r3, [sp] cmp r3, 0 blt _0807B12C movs r2, 0 movs r5, 0x1 ldr r4, [sp, 0x8] strb r5, [r4] adds r1, r7, 0 adds r1, 0x88 lsls r0, r3, 2 adds r4, r0, r6 ldr r0, [r4] ldr r0, [r0, 0x4] str r0, [r1] subs r1, 0x8 ldr r0, [r4] str r0, [r1] ldrh r1, [r0, 0x26] adds r0, r7, 0 adds r0, 0x7C strh r1, [r0] subs r0, 0x2 strb r5, [r0] movs r1, 0x8A lsls r1, 1 adds r0, r7, r1 str r2, [r0] mov r0, r8 movs r1, 0x8 bl sub_80718AC lsls r0, 24 cmp r0, 0 bne _0807B0E4 b _0807B2C6 _0807B0E4: mov r0, r8 bl sub_80719C4 lsls r0, 24 cmp r0, 0 beq _0807B0F2 b _0807B2C6 _0807B0F2: mov r2, r8 movs r3, 0x4 ldrsh r1, [r2, r3] ldr r2, [r4] movs r4, 0x4 ldrsh r0, [r2, r4] subs r1, r0 cmp r1, 0 bge _0807B106 negs r1, r1 _0807B106: cmp r1, 0x1 ble _0807B10C b _0807B2C6 _0807B10C: mov r0, r8 movs r3, 0x6 ldrsh r1, [r0, r3] movs r4, 0x6 ldrsh r0, [r2, r4] subs r0, r1, r0 cmp r0, 0 bge _0807B11E negs r0, r0 _0807B11E: cmp r0, 0x1 ble _0807B124 b _0807B2C6 _0807B124: adds r0, r7, 0 adds r0, 0x7B strb r5, [r0] b _0807B2C6 _0807B12C: mov r0, r8 movs r1, 0x1 bl sub_80718AC lsls r0, 24 cmp r0, 0 bne _0807B17C ldrb r5, [r7, 0x6] adds r0, r7, 0 adds r0, 0x78 str r0, [sp, 0x8] cmp r5, 0 bne _0807B222 mov r0, r8 bl sub_8072CA8 adds r4, r0, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0807B222 movs r0, 0x1 ldr r1, [sp, 0x8] strb r0, [r1] adds r1, r7, 0 adds r1, 0x88 ldr r0, [r4, 0x4] str r0, [r1] adds r0, r7, 0 adds r0, 0x80 str r4, [r0] ldrh r1, [r4, 0x26] subs r0, 0x4 strh r1, [r0] movs r2, 0x8A lsls r2, 1 adds r0, r7, r2 str r5, [r0] b _0807B2C6 _0807B17C: ldrb r0, [r7, 0x7] adds r3, r7, 0 adds r3, 0x78 str r3, [sp, 0x8] cmp r0, 0 beq _0807B222 ldr r4, _0807B1BC ldr r0, [r4] ldr r1, _0807B1C0 adds r0, r1 ldrb r0, [r0] mov r2, r8 movs r3, 0x4 ldrsh r0, [r2, r3] movs r3, 0x6 ldrsh r1, [r2, r3] bl sub_804954C ldrb r1, [r0, 0x9] cmp r1, 0xFF bne _0807B1C4 mov r4, r8 movs r0, 0x4 ldrsh r1, [r4, r0] subs r2, r1, 0x2 mov r10, r2 movs r3, 0x6 ldrsh r0, [r4, r3] subs r2, r0, 0x2 adds r6, r1, 0x2 adds r0, 0x2 b _0807B1EC .align 2, 0 _0807B1BC: .4byte gUnknown_203B418 _0807B1C0: .4byte 0x00018209 _0807B1C4: lsls r0, r1, 3 subs r0, r1 lsls r0, 2 ldr r1, _0807B26C adds r0, r1 ldr r1, [r4] adds r1, r0 movs r2, 0x2 ldrsh r0, [r1, r2] subs r0, 0x1 mov r10, r0 movs r3, 0x4 ldrsh r0, [r1, r3] subs r2, r0, 0x1 movs r4, 0x6 ldrsh r0, [r1, r4] adds r6, r0, 0x1 movs r3, 0x8 ldrsh r0, [r1, r3] adds r0, 0x1 _0807B1EC: mov r9, r0 adds r5, r2, 0 adds r4, r7, 0 adds r4, 0x78 str r4, [sp, 0x8] cmp r5, r9 bgt _0807B222 _0807B1FA: mov r4, r10 cmp r4, r6 bgt _0807B21C _0807B200: adds r0, r4, 0 adds r1, r5, 0 bl sub_8049590 ldr r0, [r0, 0x14] cmp r0, 0 beq _0807B216 bl sub_80450F8 cmp r0, 0x3 beq _0807B270 _0807B216: adds r4, 0x1 cmp r4, r6 ble _0807B200 _0807B21C: adds r5, 0x1 cmp r5, r9 ble _0807B1FA _0807B222: ldr r1, [sp, 0x8] ldrb r0, [r1] subs r0, 0x1 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _0807B2C0 adds r3, r7, 0 adds r3, 0x80 ldr r1, [r3] cmp r1, 0 beq _0807B2C0 adds r2, r7, 0 adds r2, 0x7C ldrh r0, [r1, 0x26] ldrh r4, [r2] cmp r0, r4 bne _0807B2B4 ldr r1, [r1, 0x70] mov r9, r1 movs r5, 0 mov r4, r9 adds r4, 0x68 _0807B250: lsls r6, r5, 2 mov r0, r8 adds r1, r4, 0 bl sub_8045ABC lsls r0, 24 cmp r0, 0 bne _0807B294 adds r4, 0x4 adds r5, 0x1 cmp r5, 0x3 ble _0807B250 b _0807B2C0 .align 2, 0 _0807B26C: .4byte 0x000104c4 _0807B270: movs r1, 0 movs r0, 0x7 ldr r2, [sp, 0x8] strb r0, [r2] adds r0, r7, 0 adds r0, 0x88 strh r4, [r0] adds r0, 0x2 strh r5, [r0] subs r0, 0xA str r1, [r0] subs r0, 0x4 strh r1, [r0] movs r3, 0x8A lsls r3, 1 adds r0, r7, r3 str r1, [r0] b _0807B2C6 _0807B294: movs r2, 0 movs r0, 0x2 ldr r4, [sp, 0x8] strb r0, [r4] adds r1, r7, 0 adds r1, 0x88 mov r0, r9 adds r0, 0x68 adds r0, r6 ldr r0, [r0] str r0, [r1] movs r1, 0x8A lsls r1, 1 adds r0, r7, r1 str r2, [r0] b _0807B2C6 _0807B2B4: movs r1, 0 movs r0, 0x6 ldr r4, [sp, 0x8] strb r0, [r4] str r1, [r3] strh r1, [r2] _0807B2C0: mov r0, r8 bl sub_807B920 _0807B2C6: movs r0, 0x1 add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_807AF58 thumb_func_start sub_807B2D8 sub_807B2D8: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x3C mov r9, r0 lsls r1, 24 lsrs r7, r1, 24 ldr r5, [r0, 0x70] movs r0, 0xB6 lsls r0, 1 adds r1, r5, r0 adds r4, r5, 0 adds r4, 0x88 ldr r0, [r4] str r0, [r1] mov r2, r9 ldr r1, [r2, 0x4] ldr r0, [r4] cmp r1, r0 beq _0807B348 mov r6, r9 adds r6, 0x4 adds r0, r6, 0 adds r1, r4, 0 bl sub_80983D8 mov r8, r0 adds r0, r5, 0 adds r0, 0x7A ldrb r1, [r0] mov r0, r9 bl sub_8071470 lsls r0, 24 cmp r0, 0 beq _0807B366 adds r0, r5, 0 adds r0, 0x78 ldrb r0, [r0] cmp r0, 0x1 bne _0807B37C adds r0, r6, 0 adds r1, r4, 0 bl sub_8083478 lsls r0, 24 cmp r0, 0 beq _0807B37C adds r0, r6, 0 adds r1, r4, 0 bl sub_8098434 cmp r0, 0x2 bne _0807B354 _0807B348: adds r0, r5, 0 adds r0, 0x44 movs r1, 0x1 bl sub_8044C94 b _0807B5CE _0807B354: cmp r0, 0x1 bgt _0807B37C movs r3, 0x4 add r8, r3 movs r0, 0x7 mov r1, r8 ands r1, r0 mov r8, r1 b _0807B37C _0807B366: adds r0, r5, 0 adds r0, 0x7B ldrb r0, [r0] cmp r0, 0 beq _0807B37C movs r2, 0x4 add r8, r2 movs r0, 0x7 mov r3, r8 ands r3, r0 mov r8, r3 _0807B37C: add r4, sp, 0x30 mov r0, r9 mov r1, r8 adds r2, r4, 0 bl sub_8071214 lsls r0, 24 cmp r0, 0 beq _0807B3A8 adds r0, r5, 0 adds r0, 0x44 movs r2, 0x2 ldrsh r1, [r5, r2] bl sub_8044CA0 movs r0, 0x7 mov r3, r8 ands r3, r0 adds r0, r5, 0 adds r0, 0x46 strb r3, [r0] b _0807B5CE _0807B3A8: ldrb r0, [r4] cmp r0, 0 beq _0807B444 ldrb r0, [r5, 0x6] cmp r0, 0 bne _0807B3E8 ldr r1, _0807B3E0 adds r0, r5, r1 ldrb r0, [r0] cmp r0, 0 bne _0807B3E8 adds r0, r5, 0 adds r0, 0x79 movs r4, 0x1 strb r4, [r0] movs r2, 0xA2 lsls r2, 1 adds r0, r5, r2 strb r4, [r0] adds r0, r5, 0 adds r0, 0x44 movs r1, 0x1 bl sub_8044C94 ldr r3, _0807B3E4 adds r0, r5, r3 strb r4, [r0] b _0807B5CE .align 2, 0 _0807B3E0: .4byte 0x00000145 _0807B3E4: .4byte 0x00000147 _0807B3E8: mov r0, r9 movs r2, 0x4 ldrsh r1, [r0, r2] ldr r2, _0807B434 mov r3, r8 lsls r0, r3, 2 adds r2, r0, r2 movs r3, 0 ldrsh r0, [r2, r3] adds r1, r0 adds r0, r5, 0 adds r0, 0x88 movs r3, 0 ldrsh r0, [r0, r3] cmp r1, r0 bne _0807B43C mov r1, r9 movs r3, 0x6 ldrsh r0, [r1, r3] movs r3, 0x2 ldrsh r1, [r2, r3] adds r0, r1 adds r1, r5, 0 adds r1, 0x8A movs r2, 0 ldrsh r1, [r1, r2] cmp r0, r1 bne _0807B43C adds r0, r5, 0 adds r0, 0x44 movs r1, 0x1 bl sub_8044C94 ldr r3, _0807B438 adds r1, r5, r3 movs r0, 0x1 strb r0, [r1] b _0807B5CE .align 2, 0 _0807B434: .4byte gUnknown_80F4448 _0807B438: .4byte 0x00000147 _0807B43C: adds r1, r5, 0 adds r1, 0x79 movs r0, 0x1 strb r0, [r1] _0807B444: mov r3, sp mov r2, sp mov r1, sp add r0, sp, 0x28 movs r4, 0x1 strb r4, [r0] add r0, sp, 0x20 strb r4, [r0] strb r4, [r1, 0x18] strb r4, [r2, 0x10] strb r4, [r3, 0x8] ldrb r6, [r5, 0x6] cmp r6, 0 bne _0807B4C8 mov r0, r8 ands r0, r4 cmp r0, 0 beq _0807B4C8 mov r1, r9 movs r2, 0x4 ldrsh r0, [r1, r2] adds r1, r5, 0 adds r1, 0x88 movs r3, 0 ldrsh r1, [r1, r3] subs r2, r0, r1 cmp r2, 0 bge _0807B47E negs r2, r2 _0807B47E: mov r0, r9 movs r3, 0x6 ldrsh r1, [r0, r3] adds r0, r5, 0 adds r0, 0x8A movs r3, 0 ldrsh r0, [r0, r3] subs r1, r0 cmp r1, 0 bge _0807B494 negs r1, r1 _0807B494: cmp r2, 0x2 bgt _0807B4C8 cmp r1, 0x2 bgt _0807B4C8 cmp r2, r1 beq _0807B4C8 movs r3, 0x2 mov r0, r8 ands r3, r0 cmp r3, 0 beq _0807B4BA cmp r2, r1 bge _0807B4B4 mov r0, sp strb r6, [r0, 0x10] b _0807B4C8 _0807B4B4: mov r0, sp strb r6, [r0, 0x8] b _0807B4C8 _0807B4BA: cmp r2, r1 bge _0807B4C4 mov r0, sp strb r3, [r0, 0x8] b _0807B4C8 _0807B4C4: mov r0, sp strb r3, [r0, 0x10] _0807B4C8: movs r1, 0x3 mov r10, r1 mov r0, r9 adds r1, r7, 0 bl sub_8071518 lsls r0, 24 cmp r0, 0 bne _0807B4E4 adds r0, r5, 0 adds r0, 0x7B ldrb r0, [r0] cmp r0, 0 beq _0807B4E8 _0807B4E4: movs r2, 0x5 mov r10, r2 _0807B4E8: movs r6, 0x1 adds r3, r5, 0 adds r3, 0x44 str r3, [sp, 0x34] cmp r6, r10 bge _0807B53C mov r3, sp mov r4, sp adds r4, 0xA add r7, sp, 0x8 _0807B4FC: lsls r0, r6, 3 add r2, sp, 0x4 adds r2, r0 ldr r1, _0807B598 lsls r0, r6, 2 adds r0, r1 ldr r1, [r0] add r1, r8 movs r0, 0x7 ands r1, r0 str r1, [r2] mov r0, r9 adds r2, r4, 0 str r3, [sp, 0x38] bl sub_8071214 strb r0, [r7, 0x1] lsls r0, 24 ldr r3, [sp, 0x38] cmp r0, 0 bne _0807B532 ldrb r0, [r4] cmp r0, 0 bne _0807B532 movs r0, 0x1 strb r0, [r3, 0x10] strb r0, [r3, 0x8] _0807B532: adds r4, 0x8 adds r7, 0x8 adds r6, 0x1 cmp r6, r10 blt _0807B4FC _0807B53C: movs r6, 0x1 cmp r6, r10 bge _0807B56E adds r3, r5, 0 adds r3, 0x79 add r1, sp, 0x8 movs r4, 0x8 movs r7, 0x1 _0807B54C: adds r2, r4, 0 ldrb r0, [r1, 0x1] cmp r0, 0 beq _0807B55A ldrb r0, [r1] cmp r0, 0 bne _0807B5A0 _0807B55A: ldrb r0, [r1, 0x2] cmp r0, 0 beq _0807B562 strb r7, [r3] _0807B562: adds r1, 0x8 adds r4, r2, 0 adds r4, 0x8 adds r6, 0x1 cmp r6, r10 blt _0807B54C _0807B56E: ldr r0, [sp, 0x34] movs r1, 0x1 bl sub_8044C94 ldr r1, _0807B59C adds r0, r5, r1 movs r1, 0 movs r2, 0x1 strb r2, [r0] ldrb r0, [r5, 0x7] cmp r0, 0 beq _0807B5BC adds r0, r5, 0 adds r0, 0x79 strb r1, [r0] movs r2, 0xA2 lsls r2, 1 adds r0, r5, r2 strb r1, [r0] b _0807B5CE .align 2, 0 _0807B598: .4byte gUnknown_80F4D04 _0807B59C: .4byte 0x00000147 _0807B5A0: movs r3, 0x2 ldrsh r1, [r5, r3] ldr r0, [sp, 0x34] bl sub_8044CA0 add r0, sp, 0x4 adds r0, r4 ldr r0, [r0] movs r1, 0x7 ands r0, r1 adds r1, r5, 0 adds r1, 0x46 strb r0, [r1] b _0807B5CE _0807B5BC: adds r0, r5, 0 adds r0, 0x79 ldrb r0, [r0] cmp r0, 0 beq _0807B5CE movs r1, 0xA2 lsls r1, 1 adds r0, r5, r1 strb r2, [r0] _0807B5CE: add sp, 0x3C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_807B2D8 thumb_func_start sub_807B5E0 sub_807B5E0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x30 adds r7, r0, 0 ldr r0, _0807B61C str r0, [sp, 0x8] ldr r1, [r7, 0x70] str r1, [sp, 0x10] adds r0, r7, 0 bl sub_80450FC lsls r0, 24 lsrs r0, 24 mov r10, r0 ldr r0, _0807B620 ldr r1, [r0] ldr r2, _0807B624 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 beq _0807B62C ldr r3, _0807B628 adds r0, r1, r3 movs r4, 0x14 mov r9, r4 b _0807B64C .align 2, 0 _0807B61C: .4byte 0x000f423f _0807B620: .4byte gUnknown_203B418 _0807B624: .4byte 0x000037fc _0807B628: .4byte 0x000135cc _0807B62C: ldr r2, [sp, 0x10] ldrb r0, [r2, 0x6] cmp r0, 0 beq _0807B644 ldr r3, _0807B640 adds r0, r1, r3 movs r4, 0x4 mov r9, r4 b _0807B64C .align 2, 0 _0807B640: .4byte 0x0001357c _0807B644: ldr r2, _0807B790 adds r0, r1, r2 movs r3, 0x10 mov r9, r3 _0807B64C: movs r4, 0 str r4, [sp, 0xC] movs r1, 0xFF str r1, [sp, 0x4] mov r8, r4 cmp r4, r9 bge _0807B6D8 adds r6, r0, 0 _0807B65C: ldr r4, [r6] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0807B6CE adds r0, r7, 0 adds r1, r4, 0 bl sub_8045990 lsls r0, 24 cmp r0, 0 beq _0807B6CE ldr r0, _0807B794 ldr r0, [r0] ldr r2, _0807B798 adds r0, r2 ldrb r0, [r0] cmp r0, 0 beq _0807B69A adds r0, r7, 0 adds r1, r4, 0 movs r2, 0 movs r3, 0x1 bl sub_8071598 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0807B6CE _0807B69A: adds r1, r4, 0x4 adds r0, r7, 0x4 bl sub_8098434 ldr r3, [sp, 0x8] cmp r3, r0 ble _0807B6CE str r0, [sp, 0x8] str r4, [sp, 0xC] adds r0, r4, 0 bl sub_80450FC lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x4] ldr r1, [sp, 0x10] adds r1, 0x88 ldr r4, [sp, 0xC] ldr r0, [r4, 0x4] str r0, [r1] ldr r0, [sp, 0x10] movs r2, 0xB6 lsls r2, 1 adds r1, r0, r2 ldr r0, [r4, 0x4] str r0, [r1] _0807B6CE: adds r6, 0x4 movs r3, 0x1 add r8, r3 cmp r8, r9 blt _0807B65C _0807B6D8: ldr r0, _0807B79C ldr r4, [sp, 0x8] cmp r4, r0 bne _0807B6E2 b _0807B906 _0807B6E2: ldr r0, [sp, 0x10] adds r0, 0x88 str r0, [sp, 0x28] ldr r1, [sp, 0x10] adds r1, 0x78 str r1, [sp, 0x24] ldr r2, [sp, 0x4] cmp r10, r2 beq _0807B6F6 b _0807B8E0 _0807B6F6: mov r3, r10 cmp r3, 0xFF bne _0807B6FE b _0807B8E0 _0807B6FE: movs r4, 0x4 ldrsh r0, [r7, r4] movs r2, 0x6 ldrsh r1, [r7, r2] bl sub_804954C ldrh r1, [r0] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _0807B7B2 ldrh r0, [r7, 0x6] lsls r0, 16 ldrh r5, [r7, 0x4] orrs r5, r0 movs r4, 0 _0807B71E: ldr r1, _0807B7A0 lsls r0, r4, 2 adds r0, r1 ldrh r1, [r0] ldrh r3, [r7, 0x4] adds r1, r3 lsls r1, 16 ldrh r0, [r0, 0x2] ldrh r2, [r7, 0x6] adds r0, r2 lsls r0, 16 lsrs r5, r1, 16 orrs r5, r0 lsls r0, r5, 16 asrs r0, 16 asrs r1, r5, 16 bl sub_804954C ldrb r0, [r0, 0x9] cmp r0, r10 beq _0807B758 adds r0, r7, 0 adds r1, r4, 0 mov r2, sp bl sub_8071214 lsls r0, 24 cmp r0, 0 bne _0807B75E _0807B758: adds r4, 0x1 cmp r4, 0x7 ble _0807B71E _0807B75E: cmp r4, 0x8 bne _0807B7A4 movs r0, 0x8 bl sub_8084100 adds r4, r0, 0 movs r0, 0x6 ldr r3, [sp, 0x24] strb r0, [r3] ldr r0, _0807B7A0 lsls r1, r4, 2 adds r1, r0 ldrh r0, [r1] ldrh r4, [r7, 0x4] adds r0, r4 ldr r2, [sp, 0x28] strh r0, [r2] ldrh r0, [r1, 0x2] ldrh r7, [r7, 0x6] adds r0, r7 ldr r1, [sp, 0x10] adds r1, 0x8A strh r0, [r1] movs r0, 0x1 b _0807B910 .align 2, 0 _0807B790: .4byte 0x0001358c _0807B794: .4byte gUnknown_203B418 _0807B798: .4byte 0x000037fc _0807B79C: .4byte 0x000f423f _0807B7A0: .4byte gUnknown_80F4448 _0807B7A4: movs r0, 0x5 ldr r3, [sp, 0x24] strb r0, [r3] ldr r4, [sp, 0x28] str r5, [r4] movs r0, 0x1 b _0807B910 _0807B7B2: ldr r0, _0807B8D0 mov r2, r10 lsls r1, r2, 7 ldr r3, _0807B8D4 adds r1, r3 ldr r0, [r0] adds r1, r0, r1 str r1, [sp, 0x18] lsls r1, r2, 1 ldr r4, _0807B8D8 adds r0, r4 adds r0, r1 movs r2, 0 ldrsh r1, [r0, r2] str r1, [sp, 0x14] ldr r3, _0807B8DC str r3, [sp, 0x20] movs r4, 0 str r4, [sp, 0x1C] ldr r0, [sp, 0xC] movs r1, 0x4 ldrsh r3, [r0, r1] movs r2, 0x4 ldrsh r0, [r7, r2] subs r2, r3, r0 cmp r2, 0 bge _0807B7EA negs r2, r2 _0807B7EA: ldr r4, [sp, 0xC] movs r0, 0x6 ldrsh r1, [r4, r0] movs r4, 0x6 ldrsh r0, [r7, r4] subs r1, r0 mov r8, r1 cmp r1, 0 bge _0807B802 mov r0, r8 negs r0, r0 mov r8, r0 _0807B802: cmp r8, r2 bge _0807B808 mov r8, r2 _0807B808: movs r1, 0 mov r9, r1 ldr r2, [sp, 0x10] adds r2, 0x8A str r2, [sp, 0x2C] ldr r4, [sp, 0x1C] ldr r0, [sp, 0x14] cmp r4, r0 bge _0807B8AA mov r10, r3 ldr r6, [sp, 0x18] _0807B81E: movs r1, 0 ldrsh r3, [r6, r1] mov r2, r10 subs r0, r2, r3 cmp r0, 0 bge _0807B82C negs r0, r0 _0807B82C: ldr r4, [sp, 0xC] movs r1, 0x6 ldrsh r4, [r4, r1] mov r12, r4 movs r4, 0x2 ldrsh r2, [r6, r4] mov r4, r12 subs r1, r4, r2 cmp r1, 0 bge _0807B842 negs r1, r1 _0807B842: cmp r1, r0 bge _0807B848 adds r1, r0, 0 _0807B848: movs r0, 0x4 ldrsh r4, [r7, r0] subs r0, r3, r4 movs r3, 0x6 ldrsh r5, [r7, r3] subs r3, r2, r5 movs r2, 0x1 negs r2, r2 cmp r0, r2 bge _0807B85E adds r0, r2, 0 _0807B85E: cmp r3, r2 bge _0807B864 adds r3, r2, 0 _0807B864: cmp r0, 0x1 ble _0807B86A movs r0, 0x1 _0807B86A: cmp r3, 0x1 ble _0807B870 movs r3, 0x1 _0807B870: adds r0, r4, r0 mov r4, r10 subs r2, r4, r0 cmp r2, 0 bge _0807B87C negs r2, r2 _0807B87C: adds r0, r5, r3 mov r3, r12 subs r0, r3, r0 cmp r0, 0 bge _0807B888 negs r0, r0 _0807B888: cmp r0, r2 bge _0807B88E adds r0, r2, 0 _0807B88E: cmp r0, r8 blt _0807B89E ldr r4, [sp, 0x20] cmp r4, r1 bge _0807B89E mov r0, r9 str r0, [sp, 0x1C] str r1, [sp, 0x20] _0807B89E: adds r6, 0x4 movs r1, 0x1 add r9, r1 ldr r2, [sp, 0x14] cmp r9, r2 blt _0807B81E _0807B8AA: ldr r3, [sp, 0x20] cmp r3, 0 blt _0807B8E0 movs r0, 0x5 ldr r4, [sp, 0x24] strb r0, [r4] ldr r1, [sp, 0x1C] lsls r0, r1, 2 ldr r2, [sp, 0x18] adds r0, r2 ldrh r1, [r0] ldr r3, [sp, 0x28] strh r1, [r3] ldrh r0, [r0, 0x2] ldr r4, [sp, 0x2C] strh r0, [r4] movs r0, 0x1 b _0807B910 .align 2, 0 _0807B8D0: .4byte gUnknown_203B418 _0807B8D4: .4byte 0x00010884 _0807B8D8: .4byte 0x00010844 _0807B8DC: .4byte 0xfff0bdc1 _0807B8E0: movs r0, 0x5 ldr r1, [sp, 0x24] strb r0, [r1] ldr r2, [sp, 0xC] ldrh r1, [r2, 0x4] ldrh r0, [r7, 0x4] subs r1, r0 subs r0, r1 ldr r3, [sp, 0x28] strh r0, [r3] ldrh r0, [r2, 0x6] ldrh r1, [r7, 0x6] subs r0, r1 subs r1, r0 ldr r0, [sp, 0x10] adds r0, 0x8A strh r1, [r0] movs r0, 0x1 b _0807B910 _0807B906: adds r0, r7, 0 bl sub_807B920 lsls r0, 24 lsrs r0, 24 _0807B910: add sp, 0x30 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_807B5E0 thumb_func_start sub_807B920 sub_807B920: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 adds r6, r0, 0 ldr r7, [r6, 0x70] bl sub_80450FC lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0xFF bne _0807B9DC movs r0, 0 str r0, [sp, 0x4] adds r4, r7, 0 adds r4, 0x46 ldrb r0, [r4] adds r0, 0x4 mov r8, r0 movs r0, 0x7 mov r1, r8 ands r1, r0 mov r8, r1 adds r0, r6, 0 bl sub_807138C lsls r0, 24 mov r9, r4 cmp r0, 0 beq _0807B96C movs r0, 0x8 bl sub_8084100 strb r0, [r4] movs r2, 0x1 str r2, [sp, 0x4] _0807B96C: movs r3, 0 movs r4, 0x78 adds r4, r7 mov r10, r4 adds r0, r7, 0 adds r0, 0x88 str r0, [sp, 0x8] adds r7, 0x8A ldr r5, _0807B9D4 _0807B97E: mov r1, r9 ldrb r0, [r1] ldr r1, [r5] adds r4, r0, r1 movs r0, 0x7 ands r4, r0 ldr r2, [sp, 0x4] cmp r2, 0 beq _0807B994 cmp r4, r8 beq _0807B9AA _0807B994: adds r0, r6, 0 adds r1, r4, 0 mov r2, sp str r3, [sp, 0xC] bl sub_8071214 lsls r0, 24 ldr r3, [sp, 0xC] cmp r0, 0 beq _0807B9AA b _0807BB42 _0807B9AA: adds r5, 0x4 adds r3, 0x1 cmp r3, 0x7 ble _0807B97E movs r0, 0x8 bl sub_8084100 movs r1, 0x6 mov r3, r10 strb r1, [r3] ldr r1, _0807B9D8 lsls r0, 2 adds r0, r1 ldrh r1, [r0] ldrh r4, [r6, 0x4] adds r1, r4 ldr r2, [sp, 0x8] strh r1, [r2] ldrh r0, [r0, 0x2] b _0807BB5A .align 2, 0 _0807B9D4: .4byte gUnknown_80F4D04 _0807B9D8: .4byte gUnknown_80F4448 _0807B9DC: ldr r0, _0807BA30 ldr r2, [r0] lsls r1, r3, 1 ldr r4, _0807BA34 adds r0, r2, r4 adds r0, r1 movs r4, 0 ldrsh r1, [r0, r4] mov r8, r1 lsls r0, r3, 7 ldr r1, _0807BA38 adds r0, r1 adds r2, r0 mov r9, r2 movs r2, 0x8A lsls r2, 1 adds r0, r7, r2 ldr r0, [r0] cmp r0, 0 beq _0807BA40 movs r0, 0x8 bl sub_8084100 adds r2, r7, 0 adds r2, 0x78 movs r1, 0x6 strb r1, [r2] ldr r1, _0807BA3C lsls r0, 2 adds r0, r1 ldrh r1, [r0] ldrh r3, [r6, 0x4] adds r1, r3 adds r2, 0x10 strh r1, [r2] ldrh r0, [r0, 0x2] ldrh r6, [r6, 0x6] adds r0, r6 adds r1, r7, 0 adds r1, 0x8A strh r0, [r1] b _0807BB60 .align 2, 0 _0807BA30: .4byte gUnknown_203B418 _0807BA34: .4byte 0x00010844 _0807BA38: .4byte 0x00010884 _0807BA3C: .4byte gUnknown_80F4448 _0807BA40: adds r0, r7, 0 adds r0, 0x78 ldrb r1, [r0] mov r10, r0 cmp r1, 0x4 beq _0807BAA2 mov r4, r8 cmp r4, 0 bne _0807BA84 movs r0, 0x8 bl sub_8084100 adds r4, r0, 0 movs r0, 0x6 mov r1, r10 strb r0, [r1] ldr r0, _0807BA80 lsls r2, r4, 2 adds r2, r0 ldrh r0, [r2] ldrh r3, [r6, 0x4] adds r0, r3 adds r1, r7, 0 adds r1, 0x88 strh r0, [r1] ldrh r0, [r2, 0x2] ldrh r6, [r6, 0x6] adds r0, r6 adds r1, 0x2 strh r0, [r1] b _0807BB60 .align 2, 0 _0807BA80: .4byte gUnknown_80F4448 _0807BA84: movs r5, 0 _0807BA86: mov r0, r8 bl sub_8084100 adds r4, r0, 0 ldr r0, [r6, 0x4] lsls r1, r4, 2 mov r4, r9 adds r2, r1, r4 ldr r1, [r2] cmp r0, r1 bne _0807BB18 adds r5, 0x1 cmp r5, 0x9 ble _0807BA86 _0807BAA2: movs r1, 0x4 ldrsh r0, [r6, r1] movs r2, 0x6 ldrsh r1, [r6, r2] bl sub_804954C ldrh r1, [r0] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _0807BB60 movs r0, 0x8 bl sub_8084100 adds r4, r0, 0 movs r3, 0 mov r9, r3 _0807BAC4: movs r0, 0x7 ands r4, r0 movs r0, 0x4 ldrsh r2, [r6, r0] ldr r0, _0807BB14 lsls r1, r4, 2 adds r1, r0 movs r3, 0 ldrsh r0, [r1, r3] adds r2, r0 mov r8, r2 movs r0, 0x6 ldrsh r2, [r6, r0] movs r3, 0x2 ldrsh r0, [r1, r3] adds r5, r2, r0 mov r0, r8 adds r1, r5, 0 bl sub_804954C ldrb r0, [r0, 0x9] cmp r0, 0xFF bne _0807BB04 adds r0, r6, 0 adds r1, r4, 0 mov r2, sp adds r2, 0x1 bl sub_8071214 lsls r0, 24 cmp r0, 0 bne _0807BB2E _0807BB04: movs r0, 0x1 add r9, r0 adds r4, 0x1 mov r1, r9 cmp r1, 0x7 ble _0807BAC4 b _0807BB60 .align 2, 0 _0807BB14: .4byte gUnknown_80F4448 _0807BB18: movs r0, 0x4 mov r3, r10 strb r0, [r3] ldrh r1, [r2] adds r0, r7, 0 adds r0, 0x88 strh r1, [r0] ldrh r1, [r2, 0x2] adds r0, 0x2 strh r1, [r0] b _0807BB60 _0807BB2E: movs r0, 0x3 mov r4, r10 strb r0, [r4] adds r0, r7, 0 adds r0, 0x88 mov r1, r8 strh r1, [r0] adds r0, 0x2 strh r5, [r0] b _0807BB60 _0807BB42: movs r0, 0x3 mov r2, r10 strb r0, [r2] ldr r0, _0807BB74 lsls r1, r4, 2 adds r1, r0 ldrh r0, [r1] ldrh r3, [r6, 0x4] adds r0, r3 ldr r4, [sp, 0x8] strh r0, [r4] ldrh r0, [r1, 0x2] _0807BB5A: ldrh r6, [r6, 0x6] adds r0, r6 strh r0, [r7] _0807BB60: movs r0, 0x1 add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0807BB74: .4byte gUnknown_80F4448 thumb_func_end sub_807B920 thumb_func_start sub_807BB78 sub_807BB78: ldr r3, [r0, 0x70] adds r1, r3, 0 adds r1, 0x78 movs r2, 0 strb r2, [r1] adds r1, 0x10 ldr r0, [r0, 0x4] str r0, [r1] adds r0, r3, 0 adds r0, 0x80 str r2, [r0] subs r0, 0x4 strh r2, [r0] bx lr thumb_func_end sub_807BB78 thumb_func_start sub_807BB94 sub_807BB94: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x5C mov r10, r0 ldr r0, [r0, 0x70] mov r8, r0 mov r0, r10 movs r1, 0 bl sub_8070D04 lsls r0, 24 cmp r0, 0 beq _0807BBB6 b _0807C03A _0807BBB6: mov r0, r10 movs r1, 0x1 bl sub_8071518 lsls r0, 24 cmp r0, 0 beq _0807BBC6 b _0807C03A _0807BBC6: mov r0, r10 movs r1, 0x8 bl sub_80718AC lsls r0, 24 cmp r0, 0 beq _0807BBD6 b _0807C03A _0807BBD6: mov r0, r8 adds r0, 0xBC ldrb r0, [r0] cmp r0, 0x2 bne _0807BBF2 ldr r0, _0807BC70 movs r1, 0 ldrsh r0, [r0, r1] bl sub_8084144 lsls r0, 24 cmp r0, 0 beq _0807BBF2 b _0807C03A _0807BBF2: mov r0, r8 adds r0, 0xC0 ldrb r1, [r0] str r0, [sp, 0x50] cmp r1, 0 beq _0807BC7C movs r5, 0 movs r4, 0x8C lsls r4, 1 add r4, r8 _0807BC06: ldrb r1, [r4] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0807BC74 mov r0, r10 adds r1, r4, 0 bl sub_80570AC lsls r0, 24 cmp r0, 0 beq _0807BC74 mov r0, r8 adds r0, 0xC2 ldrb r0, [r0] cmp r0, r5 bne _0807BC74 mov r0, r8 adds r0, 0x44 movs r1, 0x15 bl sub_8044C94 adds r3, r5, 0 mov r6, r8 adds r6, 0x48 cmp r5, 0 bgt _0807BC3E b _0807C006 _0807BC3E: ldrb r1, [r4] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _0807BC4A b _0807C006 _0807BC4A: movs r4, 0x2 lsls r0, r5, 3 movs r2, 0x8C lsls r2, 1 adds r0, r2 mov r7, r8 adds r2, r0, r7 _0807BC58: subs r2, 0x8 subs r3, 0x1 cmp r3, 0 bgt _0807BC62 b _0807C006 _0807BC62: ldrb r1, [r2] adds r0, r4, 0 ands r0, r1 cmp r0, 0 bne _0807BC58 b _0807C006 .align 2, 0 _0807BC70: .4byte gUnknown_80F4DB2 _0807BC74: adds r4, 0x8 adds r5, 0x1 cmp r5, 0x3 ble _0807BC06 _0807BC7C: movs r0, 0 str r0, [sp, 0x44] movs r1, 0 str r1, [sp, 0x40] movs r2, 0x8C lsls r2, 1 add r2, r8 movs r4, 0x1 movs r3, 0x4 movs r5, 0x3 _0807BC90: ldrb r1, [r2] adds r0, r4, 0 ands r0, r1 cmp r0, 0 beq _0807BCB0 adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _0807BCA8 ldr r7, [sp, 0x40] adds r7, 0x1 str r7, [sp, 0x40] _0807BCA8: ldrb r0, [r2, 0x4] ldr r1, [sp, 0x44] adds r1, r0 str r1, [sp, 0x44] _0807BCB0: adds r2, 0x8 subs r5, 0x1 cmp r5, 0 bge _0807BC90 ldr r2, [sp, 0x44] cmp r2, 0 bne _0807BCF8 add r4, sp, 0x2C movs r1, 0xB0 lsls r1, 1 adds r0, r4, 0 bl sub_8092A88 mov r0, sp mov r1, r10 adds r2, r4, 0 bl sub_807C04C mov r0, sp ldrb r0, [r0] cmp r0, 0 bne _0807BCDE b _0807C03A _0807BCDE: mov r0, r8 adds r0, 0x44 movs r1, 0x17 bl sub_8044C94 mov r0, sp ldrb r1, [r0, 0x1] movs r0, 0x7 ands r0, r1 mov r1, r8 adds r1, 0x46 strb r0, [r1] b _0807C008 _0807BCF8: mov r0, r10 movs r1, 0xB bl sub_80718D8 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x48] mov r0, r10 movs r1, 0x6 bl sub_80718D8 lsls r0, 24 lsrs r0, 24 negs r1, r0 orrs r1, r0 lsrs r1, 31 str r1, [sp, 0x3C] movs r7, 0 str r7, [sp, 0x44] mov r0, sp adds r0, 0x28 str r0, [sp, 0x4C] adds r2, r0, 0 movs r1, 0x1 adds r0, 0x3 _0807BD2A: strb r1, [r0] subs r0, 0x1 cmp r0, r2 bge _0807BD2A ldr r1, [sp, 0x3C] cmp r1, 0 beq _0807BDC0 movs r2, 0x63 movs r4, 0 movs r5, 0 movs r3, 0x8C lsls r3, 1 add r3, r8 b _0807BD98 _0807BD46: cmp r5, 0 beq _0807BD7A ldrb r1, [r3] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _0807BD7A adds r0, r4, 0x1 adds r6, r5, 0x1 cmp r0, r5 bge _0807BD74 cmp r2, 0x1 bgt _0807BD74 adds r1, r4, 0 cmp r1, r5 bge _0807BD74 ldr r2, [sp, 0x4C] movs r4, 0 _0807BD6A: adds r0, r2, r1 strb r4, [r0] adds r1, 0x1 cmp r1, r5 blt _0807BD6A _0807BD74: ldrb r2, [r3, 0x4] adds r4, r5, 0 b _0807BD86 _0807BD7A: ldrb r1, [r3, 0x4] cmp r1, r2 ble _0807BD82 adds r1, r2, 0 _0807BD82: adds r2, r1, 0 adds r6, r5, 0x1 _0807BD86: adds r5, r6, 0 cmp r5, 0x3 bgt _0807BDA2 lsls r0, r5, 3 movs r7, 0x8C lsls r7, 1 adds r0, r7 mov r1, r8 adds r3, r1, r0 _0807BD98: ldrb r1, [r3] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0807BD46 _0807BDA2: adds r0, r4, 0x1 cmp r0, r5 bge _0807BDC0 cmp r2, 0x1 bgt _0807BDC0 adds r1, r4, 0 cmp r1, r5 bge _0807BDC0 ldr r2, [sp, 0x4C] movs r3, 0 _0807BDB6: adds r0, r2, r1 strb r3, [r0] adds r1, 0x1 cmp r1, r5 blt _0807BDB6 _0807BDC0: movs r5, 0 movs r2, 0 str r2, [sp, 0x54] add r4, sp, 0x4 movs r7, 0x8C lsls r7, 1 add r7, r8 adds r6, r7, 0 mov r9, sp mov r0, sp str r0, [sp, 0x58] _0807BDD6: movs r2, 0 mov r1, r9 strb r2, [r1] ldrb r1, [r7] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0807BE64 ldr r1, [sp, 0x4C] adds r0, r1, r5 ldrb r0, [r0] cmp r0, 0 beq _0807BE64 mov r0, r10 adds r1, r5, 0 ldr r2, [sp, 0x3C] bl sub_8057348 lsls r0, 24 cmp r0, 0 beq _0807BE64 ldrb r1, [r7] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _0807BE64 movs r0, 0x1 mov r2, r9 strb r0, [r2] ldr r1, [sp, 0x50] ldrb r0, [r1] cmp r0, 0xB bne _0807BE38 ldrh r0, [r7, 0x2] cmp r0, 0x80 bne _0807BE24 movs r2, 0 str r2, [r4] b _0807BE64 _0807BE24: mov r0, r10 adds r1, r6, 0 bl sub_8071A1C lsls r0, 24 lsrs r0, 24 cmp r0, 0x5 beq _0807BE4A movs r0, 0x1 b _0807BE54 _0807BE38: ldr r1, [sp, 0x48] cmp r1, 0 beq _0807BE4A ldr r0, [sp, 0x58] mov r1, r10 adds r2, r6, 0 bl sub_807C04C b _0807BE54 _0807BE4A: adds r0, r6, 0 bl sub_8092B90 lsls r0, 24 lsrs r0, 24 _0807BE54: str r0, [r4] add r0, sp, 0x4 ldr r2, [sp, 0x54] adds r0, r2 ldr r0, [r0] ldr r1, [sp, 0x44] adds r1, r0 str r1, [sp, 0x44] _0807BE64: ldr r2, [sp, 0x54] adds r2, 0x8 str r2, [sp, 0x54] adds r4, 0x8 adds r7, 0x8 adds r6, 0x8 movs r0, 0x8 add r9, r0 ldr r1, [sp, 0x58] adds r1, 0x8 str r1, [sp, 0x58] adds r5, 0x1 cmp r5, 0x3 ble _0807BDD6 movs r0, 0 str r0, [sp, 0x24] mov r0, r10 movs r1, 0x17 bl sub_80718D8 lsls r0, 24 cmp r0, 0 bne _0807BECA ldr r2, [sp, 0x50] ldrb r0, [r2] cmp r0, 0xB beq _0807BECA add r0, sp, 0x20 movs r1, 0x1 strb r1, [r0] ldrb r0, [r2] cmp r0, 0xB bne _0807BEAA str r1, [sp, 0x24] b _0807BEC2 _0807BEAA: ldr r7, [sp, 0x48] cmp r7, 0 beq _0807BEB4 movs r0, 0x2 b _0807BEC0 _0807BEB4: ldr r0, _0807BEE8 ldr r2, [sp, 0x40] lsls r1, r2, 1 adds r1, r0 movs r7, 0 ldrsh r0, [r1, r7] _0807BEC0: str r0, [sp, 0x24] _0807BEC2: ldr r0, [sp, 0x24] ldr r1, [sp, 0x44] adds r1, r0 str r1, [sp, 0x44] _0807BECA: ldr r2, [sp, 0x48] cmp r2, 0 beq _0807BF2A movs r5, 0 movs r7, 0 str r7, [sp, 0x44] add r0, sp, 0x4 adds r3, r0, 0 mov r2, sp movs r4, 0x4 _0807BEDE: ldrb r1, [r2] cmp r1, 0 bne _0807BEEC str r1, [r3] b _0807BEF4 .align 2, 0 _0807BEE8: .4byte gUnknown_80F4E22 _0807BEEC: ldr r1, [r3] cmp r5, r1 bge _0807BEF4 adds r5, r1, 0 _0807BEF4: adds r3, 0x8 adds r2, 0x8 subs r4, 0x1 cmp r4, 0 bge _0807BEDE movs r4, 0 movs r6, 0 adds r1, r0, 0 adds r3, r1, 0 mov r2, sp _0807BF08: ldrb r0, [r2] cmp r0, 0 beq _0807BF1E ldr r0, [r1] cmp r5, r0 beq _0807BF16 str r6, [r1] _0807BF16: ldr r0, [r3] ldr r7, [sp, 0x44] adds r7, r0 str r7, [sp, 0x44] _0807BF1E: adds r1, 0x8 adds r3, 0x8 adds r2, 0x8 adds r4, 0x1 cmp r4, 0x4 ble _0807BF08 _0807BF2A: ldr r0, [sp, 0x44] cmp r0, 0 bne _0807BF32 b _0807C03A _0807BF32: bl sub_8084100 str r0, [sp, 0x38] movs r1, 0 mov r9, r1 mov r0, r10 movs r1, 0x17 bl sub_80718D8 lsls r0, 24 cmp r0, 0 bne _0807BF5A add r1, sp, 0x34 mov r0, r10 movs r2, 0x1 bl sub_807C854 lsls r0, 24 lsrs r6, r0, 24 b _0807BF5E _0807BF5A: movs r6, 0 str r6, [sp, 0x34] _0807BF5E: movs r5, 0 mov r4, sp movs r7, 0 _0807BF64: ldrb r0, [r4] cmp r0, 0 beq _0807C010 add r0, sp, 0x4 adds r0, r7 ldr r0, [r0] cmp r0, 0 beq _0807C010 add r9, r0 ldr r2, [sp, 0x38] cmp r9, r2 blt _0807C010 cmp r5, 0x4 bne _0807BF9C cmp r6, 0 beq _0807C03A mov r0, r8 adds r0, 0x44 movs r1, 0x32 bl sub_8044C94 ldr r0, [sp, 0x34] movs r1, 0x7 ands r0, r1 mov r1, r8 adds r1, 0x46 strb r0, [r1] b _0807C008 _0807BF9C: movs r0, 0x8C lsls r0, 1 mov r9, r0 adds r2, r7, r0 add r2, r8 adds r0, r4, 0 mov r1, r10 bl sub_807C04C ldrb r0, [r4] cmp r0, 0 beq _0807C01A mov r0, r8 adds r0, 0x44 movs r1, 0x15 bl sub_8044C94 adds r3, r5, 0 mov r6, r8 adds r6, 0x48 movs r1, 0x46 add r1, r8 mov r12, r1 cmp r5, 0 ble _0807BFFC mov r2, r8 adds r0, r2, r7 add r0, r9 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0807BFFC movs r7, 0x2 lsls r0, r5, 3 movs r1, 0x8C lsls r1, 1 adds r0, r1 adds r2, r0, r2 _0807BFEA: subs r2, 0x8 subs r3, 0x1 cmp r3, 0 ble _0807BFFC ldrb r1, [r2] adds r0, r7, 0 ands r0, r1 cmp r0, 0 bne _0807BFEA _0807BFFC: ldrb r1, [r4, 0x1] movs r0, 0x7 ands r0, r1 mov r2, r12 strb r0, [r2] _0807C006: strb r3, [r6] _0807C008: mov r0, r10 bl sub_8069DCC b _0807C03A _0807C010: adds r4, 0x8 adds r7, 0x8 adds r5, 0x1 cmp r5, 0x4 ble _0807BF64 _0807C01A: cmp r6, 0 beq _0807C03A mov r0, r8 adds r0, 0x44 movs r1, 0x32 bl sub_8044C94 ldr r0, [sp, 0x34] movs r1, 0x7 ands r0, r1 mov r1, r8 adds r1, 0x46 strb r0, [r1] mov r0, r10 bl sub_8069DCC _0807C03A: add sp, 0x5C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_807BB94 thumb_func_start sub_807C04C sub_807C04C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C str r0, [sp, 0x8] adds r6, r1, 0 mov r10, r2 movs r0, 0x1 str r0, [sp, 0x10] ldr r4, [r6, 0x70] movs r1, 0 mov r8, r1 ldr r1, _0807C0C8 movs r2, 0 adds r0, r1, 0x7 _0807C06E: strb r2, [r0] subs r0, 0x1 cmp r0, r1 bge _0807C06E adds r0, r6, 0 mov r1, r10 movs r2, 0x1 bl sub_807CD64 lsls r0, 16 asrs r0, 16 str r0, [sp, 0xC] adds r0, r6, 0 movs r1, 0x8 bl sub_80718D8 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x14] movs r0, 0 ldr r2, [sp, 0x8] strb r0, [r2] adds r0, r4, 0 adds r0, 0xBC ldrb r0, [r0] cmp r0, 0x5 bne _0807C0B0 mov r0, r10 bl sub_8092C54 lsls r0, 24 cmp r0, 0 beq _0807C0C4 _0807C0B0: ldr r3, [sp, 0x14] cmp r3, 0 beq _0807C0CC adds r0, r6, 0 mov r1, r10 bl sub_805C498 lsls r0, 24 cmp r0, 0 bne _0807C0CC _0807C0C4: movs r0, 0x1 b _0807C48C .align 2, 0 _0807C0C8: .4byte gUnknown_202F380 _0807C0CC: movs r0, 0xF0 ldr r1, [sp, 0xC] ands r0, r1 cmp r0, 0 beq _0807C0DE cmp r0, 0x10 beq _0807C0DE cmp r0, 0x20 bne _0807C19C _0807C0DE: adds r0, r4, 0 adds r0, 0xE8 ldrb r1, [r0] cmp r1, 0x1 bne _0807C128 subs r0, 0xA2 ldrb r7, [r0] ldr r0, _0807C118 adds r0, r7, r0 ldrb r3, [r0] cmp r3, 0 beq _0807C0F8 b _0807C3F6 _0807C0F8: strb r1, [r0] ldr r0, _0807C11C add r0, r8 strb r7, [r0] ldr r0, _0807C120 mov r4, r8 lsls r2, r4, 2 adds r0, r2, r0 movs r1, 0x63 str r1, [r0] ldr r0, _0807C124 adds r2, r0 str r3, [r2] movs r0, 0x1 add r8, r0 b _0807C3F6 .align 2, 0 _0807C118: .4byte gUnknown_202F380 _0807C11C: .4byte gUnknown_202F388 _0807C120: .4byte gUnknown_202F390 _0807C124: .4byte gUnknown_202F3B0 _0807C128: movs r7, 0 movs r0, 0xF0 ldr r1, [sp, 0xC] ands r0, r1 lsls r5, r0, 16 _0807C132: movs r2, 0x4 ldrsh r0, [r6, r2] ldr r1, _0807C198 lsls r2, r7, 2 adds r2, r1 movs r3, 0 ldrsh r1, [r2, r3] adds r0, r1 movs r4, 0x6 ldrsh r1, [r6, r4] movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 bl sub_804954C ldr r4, [r0, 0x10] cmp r4, 0 beq _0807C18E adds r0, r4, 0 bl sub_80450F8 cmp r0, 0x1 bne _0807C18E asrs r0, r5, 16 cmp r0, 0x10 beq _0807C178 cmp r0, 0x20 beq _0807C178 adds r0, r6, 0 adds r1, r7, 0 bl sub_8071138 lsls r0, 24 cmp r0, 0 beq _0807C18E _0807C178: mov r0, r10 str r0, [sp] ldr r1, [sp, 0x14] str r1, [sp, 0x4] mov r0, r8 ldr r1, [sp, 0xC] adds r2, r6, 0 adds r3, r4, 0 bl sub_807C580 mov r8, r0 _0807C18E: adds r7, 0x1 cmp r7, 0x7 ble _0807C132 b _0807C3F6 .align 2, 0 _0807C198: .4byte gUnknown_80F4448 _0807C19C: cmp r0, 0x30 bne _0807C1F0 movs r5, 0 _0807C1A2: ldr r0, _0807C1E8 ldr r0, [r0] lsls r1, r5, 2 ldr r2, _0807C1EC adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0807C1E0 adds r0, r6, 0 adds r1, r4, 0 bl sub_8045990 lsls r0, 24 cmp r0, 0 beq _0807C1E0 mov r3, r10 str r3, [sp] ldr r0, [sp, 0x14] str r0, [sp, 0x4] mov r0, r8 ldr r1, [sp, 0xC] adds r2, r6, 0 adds r3, r4, 0 bl sub_807C580 mov r8, r0 _0807C1E0: adds r5, 0x1 cmp r5, 0x13 ble _0807C1A2 b _0807C3F6 .align 2, 0 _0807C1E8: .4byte gUnknown_203B418 _0807C1EC: .4byte 0x000135cc _0807C1F0: cmp r0, 0x40 bne _0807C2A8 movs r7, 0 ldr r1, _0807C2A4 mov r9, r1 _0807C1FA: movs r2, 0x4 ldrsh r0, [r6, r2] mov r3, r9 movs r4, 0 ldrsh r1, [r3, r4] adds r0, r1 movs r2, 0x6 ldrsh r1, [r6, r2] movs r4, 0x2 ldrsh r2, [r3, r4] adds r1, r2 bl sub_804954C adds r4, r0, 0 adds r0, r6, 0 adds r1, r7, 0 bl sub_8071138 lsls r0, 24 cmp r0, 0 beq _0807C296 ldr r5, [r4, 0x10] cmp r5, 0 beq _0807C250 adds r0, r5, 0 bl sub_80450F8 cmp r0, 0x1 bne _0807C250 mov r4, r8 mov r0, r10 str r0, [sp] ldr r1, [sp, 0x14] str r1, [sp, 0x4] adds r0, r4, 0 ldr r1, [sp, 0xC] adds r2, r6, 0 adds r3, r5, 0 bl sub_807C580 mov r8, r0 cmp r4, r8 bne _0807C296 _0807C250: movs r2, 0x4 ldrsh r0, [r6, r2] mov r3, r9 movs r4, 0 ldrsh r1, [r3, r4] lsls r1, 1 adds r0, r1 movs r2, 0x6 ldrsh r1, [r6, r2] movs r4, 0x2 ldrsh r2, [r3, r4] lsls r2, 1 adds r1, r2 bl sub_804954C adds r4, r0, 0 ldr r5, [r4, 0x10] cmp r5, 0 beq _0807C296 adds r0, r5, 0 bl sub_80450F8 cmp r0, 0x1 bne _0807C296 mov r0, r10 str r0, [sp] ldr r1, [sp, 0x14] str r1, [sp, 0x4] mov r0, r8 ldr r1, [sp, 0xC] adds r2, r6, 0 adds r3, r5, 0 bl sub_807C580 mov r8, r0 _0807C296: movs r2, 0x4 add r9, r2 adds r7, 0x1 cmp r7, 0x7 ble _0807C1FA b _0807C3F6 .align 2, 0 _0807C2A4: .4byte gUnknown_80F4448 _0807C2A8: cmp r0, 0x50 beq _0807C2B0 cmp r0, 0x80 bne _0807C394 _0807C2B0: movs r3, 0x1 str r3, [sp, 0x18] cmp r0, 0x50 bne _0807C2BC movs r4, 0xA str r4, [sp, 0x18] _0807C2BC: movs r0, 0 mov r9, r0 _0807C2C0: ldr r0, _0807C37C ldr r0, [r0] mov r2, r9 lsls r1, r2, 2 ldr r3, _0807C380 adds r0, r3 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0807C370 cmp r6, r4 beq _0807C370 adds r1, r4, 0x4 adds r0, r6, 0x4 bl sub_80983D8 adds r5, r0, 0 ldr r0, _0807C384 adds r7, r5, r0 ldrb r0, [r7] cmp r0, 0 bne _0807C370 adds r0, r6, 0 adds r1, r4, 0 bl sub_8045990 lsls r0, 24 cmp r0, 0 beq _0807C370 adds r0, r6, 0 adds r1, r4, 0 ldr r2, [sp, 0x18] bl sub_807C4A0 lsls r0, 24 cmp r0, 0 beq _0807C370 ldr r0, [sp, 0x14] str r0, [sp] ldr r0, [sp, 0xC] adds r1, r6, 0 adds r2, r4, 0 mov r3, r10 bl sub_807C648 lsls r0, 24 cmp r0, 0 beq _0807C370 adds r0, r6, 0 adds r1, r4, 0 adds r2, r5, 0 ldr r3, [sp, 0x18] bl sub_807C9F8 lsls r0, 24 cmp r0, 0 beq _0807C370 movs r0, 0x1 strb r0, [r7] ldr r0, _0807C388 add r0, r8 strb r5, [r0] adds r0, r6, 0 mov r1, r10 bl sub_8071A1C adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 adds r0, r6, 0 ldr r1, [sp, 0xC] adds r2, r4, 0 bl sub_807C7AC ldr r1, _0807C38C mov r3, r8 lsls r2, r3, 2 adds r1, r2, r1 str r0, [r1] ldr r0, _0807C390 adds r2, r0 str r4, [r2] movs r4, 0x1 add r8, r4 _0807C370: movs r0, 0x1 add r9, r0 mov r1, r9 cmp r1, 0x13 ble _0807C2C0 b _0807C3F6 .align 2, 0 _0807C37C: .4byte gUnknown_203B418 _0807C380: .4byte 0x000135cc _0807C384: .4byte gUnknown_202F380 _0807C388: .4byte gUnknown_202F388 _0807C38C: .4byte gUnknown_202F390 _0807C390: .4byte gUnknown_202F3B0 _0807C394: cmp r0, 0x60 bne _0807C3DC movs r5, 0 _0807C39A: ldr r0, _0807C3D4 ldr r0, [r0] lsls r1, r5, 2 ldr r2, _0807C3D8 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0807C3CA mov r3, r10 str r3, [sp] ldr r0, [sp, 0x14] str r0, [sp, 0x4] mov r0, r8 ldr r1, [sp, 0xC] adds r2, r6, 0 adds r3, r4, 0 bl sub_807C580 mov r8, r0 _0807C3CA: adds r5, 0x1 cmp r5, 0x13 ble _0807C39A b _0807C3F6 .align 2, 0 _0807C3D4: .4byte gUnknown_203B418 _0807C3D8: .4byte 0x000135cc _0807C3DC: cmp r0, 0x70 bne _0807C3F6 mov r1, r10 str r1, [sp] ldr r2, [sp, 0x14] str r2, [sp, 0x4] mov r0, r8 ldr r1, [sp, 0xC] adds r2, r6, 0 adds r3, r6, 0 bl sub_807C580 mov r8, r0 _0807C3F6: mov r3, r8 cmp r3, 0 bne _0807C402 ldr r4, [sp, 0x8] strb r3, [r4] b _0807C48A _0807C402: movs r4, 0 movs r3, 0 mov r0, r8 cmp r0, 0 ble _0807C420 ldr r2, _0807C464 mov r1, r8 _0807C410: ldr r0, [r2] cmp r3, r0 bge _0807C418 adds r3, r0, 0 _0807C418: adds r2, 0x4 subs r1, 0x1 cmp r1, 0 bne _0807C410 _0807C420: mov r1, r8 cmp r1, 0 ble _0807C43A movs r5, 0 ldr r2, _0807C464 _0807C42A: ldr r0, [r2] cmp r3, r0 beq _0807C432 str r5, [r2] _0807C432: adds r2, 0x4 subs r1, 0x1 cmp r1, 0 bne _0807C42A _0807C43A: str r3, [sp, 0x10] mov r2, r8 cmp r2, 0 ble _0807C450 ldr r2, _0807C464 mov r1, r8 _0807C446: ldm r2!, {r0} adds r4, r0 subs r1, 0x1 cmp r1, 0 bne _0807C446 _0807C450: adds r0, r4, 0 bl sub_8084100 adds r2, r0, 0 movs r1, 0 cmp r1, r8 bge _0807C478 ldr r3, _0807C464 b _0807C470 .align 2, 0 _0807C464: .4byte gUnknown_202F390 _0807C468: adds r3, 0x4 adds r1, 0x1 cmp r1, r8 bge _0807C478 _0807C470: ldr r0, [r3] subs r2, r0 cmp r2, 0 bge _0807C468 _0807C478: movs r0, 0x1 ldr r3, [sp, 0x8] strb r0, [r3] ldr r0, _0807C49C adds r0, r1, r0 ldrb r0, [r0] strb r0, [r3, 0x1] movs r0, 0x8 str r0, [r3, 0x4] _0807C48A: ldr r0, [sp, 0x10] _0807C48C: add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0807C49C: .4byte gUnknown_202F388 thumb_func_end sub_807C04C thumb_func_start sub_807C4A0 sub_807C4A0: push {r4-r7,lr} adds r4, r0, 0 adds r5, r1, 0 movs r0, 0x4 ldrsh r1, [r4, r0] movs r3, 0x4 ldrsh r0, [r5, r3] subs r3, r1, r0 cmp r3, 0 bge _0807C4B6 negs r3, r3 _0807C4B6: movs r6, 0x6 ldrsh r1, [r4, r6] movs r7, 0x6 ldrsh r0, [r5, r7] subs r1, r0 cmp r1, 0 bge _0807C4C6 negs r1, r1 _0807C4C6: adds r0, r1, 0 cmp r1, r3 bge _0807C4CE adds r0, r3, 0 _0807C4CE: cmp r0, 0xA bgt _0807C578 cmp r0, r2 bgt _0807C578 movs r6, 0x1 negs r6, r6 cmp r3, r1 bne _0807C516 movs r0, 0x4 ldrsh r1, [r4, r0] movs r2, 0x4 ldrsh r0, [r5, r2] ldrh r2, [r4, 0x4] ldrh r3, [r5, 0x4] cmp r1, r0 bge _0807C4FE movs r6, 0x6 ldrsh r1, [r4, r6] movs r7, 0x6 ldrsh r0, [r5, r7] cmp r1, r0 blt _0807C574 cmp r1, r0 bgt _0807C574 _0807C4FE: lsls r1, r2, 16 lsls r0, r3, 16 movs r6, 0x7 cmp r1, r0 ble _0807C570 movs r0, 0x6 ldrsh r1, [r4, r0] movs r2, 0x6 ldrsh r0, [r5, r2] cmp r1, r0 ble _0807C570 b _0807C574 _0807C516: movs r3, 0x4 ldrsh r1, [r4, r3] movs r7, 0x4 ldrsh r0, [r5, r7] ldrh r2, [r4, 0x4] ldrh r3, [r5, 0x4] cmp r1, r0 bne _0807C532 movs r0, 0x6 ldrsh r1, [r4, r0] movs r7, 0x6 ldrsh r0, [r5, r7] cmp r1, r0 blt _0807C574 _0807C532: lsls r1, r2, 16 lsls r0, r3, 16 cmp r1, r0 bge _0807C546 movs r0, 0x6 ldrsh r1, [r4, r0] movs r7, 0x6 ldrsh r0, [r5, r7] cmp r1, r0 beq _0807C574 _0807C546: lsls r1, r2, 16 lsls r0, r3, 16 cmp r1, r0 bne _0807C55A movs r0, 0x6 ldrsh r1, [r4, r0] movs r7, 0x6 ldrsh r0, [r5, r7] cmp r1, r0 bgt _0807C574 _0807C55A: lsls r1, r2, 16 lsls r0, r3, 16 cmp r1, r0 ble _0807C570 movs r0, 0x6 ldrsh r1, [r4, r0] movs r2, 0x6 ldrsh r0, [r5, r2] cmp r1, r0 bne _0807C570 movs r6, 0x6 _0807C570: cmp r6, 0 blt _0807C578 _0807C574: movs r0, 0x1 b _0807C57A _0807C578: movs r0, 0 _0807C57A: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_807C4A0 thumb_func_start sub_807C580 sub_807C580: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 adds r6, r0, 0 adds r5, r2, 0 adds r7, r3, 0 ldr r0, [sp, 0x28] lsls r1, 16 asrs r1, 16 mov r9, r1 lsls r0, 24 lsrs r0, 24 mov r10, r0 ldr r2, [r5, 0x70] ldr r1, [r5, 0x4] ldr r0, [r7, 0x4] cmp r1, r0 beq _0807C5BC movs r0, 0xF0 mov r1, r9 ands r0, r1 cmp r0, 0x30 beq _0807C5BC cmp r0, 0x60 beq _0807C5BC cmp r0, 0x70 bne _0807C5C4 _0807C5BC: adds r0, r2, 0 adds r0, 0x46 ldrb r4, [r0] b _0807C5CE _0807C5C4: adds r0, r5, 0x4 adds r1, r7, 0x4 bl sub_80983D8 adds r4, r0, 0 _0807C5CE: ldr r0, _0807C638 adds r0, r4 mov r8, r0 ldrb r0, [r0] cmp r0, 0 bne _0807C624 mov r0, r10 str r0, [sp] mov r0, r9 adds r1, r5, 0 adds r2, r7, 0 ldr r3, [sp, 0x24] bl sub_807C648 lsls r0, 24 cmp r0, 0 beq _0807C624 movs r0, 0x1 mov r1, r8 strb r0, [r1] ldr r0, _0807C63C adds r0, r6, r0 strb r4, [r0] adds r0, r5, 0 ldr r1, [sp, 0x24] bl sub_8071A1C adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 adds r0, r5, 0 mov r1, r9 adds r2, r7, 0 bl sub_807C7AC ldr r1, _0807C640 lsls r2, r6, 2 adds r1, r2, r1 str r0, [r1] ldr r0, _0807C644 adds r2, r0 str r7, [r2] adds r6, 0x1 _0807C624: adds r0, r6, 0 add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0807C638: .4byte gUnknown_202F380 _0807C63C: .4byte gUnknown_202F388 _0807C640: .4byte gUnknown_202F390 _0807C644: .4byte gUnknown_202F3B0 thumb_func_end sub_807C580 thumb_func_start sub_807C648 sub_807C648: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r5, r1, 0 adds r4, r2, 0 mov r8, r3 ldr r1, [sp, 0x1C] lsls r0, 16 asrs r6, r0, 16 lsls r1, 24 lsrs r1, 24 mov r9, r1 movs r7, 0 movs r0, 0xF ands r0, r6 adds r1, r0, 0 cmp r1, 0 bne _0807C686 adds r0, r5, 0 adds r1, r4, 0 movs r2, 0 movs r3, 0x1 bl sub_8071598 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0807C6E0 movs r7, 0x1 b _0807C6E4 _0807C686: cmp r1, 0x1 beq _0807C6BE cmp r1, 0x2 bne _0807C692 ldr r1, [r4, 0x70] b _0807C69C _0807C692: cmp r1, 0x5 bne _0807C6B6 ldr r1, [r4, 0x70] cmp r5, r4 beq _0807C6B2 _0807C69C: movs r7, 0x1 ldrb r0, [r1, 0x8] cmp r0, 0x1 beq _0807C6B2 adds r0, r1, 0 adds r0, 0xA4 ldrb r0, [r0] cmp r0, 0x4 beq _0807C6B2 cmp r0, 0x1 bne _0807C6E0 _0807C6B2: movs r0, 0 b _0807C7A0 _0807C6B6: cmp r1, 0x6 bne _0807C6D4 cmp r5, r4 beq _0807C6B2 _0807C6BE: adds r0, r5, 0 adds r1, r4, 0 movs r2, 0 movs r3, 0x1 bl sub_8071598 lsls r0, 24 cmp r0, 0 bne _0807C6E0 movs r7, 0x1 b _0807C6E4 _0807C6D4: subs r0, 0x3 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bhi _0807C6E0 movs r7, 0x1 _0807C6E0: cmp r7, 0 beq _0807C79E _0807C6E4: mov r0, r9 cmp r0, 0 beq _0807C77C adds r0, r5, 0 adds r1, r4, 0 mov r2, r8 bl sub_805CEB8 lsls r0, 24 cmp r0, 0 beq _0807C6B2 movs r1, 0xF0 lsls r1, 4 ands r1, r6 movs r0, 0x80 lsls r0, 1 cmp r1, r0 beq _0807C78A movs r0, 0x80 lsls r0, 2 cmp r1, r0 beq _0807C76E movs r0, 0xC0 lsls r0, 2 cmp r1, r0 bne _0807C720 adds r0, r4, 0 bl sub_8070A58 b _0807C774 _0807C720: movs r0, 0x80 lsls r0, 3 cmp r1, r0 bne _0807C730 adds r0, r4, 0 bl sub_8070B28 b _0807C774 _0807C730: movs r0, 0xC0 lsls r0, 3 cmp r1, r0 bne _0807C75A ldr r1, [r4, 0x70] adds r0, r1, 0 adds r0, 0x5C ldrb r0, [r0] cmp r0, 0xE beq _0807C74E adds r0, r1, 0 adds r0, 0x5D ldrb r0, [r0] cmp r0, 0xE bne _0807C6B2 _0807C74E: adds r0, r1, 0 adds r0, 0xF5 ldrb r0, [r0] cmp r0, 0 beq _0807C79E b _0807C6B2 _0807C75A: movs r0, 0xA0 lsls r0, 3 cmp r1, r0 bne _0807C79E adds r0, r4, 0 bl sub_8070A58 lsls r0, 24 cmp r0, 0 bne _0807C79E _0807C76E: adds r0, r4, 0 bl sub_8070B48 _0807C774: lsls r0, 24 cmp r0, 0 bne _0807C79E b _0807C6B2 _0807C77C: movs r0, 0xF0 lsls r0, 4 ands r0, r6 movs r1, 0x80 lsls r1, 1 cmp r0, r1 bne _0807C79E _0807C78A: mov r0, r8 movs r1, 0x2 bl sub_8092BD8 adds r4, r0, 0 movs r0, 0x64 bl sub_8084100 cmp r0, r4 bge _0807C6B2 _0807C79E: adds r0, r7, 0 _0807C7A0: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_807C648 thumb_func_start sub_807C7AC sub_807C7AC: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r5, r0, 0 mov r8, r2 lsls r1, 16 asrs r1, 16 lsls r3, 24 lsrs r3, 24 mov r9, r3 movs r6, 0x1 ldr r4, [r2, 0x70] adds r7, r4, 0 ldrb r0, [r4, 0x6] cmp r0, 0 beq _0807C7D6 movs r0, 0xF ands r0, r1 cmp r0, 0 beq _0807C7DA _0807C7D6: movs r0, 0x1 b _0807C848 _0807C7DA: adds r0, r5, 0 movs r1, 0x9 bl sub_80718D8 lsls r0, 24 cmp r0, 0 beq _0807C804 ldr r0, _0807C7FC ldr r0, [r0] movs r2, 0x2 ldrsh r1, [r4, r2] ldr r2, _0807C800 adds r0, r2 adds r0, r1 ldrb r6, [r0] b _0807C846 .align 2, 0 _0807C7FC: .4byte gUnknown_203B418 _0807C800: .4byte 0x0000363c _0807C804: adds r0, r5, 0 movs r1, 0xA bl sub_80718D8 lsls r0, 24 cmp r0, 0 beq _0807C828 ldrb r1, [r7, 0xE] movs r2, 0xC negs r2, r2 adds r0, r2, 0 subs r0, r1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0 bne _0807C846 movs r6, 0x1 b _0807C846 _0807C828: adds r0, r5, 0 movs r1, 0xB bl sub_80718D8 lsls r0, 24 cmp r0, 0 beq _0807C846 adds r0, r5, 0 mov r1, r8 mov r2, r9 bl sub_806E654 adds r0, 0x1 lsls r0, 24 lsrs r6, r0, 24 _0807C846: adds r0, r6, 0 _0807C848: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_807C7AC thumb_func_start sub_807C854 sub_807C854: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x50 adds r7, r0, 0 str r1, [sp, 0x40] lsls r2, 24 lsrs r2, 24 str r2, [sp, 0x44] ldr r0, [r7, 0x70] movs r1, 0 mov r8, r1 adds r1, r0, 0 adds r1, 0x46 ldrb r6, [r1] adds r0, 0xE8 ldrb r0, [r0] movs r3, 0x8 mov r10, r3 cmp r0, 0x1 bne _0807C886 movs r0, 0x1 mov r10, r0 _0807C886: movs r4, 0 adds r0, r7, 0 movs r1, 0x9 bl sub_80718D8 lsls r0, 24 cmp r0, 0 bne _0807C8A4 adds r0, r7, 0 movs r1, 0xA bl sub_80718D8 lsls r0, 24 cmp r0, 0 beq _0807C8A6 _0807C8A4: movs r4, 0x1 _0807C8A6: str r4, [sp, 0x48] adds r0, r7, 0 movs r1, 0x8 bl sub_80718D8 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x4C] movs r1, 0 mov r9, r1 cmp r9, r10 bge _0807C952 _0807C8BE: movs r0, 0x7 ands r6, r0 movs r3, 0x4 ldrsh r0, [r7, r3] ldr r1, _0807C95C lsls r2, r6, 2 adds r2, r1 movs r3, 0 ldrsh r1, [r2, r3] adds r0, r1 movs r3, 0x6 ldrsh r1, [r7, r3] movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 bl sub_804954C ldr r5, [r0, 0x10] cmp r5, 0 beq _0807C948 adds r0, r5, 0 bl sub_80450F8 cmp r0, 0x1 bne _0807C948 adds r0, r7, 0 adds r1, r6, 0 bl sub_8071138 lsls r0, 24 cmp r0, 0 beq _0807C948 adds r0, r7, 0 adds r1, r5, 0 movs r2, 0 ldr r3, [sp, 0x44] bl sub_8071598 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0807C948 ldr r0, [sp, 0x4C] cmp r0, 0 beq _0807C922 ldr r0, [r5, 0x70] adds r0, 0xB0 ldrb r0, [r0] cmp r0, 0x1 beq _0807C948 _0807C922: mov r1, r8 lsls r4, r1, 2 mov r3, sp adds r0, r3, r4 str r6, [r0] adds r0, r7, 0 movs r1, 0 adds r2, r5, 0 movs r3, 0 bl sub_807C7AC add r1, sp, 0x20 adds r1, r4 str r0, [r1] ldr r0, [sp, 0x48] cmp r0, 0 beq _0807C960 movs r1, 0x1 add r8, r1 _0807C948: movs r3, 0x1 add r9, r3 adds r6, 0x1 cmp r9, r10 blt _0807C8BE _0807C952: mov r0, r8 cmp r0, 0 bne _0807C966 movs r0, 0 b _0807C9E8 .align 2, 0 _0807C95C: .4byte gUnknown_80F4448 _0807C960: ldr r1, [sp, 0x40] str r6, [r1] b _0807C9E6 _0807C966: movs r4, 0 movs r3, 0 mov r0, r8 cmp r0, 0 ble _0807C984 add r1, sp, 0x20 mov r2, r8 _0807C974: ldr r0, [r1] cmp r3, r0 bge _0807C97C adds r3, r0, 0 _0807C97C: adds r1, 0x4 subs r2, 0x1 cmp r2, 0 bne _0807C974 _0807C984: mov r1, r8 cmp r1, 0 ble _0807C9A0 movs r5, 0 add r1, sp, 0x20 mov r2, r8 _0807C990: ldr r0, [r1] cmp r3, r0 beq _0807C998 str r5, [r1] _0807C998: adds r1, 0x4 subs r2, 0x1 cmp r2, 0 bne _0807C990 _0807C9A0: mov r3, r8 cmp r3, 0 ble _0807C9B4 add r1, sp, 0x20 mov r2, r8 _0807C9AA: ldm r1!, {r0} adds r4, r0 subs r2, 0x1 cmp r2, 0 bne _0807C9AA _0807C9B4: adds r0, r4, 0 bl sub_8084100 adds r1, r0, 0 movs r2, 0 cmp r2, r8 bge _0807C9DC ldr r0, [sp, 0x20] subs r1, r0 cmp r1, 0 blt _0807C9DC add r3, sp, 0x20 _0807C9CC: adds r3, 0x4 adds r2, 0x1 cmp r2, r8 bge _0807C9DC ldr r0, [r3] subs r1, r0 cmp r1, 0 bge _0807C9CC _0807C9DC: lsls r0, r2, 2 add r0, sp ldr r0, [r0] ldr r1, [sp, 0x40] str r0, [r1] _0807C9E6: movs r0, 0x1 _0807C9E8: add sp, 0x50 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_807C854 thumb_func_start sub_807C9F8 sub_807C9F8: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r4, r0, 0 mov r10, r1 adds r7, r2, 0 adds r5, r3, 0 movs r0, 0x4 ldrsh r1, [r4, r0] mov r2, r10 movs r3, 0x4 ldrsh r0, [r2, r3] subs r2, r1, r0 cmp r2, 0 bge _0807CA1C negs r2, r2 _0807CA1C: movs r6, 0x6 ldrsh r1, [r4, r6] mov r3, r10 movs r6, 0x6 ldrsh r0, [r3, r6] subs r6, r1, r0 cmp r6, 0 bge _0807CA2E negs r6, r6 _0807CA2E: cmp r6, r2 bge _0807CA34 adds r6, r2, 0 _0807CA34: cmp r6, r5 ble _0807CA3A adds r6, r5, 0 _0807CA3A: adds r0, r4, 0 movs r1, 0x3 bl sub_80718D8 lsls r0, 24 cmp r0, 0 bne _0807CA50 cmp r6, r5 bgt _0807CAAC _0807CA4C: movs r0, 0x1 b _0807CAAE _0807CA50: movs r0, 0x4 ldrsh r5, [r4, r0] movs r1, 0x6 ldrsh r4, [r4, r1] ldr r1, _0807CA70 lsls r0, r7, 2 adds r0, r1 movs r3, 0 ldrsh r2, [r0, r3] mov r9, r2 movs r2, 0x2 ldrsh r1, [r0, r2] mov r8, r1 movs r7, 0 b _0807CA94 .align 2, 0 _0807CA70: .4byte gUnknown_80F4448 _0807CA74: adds r0, r5, 0 adds r1, r4, 0 bl sub_804954C adds r2, r0, 0 ldrh r1, [r2] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _0807CAAC ldr r0, [r2, 0x10] cmp r0, r10 beq _0807CA4C cmp r0, 0 bne _0807CAAC adds r7, 0x1 _0807CA94: cmp r7, r6 bgt _0807CAAC add r5, r9 add r4, r8 cmp r5, 0 ble _0807CAAC cmp r4, 0 ble _0807CAAC cmp r5, 0x36 bgt _0807CAAC cmp r4, 0x1E ble _0807CA74 _0807CAAC: movs r0, 0 _0807CAAE: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_807C9F8 thumb_func_start sub_807CABC sub_807CABC: push {r4-r6,lr} sub sp, 0x4 adds r4, r0, 0 movs r6, 0 b _0807CADC _0807CAC6: bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _0807CB0A ldr r1, _0807CB38 adds r0, r5, r1 ldrb r0, [r0] cmp r0, 0 bne _0807CB0A adds r6, 0x1 _0807CADC: adds r0, r4, 0 movs r1, 0x1 bl sub_8070828 cmp r6, r0 bge _0807CB0A ldr r5, [r4, 0x70] adds r0, r5, 0 adds r0, 0x48 ldrb r1, [r0] movs r0, 0 str r0, [sp] adds r0, r4, 0 movs r2, 0x1 movs r3, 0 bl sub_8055A00 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _0807CAC6 _0807CB0A: adds r0, r4, 0 movs r1, 0x1 bl sub_8057588 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0807CB2A ldr r0, [r4, 0x70] adds r0, 0x48 ldrb r1, [r0] adds r0, r4, 0 bl sub_806A9B4 _0807CB2A: adds r0, r4, 0 bl sub_806A1B0 add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0807CB38: .4byte 0x00000159 thumb_func_end sub_807CABC thumb_func_start sub_807CB3C sub_807CB3C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x30 adds r6, r0, 0 ldr r7, [r6, 0x70] movs r1, 0 movs r2, 0x15 bl sub_8044D90 adds r2, r0, 0 ldr r5, [r2] ldrb r1, [r2] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _0807CB80 ldr r0, _0807CB78 adds r1, r2, 0 bl sub_8045BF8 ldr r0, _0807CB7C ldr r1, [r0] adds r0, r6, 0 bl sub_80522A8 b _0807CD54 .align 2, 0 _0807CB78: .4byte gUnknown_202DE58 _0807CB7C: .4byte gUnknown_80FE3E8 _0807CB80: add r0, sp, 0x8 adds r1, r7, 0 adds r1, 0x44 ldm r1!, {r2-r4} stm r0!, {r2-r4} ldm r1!, {r2-r4} stm r0!, {r2-r4} bl sub_80441BC lsls r0, 24 cmp r0, 0 beq _0807CBAC ldr r0, _0807CBA8 ldr r1, [r0] adds r0, r6, 0 bl sub_80522A8 movs r4, 0x1 b _0807CCDE .align 2, 0 _0807CBA8: .4byte gUnknown_81004C4 _0807CBAC: movs r0, 0x1 mov r8, r0 add r4, sp, 0x20 lsls r5, 8 lsrs r0, r5, 24 bl sub_80913CC adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 bl sub_8092A88 ldrb r0, [r7, 0x7] mov r10, r4 mov r9, r5 cmp r0, 0 bne _0807CC08 ldr r1, _0807CC20 ldr r0, [sp, 0x28] ands r0, r1 mov r1, r8 orrs r0, r1 str r0, [sp, 0x28] movs r0, 0xA add r4, sp, 0x28 str r0, [r4, 0x4] movs r3, 0x8C lsls r3, 1 adds r2, r7, r3 adds r0, r4, 0 adds r1, r6, 0 bl sub_807C04C ldrb r0, [r4] cmp r0, 0 beq _0807CC08 ldrb r1, [r4, 0x1] movs r0, 0x7 ands r0, r1 adds r1, r7, 0 adds r1, 0x46 strb r0, [r1] adds r0, r6, 0 bl sub_8069DCC _0807CC08: adds r0, r7, 0 adds r0, 0xBC ldrb r0, [r0] cmp r0, 0x1 bne _0807CC2C ldr r0, _0807CC24 adds r1, r6, 0 movs r2, 0 bl sub_8045B94 ldr r0, _0807CC28 b _0807CC3C .align 2, 0 _0807CC20: .4byte 0xffffff00 _0807CC24: .4byte gUnknown_202DF98 _0807CC28: .4byte gUnknown_80FC714 _0807CC2C: cmp r0, 0x7 bne _0807CC50 ldr r0, _0807CC48 adds r1, r6, 0 movs r2, 0 bl sub_8045B94 ldr r0, _0807CC4C _0807CC3C: ldr r1, [r0] adds r0, r6, 0 bl sub_80522A8 b _0807CCDC .align 2, 0 _0807CC48: .4byte gUnknown_202DF98 _0807CC4C: .4byte gUnknown_80FC718 _0807CC50: adds r0, r7, 0 adds r0, 0xAC ldrb r0, [r0] cmp r0, 0x4 bne _0807CC72 ldr r0, _0807CCB8 adds r1, r6, 0 movs r2, 0 bl sub_8045B94 ldr r0, _0807CCBC ldr r1, [r0] adds r0, r6, 0 bl sub_80522A8 movs r4, 0 mov r8, r4 _0807CC72: mov r0, r8 cmp r0, 0 beq _0807CCDC mov r5, r9 lsrs r0, r5, 24 cmp r0, 0xB6 beq _0807CC84 cmp r0, 0xBF bne _0807CCC0 _0807CC84: adds r0, r6, 0 movs r1, 0 movs r2, 0x7A bl sub_8044DF0 mov r2, r10 ldrb r1, [r2] movs r0, 0x8 movs r4, 0 orrs r0, r1 add r3, sp, 0x20 movs r1, 0x4 orrs r0, r1 strb r0, [r3] movs r0, 0xA strb r0, [r3, 0x4] lsrs r2, r5, 24 str r4, [sp] str r3, [sp, 0x4] adds r0, r6, 0 movs r1, 0 movs r3, 0 bl sub_8055FA0 b _0807CCDE .align 2, 0 _0807CCB8: .4byte gUnknown_202DF98 _0807CCBC: .4byte gUnknown_80FC6A8 _0807CCC0: mov r3, r9 lsrs r2, r3, 24 movs r0, 0 str r0, [sp] mov r4, r10 str r4, [sp, 0x4] adds r0, r6, 0 movs r1, 0 movs r3, 0 bl sub_8055FA0 lsls r0, 24 lsrs r4, r0, 24 b _0807CCDE _0807CCDC: movs r4, 0 _0807CCDE: adds r0, r6, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0807CD38 cmp r4, 0 beq _0807CCF8 adds r0, r6, 0 movs r1, 0 movs r2, 0x7A bl sub_8044DF0 _0807CCF8: adds r0, r6, 0 bl sub_8071DA4 adds r0, r6, 0 movs r1, 0x8 bl sub_806CE68 ldrb r0, [r7, 0x7] cmp r0, 0 beq _0807CD18 adds r0, r6, 0x4 bl sub_804AC20 movs r0, 0 bl sub_807EC28 _0807CD18: adds r0, r6, 0 bl sub_806A5B8 ldr r0, _0807CD30 ldr r0, [r0] ldr r1, _0807CD34 adds r0, r1 ldrb r1, [r0] adds r0, r6, 0 bl sub_8075900 b _0807CD44 .align 2, 0 _0807CD30: .4byte gUnknown_203B418 _0807CD34: .4byte 0x00003a08 _0807CD38: cmp r4, 0 beq _0807CD44 add r0, sp, 0x8 movs r1, 0 bl sub_8044D40 _0807CD44: bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _0807CD54 adds r0, r6, 0 bl sub_806A1B0 _0807CD54: add sp, 0x30 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_807CB3C thumb_func_start sub_807CD64 sub_807CD64: push {r4,r5,lr} adds r3, r0, 0 adds r4, r1, 0 adds r5, r2, 0 ldrh r0, [r4, 0x2] cmp r0, 0xED bne _0807CD88 cmp r5, 0 bne _0807CD88 adds r0, r3, 0 movs r1, 0xE bl sub_8071858 lsls r0, 24 cmp r0, 0 bne _0807CD88 movs r0, 0x73 b _0807CD94 _0807CD88: adds r0, r4, 0 adds r1, r5, 0 bl sub_8092AE0 lsls r0, 16 asrs r0, 16 _0807CD94: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_807CD64 thumb_func_start sub_807CD9C sub_807CD9C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x34 mov r9, r0 adds r6, r1, 0 adds r4, r2, 0 movs r0, 0xA str r0, [sp, 0x24] bl sub_80441E8 lsls r0, 24 cmp r0, 0 beq _0807CDC4 ldr r0, _0807CDC0 b _0807CDFE .align 2, 0 _0807CDC0: .4byte gUnknown_80FC9E8 _0807CDC4: cmp r9, r6 bne _0807CDE4 ldr r0, _0807CDDC adds r1, r6, 0 movs r2, 0 bl sub_8045B94 ldr r0, _0807CDE0 ldr r2, [r0] adds r0, r6, 0 b _0807CE02 .align 2, 0 _0807CDDC: .4byte gUnknown_202DF98 _0807CDE0: .4byte gUnknown_80FCA10 _0807CDE4: ldr r0, _0807CE0C adds r1, r6, 0 movs r2, 0 bl sub_8045B94 adds r0, r6, 0 movs r1, 0xE bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0807CE28 ldr r0, _0807CE10 _0807CDFE: ldr r2, [r0] mov r0, r9 _0807CE02: adds r1, r6, 0 bl sub_80522F4 b _0807D02A .align 2, 0 _0807CE0C: .4byte gUnknown_202DF98 _0807CE10: .4byte gUnknown_80FCBCC _0807CE14: str r0, [sp, 0x28] b _0807CF26 _0807CE18: ldrh r0, [r5] movs r1, 0x3 ands r1, r0 negs r0, r1 orrs r0, r1 lsrs r0, 31 mov r10, r0 b _0807CF20 _0807CE28: ldr r1, [r6, 0x70] adds r2, r4, 0x4 movs r3, 0x7 adds r0, r2, 0 ands r0, r3 adds r1, 0x46 strb r0, [r1] movs r0, 0x7 ands r2, r0 adds r0, r6, 0 movs r1, 0x6 bl sub_806CDD4 ldr r1, _0807D03C adds r0, r6, 0 bl sub_80421C0 ldr r0, _0807D040 ldr r2, [r0] mov r0, r9 adds r1, r6, 0 bl sub_80522F4 movs r1, 0x1 mov r10, r1 movs r2, 0 str r2, [sp, 0x28] lsls r1, r4, 2 ldr r0, _0807D044 adds r1, r0 mov r8, r1 add r7, sp, 0x18 _0807CE68: ldr r2, [r6, 0x4] str r2, [sp, 0x18] ldrh r0, [r7] mov r3, r8 ldrh r3, [r3] adds r0, r3 lsls r0, 16 lsrs r0, 16 ldr r1, _0807D048 ands r1, r2 orrs r1, r0 str r1, [sp, 0x18] asrs r0, r1, 16 mov r2, r8 ldrh r2, [r2, 0x2] adds r0, r2 lsls r0, 16 ldr r2, _0807D04C ands r2, r1 orrs r2, r0 str r2, [sp, 0x18] movs r3, 0 ldrsh r0, [r7, r3] cmp r0, 0 blt _0807CF20 asrs r1, r2, 16 cmp r1, 0 blt _0807CF20 cmp r0, 0x37 bgt _0807CF20 cmp r1, 0x1F bgt _0807CF20 mov r1, r8 movs r2, 0 ldrsh r0, [r1, r2] lsls r0, 10 str r0, [sp, 0x2C] movs r3, 0x2 ldrsh r0, [r1, r3] lsls r0, 10 str r0, [sp, 0x30] movs r4, 0x5 _0807CEBC: adds r0, r6, 0 ldr r1, [sp, 0x2C] ldr r2, [sp, 0x30] bl sub_804539C adds r0, r6, 0 bl sub_8045888 lsls r0, 24 cmp r0, 0 beq _0807CED8 movs r0, 0x19 bl sub_803E46C _0807CED8: subs r4, 0x1 cmp r4, 0 bge _0807CEBC movs r1, 0 ldrsh r0, [r7, r1] ldr r1, [sp, 0x18] asrs r1, 16 bl sub_804954C adds r5, r0, 0 ldr r0, [r5, 0x10] cmp r0, 0 bne _0807CE14 add r4, sp, 0x18 adds r0, r6, 0 adds r1, r4, 0 bl sub_80705F0 lsls r0, 24 cmp r0, 0 bne _0807CE18 movs r2, 0 ldrsh r1, [r7, r2] movs r3, 0x2 ldrsh r2, [r4, r3] adds r0, r6, 0 movs r3, 0x1 bl sub_80694C0 ldr r0, [sp, 0x24] subs r0, 0x1 str r0, [sp, 0x24] cmp r0, 0 bgt _0807CE68 movs r1, 0x1 mov r10, r1 _0807CF20: mov r2, r10 cmp r2, 0 bne _0807CF4E _0807CF26: adds r1, r6, 0x4 adds r0, r6, 0 bl sub_807D068 ldr r0, _0807D050 movs r3, 0 ldrsh r2, [r0, r3] movs r1, 0 str r1, [sp] str r1, [sp, 0x4] ldr r0, _0807D054 str r0, [sp, 0x8] str r1, [sp, 0xC] str r1, [sp, 0x10] str r1, [sp, 0x14] mov r0, r9 adds r1, r6, 0 movs r3, 0 bl sub_806F370 _0807CF4E: bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _0807D02A ldr r0, [sp, 0x28] cmp r0, 0 beq _0807CF9E add r4, sp, 0x1C ldr r1, _0807D058 adds r0, r4, 0 bl sub_8092A88 ldr r0, [sp, 0x28] adds r1, r4, 0 bl sub_80571F0 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _0807CF9E mov r0, r9 ldr r1, [sp, 0x28] bl sub_807A96C ldr r0, _0807D050 movs r1, 0 ldrsh r2, [r0, r1] str r4, [sp] str r4, [sp, 0x4] ldr r0, _0807D05C str r0, [sp, 0x8] str r4, [sp, 0xC] str r4, [sp, 0x10] str r4, [sp, 0x14] mov r0, r9 ldr r1, [sp, 0x28] movs r3, 0 bl sub_806F370 _0807CF9E: bl sub_8044B28 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _0807D02A adds r0, r6, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0807D02A adds r0, r6, 0 bl sub_806A5B8 adds r4, r6, 0x4 adds r0, r6, 0 adds r1, r4, 0 bl sub_80706A4 lsls r0, 24 cmp r0, 0 beq _0807CFD8 adds r0, r6, 0 adds r1, r6, 0 movs r2, 0 movs r3, 0 bl sub_807D148 _0807CFD8: adds r0, r6, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0807D02A adds r0, r6, 0 movs r1, 0x8 bl sub_806CE68 ldr r0, [r6, 0x70] ldrb r0, [r0, 0x7] cmp r0, 0 beq _0807D014 ldr r1, _0807D060 ldr r0, [r1] strb r5, [r0, 0x1] ldr r0, [r1] movs r2, 0xB8 lsls r2, 3 adds r0, r2 movs r1, 0x1 negs r1, r1 str r1, [r0] adds r0, r4, 0 bl sub_804AC20 movs r0, 0 bl sub_807EC28 _0807D014: adds r0, r6, 0 bl sub_806A5B8 ldr r0, _0807D060 ldr r0, [r0] ldr r3, _0807D064 adds r0, r3 ldrb r1, [r0] adds r0, r6, 0 bl sub_8075900 _0807D02A: add sp, 0x34 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0807D03C: .4byte 0x000001a3 _0807D040: .4byte gUnknown_80F8A0C _0807D044: .4byte gUnknown_80F4448 _0807D048: .4byte 0xffff0000 _0807D04C: .4byte 0x0000ffff _0807D050: .4byte gUnknown_80F4F90 _0807D054: .4byte 0x00000219 _0807D058: .4byte 0x00000163 _0807D05C: .4byte 0x0000021a _0807D060: .4byte gUnknown_203B418 _0807D064: .4byte 0x00003a08 thumb_func_end sub_807CD9C thumb_func_start sub_807D068 sub_807D068: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 adds r6, r0, 0 movs r0, 0 ldrsh r2, [r1, r0] lsls r0, r2, 1 adds r0, r2 lsls r0, 11 movs r2, 0xC0 lsls r2, 4 adds r2, r0 mov r10, r2 movs r0, 0x2 ldrsh r1, [r1, r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 11 movs r1, 0x80 lsls r1, 5 adds r1, r0 mov r9, r1 ldr r0, [r6, 0xC] subs r0, r2 cmp r0, 0 bge _0807D0A4 negs r0, r0 _0807D0A4: ldr r1, [r6, 0x10] cmp r0, 0xB bgt _0807D0B8 mov r2, r9 subs r0, r1, r2 cmp r0, 0 bge _0807D0B4 negs r0, r0 _0807D0B4: cmp r0, 0xB ble _0807D11E _0807D0B8: movs r0, 0 mov r8, r0 ldr r5, [r6, 0xC] adds r4, r1, 0 mov r1, r10 subs r0, r1, r5 movs r1, 0xC bl __divsi3 str r0, [sp, 0x8] mov r2, r9 subs r0, r2, r4 movs r1, 0xC bl __divsi3 str r0, [sp, 0xC] mov r0, sp str r0, [sp, 0x10] movs r7, 0xB _0807D0DE: ldr r1, [sp, 0x8] adds r5, r1 ldr r2, [sp, 0xC] adds r4, r2 str r5, [sp] ldr r0, [sp, 0x10] str r4, [r0, 0x4] mov r0, r8 bl sub_8009C7C lsls r1, r0, 1 adds r1, r0 lsls r1, 2 str r1, [r6, 0x1C] adds r0, r6, 0 mov r1, sp bl sub_804535C adds r0, r6, 0 bl sub_8045888 lsls r0, 24 cmp r0, 0 beq _0807D114 movs r0, 0x1A bl sub_803E46C _0807D114: movs r1, 0xAA add r8, r1 subs r7, 0x1 cmp r7, 0 bge _0807D0DE _0807D11E: mov r2, r10 str r2, [sp] mov r0, r9 str r0, [sp, 0x4] movs r0, 0 str r0, [r6, 0x1C] adds r0, r6, 0 mov r1, sp bl sub_804535C movs r0, 0x1A bl sub_803E46C add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_807D068 thumb_func_start sub_807D148 sub_807D148: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC mov r8, r0 adds r5, r1, 0 mov r9, r2 str r3, [sp, 0x4] ldr r0, [r5, 0x70] mov r10, r0 movs r1, 0 str r1, [sp, 0x8] ldr r0, _0807D180 adds r1, r5, 0 movs r2, 0 bl sub_8045B94 adds r0, r5, 0 movs r1, 0xE bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0807D188 ldr r0, _0807D184 b _0807D194 .align 2, 0 _0807D180: .4byte gUnknown_202DF98 _0807D184: .4byte gUnknown_80FCAE8 _0807D188: bl sub_80441E8 lsls r0, 24 cmp r0, 0 beq _0807D1A4 ldr r0, _0807D1A0 _0807D194: ldr r2, [r0] mov r0, r8 adds r1, r5, 0 bl sub_80522F4 b _0807D3A8 .align 2, 0 _0807D1A0: .4byte gUnknown_80FC97C _0807D1A4: mov r2, r9 cmp r2, 0x1 bne _0807D1DC ldr r0, _0807D1D0 ldr r0, [r0] ldr r3, _0807D1D4 adds r0, r3 ldr r1, [r0] ldr r0, [r5, 0x4] cmp r1, r0 bne _0807D1DC ldr r0, _0807D1D8 ldr r2, [r0] mov r0, r8 adds r1, r5, 0 bl sub_80522F4 mov r0, r8 adds r1, r5, 0 bl sub_8076D10 b _0807D3A8 .align 2, 0 _0807D1D0: .4byte gUnknown_203B418 _0807D1D4: .4byte 0x0000e21c _0807D1D8: .4byte gUnknown_80FC9A0 _0807D1DC: ldr r0, _0807D27C ldr r2, [r0] mov r0, r8 adds r1, r5, 0 bl sub_80522F4 adds r0, r5, 0 adds r1, r5, 0 bl sub_807A96C mov r0, r8 adds r1, r5, 0 bl sub_80421AC adds r0, r5, 0 bl sub_8045888 lsls r0, 24 cmp r0, 0 beq _0807D252 mov r0, r10 adds r0, 0x46 ldrb r4, [r0] ldr r1, [r5, 0x1C] movs r2, 0x80 lsls r2, 4 adds r1, r2 str r1, [r5, 0x1C] ldr r2, _0807D280 adds r6, r0, 0 cmp r1, r2 bgt _0807D252 movs r7, 0x7 _0807D21E: ldr r0, _0807D284 ldr r0, [r0] movs r1, 0x3 ands r0, r1 cmp r0, 0 bne _0807D23C adds r4, 0x1 ands r4, r7 adds r0, r4, 0 ands r0, r7 strb r0, [r6] adds r0, r5, 0 adds r1, r4, 0 bl sub_806CE68 _0807D23C: movs r0, 0x22 bl sub_803E46C ldr r1, [r5, 0x1C] movs r3, 0x80 lsls r3, 4 adds r1, r3 str r1, [r5, 0x1C] ldr r0, _0807D280 cmp r1, r0 ble _0807D21E _0807D252: mov r0, r9 cmp r0, 0x1 beq _0807D288 cmp r0, 0x1 bcc _0807D264 cmp r0, 0x2 beq _0807D2B0 cmp r0, 0x3 beq _0807D2C8 _0807D264: mov r0, sp bl sub_8083660 lsls r0, 24 cmp r0, 0 bne _0807D2CE ldr r0, [r5, 0x4] str r0, [sp] movs r1, 0x1 str r1, [sp, 0x8] b _0807D2CE .align 2, 0 _0807D27C: .4byte gUnknown_80FC584 _0807D280: .4byte 0x00009fff _0807D284: .4byte gUnknown_202EDCC _0807D288: ldr r0, _0807D2A8 ldr r1, [r0] ldr r2, _0807D2AC adds r1, r2 mov r0, sp bl sub_808384C lsls r0, 24 cmp r0, 0 bne _0807D2CE ldr r0, [r5, 0x4] str r0, [sp] movs r3, 0x1 str r3, [sp, 0x8] b _0807D2CE .align 2, 0 _0807D2A8: .4byte gUnknown_203B418 _0807D2AC: .4byte 0x0000e21c _0807D2B0: mov r0, sp ldr r1, [sp, 0x4] bl sub_808384C lsls r0, 24 cmp r0, 0 bne _0807D2CE ldr r0, [r5, 0x4] str r0, [sp] movs r0, 0x1 str r0, [sp, 0x8] b _0807D2CE _0807D2C8: ldr r1, [sp, 0x4] ldr r0, [r1] str r0, [sp] _0807D2CE: mov r0, sp movs r2, 0 ldrsh r1, [r0, r2] movs r3, 0x2 ldrsh r2, [r0, r3] adds r0, r5, 0 movs r3, 0x1 bl sub_80694C0 adds r0, r5, 0 movs r1, 0 bl sub_804535C adds r0, r5, 0 bl sub_807BB78 movs r0, 0x1 bl sub_803F580 adds r0, r5, 0 bl sub_8045888 lsls r0, 24 cmp r0, 0 beq _0807D340 mov r1, r10 adds r1, 0x46 ldrb r4, [r1] movs r0, 0x9C lsls r0, 8 str r0, [r5, 0x1C] adds r6, r1, 0 movs r7, 0x7 _0807D310: ldr r0, _0807D3B8 ldr r0, [r0] movs r1, 0x3 ands r0, r1 cmp r0, 0 bne _0807D32E adds r4, 0x1 ands r4, r7 adds r0, r4, 0 ands r0, r7 strb r0, [r6] adds r0, r5, 0 adds r1, r4, 0 bl sub_806CE68 _0807D32E: movs r0, 0x22 bl sub_803E46C ldr r0, [r5, 0x1C] ldr r1, _0807D3BC adds r0, r1 str r0, [r5, 0x1C] cmp r0, 0 bgt _0807D310 _0807D340: movs r4, 0 str r4, [r5, 0x1C] movs r0, 0x22 bl sub_803E46C ldr r2, [sp, 0x8] cmp r2, 0 beq _0807D35C ldr r0, _0807D3C0 ldr r2, [r0] mov r0, r8 adds r1, r5, 0 bl sub_80522F4 _0807D35C: mov r3, r9 cmp r3, 0x1 bne _0807D36A mov r0, r8 adds r1, r5, 0 bl sub_8076D10 _0807D36A: mov r1, r10 ldrb r0, [r1, 0x7] cmp r0, 0 beq _0807D392 adds r0, r5, 0x4 bl sub_804AC20 ldr r1, _0807D3C4 ldr r0, [r1] strb r4, [r0, 0x1] ldr r0, [r1] movs r2, 0xB8 lsls r2, 3 adds r0, r2 movs r1, 0x1 negs r1, r1 str r1, [r0] movs r0, 0 bl sub_807EC28 _0807D392: adds r0, r5, 0 bl sub_806A5B8 ldr r0, _0807D3C4 ldr r0, [r0] ldr r3, _0807D3C8 adds r0, r3 ldrb r1, [r0] adds r0, r5, 0 bl sub_8075900 _0807D3A8: add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0807D3B8: .4byte gUnknown_202EDCC _0807D3BC: .4byte 0xfffffc00 _0807D3C0: .4byte gUnknown_80FCB14 _0807D3C4: .4byte gUnknown_203B418 _0807D3C8: .4byte 0x00003a08 thumb_func_end sub_807D148 thumb_func_start sub_807D3CC sub_807D3CC: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 mov r8, r0 movs r2, 0 ldr r4, _0807D448 ldr r0, [r4] ldr r1, _0807D44C adds r0, r1 ldrb r6, [r0] cmp r6, 0 bne _0807D3E8 movs r6, 0x2 _0807D3E8: mov r0, r8 str r2, [sp] bl sub_80450FC lsls r0, 24 lsrs r1, r0, 24 ldr r2, [sp] cmp r1, 0xFF bne _0807D450 mov r3, r8 movs r1, 0x6 ldrsh r0, [r3, r1] subs r5, r0, r6 adds r0, r6 cmp r5, r0 bgt _0807D4A8 _0807D408: mov r3, r8 movs r1, 0x4 ldrsh r0, [r3, r1] subs r4, r0, r6 adds r0, r6 adds r7, r5, 0x1 cmp r4, r0 bgt _0807D438 _0807D418: adds r0, r4, 0 adds r1, r5, 0 str r2, [sp] bl sub_807D4E0 ldr r2, [sp] orrs r2, r0 lsls r0, r2, 24 lsrs r2, r0, 24 adds r4, 0x1 mov r3, r8 movs r1, 0x4 ldrsh r0, [r3, r1] adds r0, r6 cmp r4, r0 ble _0807D418 _0807D438: adds r5, r7, 0 mov r3, r8 movs r1, 0x6 ldrsh r0, [r3, r1] adds r0, r6 cmp r5, r0 ble _0807D408 b _0807D4A8 .align 2, 0 _0807D448: .4byte gUnknown_203B418 _0807D44C: .4byte 0x00018209 _0807D450: lsls r0, r1, 3 subs r0, r1 lsls r0, 2 ldr r3, _0807D468 adds r0, r3 ldr r1, [r4] adds r6, r1, r0 movs r1, 0x4 ldrsh r0, [r6, r1] subs r5, r0, 0x1 b _0807D49E .align 2, 0 _0807D468: .4byte 0x000104c4 _0807D46C: movs r1, 0x2 ldrsh r0, [r6, r1] subs r4, r0, 0x1 movs r3, 0x6 ldrsh r0, [r6, r3] adds r0, 0x1 adds r7, r5, 0x1 cmp r4, r0 bgt _0807D49C _0807D47E: adds r0, r4, 0 adds r1, r5, 0 str r2, [sp] bl sub_807D4E0 ldr r2, [sp] orrs r2, r0 lsls r0, r2, 24 lsrs r2, r0, 24 adds r4, 0x1 movs r1, 0x6 ldrsh r0, [r6, r1] adds r0, 0x1 cmp r4, r0 ble _0807D47E _0807D49C: adds r5, r7, 0 _0807D49E: movs r3, 0x8 ldrsh r0, [r6, r3] adds r0, 0x1 cmp r5, r0 ble _0807D46C _0807D4A8: cmp r2, 0 beq _0807D4C4 ldr r0, _0807D4C0 ldr r1, [r0] mov r0, r8 bl sub_80522A8 bl sub_8040A84 bl sub_8049ED4 b _0807D4CE .align 2, 0 _0807D4C0: .4byte gUnknown_80FD2F8 _0807D4C4: ldr r0, _0807D4DC ldr r1, [r0] mov r0, r8 bl sub_80522A8 _0807D4CE: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0807D4DC: .4byte gUnknown_80FD320 thumb_func_end sub_807D3CC thumb_func_start sub_807D4E0 sub_807D4E0: push {r4,lr} bl sub_804954C ldr r4, [r0, 0x14] cmp r4, 0 beq _0807D506 adds r0, r4, 0 bl sub_80450F8 cmp r0, 0x2 bne _0807D506 adds r1, r4, 0 adds r1, 0x20 ldrb r0, [r1] cmp r0, 0 bne _0807D506 movs r0, 0x1 strb r0, [r1] b _0807D508 _0807D506: movs r0, 0 _0807D508: pop {r4} pop {r1} bx r1 thumb_func_end sub_807D4E0 thumb_func_start sub_807D510 sub_807D510: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r4, _0807D540 add sp, r4 ldr r1, _0807D544 add r1, sp str r0, [r1] movs r2, 0 movs r3, 0xD1 lsls r3, 4 add r3, sp str r2, [r3] ldr r4, _0807D548 add r4, sp str r2, [r4] add r5, sp, 0x4 mov r8, r5 mov r10, r2 mov r9, r2 add r7, sp, 0x8 b _0807D606 .align 2, 0 _0807D540: .4byte 0xfffff2d4 _0807D544: .4byte 0x00000d08 _0807D548: .4byte 0x00000d0c _0807D54C: movs r0, 0x4 ldrsh r1, [r5, r0] ldr r2, _0807D650 add r2, sp ldr r2, [r2] movs r3, 0x4 ldrsh r0, [r2, r3] subs r1, r0 cmp r1, 0 bge _0807D562 negs r1, r1 _0807D562: cmp r1, 0x2 bgt _0807D580 movs r3, 0x6 ldrsh r1, [r5, r3] ldr r4, _0807D650 add r4, sp ldr r4, [r4] movs r2, 0x6 ldrsh r0, [r4, r2] subs r1, r0 cmp r1, 0 bge _0807D57C negs r1, r1 _0807D57C: cmp r1, 0x2 ble _0807D5FE _0807D580: movs r1, 0x4 ldrsh r0, [r5, r1] movs r2, 0x6 ldrsh r1, [r5, r2] bl sub_804954C ldrh r1, [r0] movs r2, 0x3 adds r0, r2, 0 ands r0, r1 cmp r0, 0 beq _0807D5FE mov r3, r8 str r2, [r3] ldr r4, _0807D654 add r4, sp ldr r1, _0807D658 add r1, sp ldr r1, [r1] lsls r0, r1, 2 adds r4, r0 str r4, [r7, 0x6C] ldr r0, [r5, 0x4] str r0, [r7] movs r2, 0x4 ldrsh r0, [r5, r2] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, 0x4 lsls r1, 8 movs r3, 0x6 ldrsh r0, [r5, r3] lsls r2, r0, 1 adds r2, r0 lsls r2, 3 adds r2, 0x4 lsls r2, 8 mov r0, r8 bl sub_8045394 movs r2, 0 movs r1, 0 strh r1, [r7, 0x22] movs r0, 0x1 strb r0, [r7, 0x1C] strb r2, [r7, 0x1E] str r1, [r7, 0x18] ldr r0, _0807D65C ldr r0, [r0] ldr r5, _0807D660 adds r0, r5 add r0, r9 ldr r0, [r0] str r0, [r4] adds r7, 0x74 movs r0, 0x74 add r8, r0 ldr r2, _0807D658 add r2, sp ldr r1, [r2] adds r1, 0x1 str r1, [r2] _0807D5FE: movs r3, 0x4 add r9, r3 movs r4, 0x1 add r10, r4 _0807D606: ldr r0, _0807D65C ldr r1, [r0] ldr r5, _0807D664 adds r0, r1, r5 movs r2, 0 ldrsh r0, [r0, r2] cmp r10, r0 bge _0807D634 ldr r3, _0807D668 adds r0, r1, r3 add r0, r9 ldr r5, [r0] adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0807D5FE ldr r4, _0807D658 add r4, sp ldr r4, [r4] cmp r4, 0x18 ble _0807D54C _0807D634: ldr r5, _0807D658 add r5, sp ldr r5, [r5] cmp r5, 0 bne _0807D670 ldr r0, _0807D66C ldr r1, [r0] ldr r2, _0807D650 add r2, sp ldr r0, [r2] bl sub_80522A8 b _0807D9F4 .align 2, 0 _0807D650: .4byte 0x00000d08 _0807D654: .4byte 0x00000b58 _0807D658: .4byte 0x00000d0c _0807D65C: .4byte gUnknown_203B418 _0807D660: .4byte 0x00003804 _0807D664: .4byte 0x00003904 _0807D668: .4byte 0x0001361c _0807D66C: .4byte gUnknown_80FE034 _0807D670: movs r1, 0 movs r7, 0x1D ldr r0, _0807D754 add r0, sp _0807D678: strb r1, [r0] subs r0, 0x1 subs r7, 0x1 cmp r7, 0 bge _0807D678 movs r7, 0 ldr r3, _0807D758 add r3, sp ldr r3, [r3] cmp r7, r3 blt _0807D690 b _0807D7CC _0807D690: ldr r4, _0807D75C mov r10, r4 ldr r5, _0807D760 movs r0, 0 ldrsh r5, [r5, r0] ldr r0, _0807D764 add r0, sp str r5, [r0] _0807D6A0: movs r1, 0 mov r9, r1 ldr r2, _0807D768 add r2, sp ldr r2, [r2] ldrh r0, [r2, 0x4] ldr r1, _0807D76C ands r6, r1 orrs r6, r0 ldrh r0, [r2, 0x6] lsls r0, 16 mov r4, r10 ands r6, r4 orrs r6, r0 mov r4, r9 adds r5, r7, 0x1 movs r0, 0xD2 lsls r0, 4 add r0, sp str r5, [r0] ldr r1, _0807D760 ldr r2, _0807D764 add r2, sp ldr r2, [r2] cmp r2, 0x63 beq _0807D790 ldr r3, _0807D770 add r3, sp mov r8, r3 _0807D6DA: ldr r0, _0807D774 add r0, sp adds r0, r4 ldr r5, _0807D778 add r5, sp str r0, [r5] ldrb r0, [r0] cmp r0, 0 bne _0807D77C lsls r2, r4, 2 adds r2, r1 ldrh r0, [r2] ldr r1, _0807D768 add r1, sp ldr r1, [r1] ldrh r1, [r1, 0x4] adds r0, r1 lsls r0, 16 lsrs r0, 16 ldr r1, _0807D76C ands r6, r1 orrs r6, r0 ldrh r0, [r2, 0x2] ldr r2, _0807D768 add r2, sp ldr r2, [r2] ldrh r2, [r2, 0x6] adds r0, r2 lsls r0, 16 mov r3, r10 ands r6, r3 orrs r6, r0 lsls r0, r6, 16 asrs r0, 16 asrs r1, r6, 16 bl sub_804954C adds r2, r0, 0 ldrh r1, [r2] movs r3, 0x3 ands r3, r1 cmp r3, 0x1 bne _0807D77C movs r5, 0x80 lsls r5, 2 adds r0, r5, 0 ands r0, r1 cmp r0, 0 bne _0807D77C ldr r0, [r2, 0x14] cmp r0, 0 bne _0807D77C lsls r0, r7, 2 add r0, r8 str r6, [r0] ldr r0, _0807D778 add r0, sp ldr r0, [r0] strb r3, [r0] b _0807D7B8 .align 2, 0 _0807D754: .4byte 0x00000d05 _0807D758: .4byte 0x00000d0c _0807D75C: .4byte 0x0000ffff _0807D760: .4byte gUnknown_80F4468 _0807D764: .4byte 0x00000d18 _0807D768: .4byte 0x00000d08 _0807D76C: .4byte 0xffff0000 _0807D770: .4byte 0x00000bbc _0807D774: .4byte 0x00000ce8 _0807D778: .4byte 0x00000d28 _0807D77C: adds r4, 0x1 cmp r4, 0x1D bgt _0807D790 lsls r0, r4, 2 ldr r1, _0807D9B4 adds r0, r1 movs r2, 0 ldrsh r0, [r0, r2] cmp r0, 0x63 bne _0807D6DA _0807D790: mov r3, r9 cmp r3, 0 bne _0807D7B8 movs r0, 0x74 muls r0, r7 add r0, sp adds r0, 0x4 str r3, [r0] ldr r1, _0807D9B8 add r1, sp lsls r0, r7, 2 adds r1, r0 ldrh r2, [r1] mov r0, r10 orrs r0, r2 strh r0, [r1] ldrh r2, [r1, 0x2] mov r0, r10 orrs r0, r2 strh r0, [r1, 0x2] _0807D7B8: movs r4, 0xD2 lsls r4, 4 add r4, sp ldr r7, [r4] ldr r5, _0807D9BC add r5, sp ldr r5, [r5] cmp r7, r5 bge _0807D7CC b _0807D6A0 _0807D7CC: movs r7, 0 ldr r0, _0807D9BC add r0, sp ldr r0, [r0] cmp r7, r0 bge _0807D866 _0807D7D8: movs r0, 0x74 adds r1, r7, 0 muls r1, r0 mov r8, r1 mov r4, sp add r4, r8 adds r4, 0x4 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0807D85A adds r0, r4, 0x4 movs r1, 0x1 bl sub_80461C8 movs r2, 0x4 ldrsh r0, [r4, r2] movs r3, 0x6 ldrsh r1, [r4, r3] bl sub_80402AC movs r5, 0xC2 lsls r5, 4 add r5, sp lsls r6, r7, 3 adds r5, r6 ldr r4, _0807D9B8 add r4, sp lsls r0, r7, 2 adds r4, r0 movs r0, 0 ldrsh r1, [r4, r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r0, 0x4 lsls r0, 8 add r1, sp, 0x10 add r1, r8 ldr r1, [r1] subs r0, r1 movs r1, 0x3C bl __divsi3 str r0, [r5] ldr r5, _0807D9C0 add r5, sp adds r5, r6 movs r2, 0x2 ldrsh r1, [r4, r2] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r0, 0x4 lsls r0, 8 add r1, sp, 0x14 add r1, r8 ldr r1, [r1] subs r0, r1 movs r1, 0x3C bl __divsi3 str r0, [r5] _0807D85A: adds r7, 0x1 ldr r3, _0807D9BC add r3, sp ldr r3, [r3] cmp r7, r3 blt _0807D7D8 _0807D866: movs r1, 0xD1 lsls r1, 1 ldr r4, _0807D9C4 add r4, sp ldr r0, [r4] bl sub_80421C0 movs r5, 0 mov r9, r5 ldr r0, _0807D9C8 ldr r0, [r0] ldr r1, _0807D9CC adds r0, r1 ldrb r0, [r0] ldr r2, _0807D9D0 add r2, sp str r0, [r2] mov r10, r5 movs r6, 0 _0807D88C: movs r7, 0 mov r3, r10 adds r3, 0x22 ldr r4, _0807D9D4 add r4, sp str r3, [r4] adds r5, r6, 0x1 ldr r0, _0807D9D8 add r0, sp str r5, [r0] ldr r1, _0807D9BC add r1, sp ldr r1, [r1] cmp r7, r1 bge _0807D916 mov r2, r9 lsls r2, 24 mov r8, r2 _0807D8B0: movs r0, 0x74 adds r5, r7, 0 muls r5, r0 mov r4, sp adds r4, r5 adds r4, 0x4 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0807D90A movs r0, 0xC2 lsls r0, 4 add r0, sp lsls r2, r7, 3 adds r0, r2 ldr r1, [r0] ldr r0, _0807D9C0 add r0, sp adds r0, r2 ldr r2, [r0] adds r0, r4, 0 bl sub_804539C mov r0, r10 bl sub_8009C7C add r2, sp, 0x20 adds r2, r5 lsls r1, r0, 1 adds r1, r0 lsls r1, 2 str r1, [r2] movs r0, 0 str r0, [sp] adds r0, r4, 0 ldr r3, _0807D9D0 add r3, sp ldr r1, [r3] movs r2, 0 mov r4, r8 lsrs r3, r4, 24 bl sub_80462AC _0807D90A: adds r7, 0x1 ldr r5, _0807D9BC add r5, sp ldr r5, [r5] cmp r7, r5 blt _0807D8B0 _0807D916: movs r0, 0x13 bl sub_803E46C ldr r0, _0807D9D4 add r0, sp ldr r0, [r0] mov r10, r0 movs r0, 0x3 ands r0, r6 cmp r0, 0 bne _0807D930 movs r1, 0x1 add r9, r1 _0807D930: movs r0, 0x7 mov r2, r9 ands r2, r0 mov r9, r2 ldr r3, _0807D9D8 add r3, sp ldr r6, [r3] cmp r6, 0x3B ble _0807D88C movs r7, 0 ldr r4, _0807D9BC add r4, sp ldr r4, [r4] cmp r7, r4 bge _0807D996 _0807D94E: ldr r0, _0807D9B8 add r0, sp lsls r1, r7, 2 adds r4, r0, r1 movs r5, 0 ldrsh r0, [r4, r5] cmp r0, 0 blt _0807D98A movs r0, 0x74 muls r0, r7 add r0, sp adds r0, 0x4 bl sub_8045108 adds r1, r0, 0 adds r0, r4, 0 movs r2, 0x1 bl sub_80460F8 movs r1, 0 ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] bl sub_80402AC movs r3, 0x1 movs r4, 0xD1 lsls r4, 4 add r4, sp str r3, [r4] _0807D98A: adds r7, 0x1 ldr r5, _0807D9BC add r5, sp ldr r5, [r5] cmp r7, r5 blt _0807D94E _0807D996: movs r0, 0xD1 lsls r0, 4 add r0, sp ldr r0, [r0] cmp r0, 0 beq _0807D9E0 ldr r0, _0807D9DC ldr r1, [r0] ldr r2, _0807D9C4 add r2, sp ldr r0, [r2] bl sub_80522A8 b _0807D9EE .align 2, 0 _0807D9B4: .4byte gUnknown_80F4468 _0807D9B8: .4byte 0x00000bbc _0807D9BC: .4byte 0x00000d0c _0807D9C0: .4byte 0x00000c24 _0807D9C4: .4byte 0x00000d08 _0807D9C8: .4byte gUnknown_203B418 _0807D9CC: .4byte 0x00018210 _0807D9D0: .4byte 0x00000d14 _0807D9D4: .4byte 0x00000d1c _0807D9D8: .4byte 0x00000d24 _0807D9DC: .4byte gUnknown_80FE060 _0807D9E0: ldr r0, _0807DA08 ldr r1, [r0] ldr r3, _0807DA0C add r3, sp ldr r0, [r3] bl sub_80522A8 _0807D9EE: movs r0, 0x1 bl sub_807EC28 _0807D9F4: ldr r3, _0807DA10 add sp, r3 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0807DA08: .4byte gUnknown_80FE034 _0807DA0C: .4byte 0x00000d08 _0807DA10: .4byte 0x00000d2c thumb_func_end sub_807D510 thumb_func_start sub_807DA14 sub_807DA14: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r5, r0, 0 adds r6, r1, 0 lsls r2, 24 lsrs r4, r2, 24 ldr r0, [r6, 0x70] mov r10, r0 adds r0, r6, 0 movs r1, 0xE bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0807DA50 ldr r0, _0807DA48 adds r1, r6, 0 movs r2, 0 bl sub_8045B94 ldr r0, _0807DA4C b _0807DA5C .align 2, 0 _0807DA48: .4byte gUnknown_202DF98 _0807DA4C: .4byte gUnknown_80FCB98 _0807DA50: bl sub_80441E8 lsls r0, 24 cmp r0, 0 beq _0807DA6C ldr r0, _0807DA68 _0807DA5C: ldr r2, [r0] adds r0, r5, 0 adds r1, r6, 0 bl sub_80522F4 b _0807DB5E .align 2, 0 _0807DA68: .4byte gUnknown_80FC9C0 _0807DA6C: cmp r4, 0x8 bne _0807DA76 mov r0, r10 adds r0, 0x46 ldrb r4, [r0] _0807DA76: adds r0, r6, 0 movs r1, 0x6 adds r2, r4, 0 bl sub_806CDD4 lsls r1, r4, 2 adds r2, r6, 0x4 mov r9, r2 ldr r0, _0807DAFC adds r1, r0 mov r8, r1 _0807DA8C: ldrh r0, [r6, 0x4] mov r3, r8 ldrh r3, [r3] adds r0, r3 lsls r0, 16 ldrh r1, [r6, 0x6] mov r2, r8 ldrh r2, [r2, 0x2] adds r1, r2 lsls r1, 16 lsrs r7, r0, 16 orrs r7, r1 lsls r0, r7, 16 asrs r5, r0, 16 cmp r5, 0 ble _0807DB00 asrs r4, r7, 16 cmp r4, 0 ble _0807DB00 cmp r5, 0x36 bgt _0807DB00 cmp r4, 0x1E bgt _0807DB00 adds r0, r5, 0 adds r1, r4, 0 bl sub_804954C adds r1, r0, 0 ldr r0, [r1, 0x10] cmp r0, 0 bne _0807DB00 ldrh r1, [r1] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _0807DB00 adds r0, r6, 0 adds r1, r5, 0 adds r2, r4, 0 movs r3, 0 bl sub_80694C0 adds r0, r6, 0 movs r1, 0 bl sub_804535C adds r0, r6, 0 bl sub_8045888 lsls r0, 24 cmp r0, 0 beq _0807DA8C movs r0, 0x3A bl sub_803E46C b _0807DA8C .align 2, 0 _0807DAFC: .4byte gUnknown_80F4448 _0807DB00: adds r0, r6, 0 bl sub_806A5B8 mov r1, r9 adds r0, r6, 0 bl sub_80706A4 lsls r0, 24 cmp r0, 0 beq _0807DB20 adds r0, r6, 0 adds r1, r6, 0 movs r2, 0 movs r3, 0 bl sub_807D148 _0807DB20: adds r0, r6, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0807DB5E adds r0, r6, 0 movs r1, 0x8 bl sub_806CE68 mov r3, r10 ldrb r0, [r3, 0x7] cmp r0, 0 beq _0807DB48 mov r0, r9 bl sub_804AC20 movs r0, 0 bl sub_807EC28 _0807DB48: adds r0, r6, 0 bl sub_806A5B8 ldr r0, _0807DB6C ldr r0, [r0] ldr r1, _0807DB70 adds r0, r1 ldrb r1, [r0] adds r0, r6, 0 bl sub_8075900 _0807DB5E: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0807DB6C: .4byte gUnknown_203B418 _0807DB70: .4byte 0x00003a08 thumb_func_end sub_807DA14 thumb_func_start sub_807DB74 sub_807DB74: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r7, r0, 0 movs r0, 0 mov r8, r0 bl sub_80441E8 lsls r0, 24 cmp r0, 0 beq _0807DB94 ldr r0, _0807DB90 b _0807DBA0 .align 2, 0 _0807DB90: .4byte gUnknown_80FD060 _0807DB94: bl sub_804AF74 lsls r0, 24 cmp r0, 0 beq _0807DBB0 ldr r0, _0807DBAC _0807DBA0: ldr r1, [r0] adds r0, r7, 0 bl sub_80522A8 b _0807DC54 .align 2, 0 _0807DBAC: .4byte gUnknown_80FD08C _0807DBB0: movs r5, 0 ldr r0, _0807DC24 adds r6, r0, 0 _0807DBB6: movs r4, 0 _0807DBB8: adds r0, r4, 0 adds r1, r5, 0 bl sub_8049590 adds r2, r0, 0 ldrh r1, [r2] movs r0, 0x3 ands r0, r1 cmp r0, 0x2 bne _0807DBE2 adds r0, r1, 0 ands r0, r6 movs r1, 0x1 orrs r0, r1 strh r0, [r2] adds r0, r4, 0 adds r1, r5, 0 bl sub_80498A8 movs r1, 0x1 mov r8, r1 _0807DBE2: adds r4, 0x1 cmp r4, 0x37 ble _0807DBB8 adds r5, 0x1 cmp r5, 0x1F ble _0807DBB6 movs r5, 0 _0807DBF0: movs r4, 0 adds r6, r5, 0x1 _0807DBF4: adds r0, r4, 0 adds r1, r5, 0 bl sub_8049BB0 adds r4, 0x1 cmp r4, 0x37 ble _0807DBF4 adds r5, r6, 0 cmp r5, 0x1F ble _0807DBF0 mov r0, r8 cmp r0, 0 beq _0807DC30 ldr r1, _0807DC28 adds r0, r7, 0 bl sub_80421C0 ldr r0, _0807DC2C ldr r1, [r0] adds r0, r7, 0 bl sub_80522A8 b _0807DC3A .align 2, 0 _0807DC24: .4byte 0x0000fffc _0807DC28: .4byte 0x000001a1 _0807DC2C: .4byte gUnknown_80FD05C _0807DC30: ldr r0, _0807DC60 ldr r1, [r0] adds r0, r7, 0 bl sub_80522A8 _0807DC3A: ldr r0, _0807DC64 ldr r0, [r0] movs r1, 0xCE lsls r1, 3 adds r0, r1 movs r1, 0x1 strb r1, [r0] bl sub_806CF60 bl sub_8040A84 bl sub_8049ED4 _0807DC54: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0807DC60: .4byte gUnknown_80FD060 _0807DC64: .4byte gUnknown_203B418 thumb_func_end sub_807DB74 thumb_func_start sub_807DC68 sub_807DC68: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} mov r9, r0 ldr r0, _0807DC88 ldr r1, [r0] ldr r2, _0807DC8C adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 beq _0807DC94 ldr r0, _0807DC90 b _0807DCB8 .align 2, 0 _0807DC88: .4byte gUnknown_203B418 _0807DC8C: .4byte 0x00003a08 _0807DC90: .4byte gUnknown_80FD3C8 _0807DC94: ldr r3, _0807DCA4 adds r0, r1, r3 ldrb r0, [r0] cmp r0, 0 beq _0807DCAC ldr r0, _0807DCA8 b _0807DCB8 .align 2, 0 _0807DCA4: .4byte 0x00003a0b _0807DCA8: .4byte gUnknown_80FD3CC _0807DCAC: bl sub_80441BC lsls r0, 24 cmp r0, 0 beq _0807DCC8 ldr r0, _0807DCC4 _0807DCB8: ldr r1, [r0] mov r0, r9 bl sub_80522A8 b _0807DF0E .align 2, 0 _0807DCC4: .4byte gUnknown_80FD3D0 _0807DCC8: movs r0, 0 mov r8, r0 movs r5, 0x1 movs r1, 0 mov r10, r1 ldr r2, _0807DD68 adds r7, r2, 0 _0807DCD6: movs r4, 0x1 _0807DCD8: movs r6, 0 adds r0, r5, 0 adds r1, r4, 0 bl sub_8049590 adds r2, r0, 0 ldrh r1, [r2] ldr r3, _0807DD6C adds r0, r3, 0 adds r3, r1, 0 ands r3, r0 strh r3, [r2] mov r0, r10 strb r0, [r2, 0x9] movs r0, 0x10 ands r0, r3 cmp r0, 0 bne _0807DD94 movs r0, 0x80 lsls r0, 1 adds r1, r0, 0 adds r0, r3, 0 ands r0, r1 cmp r0, 0 bne _0807DD94 ldrh r0, [r2, 0x4] movs r1, 0x3 orrs r0, r1 strh r0, [r2, 0x4] ldr r1, _0807DD70 adds r0, r1, 0 adds r1, r3, 0 ands r1, r0 strh r1, [r2] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0807DD28 movs r3, 0x1 mov r8, r3 _0807DD28: movs r0, 0x3 ands r0, r1 cmp r0, 0x2 beq _0807DD94 cmp r0, 0x3 beq _0807DD94 cmp r5, 0x1 beq _0807DD44 cmp r4, 0x1 beq _0807DD44 cmp r5, 0x36 beq _0807DD44 cmp r4, 0x1E bne _0807DD5C _0807DD44: ldr r0, [r2, 0x14] cmp r0, 0 bne _0807DD5C ldr r0, _0807DD74 ldr r0, [r0] movs r1, 0xCE lsls r1, 3 adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _0807DD5C movs r6, 0x1 _0807DD5C: cmp r6, 0 beq _0807DD78 ldrh r0, [r2] ands r0, r7 movs r1, 0x2 b _0807DD90 .align 2, 0 _0807DD68: .4byte 0x0000fffc _0807DD6C: .4byte 0x0000fbff _0807DD70: .4byte 0x0000fff7 _0807DD74: .4byte gUnknown_203B418 _0807DD78: ldrh r1, [r2] movs r0, 0x3 ands r0, r1 cmp r0, 0x1 beq _0807DD94 adds r0, r1, 0 ands r0, r7 movs r1, 0x1 orrs r0, r1 movs r3, 0x80 lsls r3, 3 adds r1, r3, 0 _0807DD90: orrs r0, r1 strh r0, [r2] _0807DD94: adds r4, 0x1 cmp r4, 0x1E ble _0807DCD8 adds r5, 0x1 cmp r5, 0x36 ble _0807DCD6 ldr r0, _0807DF1C ldr r1, [r0] ldr r2, _0807DF20 adds r0, r1, r2 movs r3, 0 ldrsh r0, [r0, r3] adds r2, 0x2 adds r1, r2 movs r3, 0 ldrsh r1, [r1, r3] movs r2, 0x1 bl sub_8050C30 lsls r0, 24 cmp r0, 0 beq _0807DE02 movs r5, 0 movs r6, 0x84 lsls r6, 8 movs r7, 0 _0807DDC8: movs r4, 0 _0807DDCA: adds r0, r5, 0 adds r1, r4, 0 bl sub_8049590 adds r2, r0, 0 ldrh r1, [r2] movs r3, 0x80 lsls r3, 1 adds r0, r3, 0 ands r0, r1 cmp r0, 0 bne _0807DDF6 adds r0, r6, 0 ands r0, r1 cmp r0, r6 bne _0807DDF6 ldr r3, _0807DF24 adds r0, r3, 0 ands r0, r1 movs r1, 0x2 orrs r0, r1 strh r0, [r2] _0807DDF6: adds r4, 0x1 cmp r4, 0x1F ble _0807DDCA adds r5, 0x1 cmp r5, 0x37 ble _0807DDC8 _0807DE02: mov r0, r8 cmp r0, 0 beq _0807DE14 ldr r0, _0807DF1C ldr r0, [r0] ldr r1, _0807DF28 adds r0, r1 movs r1, 0 strb r1, [r0] _0807DE14: movs r5, 0 _0807DE16: movs r4, 0 adds r6, r5, 0x1 _0807DE1A: mov r2, r8 cmp r2, 0 beq _0807DE30 adds r0, r5, 0 adds r1, r4, 0 bl sub_8049590 ldrh r2, [r0] movs r1, 0x40 orrs r1, r2 strh r1, [r0] _0807DE30: adds r0, r5, 0 adds r1, r4, 0 bl sub_8049BB0 adds r4, 0x1 cmp r4, 0x1F ble _0807DE1A adds r5, r6, 0 cmp r5, 0x37 ble _0807DE16 movs r5, 0 _0807DE46: ldr r0, _0807DF1C ldr r0, [r0] lsls r1, r5, 2 ldr r3, _0807DF2C adds r0, r3 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0807DE74 movs r1, 0x4 ldrsh r0, [r4, r1] movs r2, 0x6 ldrsh r1, [r4, r2] bl sub_804954C ldrb r1, [r0, 0x9] adds r0, r4, 0 adds r0, 0x25 strb r1, [r0] _0807DE74: adds r5, 0x1 cmp r5, 0x13 ble _0807DE46 bl sub_804EB30 bl sub_804AAD4 bl sub_8049884 bl sub_806CF60 bl sub_8040A84 bl sub_8049ED4 ldr r0, _0807DF30 ldr r1, [r0] mov r0, r9 bl sub_80522A8 movs r0, 0x28 movs r1, 0x2B bl sub_803E708 mov r0, r9 movs r1, 0x1 bl sub_8075900 movs r5, 0 _0807DEAE: ldr r0, _0807DF1C ldr r0, [r0] lsls r1, r5, 2 ldr r3, _0807DF2C adds r0, r3 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0807DEF4 adds r0, r4, 0 bl sub_806A5B8 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0807DEF4 adds r1, r4, 0x4 adds r0, r4, 0 bl sub_80706A4 lsls r0, 24 cmp r0, 0 beq _0807DEF4 adds r0, r4, 0 adds r1, r4, 0 movs r2, 0 movs r3, 0 bl sub_807D148 _0807DEF4: adds r5, 0x1 cmp r5, 0x13 ble _0807DEAE ldr r0, _0807DF1C ldr r0, [r0] ldr r1, _0807DF34 adds r0, r1 movs r1, 0x1 strb r1, [r0] movs r0, 0x14 movs r1, 0x2B bl sub_803E708 _0807DF0E: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0807DF1C: .4byte gUnknown_203B418 _0807DF20: .4byte 0x0000e21c _0807DF24: .4byte 0x0000fffc _0807DF28: .4byte 0x00003a0c _0807DF2C: .4byte 0x000135cc _0807DF30: .4byte gUnknown_80FD3A0 _0807DF34: .4byte 0x00003a08 thumb_func_end sub_807DC68 thumb_func_start sub_807DF38 sub_807DF38: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x20 str r0, [sp, 0x8] mov r10, r1 str r2, [sp, 0xC] adds r6, r3, 0 ldr r0, [sp, 0x40] ldr r1, [sp, 0x44] lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x10] lsls r1, 16 asrs r1, 16 str r1, [sp, 0x14] movs r5, 0 b _0807DF62 _0807DF60: adds r5, 0x1 _0807DF62: cmp r5, 0x13 bgt _0807DF8E ldr r0, _0807DFA8 ldr r0, [r0] lsls r1, r5, 2 ldr r2, _0807DFAC adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0807DF60 adds r0, r4, 0 movs r1, 0x15 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0807DF60 _0807DF8E: cmp r5, 0x14 beq _0807DFB4 ldr r0, [sp, 0x8] mov r1, r10 bl sub_804218C ldr r0, _0807DFB0 mov r1, r10 movs r2, 0 bl sub_8045B94 b _0807DFC2 .align 2, 0 _0807DFA8: .4byte gUnknown_203B418 _0807DFAC: .4byte 0x000135cc _0807DFB0: .4byte gUnknown_202DF98 _0807DFB4: mov r0, r10 bl sub_807E580 lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bne _0807DFD4 _0807DFC2: ldr r0, _0807DFD0 ldr r2, [r0] ldr r0, [sp, 0x8] mov r1, r10 bl sub_80522F4 b _0807E174 .align 2, 0 _0807DFD0: .4byte gUnknown_80F96EC _0807DFD4: ldr r0, [sp, 0x8] mov r1, r10 adds r2, r6, 0 bl sub_804216C ldr r0, _0807E184 mov r1, r10 movs r2, 0 bl sub_8045B94 ldr r0, _0807E188 ldr r2, [r0] ldr r0, [sp, 0x8] mov r1, r10 bl sub_80522F4 movs r5, 0 ldr r0, _0807E18C lsls r1, r6, 2 adds r0, r1, r0 ldr r0, [r0] mov r9, r0 ldrh r4, [r0] movs r3, 0 ldrsh r0, [r0, r3] str r1, [sp, 0x1C] cmp r0, 0x63 bne _0807E00E b _0807E124 _0807E00E: mov r0, sp adds r0, 0x4 str r0, [sp, 0x18] _0807E014: ldr r1, [sp, 0xC] ldrh r0, [r1] adds r0, r4, r0 lsls r0, 16 lsrs r0, 16 ldr r2, _0807E190 ldr r1, [sp, 0x4] ands r1, r2 orrs r1, r0 str r1, [sp, 0x4] ldr r2, [sp, 0xC] ldrh r0, [r2, 0x2] mov r3, r9 ldrh r3, [r3, 0x2] adds r0, r3 lsls r0, 16 ldr r2, _0807E194 ands r2, r1 orrs r2, r0 str r2, [sp, 0x4] ldr r1, [sp, 0x18] movs r3, 0 ldrsh r0, [r1, r3] cmp r0, 0 blt _0807E112 asrs r1, r2, 16 cmp r1, 0 blt _0807E112 cmp r0, 0x37 bgt _0807E112 cmp r1, 0x1F bgt _0807E112 bl sub_8049590 mov r8, r0 ldr r0, [sp, 0x18] movs r2, 0 ldrsh r1, [r0, r2] cmp r1, 0 ble _0807E0BE ldr r0, [sp, 0x4] asrs r0, 16 cmp r0, 0 ble _0807E0BE cmp r1, 0x36 bgt _0807E0BE cmp r0, 0x1E bgt _0807E0BE mov r3, r8 ldrh r1, [r3] movs r0, 0x3 ands r0, r1 cmp r0, 0 bne _0807E0BE movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _0807E0BE ldr r2, _0807E198 adds r0, r2, 0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strh r0, [r3] movs r5, 0x1 negs r5, r5 add r7, sp, 0x4 _0807E09A: movs r4, 0x1 negs r4, r4 adds r6, r5, 0x1 _0807E0A0: movs r3, 0 ldrsh r0, [r7, r3] adds r0, r4 ldr r1, [sp, 0x4] asrs r1, 16 adds r1, r5 bl sub_80498A8 adds r4, 0x1 cmp r4, 0x1 ble _0807E0A0 adds r5, r6, 0 cmp r5, 0x1 ble _0807E09A movs r5, 0x1 _0807E0BE: mov r0, r8 ldr r4, [r0, 0x14] cmp r4, 0 beq _0807E0DC cmp r4, r10 beq _0807E0DC adds r0, r4, 0 bl sub_80450F8 cmp r0, 0x3 bne _0807E0DC add r0, sp, 0x4 movs r1, 0 bl sub_80461C8 _0807E0DC: mov r1, r8 ldr r4, [r1, 0x10] cmp r4, 0 beq _0807E112 cmp r4, r10 beq _0807E112 adds r0, r4, 0 bl sub_80450F8 cmp r0, 0x1 bne _0807E112 ldr r0, _0807E19C ldr r2, [sp, 0x1C] adds r0, r2, r0 ldr r0, [r0] str r0, [sp] ldr r0, [sp, 0x8] adds r1, r4, 0 ldr r2, [sp, 0x10] ldr r3, [sp, 0x14] bl sub_807E1A0 bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _0807E124 _0807E112: movs r3, 0x4 add r9, r3 mov r0, r9 ldrh r4, [r0] movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0x63 beq _0807E124 b _0807E014 _0807E124: bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _0807E174 mov r0, r10 bl sub_80450F8 cmp r0, 0x1 bne _0807E14E ldr r0, _0807E19C ldr r2, [sp, 0x1C] adds r0, r2, r0 ldr r0, [r0] str r0, [sp] ldr r0, [sp, 0x8] mov r1, r10 ldr r2, [sp, 0x10] ldr r3, [sp, 0x14] bl sub_807E1A0 _0807E14E: cmp r5, 0 beq _0807E174 movs r5, 0 _0807E154: movs r4, 0 adds r6, r5, 0x1 _0807E158: adds r0, r4, 0 adds r1, r5, 0 bl sub_8049BB0 adds r4, 0x1 cmp r4, 0x37 ble _0807E158 adds r5, r6, 0 cmp r5, 0x1F ble _0807E154 bl sub_8040A84 bl sub_8049ED4 _0807E174: add sp, 0x20 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0807E184: .4byte gUnknown_202DF98 _0807E188: .4byte gUnknown_80F96BC _0807E18C: .4byte gUnknown_8107178 _0807E190: .4byte 0xffff0000 _0807E194: .4byte 0x0000ffff _0807E198: .4byte 0x0000fffc _0807E19C: .4byte gUnknown_203B444 thumb_func_end sub_807DF38 thumb_func_start sub_807E1A0 sub_807E1A0: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x24 mov r9, r0 adds r6, r1, 0 lsls r2, 24 lsrs r2, 24 mov r8, r2 lsls r3, 16 asrs r7, r3, 16 adds r0, r6, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0807E244 ldr r5, [r6, 0x70] add r4, sp, 0x1C ldr r1, _0807E20C adds r0, r4, 0 bl sub_8092A88 adds r0, r6, 0 adds r1, r4, 0 bl sub_80571F0 lsls r0, 24 cmp r0, 0 bne _0807E244 ldrb r0, [r5, 0x6] cmp r0, 0 bne _0807E210 movs r0, 0xE ldrsh r4, [r5, r0] lsrs r0, r4, 31 adds r5, r4, r0 asrs r4, r5, 1 adds r0, r6, 0 movs r1, 0x2 bl sub_8071858 lsls r0, 24 cmp r0, 0 beq _0807E202 lsrs r0, r5, 31 adds r0, r4, r0 asrs r4, r0, 1 _0807E202: cmp r4, 0 bgt _0807E226 movs r4, 0x1 b _0807E226 .align 2, 0 _0807E20C: .4byte 0x00000163 _0807E210: ldr r4, [sp, 0x40] adds r0, r6, 0 movs r1, 0x2 bl sub_8071858 lsls r0, 24 cmp r0, 0 beq _0807E226 lsrs r0, r4, 31 adds r0, r4, r0 asrs r4, r0, 1 _0807E226: add r0, sp, 0x18 str r0, [sp] mov r0, r8 str r0, [sp, 0x4] str r7, [sp, 0x8] movs r0, 0 str r0, [sp, 0xC] str r0, [sp, 0x10] str r0, [sp, 0x14] mov r0, r9 adds r1, r6, 0 adds r2, r4, 0 movs r3, 0 bl sub_806F370 _0807E244: add sp, 0x24 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_807E1A0 thumb_func_start sub_807E254 sub_807E254: push {r4-r7,lr} sub sp, 0x8 adds r6, r0, 0 adds r7, r1, 0 movs r1, 0xE bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0807E274 ldr r0, _0807E270 adds r1, r6, 0 b _0807E286 .align 2, 0 _0807E270: .4byte gUnknown_202DF98 _0807E274: adds r0, r7, 0 movs r1, 0xE bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0807E2A4 ldr r0, _0807E29C adds r1, r7, 0 _0807E286: movs r2, 0 bl sub_8045B94 ldr r0, _0807E2A0 ldr r2, [r0] adds r0, r6, 0 adds r1, r7, 0 bl sub_80522F4 b _0807E366 .align 2, 0 _0807E29C: .4byte gUnknown_202DF98 _0807E2A0: .4byte gUnknown_80FCAC0 _0807E2A4: ldrh r1, [r6, 0x6] lsls r1, 16 ldrh r0, [r6, 0x4] orrs r0, r1 str r0, [sp] ldrh r1, [r7, 0x6] lsls r1, 16 ldrh r0, [r7, 0x4] orrs r0, r1 str r0, [sp, 0x4] mov r5, sp mov r0, sp bl nullsub_93 add r4, sp, 0x4 adds r0, r4, 0 bl nullsub_93 movs r0, 0 ldrsh r1, [r4, r0] movs r0, 0x2 ldrsh r2, [r4, r0] adds r0, r6, 0 movs r3, 0x1 bl sub_80694C0 mov r0, sp movs r2, 0 ldrsh r1, [r0, r2] movs r0, 0x2 ldrsh r2, [r5, r0] adds r0, r7, 0 movs r3, 0x1 bl sub_80694C0 adds r0, r6, 0 movs r1, 0 bl sub_804535C adds r0, r7, 0 movs r1, 0 bl sub_804535C adds r0, r6, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0807E330 ldr r0, [r6, 0x70] ldrb r0, [r0, 0x7] cmp r0, 0 beq _0807E31A adds r0, r6, 0x4 bl sub_804AC20 movs r0, 0 bl sub_807EC28 _0807E31A: adds r0, r6, 0 bl sub_806A5B8 ldr r0, _0807E370 ldr r0, [r0] ldr r1, _0807E374 adds r0, r1 ldrb r1, [r0] adds r0, r6, 0 bl sub_8075900 _0807E330: adds r0, r7, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0807E366 ldr r0, [r7, 0x70] ldrb r0, [r0, 0x7] cmp r0, 0 beq _0807E350 adds r0, r7, 0x4 bl sub_804AC20 movs r0, 0 bl sub_807EC28 _0807E350: adds r0, r7, 0 bl sub_806A5B8 ldr r0, _0807E370 ldr r0, [r0] ldr r2, _0807E374 adds r0, r2 ldrb r1, [r0] adds r0, r7, 0 bl sub_8075900 _0807E366: add sp, 0x8 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0807E370: .4byte gUnknown_203B418 _0807E374: .4byte 0x00003a08 thumb_func_end sub_807E254 thumb_func_start sub_807E378 sub_807E378: push {r4-r7,lr} bl sub_8083600 adds r4, r0, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _0807E38C b _0807E564 _0807E38C: ldr r0, _0807E41C ldr r1, [r0] ldr r3, _0807E420 adds r2, r1, r3 ldrh r3, [r2] movs r5, 0 ldrsh r1, [r2, r5] adds r6, r0, 0 cmp r1, 0 ble _0807E3AA subs r0, r3, 0x1 strh r0, [r2] lsls r0, 16 cmp r0, 0 bgt _0807E3B4 _0807E3AA: ldr r0, [r6] ldr r1, _0807E424 adds r0, r1 movs r1, 0x3 strb r1, [r0] _0807E3B4: adds r5, r6, 0 ldr r1, [r5] ldr r7, _0807E424 adds r0, r1, r7 ldrb r0, [r0] cmp r0, 0 bne _0807E434 ldr r2, _0807E420 adds r0, r1, r2 movs r3, 0 ldrsh r0, [r0, r3] cmp r0, 0xF9 ble _0807E3D0 b _0807E564 _0807E3D0: bl sub_805E804 adds r0, r4, 0 movs r1, 0x1 bl sub_806A2BC adds r0, r4, 0 bl sub_807520C bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _0807E3EE b _0807E564 _0807E3EE: ldr r0, _0807E428 ldr r1, [r0] adds r0, r4, 0 bl sub_80522A8 ldr r1, _0807E42C ldr r0, [r5] ldr r2, _0807E430 adds r0, r2 movs r3, 0 ldrsh r0, [r0, r3] lsls r0, 2 adds r0, r1 ldr r0, [r0] movs r1, 0 bl sub_80426C8 ldr r0, [r5] adds r0, r7 movs r1, 0x1 strb r1, [r0] b _0807E564 .align 2, 0 _0807E41C: .4byte gUnknown_203B418 _0807E420: .4byte 0x00000666 _0807E424: .4byte 0x0000067a _0807E428: .4byte gUnknown_80F9C4C _0807E42C: .4byte gUnknown_80F5FAC _0807E430: .4byte 0x00003a0e _0807E434: cmp r0, 0x1 bne _0807E4A0 ldr r2, _0807E490 adds r0, r1, r2 movs r3, 0 ldrsh r0, [r0, r3] cmp r0, 0x95 ble _0807E446 b _0807E564 _0807E446: bl sub_805E804 adds r0, r4, 0 movs r1, 0x1 bl sub_806A2BC adds r0, r4, 0 bl sub_807520C bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _0807E464 b _0807E564 _0807E464: ldr r0, _0807E494 ldr r1, [r0] adds r0, r4, 0 bl sub_80522A8 ldr r1, _0807E498 ldr r0, [r5] ldr r2, _0807E49C adds r0, r2 movs r3, 0 ldrsh r0, [r0, r3] lsls r0, 2 adds r0, r1 ldr r0, [r0] movs r1, 0x1 bl sub_80426C8 ldr r0, [r5] adds r0, r7 movs r1, 0x2 strb r1, [r0] b _0807E564 .align 2, 0 _0807E490: .4byte 0x00000666 _0807E494: .4byte gUnknown_80F9C70 _0807E498: .4byte gUnknown_80F5FAC _0807E49C: .4byte 0x00003a0e _0807E4A0: cmp r0, 0x2 bne _0807E508 ldr r2, _0807E4F8 adds r0, r1, r2 movs r3, 0 ldrsh r0, [r0, r3] cmp r0, 0x31 bgt _0807E564 bl sub_805E804 adds r0, r4, 0 movs r1, 0x1 bl sub_806A2BC adds r0, r4, 0 bl sub_807520C bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _0807E564 ldr r0, _0807E4FC ldr r1, [r0] adds r0, r4, 0 bl sub_80522A8 ldr r1, _0807E500 ldr r0, [r5] ldr r2, _0807E504 adds r0, r2 movs r3, 0 ldrsh r0, [r0, r3] lsls r0, 2 adds r0, r1 ldr r0, [r0] movs r1, 0x2 bl sub_80426C8 ldr r0, [r5] adds r0, r7 movs r1, 0x3 strb r1, [r0] b _0807E564 .align 2, 0 _0807E4F8: .4byte 0x00000666 _0807E4FC: .4byte gUnknown_80F9C8C _0807E500: .4byte gUnknown_80F5FAC _0807E504: .4byte 0x00003a0e _0807E508: ldr r5, _0807E56C adds r0, r1, r5 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bgt _0807E564 bl sub_805E804 adds r0, r4, 0 movs r1, 0x1 bl sub_806A2BC adds r0, r4, 0 bl sub_807520C bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _0807E564 ldr r0, _0807E570 ldr r1, [r0] adds r0, r4, 0 bl sub_80522A8 ldr r1, _0807E574 ldr r0, [r6] ldr r2, _0807E578 adds r0, r2 movs r3, 0 ldrsh r0, [r0, r3] lsls r0, 2 adds r0, r1 ldr r0, [r0] movs r1, 0x3 bl sub_80426C8 ldr r0, [r6] adds r0, r7 movs r1, 0x4 strb r1, [r0] ldr r1, _0807E57C adds r0, r4, 0 adds r2, r4, 0 bl sub_8068FE0 _0807E564: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0807E56C: .4byte 0x00000666 _0807E570: .4byte gUnknown_80F9CBC _0807E574: .4byte gUnknown_80F5FAC _0807E578: .4byte 0x00003a0e _0807E57C: .4byte 0x0000021e thumb_func_end sub_807E378 thumb_func_start sub_807E580 sub_807E580: push {lr} cmp r0, 0 beq _0807E596 movs r1, 0x2D bl sub_8046CB0 lsls r0, 24 cmp r0, 0 beq _0807E596 movs r0, 0 b _0807E5A0 _0807E596: ldr r0, _0807E5A4 ldr r0, [r0] ldr r1, _0807E5A8 adds r0, r1 ldrb r0, [r0] _0807E5A0: pop {r1} bx r1 .align 2, 0 _0807E5A4: .4byte gUnknown_203B418 _0807E5A8: .4byte 0x0000e264 thumb_func_end sub_807E580 thumb_func_start sub_807E5AC sub_807E5AC: push {lr} ldr r0, _0807E5DC ldr r0, [r0] ldr r1, _0807E5E0 adds r0, r1 ldrb r0, [r0] cmp r0, 0x8 bne _0807E5C6 movs r0, 0x8 bl sub_8084100 lsls r0, 24 lsrs r0, 24 _0807E5C6: bl sub_807E5E4 bl sub_8069E8C movs r0, 0 movs r1, 0x1 bl sub_807EAA0 pop {r0} bx r0 .align 2, 0 _0807E5DC: .4byte gUnknown_203B418 _0807E5E0: .4byte 0x0001c578 thumb_func_end sub_807E5AC thumb_func_start sub_807E5E4 sub_807E5E4: push {r4-r6,lr} ldr r3, _0807E674 ldr r1, [r3] ldr r2, _0807E678 adds r1, r2 movs r4, 0 strb r0, [r1] ldr r0, [r3] adds r2, r0, r2 ldrb r1, [r2] ldr r2, _0807E67C adds r0, r2 strb r1, [r0] ldr r0, [r3] ldr r1, _0807E680 adds r0, r1 strb r4, [r0] movs r2, 0 adds r4, r3, 0 ldr r6, _0807E684 movs r1, 0 ldr r5, _0807E688 _0807E610: ldr r0, [r4] adds r0, r6 adds r0, r2 strb r1, [r0] ldr r0, [r4] adds r0, r5 adds r0, r2 strb r1, [r0] adds r2, 0x1 cmp r2, 0x7 ble _0807E610 ldr r0, [r3] ldr r2, _0807E68C adds r0, r2 movs r2, 0 movs r1, 0x9 strb r1, [r0] ldr r0, [r3] ldr r1, _0807E690 adds r0, r1 strb r2, [r0] ldr r0, [r3] adds r1, 0x1 adds r0, r1 strb r2, [r0] movs r6, 0xBE lsls r6, 1 ldr r5, _0807E694 movs r4, 0xBF lsls r4, 1 _0807E64C: ldr r0, [r3] lsls r1, r2, 2 adds r0, r1 adds r0, r6 strb r2, [r0] ldr r0, [r3] adds r0, r1 adds r0, r5 strb r2, [r0] ldr r0, [r3] adds r0, r1 adds r0, r4 strb r2, [r0] adds r2, 0x1 cmp r2, 0xFF ble _0807E64C pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0807E674: .4byte gUnknown_203B418 _0807E678: .4byte 0x0000e265 _0807E67C: .4byte 0x0000e264 _0807E680: .4byte 0x0000e279 _0807E684: .4byte 0x0000e267 _0807E688: .4byte 0x0000e26f _0807E68C: .4byte 0x0000e266 _0807E690: .4byte 0x0000e277 _0807E694: .4byte 0x0000017d thumb_func_end sub_807E5E4 thumb_func_start sub_807E698 sub_807E698: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC lsls r0, 24 lsrs r0, 24 str r0, [sp] movs r0, 0 bl sub_807E580 lsls r0, 24 lsrs r0, 16 str r0, [sp, 0x4] ldr r0, _0807E724 ldr r0, [r0] ldr r0, [r0, 0x4] mov r10, r0 movs r0, 0 bl sub_807E580 lsls r0, 24 lsrs r0, 24 ldr r1, [sp] bl sub_8042818 movs r0, 0x25 bl sub_803E46C movs r0, 0x1 bl sub_804178C ldr r1, _0807E728 ldrb r0, [r1] str r0, [sp, 0x8] movs r0, 0x1 strb r0, [r1] movs r1, 0 mov r9, r1 ldr r2, _0807E72C mov r8, r2 _0807E6EC: movs r7, 0 movs r0, 0x25 bl sub_803E46C movs r6, 0 ldr r1, [sp, 0x4] lsls r0, r1, 2 mov r2, r10 adds r5, r0, r2 movs r0, 0xFF mov r12, r0 _0807E702: mov r1, r8 ldr r0, [r1] adds r0, r6 movs r2, 0xBE lsls r2, 1 adds r4, r0, r2 ldrb r0, [r4] ldrb r3, [r5] subs r1, r0, r3 cmp r1, 0 bge _0807E71A negs r1, r1 _0807E71A: cmp r1, 0x9 bgt _0807E730 strb r3, [r4] b _0807E746 .align 2, 0 _0807E724: .4byte gUnknown_202ECA0 _0807E728: .4byte gUnknown_203B40D _0807E72C: .4byte gUnknown_203B418 _0807E730: movs r7, 0x1 adds r2, r0, 0 adds r1, r3, 0 cmp r2, r1 bcs _0807E73E adds r0, 0xA b _0807E744 _0807E73E: cmp r2, r1 bls _0807E746 subs r0, 0xA _0807E744: strb r0, [r4] _0807E746: mov r1, r8 ldr r0, [r1] adds r0, r6 ldr r2, _0807E764 adds r4, r0, r2 ldrb r0, [r4] ldrb r3, [r5, 0x1] subs r1, r0, r3 cmp r1, 0 bge _0807E75C negs r1, r1 _0807E75C: cmp r1, 0x9 bgt _0807E768 strb r3, [r4] b _0807E77E .align 2, 0 _0807E764: .4byte 0x0000017d _0807E768: movs r7, 0x1 adds r2, r0, 0 adds r1, r3, 0 cmp r2, r1 bcs _0807E776 adds r0, 0xA b _0807E77C _0807E776: cmp r2, r1 bls _0807E77E subs r0, 0xA _0807E77C: strb r0, [r4] _0807E77E: mov r1, r8 ldr r0, [r1] adds r0, r6 movs r2, 0xBF lsls r2, 1 adds r4, r0, r2 ldrb r0, [r4] ldrb r3, [r5, 0x2] subs r1, r0, r3 cmp r1, 0 bge _0807E796 negs r1, r1 _0807E796: cmp r1, 0x9 bgt _0807E79E strb r3, [r4] b _0807E7B4 _0807E79E: movs r7, 0x1 adds r2, r0, 0 adds r1, r3, 0 cmp r2, r1 bcs _0807E7AC adds r0, 0xA b _0807E7B2 _0807E7AC: cmp r2, r1 bls _0807E7B4 subs r0, 0xA _0807E7B2: strb r0, [r4] _0807E7B4: adds r6, 0x4 adds r5, 0x4 movs r0, 0x1 negs r0, r0 add r12, r0 mov r1, r12 cmp r1, 0 bge _0807E702 movs r0, 0 movs r1, 0 bl sub_803E874 cmp r7, 0 beq _0807E7DA movs r2, 0x1 add r9, r2 mov r0, r9 cmp r0, 0x3F ble _0807E6EC _0807E7DA: ldr r0, _0807E7F8 mov r1, sp ldrb r1, [r1, 0x8] strb r1, [r0] ldr r0, [sp] bl sub_807E7FC add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0807E7F8: .4byte gUnknown_203B40D thumb_func_end sub_807E698 thumb_func_start sub_807E7FC sub_807E7FC: push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r6, _0807E874 ldr r0, [r6] ldr r1, _0807E878 adds r0, r1 ldr r5, [r0] cmp r5, 0 bne _0807E816 bl sub_8083600 adds r5, r0, 0 _0807E816: cmp r4, 0 beq _0807E844 ldr r0, [r6] ldr r2, _0807E87C adds r0, r2 ldrb r0, [r0] cmp r0, 0 bne _0807E844 ldr r4, _0807E880 movs r0, 0 bl sub_807E580 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_807EA18 ldr r0, _0807E884 ldr r1, [r0] adds r0, r5, 0 bl sub_80522A8 _0807E844: movs r5, 0 _0807E846: ldr r0, _0807E874 ldr r0, [r0] lsls r1, r5, 2 ldr r2, _0807E888 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0807E866 adds r0, r4, 0 bl sub_807E8F0 _0807E866: adds r5, 0x1 cmp r5, 0x13 ble _0807E846 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0807E874: .4byte gUnknown_203B418 _0807E878: .4byte 0x000181f8 _0807E87C: .4byte 0x0001356c _0807E880: .4byte gUnknown_202DF98 _0807E884: .4byte gUnknown_80FC5E0 _0807E888: .4byte 0x000135cc thumb_func_end sub_807E7FC thumb_func_start sub_807E88C sub_807E88C: push {r4-r7,lr} movs r0, 0 bl sub_807E580 lsls r0, 24 ldr r1, _0807E8E4 ldr r1, [r1] ldr r1, [r1, 0x4] movs r4, 0 ldr r5, _0807E8E8 lsrs r0, 14 adds r3, r0, r1 movs r6, 0xBE lsls r6, 1 _0807E8A8: ldr r0, [r5] lsls r2, r4, 2 adds r0, r2 ldrb r1, [r3] adds r0, r6 strb r1, [r0] ldr r0, [r5] adds r0, r2 ldrb r1, [r3, 0x1] ldr r7, _0807E8EC adds r0, r7 strb r1, [r0] ldr r0, [r5] adds r0, r2 ldrb r1, [r3, 0x2] movs r2, 0xBF lsls r2, 1 adds r0, r2 strb r1, [r0] adds r3, 0x4 adds r4, 0x1 cmp r4, 0xFF ble _0807E8A8 movs r0, 0 movs r1, 0 bl sub_803E874 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0807E8E4: .4byte gUnknown_202ECA0 _0807E8E8: .4byte gUnknown_203B418 _0807E8EC: .4byte 0x0000017d thumb_func_end sub_807E88C thumb_func_start sub_807E8F0 sub_807E8F0: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 adds r5, r0, 0 movs r0, 0 mov r8, r0 adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _0807E90E b _0807EA0A _0807E90E: ldr r4, [r5, 0x70] movs r0, 0x4 ldrsh r1, [r4, r0] mov r9, r1 mov r1, sp adds r6, r4, 0 adds r6, 0x5C ldrb r0, [r6] strb r0, [r1] adds r7, r4, 0 adds r7, 0x5D ldrb r0, [r7] strb r0, [r1, 0x1] adds r0, r5, 0 bl sub_8070774 adds r0, r5, 0 movs r1, 0x25 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0807E958 adds r0, r5, 0 bl sub_807E580 ldr r1, _0807E954 lsls r0, 24 lsrs r0, 22 adds r0, r1 ldrb r0, [r0] strb r0, [r6] mov r1, r8 strb r1, [r7] b _0807E984 .align 2, 0 _0807E954: .4byte gUnknown_80F520C _0807E958: adds r0, r4, 0 adds r0, 0xC4 ldrb r0, [r0] cmp r0, 0xC beq _0807E984 adds r0, r4, 0 adds r0, 0xF6 ldrb r0, [r0] cmp r0, 0 bne _0807E984 movs r1, 0x2 ldrsh r0, [r4, r1] movs r1, 0 bl sub_808DC68 strb r0, [r6] movs r1, 0x2 ldrsh r0, [r4, r1] movs r1, 0x1 bl sub_808DC68 strb r0, [r7] _0807E984: mov r0, sp adds r1, r4, 0 adds r1, 0x5C ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 bne _0807E9A0 mov r0, sp adds r1, r4, 0 adds r1, 0x5D ldrb r0, [r0, 0x1] ldrb r1, [r1] cmp r0, r1 beq _0807E9A4 _0807E9A0: movs r0, 0x1 mov r8, r0 _0807E9A4: ldr r1, _0807E9D0 adds r0, r1, 0 ldrh r1, [r4, 0x2] adds r0, r1 lsls r0, 16 lsrs r0, 16 cmp r0, 0x3 bhi _0807E9FE adds r0, r5, 0 movs r1, 0x25 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0807E9D4 movs r0, 0x2 ldrsh r1, [r4, r0] adds r0, r5, 0 bl sub_8069F54 b _0807E9D8 .align 2, 0 _0807E9D0: .4byte 0xfffffe88 _0807E9D4: movs r0, 0xBC lsls r0, 1 _0807E9D8: strh r0, [r4, 0x4] movs r1, 0x4 ldrsh r0, [r4, r1] cmp r0, r9 beq _0807E9FE bl sub_80687D0 str r0, [r5, 0x64] adds r0, r5, 0 bl sub_806CEBC adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl sub_806CCB4 movs r0, 0x1 mov r8, r0 _0807E9FE: mov r1, r8 cmp r1, 0 beq _0807EA0A adds r0, r5, 0 bl sub_80429D8 _0807EA0A: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_807E8F0 thumb_func_start sub_807EA18 sub_807EA18: push {lr} lsls r1, 24 ldr r2, _0807EA2C lsrs r1, 22 adds r1, r2 ldr r1, [r1] bl strcpy pop {r0} bx r0 .align 2, 0 _0807EA2C: .4byte gUnknown_80F9A54 thumb_func_end sub_807EA18 thumb_func_start sub_807EA30 sub_807EA30: push {lr} lsls r0, 24 cmp r0, 0 bne _0807EA6C ldr r1, _0807EA5C movs r0, 0 movs r2, 0 bl sub_808417C ldr r1, _0807EA60 ldr r1, [r1] ldr r2, _0807EA64 adds r1, r2 strb r0, [r1] bl sub_8083600 ldr r1, _0807EA68 ldr r1, [r1] bl sub_80522A8 b _0807EA8C .align 2, 0 _0807EA5C: .4byte gUnknown_80F4EAC _0807EA60: .4byte gUnknown_203B418 _0807EA64: .4byte 0x0000e277 _0807EA68: .4byte gUnknown_80FAD8C _0807EA6C: ldr r1, _0807EA90 movs r0, 0 movs r2, 0 bl sub_808417C ldr r1, _0807EA94 ldr r1, [r1] ldr r2, _0807EA98 adds r1, r2 strb r0, [r1] bl sub_8083600 ldr r1, _0807EA9C ldr r1, [r1] bl sub_80522A8 _0807EA8C: pop {r0} bx r0 .align 2, 0 _0807EA90: .4byte gUnknown_80F4EAC _0807EA94: .4byte gUnknown_203B418 _0807EA98: .4byte 0x0000e278 _0807EA9C: .4byte gUnknown_80FADB0 thumb_func_end sub_807EA30 thumb_func_start sub_807EAA0 sub_807EAA0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC lsls r0, 24 lsrs r0, 24 str r0, [sp] lsls r1, 24 lsrs r1, 24 str r1, [sp, 0x4] movs r0, 0 mov r8, r0 movs r1, 0x1 negs r1, r1 mov r9, r1 movs r2, 0 str r2, [sp, 0x8] bl sub_807E580 lsls r0, 24 lsrs r0, 24 mov r10, r0 movs r5, 0 ldr r7, _0807EAF0 ldr r6, _0807EAF4 _0807EAD6: ldr r3, [r7] adds r0, r3, r6 adds r4, r0, r5 ldr r1, _0807EAF8 adds r0, r3, r1 adds r0, r5 ldrb r0, [r0] ldrb r2, [r4] adds r1, r0, 0 cmp r2, r1 bcs _0807EAFC strb r0, [r4] b _0807EB08 .align 2, 0 _0807EAF0: .4byte gUnknown_203B418 _0807EAF4: .4byte 0x0000e267 _0807EAF8: .4byte 0x0000e26f _0807EAFC: cmp r2, r1 bls _0807EB08 adds r0, r5, r6 adds r0, r3, r0 bl sub_80838EC _0807EB08: ldr r0, [r7] ldr r2, _0807EB38 adds r0, r2 adds r0, r5 ldrb r1, [r0] ldr r0, _0807EB3C cmp r8, r1 bge _0807EB1C mov r8, r1 mov r9, r5 _0807EB1C: adds r5, 0x1 cmp r5, 0x7 ble _0807EAD6 mov r1, r9 cmp r1, 0 bge _0807EB44 ldr r0, [r0] ldr r2, _0807EB40 adds r1, r0, r2 ldrb r1, [r1] subs r2, 0x1 adds r0, r2 strb r1, [r0] b _0807EB4E .align 2, 0 _0807EB38: .4byte 0x0000e267 _0807EB3C: .4byte gUnknown_203B418 _0807EB40: .4byte 0x0000e265 _0807EB44: ldr r0, [r0] ldr r1, _0807EB94 adds r0, r1 mov r2, r9 strb r2, [r0] _0807EB4E: ldr r0, _0807EB98 ldr r1, [r0] ldr r2, _0807EB9C adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 beq _0807EB64 ldr r0, _0807EB94 adds r1, r0 movs r0, 0 strb r0, [r1] _0807EB64: movs r0, 0 bl sub_807E580 lsls r0, 24 lsrs r0, 24 cmp r10, r0 bne _0807EB78 ldr r1, [sp, 0x4] cmp r1, 0 beq _0807EB82 _0807EB78: movs r2, 0x1 str r2, [sp, 0x8] ldr r0, [sp] bl sub_807E698 _0807EB82: ldr r0, _0807EB98 ldr r0, [r0] ldr r2, _0807EBA0 adds r1, r0, r2 ldrb r0, [r1] cmp r0, 0 beq _0807EBA4 subs r0, 0x1 b _0807EBA6 .align 2, 0 _0807EB94: .4byte 0x0000e264 _0807EB98: .4byte gUnknown_203B418 _0807EB9C: .4byte 0x0000e279 _0807EBA0: .4byte 0x0000e266 _0807EBA4: movs r0, 0x9 _0807EBA6: strb r0, [r1] ldr r4, _0807EC14 ldr r0, [r4] ldr r2, _0807EC18 adds r1, r0, r2 ldrb r0, [r1] cmp r0, 0 beq _0807EBD4 adds r0, r1, 0 bl sub_80838EC ldr r0, [r4] ldr r1, _0807EC18 adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _0807EBD4 bl sub_8083600 ldr r1, _0807EC1C ldr r1, [r1] bl sub_80522A8 _0807EBD4: ldr r4, _0807EC14 ldr r0, [r4] ldr r2, _0807EC20 adds r1, r0, r2 ldrb r0, [r1] cmp r0, 0 beq _0807EC00 adds r0, r1, 0 bl sub_80838EC ldr r0, [r4] ldr r1, _0807EC20 adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _0807EC00 bl sub_8083600 ldr r1, _0807EC24 ldr r1, [r1] bl sub_80522A8 _0807EC00: ldr r0, [sp, 0x8] add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0807EC14: .4byte gUnknown_203B418 _0807EC18: .4byte 0x0000e277 _0807EC1C: .4byte gUnknown_80FA778 _0807EC20: .4byte 0x0000e278 _0807EC24: .4byte gUnknown_80FA758 thumb_func_end sub_807EAA0 thumb_func_start sub_807EC28 sub_807EC28: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C lsls r0, 24 lsrs r0, 24 mov r8, r0 bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _0807EC46 b _0807EF32 _0807EC46: bl sub_8083600 adds r7, r0, 0 ldr r0, [r7, 0x70] mov r9, r0 ldr r4, _0807ECB4 ldr r0, [r4] movs r5, 0xD3 lsls r5, 3 adds r0, r5 ldrb r0, [r0] str r0, [sp, 0x8] adds r0, r7, 0 bl sub_8045128 ldrh r0, [r0] lsrs r0, 5 mov r10, r0 movs r0, 0x1 mov r1, r10 ands r1, r0 mov r10, r1 ldr r0, [r4] adds r0, r5 strb r1, [r0] ldr r0, [r4] ldr r3, _0807ECB8 adds r0, r3 mov r2, r10 strb r2, [r0] ldr r2, [r4] ldr r6, _0807ECBC adds r0, r2, r6 ldrb r1, [r0] cmp r1, 0 beq _0807EC90 b _0807EF32 _0807EC90: adds r6, 0x26 adds r0, r2, r6 ldr r0, [r0] cmp r0, 0 bne _0807EC9C b _0807EF32 _0807EC9C: mov r0, r9 adds r0, 0xE4 ldrb r0, [r0] cmp r0, 0x1 bne _0807ECC0 adds r0, r2, r5 strb r1, [r0] ldr r0, [r4] adds r0, r3 strb r1, [r0] b _0807EF32 .align 2, 0 _0807ECB4: .4byte gUnknown_203B418 _0807ECB8: .4byte 0x00000699 _0807ECBC: .4byte 0x0000066e _0807ECC0: movs r0, 0 str r0, [sp, 0xC] movs r6, 0 _0807ECC6: ldr r0, _0807ED48 ldr r0, [r0] lsls r1, r6, 2 ldr r2, _0807ED4C adds r0, r2 adds r0, r1 ldr r5, [r0] adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0807ED0E ldr r0, [r5, 0x70] ldrb r0, [r0, 0x8] cmp r0, 0x1 bne _0807ED0E adds r0, r5, 0 bl sub_8070BC0 lsls r0, 24 cmp r0, 0 beq _0807ED0E adds r0, r7, 0 bl sub_80450FC adds r4, r0, 0 adds r0, r5, 0 bl sub_80450FC lsls r4, 24 lsls r0, 24 cmp r4, r0 bne _0807ED0E movs r0, 0x1 str r0, [sp, 0xC] _0807ED0E: adds r6, 0x1 cmp r6, 0xF ble _0807ECC6 ldr r1, _0807ED50 ldr r0, [sp] ands r0, r1 movs r1, 0xBE lsls r1, 1 orrs r0, r1 ldr r1, _0807ED54 ands r0, r1 str r0, [sp] ldr r1, [sp, 0x8] cmp r1, 0 bne _0807ED5C mov r2, r10 cmp r2, 0x1 bne _0807ED64 ldr r6, [sp, 0xC] cmp r6, 0 bne _0807ED3A b _0807EF32 _0807ED3A: ldr r0, _0807ED58 ldr r1, [r0] mov r0, sp movs r2, 0x1 bl PrintFieldMessage b _0807EF32 .align 2, 0 _0807ED48: .4byte gUnknown_203B418 _0807ED4C: .4byte 0x0001358c _0807ED50: .4byte 0xffff0000 _0807ED54: .4byte 0xff00ffff _0807ED58: .4byte gUnknown_80FE674 _0807ED5C: mov r0, r10 cmp r0, 0x1 bne _0807ED64 b _0807EF32 _0807ED64: ldr r1, [sp, 0x8] cmp r1, 0x1 bne _0807ED70 mov r2, r10 cmp r2, 0 beq _0807ED78 _0807ED70: mov r6, r8 cmp r6, 0 bne _0807ED78 b _0807EF32 _0807ED78: movs r0, 0 str r0, [sp, 0x10] movs r1, 0 str r1, [sp, 0x14] bl sub_807EF48 lsls r0, 24 cmp r0, 0 bne _0807ED8C b _0807EECC _0807ED8C: movs r2, 0x1 str r2, [sp, 0x14] movs r6, 0 _0807ED92: ldr r0, _0807EE90 ldr r0, [r0] lsls r1, r6, 2 ldr r2, _0807EE94 adds r0, r2 adds r0, r1 ldr r5, [r0] adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _0807EDAE b _0807EEC4 _0807EDAE: ldr r0, [r5, 0x70] ldrb r0, [r0, 0x8] cmp r0, 0x1 beq _0807EDB8 b _0807EEC4 _0807EDB8: adds r0, r5, 0 bl sub_8070BC0 lsls r0, 24 cmp r0, 0 bne _0807EDC6 b _0807EEC4 _0807EDC6: adds r0, r7, 0 bl sub_80450FC adds r4, r0, 0 adds r0, r5, 0 bl sub_80450FC lsls r4, 24 lsls r0, 24 cmp r4, r0 bne _0807EEC4 movs r6, 0x1 str r6, [sp, 0x10] movs r0, 0x4 ldrsh r1, [r7, r0] movs r2, 0x4 ldrsh r0, [r5, r2] subs r1, r0 cmp r1, 0 bge _0807EDF0 negs r1, r1 _0807EDF0: cmp r1, 0x1 bgt _0807EE10 movs r6, 0x6 ldrsh r1, [r7, r6] movs r2, 0x6 ldrsh r0, [r5, r2] subs r1, r0 cmp r1, 0 bge _0807EE04 negs r1, r1 _0807EE04: adds r6, r7, 0x4 mov r9, r6 adds r0, r5, 0x4 mov r8, r0 cmp r1, 0x1 ble _0807EE72 _0807EE10: movs r3, 0x1 negs r3, r3 add r6, sp, 0x4 adds r1, r7, 0x4 mov r9, r1 adds r2, r5, 0x4 mov r8, r2 _0807EE1E: movs r4, 0x1 negs r4, r4 _0807EE22: ldrh r0, [r7, 0x4] adds r0, r3 lsls r0, 16 lsrs r0, 16 ldr r1, _0807EE98 ldr r2, [sp, 0x4] ands r2, r1 orrs r2, r0 str r2, [sp, 0x4] ldrh r0, [r7, 0x6] adds r0, r4 lsls r0, 16 ldr r1, _0807EE9C ands r1, r2 orrs r1, r0 str r1, [sp, 0x4] movs r2, 0 ldrsh r0, [r6, r2] asrs r1, 16 str r3, [sp, 0x18] bl sub_804954C ldrb r0, [r0, 0x9] ldr r3, [sp, 0x18] cmp r0, 0xFF beq _0807EE66 adds r0, r5, 0 adds r1, r6, 0 bl sub_80703A0 lsls r0, 24 ldr r3, [sp, 0x18] cmp r0, 0 beq _0807EEA0 _0807EE66: adds r4, 0x1 cmp r4, 0x1 ble _0807EE22 adds r3, 0x1 cmp r3, 0x1 ble _0807EE1E _0807EE72: adds r0, r7, 0 bl sub_8070BC0 lsls r0, 24 cmp r0, 0 beq _0807EEAE mov r0, r9 mov r1, r8 bl sub_80983D8 adds r1, r0, 0 adds r0, r7, 0 bl sub_806CE34 b _0807EEB2 .align 2, 0 _0807EE90: .4byte gUnknown_203B418 _0807EE94: .4byte 0x0001358c _0807EE98: .4byte 0xffff0000 _0807EE9C: .4byte 0x0000ffff _0807EEA0: adds r0, r7, 0 adds r1, r5, 0 movs r2, 0x3 adds r3, r6, 0 bl sub_807D148 b _0807EE72 _0807EEAE: movs r6, 0 str r6, [sp, 0x10] _0807EEB2: mov r0, r8 mov r1, r9 bl sub_80983D8 adds r1, r0, 0 adds r0, r5, 0 bl sub_806CE68 b _0807EECC _0807EEC4: adds r6, 0x1 cmp r6, 0xF bgt _0807EECC b _0807ED92 _0807EECC: ldr r0, [sp, 0x14] cmp r0, 0 beq _0807EF04 ldr r1, [sp, 0x10] cmp r1, 0 beq _0807EEDE ldr r0, [sp, 0xC] cmp r0, 0 bne _0807EF04 _0807EEDE: ldr r0, _0807EEF8 ldr r0, [r0] ldr r2, _0807EEFC adds r1, r0, r2 ldr r6, _0807EF00 adds r0, r6 ldr r1, [r1] ldr r0, [r0] cmp r1, r0 ble _0807EF32 _0807EEF2: bl sub_807F33C b _0807EF32 .align 2, 0 _0807EEF8: .4byte gUnknown_203B418 _0807EEFC: .4byte 0x00000694 _0807EF00: .4byte 0x0000068c _0807EF04: ldr r0, [sp, 0x10] bl sub_807EFFC ldr r0, [sp, 0x10] bl sub_807F19C cmp r0, 0 bne _0807EEF2 ldr r0, [sp, 0x8] cmp r0, 0x1 bne _0807EF32 mov r1, r10 cmp r1, 0 bne _0807EF32 ldr r2, [sp, 0xC] cmp r2, 0 beq _0807EF32 ldr r0, _0807EF44 ldr r1, [r0] mov r0, sp movs r2, 0x1 bl PrintFieldMessage _0807EF32: add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0807EF44: .4byte gUnknown_80FE65C thumb_func_end sub_807EC28 thumb_func_start sub_807EF48 sub_807EF48: push {lr} ldr r0, _0807EF70 ldr r2, [r0] ldr r1, _0807EF74 adds r0, r2, r1 ldr r3, _0807EF78 adds r1, r2, r3 ldr r0, [r0] ldr r1, [r1] subs r0, r1 cmp r0, 0 bgt _0807EF7C movs r1, 0xD2 lsls r1, 3 adds r0, r2, r1 ldr r0, [r0] cmp r0, 0 bne _0807EF7C movs r0, 0 b _0807EF7E .align 2, 0 _0807EF70: .4byte gUnknown_203B418 _0807EF74: .4byte 0x00000694 _0807EF78: .4byte 0x0000068c _0807EF7C: movs r0, 0x1 _0807EF7E: pop {r1} bx r1 thumb_func_end sub_807EF48 thumb_func_start sub_807EF84 sub_807EF84: push {r4,lr} sub sp, 0x4 ldr r1, _0807EFD0 ldr r0, [sp] ands r0, r1 movs r1, 0xBE lsls r1, 1 orrs r0, r1 ldr r1, _0807EFD4 ands r0, r1 str r0, [sp] movs r0, 0x1 bl sub_807EFFC movs r0, 0x1 bl sub_807F19C adds r4, r0, 0 cmp r4, 0 beq _0807EFE2 bl sub_8083600 bl sub_8045128 ldrh r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _0807EFDC cmp r4, 0x2 beq _0807EFEE ldr r0, _0807EFD8 ldr r1, [r0] mov r0, sp movs r2, 0x1 bl PrintFieldMessage b _0807EFEE .align 2, 0 _0807EFD0: .4byte 0xffff0000 _0807EFD4: .4byte 0xff00ffff _0807EFD8: .4byte gUnknown_80FE63C _0807EFDC: bl sub_807F33C b _0807EFEE _0807EFE2: ldr r0, _0807EFF8 ldr r1, [r0] mov r0, sp movs r2, 0x1 bl PrintFieldMessage _0807EFEE: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0807EFF8: .4byte gUnknown_80FE5F0 thumb_func_end sub_807EF84 thumb_func_start sub_807EFFC sub_807EFFC: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 lsls r0, 24 lsrs r3, r0, 24 ldr r4, _0807F168 ldr r0, [r4] movs r5, 0xD2 lsls r5, 3 adds r2, r0, r5 ldr r0, [r2] cmp r0, 0 bne _0807F01E b _0807F158 _0807F01E: ldr r1, _0807F16C ldr r0, [sp] ands r0, r1 movs r1, 0xBE lsls r1, 1 orrs r0, r1 ldr r1, _0807F170 ands r0, r1 str r0, [sp] cmp r3, 0 bne _0807F036 b _0807F158 _0807F036: ldr r1, _0807F174 ldr r0, [r2] str r0, [r1] ldr r0, _0807F178 ldr r1, [r0] mov r0, sp movs r2, 0x1 bl sub_8052B8C cmp r0, 0x1 beq _0807F04E b _0807F158 _0807F04E: movs r0, 0xA6 lsls r0, 1 bl sub_8083E38 ldr r0, [r4] adds r0, r5 ldr r0, [r0] bl sub_80913A0 ldr r0, [r4] ldr r2, _0807F17C adds r1, r0, r2 ldr r1, [r1] str r1, [sp, 0xC] ldr r2, _0807F180 adds r1, r0, r2 ldr r6, [r1] ldr r1, _0807F184 adds r0, r1 ldr r0, [r0] cmp r6, r0 bgt _0807F134 mov r8, r4 _0807F07C: mov r2, r8 ldr r0, [r2] ldr r2, _0807F188 adds r1, r0, r2 ldr r5, [r1] ldr r1, _0807F18C adds r0, r1 ldr r0, [r0] adds r2, r6, 0x1 mov r10, r2 cmp r5, r0 bgt _0807F124 lsls r0, r6, 16 lsrs r0, 16 mov r9, r0 _0807F09A: lsls r0, r5, 16 mov r1, r9 orrs r0, r1 str r0, [sp, 0x4] adds r0, r6, 0 adds r1, r5, 0 bl sub_804954C adds r4, r0, 0 ldrh r1, [r4] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _0807F114 ldr r0, [r4, 0x14] cmp r0, 0 beq _0807F114 bl sub_80450F8 cmp r0, 0x3 bne _0807F114 ldr r0, [r4, 0x14] bl sub_8045108 adds r2, r0, 0 ldrb r1, [r2] movs r7, 0x2 movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _0807F114 ldr r0, [r2] str r0, [sp, 0x8] add r4, sp, 0x4 adds r0, r4, 0 movs r1, 0x1 bl sub_80461C8 ldr r0, [sp, 0x8] lsrs r0, 16 lsls r0, 24 lsrs r0, 24 bl sub_80914E4 lsls r0, 24 add r3, sp, 0x8 cmp r0, 0 beq _0807F10A ldrb r0, [r3] adds r2, r7, 0 orrs r2, r0 ldr r1, _0807F190 ldr r0, [sp, 0x8] ands r0, r1 orrs r0, r2 str r0, [sp, 0x8] _0807F10A: adds r0, r4, 0 adds r1, r3, 0 movs r2, 0x1 bl sub_80460F8 _0807F114: adds r5, 0x1 mov r2, r8 ldr r0, [r2] ldr r1, _0807F18C adds r0, r1 ldr r0, [r0] cmp r5, r0 ble _0807F09A _0807F124: mov r6, r10 mov r2, r8 ldr r0, [r2] ldr r1, _0807F184 adds r0, r1 ldr r0, [r0] cmp r6, r0 ble _0807F07C _0807F134: ldr r0, _0807F168 ldr r0, [r0] ldr r1, _0807F194 adds r2, r0, r1 subs r1, 0x8 adds r0, r1 ldr r1, [r0] ldr r0, [sp, 0xC] subs r1, r0 ldr r0, [r2] adds r0, r1 str r0, [r2] ldr r0, _0807F198 ldr r1, [r0] mov r0, sp movs r2, 0x1 bl PrintFieldMessage _0807F158: add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0807F168: .4byte gUnknown_203B418 _0807F16C: .4byte 0xffff0000 _0807F170: .4byte 0xff00ffff _0807F174: .4byte gUnknown_202DE30 _0807F178: .4byte gUnknown_80FE5C0 _0807F17C: .4byte 0x0000068c _0807F180: .4byte 0x0000e240 _0807F184: .4byte 0x0000e248 _0807F188: .4byte 0x0000e244 _0807F18C: .4byte 0x0000e24c _0807F190: .4byte 0xffffff00 _0807F194: .4byte 0x00000694 _0807F198: .4byte gUnknown_80FE4F4 thumb_func_end sub_807EFFC thumb_func_start sub_807F19C sub_807F19C: push {r4-r7,lr} sub sp, 0x4 lsls r0, 24 lsrs r2, r0, 24 ldr r1, _0807F1EC ldr r0, [sp] ands r0, r1 movs r1, 0xBE lsls r1, 1 orrs r0, r1 ldr r1, _0807F1F0 ands r0, r1 str r0, [sp] ldr r0, _0807F1F4 ldr r0, [r0] ldr r3, _0807F1F8 adds r1, r0, r3 subs r3, 0x8 adds r0, r3 ldr r1, [r1] ldr r0, [r0] subs r4, r1, r0 cmp r4, 0 bgt _0807F1CE b _0807F31A _0807F1CE: cmp r2, 0 beq _0807F1E6 ldr r0, _0807F1FC str r4, [r0] ldr r0, _0807F200 ldr r1, [r0] mov r0, sp movs r2, 0x1 bl sub_8052B8C cmp r0, 0x1 beq _0807F204 _0807F1E6: movs r0, 0x1 b _0807F31C .align 2, 0 _0807F1EC: .4byte 0xffff0000 _0807F1F0: .4byte 0xff00ffff _0807F1F4: .4byte gUnknown_203B418 _0807F1F8: .4byte 0x00000694 _0807F1FC: .4byte gUnknown_202DE30 _0807F200: .4byte gUnknown_80FE568 _0807F204: ldr r0, _0807F224 ldr r0, [r0] movs r1, 0x98 lsls r1, 2 adds r0, r1 ldr r0, [r0] cmp r0, r4 bge _0807F22C ldr r0, _0807F228 ldr r1, [r0] mov r0, sp movs r2, 0x1 bl PrintFieldMessage movs r0, 0x2 b _0807F31C .align 2, 0 _0807F224: .4byte gUnknown_203B460 _0807F228: .4byte gUnknown_80FE520 _0807F22C: movs r0, 0xA6 lsls r0, 1 bl sub_8083E38 negs r0, r4 bl sub_80913A0 movs r6, 0 _0807F23C: movs r5, 0 adds r7, r6, 0x1 _0807F240: adds r0, r6, 0 adds r1, r5, 0 bl sub_804954C adds r4, r0, 0 ldrh r1, [r4] movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _0807F27E ldr r0, [r4, 0x14] cmp r0, 0 beq _0807F27E bl sub_80450F8 cmp r0, 0x3 bne _0807F27E ldr r0, [r4, 0x14] bl sub_8045108 adds r4, r0, 0 ldrb r0, [r4, 0x2] bl sub_80914E4 lsls r0, 24 cmp r0, 0 beq _0807F27E ldrb r1, [r4] movs r0, 0xFD ands r0, r1 strb r0, [r4] _0807F27E: adds r5, 0x1 cmp r5, 0x1F ble _0807F240 adds r6, r7, 0 cmp r6, 0x37 ble _0807F23C movs r5, 0 _0807F28C: ldr r0, _0807F324 lsls r1, r5, 2 ldr r0, [r0] adds r4, r0, r1 ldrb r1, [r4] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0807F2B2 ldrb r0, [r4, 0x2] bl sub_80914E4 lsls r0, 24 cmp r0, 0 beq _0807F2B2 ldrb r1, [r4] movs r0, 0xFD ands r0, r1 strb r0, [r4] _0807F2B2: adds r5, 0x1 cmp r5, 0x13 ble _0807F28C movs r5, 0 _0807F2BA: ldr r0, _0807F328 ldr r0, [r0] lsls r1, r5, 2 ldr r2, _0807F32C adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0807F2F8 ldr r0, [r4, 0x70] adds r4, r0, 0 adds r4, 0x60 ldrb r1, [r4] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0807F2F8 ldrb r0, [r4, 0x2] bl sub_80914E4 lsls r0, 24 cmp r0, 0 beq _0807F2F8 ldrb r1, [r4] movs r0, 0xFD ands r0, r1 strb r0, [r4] _0807F2F8: adds r5, 0x1 cmp r5, 0x13 ble _0807F2BA ldr r0, _0807F328 ldr r0, [r0] ldr r3, _0807F330 adds r1, r0, r3 ldr r2, _0807F334 adds r0, r2 ldr r0, [r0] str r0, [r1] ldr r0, _0807F338 ldr r1, [r0] mov r0, sp movs r2, 0x1 bl PrintFieldMessage _0807F31A: movs r0, 0 _0807F31C: add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0807F324: .4byte gUnknown_203B460 _0807F328: .4byte gUnknown_203B418 _0807F32C: .4byte 0x000135cc _0807F330: .4byte 0x00000694 _0807F334: .4byte 0x0000068c _0807F338: .4byte gUnknown_80FE4D4 thumb_func_end sub_807F19C thumb_func_start sub_807F33C sub_807F33C: push {r4-r7,lr} ldr r2, _0807F41C ldr r0, [r2] ldr r1, _0807F420 adds r0, r1 movs r1, 0x1 strb r1, [r0] ldr r0, [r2] ldr r2, _0807F424 adds r0, r2 strb r1, [r0] bl sub_8083600 ldr r1, _0807F428 ldr r1, [r1] bl sub_80522A8 movs r6, 0 _0807F360: movs r5, 0 adds r7, r6, 0x1 _0807F364: adds r0, r6, 0 adds r1, r5, 0 bl sub_804954C adds r4, r0, 0 ldr r0, [r4, 0x14] cmp r0, 0 beq _0807F38A bl sub_80450F8 cmp r0, 0x3 bne _0807F38A ldr r0, [r4, 0x14] bl sub_8045108 ldrb r2, [r0] movs r1, 0xFD ands r1, r2 strb r1, [r0] _0807F38A: adds r5, 0x1 cmp r5, 0x1F ble _0807F364 adds r6, r7, 0 cmp r6, 0x37 ble _0807F360 movs r6, 0 ldr r4, _0807F42C movs r5, 0x1 movs r3, 0xFD _0807F39E: lsls r1, r6, 2 ldr r0, [r4] adds r2, r0, r1 ldrb r1, [r2] adds r0, r5, 0 ands r0, r1 cmp r0, 0 beq _0807F3B4 adds r0, r3, 0 ands r0, r1 strb r0, [r2] _0807F3B4: adds r6, 0x1 cmp r6, 0x13 ble _0807F39E movs r6, 0 _0807F3BC: ldr r0, _0807F41C ldr r0, [r0] lsls r1, r6, 2 ldr r3, _0807F430 adds r0, r3 adds r0, r1 ldr r5, [r0] adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0807F3F4 ldr r4, [r5, 0x70] movs r0, 0 strb r0, [r4, 0x8] adds r0, r5, 0 bl sub_8070774 adds r4, 0x60 ldrb r1, [r4] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0807F3F4 movs r0, 0xFD ands r0, r1 strb r0, [r4] _0807F3F4: adds r6, 0x1 cmp r6, 0x13 ble _0807F3BC ldr r0, _0807F41C ldr r1, [r0] ldr r2, _0807F434 adds r0, r1, r2 movs r2, 0 str r2, [r0] ldr r3, _0807F438 adds r0, r1, r3 str r2, [r0] movs r0, 0xD2 lsls r0, 3 adds r1, r0 str r2, [r1] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0807F41C: .4byte gUnknown_203B418 _0807F420: .4byte 0x0000066e _0807F424: .4byte 0x0000066f _0807F428: .4byte gUnknown_80FE4B8 _0807F42C: .4byte gUnknown_203B460 _0807F430: .4byte 0x000135cc _0807F434: .4byte 0x00000694 _0807F438: .4byte 0x0000068c thumb_func_end sub_807F33C thumb_func_start sub_807F43C sub_807F43C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10C str r0, [sp, 0xEC] mov r8, r1 mov r0, r8 movs r1, 0xE bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0807F470 ldr r0, _0807F468 mov r1, r8 movs r2, 0 bl sub_8045B94 ldr r0, _0807F46C b _0807F694 .align 2, 0 _0807F468: .4byte gUnknown_202DF98 _0807F46C: .4byte gUnknown_80FCB40 _0807F470: ldr r0, [sp, 0xEC] cmp r0, r8 bne _0807F490 ldr r0, _0807F488 mov r1, r8 movs r2, 0 bl sub_8045B94 ldr r0, _0807F48C ldr r2, [r0] mov r0, r8 b _0807F698 .align 2, 0 _0807F488: .4byte gUnknown_202DF98 _0807F48C: .4byte gUnknown_80FCB70 _0807F490: mov r1, r8 ldr r0, [r1, 0x4] add r1, sp, 0xD4 str r0, [r1] movs r2, 0 str r2, [sp, 0xF0] _0807F49C: movs r3, 0 mov r9, r3 movs r7, 0 mov r4, sp adds r4, 0x18 str r4, [sp, 0x108] _0807F4A8: ldr r0, _0807F504 ldr r0, [r0] lsls r1, r7, 2 ldr r2, _0807F508 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 adds r3, r7, 0x1 str r3, [sp, 0x104] cmp r0, 0 bne _0807F4C8 b _0807F602 _0807F4C8: ldr r0, [sp, 0xEC] cmp r0, r4 bne _0807F4D0 b _0807F602 _0807F4D0: cmp r8, r4 bne _0807F4D6 b _0807F602 _0807F4D6: adds r1, r4, 0 bl sub_8045990 lsls r0, 24 cmp r0, 0 bne _0807F4E4 b _0807F602 _0807F4E4: ldr r1, [sp, 0xF0] cmp r1, 0 bne _0807F50C ldr r0, [sp, 0xEC] adds r1, r4, 0 movs r2, 0 movs r3, 0x1 bl sub_8071598 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0807F500 b _0807F602 _0807F500: b _0807F51E .align 2, 0 _0807F504: .4byte gUnknown_203B418 _0807F508: .4byte 0x000135cc _0807F50C: ldr r0, [sp, 0xEC] adds r1, r4, 0 movs r2, 0 movs r3, 0x1 bl sub_8071598 lsls r0, 24 cmp r0, 0 bne _0807F602 _0807F51E: ldr r2, [sp, 0xF0] cmp r2, 0 bne _0807F594 movs r5, 0 add r6, sp, 0xC8 adds r3, r7, 0x1 str r3, [sp, 0x104] adds r7, r6, 0 ldr r0, _0807F588 mov r10, r0 _0807F532: ldr r0, _0807F58C lsls r3, r5, 2 adds r3, r0 ldrh r0, [r4, 0x4] ldrh r1, [r3] adds r0, r1 lsls r0, 16 lsrs r0, 16 ldr r1, [r6] mov r2, r10 ands r1, r2 orrs r1, r0 str r1, [r7] ldrh r2, [r4, 0x6] ldrh r3, [r3, 0x2] adds r2, r3 lsls r2, 16 ldr r0, _0807F590 ands r1, r0 orrs r1, r2 str r1, [r7] mov r0, r8 add r1, sp, 0xC8 bl sub_80703A0 lsls r0, 24 cmp r0, 0 beq _0807F570 adds r5, 0x1 cmp r5, 0x7 ble _0807F532 _0807F570: cmp r5, 0x8 beq _0807F602 mov r3, r9 cmp r3, 0x27 bgt _0807F602 ldr r0, [r4, 0x4] ldr r4, [sp, 0x108] stm r4!, {r0} str r4, [sp, 0x108] movs r0, 0x1 add r9, r0 b _0807F602 .align 2, 0 _0807F588: .4byte 0xffff0000 _0807F58C: .4byte gUnknown_80F4448 _0807F590: .4byte 0x0000ffff _0807F594: movs r5, 0 add r6, sp, 0xCC adds r1, r7, 0x1 str r1, [sp, 0x104] adds r7, r6, 0 mov r2, r9 lsls r0, r2, 2 add r0, sp adds r0, 0x18 mov r10, r0 _0807F5A8: ldr r0, _0807F630 lsls r3, r5, 2 adds r3, r0 ldrh r0, [r4, 0x4] ldrh r1, [r3] adds r0, r1 lsls r0, 16 lsrs r0, 16 ldr r2, _0807F634 ldr r1, [r6] ands r1, r2 orrs r1, r0 str r1, [r7] ldrh r2, [r4, 0x6] ldrh r3, [r3, 0x2] adds r2, r3 lsls r2, 16 ldr r0, _0807F638 ands r1, r0 orrs r1, r2 str r1, [r7] mov r0, r8 add r1, sp, 0xCC bl sub_80703A0 lsls r0, 24 cmp r0, 0 bne _0807F5FC mov r2, r9 cmp r2, 0x27 bgt _0807F5FC ldr r0, [r6] mov r3, r10 adds r3, 0x4 mov r10, r3 subs r3, 0x4 stm r3!, {r0} ldr r0, [sp, 0x108] adds r0, 0x4 str r0, [sp, 0x108] movs r1, 0x1 add r9, r1 _0807F5FC: adds r5, 0x1 cmp r5, 0x7 ble _0807F5A8 _0807F602: ldr r7, [sp, 0x104] cmp r7, 0x13 bgt _0807F60A b _0807F4A8 _0807F60A: mov r2, r9 cmp r2, 0 bne _0807F63C ldr r3, [sp, 0xF0] adds r3, 0x1 str r3, [sp, 0xF0] cmp r3, 0x1 bgt _0807F61C b _0807F49C _0807F61C: ldr r0, [sp, 0xEC] adds r0, 0x4 add r4, sp, 0xB8 adds r1, r4, 0 bl sub_80833E8 movs r7, 0 add r5, sp, 0xD0 adds r6, r5, 0 b _0807F654 .align 2, 0 _0807F630: .4byte gUnknown_80F4448 _0807F634: .4byte 0xffff0000 _0807F638: .4byte 0x0000ffff _0807F63C: mov r0, r9 bl sub_8084100 lsls r0, 2 add r0, sp adds r0, 0x18 ldr r0, [r0] str r0, [sp, 0xD4] b _0807F6A8 _0807F64E: ldr r0, [r5] str r0, [sp, 0xD4] b _0807F68E _0807F654: ldr r0, [r4] ldr r1, [r4, 0x8] bl sub_808411C lsls r0, 16 lsrs r0, 16 ldr r2, _0807F6A0 ldr r1, [r5] ands r1, r2 orrs r1, r0 str r1, [r6] ldr r0, [r4, 0x4] ldr r1, [r4, 0xC] bl sub_808411C lsls r0, 16 ldrh r1, [r6] orrs r1, r0 str r1, [r6] mov r0, r8 add r1, sp, 0xD0 bl sub_80703A0 lsls r0, 24 cmp r0, 0 beq _0807F64E adds r7, 0x1 cmp r7, 0x63 ble _0807F654 _0807F68E: cmp r7, 0x64 bne _0807F6A8 ldr r0, _0807F6A4 _0807F694: ldr r2, [r0] ldr r0, [sp, 0xEC] _0807F698: mov r1, r8 bl sub_80522F4 b _0807F99C .align 2, 0 _0807F6A0: .4byte 0xffff0000 _0807F6A4: .4byte gUnknown_80FE6B4 _0807F6A8: ldr r0, _0807F860 mov r1, r8 movs r2, 0 bl sub_8045B94 ldr r0, _0807F864 ldr r2, [r0] ldr r0, [sp, 0xEC] mov r1, r8 bl sub_80522F4 mov r0, r8 bl sub_8045888 lsls r0, 24 cmp r0, 0 beq _0807F6D0 ldr r0, _0807F868 bl sub_8083E38 _0807F6D0: movs r4, 0 str r4, [sp, 0x100] mov r1, r8 ldr r0, [r1, 0x70] adds r0, 0x46 ldrb r0, [r0] mov r9, r0 add r2, sp, 0xD4 movs r3, 0 ldrsh r1, [r2, r3] mov r4, r8 movs r3, 0x4 ldrsh r0, [r4, r3] subs r3, r1, r0 movs r4, 0x2 ldrsh r1, [r2, r4] mov r2, r8 movs r4, 0x6 ldrsh r0, [r2, r4] subs r1, r0 cmp r1, r3 bge _0807F6FE adds r1, r3, 0 _0807F6FE: lsls r6, r1, 4 cmp r6, 0x50 ble _0807F706 movs r6, 0x50 _0807F706: cmp r6, 0x9 bgt _0807F70C movs r6, 0xA _0807F70C: mov r1, r8 adds r1, 0x4 add r0, sp, 0xD4 bl sub_80983D8 adds r5, r0, 0 add r2, sp, 0xD4 movs r1, 0 ldrsh r0, [r2, r1] lsls r4, r0, 1 adds r4, r0 lsls r4, 11 movs r3, 0xC0 lsls r3, 4 adds r4, r3 ldr r0, _0807F86C lsls r5, 2 adds r5, r0 movs r1, 0 ldrsh r0, [r5, r1] lsls r0, 8 movs r1, 0x3 bl __divsi3 adds r4, r0 str r4, [sp, 0xF4] movs r3, 0xD6 add r3, sp movs r2, 0 ldrsh r0, [r3, r2] lsls r4, r0, 1 adds r4, r0 lsls r4, 11 movs r0, 0x80 lsls r0, 5 adds r4, r0 movs r1, 0x2 ldrsh r0, [r5, r1] lsls r0, 8 movs r1, 0x3 bl __divsi3 adds r4, r0 str r4, [sp, 0xF8] mov r2, r8 ldr r5, [r2, 0xC] ldr r3, [sp, 0xF4] subs r0, r3, r5 adds r1, r6, 0 bl __divsi3 str r0, [sp, 0xFC] mov r0, r8 ldr r4, [r0, 0x10] ldr r1, [sp, 0xF8] subs r0, r1, r4 adds r1, r6, 0 bl __divsi3 mov r10, r0 add r0, sp, 0xD8 str r5, [r0] str r4, [r0, 0x4] movs r7, 0 adds r5, r0, 0 cmp r7, r6 bge _0807F7FC adds r4, r5, 0 _0807F794: ldr r0, [r5] ldr r2, [sp, 0xFC] adds r0, r2, r0 str r0, [r4] ldr r0, [r4, 0x4] add r0, r10 str r0, [r4, 0x4] mov r0, r8 adds r1, r4, 0 bl sub_804535C mov r0, r8 bl sub_8045888 lsls r0, 24 cmp r0, 0 beq _0807F7E6 ldr r0, [sp, 0x100] bl sub_8009C7C lsls r0, 5 mov r3, r8 str r0, [r3, 0x1C] movs r0, 0x3B bl sub_803E46C movs r0, 0x3 ands r0, r7 cmp r0, 0 bne _0807F7E6 movs r0, 0x7 mov r1, r9 ands r1, r0 mov r9, r1 mov r0, r8 movs r1, 0x6 mov r2, r9 bl sub_806CDD4 movs r2, 0x1 add r9, r2 _0807F7E6: movs r0, 0x80 lsls r0, 4 adds r1, r6, 0 bl __divsi3 ldr r3, [sp, 0x100] adds r3, r0 str r3, [sp, 0x100] adds r7, 0x1 cmp r7, r6 blt _0807F794 _0807F7FC: ldr r4, [sp, 0xF4] str r4, [r5] add r1, sp, 0xD8 ldr r0, [sp, 0xF8] str r0, [r1, 0x4] movs r0, 0 mov r2, r8 str r0, [r2, 0x1C] mov r0, r8 bl sub_804535C movs r0, 0x3B bl sub_803E46C mov r3, r8 ldr r0, [r3, 0x70] movs r1, 0x7 mov r4, r9 ands r4, r1 adds r0, 0x46 strb r4, [r0] add r2, sp, 0xD4 movs r1, 0 ldrsh r0, [r2, r1] adds r4, r2, 0 movs r3, 0x2 ldrsh r1, [r4, r3] bl sub_804954C ldr r6, [r0, 0x10] adds r0, r6, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _0807F876 add r2, sp, 0xD4 movs r0, 0 ldrsh r1, [r2, r0] movs r3, 0x2 ldrsh r2, [r4, r3] mov r0, r8 movs r3, 0x1 bl sub_80694C0 mov r0, r8 bl sub_807F9BC b _0807F99C .align 2, 0 _0807F860: .4byte gUnknown_202DF98 _0807F864: .4byte gUnknown_80FE690 _0807F868: .4byte 0x000001a3 _0807F86C: .4byte gUnknown_80F4448 _0807F870: ldr r0, [r7] str r0, [sp, 0xD4] b _0807F8BE _0807F876: movs r5, 0 add r4, sp, 0xE0 adds r7, r4, 0 _0807F87C: ldr r0, _0807F8D0 lsls r3, r5, 2 adds r3, r0 add r1, sp, 0xD4 ldrh r0, [r1] ldrh r2, [r3] adds r0, r2 lsls r0, 16 lsrs r0, 16 ldr r2, _0807F8D4 ldr r1, [r7] ands r1, r2 orrs r1, r0 str r1, [r4] add r0, sp, 0xD4 ldrh r2, [r0, 0x2] ldrh r3, [r3, 0x2] adds r2, r3 lsls r2, 16 ldr r0, _0807F8D8 ands r1, r0 orrs r1, r2 str r1, [r4] mov r0, r8 add r1, sp, 0xE0 bl sub_80703A0 lsls r0, 24 cmp r0, 0 beq _0807F870 adds r5, 0x1 cmp r5, 0x7 ble _0807F87C _0807F8BE: cmp r5, 0x8 bne _0807F8DC ldr r0, [sp, 0xEC] mov r1, r8 movs r2, 0 movs r3, 0 bl sub_807D148 b _0807F8FA .align 2, 0 _0807F8D0: .4byte gUnknown_80F4448 _0807F8D4: .4byte 0xffff0000 _0807F8D8: .4byte 0x0000ffff _0807F8DC: mov r0, r8 add r1, sp, 0xD4 bl sub_807D068 add r0, sp, 0xD4 movs r3, 0 ldrsh r1, [r0, r3] movs r0, 0xD6 add r0, sp movs r4, 0 ldrsh r2, [r0, r4] mov r0, r8 movs r3, 0x1 bl sub_80694C0 _0807F8FA: adds r0, r6, 0 bl sub_80450F8 cmp r0, 0x1 bne _0807F954 add r4, sp, 0xE4 ldr r1, _0807F9AC adds r0, r4, 0 bl sub_8092A88 adds r0, r6, 0 adds r1, r4, 0 bl sub_80571F0 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _0807F93C ldr r0, _0807F9B0 movs r3, 0 ldrsh r2, [r0, r3] str r1, [sp] str r1, [sp, 0x4] ldr r0, _0807F9B4 str r0, [sp, 0x8] str r1, [sp, 0xC] str r1, [sp, 0x10] str r1, [sp, 0x14] ldr r0, [sp, 0xEC] adds r1, r6, 0 movs r3, 0 bl sub_806F370 _0807F93C: adds r0, r6, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0807F954 ldr r0, [r6, 0x70] adds r0, 0x46 ldrb r1, [r0] adds r0, r6, 0 bl sub_806CE68 _0807F954: ldr r0, _0807F9B0 movs r4, 0 ldrsh r2, [r0, r4] movs r1, 0 str r1, [sp] str r1, [sp, 0x4] ldr r0, _0807F9B8 str r0, [sp, 0x8] str r1, [sp, 0xC] str r1, [sp, 0x10] str r1, [sp, 0x14] ldr r0, [sp, 0xEC] mov r1, r8 movs r3, 0 bl sub_806F370 mov r0, r8 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0807F98E mov r1, r8 ldr r0, [r1, 0x70] adds r0, 0x46 ldrb r1, [r0] mov r0, r8 bl sub_806CE68 _0807F98E: movs r0, 0x1E movs r1, 0x3B bl sub_803E708 mov r0, r8 bl sub_807F9BC _0807F99C: add sp, 0x10C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0807F9AC: .4byte 0x00000163 _0807F9B0: .4byte gUnknown_80F4F92 _0807F9B4: .4byte 0x0000021a _0807F9B8: .4byte 0x00000219 thumb_func_end sub_807F43C thumb_func_start sub_807F9BC sub_807F9BC: push {r4,lr} adds r4, r0, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0807FA0A ldr r0, [r4, 0x70] ldrb r0, [r0, 0x7] cmp r0, 0 beq _0807F9F4 ldr r2, _0807FA10 ldr r1, [r2] movs r0, 0 strb r0, [r1, 0x1] ldr r0, [r2] movs r1, 0xB8 lsls r1, 3 adds r0, r1 movs r1, 0x1 negs r1, r1 str r1, [r0] adds r0, r4, 0x4 bl sub_804AC20 movs r0, 0 bl sub_807EC28 _0807F9F4: adds r0, r4, 0 bl sub_806A5B8 ldr r0, _0807FA10 ldr r0, [r0] ldr r1, _0807FA14 adds r0, r1 ldrb r1, [r0] adds r0, r4, 0 bl sub_8075900 _0807FA0A: pop {r4} pop {r0} bx r0 .align 2, 0 _0807FA10: .4byte gUnknown_203B418 _0807FA14: .4byte 0x00003a08 thumb_func_end sub_807F9BC thumb_func_start sub_807FA18 sub_807FA18: push {r4-r7,lr} sub sp, 0x4 movs r6, 0 _0807FA1E: movs r5, 0 adds r7, r6, 0x1 _0807FA22: adds r0, r5, 0 adds r1, r6, 0 bl sub_8049590 adds r4, r0, 0 ldrh r1, [r4, 0x4] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _0807FA88 lsls r0, r5, 16 lsls r1, r6, 16 lsrs r0, 16 orrs r0, r1 str r0, [sp] ldrh r1, [r4, 0x4] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0807FA4E movs r0, 0x6 b _0807FA56 _0807FA4E: bl sub_803D6FC lsls r0, 24 lsrs r0, 24 _0807FA56: cmp r0, 0x11 bne _0807FA72 movs r0, 0x11 mov r1, sp movs r2, 0x2 bl sub_8045684 cmp r0, 0 beq _0807FA88 str r0, [r4, 0x14] adds r1, r0, 0 adds r1, 0x20 movs r0, 0x1 b _0807FA86 _0807FA72: mov r1, sp movs r2, 0 bl sub_8045684 cmp r0, 0 beq _0807FA88 str r0, [r4, 0x14] adds r1, r0, 0 adds r1, 0x20 movs r0, 0 _0807FA86: strb r0, [r1] _0807FA88: adds r5, 0x1 cmp r5, 0x37 ble _0807FA22 adds r6, r7, 0 cmp r6, 0x1F ble _0807FA1E add sp, 0x4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_807FA18 thumb_func_start sub_807FA9C sub_807FA9C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 ldr r2, _0807FAC4 ldr r0, [r2] ldr r3, _0807FAC8 adds r1, r0, r3 ldrb r1, [r1] str r1, [sp] ldr r1, _0807FACC adds r0, r1 movs r3, 0 ldrsh r0, [r0, r3] subs r1, r0, 0x5 mov r8, r1 b _0807FBFE .align 2, 0 _0807FAC4: .4byte gUnknown_203B418 _0807FAC8: .4byte 0x0001820f _0807FACC: .4byte 0x000181ea _0807FAD0: ldr r0, [r2] ldr r2, _0807FC18 adds r0, r2 movs r3, 0 ldrsh r0, [r0, r3] subs r5, r0, 0x6 adds r0, 0x6 mov r1, r8 adds r1, 0x1 str r1, [sp, 0x4] cmp r5, r0 blt _0807FAEA b _0807FBEE _0807FAEA: ldr r7, _0807FC1C ldr r2, _0807FC20 mov r10, r2 lsls r0, r5, 1 adds r0, r5 lsls r0, 3 mov r9, r0 _0807FAF8: movs r6, 0 adds r0, r5, 0 mov r1, r8 bl sub_804954C adds r4, r0, 0 ldr r0, [r4, 0x14] cmp r0, 0 beq _0807FB24 bl sub_80450F8 cmp r0, 0x2 bne _0807FB24 ldr r0, [r4, 0x14] adds r0, 0x20 ldrb r0, [r0] cmp r0, 0 bne _0807FB22 ldr r3, [sp] cmp r3, 0 beq _0807FB24 _0807FB22: movs r6, 0x1 _0807FB24: ldrh r0, [r4] movs r2, 0x80 lsls r2, 2 adds r1, r2, 0 ands r0, r1 cmp r0, 0 beq _0807FB34 movs r6, 0x1 _0807FB34: cmp r6, 0 beq _0807FBD6 ldr r0, _0807FC24 ldr r1, [r0] ldr r3, _0807FC28 adds r0, r1, r3 movs r2, 0 ldrsh r0, [r0, r2] mov r2, r9 subs r3, r2, r0 mov r2, r8 lsls r0, r2, 1 add r0, r8 lsls r0, 3 ldr r2, _0807FC2C adds r1, r2 movs r2, 0 ldrsh r1, [r1, r2] subs r2, r0, r1 movs r0, 0x20 negs r0, r0 cmp r3, r0 blt _0807FBD6 cmp r2, r0 blt _0807FBD6 movs r0, 0x88 lsls r0, 1 cmp r3, r0 bgt _0807FBD6 cmp r2, 0xC0 bgt _0807FBD6 ldrh r1, [r7] mov r0, r10 ands r0, r1 strh r0, [r7] ldr r1, _0807FC30 ands r1, r2 lsls r1, 4 ldrh r2, [r7, 0x6] movs r0, 0xF ands r0, r2 orrs r0, r1 strh r0, [r7, 0x6] ldr r0, _0807FC34 ands r3, r0 ldrh r0, [r7, 0x2] movs r2, 0xFE lsls r2, 8 adds r1, r2, 0 ands r0, r1 orrs r0, r3 strh r0, [r7, 0x2] ldrh r1, [r7, 0x4] mov r0, r10 ands r0, r1 movs r3, 0xC0 lsls r3, 4 orrs r0, r3 movs r1, 0 orrs r0, r1 movs r1, 0xA0 lsls r1, 8 ldr r2, _0807FC30 ands r0, r2 orrs r0, r1 movs r3, 0 orrs r0, r3 movs r2, 0xFE lsls r2, 1 movs r3, 0xFC lsls r3, 8 adds r1, r3, 0 ands r0, r1 orrs r0, r2 strh r0, [r7, 0x4] adds r0, r7, 0 movs r1, 0 movs r2, 0 movs r3, 0 bl AddSprite _0807FBD6: movs r0, 0x18 add r9, r0 adds r5, 0x1 ldr r0, _0807FC24 ldr r0, [r0] ldr r1, _0807FC18 adds r0, r1 movs r2, 0 ldrsh r0, [r0, r2] adds r0, 0x6 cmp r5, r0 blt _0807FAF8 _0807FBEE: ldr r3, [sp, 0x4] mov r8, r3 ldr r2, _0807FC24 ldr r0, [r2] ldr r1, _0807FC38 adds r0, r1 movs r3, 0 ldrsh r0, [r0, r3] _0807FBFE: adds r0, 0x5 cmp r8, r0 bge _0807FC06 b _0807FAD0 _0807FC06: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0807FC18: .4byte 0x000181e8 _0807FC1C: .4byte gUnknown_202EDC0 _0807FC20: .4byte 0x0000f3ff _0807FC24: .4byte gUnknown_203B418 _0807FC28: .4byte 0x000181f0 _0807FC2C: .4byte 0x000181f2 _0807FC30: .4byte 0x00000fff _0807FC34: .4byte 0x000001ff _0807FC38: .4byte 0x000181ea thumb_func_end sub_807FA9C thumb_func_start sub_807FC3C sub_807FC3C: push {r4-r7,lr} ldr r6, _0807FC70 ldr r4, [r6] ldrh r5, [r0] ldr r7, _0807FC74 adds r3, r4, r7 strh r5, [r3] ldrh r3, [r0, 0x2] ldr r5, _0807FC78 adds r0, r4, r5 strh r3, [r0] adds r7, 0x4 adds r4, r7 strb r1, [r4] ldr r0, [r6] ldr r1, _0807FC7C adds r0, r1 strb r2, [r0] ldr r0, [r6] subs r5, 0x6 adds r0, r5 movs r1, 0x1 strb r1, [r0] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0807FC70: .4byte gUnknown_203B418 _0807FC74: .4byte 0x00013574 _0807FC78: .4byte 0x00013576 _0807FC7C: .4byte 0x00013579 thumb_func_end sub_807FC3C thumb_func_start sub_807FC80 sub_807FC80: push {lr} movs r1, 0 ldrsh r2, [r0, r1] movs r3, 0x2 ldrsh r1, [r0, r3] adds r0, r2, 0 bl sub_8049590 adds r2, r0, 0 ldrh r1, [r2] movs r0, 0x80 lsls r0, 2 ands r0, r1 cmp r0, 0 bne _0807FCCA ldrb r0, [r2, 0x9] cmp r0, 0xFF beq _0807FCCA movs r0, 0x8 ands r0, r1 cmp r0, 0 bne _0807FCCA movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _0807FCCA movs r0, 0x3 ands r0, r1 cmp r0, 0x1 bne _0807FCCA ldr r0, [r2, 0x14] cmp r0, 0 beq _0807FCCE bl sub_80450F8 cmp r0, 0x2 beq _0807FCCE _0807FCCA: movs r0, 0 b _0807FCD0 _0807FCCE: movs r0, 0x1 _0807FCD0: pop {r1} bx r1 thumb_func_end sub_807FC80 thumb_func_start sub_807FCD4 sub_807FCD4: push {r4-r7,lr} mov r7, r8 push {r7} adds r7, r0, 0 lsls r1, 24 lsrs r5, r1, 24 lsls r2, 24 lsrs r2, 24 mov r8, r2 movs r1, 0 ldrsh r0, [r7, r1] movs r2, 0x2 ldrsh r1, [r7, r2] bl sub_8049590 adds r6, r0, 0 cmp r5, 0x13 bls _0807FD12 movs r4, 0 b _0807FCFE _0807FCFC: adds r4, 0x1 _0807FCFE: cmp r4, 0x1D bgt _0807FD0C bl sub_803D6FC adds r5, r0, 0 cmp r5, 0x11 beq _0807FCFC _0807FD0C: cmp r4, 0x1E bne _0807FD12 movs r5, 0x10 _0807FD12: ldrh r1, [r6] movs r0, 0x80 lsls r0, 2 ands r0, r1 cmp r0, 0 bne _0807FD6E ldrb r0, [r6, 0x9] cmp r0, 0xFF beq _0807FD6E movs r0, 0x8 ands r0, r1 cmp r0, 0 bne _0807FD6E movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _0807FD6E movs r4, 0x3 ands r4, r1 cmp r4, 0x1 bne _0807FD6E ldr r0, [r6, 0x14] cmp r0, 0 beq _0807FD60 bl sub_80450F8 cmp r0, 0x2 bne _0807FD6E ldr r0, [r6, 0x14] bl sub_8045104 strb r5, [r0] ldr r0, [r6, 0x14] bl sub_8045104 mov r1, r8 strb r1, [r0, 0x1] ldr r0, [r6, 0x14] b _0807FD74 _0807FD60: adds r0, r5, 0 adds r1, r7, 0 mov r2, r8 bl sub_8045684 cmp r0, 0 bne _0807FD72 _0807FD6E: movs r0, 0 b _0807FD7A _0807FD72: str r0, [r6, 0x14] _0807FD74: adds r0, 0x20 strb r4, [r0] movs r0, 0x1 _0807FD7A: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_807FCD4 thumb_func_start sub_807FD84 sub_807FD84: push {r4-r6,lr} adds r6, r0, 0 movs r5, 0 ldr r4, _0807FD9C ldr r0, [r4] ldr r2, _0807FDA0 adds r1, r0, r2 ldrb r0, [r1] cmp r0, 0 bne _0807FDA4 movs r0, 0 b _0807FDF6 .align 2, 0 _0807FD9C: .4byte gUnknown_203B418 _0807FDA0: .4byte 0x00013570 _0807FDA4: strb r5, [r1] ldr r2, [r4] ldr r3, _0807FDD8 adds r0, r2, r3 adds r3, 0x4 adds r1, r2, r3 ldrb r1, [r1] adds r3, 0x1 adds r2, r3 ldrb r2, [r2] bl sub_807FCD4 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 beq _0807FDE0 ldr r1, [r4] ldr r0, _0807FDD8 adds r1, r0 ldr r0, _0807FDDC ldr r2, [r0] adds r0, r6, 0 bl sub_8052364 b _0807FDF0 .align 2, 0 _0807FDD8: .4byte 0x00013574 _0807FDDC: .4byte gUnknown_80FC5F8 _0807FDE0: ldr r1, [r4] ldr r2, _0807FDFC adds r1, r2 ldr r0, _0807FE00 ldr r2, [r0] adds r0, r6, 0 bl sub_8052364 _0807FDF0: bl sub_8049ED4 adds r0, r5, 0 _0807FDF6: pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0807FDFC: .4byte 0x00013574 _0807FE00: .4byte gUnknown_80FC5FC thumb_func_end sub_807FD84 thumb_func_start sub_807FE04 sub_807FE04: push {r4,r5,lr} adds r2, r0, 0 lsls r1, 24 lsrs r5, r1, 24 movs r1, 0 ldrsh r0, [r2, r1] movs r3, 0x2 ldrsh r1, [r2, r3] bl sub_8049590 adds r4, r0, 0 ldr r0, [r4, 0x14] cmp r0, 0 beq _0807FE3C bl sub_80450F8 cmp r0, 0x2 bne _0807FE3C ldr r1, [r4, 0x14] movs r0, 0 str r0, [r1] str r0, [r4, 0x14] cmp r5, 0 beq _0807FE38 bl sub_8049ED4 _0807FE38: movs r0, 0x1 b _0807FE3E _0807FE3C: movs r0, 0 _0807FE3E: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_807FE04 thumb_func_start sub_807FE44 sub_807FE44: push {r4,r5,lr} adds r2, r0, 0 lsls r1, 24 lsrs r5, r1, 24 movs r1, 0 ldrsh r0, [r2, r1] movs r3, 0x2 ldrsh r1, [r2, r3] bl sub_804954C adds r4, r0, 0 ldr r0, [r4, 0x14] cmp r0, 0 beq _0807FE7C bl sub_80450F8 cmp r0, 0x2 bne _0807FE7C ldr r0, [r4, 0x14] adds r0, 0x20 movs r1, 0x1 strb r1, [r0] cmp r5, 0 beq _0807FE78 bl sub_8049ED4 _0807FE78: movs r0, 0x1 b _0807FE7E _0807FE7C: movs r0, 0 _0807FE7E: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_807FE44 thumb_func_start sub_807FE84 sub_807FE84: push {lr} lsls r1, 24 ldr r2, _0807FE98 lsrs r1, 22 adds r1, r2 ldr r1, [r1] bl strcpy pop {r0} bx r0 .align 2, 0 _0807FE98: .4byte gUnknown_80F91F0 thumb_func_end sub_807FE84 thumb_func_start sub_807FE9C sub_807FE9C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 adds r5, r0, 0 mov r9, r1 str r2, [sp] lsls r3, 24 lsrs r6, r3, 24 movs r2, 0 ldrsh r0, [r1, r2] movs r3, 0x2 ldrsh r1, [r1, r3] bl sub_8049590 str r0, [sp, 0x4] ldr r0, [r0, 0x14] mov r10, r0 movs r1, 0 str r1, [sp, 0x8] cmp r0, 0 bne _0807FECE b _080801B4 _0807FECE: bl sub_80450F8 cmp r0, 0x2 beq _0807FED8 b _080801B4 _0807FED8: mov r0, r10 bl sub_8045104 mov r8, r0 ldr r0, _0807FF58 mov r2, r8 ldrb r1, [r2] bl sub_807FE84 ldr r3, [sp, 0x4] ldr r4, [r3, 0x10] cmp r4, 0 beq _0807FEFE adds r0, r4, 0 bl sub_80450F8 cmp r0, 0x1 beq _0807FEFE movs r4, 0 _0807FEFE: mov r1, r10 adds r1, 0x20 ldrb r0, [r1] str r0, [sp, 0xC] movs r0, 0x1 strb r0, [r1] cmp r4, 0 beq _0807FF96 adds r0, r4, 0 bl sub_806A1E8 cmp r6, 0 beq _0807FF96 mov r1, r8 ldrb r0, [r1] cmp r0, 0x11 beq _0807FF96 movs r0, 0x64 bl sub_8084100 adds r7, r0, 0 movs r6, 0 adds r0, r4, 0 movs r1, 0x1C bl sub_8046CB0 lsls r0, 24 cmp r0, 0 beq _0807FF3C ldr r0, _0807FF5C ldr r6, [r0] _0807FF3C: ldr r2, [sp, 0xC] cmp r2, 0x1 beq _0807FF50 ldr r0, _0807FF60 ldr r0, [r0] ldr r3, _0807FF64 adds r0, r3 ldrb r0, [r0] cmp r0, 0 beq _0807FF68 _0807FF50: cmp r7, 0 bge _0807FF70 b _0807FF6C .align 2, 0 _0807FF58: .4byte gUnknown_202DF98 _0807FF5C: .4byte gUnknown_80FDB5C _0807FF60: .4byte gUnknown_203B418 _0807FF64: .4byte 0x0001820f _0807FF68: cmp r7, 0xE bgt _0807FF70 _0807FF6C: ldr r0, _0807FFD8 ldr r6, [r0] _0807FF70: cmp r6, 0 beq _0807FF96 mov r0, r9 bl sub_803F428 lsls r0, 24 cmp r0, 0 beq _0807FF84 bl sub_8049ED4 _0807FF84: adds r0, r5, 0 adds r1, r4, 0 adds r2, r6, 0 bl sub_80522F4 ldr r0, [sp] cmp r0, 0 bne _0807FF96 b _080801B4 _0807FF96: mov r0, r9 bl sub_803F428 lsls r0, 24 cmp r0, 0 beq _0807FFFA movs r1, 0xAE lsls r1, 1 movs r0, 0 bl sub_80421C0 bl sub_8049ED4 mov r1, r8 ldrb r2, [r1] adds r0, r5, 0 mov r1, r9 bl sub_804225C ldr r0, _0807FFDC ldr r0, [r0] ldr r2, _0807FFE0 adds r0, r2 ldrb r0, [r0] cmp r0, 0 beq _0807FFE8 ldr r0, _0807FFE4 ldr r1, [r0] adds r0, r5, 0 bl sub_80522A8 b _0807FFFA .align 2, 0 _0807FFD8: .4byte gUnknown_80FDB7C _0807FFDC: .4byte gUnknown_203B418 _0807FFE0: .4byte 0x0001820a _0807FFE4: .4byte gUnknown_80FD7F4 _0807FFE8: ldr r0, _08080010 mov r3, r8 ldrb r1, [r3] lsls r1, 2 adds r1, r0 ldr r1, [r1] adds r0, r5, 0 bl sub_80522A8 _0807FFFA: cmp r4, 0 beq _08080020 mov r1, r8 ldrb r0, [r1, 0x1] cmp r0, 0x2 bne _08080014 adds r0, r4, 0 movs r1, 0x1 bl sub_806F480 b _08080020 .align 2, 0 _08080010: .4byte gUnknown_80FD7F8 _08080014: cmp r0, 0x1 bne _08080020 adds r0, r4, 0 movs r1, 0 bl sub_806F480 _08080020: mov r2, r8 ldrb r0, [r2] cmp r0, 0x1B bls _0808002A b _08080194 _0808002A: lsls r0, 2 ldr r1, _08080034 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08080034: .4byte _08080038 .align 2, 0 _08080038: .4byte _080800A8 .4byte _080800B2 .4byte _080800BC .4byte _080800C6 .4byte _080800D0 .4byte _080800DA .4byte _080800E6 .4byte _080800F0 .4byte _080800FA .4byte _08080104 .4byte _0808010E .4byte _08080118 .4byte _08080122 .4byte _0808012C .4byte _08080136 .4byte _08080140 .4byte _0808014A .4byte _08080168 .4byte _08080172 .4byte _08080180 .4byte _08080194 .4byte _08080194 .4byte _08080194 .4byte _08080194 .4byte _08080194 .4byte _08080194 .4byte _08080194 .4byte _080800DA _080800A8: adds r0, r5, 0 adds r1, r4, 0 bl sub_8080A5C b _08080194 _080800B2: adds r0, r5, 0 adds r1, r4, 0 bl sub_80801CC b _08080194 _080800BC: adds r0, r5, 0 adds r1, r4, 0 bl sub_808024C b _08080194 _080800C6: adds r0, r5, 0 adds r1, r4, 0 bl sub_8080418 b _08080194 _080800D0: adds r0, r5, 0 mov r1, r9 bl sub_8080620 b _0808017A _080800DA: adds r0, r5, 0 adds r1, r4, 0 ldr r2, [sp, 0x4] bl sub_8080504 b _08080194 _080800E6: adds r0, r5, 0 adds r1, r4, 0 bl sub_8080374 b _08080194 _080800F0: mov r0, r10 adds r1, r4, 0 bl sub_8080884 b _08080194 _080800FA: adds r0, r5, 0 adds r1, r4, 0 bl sub_8080364 b _08080194 _08080104: adds r0, r5, 0 adds r1, r4, 0 bl sub_8080388 b _08080194 _0808010E: adds r0, r5, 0 adds r1, r4, 0 bl sub_80803B4 b _08080194 _08080118: adds r0, r5, 0 adds r1, r4, 0 bl sub_80807C0 b _08080194 _08080122: adds r0, r5, 0 adds r1, r4, 0 bl sub_80803C8 b _08080194 _0808012C: adds r0, r5, 0 adds r1, r4, 0 bl sub_80803D8 b _08080194 _08080136: adds r0, r5, 0 adds r1, r4, 0 bl sub_80803F8 b _08080194 _08080140: adds r0, r5, 0 adds r1, r4, 0 bl sub_8080700 b _08080194 _0808014A: cmp r4, 0 beq _08080194 ldr r0, _08080160 movs r2, 0 ldrsh r1, [r0, r2] ldr r3, _08080164 adds r0, r4, 0 movs r2, 0xF bl sub_806F324 b _08080194 .align 2, 0 _08080160: .4byte gUnknown_80F4F86 _08080164: .4byte 0x00000213 _08080168: adds r0, r5, 0 adds r1, r4, 0 bl sub_80807B4 b _08080194 _08080172: adds r0, r5, 0 mov r1, r9 bl sub_80808A4 _0808017A: movs r3, 0x1 str r3, [sp, 0x8] b _08080194 _08080180: cmp r4, 0 beq _08080194 ldr r0, _080801C4 movs r2, 0 ldrsh r1, [r0, r2] ldr r3, _080801C8 adds r0, r4, 0 movs r2, 0xA bl sub_806F324 _08080194: adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080801A6 adds r0, r4, 0 bl sub_8071DA4 _080801A6: ldr r3, [sp, 0x8] cmp r3, 0 beq _080801B4 mov r0, r9 movs r1, 0x1 bl sub_807FE04 _080801B4: add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080801C4: .4byte gUnknown_80F4F84 _080801C8: .4byte 0x00000206 thumb_func_end sub_807FE9C thumb_func_start sub_80801CC sub_80801CC: push {r4,r5,lr} sub sp, 0x8 adds r5, r0, 0 adds r4, r1, 0 cmp r4, 0 beq _08080240 movs r0, 0x64 bl sub_8084100 adds r1, r0, 0 cmp r0, 0x18 bgt _080801EC ldr r0, _080801E8 b _080801F2 .align 2, 0 _080801E8: .4byte gUnknown_8106A4C _080801EC: cmp r0, 0x31 bgt _0808020C ldr r0, _08080208 _080801F2: ldr r2, [r0] movs r0, 0x1 str r0, [sp] str r0, [sp, 0x4] adds r0, r5, 0 adds r1, r4, 0 movs r3, 0x1 bl sub_8076E20 b _08080240 .align 2, 0 _08080208: .4byte gUnknown_8106A50 _0808020C: cmp r1, 0x4A bgt _0808022C ldr r0, _08080228 ldr r2, [r0] movs r0, 0x1 str r0, [sp] str r0, [sp, 0x4] adds r0, r5, 0 adds r1, r4, 0 movs r3, 0x1 bl sub_8076F80 b _08080240 .align 2, 0 _08080228: .4byte gUnknown_8106A4C _0808022C: ldr r0, _08080248 ldr r2, [r0] movs r0, 0x1 str r0, [sp] str r0, [sp, 0x4] adds r0, r5, 0 adds r1, r4, 0 movs r3, 0x1 bl sub_8076F80 _08080240: add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08080248: .4byte gUnknown_8106A50 thumb_func_end sub_80801CC thumb_func_start sub_808024C sub_808024C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x5C str r0, [sp, 0x54] mov r10, r1 ldr r0, [r1, 0x70] mov r8, r0 mov r0, r10 movs r1, 0xE bl sub_8046CB0 lsls r0, 24 cmp r0, 0 beq _08080278 ldr r0, _08080274 b _08080300 .align 2, 0 _08080274: .4byte gUnknown_80FDC7C _08080278: movs r6, 0 mov r1, r8 ldrb r0, [r1, 0x7] movs r1, 0x60 add r1, r8 mov r9, r1 cmp r0, 0 beq _080802C8 movs r5, 0 ldr r7, _0808030C mov r0, sp str r0, [sp, 0x58] _08080290: lsls r4, r5, 2 ldr r0, [r7] adds r2, r4, r0 ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080802C2 ldrb r0, [r2, 0x2] bl sub_8091544 lsls r0, 24 cmp r0, 0 beq _080802C2 ldr r0, [r7] adds r2, r0, r4 ldrb r1, [r2] movs r0, 0x8 ands r0, r1 cmp r0, 0 bne _080802C2 ldr r1, [sp, 0x58] stm r1!, {r2} str r1, [sp, 0x58] adds r6, 0x1 _080802C2: adds r5, 0x1 cmp r5, 0x13 ble _08080290 _080802C8: mov r0, r9 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080802FA mov r0, r8 adds r0, 0x62 ldrb r0, [r0] bl sub_8091544 lsls r0, 24 cmp r0, 0 beq _080802FA mov r0, r9 ldrb r1, [r0] movs r0, 0x8 ands r0, r1 cmp r0, 0 bne _080802FA lsls r0, r6, 2 add r0, sp mov r1, r9 str r1, [r0] adds r6, 0x1 _080802FA: cmp r6, 0 bne _08080314 ldr r0, _08080310 _08080300: ldr r2, [r0] ldr r0, [sp, 0x54] mov r1, r10 bl sub_80522F4 b _0808034A .align 2, 0 _0808030C: .4byte gUnknown_203B460 _08080310: .4byte gUnknown_80FDC40 _08080314: adds r0, r6, 0 bl sub_8084100 ldr r2, _0808035C lsls r0, 2 mov r1, sp adds r4, r1, r0 ldr r1, [r4] adds r0, r2, 0 bl sub_8045BF8 ldr r2, [r4] ldrb r1, [r2] movs r0, 0x8 orrs r0, r1 strb r0, [r2] movs r1, 0xC9 lsls r1, 1 mov r0, r10 bl sub_80421C0 ldr r0, _08080360 ldr r2, [r0] ldr r0, [sp, 0x54] mov r1, r10 bl sub_80522F4 _0808034A: add sp, 0x5C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0808035C: .4byte gUnknown_202DE58 _08080360: .4byte gUnknown_80FDC18 thumb_func_end sub_808024C thumb_func_start sub_8080364 sub_8080364: push {lr} cmp r1, 0 beq _08080370 movs r2, 0x1 bl sub_8077AE4 _08080370: pop {r0} bx r0 thumb_func_end sub_8080364 thumb_func_start sub_8080374 sub_8080374: push {lr} cmp r1, 0 beq _08080382 movs r2, 0 movs r3, 0 bl sub_807D148 _08080382: pop {r0} bx r0 thumb_func_end sub_8080374 thumb_func_start sub_8080388 sub_8080388: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 cmp r4, 0 beq _080803A8 ldr r1, _080803B0 adds r0, r4, 0 movs r2, 0x1 bl sub_808417C adds r2, r0, 0 adds r0, r5, 0 adds r1, r4, 0 movs r3, 0x1 bl sub_8075C58 _080803A8: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080803B0: .4byte gUnknown_80F4E74 thumb_func_end sub_8080388 thumb_func_start sub_80803B4 sub_80803B4: push {lr} cmp r1, 0 beq _080803C2 movs r2, 0x1 movs r3, 0x1 bl sub_80779F0 _080803C2: pop {r0} bx r0 thumb_func_end sub_80803B4 thumb_func_start sub_80803C8 sub_80803C8: push {lr} cmp r1, 0 beq _080803D4 movs r2, 0x1 bl sub_80763F8 _080803D4: pop {r0} bx r0 thumb_func_end sub_80803C8 thumb_func_start sub_80803D8 sub_80803D8: push {lr} sub sp, 0x8 adds r2, r1, 0x4 movs r3, 0 str r3, [sp] ldr r3, _080803F4 str r3, [sp, 0x4] movs r3, 0x1 bl sub_807DF38 add sp, 0x8 pop {r0} bx r0 .align 2, 0 _080803F4: .4byte 0x00000212 thumb_func_end sub_80803D8 thumb_func_start sub_80803F8 sub_80803F8: push {lr} sub sp, 0x8 adds r2, r1, 0x4 movs r3, 0 str r3, [sp] ldr r3, _08080414 str r3, [sp, 0x4] movs r3, 0x2 bl sub_807DF38 add sp, 0x8 pop {r0} bx r0 .align 2, 0 _08080414: .4byte 0x00000212 thumb_func_end sub_80803F8 thumb_func_start sub_8080418 sub_8080418: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x58 mov r8, r0 adds r6, r1, 0 movs r0, 0 mov r9, r0 cmp r6, 0 beq _080804F0 ldr r7, [r6, 0x70] movs r3, 0 ldrb r0, [r7, 0x7] cmp r0, 0 beq _0808045A ldr r0, _080804C0 movs r1, 0x1 mov r12, r1 ldr r2, [r0] mov r4, sp movs r5, 0x13 _08080444: ldrb r1, [r2] mov r0, r12 ands r0, r1 cmp r0, 0 beq _08080452 stm r4!, {r2} adds r3, 0x1 _08080452: adds r2, 0x4 subs r5, 0x1 cmp r5, 0 bge _08080444 _0808045A: adds r2, r7, 0 adds r2, 0x60 ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08080470 lsls r0, r3, 2 add r0, sp str r2, [r0] adds r3, 0x1 _08080470: cmp r3, 0 ble _080804B6 mov r4, sp adds r5, r3, 0 _08080478: ldr r0, [r4] ldrb r0, [r0, 0x2] bl sub_8090BD0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bne _080804AE ldr r0, [r4] ldrb r0, [r0, 0x2] cmp r0, 0x54 beq _080804AE movs r0, 0x64 bl sub_8084100 ldr r1, _080804C4 movs r2, 0 ldrsh r1, [r1, r2] cmp r0, r1 bge _080804AE movs r0, 0x1 add r9, r0 ldr r0, [r4] movs r1, 0x54 movs r2, 0x2 bl sub_8045C28 _080804AE: adds r4, 0x4 subs r5, 0x1 cmp r5, 0 bne _08080478 _080804B6: mov r1, r9 cmp r1, 0x1 bne _080804CC ldr r0, _080804C8 b _080804D4 .align 2, 0 _080804C0: .4byte gUnknown_203B460 _080804C4: .4byte gUnknown_80F4E0E _080804C8: .4byte gUnknown_80FD788 _080804CC: mov r2, r9 cmp r2, 0 bne _080804E4 ldr r0, _080804E0 _080804D4: ldr r2, [r0] mov r0, r8 adds r1, r6, 0 bl sub_80522F4 b _080804F0 .align 2, 0 _080804E0: .4byte gUnknown_80FD7D4 _080804E4: ldr r0, _08080500 ldr r2, [r0] mov r0, r8 adds r1, r6, 0 bl sub_80522F4 _080804F0: add sp, 0x58 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08080500: .4byte gUnknown_80FD7AC thumb_func_end sub_8080418 thumb_func_start sub_8080504 sub_8080504: push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 adds r4, r1, 0 adds r7, r2, 0 movs r0, 0 mov r8, r0 cmp r4, 0 bne _0808051A b _0808060E _0808051A: bl sub_80441BC lsls r0, 24 cmp r0, 0 beq _08080534 ldr r0, _08080530 ldr r1, [r0] adds r0, r6, 0 bl sub_80522A8 b _0808060E .align 2, 0 _08080530: .4byte gUnknown_80FED0C _08080534: ldr r5, [r4, 0x70] adds r0, r4, 0 bl sub_8045888 lsls r0, 24 cmp r0, 0 beq _0808055E adds r0, r7, 0 movs r1, 0x1B bl sub_8080B00 movs r1, 0x1 mov r8, r1 ldr r1, _080805A4 adds r0, r4, 0 bl sub_80421C0 movs r0, 0x1E movs r1, 0x48 bl sub_803E708 _0808055E: ldrb r0, [r5, 0x7] cmp r0, 0 beq _080805C4 bl sub_8043D10 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 beq _080805B4 movs r2, 0xAE lsls r2, 1 adds r0, r5, r2 movs r1, 0x1 strb r1, [r0] adds r2, 0x2 adds r0, r5, r2 strb r1, [r0] movs r0, 0x28 movs r1, 0x4B bl sub_803E708 ldr r0, _080805A8 movs r2, 0 ldrsh r1, [r0, r2] ldr r3, _080805AC adds r0, r4, 0 movs r2, 0x11 bl sub_806F324 ldr r0, _080805B0 ldr r1, [r0] movs r0, 0x2 strb r0, [r1, 0x2] b _0808060E .align 2, 0 _080805A4: .4byte 0x00000193 _080805A8: .4byte gUnknown_80F4F8A _080805AC: .4byte 0x00000215 _080805B0: .4byte gUnknown_203B418 _080805B4: ldr r0, _080805C0 ldr r1, [r0] adds r0, r6, 0 bl sub_80522A8 b _08080600 .align 2, 0 _080805C0: .4byte gUnknown_80F9728 _080805C4: ldr r0, _080805E4 adds r1, r4, 0 movs r2, 0 bl sub_8045B94 ldrb r0, [r5, 0x6] cmp r0, 0 beq _080805EC ldr r0, _080805E8 ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 b _080805F6 .align 2, 0 _080805E4: .4byte gUnknown_202DF98 _080805E8: .4byte gUnknown_80F970C _080805EC: ldr r0, _08080618 ldr r1, [r0] adds r0, r6, 0 bl sub_805239C _080805F6: ldr r1, _0808061C adds r0, r4, 0 adds r2, r6, 0 bl sub_8068FE0 _08080600: mov r0, r8 cmp r0, 0 beq _0808060E adds r0, r7, 0 movs r1, 0x5 bl sub_8080B00 _0808060E: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08080618: .4byte gUnknown_80F970C _0808061C: .4byte 0x00000215 thumb_func_end sub_8080504 thumb_func_start sub_8080620 sub_8080620: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x18 str r0, [sp, 0x14] adds r7, r1, 0 movs r0, 0x3 bl sub_8084100 adds r6, r0, 0 adds r4, r6, 0x2 movs r0, 0x8 bl sub_8084100 adds r5, r0, 0 bl sub_80441BC lsls r0, 24 cmp r0, 0 bne _080806CA movs r0, 0 mov r8, r0 cmp r8, r4 bge _080806BA mov r4, sp movs r1, 0 mov r10, r1 movs r2, 0 mov r9, r2 adds r6, 0x2 _08080660: movs r0, 0 bl sub_803D970 movs r1, 0x7 ands r5, r1 strh r0, [r4] movs r1, 0 ldrsh r0, [r4, r1] movs r1, 0 bl sub_806AA0C lsls r0, 24 cmp r0, 0 beq _080806B2 mov r2, r9 strh r2, [r4, 0x8] mov r0, r10 strb r0, [r4, 0x2] ldr r0, _080806D8 lsls r1, r5, 2 adds r1, r0 ldrh r0, [r1] ldrh r2, [r7] adds r0, r2 strh r0, [r4, 0xC] ldrh r0, [r1, 0x2] ldrh r1, [r7, 0x2] adds r0, r1 strh r0, [r4, 0xE] mov r2, r9 str r2, [sp, 0x4] mov r0, r10 strb r0, [r4, 0x10] mov r0, sp movs r1, 0x1 bl sub_806B7F8 cmp r0, 0 beq _080806B2 movs r1, 0x1 add r8, r1 _080806B2: adds r5, 0x1 subs r6, 0x1 cmp r6, 0 bne _08080660 _080806BA: movs r1, 0xCA lsls r1, 1 adds r0, r7, 0 bl sub_80421EC mov r2, r8 cmp r2, 0 bne _080806E0 _080806CA: ldr r0, _080806DC ldr r1, [r0] ldr r0, [sp, 0x14] bl sub_80522A8 b _080806EA .align 2, 0 _080806D8: .4byte gUnknown_80F4448 _080806DC: .4byte gUnknown_80FED04 _080806E0: ldr r0, _080806FC ldr r1, [r0] ldr r0, [sp, 0x14] bl sub_80522A8 _080806EA: add sp, 0x18 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080806FC: .4byte gUnknown_80FED00 thumb_func_end sub_8080620 thumb_func_start sub_8080700 sub_8080700: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x20 mov r8, r0 adds r5, r1, 0 movs r0, 0 mov r12, r0 cmp r5, 0 beq _080807A4 ldr r7, [r5, 0x70] movs r4, 0 movs r3, 0 mov r6, sp _0808071C: lsls r0, r3, 3 movs r1, 0x8C lsls r1, 1 adds r0, r1 adds r2, r7, r0 ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08080742 ldrb r0, [r2, 0x4] cmp r0, 0 beq _08080742 lsls r1, r4, 2 stm r6!, {r2} add r0, sp, 0x10 adds r0, r1 str r3, [r0] adds r4, 0x1 _08080742: adds r3, 0x1 cmp r3, 0x3 ble _0808071C cmp r4, 0 beq _0808077A adds r0, r4, 0 bl sub_8084100 adds r4, r0, 0 lsls r4, 2 mov r0, sp adds r2, r0, r4 ldr r1, [r2] movs r0, 0 strb r0, [r1, 0x4] ldr r0, _08080790 ldr r1, [r2] movs r2, 0 bl sub_80928C0 add r0, sp, 0x10 adds r0, r4 ldr r1, [r0] adds r0, r5, 0 bl sub_806A9B4 movs r1, 0x1 mov r12, r1 _0808077A: mov r0, r12 cmp r0, 0 beq _08080798 ldr r0, _08080794 ldr r2, [r0] mov r0, r8 adds r1, r5, 0 bl sub_80522F4 b _080807A4 .align 2, 0 _08080790: .4byte gUnknown_202DE58 _08080794: .4byte gUnknown_80FDA80 _08080798: ldr r0, _080807B0 ldr r2, [r0] mov r0, r8 adds r1, r5, 0 bl sub_80522F4 _080807A4: add sp, 0x20 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080807B0: .4byte gUnknown_80FDAA0 thumb_func_end sub_8080700 thumb_func_start sub_80807B4 sub_80807B4: push {lr} movs r2, 0 bl sub_8079E34 pop {r0} bx r0 thumb_func_end sub_80807B4 thumb_func_start sub_80807C0 sub_80807C0: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x10 mov r8, r0 adds r7, r1, 0 movs r0, 0 mov r9, r0 cmp r7, 0 beq _08080870 mov r0, r8 movs r2, 0x1 bl sub_80716E8 lsls r0, 24 cmp r0, 0 bne _08080870 ldr r0, [r7, 0x70] movs r5, 0 movs r6, 0x1 movs r1, 0x8C lsls r1, 1 adds r2, r0, r1 adds r3, r2, 0 mov r12, sp movs r4, 0x3 _080807F6: ldrb r1, [r2] adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _08080816 ldrb r1, [r2, 0x1] adds r0, r6, 0 ands r0, r1 cmp r0, 0 bne _08080816 mov r0, r12 adds r0, 0x4 mov r12, r0 subs r0, 0x4 stm r0!, {r3} adds r5, 0x1 _08080816: adds r2, 0x8 adds r3, 0x8 subs r4, 0x1 cmp r4, 0 bge _080807F6 cmp r5, 0 beq _08080848 adds r0, r5, 0 bl sub_8084100 lsls r0, 2 mov r1, sp adds r3, r1, r0 ldr r2, [r3] ldrb r1, [r2, 0x1] movs r0, 0x1 orrs r0, r1 strb r0, [r2, 0x1] ldr r0, _0808085C ldr r1, [r3] movs r2, 0 bl sub_80928C0 movs r0, 0x1 mov r9, r0 _08080848: mov r1, r9 cmp r1, 0 beq _08080864 ldr r0, _08080860 ldr r2, [r0] mov r0, r8 adds r1, r7, 0 bl sub_80522F4 b _08080870 .align 2, 0 _0808085C: .4byte gUnknown_202DE58 _08080860: .4byte gUnknown_80FDB04 _08080864: ldr r0, _08080880 ldr r2, [r0] mov r0, r8 adds r1, r7, 0 bl sub_80522F4 _08080870: add sp, 0x10 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08080880: .4byte gUnknown_80FDB2C thumb_func_end sub_80807C0 thumb_func_start sub_8080884 sub_8080884: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 cmp r4, 0 beq _0808089E movs r0, 0x8 bl sub_8084100 adds r2, r0, 0 adds r0, r5, 0 adds r1, r4, 0 bl sub_807CD9C _0808089E: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8080884 thumb_func_start sub_80808A4 sub_80808A4: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x30 str r0, [sp, 0x14] adds r5, r1, 0 movs r0, 0 str r0, [sp, 0x20] ldr r6, _080808D0 ldr r0, [r6] ldr r1, _080808D4 adds r0, r1 ldrb r4, [r0] bl sub_80441BC lsls r0, 24 cmp r0, 0 beq _080808DC ldr r0, _080808D8 b _08080A2E .align 2, 0 _080808D0: .4byte gUnknown_203B418 _080808D4: .4byte 0x00018209 _080808D8: .4byte gUnknown_80FED08 _080808DC: cmp r4, 0 bne _080808E2 movs r4, 0x2 _080808E2: movs r2, 0 ldrsh r0, [r5, r2] movs r3, 0x2 ldrsh r1, [r5, r3] bl sub_804954C ldrb r1, [r0, 0x9] cmp r1, 0xFF bne _0808090A movs r0, 0 ldrsh r1, [r5, r0] subs r2, r1, r4 str r2, [sp, 0x18] movs r3, 0x2 ldrsh r0, [r5, r3] subs r2, r0, r4 adds r1, r4 mov r10, r1 adds r0, r4 b _08080934 _0808090A: lsls r0, r1, 3 subs r0, r1 lsls r0, 2 ldr r1, _08080994 adds r0, r1 ldr r1, [r6] adds r1, r0 movs r2, 0x2 ldrsh r0, [r1, r2] subs r0, 0x1 str r0, [sp, 0x18] movs r3, 0x4 ldrsh r0, [r1, r3] subs r2, r0, 0x1 movs r3, 0x6 ldrsh r0, [r1, r3] adds r0, 0x1 mov r10, r0 movs r3, 0x8 ldrsh r0, [r1, r3] adds r0, 0x1 _08080934: str r0, [sp, 0x1C] adds r7, r2, 0 ldr r0, [sp, 0x1C] cmp r7, r0 bgt _08080A26 _0808093E: ldr r6, [sp, 0x18] adds r1, r7, 0x1 str r1, [sp, 0x24] cmp r6, r10 bgt _08080A1E mov r5, sp _0808094A: adds r0, r6, 0 adds r1, r7, 0 bl sub_804954C adds r4, r0, 0 ldr r0, [r4, 0x14] adds r2, r6, 0x1 mov r9, r2 cmp r0, 0 beq _08080A18 bl sub_80450F8 cmp r0, 0x3 bne _08080A18 ldr r0, [r4, 0x14] bl sub_8045108 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08080A18 movs r0, 0xBE lsls r0, 1 strh r0, [r5] movs r2, 0 mov r4, sp _08080980: ldr r0, _08080998 ldr r0, [r0] ldr r3, _0808099C adds r0, r3 ldrb r0, [r0] cmp r0, 0 beq _080809A0 movs r0, 0xBE lsls r0, 1 b _080809AE .align 2, 0 _08080994: .4byte 0x000104c4 _08080998: .4byte gUnknown_203B418 _0808099C: .4byte 0x0000066e _080809A0: movs r0, 0 str r2, [sp, 0x28] bl sub_803D970 lsls r0, 16 asrs r0, 16 ldr r2, [sp, 0x28] _080809AE: movs r1, 0 mov r8, r1 movs r3, 0 strh r0, [r4] movs r1, 0 ldrsh r0, [r4, r1] movs r1, 0 str r2, [sp, 0x28] str r3, [sp, 0x2C] bl sub_806AA0C lsls r0, 24 ldr r2, [sp, 0x28] ldr r3, [sp, 0x2C] cmp r0, 0 bne _080809D4 adds r2, 0x1 cmp r2, 0x63 ble _08080980 _080809D4: movs r2, 0 ldrsh r0, [r5, r2] movs r1, 0 str r3, [sp, 0x2C] bl sub_806AA0C lsls r0, 24 ldr r3, [sp, 0x2C] cmp r0, 0 beq _08080A10 strh r3, [r5, 0x8] mov r0, r8 strb r0, [r5, 0x2] strh r6, [r5, 0xC] strh r7, [r5, 0xE] str r3, [sp, 0x4] strb r0, [r5, 0x10] mov r0, sp movs r1, 0x1 bl sub_806B7F8 cmp r0, 0 beq _08080A10 add r0, sp, 0xC movs r1, 0 bl sub_80461C8 ldr r1, [sp, 0x20] adds r1, 0x1 str r1, [sp, 0x20] _08080A10: adds r0, r6, 0 adds r1, r7, 0 bl sub_80402AC _08080A18: mov r6, r9 cmp r6, r10 ble _0808094A _08080A1E: ldr r7, [sp, 0x24] ldr r2, [sp, 0x1C] cmp r7, r2 ble _0808093E _08080A26: ldr r3, [sp, 0x20] cmp r3, 0 beq _08080A3C ldr r0, _08080A38 _08080A2E: ldr r1, [r0] ldr r0, [sp, 0x14] bl sub_80522A8 b _08080A46 .align 2, 0 _08080A38: .4byte gUnknown_80FDACC _08080A3C: ldr r0, _08080A58 ldr r1, [r0] ldr r0, [sp, 0x14] bl sub_80522A8 _08080A46: add sp, 0x30 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08080A58: .4byte gUnknown_80FDAE4 thumb_func_end sub_80808A4 thumb_func_start sub_8080A5C sub_8080A5C: push {r4-r7,lr} sub sp, 0xC adds r7, r0, 0 adds r4, r1, 0 cmp r4, 0 beq _08080AEC adds r0, r4, 0 movs r1, 0x6 movs r2, 0x8 bl sub_806CDD4 movs r0, 0x10 movs r1, 0x55 bl sub_803E708 adds r0, r4, 0 movs r1, 0x8 bl sub_806CE68 ldr r5, [r4, 0x70] adds r2, r5, 0 adds r2, 0x60 ldrb r1, [r2] movs r6, 0x1 adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _08080AEC ldr r0, [r5, 0x60] str r0, [sp, 0x8] movs r0, 0 strb r0, [r2] bl sub_80910B4 movs r1, 0xC8 lsls r1, 1 adds r0, r4, 0 bl sub_80421C0 adds r0, r5, 0 adds r0, 0x46 ldrb r0, [r0] movs r2, 0x7 ands r2, r0 ldr r0, _08080AF4 lsls r2, 2 adds r2, r0 ldrh r0, [r2] ldrh r1, [r4, 0x4] adds r0, r1 lsls r0, 16 lsrs r0, 16 ldr r3, _08080AF8 ldr r1, [sp, 0x4] ands r1, r3 orrs r1, r0 str r1, [sp, 0x4] ldrh r0, [r2, 0x2] ldrh r2, [r4, 0x6] adds r0, r2 lsls r0, 16 ldr r2, _08080AFC ands r1, r2 orrs r1, r0 str r1, [sp, 0x4] adds r1, r4, 0x4 add r3, sp, 0x8 str r6, [sp] adds r0, r7, 0 add r2, sp, 0x4 bl sub_804687C _08080AEC: add sp, 0xC pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08080AF4: .4byte gUnknown_80F4448 _08080AF8: .4byte 0xffff0000 _08080AFC: .4byte 0x0000ffff thumb_func_end sub_8080A5C thumb_func_start sub_8080B00 sub_8080B00: push {r4,r5,lr} lsls r1, 24 lsrs r5, r1, 24 ldr r4, [r0, 0x14] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08080B2A adds r0, r4, 0 bl sub_80450F8 cmp r0, 0x2 bne _08080B26 adds r0, r4, 0 bl sub_8045104 strb r5, [r0] _08080B26: bl sub_8049ED4 _08080B2A: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8080B00 thumb_func_start sub_8080B30 sub_8080B30: push {lr} sub sp, 0x10 adds r3, r0, 0 adds r2, r1, 0 mov r0, sp adds r1, r3, 0 bl sub_8082F9C movs r0, 0 str r0, [sp, 0xC] add r1, sp, 0xC mov r0, sp movs r2, 0x4 bl sub_8082FA8 mov r0, sp bl sub_8080B90 mov r0, sp bl sub_8081454 mov r0, sp bl sub_808165C mov r0, sp bl sub_808173C mov r0, sp bl sub_8080BBC mov r0, sp bl sub_8080C44 mov r0, sp bl sub_8080CF0 ldr r1, _08080B8C mov r0, sp bl sub_808300C mov r0, sp bl nullsub_98 add sp, 0x10 pop {r0} bx r0 .align 2, 0 _08080B8C: .4byte gUnknown_81071D4 thumb_func_end sub_8080B30 thumb_func_start sub_8080B90 sub_8080B90: push {r4,lr} adds r4, r0, 0 ldr r1, _08080BB0 bl sub_808300C ldr r0, _08080BB4 ldr r1, [r0] ldr r0, _08080BB8 adds r1, r0 adds r0, r4, 0 movs r2, 0x58 bl sub_8082FA8 pop {r4} pop {r0} bx r0 .align 2, 0 _08080BB0: .4byte gUnknown_81071E0 _08080BB4: .4byte gUnknown_203B418 _08080BB8: .4byte 0x00000644 thumb_func_end sub_8080B90 thumb_func_start sub_8080BBC sub_8080BBC: push {r4-r7,lr} sub sp, 0x8 adds r6, r0, 0 ldr r1, _08080C38 movs r2, 0 add r0, sp, 0x4 _08080BC8: strb r2, [r0] subs r0, 0x1 cmp r0, sp bge _08080BC8 adds r0, r6, 0 bl sub_808300C movs r7, 0 _08080BD8: ldr r0, _08080C3C ldr r0, [r0] lsls r1, r7, 2 ldr r2, _08080C40 adds r0, r2 adds r0, r1 ldr r4, [r0] movs r5, 0 cmp r4, 0 beq _08080C1A adds r0, r4, 0 bl sub_80450F8 cmp r0, 0x3 bne _08080C1A adds r0, r4, 0 bl sub_8045108 adds r1, r0, 0 adds r0, r6, 0 bl sub_8081788 adds r1, r4, 0x4 adds r0, r6, 0 movs r2, 0x1 bl sub_8082FA8 adds r1, r4, 0x6 adds r0, r6, 0 movs r2, 0x1 bl sub_8082FA8 movs r5, 0x1 _08080C1A: cmp r5, 0 bne _08080C28 adds r0, r6, 0 mov r1, sp movs r2, 0x5 bl sub_8082FA8 _08080C28: adds r7, 0x1 cmp r7, 0x3F ble _08080BD8 add sp, 0x8 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08080C38: .4byte gUnknown_81071E0 _08080C3C: .4byte gUnknown_203B418 _08080C40: .4byte 0x0001361c thumb_func_end sub_8080BBC thumb_func_start sub_8080C44 sub_8080C44: push {r4-r7,lr} sub sp, 0x8 adds r6, r0, 0 movs r7, 0 ldr r3, _08080CE4 movs r2, 0xFF _08080C50: mov r0, sp adds r1, r0, r7 ldrb r0, [r1] orrs r0, r2 strb r0, [r1] adds r7, 0x1 cmp r7, 0x4 ble _08080C50 adds r0, r6, 0 adds r1, r3, 0 bl sub_808300C movs r7, 0 _08080C6A: ldr r0, _08080CE8 ldr r0, [r0] lsls r1, r7, 2 ldr r2, _08080CEC adds r0, r2 adds r0, r1 ldr r5, [r0] movs r4, 0 cmp r5, 0 beq _08080CC8 adds r0, r5, 0 bl sub_80450F8 cmp r0, 0x2 bne _08080CC8 adds r0, r5, 0 bl sub_8045104 adds r4, r0, 0 adds r0, r6, 0 adds r1, r4, 0 movs r2, 0x1 bl sub_8082FA8 adds r4, 0x1 adds r0, r6, 0 adds r1, r4, 0 movs r2, 0x1 bl sub_8082FA8 adds r1, r5, 0 adds r1, 0x20 adds r0, r6, 0 movs r2, 0x1 bl sub_8082FA8 adds r1, r5, 0x4 adds r0, r6, 0 movs r2, 0x1 bl sub_8082FA8 adds r1, r5, 0x6 adds r0, r6, 0 movs r2, 0x1 bl sub_8082FA8 movs r4, 0x1 _08080CC8: cmp r4, 0 bne _08080CD6 adds r0, r6, 0 mov r1, sp movs r2, 0x5 bl sub_8082FA8 _08080CD6: adds r7, 0x1 cmp r7, 0x3F ble _08080C6A add sp, 0x8 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08080CE4: .4byte gUnknown_81071E0 _08080CE8: .4byte gUnknown_203B418 _08080CEC: .4byte 0x0001371c thumb_func_end sub_8080C44 thumb_func_start sub_8080CF0 sub_8080CF0: push {r4-r6,lr} adds r6, r0, 0 ldr r1, _08080DD4 bl sub_808300C ldr r4, _08080DD8 ldr r0, [r4] ldr r1, _08080DDC adds r0, r1 ldr r1, [r0] adds r0, r6, 0 bl sub_8083078 ldr r0, [r4] ldr r2, _08080DE0 adds r0, r2 ldr r1, [r0] adds r0, r6, 0 bl sub_8083078 ldr r0, [r4] ldr r1, _08080DE4 adds r0, r1 ldrb r1, [r0] adds r0, r6, 0 bl sub_80830B4 ldr r0, [r4] ldr r2, _08080DE8 adds r0, r2 ldrb r1, [r0] adds r0, r6, 0 bl sub_80830B4 ldr r0, [r4] ldr r1, _08080DEC adds r0, r1 ldrb r1, [r0] adds r0, r6, 0 bl sub_80830B4 ldr r0, [r4] ldr r2, _08080DF0 adds r0, r2 ldrb r1, [r0] adds r0, r6, 0 bl sub_80830B4 ldr r0, [r4] ldr r1, _08080DF4 adds r0, r1 ldrb r1, [r0] adds r0, r6, 0 bl sub_80830B4 ldr r0, [r4] ldr r2, _08080DF8 adds r0, r2 ldrb r1, [r0] adds r0, r6, 0 bl sub_80830B4 ldr r0, [r4] ldr r1, _08080DFC adds r0, r1 ldrb r1, [r0] adds r0, r6, 0 bl sub_80830B4 ldr r0, [r4] ldr r2, _08080E00 adds r0, r2 ldrb r1, [r0] adds r0, r6, 0 bl sub_80830B4 ldr r0, [r4] movs r1, 0xE0 lsls r1, 6 adds r0, r1 ldrh r1, [r0] adds r0, r6, 0 bl sub_8083030 movs r5, 0 _08080D9A: ldr r0, [r4] lsls r1, r5, 2 ldr r2, _08080E04 adds r0, r2 adds r0, r1 ldr r1, [r0] adds r0, r6, 0 bl sub_8080E0C adds r5, 0x1 cmp r5, 0x3 ble _08080D9A movs r5, 0 ldr r4, _08080DD8 _08080DB6: ldr r0, [r4] lsls r1, r5, 2 ldr r2, _08080E08 adds r0, r2 adds r0, r1 ldr r1, [r0] adds r0, r6, 0 bl sub_8080E0C adds r5, 0x1 cmp r5, 0xF ble _08080DB6 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08080DD4: .4byte gUnknown_81071E0 _08080DD8: .4byte gUnknown_203B418 _08080DDC: .4byte 0x000037f0 _08080DE0: .4byte 0x000037f4 _08080DE4: .4byte 0x000037f8 _08080DE8: .4byte 0x000037f9 _08080DEC: .4byte 0x000037fa _08080DF0: .4byte 0x000037fb _08080DF4: .4byte 0x000037fc _08080DF8: .4byte 0x000037fd _08080DFC: .4byte 0x000037fe _08080E00: .4byte 0x000037ff _08080E04: .4byte 0x0001357c _08080E08: .4byte 0x0001358c thumb_func_end sub_8080CF0 thumb_func_start sub_8080E0C sub_8080E0C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r4, _08080E88 add sp, r4 adds r5, r0, 0 adds r4, r1, 0 movs r1, 0 add r0, sp, 0x20C str r1, [r0] movs r1, 0x1 movs r6, 0x82 lsls r6, 2 mov r2, sp adds r0, r2, r6 str r1, [r0] adds r0, r5, 0 movs r1, 0xAA bl sub_8083060 adds r0, r5, 0 movs r1, 0x55 bl sub_8083060 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08080E8C ldr r6, [r4, 0x70] add r1, sp, 0x208 adds r0, r5, 0 movs r2, 0x1 bl sub_8082FA8 adds r1, r4, 0x4 adds r0, r5, 0 movs r2, 0x1 bl sub_8082FA8 adds r1, r4, 0x6 adds r0, r5, 0 movs r2, 0x1 bl sub_8082FA8 adds r1, r4, 0 adds r1, 0x20 adds r0, r5, 0 movs r2, 0x1 bl sub_8082FA8 adds r1, r4, 0 adds r1, 0x26 adds r0, r5, 0 movs r2, 0x2 bl sub_8082FA8 b _08080ECC .align 2, 0 _08080E88: .4byte 0xfffffd6c _08080E8C: mov r0, sp movs r1, 0 adds r2, r6, 0 bl memset mov r6, sp add r4, sp, 0x20C adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x1 bl sub_8082FA8 adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x1 bl sub_8082FA8 adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x1 bl sub_8082FA8 adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x1 bl sub_8082FA8 adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x2 bl sub_8082FA8 _08080ECC: ldrh r1, [r6] adds r0, r5, 0 bl sub_8083030 movs r0, 0x4 ldrsh r1, [r6, r0] adds r0, r5, 0 bl sub_80817F4 movs r2, 0x2 ldrsh r1, [r6, r2] adds r0, r5, 0 bl sub_80817F4 ldrb r1, [r6, 0x6] adds r0, r5, 0 bl sub_80830B4 ldrb r1, [r6, 0x7] adds r0, r5, 0 bl sub_80830B4 ldrb r1, [r6, 0x8] adds r0, r5, 0 bl sub_8083060 ldrb r1, [r6, 0x9] adds r0, r5, 0 bl sub_8083060 ldrb r1, [r6, 0xA] adds r0, r5, 0 bl sub_8083060 adds r1, r6, 0 adds r1, 0x40 adds r0, r5, 0 bl sub_80818C8 movs r0, 0xC ldrsh r1, [r6, r0] adds r0, r5, 0 bl sub_8083048 movs r2, 0xE ldrsh r1, [r6, r2] adds r0, r5, 0 bl sub_8083048 movs r0, 0x10 ldrsh r1, [r6, r0] adds r0, r5, 0 bl sub_8083048 movs r2, 0x12 ldrsh r1, [r6, r2] adds r0, r5, 0 bl sub_8083048 ldrb r1, [r6, 0x14] adds r0, r5, 0 bl sub_8083060 ldrb r1, [r6, 0x15] adds r0, r5, 0 bl sub_8083060 ldrb r1, [r6, 0x16] adds r0, r5, 0 bl sub_8083060 ldrb r1, [r6, 0x17] adds r0, r5, 0 bl sub_8083060 ldr r1, [r6, 0x18] adds r0, r5, 0 bl sub_8083078 movs r0, 0x1C ldrsh r1, [r6, r0] adds r0, r5, 0 bl sub_8083048 movs r2, 0x1E ldrsh r1, [r6, r2] adds r0, r5, 0 bl sub_8083048 movs r0, 0x20 ldrsh r1, [r6, r0] adds r0, r5, 0 bl sub_8083048 movs r2, 0x22 ldrsh r1, [r6, r2] adds r0, r5, 0 bl sub_8083048 movs r0, 0x24 ldrsh r1, [r6, r0] adds r0, r5, 0 bl sub_8083048 movs r2, 0x26 ldrsh r1, [r6, r2] adds r0, r5, 0 bl sub_8083048 movs r0, 0x28 ldrsh r1, [r6, r0] adds r0, r5, 0 bl sub_8083048 ldr r1, [r6, 0x2C] adds r0, r5, 0 bl sub_80830A0 ldr r1, [r6, 0x30] adds r0, r5, 0 bl sub_80830A0 ldr r1, [r6, 0x34] adds r0, r5, 0 bl sub_80830A0 ldr r1, [r6, 0x38] adds r0, r5, 0 bl sub_80830A0 adds r1, r6, 0 adds r1, 0x44 adds r0, r5, 0 bl sub_80817C8 adds r0, r6, 0 adds r0, 0x5C ldrb r1, [r0] adds r0, r5, 0 bl sub_808180C adds r0, r6, 0 adds r0, 0x5D ldrb r1, [r0] adds r0, r5, 0 bl sub_808180C adds r0, r6, 0 adds r0, 0x5E ldrb r1, [r0] adds r0, r5, 0 bl sub_8081824 adds r0, r6, 0 adds r0, 0x5F ldrb r1, [r0] adds r0, r5, 0 bl sub_8081824 adds r1, r6, 0 adds r1, 0x60 adds r0, r5, 0 bl sub_8081788 adds r0, r6, 0 adds r0, 0x64 ldrb r1, [r0] adds r0, r5, 0 bl sub_80817B0 movs r1, 0x78 adds r1, r6 mov r8, r1 movs r2, 0x8C adds r2, r6 mov r9, r2 movs r0, 0x90 adds r0, r6 mov r10, r0 adds r1, r6, 0 adds r1, 0x94 str r1, [sp, 0x214] adds r2, r6, 0 adds r2, 0x3C str r2, [sp, 0x210] adds r0, r6, 0 adds r0, 0x98 str r0, [sp, 0x218] adds r1, 0x8 str r1, [sp, 0x21C] adds r2, 0x64 str r2, [sp, 0x220] adds r0, 0x10 str r0, [sp, 0x228] adds r1, 0x10 str r1, [sp, 0x22C] adds r2, 0x10 str r2, [sp, 0x230] adds r0, 0x14 str r0, [sp, 0x234] adds r1, 0x14 str r1, [sp, 0x238] adds r2, 0x14 str r2, [sp, 0x23C] adds r0, 0xC str r0, [sp, 0x240] adds r1, 0x10 str r1, [sp, 0x244] adds r2, 0x18 str r2, [sp, 0x248] adds r0, 0x18 str r0, [sp, 0x24C] adds r1, 0x14 str r1, [sp, 0x250] adds r2, 0xC str r2, [sp, 0x254] adds r0, 0xC str r0, [sp, 0x258] adds r1, 0xC str r1, [sp, 0x25C] adds r2, 0x9 str r2, [sp, 0x260] adds r0, 0x6 str r0, [sp, 0x264] adds r1, 0x3 str r1, [sp, 0x268] adds r2, 0x3 str r2, [sp, 0x26C] adds r0, 0x9 str r0, [sp, 0x280] adds r1, 0x2 str r1, [sp, 0x270] adds r2, 0x2 str r2, [sp, 0x274] subs r0, 0x4 str r0, [sp, 0x278] adds r1, 0x5 str r1, [sp, 0x27C] adds r2, 0x6 str r2, [sp, 0x284] adds r0, 0x6 str r0, [sp, 0x288] adds r1, 0x4 str r1, [sp, 0x28C] adds r2, 0x3 str r2, [sp, 0x290] subs r0, 0x59 str r0, [sp, 0x224] adds r4, r6, 0 adds r4, 0x68 movs r7, 0x3 _080810C2: adds r0, r5, 0 adds r1, r4, 0 bl sub_80830D8 adds r4, 0x4 subs r7, 0x1 cmp r7, 0 bge _080810C2 adds r0, r5, 0 mov r1, r8 bl sub_80818E4 adds r0, r5, 0 mov r1, r9 bl sub_8081B54 adds r0, r5, 0 mov r1, r10 bl sub_8081B54 ldr r2, [sp, 0x214] ldrb r1, [r2] adds r0, r5, 0 bl sub_8081880 adds r0, r5, 0 ldr r1, [sp, 0x210] bl sub_8081898 ldr r0, [sp, 0x218] ldr r1, [r0] adds r0, r5, 0 bl sub_8083078 ldr r2, [sp, 0x21C] ldr r1, [r2] adds r0, r5, 0 bl sub_8083078 ldr r0, [sp, 0x220] ldr r1, [r0] adds r0, r5, 0 bl sub_8083078 adds r0, r5, 0 ldr r1, [sp, 0x228] bl sub_8081920 adds r0, r5, 0 ldr r1, [sp, 0x22C] bl sub_808193C adds r0, r5, 0 ldr r1, [sp, 0x230] bl sub_8081968 adds r0, r5, 0 ldr r1, [sp, 0x234] bl sub_8081994 adds r0, r5, 0 ldr r1, [sp, 0x238] bl sub_80819B0 adds r0, r5, 0 ldr r1, [sp, 0x23C] bl sub_80819D4 adds r0, r5, 0 ldr r1, [sp, 0x240] bl sub_80819F0 adds r0, r5, 0 ldr r1, [sp, 0x244] bl sub_8081A24 adds r0, r5, 0 ldr r1, [sp, 0x248] bl sub_8081A58 adds r0, r5, 0 ldr r1, [sp, 0x24C] bl sub_8081A74 adds r0, r5, 0 ldr r1, [sp, 0x250] bl sub_8081A80 adds r0, r5, 0 ldr r1, [sp, 0x254] bl sub_8081A9C adds r0, r5, 0 ldr r1, [sp, 0x258] bl sub_8081AB8 ldr r2, [sp, 0x25C] ldrb r1, [r2] adds r0, r5, 0 bl sub_80830B4 ldr r0, [sp, 0x260] ldrb r1, [r0] adds r0, r5, 0 bl sub_80830B4 ldr r2, [sp, 0x264] ldrb r1, [r2] adds r0, r5, 0 bl sub_80830B4 ldr r0, [sp, 0x268] ldrb r1, [r0] adds r0, r5, 0 bl sub_80830B4 ldr r2, [sp, 0x26C] ldrb r1, [r2] adds r0, r5, 0 bl sub_80830B4 ldr r0, [sp, 0x280] ldrb r1, [r0] adds r0, r5, 0 bl sub_8083060 ldr r2, [sp, 0x270] ldrb r1, [r2] adds r0, r5, 0 bl sub_80830B4 ldr r0, [sp, 0x274] ldrb r1, [r0] adds r0, r5, 0 bl sub_80830B4 ldr r2, [sp, 0x278] ldrb r1, [r2] adds r0, r5, 0 bl sub_80830B4 ldr r0, [sp, 0x27C] ldrb r1, [r0] adds r0, r5, 0 bl sub_8083060 ldr r2, [sp, 0x284] ldrb r1, [r2] adds r0, r5, 0 bl sub_80830B4 ldr r0, [sp, 0x288] ldrb r1, [r0] adds r0, r5, 0 bl sub_8083060 ldr r2, [sp, 0x28C] ldrb r1, [r2] adds r0, r5, 0 bl sub_8083060 ldr r0, [sp, 0x290] ldrb r1, [r0] adds r0, r5, 0 bl sub_808183C movs r1, 0x80 lsls r1, 1 adds r0, r6, r1 ldrb r1, [r0] adds r0, r5, 0 bl sub_8081854 movs r2, 0x82 lsls r2, 1 adds r0, r6, r2 ldr r1, [r0] adds r0, r5, 0 bl sub_808186C movs r0, 0x84 lsls r0, 1 adds r1, r6, r0 adds r0, r5, 0 movs r2, 0x5 bl sub_808314C ldr r2, _08081428 adds r1, r6, r2 adds r0, r5, 0 movs r2, 0x5 bl sub_808314C movs r1, 0x89 lsls r1, 1 adds r0, r6, r1 ldrb r1, [r0] adds r0, r5, 0 bl sub_8083060 ldr r2, _0808142C adds r0, r6, r2 ldrb r1, [r0] adds r0, r5, 0 bl sub_8083060 movs r1, 0x8A lsls r1, 1 adds r0, r6, r1 ldrb r1, [r0] adds r0, r5, 0 bl sub_8083060 movs r2, 0x8C lsls r2, 1 adds r1, r6, r2 adds r0, r5, 0 bl sub_8081B08 movs r0, 0x9E lsls r0, 1 adds r1, r6, r0 adds r0, r5, 0 bl sub_8081B34 movs r2, 0xA0 lsls r2, 1 adds r1, r6, r2 adds r0, r5, 0 bl sub_8081B34 movs r1, 0xA2 lsls r1, 1 adds r0, r6, r1 ldrb r1, [r0] adds r0, r5, 0 bl sub_80830B4 ldr r2, _08081430 adds r0, r6, r2 ldrb r1, [r0] adds r0, r5, 0 bl sub_80830B4 ldr r1, _08081434 adds r0, r6, r1 ldrb r1, [r0] adds r0, r5, 0 bl sub_80830B4 movs r2, 0xA3 lsls r2, 1 adds r0, r6, r2 ldrb r1, [r0] adds r0, r5, 0 bl sub_80830B4 movs r1, 0xA4 lsls r1, 1 adds r0, r6, r1 ldrb r1, [r0] adds r0, r5, 0 bl sub_80830B4 ldr r2, _08081438 adds r0, r6, r2 ldrb r1, [r0] adds r0, r5, 0 bl sub_80830B4 movs r1, 0xA5 lsls r1, 1 adds r0, r6, r1 ldrb r1, [r0] adds r0, r5, 0 bl sub_80830B4 ldr r2, _0808143C adds r0, r6, r2 ldrb r1, [r0] adds r0, r5, 0 bl sub_80830B4 movs r1, 0xA6 lsls r1, 1 adds r0, r6, r1 ldrb r1, [r0] adds r0, r5, 0 bl sub_80830B4 movs r2, 0xA7 lsls r2, 1 adds r0, r6, r2 ldrh r1, [r0] adds r0, r5, 0 bl sub_8083030 movs r1, 0xA8 lsls r1, 1 adds r0, r6, r1 ldrh r1, [r0] adds r0, r5, 0 bl sub_8083030 movs r2, 0xA9 lsls r2, 1 adds r0, r6, r2 ldrb r1, [r0] adds r0, r5, 0 bl sub_80830B4 ldr r1, _08081440 adds r0, r6, r1 ldrb r1, [r0] adds r0, r5, 0 bl sub_8083060 movs r2, 0xAA lsls r2, 1 adds r0, r6, r2 ldrb r1, [r0] adds r0, r5, 0 bl sub_80830B4 ldr r1, _08081444 adds r0, r6, r1 ldrb r1, [r0] adds r0, r5, 0 bl sub_80830B4 movs r2, 0xAB lsls r2, 1 adds r0, r6, r2 ldrb r1, [r0] adds r0, r5, 0 bl sub_80830B4 movs r1, 0xB2 lsls r1, 1 adds r0, r6, r1 ldrb r1, [r0] adds r0, r5, 0 bl sub_8083060 ldr r2, _08081448 adds r0, r6, r2 ldrb r1, [r0] adds r0, r5, 0 bl sub_8083060 movs r1, 0xB3 lsls r1, 1 adds r0, r6, r1 ldrb r1, [r0] adds r0, r5, 0 bl sub_8083060 ldr r2, _0808144C adds r0, r6, r2 ldrb r1, [r0] adds r0, r5, 0 bl sub_8083060 movs r1, 0xB4 lsls r1, 1 adds r0, r6, r1 ldrb r1, [r0] adds r0, r5, 0 bl sub_8083060 ldr r2, _08081450 adds r0, r6, r2 ldrb r1, [r0] adds r0, r5, 0 bl sub_8083060 movs r0, 0xB6 lsls r0, 1 adds r1, r6, r0 adds r0, r5, 0 bl sub_80830D8 movs r1, 0xBA lsls r1, 1 adds r0, r6, r1 ldr r1, [r0] adds r0, r5, 0 bl sub_80830A0 movs r2, 0xBC lsls r2, 1 adds r0, r6, r2 ldrh r1, [r0] adds r0, r5, 0 bl sub_8083030 movs r1, 0xFC lsls r1, 1 adds r0, r6, r1 movs r2, 0 ldrsh r1, [r0, r2] adds r0, r5, 0 bl sub_8083048 movs r1, 0xFD lsls r1, 1 adds r0, r6, r1 movs r2, 0 ldrsh r1, [r0, r2] adds r0, r5, 0 bl sub_8083048 movs r1, 0xFE lsls r1, 1 adds r0, r6, r1 ldr r1, [r0] adds r0, r5, 0 bl sub_8083078 ldr r2, [sp, 0x224] ldrb r1, [r2] adds r0, r5, 0 bl sub_80818B8 movs r3, 0xA5 lsls r3, 2 add sp, r3 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08081428: .4byte 0x0000010d _0808142C: .4byte 0x00000113 _08081430: .4byte 0x00000145 _08081434: .4byte 0x00000147 _08081438: .4byte 0x00000149 _0808143C: .4byte 0x0000014b _08081440: .4byte 0x00000153 _08081444: .4byte 0x00000155 _08081448: .4byte 0x00000165 _0808144C: .4byte 0x00000167 _08081450: .4byte 0x00000169 thumb_func_end sub_8080E0C thumb_func_start sub_8081454 sub_8081454: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r7, r0, 0 ldr r1, _08081600 bl sub_808300C ldr r4, _08081604 ldr r0, [r4] ldr r1, _08081608 adds r0, r1 ldrb r1, [r0] adds r0, r7, 0 bl sub_80830B4 ldr r0, [r4] ldr r2, _0808160C adds r0, r2 ldrb r1, [r0] adds r0, r7, 0 bl sub_80830B4 ldr r0, [r4] ldr r1, _08081610 adds r0, r1 ldrb r1, [r0] adds r0, r7, 0 bl sub_80830B4 ldr r0, [r4] ldr r2, _08081614 adds r0, r2 ldrb r1, [r0] adds r0, r7, 0 bl sub_80830B4 ldr r0, [r4] ldr r1, _08081618 adds r0, r1 ldrb r1, [r0] adds r0, r7, 0 bl sub_8083060 ldr r0, [r4] ldr r2, _0808161C adds r0, r2 ldrb r1, [r0] adds r0, r7, 0 bl sub_8083060 ldr r0, [r4] ldr r1, _08081620 adds r0, r1 movs r2, 0 ldrsh r1, [r0, r2] adds r0, r7, 0 bl sub_8083048 ldr r0, [r4] ldr r1, _08081624 adds r0, r1 movs r2, 0 ldrsh r1, [r0, r2] adds r0, r7, 0 bl sub_8083048 ldr r0, [r4] ldr r1, _08081628 adds r0, r1 movs r2, 0 ldrsh r1, [r0, r2] adds r0, r7, 0 bl sub_8083048 ldr r0, [r4] ldr r1, _0808162C adds r0, r1 movs r2, 0 ldrsh r1, [r0, r2] adds r0, r7, 0 bl sub_8083048 ldr r0, [r4] ldr r1, _08081630 adds r0, r1 movs r2, 0 ldrsh r1, [r0, r2] adds r0, r7, 0 bl sub_8083048 movs r1, 0 mov r9, r4 _08081510: lsls r0, r1, 2 adds r2, r1, 0x1 mov r8, r2 adds r0, r1 lsls r0, 2 adds r0, r1 lsls r0, 6 ldr r1, _08081634 adds r6, r0, r1 movs r5, 0 movs r4, 0x37 _08081526: mov r2, r9 ldr r1, [r2] adds r1, r6 adds r1, r5 adds r0, r7, 0 bl sub_8081B60 adds r5, 0x18 subs r4, 0x1 cmp r4, 0 bge _08081526 mov r1, r8 cmp r1, 0x1F ble _08081510 ldr r4, _08081604 ldr r1, [r4] ldr r0, _08081638 adds r1, r0 adds r0, r7, 0 bl sub_80830D8 ldr r1, [r4] ldr r2, _0808163C adds r1, r2 adds r0, r7, 0 bl sub_80830D8 ldr r6, _08081640 movs r5, 0x7 _08081560: ldr r1, [r4] adds r1, r6 adds r0, r7, 0 bl sub_80830D8 adds r6, 0x4 subs r5, 0x1 cmp r5, 0 bge _08081560 ldr r4, _08081604 ldr r1, [r4] ldr r0, _08081644 adds r1, r0 adds r0, r7, 0 bl sub_80830F8 ldr r1, [r4] ldr r2, _08081648 adds r1, r2 adds r0, r7, 0 bl sub_80830F8 ldr r1, [r4] ldr r0, _0808164C adds r1, r0 adds r0, r7, 0 bl sub_808312C movs r1, 0 mov r10, r4 _0808159C: movs r4, 0 adds r2, r1, 0x1 mov r8, r2 lsls r0, r1, 1 lsls r2, r1, 3 mov r9, r2 adds r0, r1 lsls r0, 6 ldr r1, _08081650 adds r6, r0, r1 movs r5, 0 _080815B2: mov r2, r10 ldr r1, [r2] adds r1, r6 adds r1, r5 adds r0, r7, 0 bl sub_8081B60 mov r1, r10 ldr r0, [r1] mov r2, r9 adds r1, r4, r2 ldr r2, _08081654 adds r0, r2 adds r0, r1 ldrb r1, [r0] adds r0, r7, 0 bl sub_8083060 adds r5, 0x18 adds r4, 0x1 cmp r4, 0x7 ble _080815B2 mov r1, r8 cmp r1, 0x7 ble _0808159C ldr r0, _08081604 ldr r1, [r0] ldr r0, _08081658 adds r1, r0 adds r0, r7, 0 bl sub_8081B94 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08081600: .4byte gUnknown_81071E0 _08081604: .4byte gUnknown_203B418 _08081608: .4byte 0x00003a08 _0808160C: .4byte 0x00003a09 _08081610: .4byte 0x00003a0a _08081614: .4byte 0x00003a0b _08081618: .4byte 0x00003a0c _0808161C: .4byte 0x00003a0d _08081620: .4byte 0x00003a0e _08081624: .4byte 0x00003a10 _08081628: .4byte 0x00003a12 _0808162C: .4byte 0x00003a14 _08081630: .4byte 0x00003a16 _08081634: .4byte 0x00003a18 _08081638: .4byte 0x0000e218 _0808163C: .4byte 0x0000e21c _08081640: .4byte 0x0000e220 _08081644: .4byte 0x0000e240 _08081648: .4byte 0x0000e250 _0808164C: .4byte 0x0000e260 _08081650: .4byte 0x0000e27c _08081654: .4byte 0x0000e87c _08081658: .4byte 0x0000e264 thumb_func_end sub_8081454 thumb_func_start sub_808165C sub_808165C: push {r4,r5,lr} adds r5, r0, 0 ldr r1, _08081708 bl sub_808300C ldr r4, _0808170C ldr r0, [r4] ldr r1, _08081710 adds r0, r1 ldrb r1, [r0] adds r0, r5, 0 bl sub_8083060 ldr r0, [r4] ldr r1, _08081714 adds r0, r1 ldrb r1, [r0] adds r0, r5, 0 bl sub_8083060 ldr r0, [r4] ldr r1, _08081718 adds r0, r1 ldrb r1, [r0] adds r0, r5, 0 bl sub_80830B4 ldr r0, [r4] ldr r1, _0808171C adds r0, r1 ldrb r1, [r0] adds r0, r5, 0 bl sub_80830B4 ldr r0, [r4] ldr r1, _08081720 adds r0, r1 ldrb r1, [r0] adds r0, r5, 0 bl sub_80830B4 ldr r0, [r4] ldr r1, _08081724 adds r0, r1 ldrb r1, [r0] adds r0, r5, 0 bl sub_80830B4 ldr r0, [r4] ldr r1, _08081728 adds r0, r1 ldrb r1, [r0] adds r0, r5, 0 bl sub_80830B4 ldr r0, [r4] ldr r1, _0808172C adds r0, r1 ldrb r1, [r0] adds r0, r5, 0 bl sub_80830B4 ldr r0, [r4] ldr r1, _08081730 adds r0, r1 ldrb r1, [r0] adds r0, r5, 0 bl sub_80830B4 ldr r0, [r4] ldr r1, _08081734 adds r0, r1 ldrb r1, [r0] adds r0, r5, 0 bl sub_80830B4 ldr r0, [r4] ldr r1, _08081738 adds r0, r1 ldrb r1, [r0] adds r0, r5, 0 bl sub_80830B4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08081708: .4byte gUnknown_81071E0 _0808170C: .4byte gUnknown_203B418 _08081710: .4byte 0x00018208 _08081714: .4byte 0x00018209 _08081718: .4byte 0x0001820a _0808171C: .4byte 0x0001820b _08081720: .4byte 0x0001820c _08081724: .4byte 0x0001820d _08081728: .4byte 0x0001820e _0808172C: .4byte 0x0001820f _08081730: .4byte 0x00018210 _08081734: .4byte 0x00018211 _08081738: .4byte 0x00018213 thumb_func_end sub_808165C thumb_func_start sub_808173C sub_808173C: push {r4,r5,lr} adds r5, r0, 0 ldr r4, _08081778 ldr r0, [r4] ldr r1, _0808177C adds r0, r1 movs r2, 0 ldrsh r1, [r0, r2] adds r0, r5, 0 bl sub_8083048 ldr r0, [r4] ldr r1, _08081780 adds r0, r1 movs r2, 0 ldrsh r1, [r0, r2] adds r0, r5, 0 bl sub_8083048 ldr r0, [r4] ldr r1, _08081784 adds r0, r1 movs r2, 0 ldrsh r1, [r0, r2] adds r0, r5, 0 bl sub_8083048 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08081778: .4byte gUnknown_203B418 _0808177C: .4byte 0x0001ced6 _08081780: .4byte 0x0001ced8 _08081784: .4byte 0x0001ceda thumb_func_end sub_808173C thumb_func_start sub_8081788 sub_8081788: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x1 bl sub_8082FA8 adds r1, r5, 0x1 adds r0, r4, 0 movs r2, 0x1 bl sub_8082FA8 adds r5, 0x2 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x1 bl sub_8082FA8 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8081788 thumb_func_start sub_80817B0 sub_80817B0: push {lr} sub sp, 0x4 mov r2, sp strb r1, [r2] mov r1, sp movs r2, 0x1 bl sub_8082FA8 add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80817B0 thumb_func_start sub_80817C8 sub_80817C8: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 adds r1, r4, 0x2 movs r2, 0x1 bl sub_8082FA8 adds r1, r4, 0 adds r1, 0x14 adds r0, r5, 0 movs r2, 0x1 bl sub_8082FA8 adds r4, 0x16 adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x1 bl sub_8082FA8 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80817C8 thumb_func_start sub_80817F4 sub_80817F4: push {lr} sub sp, 0x4 mov r2, sp strh r1, [r2] mov r1, sp movs r2, 0x2 bl sub_8082FA8 add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80817F4 thumb_func_start sub_808180C sub_808180C: push {lr} sub sp, 0x4 mov r2, sp strb r1, [r2] mov r1, sp movs r2, 0x1 bl sub_8082FA8 add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_808180C thumb_func_start sub_8081824 sub_8081824: push {lr} sub sp, 0x4 mov r2, sp strb r1, [r2] mov r1, sp movs r2, 0x1 bl sub_8082FA8 add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8081824 thumb_func_start sub_808183C sub_808183C: push {lr} sub sp, 0x4 mov r2, sp strb r1, [r2] mov r1, sp movs r2, 0x1 bl sub_8082FA8 add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_808183C thumb_func_start sub_8081854 sub_8081854: push {lr} sub sp, 0x4 mov r2, sp strb r1, [r2] mov r1, sp movs r2, 0x1 bl sub_8082FA8 add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8081854 thumb_func_start sub_808186C sub_808186C: push {lr} sub sp, 0x4 str r1, [sp] mov r1, sp movs r2, 0x4 bl sub_8082FA8 add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_808186C thumb_func_start sub_8081880 sub_8081880: push {lr} sub sp, 0x4 mov r2, sp strb r1, [r2] mov r1, sp movs r2, 0x1 bl sub_8082FA8 add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8081880 thumb_func_start sub_8081898 sub_8081898: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 movs r0, 0 ldrsh r1, [r4, r0] adds r0, r5, 0 bl sub_8083048 ldrb r1, [r4, 0x2] adds r0, r5, 0 bl sub_808180C pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8081898 thumb_func_start sub_80818B8 sub_80818B8: push {lr} lsls r1, 24 lsrs r1, 24 bl sub_8083060 pop {r0} bx r0 thumb_func_end sub_80818B8 thumb_func_start sub_80818C8 sub_80818C8: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 ldrb r1, [r4] bl sub_8083060 ldrb r1, [r4, 0x1] adds r0, r5, 0 bl sub_8083060 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80818C8 thumb_func_start sub_80818E4 sub_80818E4: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 movs r2, 0x1 bl sub_8082FA8 ldrb r1, [r4, 0x1] adds r0, r5, 0 bl sub_80830B4 ldrb r1, [r4, 0x2] adds r0, r5, 0 bl sub_80830B4 ldrb r1, [r4, 0x3] adds r0, r5, 0 bl sub_80830B4 ldrh r1, [r4, 0x4] adds r0, r5, 0 bl sub_8083030 adds r4, 0x10 adds r0, r5, 0 adds r1, r4, 0 bl sub_80830D8 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80818E4 thumb_func_start sub_8081920 sub_8081920: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 movs r2, 0x1 bl sub_8082FA8 ldrb r1, [r4, 0x1] adds r0, r5, 0 bl sub_8083060 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8081920 thumb_func_start sub_808193C sub_808193C: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 movs r2, 0x1 bl sub_8082FA8 ldrb r1, [r4, 0x1] adds r0, r5, 0 bl sub_8083060 ldrb r1, [r4, 0x2] adds r0, r5, 0 bl sub_8083060 ldrb r1, [r4, 0x3] adds r0, r5, 0 bl sub_8083060 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_808193C thumb_func_start sub_8081968 sub_8081968: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 movs r2, 0x1 bl sub_8082FA8 ldrb r1, [r4, 0x8] adds r0, r5, 0 bl sub_8083060 ldrb r1, [r4, 0x9] adds r0, r5, 0 bl sub_8083060 ldr r1, [r4, 0x4] adds r0, r5, 0 bl sub_8083078 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8081968 thumb_func_start sub_8081994 sub_8081994: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 movs r2, 0x1 bl sub_8082FA8 ldrb r1, [r4, 0x1] adds r0, r5, 0 bl sub_8083060 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8081994 thumb_func_start sub_80819B0 sub_80819B0: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 movs r2, 0x1 bl sub_8082FA8 ldrb r1, [r4, 0x1] adds r0, r5, 0 bl sub_8083060 ldrb r1, [r4, 0x2] adds r0, r5, 0 bl sub_8083060 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80819B0 thumb_func_start sub_80819D4 sub_80819D4: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 movs r2, 0x1 bl sub_8082FA8 ldrb r1, [r4, 0x1] adds r0, r5, 0 bl sub_8083060 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80819D4 thumb_func_start sub_80819F0 sub_80819F0: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 movs r2, 0x1 bl sub_8082FA8 ldrb r1, [r4, 0x1] adds r0, r5, 0 bl sub_80830B4 ldrb r1, [r4, 0x2] adds r0, r5, 0 bl sub_80830B4 ldrb r1, [r4, 0x3] adds r0, r5, 0 bl sub_8083060 ldrb r1, [r4, 0x4] adds r0, r5, 0 bl sub_8083060 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80819F0 thumb_func_start sub_8081A24 sub_8081A24: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 movs r2, 0x1 bl sub_8082FA8 ldr r1, [r4, 0x4] adds r0, r5, 0 bl sub_8083078 ldrb r1, [r4, 0x8] adds r0, r5, 0 bl sub_8083060 ldrb r1, [r4, 0x9] adds r0, r5, 0 bl sub_8083060 ldrb r1, [r4, 0xA] adds r0, r5, 0 bl sub_8083060 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8081A24 thumb_func_start sub_8081A58 sub_8081A58: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 movs r2, 0x1 bl sub_8082FA8 ldrb r1, [r4, 0x1] adds r0, r5, 0 bl sub_8083060 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8081A58 thumb_func_start sub_8081A74 sub_8081A74: push {lr} movs r2, 0x1 bl sub_8082FA8 pop {r0} bx r0 thumb_func_end sub_8081A74 thumb_func_start sub_8081A80 sub_8081A80: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 movs r2, 0x1 bl sub_8082FA8 ldrb r1, [r4, 0x1] adds r0, r5, 0 bl sub_8083060 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8081A80 thumb_func_start sub_8081A9C sub_8081A9C: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 movs r2, 0x1 bl sub_8082FA8 ldrb r1, [r4, 0x1] adds r0, r5, 0 bl sub_8083060 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8081A9C thumb_func_start sub_8081AB8 sub_8081AB8: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 movs r2, 0x1 bl sub_8082FA8 ldrb r1, [r4, 0x1] adds r0, r5, 0 bl sub_8083060 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8081AB8 thumb_func_start sub_8081AD4 sub_8081AD4: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 ldrb r1, [r4] bl sub_8083060 ldrb r1, [r4, 0x1] adds r0, r5, 0 bl sub_8083060 adds r1, r4, 0x2 adds r0, r5, 0 movs r2, 0x2 bl sub_8082FA8 ldrb r1, [r4, 0x4] adds r0, r5, 0 bl sub_8083060 ldrb r1, [r4, 0x5] adds r0, r5, 0 bl sub_8083060 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8081AD4 thumb_func_start sub_8081B08 sub_8081B08: push {r4-r7,lr} adds r6, r0, 0 adds r7, r1, 0 adds r4, r7, 0 movs r5, 0x3 _08081B12: adds r0, r6, 0 adds r1, r4, 0 bl sub_8081AD4 adds r4, 0x8 subs r5, 0x1 cmp r5, 0 bge _08081B12 adds r0, r7, 0 adds r0, 0x20 ldrb r1, [r0] adds r0, r6, 0 bl sub_8083060 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8081B08 thumb_func_start sub_8081B34 sub_8081B34: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 movs r0, 0 ldrsh r1, [r4, r0] adds r0, r5, 0 bl sub_8083048 movs r0, 0x2 ldrsh r1, [r4, r0] adds r0, r5, 0 bl sub_8083048 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8081B34 thumb_func_start sub_8081B54 sub_8081B54: push {lr} movs r2, 0x3 bl sub_8082FA8 pop {r0} bx r0 thumb_func_end sub_8081B54 thumb_func_start sub_8081B60 sub_8081B60: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 ldrh r1, [r4] bl sub_8083030 ldrh r1, [r4, 0x4] adds r0, r5, 0 bl sub_8083030 adds r1, r4, 0 adds r1, 0x9 adds r0, r5, 0 movs r2, 0x1 bl sub_8082FA8 adds r4, 0xE adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x1 bl sub_8082FA8 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8081B60 thumb_func_start sub_8081B94 sub_8081B94: push {r4-r6,lr} adds r6, r0, 0 adds r5, r1, 0 movs r2, 0x1 bl sub_8082FA8 adds r1, r5, 0x1 adds r0, r6, 0 movs r2, 0x1 bl sub_8082FA8 movs r4, 0 _08081BAC: adds r0, r5, 0x3 adds r0, r4 ldrb r1, [r0] adds r0, r6, 0 bl sub_8083060 adds r0, r5, 0 adds r0, 0xB adds r0, r4 ldrb r1, [r0] adds r0, r6, 0 bl sub_8083060 adds r4, 0x1 cmp r4, 0x7 ble _08081BAC ldrb r1, [r5, 0x2] adds r0, r6, 0 bl sub_8083060 ldrb r1, [r5, 0x13] adds r0, r6, 0 bl sub_8083060 ldrb r1, [r5, 0x14] adds r0, r6, 0 bl sub_8083060 ldrb r1, [r5, 0x15] adds r0, r6, 0 bl sub_80830B4 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8081B94 thumb_func_start sub_8081BF4 sub_8081BF4: push {lr} sub sp, 0x10 adds r3, r0, 0 adds r2, r1, 0 mov r0, sp adds r1, r3, 0 bl sub_8082FD4 add r1, sp, 0xC mov r0, sp movs r2, 0x4 bl sub_8082FE0 mov r0, sp bl sub_8081C50 mov r0, sp bl sub_8081C7C mov r0, sp bl sub_8081F2C mov r0, sp bl sub_808201C mov r0, sp bl sub_8082060 mov r0, sp bl sub_80820D8 mov r0, sp bl sub_808217C ldr r1, _08081C4C mov r0, sp bl sub_8083018 mov r0, sp bl nullsub_98 add sp, 0x10 pop {r0} bx r0 .align 2, 0 _08081C4C: .4byte gUnknown_81071D4 thumb_func_end sub_8081BF4 thumb_func_start sub_8081C50 sub_8081C50: push {r4,lr} adds r4, r0, 0 ldr r1, _08081C70 bl sub_8083018 ldr r0, _08081C74 ldr r1, [r0] ldr r0, _08081C78 adds r1, r0 adds r0, r4, 0 movs r2, 0x58 bl sub_8082FE0 pop {r4} pop {r0} bx r0 .align 2, 0 _08081C70: .4byte gUnknown_81071E0 _08081C74: .4byte gUnknown_203B418 _08081C78: .4byte 0x00000644 thumb_func_end sub_8081C50 thumb_func_start sub_8081C7C sub_8081C7C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r7, r0, 0 ldr r1, _08081E20 bl sub_8083018 adds r0, r7, 0 bl sub_80831DC ldr r4, _08081E24 ldr r1, [r4] ldr r2, _08081E28 adds r1, r2 strb r0, [r1] adds r0, r7, 0 bl sub_80831DC ldr r1, [r4] ldr r3, _08081E2C adds r1, r3 strb r0, [r1] adds r0, r7, 0 bl sub_80831DC ldr r1, [r4] ldr r2, _08081E30 adds r1, r2 strb r0, [r1] adds r0, r7, 0 bl sub_80831DC ldr r1, [r4] ldr r3, _08081E34 adds r1, r3 strb r0, [r1] adds r0, r7, 0 bl sub_8083188 ldr r1, [r4] ldr r2, _08081E38 adds r1, r2 strb r0, [r1] adds r0, r7, 0 bl sub_8083188 ldr r1, [r4] ldr r3, _08081E3C adds r1, r3 strb r0, [r1] adds r0, r7, 0 bl sub_8083170 ldr r1, [r4] ldr r2, _08081E40 adds r1, r2 strh r0, [r1] adds r0, r7, 0 bl sub_8083170 ldr r1, [r4] ldr r3, _08081E44 adds r1, r3 strh r0, [r1] adds r0, r7, 0 bl sub_8083170 ldr r1, [r4] ldr r2, _08081E48 adds r1, r2 strh r0, [r1] adds r0, r7, 0 bl sub_8083170 ldr r1, [r4] ldr r3, _08081E4C adds r1, r3 strh r0, [r1] adds r0, r7, 0 bl sub_8083170 ldr r1, [r4] ldr r2, _08081E50 adds r1, r2 strh r0, [r1] movs r1, 0 mov r9, r4 _08081D2E: lsls r0, r1, 2 adds r3, r1, 0x1 mov r8, r3 adds r0, r1 lsls r0, 2 adds r0, r1 lsls r0, 6 ldr r1, _08081E54 adds r6, r0, r1 movs r5, 0 movs r4, 0x37 _08081D44: mov r2, r9 ldr r1, [r2] adds r1, r6 adds r1, r5 adds r0, r7, 0 bl sub_8081E7C adds r5, 0x18 subs r4, 0x1 cmp r4, 0 bge _08081D44 mov r1, r8 cmp r1, 0x1F ble _08081D2E ldr r4, _08081E24 ldr r1, [r4] ldr r3, _08081E58 adds r1, r3 adds r0, r7, 0 bl sub_80831F8 ldr r1, [r4] ldr r0, _08081E5C adds r1, r0 adds r0, r7, 0 bl sub_80831F8 ldr r6, _08081E60 movs r5, 0x7 _08081D7E: ldr r1, [r4] adds r1, r6 adds r0, r7, 0 bl sub_80831F8 adds r6, 0x4 subs r5, 0x1 cmp r5, 0 bge _08081D7E ldr r4, _08081E24 ldr r1, [r4] ldr r2, _08081E64 adds r1, r2 adds r0, r7, 0 bl sub_8083220 ldr r1, [r4] ldr r3, _08081E68 adds r1, r3 adds r0, r7, 0 bl sub_8083220 ldr r1, [r4] ldr r0, _08081E6C adds r1, r0 adds r0, r7, 0 bl sub_8083260 movs r1, 0 mov r10, r4 _08081DBA: movs r4, 0 adds r2, r1, 0x1 mov r8, r2 lsls r0, r1, 1 lsls r3, r1, 3 mov r9, r3 adds r0, r1 lsls r0, 6 ldr r1, _08081E70 adds r6, r0, r1 movs r5, 0 _08081DD0: mov r2, r10 ldr r1, [r2] adds r1, r6 adds r1, r5 adds r0, r7, 0 bl sub_8081E7C adds r0, r7, 0 bl sub_8083188 mov r3, r10 ldr r1, [r3] mov r3, r9 adds r2, r4, r3 ldr r3, _08081E74 adds r1, r3 adds r1, r2 strb r0, [r1] adds r5, 0x18 adds r4, 0x1 cmp r4, 0x7 ble _08081DD0 mov r1, r8 cmp r1, 0x7 ble _08081DBA ldr r0, _08081E24 ldr r1, [r0] ldr r0, _08081E78 adds r1, r0 adds r0, r7, 0 bl sub_8081EC0 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08081E20: .4byte gUnknown_81071E0 _08081E24: .4byte gUnknown_203B418 _08081E28: .4byte 0x00003a08 _08081E2C: .4byte 0x00003a09 _08081E30: .4byte 0x00003a0a _08081E34: .4byte 0x00003a0b _08081E38: .4byte 0x00003a0c _08081E3C: .4byte 0x00003a0d _08081E40: .4byte 0x00003a0e _08081E44: .4byte 0x00003a10 _08081E48: .4byte 0x00003a12 _08081E4C: .4byte 0x00003a14 _08081E50: .4byte 0x00003a16 _08081E54: .4byte 0x00003a18 _08081E58: .4byte 0x0000e218 _08081E5C: .4byte 0x0000e21c _08081E60: .4byte 0x0000e220 _08081E64: .4byte 0x0000e240 _08081E68: .4byte 0x0000e250 _08081E6C: .4byte 0x0000e260 _08081E70: .4byte 0x0000e27c _08081E74: .4byte 0x0000e87c _08081E78: .4byte 0x0000e264 thumb_func_end sub_8081C7C thumb_func_start sub_8081E7C sub_8081E7C: push {r4-r6,lr} adds r5, r0, 0 adds r4, r1, 0 adds r0, r4, 0 movs r1, 0 movs r2, 0x18 bl memset adds r0, r5, 0 bl sub_8083158 movs r6, 0 strh r0, [r4] adds r0, r5, 0 bl sub_8083158 strh r0, [r4, 0x4] adds r1, r4, 0 adds r1, 0x9 adds r0, r5, 0 movs r2, 0x1 bl sub_8082FE0 adds r1, r4, 0 adds r1, 0xE adds r0, r5, 0 movs r2, 0x1 bl sub_8082FE0 str r6, [r4, 0x10] str r6, [r4, 0x14] pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8081E7C thumb_func_start sub_8081EC0 sub_8081EC0: push {r4-r6,lr} adds r6, r0, 0 adds r5, r1, 0 adds r0, r5, 0 movs r1, 0 movs r2, 0x18 bl memset adds r0, r6, 0 adds r1, r5, 0 movs r2, 0x1 bl sub_8082FE0 adds r1, r5, 0x1 adds r0, r6, 0 movs r2, 0x1 bl sub_8082FE0 movs r4, 0 _08081EE6: adds r0, r6, 0 bl sub_8083188 adds r1, r5, 0x3 adds r1, r4 strb r0, [r1] adds r0, r6, 0 bl sub_8083188 adds r1, r5, 0 adds r1, 0xB adds r1, r4 strb r0, [r1] adds r4, 0x1 cmp r4, 0x7 ble _08081EE6 adds r0, r6, 0 bl sub_8083188 strb r0, [r5, 0x2] adds r0, r6, 0 bl sub_8083188 strb r0, [r5, 0x13] adds r0, r6, 0 bl sub_8083188 strb r0, [r5, 0x14] adds r0, r6, 0 bl sub_80831DC strb r0, [r5, 0x15] pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8081EC0 thumb_func_start sub_8081F2C sub_8081F2C: push {r4,r5,lr} adds r5, r0, 0 ldr r1, _08081FE4 bl sub_8083018 ldr r4, _08081FE8 ldr r0, [r4] ldr r1, _08081FEC adds r0, r1 movs r1, 0 str r1, [r0] adds r0, r5, 0 bl sub_8083188 ldr r1, [r4] ldr r2, _08081FF0 adds r1, r2 strb r0, [r1] adds r0, r5, 0 bl sub_8083188 ldr r1, [r4] ldr r2, _08081FF4 adds r1, r2 strb r0, [r1] adds r0, r5, 0 bl sub_80831DC ldr r1, [r4] ldr r2, _08081FF8 adds r1, r2 strb r0, [r1] adds r0, r5, 0 bl sub_80831DC ldr r1, [r4] ldr r2, _08081FFC adds r1, r2 strb r0, [r1] adds r0, r5, 0 bl sub_80831DC ldr r1, [r4] ldr r2, _08082000 adds r1, r2 strb r0, [r1] adds r0, r5, 0 bl sub_80831DC ldr r1, [r4] ldr r2, _08082004 adds r1, r2 strb r0, [r1] adds r0, r5, 0 bl sub_80831DC ldr r1, [r4] ldr r2, _08082008 adds r1, r2 strb r0, [r1] adds r0, r5, 0 bl sub_80831DC ldr r1, [r4] ldr r2, _0808200C adds r1, r2 strb r0, [r1] adds r0, r5, 0 bl sub_80831DC ldr r1, [r4] ldr r2, _08082010 adds r1, r2 strb r0, [r1] adds r0, r5, 0 bl sub_80831DC ldr r1, [r4] ldr r2, _08082014 adds r1, r2 strb r0, [r1] adds r0, r5, 0 bl sub_80831DC ldr r1, [r4] ldr r2, _08082018 adds r1, r2 strb r0, [r1] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08081FE4: .4byte gUnknown_81071E0 _08081FE8: .4byte gUnknown_203B418 _08081FEC: .4byte 0x000181f8 _08081FF0: .4byte 0x00018208 _08081FF4: .4byte 0x00018209 _08081FF8: .4byte 0x0001820a _08081FFC: .4byte 0x0001820b _08082000: .4byte 0x0001820c _08082004: .4byte 0x0001820d _08082008: .4byte 0x0001820e _0808200C: .4byte 0x0001820f _08082010: .4byte 0x00018210 _08082014: .4byte 0x00018211 _08082018: .4byte 0x00018213 thumb_func_end sub_8081F2C thumb_func_start sub_808201C sub_808201C: push {r4,r5,lr} adds r5, r0, 0 bl sub_8083170 ldr r4, _08082050 ldr r1, [r4] ldr r2, _08082054 adds r1, r2 strh r0, [r1] adds r0, r5, 0 bl sub_8083170 ldr r1, [r4] ldr r2, _08082058 adds r1, r2 strh r0, [r1] adds r0, r5, 0 bl sub_8083170 ldr r1, [r4] ldr r2, _0808205C adds r1, r2 strh r0, [r1] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08082050: .4byte gUnknown_203B418 _08082054: .4byte 0x0001ced6 _08082058: .4byte 0x0001ced8 _0808205C: .4byte 0x0001ceda thumb_func_end sub_808201C thumb_func_start sub_8082060 sub_8082060: push {r4-r7,lr} sub sp, 0x8 adds r5, r0, 0 ldr r1, _080820A4 bl sub_8083018 add r4, sp, 0x4 mov r7, sp movs r6, 0x3F _08082072: adds r0, r5, 0 mov r1, sp bl sub_80820A8 adds r0, r5, 0 adds r1, r4, 0 bl sub_80831F8 ldrb r1, [r7] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08082096 adds r0, r4, 0 mov r1, sp movs r2, 0 bl sub_80460F8 _08082096: subs r6, 0x1 cmp r6, 0 bge _08082072 add sp, 0x8 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080820A4: .4byte gUnknown_81071E0 thumb_func_end sub_8082060 thumb_func_start sub_80820A8 sub_80820A8: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 movs r0, 0 str r0, [r4] adds r0, r5, 0 movs r2, 0x1 bl sub_8082FE0 adds r1, r4, 0x1 adds r0, r5, 0 movs r2, 0x1 bl sub_8082FE0 adds r4, 0x2 adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x1 bl sub_8082FE0 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80820A8 thumb_func_start sub_80820D8 sub_80820D8: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 adds r5, r0, 0 ldr r1, _08082178 bl sub_8083018 movs r0, 0x1 add r0, sp mov r9, r0 add r1, sp, 0x4 mov r8, r1 mov r7, sp movs r2, 0x3F mov r10, r2 _080820FC: movs r0, 0x6 strb r0, [r7] movs r0, 0 mov r3, sp strb r0, [r3, 0x1] adds r0, r5, 0 mov r1, sp movs r2, 0x1 bl sub_8082FE0 adds r0, r5, 0 mov r1, sp adds r1, 0x1 movs r2, 0x1 bl sub_8082FE0 adds r0, r5, 0 bl sub_80831DC lsls r0, 24 lsrs r6, r0, 24 adds r0, r5, 0 add r1, sp, 0x4 bl sub_80831F8 ldrb r0, [r7] cmp r0, 0xFF beq _0808215C mov r1, r8 movs r2, 0 ldrsh r0, [r1, r2] mov r3, sp movs r2, 0x6 ldrsh r1, [r3, r2] bl sub_8049590 adds r4, r0, 0 ldrb r0, [r7] mov r3, r9 ldrb r2, [r3] mov r1, r8 bl sub_8045684 cmp r0, 0 beq _0808215C str r0, [r4, 0x14] adds r0, 0x20 strb r6, [r0] _0808215C: movs r0, 0x1 negs r0, r0 add r10, r0 mov r1, r10 cmp r1, 0 bge _080820FC add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08082178: .4byte gUnknown_81071E0 thumb_func_end sub_80820D8 thumb_func_start sub_808217C sub_808217C: push {r4,r5,lr} adds r5, r0, 0 ldr r1, _08082250 bl sub_8083018 adds r0, r5, 0 bl sub_80831A0 ldr r4, _08082254 ldr r1, [r4] ldr r2, _08082258 adds r1, r2 str r0, [r1] adds r0, r5, 0 bl sub_80831A0 ldr r1, [r4] ldr r2, _0808225C adds r1, r2 str r0, [r1] adds r0, r5, 0 bl sub_80831DC ldr r1, [r4] ldr r2, _08082260 adds r1, r2 strb r0, [r1] adds r0, r5, 0 bl sub_80831DC ldr r1, [r4] ldr r2, _08082264 adds r1, r2 strb r0, [r1] adds r0, r5, 0 bl sub_80831DC ldr r1, [r4] ldr r2, _08082268 adds r1, r2 strb r0, [r1] adds r0, r5, 0 bl sub_80831DC ldr r1, [r4] ldr r2, _0808226C adds r1, r2 strb r0, [r1] adds r0, r5, 0 bl sub_80831DC ldr r1, [r4] ldr r2, _08082270 adds r1, r2 strb r0, [r1] adds r0, r5, 0 bl sub_80831DC ldr r1, [r4] ldr r2, _08082274 adds r1, r2 strb r0, [r1] adds r0, r5, 0 bl sub_80831DC ldr r1, [r4] ldr r2, _08082278 adds r1, r2 strb r0, [r1] adds r0, r5, 0 bl sub_80831DC ldr r1, [r4] ldr r2, _0808227C adds r1, r2 strb r0, [r1] adds r0, r5, 0 bl sub_8083158 ldr r1, [r4] movs r2, 0xE0 lsls r2, 6 adds r1, r2 strh r0, [r1] movs r4, 0 _08082226: adds r0, r5, 0 movs r1, 0x1 adds r2, r4, 0 bl sub_8082280 adds r4, 0x1 cmp r4, 0x3 ble _08082226 movs r4, 0 _08082238: adds r0, r5, 0 movs r1, 0 adds r2, r4, 0 bl sub_8082280 adds r4, 0x1 cmp r4, 0xF ble _08082238 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08082250: .4byte gUnknown_81071E0 _08082254: .4byte gUnknown_203B418 _08082258: .4byte 0x000037f0 _0808225C: .4byte 0x000037f4 _08082260: .4byte 0x000037f8 _08082264: .4byte 0x000037f9 _08082268: .4byte 0x000037fa _0808226C: .4byte 0x000037fb _08082270: .4byte 0x000037fc _08082274: .4byte 0x000037fd _08082278: .4byte 0x000037fe _0808227C: .4byte 0x000037ff thumb_func_end sub_808217C thumb_func_start sub_8082280 sub_8082280: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r4, _0808266C add sp, r4 adds r5, r0, 0 str r2, [sp, 0x210] lsls r1, 24 lsrs r1, 24 str r1, [sp, 0x20C] movs r2, 0x82 lsls r2, 2 mov r0, sp movs r1, 0 bl memset adds r0, r5, 0 bl sub_8083188 adds r0, r5, 0 bl sub_8083188 adds r0, r5, 0 bl sub_8083188 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x214] add r4, sp, 0x208 adds r0, r5, 0 adds r1, r4, 0 bl sub_80831F8 adds r0, r5, 0 bl sub_80831DC lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x218] adds r0, r5, 0 bl sub_8083158 lsls r0, 16 lsrs r0, 16 str r0, [sp, 0x21C] ldr r1, _08082670 movs r0, 0 str r0, [r1] adds r0, r5, 0 bl sub_8083158 mov r1, sp strh r0, [r1] adds r0, r5, 0 bl sub_8082BC0 mov r1, sp strh r0, [r1, 0x4] adds r0, r5, 0 bl sub_8082BC0 mov r1, sp strh r0, [r1, 0x2] adds r0, r5, 0 bl sub_80831DC mov r1, sp strb r0, [r1, 0x6] adds r0, r5, 0 bl sub_80831DC mov r1, sp strb r0, [r1, 0x7] adds r0, r5, 0 bl sub_8083188 mov r1, sp strb r0, [r1, 0x8] adds r0, r5, 0 bl sub_8083188 mov r1, sp strb r0, [r1, 0x9] adds r0, r5, 0 bl sub_8083188 mov r1, sp strb r0, [r1, 0xA] add r1, sp, 0x40 adds r0, r5, 0 bl sub_8082F64 adds r0, r5, 0 bl sub_8083170 mov r1, sp strh r0, [r1, 0xC] adds r0, r5, 0 bl sub_8083170 mov r1, sp strh r0, [r1, 0xE] adds r0, r5, 0 bl sub_8083170 mov r1, sp strh r0, [r1, 0x10] adds r0, r5, 0 bl sub_8083170 mov r1, sp strh r0, [r1, 0x12] adds r0, r5, 0 bl sub_8083188 mov r1, sp strb r0, [r1, 0x14] adds r0, r5, 0 bl sub_8083188 mov r1, sp strb r0, [r1, 0x15] adds r0, r5, 0 bl sub_8083188 mov r1, sp strb r0, [r1, 0x16] adds r0, r5, 0 bl sub_8083188 mov r1, sp strb r0, [r1, 0x17] adds r0, r5, 0 bl sub_80831A0 str r0, [sp, 0x18] adds r0, r5, 0 bl sub_8083170 mov r1, sp strh r0, [r1, 0x1C] adds r0, r5, 0 bl sub_8083170 mov r1, sp strh r0, [r1, 0x1E] adds r0, r5, 0 bl sub_8083170 mov r1, sp strh r0, [r1, 0x20] adds r0, r5, 0 bl sub_8083170 mov r1, sp strh r0, [r1, 0x22] adds r0, r5, 0 bl sub_8083170 mov r1, sp strh r0, [r1, 0x24] adds r0, r5, 0 bl sub_8083170 mov r1, sp strh r0, [r1, 0x26] adds r0, r5, 0 bl sub_8083170 mov r1, sp strh r0, [r1, 0x28] adds r0, r5, 0 bl sub_80831C8 str r0, [sp, 0x2C] adds r0, r5, 0 bl sub_80831C8 str r0, [sp, 0x30] adds r0, r5, 0 bl sub_80831C8 str r0, [sp, 0x34] adds r0, r5, 0 bl sub_80831C8 str r0, [sp, 0x38] add r1, sp, 0x44 adds r0, r5, 0 bl sub_8082CBC adds r0, r5, 0 bl sub_8082BFC add r1, sp, 0x5C strb r0, [r1] adds r0, r5, 0 bl sub_8082BFC mov r1, sp adds r1, 0x5D strb r0, [r1] adds r0, r5, 0 bl sub_8082C18 mov r1, sp adds r1, 0x5E strb r0, [r1] adds r0, r5, 0 bl sub_8082C18 mov r1, sp adds r1, 0x5F strb r0, [r1] add r1, sp, 0x60 adds r0, r5, 0 bl sub_80820A8 adds r0, r5, 0 bl sub_8082BE0 add r1, sp, 0x64 strb r0, [r1] add r7, sp, 0x78 add r0, sp, 0x8C mov r8, r0 add r1, sp, 0x90 mov r9, r1 add r2, sp, 0x94 mov r10, r2 mov r3, sp adds r3, 0x3C str r3, [sp, 0x270] mov r0, sp adds r0, 0x98 str r0, [sp, 0x274] mov r1, sp adds r1, 0x9C str r1, [sp, 0x278] mov r2, sp adds r2, 0xA0 str r2, [sp, 0x27C] adds r3, 0x6C str r3, [sp, 0x284] adds r0, 0x14 str r0, [sp, 0x288] adds r1, 0x14 str r1, [sp, 0x28C] adds r2, 0x1C str r2, [sp, 0x290] adds r3, 0x18 str r3, [sp, 0x294] adds r0, 0x18 str r0, [sp, 0x298] adds r1, 0x18 str r1, [sp, 0x29C] adds r2, 0x14 str r2, [sp, 0x220] adds r3, 0x1C str r3, [sp, 0x224] adds r0, 0x1C str r0, [sp, 0x228] adds r1, 0x1C str r1, [sp, 0x22C] adds r2, 0x18 str r2, [sp, 0x230] adds r3, 0x10 str r3, [sp, 0x234] adds r0, 0x10 str r0, [sp, 0x238] adds r1, 0xD str r1, [sp, 0x23C] adds r2, 0xA str r2, [sp, 0x240] adds r3, 0x7 str r3, [sp, 0x244] adds r0, 0x4 str r0, [sp, 0x248] adds r1, 0xA str r1, [sp, 0x25C] adds r2, 0x3 str r2, [sp, 0x24C] adds r3, 0x3 str r3, [sp, 0x250] adds r0, 0x3 str r0, [sp, 0x254] subs r1, 0x1 str r1, [sp, 0x258] adds r2, 0x7 str r2, [sp, 0x260] adds r3, 0x7 str r3, [sp, 0x264] adds r0, 0x7 str r0, [sp, 0x268] adds r1, 0x5 str r1, [sp, 0x26C] subs r2, 0x58 str r2, [sp, 0x280] add r4, sp, 0x68 movs r6, 0x3 _080824DC: adds r0, r5, 0 adds r1, r4, 0 bl sub_80831F8 adds r4, 0x4 subs r6, 0x1 cmp r6, 0 bge _080824DC adds r0, r5, 0 adds r1, r7, 0 bl sub_8082CE4 adds r0, r5, 0 mov r1, r8 bl sub_8082D28 adds r0, r5, 0 mov r1, r9 bl sub_8082D28 adds r0, r5, 0 bl sub_8082C84 movs r4, 0 mov r3, r10 strb r0, [r3] adds r0, r5, 0 ldr r1, [sp, 0x270] bl sub_8082F80 adds r0, r5, 0 bl sub_80831A0 ldr r1, [sp, 0x274] str r0, [r1] adds r0, r5, 0 bl sub_80831A0 ldr r2, [sp, 0x278] str r0, [r2] adds r0, r5, 0 bl sub_80831A0 ldr r3, [sp, 0x27C] str r0, [r3] adds r0, r5, 0 ldr r1, [sp, 0x284] bl sub_8082D34 adds r0, r5, 0 ldr r1, [sp, 0x288] bl sub_8082D50 adds r0, r5, 0 ldr r1, [sp, 0x28C] bl sub_8082D7C adds r0, r5, 0 ldr r1, [sp, 0x290] bl sub_8082DA8 adds r0, r5, 0 ldr r1, [sp, 0x294] bl sub_8082DC4 adds r0, r5, 0 ldr r1, [sp, 0x298] bl sub_8082DE8 adds r0, r5, 0 ldr r1, [sp, 0x29C] bl sub_8082E04 adds r0, r5, 0 ldr r1, [sp, 0x220] bl sub_8082E38 adds r0, r5, 0 ldr r1, [sp, 0x224] bl sub_8082E6C adds r0, r5, 0 ldr r1, [sp, 0x228] bl sub_8082E88 adds r0, r5, 0 ldr r1, [sp, 0x22C] bl sub_8082E94 adds r0, r5, 0 ldr r1, [sp, 0x230] bl sub_8082EB0 adds r0, r5, 0 ldr r1, [sp, 0x234] bl sub_8082ECC adds r0, r5, 0 bl sub_80831DC ldr r1, [sp, 0x238] strb r0, [r1] adds r0, r5, 0 bl sub_80831DC ldr r2, [sp, 0x23C] strb r0, [r2] adds r0, r5, 0 bl sub_80831DC ldr r3, [sp, 0x240] strb r0, [r3] adds r0, r5, 0 bl sub_80831DC ldr r1, [sp, 0x244] strb r0, [r1] adds r0, r5, 0 bl sub_80831DC ldr r2, [sp, 0x248] strb r0, [r2] adds r0, r5, 0 bl sub_8083188 ldr r3, [sp, 0x25C] strb r0, [r3] adds r0, r5, 0 bl sub_80831DC ldr r1, [sp, 0x24C] strb r0, [r1] adds r0, r5, 0 bl sub_80831DC ldr r2, [sp, 0x250] strb r0, [r2] adds r0, r5, 0 bl sub_80831DC ldr r3, [sp, 0x254] strb r0, [r3] adds r0, r5, 0 bl sub_8083188 ldr r1, [sp, 0x258] strb r0, [r1] adds r0, r5, 0 bl sub_80831DC ldr r2, [sp, 0x260] strb r0, [r2] adds r0, r5, 0 bl sub_8083188 ldr r3, [sp, 0x264] strb r0, [r3] adds r0, r5, 0 bl sub_8083188 ldr r1, [sp, 0x268] strb r0, [r1] adds r0, r5, 0 bl sub_8082C34 ldr r2, [sp, 0x26C] strb r0, [r2] adds r0, r5, 0 bl sub_8082C50 add r1, sp, 0x100 strb r0, [r1] adds r0, r5, 0 bl sub_8082C6C add r1, sp, 0x104 str r0, [r1] add r1, sp, 0x108 adds r0, r5, 0 movs r2, 0x5 bl sub_8083288 ldr r1, _08082674 add r1, sp adds r0, r5, 0 movs r2, 0x5 bl sub_8083288 adds r0, r5, 0 bl sub_8083188 movs r1, 0x89 lsls r1, 1 add r1, sp strb r0, [r1] adds r0, r5, 0 bl sub_8083188 b _08082678 .align 2, 0 _0808266C: .4byte 0xfffffd60 _08082670: .4byte gUnknown_203B450 _08082674: .4byte 0x0000010d _08082678: ldr r1, _08082818 add r1, sp strb r0, [r1] adds r0, r5, 0 bl sub_8083188 add r1, sp, 0x114 lsls r0, 24 lsrs r0, 24 str r0, [r1] add r1, sp, 0x118 adds r0, r5, 0 bl sub_8082F1C add r1, sp, 0x13C adds r0, r5, 0 bl sub_8082F48 add r1, sp, 0x140 adds r0, r5, 0 bl sub_8082F48 adds r0, r5, 0 bl sub_80831DC add r1, sp, 0x144 strb r0, [r1] adds r0, r5, 0 bl sub_80831DC ldr r1, _0808281C add r1, sp strb r0, [r1] adds r0, r5, 0 bl sub_80831DC ldr r1, _08082820 add r1, sp strb r0, [r1] adds r0, r5, 0 bl sub_80831DC movs r1, 0xA3 lsls r1, 1 add r1, sp strb r0, [r1] adds r0, r5, 0 bl sub_80831DC add r1, sp, 0x148 strb r0, [r1] adds r0, r5, 0 bl sub_80831DC ldr r1, _08082824 add r1, sp strb r0, [r1] adds r0, r5, 0 bl sub_80831DC movs r1, 0xA5 lsls r1, 1 add r1, sp strb r0, [r1] adds r0, r5, 0 bl sub_80831DC ldr r1, _08082828 add r1, sp strb r0, [r1] adds r0, r5, 0 bl sub_80831DC add r1, sp, 0x14C strb r0, [r1] adds r0, r5, 0 bl sub_8083158 movs r1, 0xA7 lsls r1, 1 add r1, sp strh r0, [r1] adds r0, r5, 0 bl sub_8083158 add r1, sp, 0x150 strh r0, [r1] adds r0, r5, 0 bl sub_80831DC movs r1, 0xA9 lsls r1, 1 add r1, sp strb r0, [r1] adds r0, r5, 0 bl sub_8083188 ldr r1, _0808282C add r1, sp strb r0, [r1] adds r0, r5, 0 bl sub_80831DC add r1, sp, 0x154 strb r0, [r1] adds r0, r5, 0 bl sub_80831DC ldr r1, _08082830 add r1, sp strb r0, [r1] adds r0, r5, 0 bl sub_80831DC movs r1, 0xAB lsls r1, 1 add r1, sp strb r0, [r1] adds r0, r5, 0 bl sub_8083188 add r1, sp, 0x164 strb r0, [r1] adds r0, r5, 0 bl sub_8083188 ldr r1, _08082834 add r1, sp strb r0, [r1] adds r0, r5, 0 bl sub_8083188 movs r1, 0xB3 lsls r1, 1 add r1, sp strb r0, [r1] adds r0, r5, 0 bl sub_8083188 ldr r1, _08082838 add r1, sp strb r0, [r1] adds r0, r5, 0 bl sub_8083188 add r1, sp, 0x168 strb r0, [r1] adds r0, r5, 0 bl sub_8083188 ldr r1, _0808283C add r1, sp strb r0, [r1] add r1, sp, 0x16C adds r0, r5, 0 bl sub_80831F8 adds r0, r5, 0 bl sub_80831C8 add r1, sp, 0x174 str r0, [r1] adds r0, r5, 0 bl sub_8083158 add r1, sp, 0x178 strh r0, [r1] adds r0, r5, 0 bl sub_8083170 add r1, sp, 0x1F8 strh r0, [r1] adds r0, r5, 0 bl sub_8083170 movs r1, 0xFD lsls r1, 1 add r1, sp strh r0, [r1] adds r0, r5, 0 bl sub_80831A0 add r1, sp, 0x1FC str r0, [r1] adds r0, r5, 0 bl sub_8082CA0 ldr r3, [sp, 0x280] strb r0, [r3] ldr r0, _08082840 str r4, [r0] ldr r0, [sp, 0x214] cmp r0, 0 beq _080828BE ldr r1, [sp, 0x20C] cmp r1, 0 beq _08082844 mov r0, sp movs r2, 0x2 ldrsh r0, [r0, r2] mov r1, sp movs r3, 0x4 ldrsh r1, [r1, r3] ldr r2, [sp, 0x210] bl sub_80828E0 b _08082856 .align 2, 0 _08082818: .4byte 0x00000113 _0808281C: .4byte 0x00000145 _08082820: .4byte 0x00000147 _08082824: .4byte 0x00000149 _08082828: .4byte 0x0000014b _0808282C: .4byte 0x00000153 _08082830: .4byte 0x00000155 _08082834: .4byte 0x00000165 _08082838: .4byte 0x00000167 _0808283C: .4byte 0x00000169 _08082840: .4byte gUnknown_203B450 _08082844: mov r0, sp movs r1, 0x2 ldrsh r0, [r0, r1] mov r1, sp movs r2, 0x4 ldrsh r1, [r1, r2] ldr r2, [sp, 0x210] bl sub_8082A08 _08082856: adds r7, r0, 0 cmp r7, 0 beq _080828BE ldr r6, [r7, 0x70] movs r5, 0x82 lsls r5, 2 mov r3, sp adds r4, r3, r5 movs r1, 0 ldrsh r0, [r4, r1] ldr r3, _080828D4 add r3, sp movs r2, 0 ldrsh r1, [r3, r2] bl sub_8049590 ldr r1, [r4] str r1, [r7, 0x8] ldr r1, [r4] str r1, [r7, 0x4] str r7, [r0, 0x10] adds r0, r7, 0 adds r0, 0x20 movs r4, 0 add r1, sp, 0x218 ldrb r1, [r1] strb r1, [r0] add r2, sp, 0x21C ldrh r2, [r2] strh r2, [r7, 0x26] adds r0, r6, 0 mov r1, sp adds r2, r5, 0 bl memcpy ldr r0, _080828D8 str r4, [r0] ldrb r0, [r6, 0x7] cmp r0, 0 beq _080828B0 ldr r0, _080828DC ldrh r1, [r7, 0x4] strh r1, [r0] ldrh r1, [r7, 0x6] strh r1, [r0, 0x2] _080828B0: adds r0, r7, 0 bl sub_807191C adds r0, r7, 0 movs r1, 0 bl sub_804535C _080828BE: movs r3, 0xA8 lsls r3, 2 add sp, r3 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080828D4: .4byte 0x0000020a _080828D8: .4byte gUnknown_203B450 _080828DC: .4byte gUnknown_203B410 thumb_func_end sub_8082280 thumb_func_start sub_80828E0 sub_80828E0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r5, r2, 0 lsls r0, 16 asrs r0, 16 mov r10, r0 lsls r1, 16 asrs r1, 16 mov r8, r1 movs r4, 0x1 negs r4, r4 mov r0, r8 bl sub_808DACC lsls r0, 24 lsrs r6, r0, 24 movs r3, 0 movs r0, 0x6 subs r7, r0, r6 ldr r0, _08082914 mov r9, r0 b _0808291A .align 2, 0 _08082914: .4byte gUnknown_202EE70 _08082918: adds r3, 0x1 _0808291A: cmp r3, r7 bgt _0808293E movs r2, 0 cmp r2, r6 bge _08082938 mov r0, r9 adds r1, r3, r0 b _08082932 _0808292A: adds r1, 0x1 adds r2, 0x1 cmp r2, r6 bge _08082938 _08082932: ldrb r0, [r1] cmp r0, 0 beq _0808292A _08082938: cmp r2, r6 bne _08082918 adds r4, r3, 0 _0808293E: movs r0, 0x1 negs r0, r0 cmp r4, r0 bne _0808294A movs r0, 0 b _080829E6 _0808294A: ldr r2, _080829F4 ldr r0, [r2] lsls r1, r5, 2 ldr r3, _080829F8 adds r0, r3 adds r0, r1 ldr r7, [r0] movs r0, 0x1 mov r9, r0 str r0, [r7] adds r0, r7, 0 adds r0, 0x24 strb r5, [r0] lsls r0, r5, 6 adds r0, r5 lsls r0, 3 ldr r1, _080829FC adds r0, r1 ldr r1, [r2] adds r1, r0 str r1, [r7, 0x70] movs r5, 0 mov r3, r10 strh r3, [r1, 0x2] ldr r0, [r7, 0x70] mov r1, r8 strh r1, [r0, 0x4] ldr r0, [r7, 0x70] strb r5, [r0, 0x6] mov r0, r8 bl sub_80687D0 str r0, [r7, 0x64] lsls r0, r4, 4 adds r0, 0x40 adds r1, r7, 0 adds r1, 0x68 strh r0, [r1] adds r1, 0x2 movs r0, 0x7 strb r0, [r1] adds r0, r7, 0 adds r0, 0x6C strb r5, [r0] adds r1, 0x1 movs r0, 0xFF strb r0, [r1] adds r0, r7, 0 adds r0, 0x6D mov r3, r9 strb r3, [r0] adds r0, 0x2 strb r3, [r0] movs r0, 0 str r0, [r7, 0x1C] bl sub_8045ACC ldr r0, [r7, 0x70] ldr r1, _08082A00 adds r0, r1 strb r4, [r0] ldr r0, [r7, 0x70] movs r3, 0xB4 lsls r3, 1 adds r0, r3 strb r6, [r0] cmp r6, 0 beq _080829E4 ldr r3, _08082A04 movs r2, 0x1 adds r1, r6, 0 _080829D8: adds r0, r4, r3 strb r2, [r0] adds r4, 0x1 subs r1, 0x1 cmp r1, 0 bne _080829D8 _080829E4: adds r0, r7, 0 _080829E6: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080829F4: .4byte gUnknown_203B418 _080829F8: .4byte 0x0001357c _080829FC: .4byte 0x0000069c _08082A00: .4byte 0x00000167 _08082A04: .4byte gUnknown_202EE70 thumb_func_end sub_80828E0 thumb_func_start sub_8082A08 sub_8082A08: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 adds r5, r2, 0 lsls r0, 16 asrs r0, 16 str r0, [sp] lsls r1, 16 asrs r1, 16 mov r9, r1 movs r0, 0x1 negs r0, r0 mov r8, r0 mov r0, r9 bl sub_808DACC lsls r0, 24 lsrs r6, r0, 24 movs r3, 0 movs r0, 0x10 subs r4, r0, r6 ldr r7, _08082A3C b _08082A42 .align 2, 0 _08082A3C: .4byte gUnknown_202EE76 _08082A40: adds r3, 0x1 _08082A42: cmp r3, r4 bgt _08082A64 movs r2, 0 cmp r2, r6 bge _08082A5E adds r1, r3, r7 b _08082A58 _08082A50: adds r1, 0x1 adds r2, 0x1 cmp r2, r6 bge _08082A5E _08082A58: ldrb r0, [r1] cmp r0, 0 beq _08082A50 _08082A5E: cmp r2, r6 bne _08082A40 mov r8, r3 _08082A64: movs r0, 0x1 negs r0, r0 cmp r8, r0 bne _08082A70 movs r0, 0 b _08082B1C _08082A70: ldr r2, _08082B2C ldr r0, [r2] lsls r1, r5, 2 ldr r3, _08082B30 adds r0, r3 adds r0, r1 ldr r7, [r0] movs r4, 0x1 str r4, [r7] adds r0, r7, 0 adds r0, 0x24 movs r1, 0 mov r10, r1 strb r5, [r0] subs r0, 0x2 mov r3, r10 strb r3, [r0] lsls r0, r5, 6 adds r0, r5 lsls r0, 3 ldr r1, _08082B34 adds r0, r1 ldr r1, [r2] adds r1, r0 str r1, [r7, 0x70] movs r5, 0 mov r2, sp ldrh r2, [r2] strh r2, [r1, 0x2] ldr r0, [r7, 0x70] mov r3, r9 strh r3, [r0, 0x4] ldr r0, [r7, 0x70] strb r4, [r0, 0x6] mov r0, r9 bl sub_80687D0 str r0, [r7, 0x64] mov r1, r8 lsls r0, r1, 4 adds r0, 0xA0 adds r1, r7, 0 adds r1, 0x68 strh r0, [r1] adds r1, 0x2 movs r0, 0x7 strb r0, [r1] adds r0, r7, 0 adds r0, 0x6C strb r5, [r0] adds r1, 0x1 movs r0, 0xFF strb r0, [r1] adds r0, r7, 0 adds r0, 0x6D strb r4, [r0] adds r0, 0x2 strb r4, [r0] mov r2, r10 str r2, [r7, 0x1C] ldr r0, [r7, 0x70] ldr r3, _08082B38 adds r0, r3 mov r4, r8 strb r4, [r0] ldr r0, [r7, 0x70] movs r1, 0xB4 lsls r1, 1 adds r0, r1 strb r6, [r0] cmp r6, 0 beq _08082B16 ldr r3, _08082B3C movs r2, 0x1 adds r1, r6, 0 _08082B06: mov r4, r8 adds r0, r4, r3 strb r2, [r0] movs r0, 0x1 add r8, r0 subs r1, 0x1 cmp r1, 0 bne _08082B06 _08082B16: bl sub_8045ACC adds r0, r7, 0 _08082B1C: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08082B2C: .4byte gUnknown_203B418 _08082B30: .4byte 0x0001358c _08082B34: .4byte 0x00000ebc _08082B38: .4byte 0x00000167 _08082B3C: .4byte gUnknown_202EE76 thumb_func_end sub_8082A08 thumb_func_start sub_8082B40 sub_8082B40: push {r4-r6,lr} sub sp, 0x4 movs r6, 0 _08082B46: ldr r0, _08082BB8 ldr r0, [r0] lsls r1, r6, 2 ldr r2, _08082BBC adds r0, r2 adds r0, r1 ldr r5, [r0] adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08082BA8 ldr r4, [r5, 0x70] movs r1, 0x4 ldrsh r0, [r4, r1] bl sub_80687D0 str r0, [r5, 0x64] adds r0, r5, 0 bl sub_806CEBC adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl sub_806CCB4 ldr r0, [r5, 0x4] str r0, [sp] adds r0, r4, 0 adds r0, 0x98 ldr r0, [r0] movs r2, 0x4 ldrsh r1, [r4, r2] mov r2, sp movs r3, 0x3 bl sub_800F8D0 movs r1, 0x4 ldrsh r0, [r5, r1] movs r2, 0x6 ldrsh r1, [r5, r2] bl sub_8049590 ldrb r1, [r0, 0x9] adds r0, r5, 0 adds r0, 0x25 strb r1, [r0] _08082BA8: adds r6, 0x1 cmp r6, 0x13 ble _08082B46 add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08082BB8: .4byte gUnknown_203B418 _08082BBC: .4byte 0x000135cc thumb_func_end sub_8082B40 thumb_func_start sub_8082BC0 sub_8082BC0: push {lr} sub sp, 0x4 mov r2, sp movs r1, 0 strh r1, [r2] mov r1, sp movs r2, 0x2 bl sub_8082FE0 mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] add sp, 0x4 pop {r1} bx r1 thumb_func_end sub_8082BC0 thumb_func_start sub_8082BE0 sub_8082BE0: push {lr} sub sp, 0x4 mov r2, sp movs r1, 0 strb r1, [r2] mov r1, sp movs r2, 0x1 bl sub_8082FE0 mov r0, sp ldrb r0, [r0] add sp, 0x4 pop {r1} bx r1 thumb_func_end sub_8082BE0 thumb_func_start sub_8082BFC sub_8082BFC: push {lr} sub sp, 0x4 mov r2, sp movs r1, 0 strb r1, [r2] mov r1, sp movs r2, 0x1 bl sub_8082FE0 mov r0, sp ldrb r0, [r0] add sp, 0x4 pop {r1} bx r1 thumb_func_end sub_8082BFC thumb_func_start sub_8082C18 sub_8082C18: push {lr} sub sp, 0x4 mov r2, sp movs r1, 0 strb r1, [r2] mov r1, sp movs r2, 0x1 bl sub_8082FE0 mov r0, sp ldrb r0, [r0] add sp, 0x4 pop {r1} bx r1 thumb_func_end sub_8082C18 thumb_func_start sub_8082C34 sub_8082C34: push {lr} sub sp, 0x4 mov r2, sp movs r1, 0 strb r1, [r2] mov r1, sp movs r2, 0x1 bl sub_8082FE0 mov r0, sp ldrb r0, [r0] add sp, 0x4 pop {r1} bx r1 thumb_func_end sub_8082C34 thumb_func_start sub_8082C50 sub_8082C50: push {lr} sub sp, 0x4 mov r2, sp movs r1, 0 strb r1, [r2] mov r1, sp movs r2, 0x1 bl sub_8082FE0 mov r0, sp ldrb r0, [r0] add sp, 0x4 pop {r1} bx r1 thumb_func_end sub_8082C50 thumb_func_start sub_8082C6C sub_8082C6C: push {lr} sub sp, 0x4 movs r1, 0 str r1, [sp] mov r1, sp movs r2, 0x4 bl sub_8082FE0 ldr r0, [sp] add sp, 0x4 pop {r1} bx r1 thumb_func_end sub_8082C6C thumb_func_start sub_8082C84 sub_8082C84: push {lr} sub sp, 0x4 mov r2, sp movs r1, 0 strb r1, [r2] mov r1, sp movs r2, 0x1 bl sub_8082FE0 mov r0, sp ldrb r0, [r0] add sp, 0x4 pop {r1} bx r1 thumb_func_end sub_8082C84 thumb_func_start sub_8082CA0 sub_8082CA0: push {lr} sub sp, 0x4 mov r2, sp movs r1, 0 strb r1, [r2] mov r1, sp movs r2, 0x1 bl sub_8082FE0 mov r0, sp ldrb r0, [r0] add sp, 0x4 pop {r1} bx r1 thumb_func_end sub_8082CA0 thumb_func_start sub_8082CBC sub_8082CBC: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 movs r0, 0 strh r0, [r4] adds r1, r4, 0x2 adds r0, r5, 0 movs r2, 0x1 bl sub_8082FE0 movs r0, 0x7 strb r0, [r4, 0x3] adds r4, 0x14 adds r0, r5, 0 adds r1, r4, 0 bl sub_80831F8 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8082CBC thumb_func_start sub_8082CE4 sub_8082CE4: push {r4-r6,lr} adds r5, r0, 0 adds r4, r1, 0 movs r2, 0x1 bl sub_8082FE0 adds r0, r5, 0 bl sub_80831DC movs r6, 0 strb r0, [r4, 0x1] adds r0, r5, 0 bl sub_80831DC strb r0, [r4, 0x2] adds r0, r5, 0 bl sub_80831DC strb r0, [r4, 0x3] adds r0, r5, 0 bl sub_8083158 strh r0, [r4, 0x4] str r6, [r4, 0x8] str r6, [r4, 0xC] adds r4, 0x10 adds r0, r5, 0 adds r1, r4, 0 bl sub_80831F8 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8082CE4 thumb_func_start sub_8082D28 sub_8082D28: push {lr} movs r2, 0x3 bl sub_8082FE0 pop {r0} bx r0 thumb_func_end sub_8082D28 thumb_func_start sub_8082D34 sub_8082D34: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x1 bl sub_8082FE0 adds r0, r4, 0 bl sub_8083188 strb r0, [r5, 0x1] pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8082D34 thumb_func_start sub_8082D50 sub_8082D50: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x1 bl sub_8082FE0 adds r0, r4, 0 bl sub_8083188 strb r0, [r5, 0x1] adds r0, r4, 0 bl sub_8083188 strb r0, [r5, 0x2] adds r0, r4, 0 bl sub_8083188 strb r0, [r5, 0x3] pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8082D50 thumb_func_start sub_8082D7C sub_8082D7C: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x1 bl sub_8082FE0 adds r0, r4, 0 bl sub_8083188 strb r0, [r5, 0x8] adds r0, r4, 0 bl sub_8083188 strb r0, [r5, 0x9] adds r0, r4, 0 bl sub_80831A0 str r0, [r5, 0x4] pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8082D7C thumb_func_start sub_8082DA8 sub_8082DA8: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x1 bl sub_8082FE0 adds r0, r4, 0 bl sub_8083188 strb r0, [r5, 0x1] pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8082DA8 thumb_func_start sub_8082DC4 sub_8082DC4: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x1 bl sub_8082FE0 adds r0, r4, 0 bl sub_8083188 strb r0, [r5, 0x1] adds r0, r4, 0 bl sub_8083188 strb r0, [r5, 0x2] pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8082DC4 thumb_func_start sub_8082DE8 sub_8082DE8: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x1 bl sub_8082FE0 adds r0, r4, 0 bl sub_8083188 strb r0, [r5, 0x1] pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8082DE8 thumb_func_start sub_8082E04 sub_8082E04: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x1 bl sub_8082FE0 adds r0, r4, 0 bl sub_80831DC strb r0, [r5, 0x1] adds r0, r4, 0 bl sub_80831DC strb r0, [r5, 0x2] adds r0, r4, 0 bl sub_8083188 strb r0, [r5, 0x3] adds r0, r4, 0 bl sub_8083188 strb r0, [r5, 0x4] pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8082E04 thumb_func_start sub_8082E38 sub_8082E38: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x1 bl sub_8082FE0 adds r0, r4, 0 bl sub_80831A0 str r0, [r5, 0x4] adds r0, r4, 0 bl sub_8083188 strb r0, [r5, 0x8] adds r0, r4, 0 bl sub_8083188 strb r0, [r5, 0x9] adds r0, r4, 0 bl sub_8083188 strb r0, [r5, 0xA] pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8082E38 thumb_func_start sub_8082E6C sub_8082E6C: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x1 bl sub_8082FE0 adds r0, r4, 0 bl sub_8083188 strb r0, [r5, 0x1] pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8082E6C thumb_func_start sub_8082E88 sub_8082E88: push {lr} movs r2, 0x1 bl sub_8082FE0 pop {r0} bx r0 thumb_func_end sub_8082E88 thumb_func_start sub_8082E94 sub_8082E94: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x1 bl sub_8082FE0 adds r0, r4, 0 bl sub_8083188 strb r0, [r5, 0x1] pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8082E94 thumb_func_start sub_8082EB0 sub_8082EB0: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x1 bl sub_8082FE0 adds r0, r4, 0 bl sub_8083188 strb r0, [r5, 0x1] pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8082EB0 thumb_func_start sub_8082ECC sub_8082ECC: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x1 bl sub_8082FE0 adds r0, r4, 0 bl sub_8083188 strb r0, [r5, 0x1] pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8082ECC thumb_func_start sub_8082EE8 sub_8082EE8: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl sub_8083188 strb r0, [r5] adds r0, r4, 0 bl sub_8083188 strb r0, [r5, 0x1] adds r1, r5, 0x2 adds r0, r4, 0 movs r2, 0x2 bl sub_8082FE0 adds r0, r4, 0 bl sub_8083188 strb r0, [r5, 0x4] adds r0, r4, 0 bl sub_8083188 strb r0, [r5, 0x5] pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8082EE8 thumb_func_start sub_8082F1C sub_8082F1C: push {r4-r7,lr} adds r6, r0, 0 adds r7, r1, 0 adds r4, r7, 0 movs r5, 0x3 _08082F26: adds r0, r6, 0 adds r1, r4, 0 bl sub_8082EE8 adds r4, 0x8 subs r5, 0x1 cmp r5, 0 bge _08082F26 adds r0, r6, 0 bl sub_8083188 adds r1, r7, 0 adds r1, 0x20 strb r0, [r1] pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8082F1C thumb_func_start sub_8082F48 sub_8082F48: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl sub_8083170 strh r0, [r5] adds r0, r4, 0 bl sub_8083170 strh r0, [r5, 0x2] pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8082F48 thumb_func_start sub_8082F64 sub_8082F64: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl sub_8083188 strb r0, [r5] adds r0, r4, 0 bl sub_8083188 strb r0, [r5, 0x1] pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8082F64 thumb_func_start sub_8082F80 sub_8082F80: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl sub_8083170 strh r0, [r5] adds r0, r4, 0 bl sub_8082BFC strb r0, [r5, 0x2] pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8082F80 thumb_func_start sub_8082F9C sub_8082F9C: str r1, [r0] movs r3, 0 str r3, [r0, 0x8] adds r1, r2 str r1, [r0, 0x4] bx lr thumb_func_end sub_8082F9C thumb_func_start sub_8082FA8 sub_8082FA8: push {r4,lr} adds r3, r0, 0 adds r4, r1, 0 cmp r2, 0 beq _08082FCC _08082FB2: ldr r1, [r3] ldrb r0, [r4] strb r0, [r1] ldr r0, [r3] adds r0, 0x1 str r0, [r3] adds r4, 0x1 subs r2, 0x1 ldr r0, [r3, 0x8] adds r0, 0x1 str r0, [r3, 0x8] cmp r2, 0 bne _08082FB2 _08082FCC: pop {r4} pop {r0} bx r0 thumb_func_end sub_8082FA8 thumb_func_start sub_8082FD4 sub_8082FD4: str r1, [r0] movs r3, 0 str r3, [r0, 0x8] adds r1, r2 str r1, [r0, 0x4] bx lr thumb_func_end sub_8082FD4 thumb_func_start sub_8082FE0 sub_8082FE0: push {r4,lr} adds r3, r0, 0 adds r4, r1, 0 cmp r2, 0 beq _08083002 _08082FEA: ldr r1, [r3] ldrb r0, [r1] strb r0, [r4] adds r1, 0x1 str r1, [r3] adds r4, 0x1 subs r2, 0x1 ldr r0, [r3, 0x8] adds r0, 0x1 str r0, [r3, 0x8] cmp r2, 0 bne _08082FEA _08083002: pop {r4} pop {r0} bx r0 thumb_func_end sub_8082FE0 thumb_func_start nullsub_98 nullsub_98: bx lr thumb_func_end nullsub_98 thumb_func_start sub_808300C sub_808300C: push {lr} movs r2, 0x8 bl sub_8082FA8 pop {r0} bx r0 thumb_func_end sub_808300C thumb_func_start sub_8083018 sub_8083018: push {lr} sub sp, 0xC mov r1, sp movs r2, 0x8 bl sub_8082FE0 mov r1, sp movs r0, 0 strb r0, [r1, 0x8] add sp, 0xC pop {r0} bx r0 thumb_func_end sub_8083018 thumb_func_start sub_8083030 sub_8083030: push {lr} sub sp, 0x4 mov r2, sp strh r1, [r2] mov r1, sp movs r2, 0x2 bl sub_8082FA8 add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8083030 thumb_func_start sub_8083048 sub_8083048: push {lr} sub sp, 0x4 mov r2, sp strh r1, [r2] mov r1, sp movs r2, 0x2 bl sub_8082FA8 add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8083048 thumb_func_start sub_8083060 sub_8083060: push {lr} sub sp, 0x4 mov r2, sp strb r1, [r2] mov r1, sp movs r2, 0x1 bl sub_8082FA8 add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8083060 thumb_func_start sub_8083078 sub_8083078: push {lr} sub sp, 0x4 str r1, [sp] mov r1, sp movs r2, 0x4 bl sub_8082FA8 add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8083078 thumb_func_start sub_808308C sub_808308C: push {lr} sub sp, 0x4 str r1, [sp] mov r1, sp movs r2, 0x4 bl sub_8082FA8 add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_808308C thumb_func_start sub_80830A0 sub_80830A0: push {lr} sub sp, 0x4 str r1, [sp] mov r1, sp movs r2, 0x4 bl sub_8082FA8 add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80830A0 thumb_func_start sub_80830B4 sub_80830B4: push {lr} sub sp, 0x4 adds r3, r0, 0 lsls r1, 24 movs r2, 0 cmp r1, 0 beq _080830C4 movs r2, 0xFF _080830C4: mov r0, sp strb r2, [r0] adds r0, r3, 0 mov r1, sp movs r2, 0x1 bl sub_8082FA8 add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80830B4 thumb_func_start sub_80830D8 sub_80830D8: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 movs r2, 0x1 bl sub_8082FA8 adds r4, 0x2 adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x1 bl sub_8082FA8 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80830D8 thumb_func_start sub_80830F8 sub_80830F8: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 movs r2, 0x1 bl sub_8082FA8 adds r1, r4, 0x4 adds r0, r5, 0 movs r2, 0x1 bl sub_8082FA8 adds r1, r4, 0 adds r1, 0x8 adds r0, r5, 0 movs r2, 0x1 bl sub_8082FA8 adds r4, 0xC adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x1 bl sub_8082FA8 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80830F8 thumb_func_start sub_808312C sub_808312C: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 movs r2, 0x1 bl sub_8082FA8 adds r4, 0x2 adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x1 bl sub_8082FA8 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_808312C thumb_func_start sub_808314C sub_808314C: push {lr} bl sub_8082FA8 pop {r0} bx r0 thumb_func_end sub_808314C thumb_func_start sub_8083158 sub_8083158: push {lr} sub sp, 0x4 mov r1, sp movs r2, 0x2 bl sub_8082FE0 mov r0, sp ldrh r0, [r0] add sp, 0x4 pop {r1} bx r1 thumb_func_end sub_8083158 thumb_func_start sub_8083170 sub_8083170: push {lr} sub sp, 0x4 mov r1, sp movs r2, 0x2 bl sub_8082FE0 mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] add sp, 0x4 pop {r1} bx r1 thumb_func_end sub_8083170 thumb_func_start sub_8083188 sub_8083188: push {lr} sub sp, 0x4 mov r1, sp movs r2, 0x1 bl sub_8082FE0 mov r0, sp ldrb r0, [r0] add sp, 0x4 pop {r1} bx r1 thumb_func_end sub_8083188 thumb_func_start sub_80831A0 sub_80831A0: push {lr} sub sp, 0x4 mov r1, sp movs r2, 0x4 bl sub_8082FE0 ldr r0, [sp] add sp, 0x4 pop {r1} bx r1 thumb_func_end sub_80831A0 thumb_func_start sub_80831B4 sub_80831B4: push {lr} sub sp, 0x4 mov r1, sp movs r2, 0x4 bl sub_8082FE0 ldr r0, [sp] add sp, 0x4 pop {r1} bx r1 thumb_func_end sub_80831B4 thumb_func_start sub_80831C8 sub_80831C8: push {lr} sub sp, 0x4 mov r1, sp movs r2, 0x4 bl sub_8082FE0 ldr r0, [sp] add sp, 0x4 pop {r1} bx r1 thumb_func_end sub_80831C8 thumb_func_start sub_80831DC sub_80831DC: push {lr} sub sp, 0x4 mov r1, sp movs r2, 0x1 bl sub_8082FE0 mov r0, sp ldrb r1, [r0] negs r0, r1 orrs r0, r1 lsrs r0, 31 add sp, 0x4 pop {r1} bx r1 thumb_func_end sub_80831DC thumb_func_start sub_80831F8 sub_80831F8: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 movs r0, 0 strh r0, [r4] strh r0, [r4, 0x2] adds r0, r5, 0 movs r2, 0x1 bl sub_8082FE0 adds r4, 0x2 adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x1 bl sub_8082FE0 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80831F8 thumb_func_start sub_8083220 sub_8083220: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 movs r0, 0 str r0, [r4] str r0, [r4, 0x4] str r0, [r4, 0x8] str r0, [r4, 0xC] adds r0, r5, 0 movs r2, 0x1 bl sub_8082FE0 adds r1, r4, 0x4 adds r0, r5, 0 movs r2, 0x1 bl sub_8082FE0 adds r1, r4, 0 adds r1, 0x8 adds r0, r5, 0 movs r2, 0x1 bl sub_8082FE0 adds r4, 0xC adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x1 bl sub_8082FE0 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8083220 thumb_func_start sub_8083260 sub_8083260: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 movs r0, 0 strh r0, [r4] strh r0, [r4, 0x2] adds r0, r5, 0 movs r2, 0x1 bl sub_8082FE0 adds r4, 0x2 adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x1 bl sub_8082FE0 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8083260 thumb_func_start sub_8083288 sub_8083288: push {lr} bl sub_8082FE0 pop {r0} bx r0 thumb_func_end sub_8083288 thumb_func_start sub_8083294 sub_8083294: push {r4-r7,lr} adds r4, r0, 0 adds r6, r1, 0 ldr r7, _080832E8 ldr r0, [r7] ldr r1, _080832EC adds r0, r1 ldrb r5, [r0] cmp r5, 0 bne _080832AA movs r5, 0x2 _080832AA: movs r2, 0 ldrsh r0, [r4, r2] movs r3, 0x2 ldrsh r1, [r4, r3] bl sub_804954C ldrb r1, [r0, 0x9] cmp r1, 0xFF bne _080832F0 movs r0, 0 ldrsh r1, [r4, r0] movs r2, 0 ldrsh r0, [r6, r2] subs r1, r0 cmp r1, 0 bge _080832CC negs r1, r1 _080832CC: cmp r1, r5 bgt _0808332E movs r3, 0x2 ldrsh r1, [r4, r3] movs r4, 0x2 ldrsh r0, [r6, r4] subs r0, r1, r0 cmp r0, 0 bge _080832E0 negs r0, r0 _080832E0: cmp r0, r5 bgt _0808332E _080832E4: movs r0, 0x1 b _08083330 .align 2, 0 _080832E8: .4byte gUnknown_203B418 _080832EC: .4byte 0x00018209 _080832F0: lsls r0, r1, 3 subs r0, r1 lsls r0, 2 ldr r1, _08083338 adds r0, r1 ldr r1, [r7] adds r1, r0 movs r2, 0x2 ldrsh r0, [r1, r2] subs r0, 0x1 movs r4, 0 ldrsh r3, [r6, r4] cmp r0, r3 bgt _0808332E movs r2, 0x4 ldrsh r0, [r1, r2] subs r0, 0x1 movs r4, 0x2 ldrsh r2, [r6, r4] cmp r0, r2 bgt _0808332E movs r4, 0x6 ldrsh r0, [r1, r4] adds r0, 0x1 cmp r0, r3 ble _0808332E movs r3, 0x8 ldrsh r0, [r1, r3] adds r0, 0x1 cmp r0, r2 bgt _080832E4 _0808332E: movs r0, 0 _08083330: pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08083338: .4byte 0x000104c4 thumb_func_end sub_8083294 thumb_func_start sub_808333C sub_808333C: push {r4-r6,lr} adds r4, r0, 0 adds r5, r1, 0 movs r1, 0 ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] bl sub_804954C ldrb r2, [r0, 0x9] cmp r2, 0xFF beq _08083394 ldr r1, _080833C4 lsls r0, r2, 3 subs r0, r2 lsls r0, 2 ldr r3, _080833C8 adds r0, r3 ldr r1, [r1] adds r1, r0 movs r6, 0x2 ldrsh r0, [r1, r6] subs r0, 0x1 movs r2, 0 ldrsh r3, [r5, r2] cmp r0, r3 bgt _08083394 movs r6, 0x4 ldrsh r0, [r1, r6] subs r0, 0x1 movs r6, 0x2 ldrsh r2, [r5, r6] cmp r0, r2 bgt _08083394 movs r6, 0x6 ldrsh r0, [r1, r6] adds r0, 0x1 cmp r0, r3 ble _08083394 movs r3, 0x8 ldrsh r0, [r1, r3] adds r0, 0x1 cmp r0, r2 bgt _080833DE _08083394: movs r6, 0 ldrsh r3, [r4, r6] movs r0, 0 ldrsh r2, [r5, r0] movs r6, 0x2 ldrsh r1, [r4, r6] movs r6, 0x2 ldrsh r0, [r5, r6] subs r1, r0 subs r3, r2 cmp r3, 0 bge _080833AE negs r3, r3 _080833AE: cmp r1, 0 bge _080833B4 negs r1, r1 _080833B4: cmp r1, r3 bge _080833BA adds r1, r3, 0 _080833BA: cmp r1, 0x2 ble _080833CC _080833BE: movs r0, 0 b _080833E0 .align 2, 0 _080833C4: .4byte gUnknown_203B418 _080833C8: .4byte 0x000104c4 _080833CC: cmp r1, 0x2 bne _080833DE adds r0, r4, 0 adds r1, r5, 0 bl sub_8083478 lsls r0, 24 cmp r0, 0 beq _080833BE _080833DE: movs r0, 0x1 _080833E0: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_808333C thumb_func_start sub_80833E8 sub_80833E8: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 movs r1, 0 ldrsh r0, [r5, r1] movs r2, 0x2 ldrsh r1, [r5, r2] bl sub_804954C adds r1, r0, 0 ldr r0, _08083438 ldr r3, [r0] ldr r2, _0808343C adds r0, r3, r2 ldrb r2, [r0] cmp r2, 0 bne _0808340C movs r2, 0x2 _0808340C: ldrb r0, [r1, 0x9] cmp r0, 0xFF bne _08083440 movs r1, 0 ldrsh r0, [r5, r1] subs r0, r2 str r0, [r4] movs r1, 0 ldrsh r0, [r5, r1] adds r0, r2 adds r0, 0x1 str r0, [r4, 0x8] movs r1, 0x2 ldrsh r0, [r5, r1] subs r0, r2 str r0, [r4, 0x4] movs r1, 0x2 ldrsh r0, [r5, r1] adds r0, r2 adds r0, 0x1 b _0808346A .align 2, 0 _08083438: .4byte gUnknown_203B418 _0808343C: .4byte 0x00018209 _08083440: lsls r1, r0, 3 subs r1, r0 lsls r1, 2 ldr r2, _08083474 adds r1, r2 adds r1, r3, r1 movs r2, 0x2 ldrsh r0, [r1, r2] subs r0, 0x1 str r0, [r4] movs r2, 0x6 ldrsh r0, [r1, r2] adds r0, 0x2 str r0, [r4, 0x8] movs r2, 0x4 ldrsh r0, [r1, r2] subs r0, 0x1 str r0, [r4, 0x4] movs r2, 0x8 ldrsh r0, [r1, r2] adds r0, 0x2 _0808346A: str r0, [r4, 0xC] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08083474: .4byte 0x000104c4 thumb_func_end sub_80833E8 thumb_func_start sub_8083478 sub_8083478: push {r4-r7,lr} sub sp, 0x4 adds r3, r0, 0 adds r6, r1, 0 movs r0, 0 ldrsh r1, [r3, r0] movs r2, 0 ldrsh r0, [r6, r2] subs r1, r0 cmp r1, 0 bge _08083490 negs r1, r1 _08083490: cmp r1, 0x1 bgt _080834A8 movs r5, 0x2 ldrsh r1, [r3, r5] movs r2, 0x2 ldrsh r0, [r6, r2] subs r1, r0 cmp r1, 0 bge _080834A4 negs r1, r1 _080834A4: cmp r1, 0x1 ble _0808355A _080834A8: movs r5, 0 ldrsh r4, [r3, r5] movs r1, 0 ldrsh r0, [r6, r1] subs r2, r4, r0 cmp r2, 0 bge _080834B8 negs r2, r2 _080834B8: movs r5, 0x2 ldrsh r1, [r3, r5] movs r5, 0x2 ldrsh r0, [r6, r5] subs r0, r1, r0 cmp r0, 0 bge _080834C8 negs r0, r0 _080834C8: cmp r0, r2 bge _080834CE adds r0, r2, 0 _080834CE: cmp r0, 0x2 bne _0808355E adds r5, r4, 0 adds r4, r1, 0 movs r7, 0 _080834D8: movs r1, 0 ldrsh r0, [r6, r1] cmp r5, r0 bge _080834E2 adds r5, 0x1 _080834E2: cmp r5, r0 ble _080834E8 subs r5, 0x1 _080834E8: movs r2, 0x2 ldrsh r0, [r6, r2] cmp r4, r0 bge _080834F2 adds r4, 0x1 _080834F2: cmp r4, r0 ble _080834F8 subs r4, 0x1 _080834F8: adds r0, r5, 0 adds r1, r4, 0 str r3, [sp] bl sub_804954C ldrh r1, [r0] movs r0, 0x3 ands r0, r1 ldr r3, [sp] cmp r0, 0 beq _0808355E adds r7, 0x1 cmp r7, 0x1 ble _080834D8 movs r0, 0 ldrsh r5, [r6, r0] movs r1, 0x2 ldrsh r4, [r6, r1] movs r7, 0 _0808351E: movs r2, 0 ldrsh r0, [r3, r2] cmp r5, r0 bge _08083528 adds r5, 0x1 _08083528: cmp r5, r0 ble _0808352E subs r5, 0x1 _0808352E: movs r1, 0x2 ldrsh r0, [r3, r1] cmp r4, r0 bge _08083538 adds r4, 0x1 _08083538: cmp r4, r0 ble _0808353E subs r4, 0x1 _0808353E: adds r0, r5, 0 adds r1, r4, 0 str r3, [sp] bl sub_804954C ldrh r1, [r0] movs r0, 0x3 ands r0, r1 ldr r3, [sp] cmp r0, 0 beq _0808355E adds r7, 0x1 cmp r7, 0x1 ble _0808351E _0808355A: movs r0, 0x1 b _08083560 _0808355E: movs r0, 0 _08083560: add sp, 0x4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8083478 thumb_func_start sub_8083568 sub_8083568: push {r4,r5,lr} lsls r2, 24 lsrs r5, r2, 24 ldr r2, _080835E0 ldr r2, [r2] ldr r4, _080835E4 adds r3, r2, r4 movs r4, 0 ldrsh r3, [r3, r4] subs r3, r0, r3 ldr r0, _080835E8 adds r2, r0 movs r4, 0 ldrsh r0, [r2, r4] subs r4, r1, r0 movs r0, 0x10 negs r0, r0 cmp r3, r0 blt _080835F8 cmp r4, r0 blt _080835F8 cmp r3, 0xFF bgt _080835F8 cmp r4, 0xAF bgt _080835F8 ldr r1, _080835EC lsls r0, r5, 1 adds r0, r5 lsls r0, 2 adds r0, r1 movs r1, 0x8 ldrsh r2, [r0, r1] adds r2, r3, r2 ldr r1, _080835F0 ands r2, r1 ldrh r3, [r0, 0x2] movs r1, 0xFE lsls r1, 8 ands r1, r3 orrs r1, r2 strh r1, [r0, 0x2] movs r1, 0xA ldrsh r2, [r0, r1] adds r2, r4, r2 ldr r1, _080835F4 ands r2, r1 lsls r2, 4 ldrh r3, [r0, 0x6] movs r1, 0xF ands r1, r3 orrs r1, r2 strh r1, [r0, 0x6] movs r1, 0 movs r2, 0 movs r3, 0 bl AddSprite movs r0, 0x1 b _080835FA .align 2, 0 _080835E0: .4byte gUnknown_203B418 _080835E4: .4byte 0x000181f0 _080835E8: .4byte 0x000181f2 _080835EC: .4byte gUnknown_202ED28 _080835F0: .4byte 0x000001ff _080835F4: .4byte 0x00000fff _080835F8: movs r0, 0 _080835FA: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8083568 thumb_func_start sub_8083600 sub_8083600: push {r4,r5,lr} ldr r0, _08083638 ldr r0, [r0] cmp r0, 0 bne _0808364A movs r5, 0 _0808360C: ldr r0, _0808363C ldr r0, [r0] lsls r1, r5, 2 ldr r2, _08083640 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0808362E ldr r0, [r4, 0x70] ldrb r0, [r0, 0x7] cmp r0, 0 bne _08083644 _0808362E: adds r5, 0x1 cmp r5, 0x3 ble _0808360C movs r0, 0 b _0808364A .align 2, 0 _08083638: .4byte gUnknown_203B450 _0808363C: .4byte gUnknown_203B418 _08083640: .4byte 0x0001357c _08083644: ldr r0, _08083650 str r4, [r0] adds r0, r4, 0 _0808364A: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08083650: .4byte gUnknown_203B450 thumb_func_end sub_8083600 thumb_func_start sub_8083654 sub_8083654: push {lr} bl sub_8083600 ldr r0, [r0, 0x70] pop {r1} bx r1 thumb_func_end sub_8083654 thumb_func_start sub_8083660 sub_8083660: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r4, _080836D4 add sp, r4 movs r1, 0xE0 lsls r1, 5 add r1, sp str r0, [r1] bl sub_8083600 ldr r2, _080836D8 add r2, sp str r0, [r2] movs r7, 0 movs r0, 0 ldr r1, _080836DC add r1, sp str r0, [r1] _0808368A: movs r0, 0x38 bl sub_8084100 adds r4, r0, 0 movs r0, 0x20 bl sub_8084100 ldr r2, _080836E0 add r2, sp str r0, [r2] ldr r0, _080836D8 add r0, sp ldr r0, [r0] ldr r3, [r0, 0x4] adds r5, r4, 0 movs r1, 0 ldr r4, [r2] ldr r0, _080836E4 cmp r7, r0 ble _080836B4 b _080837E6 _080836B4: movs r2, 0x3 mov r10, r2 lsls r0, r7, 2 mov r2, sp adds r6, r0, r2 _080836BE: movs r0, 0 mov r8, r0 adds r2, r5, 0x1 ldr r0, _080836E8 add r0, sp str r2, [r0] adds r1, 0x1 ldr r2, _080836EC add r2, sp str r1, [r2] b _0808379C .align 2, 0 _080836D4: .4byte 0xffffe3e4 _080836D8: .4byte 0x00001c04 _080836DC: .4byte 0x00001c0c _080836E0: .4byte 0x00001c08 _080836E4: .4byte 0x000006ff _080836E8: .4byte 0x00001c14 _080836EC: .4byte 0x00001c10 _080836F0: ldr r0, _08083738 add r0, sp ldr r0, [r0] cmp r0, 0 bne _0808373C ldrh r1, [r2] mov r0, r10 ands r0, r1 cmp r0, 0x1 bne _08083782 ldrb r0, [r2, 0x9] cmp r0, 0xFF beq _08083782 ldr r0, [r2, 0x14] cmp r0, 0 bne _08083782 ldr r0, [r2, 0x10] cmp r0, 0 bne _08083782 lsls r0, r3, 16 asrs r0, 16 subs r0, r5 cmp r0, 0 bge _08083722 negs r0, r0 _08083722: cmp r0, 0x5 bgt _08083788 asrs r0, r3, 16 subs r0, r4 cmp r0, 0 bge _08083730 negs r0, r0 _08083730: cmp r0, 0x5 ble _08083782 b _08083788 .align 2, 0 _08083738: .4byte 0x00001c0c _0808373C: ldr r1, _08083764 add r1, sp ldr r1, [r1] cmp r1, 0x1 bne _08083768 ldrh r1, [r2] mov r0, r10 ands r0, r1 cmp r0, 0x1 bne _08083782 ldrb r0, [r2, 0x9] cmp r0, 0xFF beq _08083782 ldr r0, [r2, 0x14] cmp r0, 0 bne _08083782 ldr r0, [r2, 0x10] cmp r0, 0 bne _08083782 b _08083788 .align 2, 0 _08083764: .4byte 0x00001c0c _08083768: ldrh r1, [r2] mov r0, r10 ands r0, r1 cmp r0, 0x1 bne _08083782 ldr r0, [r2, 0x14] cmp r0, 0 bne _08083782 ldr r0, [r2, 0x10] cmp r0, 0 bne _08083782 movs r2, 0x1 mov r9, r2 _08083782: mov r0, r9 cmp r0, 0 beq _08083790 _08083788: strb r5, [r6] strb r4, [r6, 0x1] adds r6, 0x4 adds r7, 0x1 _08083790: adds r4, 0x1 cmp r4, 0x1F ble _08083798 movs r4, 0 _08083798: movs r1, 0x1 add r8, r1 _0808379C: mov r2, r8 cmp r2, 0x1F bgt _080837C2 movs r0, 0 mov r9, r0 adds r0, r5, 0 adds r1, r4, 0 ldr r2, _0808380C add r2, sp str r3, [r2] bl sub_804954C adds r2, r0, 0 ldr r0, _08083810 ldr r1, _0808380C add r1, sp ldr r3, [r1] cmp r7, r0 ble _080836F0 _080837C2: ldr r2, _08083814 add r2, sp ldr r5, [r2] cmp r5, 0x37 ble _080837CE movs r5, 0 _080837CE: ldr r0, _08083818 add r0, sp ldr r1, [r0] cmp r1, 0x37 bgt _080837E6 ldr r2, _0808381C add r2, sp ldr r4, [r2] ldr r0, _08083810 cmp r7, r0 bgt _080837E6 b _080836BE _080837E6: cmp r7, 0 beq _08083820 adds r0, r7, 0 bl sub_8084100 lsls r0, 2 mov r2, sp adds r1, r2, r0 ldrb r0, [r1] movs r2, 0xE0 lsls r2, 5 add r2, sp ldr r2, [r2] strh r0, [r2] ldrb r0, [r1, 0x1] strh r0, [r2, 0x2] movs r0, 0x1 b _08083832 .align 2, 0 _0808380C: .4byte 0x00001c18 _08083810: .4byte 0x000006ff _08083814: .4byte 0x00001c14 _08083818: .4byte 0x00001c10 _0808381C: .4byte 0x00001c08 _08083820: ldr r0, _08083844 add r0, sp ldr r2, [r0] adds r2, 0x1 str r2, [r0] cmp r2, 0x2 bgt _08083830 b _0808368A _08083830: movs r0, 0 _08083832: ldr r3, _08083848 add sp, r3 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08083844: .4byte 0x00001c0c _08083848: .4byte 0x00001c1c thumb_func_end sub_8083660 thumb_func_start sub_808384C sub_808384C: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 adds r3, r0, 0 mov r9, r1 movs r0, 0 mov r8, r0 ldr r0, _080838BC movs r2, 0 ldrsh r1, [r0, r2] cmp r1, 0x63 beq _080838D8 movs r6, 0 _0808386A: adds r2, r6, r0 movs r4, 0 ldrsh r1, [r2, r4] mov r5, r9 movs r7, 0 ldrsh r0, [r5, r7] adds r5, r1, r0 movs r0, 0x2 ldrsh r1, [r2, r0] mov r2, r9 movs r4, 0x2 ldrsh r0, [r2, r4] adds r4, r1, r0 adds r0, r5, 0 adds r1, r4, 0 str r3, [sp] bl sub_804954C adds r1, r0, 0 ldrh r2, [r1] movs r7, 0x80 lsls r7, 4 adds r0, r7, 0 ands r0, r2 ldr r3, [sp] cmp r0, 0 bne _080838C0 movs r0, 0x3 ands r0, r2 cmp r0, 0x1 bne _080838C0 ldr r0, [r1, 0x14] cmp r0, 0 bne _080838C0 ldr r0, [r1, 0x10] cmp r0, 0 bne _080838C0 strh r5, [r3] strh r4, [r3, 0x2] movs r0, 0x1 b _080838DA .align 2, 0 _080838BC: .4byte gUnknown_80F4468 _080838C0: adds r6, 0x4 movs r0, 0x1 add r8, r0 mov r2, r8 cmp r2, 0x18 bgt _080838D8 ldr r0, _080838E8 adds r1, r6, r0 movs r4, 0 ldrsh r1, [r1, r4] cmp r1, 0x63 bne _0808386A _080838D8: movs r0, 0 _080838DA: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080838E8: .4byte gUnknown_80F4468 thumb_func_end sub_808384C thumb_func_start sub_80838EC sub_80838EC: push {lr} adds r2, r0, 0 ldrb r0, [r2] adds r1, r0, 0 cmp r1, 0x7F beq _08083900 cmp r1, 0 beq _08083900 subs r0, 0x1 strb r0, [r2] _08083900: pop {r0} bx r0 thumb_func_end sub_80838EC thumb_func_start sub_8083904 sub_8083904: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x20 str r0, [sp] mov r10, r1 ldr r4, [r1, 0x70] str r4, [sp, 0x4] adds r5, r4, 0 adds r5, 0x46 ldrb r6, [r5] mov r0, r10 movs r1, 0x1 bl sub_8070B6C lsls r0, 24 cmp r0, 0 beq _08083954 ldr r0, _08083950 lsls r2, r6, 2 adds r2, r0 movs r0, 0 ldrsh r1, [r2, r0] lsls r0, r1, 1 adds r0, r1 mov r1, r10 ldrh r1, [r1, 0x4] adds r0, r1 ldr r3, [sp] strh r0, [r3] movs r4, 0x2 ldrsh r1, [r2, r4] lsls r0, r1, 1 adds r0, r1 b _08083A6E .align 2, 0 _08083950: .4byte gUnknown_80F4448 _08083954: ldr r1, [r4, 0x58] movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _08083960 b _08083A8C _08083960: ldrb r0, [r5] ldr r1, _080839A0 lsls r0, 3 adds r0, r1 ldr r7, [r0] movs r3, 0x4 ldrsh r2, [r0, r3] str r2, [sp, 0x8] movs r2, 0x6 ldrsh r1, [r0, r2] str r1, [sp, 0xC] mov r3, r10 movs r0, 0x4 ldrsh r3, [r3, r0] str r3, [sp, 0x10] mov r1, r10 movs r2, 0x6 ldrsh r1, [r1, r2] str r1, [sp, 0x14] ldr r0, _080839A4 ldr r1, [r0] ldr r3, _080839A8 adds r0, r1, r3 ldrb r0, [r0] cmp r0, 0 beq _080839B0 ldr r4, _080839AC adds r4, r1, r4 str r4, [sp, 0x18] movs r0, 0x14 b _080839D0 .align 2, 0 _080839A0: .4byte gUnknown_80F4CC4 _080839A4: .4byte gUnknown_203B418 _080839A8: .4byte 0x000037fc _080839AC: .4byte 0x000135cc _080839B0: ldrb r0, [r4, 0x6] cmp r0, 0 bne _080839C8 ldr r2, _080839C4 adds r2, r1, r2 str r2, [sp, 0x18] movs r3, 0x10 str r3, [sp, 0x1C] b _080839D2 .align 2, 0 _080839C4: .4byte 0x0001358c _080839C8: ldr r4, _08083A78 adds r4, r1, r4 str r4, [sp, 0x18] movs r0, 0x4 _080839D0: str r0, [sp, 0x1C] _080839D2: movs r1, 0 ldrsh r0, [r7, r1] cmp r0, 0x63 beq _08083A46 _080839DA: movs r2, 0 ldrsh r0, [r7, r2] ldr r3, [sp, 0x8] muls r0, r3 ldr r4, [sp, 0x10] adds r4, r0 mov r9, r4 movs r1, 0x2 ldrsh r0, [r7, r1] ldr r2, [sp, 0xC] muls r0, r2 ldr r3, [sp, 0x14] adds r3, r0 mov r8, r3 movs r6, 0 ldr r4, [sp, 0x1C] cmp r6, r4 bge _08083A3C ldr r5, [sp, 0x18] _08083A00: ldr r4, [r5] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08083A32 movs r1, 0x4 ldrsh r0, [r4, r1] cmp r0, r9 bne _08083A32 movs r2, 0x6 ldrsh r0, [r4, r2] cmp r0, r8 bne _08083A32 mov r0, r10 adds r1, r4, 0 movs r2, 0 movs r3, 0 bl sub_8071598 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08083A80 _08083A32: adds r5, 0x4 adds r6, 0x1 ldr r3, [sp, 0x1C] cmp r6, r3 blt _08083A00 _08083A3C: adds r7, 0x4 movs r4, 0 ldrsh r0, [r7, r4] cmp r0, 0x63 bne _080839DA _08083A46: ldr r2, _08083A7C ldr r1, [sp, 0x4] adds r1, 0x46 ldrb r0, [r1] lsls r0, 2 adds r0, r2 movs r3, 0 ldrsh r0, [r0, r3] lsls r0, 1 mov r4, r10 ldrh r4, [r4, 0x4] adds r0, r4 ldr r3, [sp] strh r0, [r3] ldrb r0, [r1] lsls r0, 2 adds r0, r2 movs r4, 0x2 ldrsh r0, [r0, r4] lsls r0, 1 _08083A6E: mov r1, r10 ldrh r1, [r1, 0x6] adds r0, r1 strh r0, [r3, 0x2] b _08083A9E .align 2, 0 _08083A78: .4byte 0x0001357c _08083A7C: .4byte gUnknown_80F4448 _08083A80: mov r3, r9 ldr r2, [sp] strh r3, [r2] mov r4, r8 strh r4, [r2, 0x2] b _08083A9E _08083A8C: ldr r0, [sp, 0x4] adds r0, 0x58 ldrh r0, [r0] ldr r1, [sp] strh r0, [r1] ldr r0, [sp, 0x4] adds r0, 0x5A ldrh r0, [r0] strh r0, [r1, 0x2] _08083A9E: add sp, 0x20 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8083904 thumb_func_start sub_8083AB0 sub_8083AB0: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x14 adds r5, r1, 0 adds r7, r2, 0 lsls r0, 16 asrs r0, 16 mov r8, r0 ldr r0, _08083AFC ldr r0, [r0] ldr r1, _08083B00 adds r4, r0, r1 movs r6, 0 adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08083AE4 adds r0, r5, 0 bl sub_80450F8 cmp r0, 0x1 bne _08083AE4 ldr r6, [r5, 0x70] _08083AE4: ldr r5, [r7, 0x70] cmp r6, 0 beq _08083B04 mov r0, sp adds r1, r6, 0 bl sub_80709C8 adds r0, r4, 0 mov r1, sp bl sub_80922F4 b _08083B0E .align 2, 0 _08083AFC: .4byte gUnknown_203B418 _08083B00: .4byte 0x0001ce98 _08083B04: ldr r0, _08083C04 ldr r1, [r0] adds r0, r4, 0 bl sub_80922F4 _08083B0E: mov r0, sp adds r1, r5, 0 bl sub_80709C8 adds r0, r4, 0 adds r0, 0xA mov r1, sp bl sub_80922F4 movs r2, 0 mov r3, r8 strh r3, [r4, 0x14] ldr r0, [r5, 0x60] str r0, [r4, 0x1C] ldr r0, [r5, 0x18] str r0, [r4, 0x20] ldrb r0, [r5, 0x9] adds r1, r4, 0 adds r1, 0x2A strb r0, [r1] ldrh r0, [r5, 0x10] strh r0, [r4, 0x24] ldrb r0, [r5, 0x14] subs r1, 0x4 strb r0, [r1] ldrb r0, [r5, 0x15] adds r1, 0x1 strb r0, [r1] ldrb r1, [r5, 0x16] adds r0, r4, 0 adds r0, 0x28 strb r1, [r0] ldrb r0, [r5, 0x17] adds r1, r4, 0 adds r1, 0x29 strb r0, [r1] ldr r0, _08083C08 ldr r0, [r0] ldr r1, _08083C0C adds r0, r1 ldr r0, [r0] str r0, [r4, 0x18] adds r3, r4, 0 adds r3, 0x2B strb r2, [r3] adds r6, r4, 0 adds r6, 0x2C strb r2, [r6] movs r0, 0x2D adds r0, r4 mov r12, r0 strb r2, [r0] adds r4, 0x2E strb r2, [r4] adds r0, r5, 0 adds r0, 0x60 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08083BF8 movs r0, 0x8 ands r0, r1 cmp r0, 0 bne _08083BF8 adds r1, r5, 0 adds r1, 0x62 ldrb r0, [r1] cmp r0, 0x13 bne _08083BA4 ldr r0, _08083C10 ldrb r0, [r0] ldrb r2, [r3] adds r0, r2 strb r0, [r3] _08083BA4: ldrb r0, [r1] cmp r0, 0x2B bne _08083BB4 ldr r0, _08083C14 ldrb r0, [r0] ldrb r2, [r3] adds r0, r2 strb r0, [r3] _08083BB4: ldrb r0, [r1] cmp r0, 0x21 bne _08083BC4 ldr r0, _08083C18 ldrb r0, [r0] ldrb r3, [r6] adds r0, r3 strb r0, [r6] _08083BC4: ldrb r0, [r1] cmp r0, 0x2B bne _08083BD4 ldr r0, _08083C14 ldrb r0, [r0] ldrb r2, [r6] adds r0, r2 strb r0, [r6] _08083BD4: ldrb r0, [r1] cmp r0, 0x1E bne _08083BE8 ldr r0, _08083C1C ldrb r0, [r0] mov r3, r12 ldrb r3, [r3] adds r0, r3 mov r2, r12 strb r0, [r2] _08083BE8: ldrb r0, [r1] cmp r0, 0x22 bne _08083BF8 ldr r0, _08083C20 ldrb r0, [r0] ldrb r3, [r4] adds r0, r3 strb r0, [r4] _08083BF8: add sp, 0x14 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08083C04: .4byte gUnknown_80FE6F4 _08083C08: .4byte gUnknown_203B418 _08083C0C: .4byte 0x00000644 _08083C10: .4byte gUnknown_810AC60 _08083C14: .4byte gUnknown_810AC68 _08083C18: .4byte gUnknown_810AC62 _08083C1C: .4byte gUnknown_810AC64 _08083C20: .4byte gUnknown_810AC66 thumb_func_end sub_8083AB0 thumb_func_start sub_8083C24 sub_8083C24: push {lr} ldr r0, _08083C3C ldr r0, [r0] ldr r1, _08083C40 adds r0, r1 movs r2, 0x14 ldrsh r1, [r0, r2] ldr r0, _08083C44 cmp r1, r0 ble _08083C48 movs r0, 0 b _08083C4A .align 2, 0 _08083C3C: .4byte gUnknown_203B418 _08083C40: .4byte 0x0001ce98 _08083C44: .4byte 0x00000225 _08083C48: movs r0, 0x1 _08083C4A: pop {r1} bx r1 thumb_func_end sub_8083C24 thumb_func_start sub_8083C50 sub_8083C50: push {lr} ldr r0, _08083C74 ldr r0, [r0] ldr r1, _08083C78 adds r0, r1 movs r2, 0x14 ldrsh r1, [r0, r2] ldr r0, _08083C7C cmp r1, r0 beq _08083C70 adds r0, 0x3 cmp r1, r0 beq _08083C70 subs r0, 0x2 cmp r1, r0 bne _08083C80 _08083C70: movs r0, 0x1 b _08083C82 .align 2, 0 _08083C74: .4byte gUnknown_203B418 _08083C78: .4byte 0x0001ce98 _08083C7C: .4byte 0x00000227 _08083C80: movs r0, 0 _08083C82: pop {r1} bx r1 thumb_func_end sub_8083C50 thumb_func_start sub_8083C88 sub_8083C88: push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r4, _08083CC4 ldr r0, [r4] ldr r1, _08083CC8 adds r5, r0, r1 ldr r1, _08083CCC adds r0, r1 ldrb r0, [r0] bl sub_80900F4 lsls r0, 24 cmp r0, 0 bne _08083CB6 ldr r0, [r4] ldr r1, _08083CD0 adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _08083CC0 cmp r6, 0 bne _08083CC0 _08083CB6: movs r0, 0x14 ldrsh r1, [r5, r0] ldr r0, _08083CD4 cmp r1, r0 beq _08083CD8 _08083CC0: movs r0, 0x1 b _08083CDA .align 2, 0 _08083CC4: .4byte gUnknown_203B418 _08083CC8: .4byte 0x0001ce98 _08083CCC: .4byte 0x00000644 _08083CD0: .4byte 0x0000065c _08083CD4: .4byte 0x00000227 _08083CD8: movs r0, 0 _08083CDA: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8083C88 thumb_func_start sub_8083CE0 sub_8083CE0: push {lr} lsls r0, 24 cmp r0, 0 beq _08083CF2 ldr r0, _08083D00 movs r1, 0x1A ldrsh r0, [r0, r1] cmp r0, 0x1 ble _08083CFC _08083CF2: ldr r0, _08083D04 movs r1, 0x80 lsls r1, 1 bl sub_800C074 _08083CFC: pop {r0} bx r0 .align 2, 0 _08083D00: .4byte gUnknown_202EE10 _08083D04: .4byte 0x0000012d thumb_func_end sub_8083CE0 thumb_func_start sub_8083D08 sub_8083D08: push {lr} movs r0, 0x97 lsls r0, 1 movs r1, 0x80 lsls r1, 1 bl sub_800C074 pop {r0} bx r0 thumb_func_end sub_8083D08 thumb_func_start sub_8083D1C sub_8083D1C: push {lr} ldr r0, _08083D2C movs r1, 0x80 lsls r1, 1 bl sub_800C074 pop {r0} bx r0 .align 2, 0 _08083D2C: .4byte 0x00000133 thumb_func_end sub_8083D1C thumb_func_start sub_8083D30 sub_8083D30: push {lr} ldr r0, _08083D40 movs r1, 0x80 lsls r1, 1 bl sub_800C074 pop {r0} bx r0 .align 2, 0 _08083D40: .4byte 0x0000012f thumb_func_end sub_8083D30 thumb_func_start sub_8083D44 sub_8083D44: push {lr} movs r0, 0x98 lsls r0, 1 movs r1, 0x80 lsls r1, 1 bl sub_800C074 pop {r0} bx r0 thumb_func_end sub_8083D44 thumb_func_start sub_8083D58 sub_8083D58: push {lr} movs r1, 0x80 lsls r1, 1 movs r0, 0xC8 bl sub_800C074 pop {r0} bx r0 thumb_func_end sub_8083D58 thumb_func_start sub_8083D68 sub_8083D68: push {lr} movs r1, 0x80 lsls r1, 1 movs r0, 0xCF bl sub_800C074 pop {r0} bx r0 thumb_func_end sub_8083D68 thumb_func_start sub_8083D78 sub_8083D78: push {lr} movs r1, 0x80 lsls r1, 1 movs r0, 0xD3 bl sub_800C074 pop {r0} bx r0 thumb_func_end sub_8083D78 thumb_func_start sub_8083D88 sub_8083D88: push {lr} movs r1, 0x80 lsls r1, 1 movs r0, 0xCC bl sub_800C074 pop {r0} bx r0 thumb_func_end sub_8083D88 thumb_func_start sub_8083D98 sub_8083D98: push {lr} movs r0, 0x33 bl sub_8083E88 ldr r2, _08083DCC ldr r0, [r2] ldr r1, _08083DD0 adds r0, r1 movs r1, 0 strb r1, [r0] ldr r0, [r2] ldr r3, _08083DD4 adds r0, r3 strb r1, [r0] ldr r0, [r2] adds r3, 0x27 adds r0, r3 strb r1, [r0] ldr r0, [r2] ldr r1, _08083DD8 adds r0, r1 ldr r1, _08083DDC strh r1, [r0] pop {r0} bx r0 .align 2, 0 _08083DCC: .4byte gUnknown_203B418 _08083DD0: .4byte 0x0000066f _08083DD4: .4byte 0x00000672 _08083DD8: .4byte 0x0000066a _08083DDC: .4byte 0x000003e7 thumb_func_end sub_8083D98 thumb_func_start sub_8083DE0 sub_8083DE0: push {lr} movs r0, 0x34 bl sub_8083E88 ldr r2, _08083E14 ldr r0, [r2] ldr r1, _08083E18 adds r0, r1 movs r1, 0 strb r1, [r0] ldr r0, [r2] ldr r3, _08083E1C adds r0, r3 strb r1, [r0] ldr r0, [r2] adds r3, 0x27 adds r0, r3 strb r1, [r0] ldr r0, [r2] ldr r1, _08083E20 adds r0, r1 ldr r1, _08083E24 strh r1, [r0] pop {r0} bx r0 .align 2, 0 _08083E14: .4byte gUnknown_203B418 _08083E18: .4byte 0x0000066f _08083E1C: .4byte 0x00000672 _08083E20: .4byte 0x0000066a _08083E24: .4byte 0x000003e7 thumb_func_end sub_8083DE0 thumb_func_start sub_8083E28 sub_8083E28: push {lr} movs r1, 0x80 lsls r1, 1 movs r0, 0xCF bl sub_800C074 pop {r0} bx r0 thumb_func_end sub_8083E28 thumb_func_start sub_8083E38 sub_8083E38: push {lr} lsls r0, 16 lsrs r2, r0, 16 ldr r0, _08083E54 cmp r2, r0 beq _08083E4E movs r1, 0x80 lsls r1, 1 adds r0, r2, 0 bl sub_800C074 _08083E4E: pop {r0} bx r0 .align 2, 0 _08083E54: .4byte 0x000003e5 thumb_func_end sub_8083E38 thumb_func_start sub_8083E58 sub_8083E58: push {lr} lsls r0, 16 lsrs r1, r0, 16 ldr r0, _08083E70 cmp r1, r0 beq _08083E6A adds r0, r1, 0 bl sub_800C298 _08083E6A: pop {r0} bx r0 .align 2, 0 _08083E70: .4byte 0x000003e5 thumb_func_end sub_8083E58 thumb_func_start sub_8083E74 sub_8083E74: push {lr} lsls r0, 16 lsrs r0, 16 bl sub_800C5D0 lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end sub_8083E74 thumb_func_start sub_8083E88 sub_8083E88: ldr r1, _08083E9C ldr r1, [r1] ldr r3, _08083EA0 adds r2, r1, r3 movs r3, 0 strh r0, [r2] ldr r0, _08083EA4 adds r1, r0 strh r3, [r1] bx lr .align 2, 0 _08083E9C: .4byte gUnknown_203B418 _08083EA0: .4byte 0x0001ceda _08083EA4: .4byte 0x0001ced4 thumb_func_end sub_8083E88 thumb_func_start sub_8083EA8 sub_8083EA8: push {r4,r5,lr} lsls r0, 16 lsrs r0, 16 ldr r2, _08083ECC ldr r2, [r2] movs r4, 0x80 lsls r4, 8 adds r3, r4, 0 ldr r5, _08083ED0 adds r4, r2, r5 orrs r0, r3 strh r0, [r4] ldr r0, _08083ED4 adds r2, r0 strh r1, [r2] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08083ECC: .4byte gUnknown_203B418 _08083ED0: .4byte 0x0001ceda _08083ED4: .4byte 0x0001ced4 thumb_func_end sub_8083EA8 thumb_func_start sub_8083ED8 sub_8083ED8: push {lr} lsls r0, 16 lsrs r0, 16 bl sub_80118C4 ldr r0, _08083F00 ldr r1, [r0] ldr r2, _08083F04 adds r0, r1, r2 ldr r2, _08083F08 strh r2, [r0] ldr r3, _08083F0C adds r0, r1, r3 strh r2, [r0] ldr r0, _08083F10 adds r1, r0 strh r2, [r1] pop {r0} bx r0 .align 2, 0 _08083F00: .4byte gUnknown_203B418 _08083F04: .4byte 0x0001ced6 _08083F08: .4byte 0x000003e7 _08083F0C: .4byte 0x0001ced8 _08083F10: .4byte 0x0001ceda thumb_func_end sub_8083ED8 thumb_func_start sub_8083F14 sub_8083F14: push {lr} bl sub_8083F34 bl sub_8011924 pop {r0} bx r0 thumb_func_end sub_8083F14 thumb_func_start sub_8083F24 sub_8083F24: push {lr} bl sub_800C068 lsls r0, 16 lsrs r0, 16 pop {r1} bx r1 thumb_func_end sub_8083F24 thumb_func_start sub_8083F34 sub_8083F34: ldr r0, _08083F4C ldr r0, [r0] ldr r1, _08083F50 adds r0, r1 movs r1, 0 str r1, [r0] str r1, [r0, 0x4] ldr r1, _08083F54 strh r1, [r0, 0xA] strh r1, [r0, 0xC] strh r1, [r0, 0xE] bx lr .align 2, 0 _08083F4C: .4byte gUnknown_203B418 _08083F50: .4byte 0x0001cecc _08083F54: .4byte 0x000003e7 thumb_func_end sub_8083F34 thumb_func_start sub_8083F58 sub_8083F58: push {r4,lr} ldr r0, _08083F7C ldr r2, [r0] ldr r0, _08083F80 adds r4, r2, r0 ldr r1, _08083F84 adds r3, r2, r1 ldrh r1, [r3] ldr r0, _08083F88 cmp r1, r0 bne _08083FB2 ldr r1, _08083F8C adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0 beq _08083F90 movs r1, 0x12 b _08083FB2 .align 2, 0 _08083F7C: .4byte gUnknown_203B418 _08083F80: .4byte 0x0001cecc _08083F84: .4byte 0x0000066a _08083F88: .4byte 0x000003e7 _08083F8C: .4byte 0x0000066f _08083F90: ldr r1, _08083FA0 adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0 beq _08083FA4 movs r1, 0x80 b _08083FB2 .align 2, 0 _08083FA0: .4byte 0x00000672 _08083FA4: ldr r1, _08083FC4 adds r0, r2, r1 ldrb r0, [r0] movs r1, 0x11 cmp r0, 0 bne _08083FB2 ldrh r1, [r4, 0xE] _08083FB2: ldr r0, [r4] cmp r0, 0x4 bne _08083FC8 ldrh r0, [r4, 0xC] cmp r1, r0 beq _08083FDA movs r0, 0x2 b _08083FD6 .align 2, 0 _08083FC4: .4byte 0x00000699 _08083FC8: ldr r2, _08083FEC cmp r1, r2 beq _08083FDA ldrh r0, [r4, 0xA] cmp r0, r2 bne _08083FDA movs r0, 0x1 _08083FD6: str r0, [r4] strh r1, [r4, 0xA] _08083FDA: ldr r0, [r4] cmp r0, 0x4 bhi _08084084 lsls r0, 2 ldr r1, _08083FF0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08083FEC: .4byte 0x000003e7 _08083FF0: .4byte _08083FF4 .align 2, 0 _08083FF4: .4byte _08084084 .4byte _08084008 .4byte _08084050 .4byte _0808405E .4byte _08084084 _08084008: ldrh r1, [r4, 0xA] ldr r0, _08084014 cmp r1, r0 bne _08084018 movs r0, 0 b _08084040 .align 2, 0 _08084014: .4byte 0x000003e7 _08084018: movs r0, 0x80 lsls r0, 8 ands r0, r1 cmp r0, 0 beq _08084030 ldr r0, _0808402C ands r0, r1 bl sub_800BDFC b _0808403A .align 2, 0 _0808402C: .4byte 0x00007fff _08084030: ldr r0, _08084048 ands r0, r1 ldrh r1, [r4, 0x8] bl sub_800BE8C _0808403A: ldrh r0, [r4, 0xA] strh r0, [r4, 0xC] movs r0, 0x4 _08084040: str r0, [r4] ldr r0, _0808404C strh r0, [r4, 0xA] b _08084084 .align 2, 0 _08084048: .4byte 0x00007fff _0808404C: .4byte 0x000003e7 _08084050: movs r0, 0x1E bl sub_800BFD0 movs r0, 0x1E str r0, [r4, 0x4] movs r0, 0x3 b _08084082 _0808405E: ldr r0, [r4, 0x4] cmp r0, 0 beq _0808406C subs r0, 0x1 str r0, [r4, 0x4] cmp r0, 0 bne _08084084 _0808406C: ldrh r1, [r4, 0xA] ldr r0, _0808407C cmp r1, r0 bne _08084080 bl sub_800BF80 movs r0, 0 b _08084082 .align 2, 0 _0808407C: .4byte 0x000003e7 _08084080: movs r0, 0x1 _08084082: str r0, [r4] _08084084: pop {r4} pop {r0} bx r0 thumb_func_end sub_8083F58 thumb_func_start sub_808408C sub_808408C: ldr r2, _0808409C movs r1, 0x1 orrs r1, r0 ldr r0, _080840A0 ands r0, r1 str r0, [r2] bx lr .align 2, 0 _0808409C: .4byte gUnknown_203B458 _080840A0: .4byte 0x00ffffff thumb_func_end sub_808408C thumb_func_start sub_80840A4 sub_80840A4: ldr r3, _080840C8 ldr r0, [r3] ldr r2, _080840CC adds r1, r0, 0 muls r1, r2 adds r1, 0x1 lsrs r0, r1, 16 muls r1, r2 adds r1, 0x1 str r1, [r3] ldr r2, _080840D0 ands r1, r2 orrs r0, r1 ldr r1, _080840D4 ands r0, r1 movs r1, 0x1 orrs r0, r1 bx lr .align 2, 0 _080840C8: .4byte gUnknown_203B458 _080840CC: .4byte 0x5d588b65 _080840D0: .4byte 0xffff0000 _080840D4: .4byte 0x00ffffff thumb_func_end sub_80840A4 thumb_func_start sub_80840D8 sub_80840D8: ldr r2, _080840E4 movs r1, 0x1 orrs r1, r0 str r1, [r2] bx lr .align 2, 0 _080840E4: .4byte gUnknown_203B454 thumb_func_end sub_80840D8 thumb_func_start sub_80840E8 sub_80840E8: ldr r2, _080840F8 ldr r1, [r2] ldr r0, _080840FC muls r0, r1 adds r0, 0x1 str r0, [r2] lsrs r0, 16 bx lr .align 2, 0 _080840F8: .4byte gUnknown_203B454 _080840FC: .4byte 0x5d588b65 thumb_func_end sub_80840E8 thumb_func_start sub_8084100 sub_8084100: push {r4,lr} adds r4, r0, 0 bl sub_80840E8 ldr r1, _08084118 ands r0, r1 muls r0, r4 asrs r0, 16 ands r0, r1 pop {r4} pop {r1} bx r1 .align 2, 0 _08084118: .4byte 0x0000ffff thumb_func_end sub_8084100 thumb_func_start sub_808411C sub_808411C: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 cmp r5, r4 beq _0808413C cmp r5, r4 blt _08084134 subs r0, r5, r4 bl sub_8084100 adds r0, r4 b _0808413C _08084134: subs r0, r4, r5 bl sub_8084100 adds r0, r5 _0808413C: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_808411C thumb_func_start sub_8084144 sub_8084144: push {r4,lr} adds r4, r0, 0 movs r0, 0x64 bl sub_8084100 cmp r0, r4 blt _08084156 movs r0, 0 b _08084158 _08084156: movs r0, 0x1 _08084158: pop {r4} pop {r1} bx r1 thumb_func_end sub_8084144 thumb_func_start sub_8084160 sub_8084160: push {r4,lr} adds r4, r0, 0 movs r0, 0x64 bl sub_8084100 cmp r0, r4 blt _08084172 movs r0, 0 b _08084174 _08084172: movs r0, 0x1 _08084174: pop {r4} pop {r1} bx r1 thumb_func_end sub_8084160 thumb_func_start sub_808417C sub_808417C: push {r4-r6,lr} adds r5, r0, 0 lsls r2, 24 lsrs r6, r2, 24 movs r2, 0 ldrsh r0, [r1, r2] movs r2, 0x2 ldrsh r1, [r1, r2] bl sub_808411C adds r4, r0, 0 adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080841DC adds r0, r5, 0 bl sub_80450F8 cmp r0, 0x1 bne _080841DC cmp r6, 0 beq _080841DC adds r0, r5, 0 movs r1, 0x12 bl sub_80718D8 lsls r0, 24 cmp r0, 0 beq _080841C4 cmp r4, 0x7F beq _080841C4 lsrs r0, r4, 31 adds r0, r4, r0 asrs r4, r0, 1 _080841C4: adds r0, r5, 0 movs r1, 0x14 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _080841DC cmp r4, 0x7F beq _080841DC cmp r4, 0x4 ble _080841DC movs r4, 0x5 _080841DC: cmp r4, 0 bgt _080841E2 movs r4, 0x1 _080841E2: adds r0, r4, 0 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_808417C thumb_func_start sub_80841EC sub_80841EC: push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0xC4 add r0, sp, 0x60 mov r8, r0 movs r1, 0 movs r2, 0x60 bl memset movs r0, 0x6 str r0, [sp, 0x64] add r1, sp, 0x68 movs r6, 0 movs r0, 0x4 strh r0, [r1] movs r2, 0x3 strh r2, [r1, 0x2] add r1, sp, 0x6C movs r0, 0x16 strh r0, [r1] mov r0, sp adds r0, 0x6E movs r5, 0xE movs r1, 0xE strh r1, [r0] add r0, sp, 0x70 strh r1, [r0] add r4, sp, 0xC0 str r4, [sp, 0x74] str r2, [sp, 0x7C] add r0, sp, 0x90 str r2, [r0, 0x4] add r0, sp, 0xA8 str r2, [r0, 0x4] mov r0, sp mov r1, r8 movs r2, 0x60 bl memcpy movs r0, 0x1 strb r0, [r4] strb r6, [r4, 0x1] strb r5, [r4, 0x2] strb r6, [r4, 0x3] mov r1, sp movs r0, 0x14 strh r0, [r1, 0xA] mov r0, sp movs r1, 0x1 bl sub_803ECB4 ldr r0, _0808426C ldr r0, [r0] ldr r1, _08084270 adds r0, r1 movs r2, 0 ldrsh r1, [r0, r2] ldr r0, _08084274 cmp r1, r0 ble _08084278 bl sub_8083DE0 b _0808427C .align 2, 0 _0808426C: .4byte gUnknown_203B418 _08084270: .4byte 0x0001ceac _08084274: .4byte 0x00000225 _08084278: bl sub_8083D98 _0808427C: ldr r0, _080842B8 ldr r1, [r0] ldr r0, _080842BC ldr r2, [r0] ldr r0, _080842C0 adds r2, r0 movs r0, 0 bl sub_8094558 mov r4, sp _08084290: movs r0, 0x36 bl sub_803E668 bl sub_8083F58 ldrh r1, [r4, 0xA] movs r2, 0xA ldrsh r0, [r4, r2] cmp r0, 0x3 ble _080842C4 subs r0, r1, 0x1 strh r0, [r4, 0xA] movs r0, 0xA0 strb r0, [r4] mov r0, sp movs r1, 0x1 bl sub_803ECB4 b _08084290 .align 2, 0 _080842B8: .4byte gUnknown_80FE6E8 _080842BC: .4byte gUnknown_203B418 _080842C0: .4byte 0x0001ce98 _080842C4: bl sub_8094D14 lsls r0, 24 cmp r0, 0 bne _080842DA ldr r0, _080842EC ldrh r1, [r0, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08084290 _080842DA: bl sub_8083D08 add sp, 0xC4 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080842EC: .4byte gUnknown_20255F0 thumb_func_end sub_80841EC thumb_func_start sub_80842F0 sub_80842F0: push {r4-r7,lr} mov r7, r8 push {r7} ldr r1, _0808436C ldr r0, [r1] ldr r2, _08084370 adds r0, r2 movs r2, 0 strb r2, [r0] ldr r0, [r1] ldr r3, _08084374 adds r0, r3 strb r2, [r0] ldr r0, [r1] movs r5, 0xCF lsls r5, 3 adds r0, r5 ldrb r0, [r0] cmp r0, 0x2 bne _080843AE movs r6, 0 ldr r0, _08084378 mov r8, r0 movs r7, 0x1 _08084320: lsls r0, r6, 24 lsrs r0, 24 bl sub_8096AB4 adds r4, r0, 0 ldrb r0, [r4] cmp r0, 0x6 bne _080843A8 ldr r3, _0808436C ldr r5, [r3] ldr r1, _0808437C adds r0, r5, r1 ldrh r0, [r0] ldrh r2, [r4, 0x4] mov r1, r8 ands r1, r0 mov r0, r8 ands r0, r2 cmp r1, r0 bne _080843A8 ldrb r0, [r4, 0x1] cmp r0, 0x3 beq _080843A8 cmp r0, 0x4 bne _08084380 ldrb r1, [r4, 0x10] ldr r2, _08084374 adds r0, r5, r2 strb r1, [r0] ldr r2, [r3] ldrh r1, [r4, 0xE] movs r3, 0xD1 lsls r3, 3 adds r0, r2, r3 strh r1, [r0] strb r7, [r2, 0x9] b _080843A8 .align 2, 0 _0808436C: .4byte gUnknown_203B418 _08084370: .4byte 0x00000677 _08084374: .4byte 0x0000068a _08084378: .4byte 0x0000ffff _0808437C: .4byte 0x00000644 _08084380: cmp r0, 0 beq _0808438C cmp r0, 0x2 beq _0808438C cmp r0, 0x1 bne _080843A8 _0808438C: ldr r2, [r3] ldrh r0, [r4, 0xE] movs r5, 0xD1 lsls r5, 3 adds r1, r2, r5 strh r0, [r1] ldrb r0, [r4, 0x1] cmp r0, 0x2 bne _080843A4 ldr r1, _080843B8 adds r0, r2, r1 strb r7, [r0] _080843A4: ldr r0, [r3] strb r7, [r0, 0x9] _080843A8: adds r6, 0x1 cmp r6, 0x7 ble _08084320 _080843AE: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080843B8: .4byte 0x00000677 thumb_func_end sub_80842F0 thumb_func_start sub_80843BC sub_80843BC: push {r4-r6,lr} lsls r0, 16 asrs r6, r0, 16 movs r4, 0 ldr r5, _08084418 _080843C6: lsls r0, r4, 24 lsrs r0, 24 bl sub_8096AB4 adds r3, r0, 0 ldrb r0, [r3] cmp r0, 0x6 bne _0808440C ldr r0, _0808441C ldr r0, [r0] ldr r1, _08084420 adds r0, r1 ldrh r0, [r0] ldrh r2, [r3, 0x4] adds r1, r5, 0 ands r1, r0 adds r0, r5, 0 ands r0, r2 cmp r1, r0 bne _0808440C ldrb r0, [r3, 0x1] cmp r0, 0 beq _08084400 cmp r0, 0x4 beq _08084400 cmp r0, 0x2 beq _08084400 cmp r0, 0x1 bne _0808440C _08084400: movs r1, 0xE ldrsh r0, [r3, r1] cmp r6, r0 bne _0808440C movs r0, 0x8 strb r0, [r3] _0808440C: adds r4, 0x1 cmp r4, 0x7 ble _080843C6 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08084418: .4byte 0x0000ffff _0808441C: .4byte gUnknown_203B418 _08084420: .4byte 0x00000644 thumb_func_end sub_80843BC thumb_func_start sub_8084424 sub_8084424: push {r4,lr} movs r4, 0 _08084428: lsls r0, r4, 24 lsrs r0, 24 bl sub_8096AB4 adds r1, r0, 0 ldrb r0, [r1] cmp r0, 0x8 bne _0808443C movs r0, 0x9 strb r0, [r1] _0808443C: adds r4, 0x1 cmp r4, 0x7 ble _08084428 pop {r4} pop {r0} bx r0 thumb_func_end sub_8084424 thumb_func_start sub_8084448 sub_8084448: push {r4-r7,lr} adds r5, r0, 0 ldr r7, [r5, 0x70] ldr r4, _0808447C bl sub_8083600 adds r1, r0, 0 adds r0, r4, 0 movs r2, 0 bl sub_8045B94 adds r4, 0x50 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0 bl sub_8045B94 adds r0, r5, 0 bl sub_8070BC0 lsls r0, 24 cmp r0, 0 bne _08084484 ldr r0, _08084480 b _080844F0 .align 2, 0 _0808447C: .4byte gUnknown_202DF98 _08084480: .4byte gUnknown_80FA464 _08084484: ldr r4, _080844FC ldr r0, [r4] ldr r6, _08084500 adds r0, r6 ldrb r0, [r0] cmp r0, 0 beq _08084540 ldr r0, _08084504 ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl sub_8052B8C cmp r0, 0x1 beq _080844A4 b _080845D4 _080844A4: ldr r0, _08084508 ldr r1, [r4] adds r1, r6 ldrb r1, [r1] movs r2, 0 bl sub_8090DC4 movs r3, 0 ldr r0, _0808450C adds r6, r0, 0 ldr r2, [r6] _080844BA: ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080844E2 movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _080844E2 movs r0, 0x18 ands r0, r1 cmp r0, 0x18 beq _080844E2 ldr r0, [r4] ldr r1, _08084500 adds r0, r1 ldrb r1, [r2, 0x2] ldrb r0, [r0] cmp r1, r0 beq _080844EA _080844E2: adds r2, 0x4 adds r3, 0x1 cmp r3, 0x13 ble _080844BA _080844EA: cmp r3, 0x14 bne _08084514 ldr r0, _08084510 _080844F0: ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage b _080845D4 .align 2, 0 _080844FC: .4byte gUnknown_203B418 _08084500: .4byte 0x0000068a _08084504: .4byte gUnknown_80FA32C _08084508: .4byte gUnknown_202DE58 _0808450C: .4byte gUnknown_203B460 _08084510: .4byte gUnknown_80FA448 _08084514: lsls r1, r3, 2 ldr r0, [r6] adds r1, r0 movs r0, 0 strb r0, [r1, 0x2] strb r0, [r1, 0x1] strb r0, [r1] bl sub_80910B4 ldr r0, _08084538 ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage ldr r0, _0808453C b _0808455E .align 2, 0 _08084538: .4byte gUnknown_80FA2B0 _0808453C: .4byte gUnknown_80FA370 _08084540: ldr r0, _080845B0 ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl sub_8052B8C cmp r0, 0x1 bne _080845D4 ldr r0, _080845B4 ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage ldr r0, _080845B8 _0808455E: ldr r4, [r0] movs r1, 0x2 ldrsh r0, [r7, r1] bl sub_80843BC adds r0, r5, 0x4 bl sub_8042A34 movs r1, 0x87 lsls r1, 2 adds r0, r5, 0 movs r2, 0 bl sub_8068FE0 movs r0, 0x1 bl sub_804178C ldr r5, _080845BC _08084582: movs r0, 0 adds r1, r4, 0 movs r2, 0x1 bl sub_8052B8C cmp r0, 0x1 bne _080845C4 ldr r0, _080845C0 ldr r1, [r0] movs r0, 0 movs r2, 0 bl sub_8052B8C adds r1, r0, 0 cmp r1, 0x1 bne _08084582 ldr r0, [r5] strb r1, [r0, 0x4] ldr r1, [r5] movs r0, 0x2 strb r0, [r1, 0x11] b _080845D4 .align 2, 0 _080845B0: .4byte gUnknown_80FA2F0 _080845B4: .4byte gUnknown_80FA260 _080845B8: .4byte gUnknown_80FA36C _080845BC: .4byte gUnknown_203B418 _080845C0: .4byte gUnknown_80FA394 _080845C4: ldr r0, _080845DC ldr r1, [r0] movs r0, 0 movs r2, 0 bl sub_8052B8C cmp r0, 0x1 bne _08084582 _080845D4: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080845DC: .4byte gUnknown_80FA3B8 thumb_func_end sub_8084448 thumb_func_start sub_80845E0 sub_80845E0: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r6, r0, 0 ldr r0, [r6, 0x70] mov r8, r0 movs r7, 0 movs r1, 0 mov r9, r1 ldr r4, _08084620 bl sub_8083600 adds r1, r0, 0 adds r0, r4, 0 movs r2, 0 bl sub_8045B94 adds r4, 0x50 adds r0, r4, 0 adds r1, r6, 0 movs r2, 0 bl sub_8045B94 adds r0, r6, 0 bl sub_8070BC0 lsls r0, 24 cmp r0, 0 bne _08084630 ldr r0, _08084624 b _080846B4 .align 2, 0 _08084620: .4byte gUnknown_202DF98 _08084624: .4byte gUnknown_80FA530 _08084628: adds r7, r4, 0 ldr r2, [r7, 0x70] mov r9, r2 b _08084674 _08084630: movs r5, 0 _08084632: ldr r0, _08084660 ldr r0, [r0] lsls r1, r5, 2 ldr r2, _08084664 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0808466E ldr r0, [r4, 0x70] adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x4A beq _0808465A cmp r0, 0x47 bne _08084668 _0808465A: movs r0, 0x1 b _0808466A .align 2, 0 _08084660: .4byte gUnknown_203B418 _08084664: .4byte 0x0001357c _08084668: movs r0, 0 _0808466A: cmp r0, 0 bne _08084628 _0808466E: adds r5, 0x1 cmp r5, 0x3 ble _08084632 _08084674: cmp r7, 0 bne _08084680 ldr r0, _0808467C b _080846B4 .align 2, 0 _0808467C: .4byte gUnknown_80FA52C _08084680: ldr r0, _0808469C adds r1, r7, 0 movs r2, 0 bl sub_8045B94 adds r0, r7, 0 bl sub_8070BC0 lsls r0, 24 cmp r0, 0 bne _080846A4 ldr r0, _080846A0 b _080846B4 .align 2, 0 _0808469C: .4byte gUnknown_202E038 _080846A0: .4byte gUnknown_80FA54C _080846A4: adds r0, r6, 0 adds r1, r7, 0 bl sub_8045990 lsls r0, 24 cmp r0, 0 bne _080846C4 ldr r0, _080846C0 _080846B4: ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage b _08084768 .align 2, 0 _080846C0: .4byte gUnknown_80FA500 _080846C4: ldr r0, _08084744 ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage mov r1, r8 movs r2, 0x2 ldrsh r0, [r1, r2] bl sub_80843BC ldr r5, _08084748 ldr r0, [r5] ldr r1, _0808474C adds r0, r1 ldrb r1, [r0] mov r0, r9 adds r0, 0x40 strb r1, [r0] adds r0, r6, 0x4 bl sub_8042A34 adds r0, r7, 0x4 bl sub_8042A34 movs r4, 0x87 lsls r4, 2 adds r0, r6, 0 adds r1, r4, 0 movs r2, 0 bl sub_8068FE0 adds r0, r7, 0 adds r1, r4, 0 movs r2, 0 bl sub_8068FE0 movs r0, 0x1 bl sub_804178C ldr r4, _08084750 _08084716: movs r0, 0 ldr r1, [r4] movs r2, 0x1 bl sub_8052B8C cmp r0, 0x1 bne _08084758 ldr r0, _08084754 ldr r1, [r0] movs r0, 0 movs r2, 0 bl sub_8052B8C adds r1, r0, 0 cmp r1, 0x1 bne _08084716 ldr r0, [r5] strb r1, [r0, 0x4] ldr r1, [r5] movs r0, 0x2 strb r0, [r1, 0x11] b _08084768 .align 2, 0 _08084744: .4byte gUnknown_80FA4D4 _08084748: .4byte gUnknown_203B418 _0808474C: .4byte 0x00000644 _08084750: .4byte gUnknown_80FA4D8 _08084754: .4byte gUnknown_80FA394 _08084758: ldr r0, _08084774 ldr r1, [r0] movs r0, 0 movs r2, 0 bl sub_8052B8C cmp r0, 0x1 bne _08084716 _08084768: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08084774: .4byte gUnknown_80FA3B8 thumb_func_end sub_80845E0 thumb_func_start sub_8084778 sub_8084778: push {r4,lr} ldr r0, _080847B8 ldr r1, _080847BC bl strcpy movs r4, 0 _08084784: lsls r0, r4, 24 lsrs r0, 24 bl sub_8096AB4 adds r1, r0, 0 ldrb r0, [r1] cmp r0, 0x6 bne _080847C8 ldr r0, _080847C0 ldr r0, [r0] ldr r2, _080847C4 adds r0, r2 ldrb r0, [r0] ldrb r2, [r1, 0x4] cmp r0, r2 bne _080847C8 ldrb r0, [r1, 0x1] cmp r0, 0x2 bne _080847C8 movs r0, 0xE ldrsh r1, [r1, r0] ldr r0, _080847B8 bl sub_808D908 b _080847CE .align 2, 0 _080847B8: .4byte gUnknown_202E088 _080847BC: .4byte gUnknown_8107224 _080847C0: .4byte gUnknown_203B418 _080847C4: .4byte 0x00000644 _080847C8: adds r4, 0x1 cmp r4, 0x7 ble _08084784 _080847CE: pop {r4} pop {r0} bx r0 thumb_func_end sub_8084778 thumb_func_start sub_80847D4 sub_80847D4: push {r4,r5,lr} ldr r2, _08084820 ldr r0, [r2] ldr r1, _08084824 adds r0, r1 movs r1, 0 strb r1, [r0] ldr r0, [r2] ldr r2, _08084828 adds r0, r2 strb r1, [r0] bl sub_8040A84 movs r4, 0 ldr r0, _0808482C ldrb r0, [r0] cmp r0, 0 beq _08084846 movs r3, 0 _080847FA: ldr r0, _08084820 ldr r0, [r0] ldr r5, _08084830 adds r0, r5 movs r2, 0 ldrsh r1, [r0, r2] adds r0, r1, 0 subs r0, 0x1C cmp r0, 0x15 bhi _08084810 movs r1, 0x1B _08084810: ldr r2, _0808482C adds r0, r3, r2 ldrb r5, [r0] cmp r1, r5 bne _08084834 bl sub_8084854 b _08084846 .align 2, 0 _08084820: .4byte gUnknown_203B418 _08084824: .4byte 0x00003a0d _08084828: .4byte 0x0001356c _0808482C: .4byte gUnknown_8107234 _08084830: .4byte 0x00003a14 _08084834: adds r3, 0x8 adds r4, 0x1 ldr r0, _08084850 cmp r4, r0 bgt _08084846 adds r0, r3, r2 ldrb r0, [r0] cmp r0, 0 bne _080847FA _08084846: bl sub_8097FF8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08084850: .4byte 0x000003e6 thumb_func_end sub_80847D4 thumb_func_start sub_8084854 sub_8084854: push {r4,r5,lr} adds r4, r0, 0 ldr r5, _08084874 ldr r2, [r5] movs r1, 0xCF lsls r1, 3 adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0 beq _0808487C ldrb r1, [r4, 0x5] ldr r3, _08084878 adds r0, r2, r3 strb r1, [r0] b _080848C8 .align 2, 0 _08084874: .4byte gUnknown_203B418 _08084878: .4byte 0x00003a0d _0808487C: ldrb r0, [r4, 0x4] bl sub_8098100 lsls r0, 24 cmp r0, 0 beq _08084898 ldr r0, [r5] ldrb r1, [r4, 0x5] ldr r2, _08084894 adds r0, r2 strb r1, [r0] b _080848C8 .align 2, 0 _08084894: .4byte 0x00003a0d _08084898: ldrb r0, [r4, 0x2] bl sub_8098100 lsls r0, 24 cmp r0, 0 beq _080848B4 ldr r0, [r5] ldrb r1, [r4, 0x3] ldr r3, _080848B0 adds r0, r3 strb r1, [r0] b _080848C8 .align 2, 0 _080848B0: .4byte 0x00003a0d _080848B4: ldr r0, [r5] ldrb r1, [r4, 0x1] ldr r2, _080848E0 adds r0, r2 strb r1, [r0] ldrb r0, [r4, 0x2] cmp r0, 0x40 beq _080848C8 bl sub_8097FA8 _080848C8: ldr r0, _080848E4 ldr r0, [r0] ldr r3, _080848E8 adds r0, r3 movs r1, 0x1 strb r1, [r0] movs r0, 0 bl sub_807E5E4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080848E0: .4byte 0x00003a0d _080848E4: .4byte gUnknown_203B418 _080848E8: .4byte 0x00000675 thumb_func_end sub_8084854 thumb_func_start sub_80848EC sub_80848EC: movs r0, 0x1 bx lr thumb_func_end sub_80848EC thumb_func_start sub_80848F0 sub_80848F0: push {lr} ldr r2, _08084918 ldr r0, [r2] ldr r1, _0808491C adds r0, r1 movs r1, 0x1 strb r1, [r0] ldr r0, [r2] ldr r1, _08084920 adds r0, r1 ldrb r0, [r0] cmp r0, 0x3C bls _0808490C b _08084B5C _0808490C: lsls r0, 2 ldr r1, _08084924 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08084918: .4byte gUnknown_203B418 _0808491C: .4byte 0x0001356c _08084920: .4byte 0x00003a0d _08084924: .4byte _08084928 .align 2, 0 _08084928: .4byte _08084A1C .4byte _08084A2C .4byte _08084A2C .4byte _08084A32 .4byte _08084A38 .4byte _08084A38 .4byte _08084A3E .4byte _08084A44 .4byte _08084A44 .4byte _08084A4A .4byte _08084A50 .4byte _08084A50 .4byte _08084A56 .4byte _08084A5C .4byte _08084A62 .4byte _08084A68 .4byte _08084A6E .4byte _08084A74 .4byte _08084A7A .4byte _08084A80 .4byte _08084A86 .4byte _08084A8C .4byte _08084A92 .4byte _08084A98 .4byte _08084A98 .4byte _08084A9E .4byte _08084AA4 .4byte _08084AA4 .4byte _08084AAA .4byte _08084AB0 .4byte _08084AB0 .4byte _08084AB6 .4byte _08084ABC .4byte _08084ABC .4byte _08084AC2 .4byte _08084AC8 .4byte _08084ACE .4byte _08084AD4 .4byte _08084ADA .4byte _08084AE0 .4byte _08084AE6 .4byte _08084AEC .4byte _08084AF2 .4byte _08084AF8 .4byte _08084AFE .4byte _08084B04 .4byte _08084B0A .4byte _08084B10 .4byte _08084B16 .4byte _08084B1C .4byte _08084B22 .4byte _08084B28 .4byte _08084B2E .4byte _08084B34 .4byte _08084B3A .4byte _08084B40 .4byte _08084B46 .4byte _08084B4C .4byte _08084B52 .4byte _08084B58 .4byte _08084A1C _08084A1C: ldr r0, [r2] ldr r1, _08084A28 adds r0, r1 movs r1, 0 strb r1, [r0] b _08084B5C .align 2, 0 _08084A28: .4byte 0x0001356c _08084A2C: bl sub_8086B14 b _08084B5C _08084A32: bl sub_8086B94 b _08084B5C _08084A38: bl sub_8086E9C b _08084B5C _08084A3E: bl sub_8086F00 b _08084B5C _08084A44: bl sub_8087230 b _08084B5C _08084A4A: bl sub_808729C b _08084B5C _08084A50: bl sub_80877E8 b _08084B5C _08084A56: bl sub_8087848 b _08084B5C _08084A5C: bl sub_8087F54 b _08084B5C _08084A62: bl sub_8087FB4 b _08084B5C _08084A68: bl sub_8087FF8 b _08084B5C _08084A6E: bl sub_80885A0 b _08084B5C _08084A74: bl sub_80885C4 b _08084B5C _08084A7A: bl sub_808862C b _08084B5C _08084A80: bl sub_80886C4 b _08084B5C _08084A86: bl sub_808875C b _08084B5C _08084A8C: bl sub_8088DC0 b _08084B5C _08084A92: bl sub_8088E5C b _08084B5C _08084A98: bl sub_80892C8 b _08084B5C _08084A9E: bl sub_8089328 b _08084B5C _08084AA4: bl sub_808970C b _08084B5C _08084AAA: bl sub_808974C b _08084B5C _08084AB0: bl sub_8089914 b _08084B5C _08084AB6: bl sub_8089978 b _08084B5C _08084ABC: bl sub_8089C44 b _08084B5C _08084AC2: bl sub_8089C90 b _08084B5C _08084AC8: bl sub_8089EFC b _08084B5C _08084ACE: bl sub_8089F44 b _08084B5C _08084AD4: bl sub_8089F8C b _08084B5C _08084ADA: bl sub_808A264 b _08084B5C _08084AE0: bl sub_808A2C0 b _08084B5C _08084AE6: bl sub_808A308 b _08084B5C _08084AEC: bl sub_808A608 b _08084B5C _08084AF2: bl sub_808A668 b _08084B5C _08084AF8: bl sub_808A9E4 b _08084B5C _08084AFE: bl sub_808AA3C b _08084B5C _08084B04: bl sub_808AA94 b _08084B5C _08084B0A: bl sub_808ACC0 b _08084B5C _08084B10: bl sub_808AD48 b _08084B5C _08084B16: bl sub_808ADCC b _08084B5C _08084B1C: bl sub_808B2F4 b _08084B5C _08084B22: bl sub_808B35C b _08084B5C _08084B28: bl sub_808BDEC b _08084B5C _08084B2E: bl sub_808C10C b _08084B5C _08084B34: bl sub_808C3A0 b _08084B5C _08084B3A: bl sub_808C5C0 b _08084B5C _08084B40: bl sub_808C938 b _08084B5C _08084B46: bl sub_808C9C4 b _08084B5C _08084B4C: bl sub_808CB5C b _08084B5C _08084B52: bl sub_808CBB0 b _08084B5C _08084B58: bl sub_808CD44 _08084B5C: bl sub_8097FF8 pop {r0} bx r0 thumb_func_end sub_80848F0 thumb_func_start sub_8084B64 sub_8084B64: push {lr} ldr r0, _08084B80 ldr r0, [r0] ldr r1, _08084B84 adds r0, r1 ldrb r0, [r0] cmp r0, 0x3C bls _08084B76 b _08084DDA _08084B76: lsls r0, 2 ldr r1, _08084B88 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08084B80: .4byte gUnknown_203B418 _08084B84: .4byte 0x00003a0d _08084B88: .4byte _08084B8C .align 2, 0 _08084B8C: .4byte _08084DDA .4byte _08084C80 .4byte _08084C86 .4byte _08084C8C .4byte _08084C92 .4byte _08084C98 .4byte _08084C9E .4byte _08084CA4 .4byte _08084CAA .4byte _08084CB0 .4byte _08084CB6 .4byte _08084CBC .4byte _08084CC2 .4byte _08084CC8 .4byte _08084CCE .4byte _08084CD4 .4byte _08084CDA .4byte _08084CE0 .4byte _08084CE6 .4byte _08084CEC .4byte _08084CF2 .4byte _08084CF8 .4byte _08084CFE .4byte _08084D04 .4byte _08084D0A .4byte _08084D10 .4byte _08084D16 .4byte _08084D1C .4byte _08084D22 .4byte _08084D28 .4byte _08084D28 .4byte _08084D2E .4byte _08084D34 .4byte _08084D3A .4byte _08084D40 .4byte _08084D46 .4byte _08084D4C .4byte _08084D52 .4byte _08084D58 .4byte _08084D5E .4byte _08084D64 .4byte _08084D6A .4byte _08084D70 .4byte _08084D76 .4byte _08084D7C .4byte _08084D82 .4byte _08084D88 .4byte _08084D8E .4byte _08084D94 .4byte _08084D9A .4byte _08084DA0 .4byte _08084DA6 .4byte _08084DAC .4byte _08084DB2 .4byte _08084DB8 .4byte _08084DBE .4byte _08084DC4 .4byte _08084DCA .4byte _08084DD0 .4byte _08084DD6 .4byte _08084DDA _08084C80: bl sub_8086C0C b _08084DDA _08084C86: bl sub_8086DAC b _08084DDA _08084C8C: bl sub_8086E40 b _08084DDA _08084C92: bl sub_8086FB8 b _08084DDA _08084C98: bl sub_8087064 b _08084DDA _08084C9E: bl sub_8087130 b _08084DDA _08084CA4: bl sub_8087364 b _08084DDA _08084CAA: bl sub_80875C0 b _08084DDA _08084CB0: bl sub_808765C b _08084DDA _08084CB6: bl sub_8087924 b _08084DDA _08084CBC: bl sub_8087B20 b _08084DDA _08084CC2: bl sub_8087C38 b _08084DDA _08084CC8: bl sub_80880B8 b _08084DDA _08084CCE: bl sub_8088304 b _08084DDA _08084CD4: bl sub_8088398 b _08084DDA _08084CDA: bl sub_8088608 b _08084DDA _08084CE0: bl sub_8088618 b _08084DDA _08084CE6: bl sub_8088854 b _08084DDA _08084CEC: bl sub_8088A9C b _08084DDA _08084CF2: bl sub_8088B60 b _08084DDA _08084CF8: bl sub_8088EF4 b _08084DDA _08084CFE: bl sub_8089168 b _08084DDA _08084D04: bl sub_80893E4 b _08084DDA _08084D0A: bl sub_8089500 b _08084DDA _08084D10: bl sub_8089588 b _08084DDA _08084D16: bl sub_80897F0 b _08084DDA _08084D1C: bl sub_8089878 b _08084DDA _08084D22: bl sub_80898E4 b _08084DDA _08084D28: bl sub_8089A30 b _08084DDA _08084D2E: bl sub_8089AD4 b _08084DDA _08084D34: bl sub_8089D2C b _08084DDA _08084D3A: bl sub_8089D8C b _08084DDA _08084D40: bl sub_8089DEC b _08084DDA _08084D46: bl sub_808A020 b _08084DDA _08084D4C: bl sub_808A0C8 b _08084DDA _08084D52: bl sub_808A144 b _08084DDA _08084D58: bl sub_808A39C b _08084DDA _08084D5E: bl sub_808A454 b _08084DDA _08084D64: bl sub_808A4B0 b _08084DDA _08084D6A: bl sub_808A724 b _08084DDA _08084D70: bl sub_808A828 b _08084DDA _08084D76: bl sub_808AB20 b _08084DDA _08084D7C: bl sub_808ABD8 b _08084DDA _08084D82: bl sub_808AC3C b _08084DDA _08084D88: bl sub_808B130 b _08084DDA _08084D8E: bl sub_808B164 b _08084DDA _08084D94: bl sub_808B198 b _08084DDA _08084D9A: bl sub_808B45C b _08084DDA _08084DA0: bl sub_808BA78 b _08084DDA _08084DA6: bl sub_808BE94 b _08084DDA _08084DAC: bl sub_808C1CC b _08084DDA _08084DB2: bl sub_808C43C b _08084DDA _08084DB8: bl sub_808C628 b _08084DDA _08084DBE: bl sub_808C998 b _08084DDA _08084DC4: bl sub_808CA1C b _08084DDA _08084DCA: bl nullsub_101 b _08084DDA _08084DD0: bl sub_808CC04 b _08084DDA _08084DD6: bl sub_808CD9C _08084DDA: bl sub_8085764 bl sub_80857B8 ldr r0, _08084DF8 ldr r0, [r0] ldr r1, _08084DFC adds r0, r1 movs r1, 0 strb r1, [r0] bl sub_8097FF8 pop {r0} bx r0 .align 2, 0 _08084DF8: .4byte gUnknown_203B418 _08084DFC: .4byte 0x0001356c thumb_func_end sub_8084B64 thumb_func_start sub_8084E00 sub_8084E00: push {r4,r5,lr} adds r4, r0, 0 lsls r1, 24 lsrs r3, r1, 24 lsls r2, 24 lsrs r5, r2, 24 cmp r3, 0 bne _08084E12 b _0808512E _08084E12: ldr r1, _08084E30 ldr r0, [r1] ldr r2, _08084E34 adds r0, r2 ldrb r0, [r0] adds r2, r1, 0 cmp r0, 0x3C bls _08084E24 b _0808511A _08084E24: lsls r0, 2 ldr r1, _08084E38 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08084E30: .4byte gUnknown_203B418 _08084E34: .4byte 0x00003a0d _08084E38: .4byte _08084E3C .align 2, 0 _08084E3C: .4byte _0808511A .4byte _08084F30 .4byte _08084F30 .4byte _0808511A .4byte _08084F44 .4byte _08084F44 .4byte _0808511A .4byte _08084F58 .4byte _08084F58 .4byte _08084F58 .4byte _08084F6C .4byte _08084F6C .4byte _08084F6C .4byte _08084F80 .4byte _08084F80 .4byte _08084F80 .4byte _0808511A .4byte _0808511A .4byte _08084F94 .4byte _08084F94 .4byte _08084F94 .4byte _0808511A .4byte _0808511A .4byte _08084FA8 .4byte _08084FA8 .4byte _08084FA8 .4byte _08084FBC .4byte _08084FBC .4byte _0808511A .4byte _08084FD4 .4byte _08084FD4 .4byte _08084FD4 .4byte _08084FE8 .4byte _08084FE8 .4byte _08084FE8 .4byte _08084FFC .4byte _08084FFC .4byte _08084FFC .4byte _08085010 .4byte _08085010 .4byte _08085010 .4byte _08085024 .4byte _08085024 .4byte _08085038 .4byte _08085038 .4byte _08085038 .4byte _0808504C .4byte _08085064 .4byte _0808507C .4byte _08085094 .4byte _08085094 .4byte _080850AC .4byte _080850C4 .4byte _080850DC .4byte _080850F4 .4byte _0808510C .4byte _0808511A .4byte _0808511A .4byte _0808511A .4byte _0808511A .4byte _0808511A _08084F30: ldr r0, [r2] ldr r1, _08084F40 adds r0, r1 ldrb r1, [r0] adds r0, r3, 0 bl sub_8086BDC b _0808511A .align 2, 0 _08084F40: .4byte 0x00003a0d _08084F44: ldr r0, [r2] ldr r2, _08084F54 adds r0, r2 ldrb r1, [r0] adds r0, r3, 0 bl sub_8086F54 b _0808511A .align 2, 0 _08084F54: .4byte 0x00003a0d _08084F58: ldr r0, [r2] ldr r1, _08084F68 adds r0, r1 ldrb r1, [r0] adds r0, r3, 0 bl sub_8087334 b _0808511A .align 2, 0 _08084F68: .4byte 0x00003a0d _08084F6C: ldr r0, [r2] ldr r2, _08084F7C adds r0, r2 ldrb r1, [r0] adds r0, r3, 0 bl sub_80878F4 b _0808511A .align 2, 0 _08084F7C: .4byte 0x00003a0d _08084F80: ldr r0, [r2] ldr r1, _08084F90 adds r0, r1 ldrb r1, [r0] adds r0, r3, 0 bl sub_8088088 b _0808511A .align 2, 0 _08084F90: .4byte 0x00003a0d _08084F94: ldr r0, [r2] ldr r2, _08084FA4 adds r0, r2 ldrb r1, [r0] adds r0, r3, 0 bl sub_8088818 b _0808511A .align 2, 0 _08084FA4: .4byte 0x00003a0d _08084FA8: ldr r0, [r2] ldr r1, _08084FB8 adds r0, r1 ldrb r1, [r0] adds r0, r3, 0 bl sub_80893B4 b _0808511A .align 2, 0 _08084FB8: .4byte 0x00003a0d _08084FBC: ldr r0, [r2] ldr r2, _08084FD0 adds r0, r2 ldrb r2, [r0] adds r0, r4, 0 adds r1, r3, 0 bl sub_8089788 b _0808511A .align 2, 0 _08084FD0: .4byte 0x00003a0d _08084FD4: ldr r0, [r2] ldr r1, _08084FE4 adds r0, r1 ldrb r1, [r0] adds r0, r3, 0 bl sub_8089A00 b _0808511A .align 2, 0 _08084FE4: .4byte 0x00003a0d _08084FE8: ldr r0, [r2] ldr r2, _08084FF8 adds r0, r2 ldrb r1, [r0] adds r0, r3, 0 bl sub_8089CFC b _0808511A .align 2, 0 _08084FF8: .4byte 0x00003a0d _08084FFC: ldr r0, [r2] ldr r1, _0808500C adds r0, r1 ldrb r1, [r0] adds r0, r3, 0 bl sub_8089FF0 b _0808511A .align 2, 0 _0808500C: .4byte 0x00003a0d _08085010: ldr r0, [r2] ldr r2, _08085020 adds r0, r2 ldrb r1, [r0] adds r0, r3, 0 bl sub_808A36C b _0808511A .align 2, 0 _08085020: .4byte 0x00003a0d _08085024: ldr r0, [r2] ldr r1, _08085034 adds r0, r1 ldrb r1, [r0] adds r0, r3, 0 bl sub_808A6E8 b _0808511A .align 2, 0 _08085034: .4byte 0x00003a0d _08085038: ldr r0, [r2] ldr r2, _08085048 adds r0, r2 ldrb r1, [r0] adds r0, r3, 0 bl sub_808AAF0 b _0808511A .align 2, 0 _08085048: .4byte 0x00003a0d _0808504C: ldr r0, [r2] ldr r1, _08085060 adds r0, r1 ldrb r1, [r0] adds r2, r4, 0x4 adds r0, r3, 0 bl sub_808AE54 b _0808511A .align 2, 0 _08085060: .4byte 0x00003a0d _08085064: ldr r0, [r2] ldr r2, _08085078 adds r0, r2 ldrb r1, [r0] adds r2, r4, 0x4 adds r0, r3, 0 bl sub_808AEC8 b _0808511A .align 2, 0 _08085078: .4byte 0x00003a0d _0808507C: ldr r0, [r2] ldr r1, _08085090 adds r0, r1 ldrb r1, [r0] adds r2, r4, 0x4 adds r0, r3, 0 bl sub_808AF3C b _0808511A .align 2, 0 _08085090: .4byte 0x00003a0d _08085094: ldr r0, [r2] ldr r2, _080850A8 adds r0, r2 ldrb r1, [r0] adds r0, r3, 0 adds r2, r5, 0 bl sub_808B3E4 b _0808511A .align 2, 0 _080850A8: .4byte 0x00003a0d _080850AC: ldr r0, [r2] ldr r1, _080850C0 adds r0, r1 ldrb r1, [r0] adds r0, r3, 0 adds r2, r5, 0 bl sub_808BE70 b _0808511A .align 2, 0 _080850C0: .4byte 0x00003a0d _080850C4: ldr r0, [r2] ldr r2, _080850D8 adds r0, r2 ldrb r1, [r0] adds r0, r3, 0 adds r2, r5, 0 bl sub_808C1A4 b _0808511A .align 2, 0 _080850D8: .4byte 0x00003a0d _080850DC: ldr r0, [r2] ldr r1, _080850F0 adds r0, r1 ldrb r1, [r0] adds r0, r3, 0 adds r2, r5, 0 bl sub_808C414 b _0808511A .align 2, 0 _080850F0: .4byte 0x00003a0d _080850F4: ldr r0, [r2] ldr r2, _08085108 adds r0, r2 ldrb r1, [r0] adds r0, r3, 0 adds r2, r5, 0 bl nullsub_100 b _0808511A .align 2, 0 _08085108: .4byte 0x00003a0d _0808510C: ldr r0, [r2] ldr r1, _08085134 adds r0, r1 ldrb r1, [r0] adds r0, r4, 0 bl sub_808C948 _0808511A: cmp r5, 0 bne _0808512E ldr r0, _08085138 ldr r0, [r0] ldrb r0, [r0, 0x2] cmp r0, 0 beq _0808512E ldr r0, _0808513C bl sub_8083E88 _0808512E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08085134: .4byte 0x00003a0d _08085138: .4byte gUnknown_203B418 _0808513C: .4byte 0x000003e7 thumb_func_end sub_8084E00 thumb_func_start sub_8085140 sub_8085140: push {lr} ldr r1, _08085160 ldr r0, [r1] ldr r2, _08085164 adds r0, r2 ldrb r0, [r0] adds r2, r1, 0 cmp r0, 0x3C bls _08085154 b _08085294 _08085154: lsls r0, 2 ldr r1, _08085168 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08085160: .4byte gUnknown_203B418 _08085164: .4byte 0x00003a0d _08085168: .4byte _0808516C .align 2, 0 _0808516C: .4byte _08085294 .4byte _08085294 .4byte _08085294 .4byte _08085294 .4byte _08085294 .4byte _08085294 .4byte _08085294 .4byte _08085294 .4byte _08085294 .4byte _08085294 .4byte _08085294 .4byte _08085294 .4byte _08085294 .4byte _08085294 .4byte _08085294 .4byte _08085294 .4byte _08085294 .4byte _08085294 .4byte _08085294 .4byte _08085294 .4byte _08085294 .4byte _08085294 .4byte _08085294 .4byte _08085294 .4byte _08085294 .4byte _08085294 .4byte _08085294 .4byte _08085294 .4byte _08085294 .4byte _08085294 .4byte _08085294 .4byte _08085294 .4byte _08085294 .4byte _08085294 .4byte _08085294 .4byte _08085294 .4byte _08085294 .4byte _08085294 .4byte _08085294 .4byte _08085294 .4byte _08085294 .4byte _08085294 .4byte _08085294 .4byte _08085294 .4byte _08085294 .4byte _08085294 .4byte _08085260 .4byte _08085274 .4byte _08085288 .4byte _08085294 .4byte _08085294 .4byte _08085294 .4byte _08085294 .4byte _08085294 .4byte _08085294 .4byte _08085294 .4byte _08085294 .4byte _08085294 .4byte _08085294 .4byte _08085294 .4byte _08085294 _08085260: ldr r0, [r2] ldr r1, _08085270 adds r0, r1 ldrb r0, [r0] bl sub_808AFB0 b _08085294 .align 2, 0 _08085270: .4byte 0x00003a0d _08085274: ldr r0, [r2] ldr r2, _08085284 adds r0, r2 ldrb r0, [r0] bl sub_808B030 b _08085294 .align 2, 0 _08085284: .4byte 0x00003a0d _08085288: ldr r0, [r2] ldr r1, _08085298 adds r0, r1 ldrb r0, [r0] bl sub_808B0B0 _08085294: pop {r0} bx r0 .align 2, 0 _08085298: .4byte 0x00003a0d thumb_func_end sub_8085140 thumb_func_start sub_808529C sub_808529C: push {lr} lsls r0, 16 asrs r1, r0, 16 adds r2, r1, 0 movs r3, 0x40 movs r0, 0x86 lsls r0, 1 cmp r1, r0 beq _08085348 cmp r1, r0 bgt _080852E0 cmp r1, 0x90 beq _08085334 cmp r1, 0x90 bgt _080852CE cmp r1, 0x38 beq _08085354 cmp r1, 0x38 bgt _080852C8 cmp r1, 0x17 beq _08085328 b _0808535A _080852C8: cmp r1, 0x5E beq _08085328 b _0808535A _080852CE: cmp r1, 0x92 beq _08085330 cmp r1, 0x92 blt _0808532C cmp r1, 0x96 beq _08085340 cmp r1, 0xFC beq _08085324 b _0808535A _080852E0: ldr r0, _08085304 cmp r1, r0 beq _08085358 cmp r1, r0 bgt _08085308 subs r0, 0x87 cmp r1, r0 beq _0808534C cmp r1, r0 blt _08085344 adds r0, 0x5 cmp r1, r0 beq _08085350 adds r0, 0x3A cmp r1, r0 beq _08085328 b _0808535A .align 2, 0 _08085304: .4byte 0x00000195 _08085308: ldr r0, _08085320 cmp r2, r0 beq _08085358 cmp r2, r0 blt _08085358 adds r0, 0x4 cmp r2, r0 beq _08085338 adds r0, 0x1 cmp r2, r0 beq _0808533C b _0808535A .align 2, 0 _08085320: .4byte 0x00000197 _08085324: movs r3, 0x1 b _0808535A _08085328: movs r3, 0x3 b _0808535A _0808532C: movs r3, 0x5 b _0808535A _08085330: movs r3, 0x7 b _0808535A _08085334: movs r3, 0x9 b _0808535A _08085338: movs r3, 0xC b _0808535A _0808533C: movs r3, 0xF b _0808535A _08085340: movs r3, 0x13 b _0808535A _08085344: movs r3, 0x15 b _0808535A _08085348: movs r3, 0x17 b _0808535A _0808534C: movs r3, 0x19 b _0808535A _08085350: movs r3, 0x1A b _0808535A _08085354: movs r3, 0x11 b _0808535A _08085358: movs r3, 0x1D _0808535A: cmp r3, 0x40 beq _0808536E adds r0, r3, 0 bl sub_8098100 lsls r0, 24 cmp r0, 0 bne _0808536E movs r0, 0 b _08085370 _0808536E: movs r0, 0x1 _08085370: pop {r1} bx r1 thumb_func_end sub_808529C thumb_func_start sub_8085374 sub_8085374: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x14 movs r7, 0 movs r6, 0 bl sub_808D3F8 movs r2, 0x8 ldrsh r1, [r0, r2] mov r8, r1 movs r5, 0 _0808538E: ldr r0, _08085444 ldr r0, [r0] lsls r1, r5, 2 ldr r2, _08085448 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080853BE ldr r1, [r4, 0x70] ldrb r0, [r1, 0x7] cmp r0, 0 beq _080853B2 adds r7, r4, 0 _080853B2: adds r0, r1, 0 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x41 bne _080853BE adds r6, r4, 0 _080853BE: adds r5, 0x1 cmp r5, 0x3 ble _0808538E cmp r7, 0 beq _0808546E cmp r6, 0 bne _0808546E ldr r0, _08085444 ldr r0, [r0] ldr r1, _0808544C adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _0808546E movs r6, 0 ldr r0, _08085450 ldr r4, [r0] movs r2, 0 ldrsh r0, [r0, r2] cmp r0, 0x63 beq _0808546E mov r5, sp movs r0, 0 mov r9, r0 _080853EE: ldrh r0, [r7, 0x4] adds r0, r4 lsls r0, 16 lsrs r0, 16 ldr r1, _08085454 ands r4, r1 orrs r4, r0 asrs r1, r4, 16 ldrh r2, [r7, 0x6] adds r1, r2 lsls r1, 16 ldr r0, _08085458 ands r4, r0 orrs r4, r1 lsls r0, r4, 16 asrs r0, 16 asrs r1, r4, 16 bl sub_804954C adds r1, r0, 0 mov r0, r8 bl sub_807034C lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _0808545C mov r0, r8 strh r0, [r5] movs r0, 0x1 strh r0, [r5, 0x8] movs r0, 0x2 strb r0, [r5, 0x2] str r4, [sp, 0xC] str r1, [sp, 0x4] mov r1, r9 strb r1, [r5, 0x10] mov r0, sp movs r1, 0x1 bl sub_806B7F8 b _0808546E .align 2, 0 _08085444: .4byte gUnknown_203B418 _08085448: .4byte 0x0001357c _0808544C: .4byte 0x0000065c _08085450: .4byte gUnknown_80F4598 _08085454: .4byte 0xffff0000 _08085458: .4byte 0x0000ffff _0808545C: adds r6, 0x1 ldr r0, _0808547C lsls r1, r6, 2 adds r1, r0 ldr r4, [r1] movs r2, 0 ldrsh r0, [r1, r2] cmp r0, 0x63 bne _080853EE _0808546E: add sp, 0x14 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0808547C: .4byte gUnknown_80F4598 thumb_func_end sub_8085374 thumb_func_start sub_8085480 sub_8085480: push {lr} bl sub_8083600 pop {r1} bx r1 thumb_func_end sub_8085480 thumb_func_start sub_808548C sub_808548C: push {r4,r5,lr} movs r5, 0 _08085490: ldr r0, _080854B8 ldr r0, [r0] lsls r1, r5, 2 ldr r2, _080854BC adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080854C0 ldr r0, [r4, 0x70] adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x41 bne _080854C0 adds r0, r4, 0 b _080854CC .align 2, 0 _080854B8: .4byte gUnknown_203B418 _080854BC: .4byte 0x0001357c _080854C0: adds r5, 0x1 cmp r5, 0x3 ble _08085490 movs r0, 0x2 bl sub_8085680 _080854CC: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_808548C thumb_func_start sub_80854D4 sub_80854D4: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x20 movs r6, 0 movs r5, 0 add r0, sp, 0x10 mov r8, r0 mov r7, sp _080854E6: ldr r0, _080855D8 ldr r0, [r0] lsls r1, r5, 2 ldr r2, _080855DC adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08085504 stm r7!, {r4} adds r6, 0x1 _08085504: adds r5, 0x1 cmp r5, 0x3 ble _080854E6 cmp r6, 0x3 bgt _0808551C movs r1, 0 lsls r0, r6, 2 add r0, sp _08085514: stm r0!, {r1} adds r6, 0x1 cmp r6, 0x3 ble _08085514 _0808551C: movs r6, 0 movs r4, 0 mov r2, sp mov r3, r8 movs r5, 0x3 _08085526: ldr r1, [r2] cmp r1, 0 beq _0808553A ldr r0, [r1, 0x70] ldrb r0, [r0, 0x7] cmp r0, 0 beq _0808553A str r4, [r2] stm r3!, {r1} adds r6, 0x1 _0808553A: adds r2, 0x4 subs r5, 0x1 cmp r5, 0 bge _08085526 movs r4, 0 mov r2, sp lsls r0, r6, 2 mov r1, r8 adds r3, r0, r1 movs r5, 0x3 _0808554E: ldr r1, [r2] cmp r1, 0 beq _08085564 ldr r0, [r1, 0x70] adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x41 bne _08085564 str r4, [r2] stm r3!, {r1} adds r6, 0x1 _08085564: adds r2, 0x4 subs r5, 0x1 cmp r5, 0 bge _0808554E movs r3, 0 mov r2, sp lsls r0, r6, 2 add r0, r8 movs r5, 0x3 _08085576: ldr r1, [r2] cmp r1, 0 beq _08085582 str r3, [r2] stm r0!, {r1} adds r6, 0x1 _08085582: adds r2, 0x4 subs r5, 0x1 cmp r5, 0 bge _08085576 cmp r6, 0x3 bgt _0808559C movs r1, 0 lsls r0, r6, 2 add r0, r8 _08085594: stm r0!, {r1} adds r6, 0x1 cmp r6, 0x3 ble _08085594 _0808559C: movs r5, 0 mov r4, r8 _080855A0: lsls r1, r5, 2 ldr r3, [r4] cmp r3, 0 beq _080855C4 ldr r0, _080855D8 ldr r0, [r0] adds r0, r1 ldr r2, _080855E0 adds r1, r0, r2 movs r6, 0 ldrsh r1, [r1, r6] adds r2, 0x2 adds r0, r2 movs r6, 0 ldrsh r2, [r0, r6] adds r0, r3, 0 bl sub_80856C8 _080855C4: adds r4, 0x4 adds r5, 0x1 cmp r5, 0x3 ble _080855A0 add sp, 0x20 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080855D8: .4byte gUnknown_203B418 _080855DC: .4byte 0x0001357c _080855E0: .4byte 0x0000e220 thumb_func_end sub_80854D4 thumb_func_start sub_80855E4 sub_80855E4: push {r4-r7,lr} adds r6, r0, 0 movs r7, 0 movs r5, 0 _080855EC: ldr r0, _08085634 ldr r0, [r0] lsls r1, r5, 2 ldr r2, _08085638 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08085618 ldr r0, [r4, 0x70] adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x41 bne _08085612 movs r7, 0x1 _08085612: adds r0, r4, 0 bl _call_via_r6 _08085618: adds r5, 0x1 cmp r5, 0x3 ble _080855EC cmp r7, 0 bne _0808562E bl sub_808548C cmp r0, 0 beq _0808562E bl _call_via_r6 _0808562E: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08085634: .4byte gUnknown_203B418 _08085638: .4byte 0x0001357c thumb_func_end sub_80855E4 thumb_func_start sub_808563C sub_808563C: push {r4-r6,lr} adds r6, r0, 0 movs r5, 0 _08085642: ldr r0, _08085678 ldr r0, [r0] lsls r1, r5, 2 ldr r2, _0808567C adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0808566C ldr r0, [r4, 0x70] adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x41 beq _0808566C adds r0, r4, 0 bl _call_via_r6 _0808566C: adds r5, 0x1 cmp r5, 0xF ble _08085642 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08085678: .4byte gUnknown_203B418 _0808567C: .4byte 0x0001358c thumb_func_end sub_808563C thumb_func_start sub_8085680 sub_8085680: push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 movs r5, 0 _08085688: ldr r0, _080856B0 ldr r0, [r0] lsls r1, r5, 2 ldr r2, _080856B4 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080856B8 ldr r0, [r4, 0x70] adds r0, 0xA4 ldrb r0, [r0] cmp r0, r6 bne _080856B8 adds r0, r4, 0 b _080856C0 .align 2, 0 _080856B0: .4byte gUnknown_203B418 _080856B4: .4byte 0x000135cc _080856B8: adds r5, 0x1 cmp r5, 0x13 ble _08085688 movs r0, 0 _080856C0: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8085680 thumb_func_start sub_80856C8 sub_80856C8: push {r4,lr} adds r4, r0, 0 movs r3, 0x1 bl sub_80694C0 adds r0, r4, 0 movs r1, 0 bl sub_804535C pop {r4} pop {r0} bx r0 thumb_func_end sub_80856C8 thumb_func_start sub_80856E0 sub_80856E0: push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 adds r7, r1, 0 ldr r0, [r6, 0x70] mov r8, r0 adds r0, r6, 0 movs r1, 0x6 adds r2, r7, 0 bl sub_80861D4 movs r5, 0xBA lsls r5, 1 add r5, r8 movs r4, 0x4 _08085700: ldr r0, [r5] movs r1, 0x80 lsls r1, 2 adds r0, r1 str r0, [r5] movs r0, 0x46 bl sub_803E46C subs r4, 0x1 cmp r4, 0 bge _08085700 movs r1, 0x7 adds r0, r7, 0 ands r0, r1 mov r1, r8 adds r1, 0x46 strb r0, [r1] adds r0, r6, 0 adds r1, r7, 0 bl sub_806CE68 movs r5, 0xBA lsls r5, 1 add r5, r8 movs r4, 0x4 _08085732: ldr r0, [r5] ldr r1, _08085760 adds r0, r1 str r0, [r5] movs r0, 0x46 bl sub_803E46C subs r4, 0x1 cmp r4, 0 bge _08085732 movs r1, 0xBA lsls r1, 1 add r1, r8 movs r0, 0 str r0, [r1] movs r0, 0x46 bl sub_803E46C pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08085760: .4byte 0xfffffe00 thumb_func_end sub_80856E0 thumb_func_start sub_8085764 sub_8085764: push {r4,r5,lr} sub sp, 0x74 mov r0, sp bl sub_80457DC movs r5, 0 _08085770: ldr r0, _080857AC ldr r0, [r0] lsls r1, r5, 2 ldr r2, _080857B0 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0808579E ldr r0, [r4, 0x70] adds r0, 0xA4 ldrb r0, [r0] cmp r0, 0x2 bne _0808579E adds r0, r4, 0 ldr r1, _080857B4 mov r2, sp bl sub_8068FE0 _0808579E: adds r5, 0x1 cmp r5, 0xF ble _08085770 add sp, 0x74 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080857AC: .4byte gUnknown_203B418 _080857B0: .4byte 0x0001358c _080857B4: .4byte 0x00000207 thumb_func_end sub_8085764 thumb_func_start sub_80857B8 sub_80857B8: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} movs r7, 0 ldr r0, _08085854 mov r9, r0 ldr r1, _08085858 mov r8, r1 _080857CA: mov r2, r9 ldr r0, [r2] lsls r1, r7, 2 ldr r3, _0808585C adds r0, r3 adds r0, r1 ldr r6, [r0] adds r0, r6, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08085840 ldr r5, [r6, 0x70] mov r0, r9 ldr r1, [r0] ldrb r0, [r1, 0x4] cmp r0, 0 bne _08085840 ldrb r4, [r1, 0x2] cmp r4, 0 bne _08085840 adds r0, r6, 0 movs r1, 0 bl sub_804535C movs r1, 0xAE lsls r1, 1 adds r0, r5, r1 strb r4, [r0] adds r1, r5, 0 adds r1, 0xFE movs r0, 0x63 strb r0, [r1] adds r2, r5, 0 adds r2, 0x46 ldrb r0, [r2] lsls r0, 2 add r0, r8 ldrh r1, [r6, 0x4] ldrh r0, [r0] adds r1, r0 movs r3, 0xB6 lsls r3, 1 adds r0, r5, r3 strh r1, [r0] ldrb r0, [r2] lsls r0, 2 add r0, r8 ldrh r1, [r6, 0x6] ldrh r0, [r0, 0x2] adds r1, r0 adds r3, 0x2 adds r0, r5, r3 strh r1, [r0] ldrb r1, [r2] adds r0, r6, 0 bl sub_806CE68 _08085840: adds r7, 0x1 cmp r7, 0x13 ble _080857CA pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08085854: .4byte gUnknown_203B418 _08085858: .4byte gUnknown_80F4448 _0808585C: .4byte 0x000135cc thumb_func_end sub_80857B8 thumb_func_start sub_8085860 sub_8085860: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r0, 0 bl sub_803F4A0 lsls r0, r4, 1 adds r0, r4 lsls r0, 11 movs r1, 0xC0 lsls r1, 4 adds r0, r1 lsls r1, r5, 1 adds r1, r5 lsls r1, 11 movs r2, 0x80 lsls r2, 5 adds r1, r2 bl sub_803F878 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8085860 thumb_func_start sub_8085890 sub_8085890: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r0, 0 bl sub_803F4A0 adds r0, r4, 0 adds r1, r5, 0 bl sub_803F878 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8085890 thumb_func_start sub_80858AC sub_80858AC: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r7, r0, 0 adds r4, r1, 0 bl sub_803F994 adds r6, r0, 0 bl sub_803F9B0 adds r5, r0, 0 ldr r0, [r7] subs r0, r6 adds r1, r4, 0 bl __divsi3 mov r9, r0 ldr r0, [r7, 0x4] subs r0, r5 adds r1, r4, 0 bl __divsi3 mov r8, r0 movs r0, 0 bl sub_803F4A0 cmp r4, 0 ble _080858FE _080858E6: add r6, r9 add r5, r8 adds r0, r6, 0 adds r1, r5, 0 bl sub_803F878 movs r0, 0x46 bl sub_803E46C subs r4, 0x1 cmp r4, 0 bne _080858E6 _080858FE: ldr r0, [r7] ldr r1, [r7, 0x4] bl sub_803F878 movs r0, 0x46 bl sub_803E46C pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80858AC thumb_func_start sub_8085918 sub_8085918: push {r4,lr} ldr r3, [r0, 0x70] movs r4, 0x7 adds r2, r1, 0 ands r2, r4 adds r3, 0x46 strb r2, [r3] bl sub_806CE68 pop {r4} pop {r0} bx r0 thumb_func_end sub_8085918 thumb_func_start sub_8085930 sub_8085930: push {r4-r7,lr} adds r6, r0, 0 movs r5, 0 movs r0, 0x7 adds r7, r6, 0 ands r7, r0 _0808593C: ldr r0, _0808596C ldr r0, [r0] lsls r1, r5, 2 ldr r2, _08085970 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08085982 cmp r6, 0x7 ble _08085974 movs r0, 0x8 bl RandomCapped adds r1, r0, 0 adds r0, r4, 0 bl sub_806CE68 b _08085982 .align 2, 0 _0808596C: .4byte gUnknown_203B418 _08085970: .4byte 0x0001357c _08085974: ldr r0, [r4, 0x70] adds r0, 0x46 strb r7, [r0] adds r0, r4, 0 adds r1, r6, 0 bl sub_806CE68 _08085982: adds r5, 0x1 cmp r5, 0x3 ble _0808593C movs r5, 0 movs r0, 0x7 adds r7, r6, 0 ands r7, r0 _08085990: ldr r0, _080859CC ldr r0, [r0] lsls r1, r5, 2 ldr r2, _080859D0 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080859E2 ldr r1, [r4, 0x70] adds r0, r1, 0 adds r0, 0xA4 ldrb r0, [r0] cmp r0, 0x2 bne _080859E2 cmp r6, 0x7 ble _080859D4 movs r0, 0x8 bl RandomCapped adds r1, r0, 0 adds r0, r4, 0 bl sub_806CE68 b _080859E2 .align 2, 0 _080859CC: .4byte gUnknown_203B418 _080859D0: .4byte 0x0001358c _080859D4: adds r0, r1, 0 adds r0, 0x46 strb r7, [r0] adds r0, r4, 0 adds r1, r6, 0 bl sub_806CE68 _080859E2: adds r5, 0x1 cmp r5, 0xF ble _08085990 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8085930 thumb_func_start sub_80859F0 sub_80859F0: push {r4-r7,lr} adds r6, r0, 0 movs r5, 0 movs r0, 0x7 adds r7, r6, 0 ands r7, r0 _080859FC: ldr r0, _08085A2C ldr r0, [r0] lsls r1, r5, 2 ldr r2, _08085A30 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08085A42 cmp r6, 0x7 ble _08085A34 movs r0, 0x8 bl RandomCapped adds r1, r0, 0 adds r0, r4, 0 bl sub_806CE68 b _08085A42 .align 2, 0 _08085A2C: .4byte gUnknown_203B418 _08085A30: .4byte 0x0001358c _08085A34: ldr r0, [r4, 0x70] adds r0, 0x46 strb r7, [r0] adds r0, r4, 0 adds r1, r6, 0 bl sub_806CE68 _08085A42: adds r5, 0x1 cmp r5, 0xF ble _080859FC pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80859F0 thumb_func_start sub_8085A50 sub_8085A50: push {lr} ldr r0, [r0, 0x70] adds r0, 0xA4 ldrb r0, [r0] cmp r0, 0x24 bhi _08085B04 lsls r0, 2 ldr r1, _08085A68 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08085A68: .4byte _08085A6C .align 2, 0 _08085A6C: .4byte _08085B04 .4byte _08085B00 .4byte _08085B04 .4byte _08085B00 .4byte _08085B04 .4byte _08085B00 .4byte _08085B00 .4byte _08085B00 .4byte _08085B00 .4byte _08085B00 .4byte _08085B04 .4byte _08085B04 .4byte _08085B04 .4byte _08085B00 .4byte _08085B00 .4byte _08085B00 .4byte _08085B00 .4byte _08085B00 .4byte _08085B00 .4byte _08085B00 .4byte _08085B00 .4byte _08085B00 .4byte _08085B00 .4byte _08085B00 .4byte _08085B00 .4byte _08085B00 .4byte _08085B00 .4byte _08085B00 .4byte _08085B00 .4byte _08085B00 .4byte _08085B00 .4byte _08085B00 .4byte _08085B00 .4byte _08085B00 .4byte _08085B00 .4byte _08085B00 .4byte _08085B00 _08085B00: movs r0, 0x1 b _08085B06 _08085B04: movs r0, 0 _08085B06: pop {r1} bx r1 thumb_func_end sub_8085A50 thumb_func_start sub_8085B0C sub_8085B0C: push {r4,r5,lr} sub sp, 0x1C adds r5, r0, 0 ldr r1, _08085B48 mov r0, sp movs r2, 0x19 bl memcpy mov r0, sp ldrb r0, [r0] cmp r0, 0 beq _08085B3E mov r4, sp _08085B26: ldrb r1, [r4] adds r0, r5, 0 bl sub_8085918 movs r0, 0x6 movs r1, 0x46 bl sub_803E708 adds r4, 0x1 ldrb r0, [r4] cmp r0, 0 bne _08085B26 _08085B3E: add sp, 0x1C pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08085B48: .4byte gUnknown_8107358 thumb_func_end sub_8085B0C thumb_func_start sub_8085B4C sub_8085B4C: push {r4-r6,lr} adds r5, r0, 0 ldr r0, _08085B7C str r3, [r0] cmp r3, 0 ble _08085B76 movs r6, 0x1 adds r4, r1, 0 adds r1, r5, 0 _08085B5E: strb r6, [r1] ldm r2!, {r0} str r0, [r1, 0x4] ldm r4!, {r0} str r0, [r1, 0xC] movs r5, 0x4 ldrsh r0, [r0, r5] str r0, [r1, 0x8] adds r1, 0x10 subs r3, 0x1 cmp r3, 0 bne _08085B5E _08085B76: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08085B7C: .4byte gUnknown_202F3D8 thumb_func_end sub_8085B4C thumb_func_start sub_8085B80 sub_8085B80: push {r4-r7,lr} mov r7, r8 push {r7} adds r1, r0, 0 movs r0, 0 mov r8, r0 movs r7, 0 ldr r0, _08085BE4 ldr r0, [r0] cmp r8, r0 bge _08085C3E adds r5, r1, 0 _08085B98: ldr r6, [r5, 0x4] ldr r2, [r6, 0x70] adds r3, r2, 0 ldr r4, [r5, 0xC] ldrb r0, [r5] cmp r0, 0 beq _08085C32 movs r1, 0x1 mov r8, r1 ldr r0, [r5, 0x8] cmp r0, 0 bne _08085C08 adds r4, 0x8 movs r1, 0x4 ldrsh r0, [r4, r1] cmp r0, 0 bne _08085BE8 strb r0, [r5] ldrb r1, [r4] movs r0, 0x7 ands r0, r1 adds r1, r2, 0 adds r1, 0x46 strb r0, [r1] movs r3, 0 ldrsh r2, [r4, r3] adds r0, r6, 0 movs r1, 0x7 bl sub_806CDD4 movs r0, 0xA ldrsh r1, [r4, r0] movs r3, 0xC ldrsh r2, [r4, r3] adds r0, r6, 0 bl sub_80856C8 b _08085C32 .align 2, 0 _08085BE4: .4byte gUnknown_202F3D8 _08085BE8: movs r1, 0x4 ldrsh r0, [r4, r1] str r0, [r5, 0x8] str r4, [r5, 0xC] ldrb r1, [r4] movs r0, 0x7 ands r0, r1 adds r1, r3, 0 adds r1, 0x46 strb r0, [r1] movs r3, 0 ldrsh r2, [r4, r3] adds r0, r6, 0 movs r1, 0 bl sub_806CDD4 _08085C08: ldr r0, [r5, 0x8] subs r0, 0x1 str r0, [r5, 0x8] ldr r1, _08085C4C movs r2, 0 ldrsh r0, [r4, r2] lsls r0, 2 adds r0, r1 movs r3, 0 ldrsh r1, [r0, r3] movs r3, 0x2 ldrsh r2, [r4, r3] muls r1, r2 lsls r1, 8 movs r3, 0x2 ldrsh r0, [r0, r3] muls r2, r0 lsls r2, 8 adds r0, r6, 0 bl sub_804539C _08085C32: adds r5, 0x10 adds r7, 0x1 ldr r0, _08085C50 ldr r0, [r0] cmp r7, r0 blt _08085B98 _08085C3E: mov r0, r8 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08085C4C: .4byte gUnknown_80F4448 _08085C50: .4byte gUnknown_202F3D8 thumb_func_end sub_8085B80 thumb_func_start sub_8085C54 sub_8085C54: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x28 str r0, [sp, 0x14] mov r10, r1 mov r9, r2 ldr r4, [sp, 0x48] lsls r3, 24 lsrs r3, 24 str r3, [sp, 0x18] lsls r4, 24 lsrs r4, 24 bl sub_8085E98 movs r0, 0 mov r8, r0 ldr r0, _08085E70 ldr r0, [r0] ldr r5, [r0, 0x4] cmp r4, 0 beq _08085CAE ldr r1, [sp, 0x14] cmp r1, 0 blt _08085C92 lsrs r0, r1, 31 adds r0, r1, r0 asrs r0, 1 str r0, [sp, 0x14] _08085C92: mov r2, r10 cmp r2, 0 blt _08085CA0 lsrs r0, r2, 31 add r0, r10 asrs r0, 1 mov r10, r0 _08085CA0: mov r3, r9 cmp r3, 0 blt _08085CAE lsrs r0, r3, 31 add r0, r9 asrs r0, 1 mov r9, r0 _08085CAE: ldr r1, _08085E74 ldr r0, [sp, 0x8] ands r0, r1 ldr r1, _08085E78 ands r0, r1 ldr r1, _08085E7C ands r0, r1 str r0, [sp, 0x8] ldr r0, _08085E80 ldr r2, [r0] ldr r0, _08085E84 ldr r3, [r0] movs r0, 0xBE lsls r0, 1 adds r3, r0 mov r0, r8 add r1, sp, 0x8 bl SetBGPaletteBufferColorRGB adds r5, 0x4 movs r1, 0x1 add r8, r1 ldr r2, [sp, 0x14] lsls r2, 16 str r2, [sp, 0x1C] mov r3, r10 lsls r3, 16 str r3, [sp, 0x20] mov r0, r9 lsls r0, 16 str r0, [sp, 0x24] add r7, sp, 0xC movs r1, 0xA0 cmp r1, 0x1 ble _08085D56 add r6, sp, 0x8 movs r4, 0xA0 subs r4, 0x1 _08085CFA: ldrb r0, [r5] ldr r3, [sp, 0x14] adds r2, r0, r3 ldrb r0, [r5, 0x1] mov r3, r10 adds r1, r0, r3 ldrb r0, [r5, 0x2] add r0, r9 cmp r2, 0xFF ble _08085D10 movs r2, 0xFF _08085D10: cmp r1, 0xFF ble _08085D16 movs r1, 0xFF _08085D16: cmp r0, 0xFF ble _08085D1C movs r0, 0xFF _08085D1C: cmp r2, 0 bge _08085D22 movs r2, 0 _08085D22: cmp r1, 0 bge _08085D28 movs r1, 0 _08085D28: cmp r0, 0 bge _08085D2E movs r0, 0 _08085D2E: strb r2, [r6] strb r1, [r6, 0x1] strb r0, [r6, 0x2] ldr r0, _08085E80 ldr r2, [r0] ldr r0, _08085E84 ldr r3, [r0] movs r0, 0xBE lsls r0, 1 adds r3, r0 mov r0, r8 add r1, sp, 0x8 bl SetBGPaletteBufferColorRGB adds r5, 0x4 movs r1, 0x1 add r8, r1 subs r4, 0x1 cmp r4, 0 bne _08085CFA _08085D56: ldr r2, _08085E88 ldr r3, [sp, 0x1C] lsrs r0, r3, 16 ldr r1, [sp, 0x20] orrs r0, r1 str r0, [sp, 0xC] ldr r3, [sp, 0x24] lsrs r1, r3, 16 ldr r0, [r7, 0x4] ands r0, r2 orrs r0, r1 str r0, [r7, 0x4] ldr r0, _08085E8C ldr r1, _08085E80 ldr r3, [r1] ldr r1, _08085E84 ldr r1, [r1] movs r2, 0xBE lsls r2, 1 adds r1, r2 str r1, [sp] str r7, [sp, 0x4] movs r1, 0xA0 movs r2, 0x20 bl sub_8004C00 movs r3, 0x20 add r8, r3 ldr r5, _08085E90 add r6, sp, 0x8 movs r4, 0x20 _08085D94: ldrb r0, [r5] ldr r1, [sp, 0x14] adds r2, r0, r1 ldrb r0, [r5, 0x1] mov r3, r10 adds r1, r0, r3 ldrb r0, [r5, 0x2] add r0, r9 cmp r2, 0xFF ble _08085DAA movs r2, 0xFF _08085DAA: cmp r1, 0xFF ble _08085DB0 movs r1, 0xFF _08085DB0: cmp r0, 0xFF ble _08085DB6 movs r0, 0xFF _08085DB6: cmp r2, 0 bge _08085DBC movs r2, 0 _08085DBC: cmp r1, 0 bge _08085DC2 movs r1, 0 _08085DC2: cmp r0, 0 bge _08085DC8 movs r0, 0 _08085DC8: strb r2, [r6] strb r1, [r6, 0x1] strb r0, [r6, 0x2] ldr r0, _08085E80 ldr r2, [r0] ldr r7, _08085E84 ldr r3, [r7] movs r0, 0xBE lsls r0, 1 adds r3, r0 mov r0, r8 add r1, sp, 0x8 bl SetBGPaletteBufferColorRGB adds r5, 0x4 movs r1, 0x1 add r8, r1 subs r4, 0x1 cmp r4, 0 bne _08085D94 ldr r2, [sp, 0x18] cmp r2, 0 beq _08085E5E ldr r0, [r7] ldr r3, _08085E94 adds r0, r3 ldr r0, [r0] ldr r5, [r0, 0x4] movs r0, 0x80 lsls r0, 1 mov r8, r0 add r6, sp, 0x8 movs r4, 0xD0 _08085E0A: ldrb r0, [r5] ldr r1, [sp, 0x14] adds r2, r0, r1 ldrb r0, [r5, 0x1] mov r3, r10 adds r1, r0, r3 ldrb r0, [r5, 0x2] add r0, r9 cmp r2, 0xFF ble _08085E20 movs r2, 0xFF _08085E20: cmp r1, 0xFF ble _08085E26 movs r1, 0xFF _08085E26: cmp r0, 0xFF ble _08085E2C movs r0, 0xFF _08085E2C: cmp r2, 0 bge _08085E32 movs r2, 0 _08085E32: cmp r1, 0 bge _08085E38 movs r1, 0 _08085E38: cmp r0, 0 bge _08085E3E movs r0, 0 _08085E3E: strb r2, [r6] strb r1, [r6, 0x1] strb r0, [r6, 0x2] ldr r0, _08085E80 ldr r2, [r0] mov r0, r8 add r1, sp, 0x8 movs r3, 0 bl SetBGPaletteBufferColorRGB adds r5, 0x4 movs r0, 0x1 add r8, r0 subs r4, 0x1 cmp r4, 0 bne _08085E0A _08085E5E: add sp, 0x28 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08085E70: .4byte gUnknown_202EE88 _08085E74: .4byte 0xffffff00 _08085E78: .4byte 0xffff00ff _08085E7C: .4byte 0xff00ffff _08085E80: .4byte gUnknown_202EDC8 _08085E84: .4byte gUnknown_203B418 _08085E88: .4byte 0xffff0000 _08085E8C: .4byte gUnknown_202EE8C _08085E90: .4byte gUnknown_202ECA4 _08085E94: .4byte 0x000181e4 thumb_func_end sub_8085C54 thumb_func_start sub_8085E98 sub_8085E98: ldr r0, _08085EA8 ldr r0, [r0] ldr r1, _08085EAC adds r0, r1 movs r1, 0 strb r1, [r0] bx lr .align 2, 0 _08085EA8: .4byte gUnknown_203B418 _08085EAC: .4byte 0x00018215 thumb_func_end sub_8085E98 thumb_func_start sub_8085EB0 sub_8085EB0: ldr r0, _08085EC0 ldr r0, [r0] ldr r1, _08085EC4 adds r0, r1 movs r1, 0x1 strb r1, [r0] bx lr .align 2, 0 _08085EC0: .4byte gUnknown_203B418 _08085EC4: .4byte 0x00018215 thumb_func_end sub_8085EB0 thumb_func_start sub_8085EC8 sub_8085EC8: push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x28 adds r4, r0, 0 mov r8, r1 mov r9, r2 adds r6, r3, 0 ldr r5, [sp, 0x40] lsls r4, 16 asrs r4, 16 lsls r5, 24 lsrs r5, 24 adds r0, r4, 0 bl sub_800EE5C bl sub_800EF64 movs r0, 0x46 bl sub_803E46C str r4, [sp] mov r0, r8 str r0, [sp, 0x4] mov r2, r9 str r2, [sp, 0x8] mov r1, sp ldrh r0, [r6] movs r2, 0 strh r0, [r1, 0xC] ldrh r0, [r6, 0x2] strh r0, [r1, 0xE] mov r0, sp strh r2, [r0, 0x10] strh r2, [r0, 0x12] ldr r0, _08085F3C str r0, [sp, 0x18] add r1, sp, 0x1C ldr r0, _08085F40 ldm r0!, {r2-r4} stm r1!, {r2-r4} mov r0, sp bl sub_800E890 cmp r5, 0 beq _08085F2E bl sub_8085F44 movs r0, 0x1 negs r0, r0 _08085F2E: add sp, 0x28 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08085F3C: .4byte 0x0000ffff _08085F40: .4byte gUnknown_8107374 thumb_func_end sub_8085EC8 thumb_func_start sub_8085F44 sub_8085F44: push {r4,lr} adds r4, r0, 0 b _08085F5C _08085F4A: ldr r0, _08085F70 ldr r0, [r0] ldr r1, _08085F74 adds r0, r1 bl sub_800E90C movs r0, 0x46 bl sub_803E46C _08085F5C: adds r0, r4, 0 bl sub_800E9A8 lsls r0, 24 cmp r0, 0 bne _08085F4A pop {r4} pop {r0} bx r0 .align 2, 0 _08085F70: .4byte gUnknown_203B418 _08085F74: .4byte 0x000181f0 thumb_func_end sub_8085F44 thumb_func_start sub_8085F78 sub_8085F78: push {lr} ldr r0, _08085F94 ldr r0, [r0] ldr r1, _08085F98 adds r0, r1 ldrb r0, [r0] cmp r0, 0x3C bls _08085F8A b _080860A4 _08085F8A: lsls r0, 2 ldr r1, _08085F9C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08085F94: .4byte gUnknown_203B418 _08085F98: .4byte 0x00003a0d _08085F9C: .4byte _08085FA0 .align 2, 0 _08085FA0: .4byte _080860A4 .4byte _080860A4 .4byte _080860A4 .4byte _080860A4 .4byte _080860A4 .4byte _080860A4 .4byte _080860A4 .4byte _080860A4 .4byte _080860A4 .4byte _080860A4 .4byte _080860A4 .4byte _080860A4 .4byte _080860A4 .4byte _080860A4 .4byte _080860A4 .4byte _080860A4 .4byte _080860A4 .4byte _080860A4 .4byte _08086094 .4byte _08086094 .4byte _08086094 .4byte _0808609A .4byte _080860A4 .4byte _080860A4 .4byte _080860A4 .4byte _080860A4 .4byte _080860A4 .4byte _080860A4 .4byte _080860A4 .4byte _080860A4 .4byte _080860A4 .4byte _080860A4 .4byte _080860A4 .4byte _080860A4 .4byte _080860A4 .4byte _080860A4 .4byte _080860A4 .4byte _080860A4 .4byte _080860A4 .4byte _080860A4 .4byte _080860A4 .4byte _080860A0 .4byte _080860A0 .4byte _080860A4 .4byte _080860A4 .4byte _080860A4 .4byte _080860A4 .4byte _080860A4 .4byte _080860A4 .4byte _080860A4 .4byte _080860A4 .4byte _080860A4 .4byte _080860A4 .4byte _080860A4 .4byte _080860A4 .4byte _080860A4 .4byte _080860A4 .4byte _080860A4 .4byte _080860A4 .4byte _080860A4 .4byte _080860A4 _08086094: bl sub_8088848 b _080860A4 _0808609A: bl sub_8088EE8 b _080860A4 _080860A0: bl sub_808A718 _080860A4: pop {r0} bx r0 thumb_func_end sub_8085F78 thumb_func_start sub_80860A8 sub_80860A8: push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 movs r5, 0 ldr r0, _08086108 ldr r2, [r0] movs r3, 0x1 _080860B6: ldrb r1, [r2] adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _080860C6 ldrb r0, [r2, 0x2] cmp r0, r6 beq _08086104 _080860C6: adds r2, 0x4 adds r5, 0x1 cmp r5, 0x13 ble _080860B6 movs r5, 0 _080860D0: ldr r0, _0808610C ldr r0, [r0] lsls r1, r5, 2 ldr r2, _08086110 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08086114 ldr r2, [r4, 0x70] adds r0, r2, 0 adds r0, 0x60 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08086114 adds r0, r2, 0 adds r0, 0x62 ldrb r0, [r0] cmp r0, r6 bne _08086114 _08086104: movs r0, 0x1 b _0808611C .align 2, 0 _08086108: .4byte gUnknown_203B460 _0808610C: .4byte gUnknown_203B418 _08086110: .4byte 0x0001357c _08086114: adds r5, 0x1 cmp r5, 0x3 ble _080860D0 movs r0, 0 _0808611C: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80860A8 thumb_func_start sub_8086124 sub_8086124: ldr r0, [r0, 0x70] movs r2, 0xB0 lsls r2, 1 adds r0, r2 strb r1, [r0] bx lr thumb_func_end sub_8086124 thumb_func_start sub_8086130 sub_8086130: push {lr} movs r0, 0x3C bl sub_8083ED8 movs r0, 0x3C movs r1, 0x46 bl sub_803E708 ldr r0, _08086194 ldr r0, [r0] bl sub_8052FB8 movs r0, 0x1E movs r1, 0x46 bl sub_803E708 ldr r0, _08086198 ldr r0, [r0] bl sub_8052FB8 movs r0, 0x1E movs r1, 0x46 bl sub_803E708 ldr r0, _0808619C ldr r0, [r0] bl sub_8052FB8 movs r0, 0x1E movs r1, 0x46 bl sub_803E708 ldr r0, _080861A0 ldr r0, [r0] bl sub_8052FB8 movs r0, 0x1E movs r1, 0x46 bl sub_803E708 ldr r0, _080861A4 ldr r0, [r0] bl sub_8052FB8 movs r0, 0x1E movs r1, 0x46 bl sub_803E708 pop {r0} bx r0 .align 2, 0 _08086194: .4byte gUnknown_810665C _08086198: .4byte gUnknown_810668C _0808619C: .4byte gUnknown_81066D4 _080861A0: .4byte gUnknown_81066F0 _080861A4: .4byte gUnknown_810671C thumb_func_end sub_8086130 thumb_func_start sub_80861A8 sub_80861A8: push {lr} movs r1, 0 movs r2, 0x8 bl sub_806CDD4 pop {r0} bx r0 thumb_func_end sub_80861A8 thumb_func_start sub_80861B8 sub_80861B8: push {r4,r5,lr} adds r4, r1, 0 lsls r4, 24 lsrs r4, 24 ldr r5, [r0, 0x70] adds r1, r4, 0 bl sub_806CDD4 adds r5, 0xFE strb r4, [r5] pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80861B8 thumb_func_start sub_80861D4 sub_80861D4: push {r4,lr} adds r4, r0, 0 lsls r1, 24 lsrs r1, 24 bl sub_806CDD4 adds r0, r4, 0 bl sub_80861EC pop {r4} pop {r0} bx r0 thumb_func_end sub_80861D4 thumb_func_start sub_80861EC sub_80861EC: ldr r0, [r0, 0x70] adds r0, 0xFE movs r1, 0x63 strb r1, [r0] bx lr thumb_func_end sub_80861EC thumb_func_start sub_80861F8 sub_80861F8: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x2C adds r6, r1, 0 lsls r0, 16 asrs r0, 16 adds r5, r0, 0 lsls r2, 24 lsrs r2, 24 mov r10, r2 bl sub_800EE5C bl sub_800EF64 movs r0, 0x46 bl sub_803E46C ldr r0, [r6, 0x70] mov r8, r0 movs r1, 0 mov r9, r1 str r1, [sp, 0x28] adds r0, r5, 0 bl sub_800E700 adds r7, r0, 0 add r4, sp, 0x28 movs r2, 0x1 negs r2, r2 cmp r7, r2 beq _0808624A adds r1, r6, 0 adds r1, 0x28 lsls r2, r7, 24 lsrs r2, 24 adds r0, r4, 0 bl sub_800569C _0808624A: str r5, [sp] mov r3, r9 str r3, [sp, 0x4] mov r0, r8 adds r0, 0x46 ldrb r0, [r0] str r0, [sp, 0x8] mov r1, sp ldr r0, [r6, 0xC] cmp r0, 0 bge _08086262 adds r0, 0xFF _08086262: asrs r0, 8 strh r0, [r1, 0xC] mov r1, sp ldr r0, [r6, 0x10] cmp r0, 0 bge _08086270 adds r0, 0xFF _08086270: asrs r0, 8 strh r0, [r1, 0xE] mov r1, sp ldrh r0, [r4] strh r0, [r1, 0x10] add r0, sp, 0x28 ldrh r0, [r0, 0x2] strh r0, [r1, 0x12] str r7, [sp, 0x14] ldr r0, _080862B4 str r0, [sp, 0x18] add r1, sp, 0x1C ldr r0, _080862B8 ldm r0!, {r2-r4} stm r1!, {r2-r4} mov r0, sp bl sub_800E890 mov r4, r10 cmp r4, 0 beq _080862A2 bl sub_8085F44 movs r0, 0x1 negs r0, r0 _080862A2: add sp, 0x2C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080862B4: .4byte 0x0000ffff _080862B8: .4byte gUnknown_8107380 thumb_func_end sub_80861F8 thumb_func_start sub_80862BC sub_80862BC: push {r4,lr} adds r4, r0, 0 movs r0, 0xE8 lsls r0, 1 bl sub_8083E38 ldr r0, _080862D8 adds r1, r4, 0 movs r2, 0 bl sub_80861F8 pop {r4} pop {r0} bx r0 .align 2, 0 _080862D8: .4byte 0x00000143 thumb_func_end sub_80862BC thumb_func_start sub_80862DC sub_80862DC: push {r4,lr} sub sp, 0x8 adds r4, r0, 0 ldr r0, [r4, 0xC] str r0, [sp] ldr r0, [r4, 0x10] movs r1, 0xE0 lsls r1, 6 adds r0, r1 str r0, [sp, 0x4] adds r0, r4, 0 mov r1, sp bl sub_804535C adds r0, r4, 0 movs r1, 0 movs r2, 0x4 bl sub_806CDD4 adds r0, r4, 0 bl sub_8086A54 add sp, 0x8 pop {r4} pop {r0} bx r0 thumb_func_end sub_80862DC thumb_func_start sub_8086310 sub_8086310: push {r4,lr} sub sp, 0x8 adds r4, r0, 0 ldr r0, [r4, 0xC] str r0, [sp] ldr r0, [r4, 0x10] movs r1, 0x90 lsls r1, 8 adds r0, r1 str r0, [sp, 0x4] adds r0, r4, 0 mov r1, sp bl sub_804535C adds r0, r4, 0 movs r1, 0 bl sub_806CE68 adds r0, r4, 0 bl sub_8086A3C adds r4, 0x20 movs r0, 0 strb r0, [r4] add sp, 0x8 pop {r4} pop {r0} bx r0 thumb_func_end sub_8086310 thumb_func_start sub_8086348 sub_8086348: push {r4,lr} sub sp, 0x8 adds r4, r0, 0 ldr r0, [r4, 0xC] movs r1, 0xF0 lsls r1, 7 adds r0, r1 str r0, [sp] ldr r0, [r4, 0x10] ldr r1, _08086380 adds r0, r1 str r0, [sp, 0x4] adds r0, r4, 0 mov r1, sp bl sub_804535C adds r0, r4, 0 movs r1, 0 movs r2, 0x6 bl sub_806CDD4 adds r0, r4, 0 bl sub_8086A54 add sp, 0x8 pop {r4} pop {r0} bx r0 .align 2, 0 _08086380: .4byte 0xffffe000 thumb_func_end sub_8086348 thumb_func_start sub_8086384 sub_8086384: push {r4,lr} sub sp, 0x8 adds r4, r0, 0 ldr r0, [r4, 0xC] movs r1, 0xF0 lsls r1, 7 adds r0, r1 str r0, [sp] ldr r0, [r4, 0x10] str r0, [sp, 0x4] adds r0, r4, 0 mov r1, sp bl sub_804535C adds r0, r4, 0 movs r1, 0 movs r2, 0x6 bl sub_806CDD4 adds r0, r4, 0 bl sub_8086A54 add sp, 0x8 pop {r4} pop {r0} bx r0 thumb_func_end sub_8086384 thumb_func_start sub_80863B8 sub_80863B8: push {lr} movs r1, 0 movs r2, 0x4 bl sub_806CDD4 pop {r0} bx r0 thumb_func_end sub_80863B8 thumb_func_start sub_80863C8 sub_80863C8: push {lr} movs r1, 0 movs r2, 0 bl sub_806CDD4 pop {r0} bx r0 thumb_func_end sub_80863C8 thumb_func_start sub_80863D8 sub_80863D8: push {lr} movs r1, 0 movs r2, 0x6 bl sub_806CDD4 pop {r0} bx r0 thumb_func_end sub_80863D8 thumb_func_start sub_80863E8 sub_80863E8: push {lr} movs r1, 0x6 movs r2, 0x4 bl sub_806CDD4 pop {r0} bx r0 thumb_func_end sub_80863E8 thumb_func_start sub_80863F8 sub_80863F8: push {lr} movs r1, 0x4 bl sub_806CE68 pop {r0} bx r0 thumb_func_end sub_80863F8 thumb_func_start sub_8086404 sub_8086404: push {lr} movs r1, 0x6 bl sub_806CE68 pop {r0} bx r0 thumb_func_end sub_8086404 thumb_func_start sub_8086410 sub_8086410: push {lr} ldr r2, _08086420 movs r1, 0 bl sub_804539C pop {r0} bx r0 .align 2, 0 _08086420: .4byte 0xffffff00 thumb_func_end sub_8086410 thumb_func_start sub_8086424 sub_8086424: push {lr} movs r2, 0x80 lsls r2, 1 movs r1, 0 bl sub_804539C pop {r0} bx r0 thumb_func_end sub_8086424 thumb_func_start sub_8086434 sub_8086434: push {lr} ldr r1, _08086444 movs r2, 0 bl sub_804539C pop {r0} bx r0 .align 2, 0 _08086444: .4byte 0xffffff00 thumb_func_end sub_8086434 thumb_func_start sub_8086448 sub_8086448: push {r4,r5,lr} ldr r0, _08086488 bl sub_80855E4 movs r5, 0x37 _08086452: bl sub_803F994 adds r4, r0, 0 bl sub_803F9B0 adds r1, r0, 0 movs r0, 0x80 lsls r0, 1 adds r1, r0 adds r0, r4, 0 bl sub_803F878 ldr r0, _0808648C bl sub_80855E4 movs r0, 0x46 bl sub_803E46C subs r5, 0x1 cmp r5, 0 bge _08086452 ldr r0, _08086490 bl sub_80855E4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08086488: .4byte sub_80862DC _0808648C: .4byte sub_8086410 _08086490: .4byte sub_80863F8 thumb_func_end sub_8086448 thumb_func_start sub_8086494 sub_8086494: push {r4,lr} movs r0, 0x3 bl sub_8085930 movs r0, 0x4 movs r1, 0x46 bl sub_803E708 movs r0, 0x2 bl sub_8085930 movs r0, 0x4 movs r1, 0x46 bl sub_803E708 movs r0, 0x1 bl sub_8085930 movs r0, 0x4 movs r1, 0x46 bl sub_803E708 movs r0, 0 bl sub_8085930 movs r0, 0x4 movs r1, 0x46 bl sub_803E708 ldr r0, _080864F4 bl sub_80855E4 movs r4, 0x8F _080864D6: ldr r0, _080864F8 bl sub_80855E4 movs r0, 0x46 bl sub_803E46C subs r4, 0x1 cmp r4, 0 bge _080864D6 ldr r0, _080864FC bl sub_80855E4 pop {r4} pop {r0} bx r0 .align 2, 0 _080864F4: .4byte sub_80863C8 _080864F8: .4byte sub_8086424 _080864FC: .4byte sub_8086310 thumb_func_end sub_8086494 thumb_func_start sub_8086500 sub_8086500: push {r4,r5,lr} ldr r0, _08086540 bl sub_80855E4 movs r5, 0x47 _0808650A: bl sub_803F994 adds r4, r0, 0 movs r0, 0x80 lsls r0, 1 adds r4, r0 bl sub_803F9B0 adds r1, r0, 0 adds r0, r4, 0 bl sub_803F878 ldr r0, _08086544 bl sub_80855E4 movs r0, 0x46 bl sub_803E46C subs r5, 0x1 cmp r5, 0 bge _0808650A ldr r0, _08086548 bl sub_80855E4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08086540: .4byte sub_8086348 _08086544: .4byte sub_8086434 _08086548: .4byte sub_8086404 thumb_func_end sub_8086500 thumb_func_start sub_808654C sub_808654C: push {r4,r5,lr} ldr r0, _0808658C bl sub_80855E4 movs r5, 0x77 _08086556: bl sub_803F994 adds r4, r0, 0 movs r0, 0x80 lsls r0, 1 adds r4, r0 bl sub_803F9B0 adds r1, r0, 0 adds r0, r4, 0 bl sub_803F878 ldr r0, _08086590 bl sub_80855E4 movs r0, 0x46 bl sub_803E46C subs r5, 0x1 cmp r5, 0 bge _08086556 ldr r0, _08086594 bl sub_80855E4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0808658C: .4byte sub_8086384 _08086590: .4byte sub_8086434 _08086594: .4byte sub_8086404 thumb_func_end sub_808654C thumb_func_start sub_8086598 sub_8086598: push {r4,r5,lr} ldr r0, _080865D8 bl sub_80855E4 movs r5, 0x17 _080865A2: bl sub_803F994 adds r4, r0, 0 bl sub_803F9B0 adds r1, r0, 0 ldr r0, _080865DC adds r1, r0 adds r0, r4, 0 bl sub_803F878 ldr r0, _080865E0 bl sub_80855E4 movs r0, 0x46 bl sub_803E46C subs r5, 0x1 cmp r5, 0 bge _080865A2 ldr r0, _080865E4 bl sub_80855E4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080865D8: .4byte sub_80863B8 _080865DC: .4byte 0xffffff00 _080865E0: .4byte sub_8086410 _080865E4: .4byte sub_80863F8 thumb_func_end sub_8086598 thumb_func_start sub_80865E8 sub_80865E8: push {r4-r6,lr} ldr r0, _08086630 bl sub_80855E4 ldr r6, _08086634 movs r5, 0xB _080865F4: bl sub_803F994 adds r4, r0, 0 bl sub_803F9B0 adds r1, r0, 0 movs r0, 0x80 lsls r0, 2 adds r1, r0 adds r0, r4, 0 bl sub_803F878 adds r0, r6, 0 bl sub_80855E4 adds r0, r6, 0 bl sub_80855E4 movs r0, 0x46 bl sub_803E46C subs r5, 0x1 cmp r5, 0 bge _080865F4 ldr r0, _08086638 bl sub_80855E4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08086630: .4byte sub_80863E8 _08086634: .4byte sub_8086424 _08086638: .4byte sub_80863F8 thumb_func_end sub_80865E8 thumb_func_start sub_808663C sub_808663C: push {r4-r6,lr} ldr r0, _08086684 bl sub_80855E4 ldr r6, _08086688 movs r5, 0xF _08086648: bl sub_803F994 adds r4, r0, 0 bl sub_803F9B0 adds r1, r0, 0 movs r0, 0x80 lsls r0, 2 adds r1, r0 adds r0, r4, 0 bl sub_803F878 adds r0, r6, 0 bl sub_80855E4 adds r0, r6, 0 bl sub_80855E4 movs r0, 0x46 bl sub_803E46C subs r5, 0x1 cmp r5, 0 bge _08086648 ldr r0, _0808668C bl sub_80855E4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08086684: .4byte sub_80863E8 _08086688: .4byte sub_8086424 _0808668C: .4byte sub_80863F8 thumb_func_end sub_808663C thumb_func_start sub_8086690 sub_8086690: push {r4,lr} ldr r0, _080866B8 bl sub_80855E4 movs r4, 0x2F _0808669A: ldr r0, _080866BC bl sub_80855E4 movs r0, 0x46 bl sub_803E46C subs r4, 0x1 cmp r4, 0 bge _0808669A ldr r0, _080866C0 bl sub_80855E4 pop {r4} pop {r0} bx r0 .align 2, 0 _080866B8: .4byte sub_80863D8 _080866BC: .4byte sub_8086434 _080866C0: .4byte sub_8086404 thumb_func_end sub_8086690 thumb_func_start sub_80866C4 sub_80866C4: push {r4,lr} adds r4, r0, 0 bl sub_8085480 bl sub_808696C movs r0, 0xA movs r1, 0x46 bl sub_803E708 adds r0, r4, 0 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 bl sub_8086494 ldr r0, _080866F8 ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0x2] pop {r4} pop {r0} bx r0 .align 2, 0 _080866F8: .4byte gUnknown_203B418 thumb_func_end sub_80866C4 thumb_func_start sub_80866FC sub_80866FC: push {r4-r6,lr} sub sp, 0x4 movs r4, 0 movs r6, 0 movs r5, 0xFA negs r5, r5 _08086708: str r6, [sp] adds r0, r4, 0 adds r1, r4, 0 adds r2, r4, 0 movs r3, 0x1 bl sub_8085C54 movs r0, 0x46 bl sub_803E46C subs r4, 0xA cmp r4, r5 bge _08086708 add sp, 0x4 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80866FC thumb_func_start sub_808672C sub_808672C: push {lr} bl sub_803E748 pop {r0} bx r0 thumb_func_end sub_808672C thumb_func_start sub_8086738 sub_8086738: push {r4,r5,lr} sub sp, 0x4 movs r4, 0 movs r5, 0 _08086740: str r5, [sp] adds r0, r4, 0 adds r1, r4, 0 adds r2, r4, 0 movs r3, 0x1 bl sub_8085C54 movs r0, 0x46 bl sub_803E46C adds r4, 0xA cmp r4, 0xF9 ble _08086740 add sp, 0x4 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8086738 thumb_func_start sub_8086764 sub_8086764: push {r4,r5,lr} sub sp, 0x4 movs r4, 0xFA movs r5, 0 _0808676C: str r5, [sp] adds r0, r4, 0 adds r1, r4, 0 adds r2, r4, 0 movs r3, 0x1 bl sub_8085C54 movs r0, 0x46 bl sub_803E46C subs r4, 0x5 cmp r4, 0 bge _0808676C bl sub_8085EB0 add sp, 0x4 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8086764 thumb_func_start sub_8086794 sub_8086794: push {r4,r5,lr} sub sp, 0x4 ldr r1, _080867A4 movs r0, 0 str r0, [r1] movs r4, 0 adds r5, r1, 0 b _080867AA .align 2, 0 _080867A4: .4byte gUnknown_202EDC8 _080867A8: adds r4, 0x1 _080867AA: cmp r4, 0xC7 bgt _080867D8 movs r0, 0 str r0, [sp] movs r1, 0 movs r2, 0 movs r3, 0x1 bl sub_8085C54 bl sub_803E9D0 movs r0, 0x46 bl sub_803E46C movs r0, 0x3 ands r0, r4 cmp r0, 0 bne _080867A8 ldr r0, [r5] adds r0, 0x1 str r0, [r5] cmp r0, 0x1F bne _080867A8 _080867D8: movs r0, 0x46 bl sub_803E46C ldr r0, _080867F0 ldr r1, [r0] movs r0, 0 strb r0, [r1, 0x7] add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080867F0: .4byte gUnknown_203B418 thumb_func_end sub_8086794 thumb_func_start sub_80867F4 sub_80867F4: ldr r1, _08086808 movs r0, 0 strb r0, [r1] strb r0, [r1, 0x1] strb r0, [r1, 0x2] strb r0, [r1, 0x3] strb r0, [r1, 0x4] strb r0, [r1, 0x5] bx lr .align 2, 0 _08086808: .4byte gUnknown_202F3D0 thumb_func_end sub_80867F4 thumb_func_start sub_808680C sub_808680C: push {lr} ldr r0, _08086824 movs r1, 0x1 strb r1, [r0] ldrb r0, [r0, 0x3] cmp r0, 0 beq _08086820 ldr r0, _08086828 bl sub_8083E38 _08086820: pop {r0} bx r0 .align 2, 0 _08086824: .4byte gUnknown_202F3D0 _08086828: .4byte 0x000001f9 thumb_func_end sub_808680C thumb_func_start sub_808682C sub_808682C: ldr r1, _08086834 movs r0, 0 strb r0, [r1] bx lr .align 2, 0 _08086834: .4byte gUnknown_202F3D0 thumb_func_end sub_808682C thumb_func_start sub_8086838 sub_8086838: ldr r3, _08086844 strb r0, [r3, 0x1] strb r1, [r3, 0x2] strb r2, [r3, 0x3] bx lr .align 2, 0 _08086844: .4byte gUnknown_202F3D0 thumb_func_end sub_8086838 thumb_func_start sub_8086848 sub_8086848: ldr r2, _08086850 strb r0, [r2, 0x4] strb r1, [r2, 0x5] bx lr .align 2, 0 _08086850: .4byte gUnknown_202F3D0 thumb_func_end sub_8086848 thumb_func_start sub_8086854 sub_8086854: push {r4,lr} ldr r4, _08086874 ldrb r1, [r4] cmp r1, 0 beq _080868DC ldrb r0, [r4, 0x4] cmp r0, 0 bne _080868A4 ldrb r0, [r4, 0x1] cmp r0, 0 beq _08086878 movs r0, 0x50 strb r0, [r4, 0x4] movs r0, 0x10 b _0808688A .align 2, 0 _08086874: .4byte gUnknown_202F3D0 _08086878: movs r0, 0x6 bl RandomCapped adds r0, 0x2 strb r0, [r4, 0x4] movs r0, 0x6 bl RandomCapped adds r0, 0x2 _0808688A: strb r0, [r4, 0x5] ldr r0, _0808689C ldrb r0, [r0, 0x3] cmp r0, 0 beq _080868A8 ldr r0, _080868A0 bl sub_8083E38 b _080868A8 .align 2, 0 _0808689C: .4byte gUnknown_202F3D0 _080868A0: .4byte 0x000001f9 _080868A4: subs r0, 0x1 strb r0, [r4, 0x4] _080868A8: ldr r3, _080868CC ldrb r0, [r3, 0x5] cmp r0, 0 beq _080868B4 subs r0, 0x1 strb r0, [r3, 0x5] _080868B4: ldr r0, _080868D0 ldr r1, [r0] ldr r0, _080868D4 adds r1, r0 ldr r2, _080868D8 ldrb r0, [r3, 0x5] lsls r0, 2 adds r0, r2 ldr r0, [r0] str r0, [r1] b _080868E6 .align 2, 0 _080868CC: .4byte gUnknown_202F3D0 _080868D0: .4byte gUnknown_203B418 _080868D4: .4byte 0x000181fc _080868D8: .4byte gUnknown_8107314 _080868DC: ldr r0, _080868EC ldr r0, [r0] ldr r2, _080868F0 adds r0, r2 str r1, [r0] _080868E6: pop {r4} pop {r0} bx r0 .align 2, 0 _080868EC: .4byte gUnknown_203B418 _080868F0: .4byte 0x000181fc thumb_func_end sub_8086854 thumb_func_start sub_80868F4 sub_80868F4: ldr r1, [r0, 0x70] movs r2, 0xAE lsls r2, 1 adds r1, r2 movs r2, 0x1 strb r2, [r1] ldr r0, [r0, 0x70] ldr r1, _0808690C adds r0, r1 strb r2, [r0] bx lr .align 2, 0 _0808690C: .4byte 0x0000015d thumb_func_end sub_80868F4 thumb_func_start sub_8086910 sub_8086910: ldr r1, [r0, 0x70] movs r2, 0xAE lsls r2, 1 adds r1, r2 movs r2, 0 strb r2, [r1] ldr r0, [r0, 0x70] ldr r1, _08086928 adds r0, r1 strb r2, [r0] bx lr .align 2, 0 _08086928: .4byte 0x0000015d thumb_func_end sub_8086910 thumb_func_start sub_808692C sub_808692C: push {lr} movs r0, 0x5 bl sub_80859F0 movs r0, 0x4 movs r1, 0x46 bl sub_803E708 movs r0, 0x6 bl sub_80859F0 movs r0, 0x4 movs r1, 0x46 bl sub_803E708 movs r0, 0x7 bl sub_80859F0 movs r0, 0x4 movs r1, 0x46 bl sub_803E708 movs r0, 0 bl sub_80859F0 movs r0, 0x4 movs r1, 0x46 bl sub_803E708 pop {r0} bx r0 thumb_func_end sub_808692C thumb_func_start sub_808696C sub_808696C: push {r4,r5,lr} adds r5, r0, 0 ldr r0, [r5, 0x70] adds r0, 0x46 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 movs r1, 0x4 bl sub_8002984 adds r4, r0, 0 lsls r4, 24 asrs r4, 24 adds r0, r5, 0 movs r1, 0x4 movs r2, 0x2 adds r3, r4, 0 bl sub_80869E4 movs r0, 0xF movs r1, 0x46 bl sub_803E708 adds r0, r4, 0 movs r1, 0x5 bl sub_8002984 adds r4, r0, 0 lsls r4, 24 asrs r4, 24 adds r0, r5, 0 movs r1, 0x4 movs r2, 0x1 adds r3, r4, 0 bl sub_80869E4 movs r0, 0xF movs r1, 0x46 bl sub_803E708 adds r0, r4, 0 movs r1, 0x4 bl sub_8002984 adds r3, r0, 0 lsls r3, 24 asrs r3, 24 adds r0, r5, 0 movs r1, 0x4 movs r2, 0x2 bl sub_80869E4 movs r0, 0xF movs r1, 0x46 bl sub_803E708 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_808696C thumb_func_start sub_80869E4 sub_80869E4: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r7, r0, 0 mov r9, r1 lsls r2, 24 lsrs r2, 24 mov r8, r2 lsls r3, 24 asrs r6, r3, 24 ldr r0, [r7, 0x70] adds r0, 0x46 movs r4, 0 ldrsb r4, [r0, r4] cmp r4, r6 beq _08086A30 adds r5, r0, 0 _08086A08: adds r0, r4, 0 adds r1, r6, 0 mov r2, r8 bl sub_8002A70 lsls r0, 24 asrs r4, r0, 24 movs r0, 0x7 ands r0, r4 strb r0, [r5] ldrb r1, [r5] adds r0, r7, 0 bl sub_806CE68 mov r0, r9 movs r1, 0x46 bl sub_803E708 cmp r4, r6 bne _08086A08 _08086A30: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80869E4 thumb_func_start sub_8086A3C sub_8086A3C: ldr r1, [r0, 0x70] movs r2, 0xAE lsls r2, 1 adds r1, r2 movs r2, 0x1 strb r2, [r1] ldr r0, [r0, 0x70] movs r1, 0xAF lsls r1, 1 adds r0, r1 strb r2, [r0] bx lr thumb_func_end sub_8086A3C thumb_func_start sub_8086A54 sub_8086A54: ldr r1, [r0, 0x70] movs r2, 0xAE lsls r2, 1 adds r1, r2 movs r3, 0 movs r2, 0x1 strb r2, [r1] ldr r0, [r0, 0x70] movs r1, 0xAF lsls r1, 1 adds r0, r1 strb r3, [r0] bx lr thumb_func_end sub_8086A54 thumb_func_start sub_8086A70 sub_8086A70: push {r4-r6,lr} adds r5, r0, 0 lsls r2, 16 lsrs r4, r2, 16 ldr r3, [r5, 0x70] adds r2, r3, 0 movs r0, 0xF7 adds r0, r3 mov r12, r0 movs r0, 0x1 mov r6, r12 strb r0, [r6] ldrh r0, [r3, 0x10] strh r0, [r3, 0x12] cmp r1, 0 beq _08086A94 strh r1, [r3, 0x10] strh r1, [r3, 0xE] _08086A94: ldr r0, _08086AB8 ldr r0, [r0] ldr r1, _08086ABC adds r0, r1 strh r4, [r0] adds r0, r2, 0 adds r0, 0x8C mov r2, r12 ldrb r1, [r2] bl sub_808EC94 adds r0, r5, 0 bl sub_807191C pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08086AB8: .4byte gUnknown_203B418 _08086ABC: .4byte 0x0000066a thumb_func_end sub_8086A70 thumb_func_start sub_8086AC0 sub_8086AC0: push {lr} bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _08086ADA ldr r0, _08086AE0 ldr r0, [r0] ldrb r0, [r0, 0x2] cmp r0, 0 bne _08086ADA bl sub_8097FF8 _08086ADA: pop {r0} bx r0 .align 2, 0 _08086AE0: .4byte gUnknown_203B418 thumb_func_end sub_8086AC0 thumb_func_start sub_8086AE4 sub_8086AE4: push {lr} lsls r0, 16 asrs r1, r0, 16 ldr r0, _08086B04 ldr r0, [r0] ldr r2, _08086B08 adds r0, r2 ldrb r0, [r0] cmp r0, 0 beq _08086B0C adds r0, r1, 0 bl sub_808E734 lsls r0, 24 lsrs r0, 24 b _08086B0E .align 2, 0 _08086B04: .4byte gUnknown_203B418 _08086B08: .4byte 0x0000065c _08086B0C: movs r0, 0x1 _08086B0E: pop {r1} bx r1 thumb_func_end sub_8086AE4 thumb_func_start sub_8086B14 sub_8086B14: push {r4-r6,lr} mov r6, r8 push {r6} bl sub_8085480 mov r8, r0 movs r0, 0x4 bl sub_8085680 adds r6, r0, 0 movs r0, 0x3 bl sub_8085680 adds r5, r0, 0 movs r0, 0x72 bl sub_8083E88 bl sub_8085374 bl sub_80854D4 movs r0, 0x4 bl sub_8085930 ldr r4, _08086B8C adds r0, r4, 0 bl sub_80855E4 adds r0, r5, 0 bl _call_via_r4 ldr r0, [r6, 0x70] movs r1, 0xAE lsls r1, 1 adds r0, r1 movs r1, 0x1 strb r1, [r0] mov r2, r8 movs r3, 0x4 ldrsh r0, [r2, r3] movs r3, 0x6 ldrsh r1, [r2, r3] subs r1, 0x2 bl sub_8085860 ldr r4, _08086B90 adds r0, r4, 0 movs r1, 0x32 bl sub_808D8BC adds r4, 0x50 adds r0, r4, 0 movs r1, 0xFC bl sub_808D8BC pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08086B8C: .4byte sub_8086A3C _08086B90: .4byte gUnknown_202E038 thumb_func_end sub_8086B14 thumb_func_start sub_8086B94 sub_8086B94: push {r4-r6,lr} bl sub_8085480 adds r6, r0, 0 movs r0, 0x4 bl sub_8085680 adds r5, r0, 0 movs r0, 0x3 bl sub_8085680 movs r4, 0x87 lsls r4, 2 adds r1, r4, 0 movs r2, 0 bl sub_8068FE0 adds r0, r5, 0 adds r1, r4, 0 movs r2, 0 bl sub_8068FE0 bl sub_80854D4 movs r0, 0x4 bl sub_8085930 movs r1, 0x4 ldrsh r0, [r6, r1] movs r2, 0x6 ldrsh r1, [r6, r2] bl sub_8085860 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8086B94 thumb_func_start sub_8086BDC sub_8086BDC: push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 movs r2, 0xFF lsls r2, 24 adds r1, r2 lsrs r1, 24 cmp r1, 0x1 bhi _08086C02 cmp r0, 0x3 bne _08086C02 movs r0, 0x1 bl sub_8097FA8 ldr r0, _08086C08 ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0x2] _08086C02: pop {r0} bx r0 .align 2, 0 _08086C08: .4byte gUnknown_203B418 thumb_func_end sub_8086BDC thumb_func_start sub_8086C0C sub_8086C0C: push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x10 bl sub_8085480 mov r8, r0 bl sub_808548C mov r9, r0 movs r0, 0x4 bl sub_8085680 adds r4, r0, 0 movs r0, 0x3 bl sub_8085680 adds r6, r0, 0 ldr r0, [r4, 0xC] str r0, [sp] ldr r0, [r4, 0x10] movs r1, 0xC0 lsls r1, 6 adds r0, r1 str r0, [sp, 0x4] ldr r0, [r6, 0xC] str r0, [sp, 0x8] ldr r0, [r6, 0x10] movs r2, 0x80 lsls r2, 6 adds r0, r2 add r5, sp, 0x8 str r0, [r5, 0x4] bl sub_8086448 movs r0, 0xA movs r1, 0x46 bl sub_803E708 mov r0, r9 bl sub_80862BC movs r0, 0x20 movs r1, 0x46 bl sub_803E708 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _08086D84 bl sub_8052910 mov r0, sp movs r1, 0x40 bl sub_80858AC movs r0, 0x40 movs r1, 0x46 bl sub_803E708 adds r0, r5, 0 movs r1, 0x30 bl sub_80858AC ldr r0, _08086D88 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, [r4, 0x70] ldr r2, _08086D8C adds r1, r0, r2 movs r0, 0x1 strb r0, [r1] mov r0, sp movs r1, 0x30 bl sub_80858AC ldr r0, _08086D90 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 adds r0, r5, 0 movs r1, 0x20 bl sub_80858AC movs r0, 0x20 movs r1, 0x46 bl sub_803E708 adds r0, r6, 0 bl sub_8086E74 ldr r0, _08086D94 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _08086D98 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _08086D9C bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _08086DA0 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 adds r0, r6, 0 movs r1, 0xD movs r2, 0 bl sub_806CDD4 ldr r0, _08086DA4 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 mov r0, r9 movs r1, 0x4 movs r2, 0x1 movs r3, 0x2 bl sub_80869E4 mov r0, r8 movs r1, 0x4 movs r2, 0x2 movs r3, 0x6 bl sub_80869E4 ldr r0, _08086DA8 bl sub_8052910 mov r0, r9 movs r1, 0x4 movs r2, 0x2 movs r3, 0x4 bl sub_80869E4 mov r0, r8 movs r1, 0x4 movs r2, 0x1 movs r3, 0x4 bl sub_80869E4 movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r0, 0xB bl sub_8083E88 movs r0, 0xC add r8, r0 mov r0, r8 movs r1, 0x10 bl sub_80858AC add sp, 0x10 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08086D84: .4byte gUnknown_8100768 _08086D88: .4byte gUnknown_8100798 _08086D8C: .4byte 0x0000015d _08086D90: .4byte gUnknown_8100820 _08086D94: .4byte gUnknown_8100844 _08086D98: .4byte gUnknown_8100880 _08086D9C: .4byte gUnknown_8100928 _08086DA0: .4byte gUnknown_8100A04 _08086DA4: .4byte gUnknown_8100B80 _08086DA8: .4byte gUnknown_8100BC0 thumb_func_end sub_8086C0C thumb_func_start sub_8086DAC sub_8086DAC: push {r4,r5,lr} sub sp, 0x8 bl sub_8085480 adds r5, r0, 0 movs r0, 0x3 bl sub_8085680 adds r4, r0, 0 ldr r0, [r4, 0xC] str r0, [sp] ldr r0, [r4, 0x10] movs r1, 0x80 lsls r1, 6 adds r0, r1 str r0, [sp, 0x4] bl sub_8086448 movs r0, 0xA movs r1, 0x46 bl sub_803E708 adds r0, r4, 0 bl sub_8086E74 mov r0, sp movs r1, 0x10 bl sub_80858AC ldr r0, _08086E34 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _08086E38 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 adds r0, r4, 0 movs r1, 0xD movs r2, 0 bl sub_806CDD4 ldr r0, _08086E3C bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 adds r5, 0xC adds r0, r5, 0 movs r1, 0x10 bl sub_80858AC movs r0, 0xB bl sub_8083E88 add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08086E34: .4byte gUnknown_8100C90 _08086E38: .4byte gUnknown_8100CBC _08086E3C: .4byte gUnknown_8100CDC thumb_func_end sub_8086DAC thumb_func_start sub_8086E40 sub_8086E40: push {lr} bl sub_8085480 bl sub_808696C movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _08086E6C bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _08086E70 ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0x2] pop {r0} bx r0 .align 2, 0 _08086E6C: .4byte gUnknown_8100D3C _08086E70: .4byte gUnknown_203B418 thumb_func_end sub_8086E40 thumb_func_start sub_8086E74 sub_8086E74: push {r4,lr} adds r4, r0, 0 movs r1, 0xF movs r2, 0 bl sub_806CDD4 adds r0, r4, 0 bl sub_8086A54 movs r0, 0xFC lsls r0, 1 bl sub_8083E38 movs r0, 0x44 movs r1, 0x46 bl sub_803E708 pop {r4} pop {r0} bx r0 thumb_func_end sub_8086E74 thumb_func_start sub_8086E9C sub_8086E9C: push {r4,r5,lr} bl sub_8085480 adds r5, r0, 0 movs r0, 0x72 bl sub_8083E88 bl sub_8085374 bl sub_80854D4 movs r0, 0x4 bl sub_8085930 ldr r4, _08086EF8 adds r0, r4, 0 bl sub_80855E4 adds r0, r4, 0 bl sub_808563C movs r1, 0x4 ldrsh r0, [r5, r1] movs r2, 0x6 ldrsh r1, [r5, r2] subs r1, 0x3 bl sub_8085860 ldr r4, _08086EFC adds r0, r4, 0 movs r1, 0xB bl sub_808D8BC adds r0, r4, 0 adds r0, 0x50 movs r1, 0x5E bl sub_808D8BC adds r4, 0xA0 adds r0, r4, 0 movs r1, 0xA bl sub_808D8BC pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08086EF8: .4byte sub_8086A3C _08086EFC: .4byte gUnknown_202E038 thumb_func_end sub_8086E9C thumb_func_start sub_8086F00 sub_8086F00: push {r4,lr} bl sub_8085480 adds r4, r0, 0 bl sub_80854D4 movs r0, 0x4 bl sub_8085930 ldr r0, _08086F4C bl sub_80855E4 movs r1, 0x4 ldrsh r0, [r4, r1] movs r2, 0x6 ldrsh r1, [r4, r2] subs r1, 0x3 bl sub_8085860 ldr r4, _08086F50 adds r0, r4, 0 movs r1, 0xB bl sub_808D8BC adds r0, r4, 0 adds r0, 0x50 movs r1, 0x5E bl sub_808D8BC adds r4, 0xA0 adds r0, r4, 0 movs r1, 0xA bl sub_808D8BC pop {r4} pop {r0} bx r0 .align 2, 0 _08086F4C: .4byte sub_8086A3C _08086F50: .4byte gUnknown_202E038 thumb_func_end sub_8086F00 thumb_func_start sub_8086F54 sub_8086F54: push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 lsls r1, 24 movs r0, 0xFC lsls r0, 24 adds r1, r0 lsrs r1, 24 cmp r1, 0x1 bhi _08086FA8 movs r5, 0 _08086F6A: ldr r0, _08086FB0 ldr r0, [r0] lsls r1, r5, 2 ldr r2, _08086FB4 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08086F8E ldr r0, [r4, 0x70] adds r0, 0xA4 ldrb r0, [r0] cmp r0, r6 bne _08086FA8 _08086F8E: adds r5, 0x1 cmp r5, 0xF ble _08086F6A movs r0, 0 cmp r0, 0 bne _08086FA8 movs r0, 0x3 bl sub_8097FA8 ldr r0, _08086FB0 ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0x2] _08086FA8: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08086FB0: .4byte gUnknown_203B418 _08086FB4: .4byte 0x0001358c thumb_func_end sub_8086F54 thumb_func_start sub_8086FB8 sub_8086FB8: push {r4,lr} bl sub_8085480 adds r4, r0, 0 bl sub_8086448 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _08087048 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _0808704C bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 bl sub_8087144 movs r0, 0xA bl sub_8083E88 ldr r0, _08087050 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _08087054 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _08087058 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _0808705C bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _08087060 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 adds r4, 0xC adds r0, r4, 0 movs r1, 0x10 bl sub_80858AC pop {r4} pop {r0} bx r0 .align 2, 0 _08087048: .4byte gUnknown_8100DB0 _0808704C: .4byte gUnknown_8100E64 _08087050: .4byte gUnknown_8100E88 _08087054: .4byte gUnknown_8100F14 _08087058: .4byte gUnknown_8101004 _0808705C: .4byte gUnknown_8101050 _08087060: .4byte gUnknown_81010D0 thumb_func_end sub_8086FB8 thumb_func_start sub_8087064 sub_8087064: push {r4,r5,lr} bl sub_8085480 adds r4, r0, 0 bl sub_808548C adds r5, r0, 0 bl sub_8086448 ldr r0, _08087118 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _0808711C bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 bl sub_8087144 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _08087120 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _08087124 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 adds r0, r4, 0 movs r1, 0x6 movs r2, 0x4 bl sub_806CDD4 adds r0, r5, 0 movs r1, 0x6 movs r2, 0x4 bl sub_806CDD4 movs r0, 0xA movs r1, 0x46 bl sub_803E708 adds r0, r4, 0 movs r1, 0x7 movs r2, 0x4 bl sub_806CDD4 adds r0, r5, 0 movs r1, 0x7 movs r2, 0x4 bl sub_806CDD4 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _08087128 bl sub_8052910 ldr r0, _0808712C bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 adds r4, 0xC adds r0, r4, 0 movs r1, 0x10 bl sub_80858AC pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08087118: .4byte gUnknown_8101164 _0808711C: .4byte gUnknown_8100E64 _08087120: .4byte gUnknown_8101240 _08087124: .4byte gUnknown_8101310 _08087128: .4byte gUnknown_810137C _0808712C: .4byte gUnknown_8101408 thumb_func_end sub_8087064 thumb_func_start sub_8087130 sub_8087130: push {lr} bl sub_8086448 ldr r0, _08087140 bl sub_80866C4 pop {r0} bx r0 .align 2, 0 _08087140: .4byte gUnknown_8101440 thumb_func_end sub_8087130 thumb_func_start sub_8087144 sub_8087144: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0xF0 movs r0, 0x5 bl sub_8085680 adds r7, r0, 0 movs r0, 0x6 bl sub_8085680 mov r8, r0 movs r0, 0x7 bl sub_8085680 mov r9, r0 ldr r1, _080871E0 mov r0, sp movs r2, 0x38 bl memcpy add r6, sp, 0x38 ldr r1, _080871E4 adds r0, r6, 0 movs r2, 0x38 bl memcpy add r4, sp, 0x70 ldr r1, _080871E8 adds r0, r4, 0 movs r2, 0x38 bl memcpy add r5, sp, 0xA8 mov r0, sp str r0, [r5] str r6, [r5, 0x4] str r4, [r5, 0x8] add r4, sp, 0xB4 str r7, [r4] mov r3, r8 str r3, [r4, 0x4] mov r0, r9 str r0, [r4, 0x8] movs r0, 0xA bl sub_8083E88 adds r0, r7, 0 bl sub_8086A54 mov r0, r8 bl sub_8086A54 mov r0, r9 bl sub_8086A54 add r6, sp, 0xC0 adds r0, r6, 0 adds r1, r5, 0 adds r2, r4, 0 movs r3, 0x3 bl sub_8085B4C ldr r0, [r7, 0x70] ldr r2, _080871EC adds r0, r2 movs r1, 0x1 strb r1, [r0] mov r3, r8 ldr r0, [r3, 0x70] adds r0, r2 strb r1, [r0] mov r3, r9 ldr r0, [r3, 0x70] adds r0, r2 strb r1, [r0] b _080871F6 .align 2, 0 _080871E0: .4byte gUnknown_810739C _080871E4: .4byte gUnknown_81073D4 _080871E8: .4byte gUnknown_810740C _080871EC: .4byte 0x0000015f _080871F0: movs r0, 0x46 bl sub_803E46C _080871F6: adds r0, r6, 0 bl sub_8085B80 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 bne _080871F0 ldr r0, [r7, 0x70] ldr r1, _0808722C adds r0, r1 strb r2, [r0] mov r3, r8 ldr r0, [r3, 0x70] adds r0, r1 strb r2, [r0] mov r3, r9 ldr r0, [r3, 0x70] adds r0, r1 strb r2, [r0] add sp, 0xF0 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0808722C: .4byte 0x0000015f thumb_func_end sub_8087144 thumb_func_start sub_8087230 sub_8087230: push {r4-r6,lr} bl sub_8085480 adds r6, r0, 0 movs r0, 0x8 bl sub_8085680 adds r5, r0, 0 movs r0, 0x72 bl sub_8083E88 bl sub_8085374 bl sub_80854D4 movs r0, 0x4 bl sub_8085930 ldr r4, _08087294 adds r0, r4, 0 bl sub_80855E4 adds r0, r5, 0 movs r1, 0 bl sub_8085918 adds r0, r5, 0 bl _call_via_r4 movs r1, 0x4 ldrsh r0, [r6, r1] movs r2, 0x6 ldrsh r1, [r6, r2] subs r1, 0x3 bl sub_8085860 ldr r4, _08087298 movs r1, 0x96 lsls r1, 1 adds r0, r4, 0 bl sub_808D8BC adds r4, 0x50 adds r0, r4, 0 movs r1, 0x91 bl sub_808D8BC pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08087294: .4byte sub_8086A3C _08087298: .4byte gUnknown_202E038 thumb_func_end sub_8087230 thumb_func_start sub_808729C sub_808729C: push {r4-r6,lr} sub sp, 0x4 bl sub_8085480 adds r5, r0, 0 movs r0, 0x8 bl sub_8085680 adds r4, r0, 0 bl sub_80854D4 movs r0, 0x4 bl sub_8085930 ldr r6, _080872DC adds r0, r6, 0 bl sub_80855E4 movs r0, 0x91 bl sub_8086AE4 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 beq _080872E0 movs r1, 0x87 lsls r1, 2 adds r0, r4, 0 movs r2, 0 bl sub_8068FE0 b _08087300 .align 2, 0 _080872DC: .4byte sub_8086A3C _080872E0: ldr r0, _0808732C movs r3, 0 ldrsh r2, [r0, r3] str r1, [sp] adds r0, r4, 0 adds r1, r4, 0 movs r3, 0 bl sub_8072008 adds r0, r4, 0 movs r1, 0 bl sub_8085918 adds r0, r4, 0 bl _call_via_r6 _08087300: movs r1, 0x4 ldrsh r0, [r5, r1] movs r2, 0x6 ldrsh r1, [r5, r2] subs r1, 0x3 bl sub_8085860 ldr r4, _08087330 movs r1, 0x96 lsls r1, 1 adds r0, r4, 0 bl sub_808D8BC adds r4, 0x50 adds r0, r4, 0 movs r1, 0x91 bl sub_808D8BC add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0808732C: .4byte gUnknown_80F57CC _08087330: .4byte gUnknown_202E038 thumb_func_end sub_808729C thumb_func_start sub_8087334 sub_8087334: push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 movs r2, 0xF9 lsls r2, 24 adds r1, r2 lsrs r1, 24 cmp r1, 0x2 bhi _0808735A cmp r0, 0x8 bne _0808735A movs r0, 0x5 bl sub_8097FA8 ldr r0, _08087360 ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0x2] _0808735A: pop {r0} bx r0 .align 2, 0 _08087360: .4byte gUnknown_203B418 thumb_func_end sub_8087334 thumb_func_start sub_8087364 sub_8087364: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x70 bl sub_8085480 mov r9, r0 bl sub_808548C adds r6, r0, 0 movs r0, 0x8 bl sub_8085680 str r0, [sp, 0x68] bl sub_8086448 movs r0, 0xA movs r1, 0x46 bl sub_803E708 adds r0, r6, 0 bl sub_808696C movs r0, 0xA movs r1, 0x46 bl sub_803E708 adds r0, r6, 0 movs r1, 0x4 movs r2, 0x1 movs r3, 0x2 bl sub_80869E4 mov r0, r9 movs r1, 0x4 movs r2, 0x2 movs r3, 0x6 bl sub_80869E4 ldr r0, _08087470 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 adds r0, r6, 0 movs r1, 0x4 movs r2, 0x2 movs r3, 0x4 bl sub_80869E4 mov r0, r9 movs r1, 0x4 movs r2, 0x1 movs r3, 0x4 bl sub_80869E4 ldr r0, _08087474 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r0, 0x3 bl sub_808775C bl sub_8083F14 movs r0, 0xED lsls r0, 1 bl sub_8083E38 ldr r0, _08087478 bl sub_8052910 ldr r0, [sp, 0x68] bl sub_8087704 movs r0, 0x9 bl sub_8083E88 adds r0, r6, 0 movs r1, 0x6 movs r2, 0x4 bl sub_806CDD4 ldr r0, _0808747C bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 adds r0, r6, 0 movs r1, 0x2 movs r2, 0x1 movs r3, 0x1 bl sub_80869E4 mov r1, sp ldr r0, _08087480 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} mov r0, sp str r0, [sp, 0x58] str r6, [sp, 0x5C] add r4, sp, 0x18 add r1, sp, 0x58 add r2, sp, 0x5C adds r0, r4, 0 movs r3, 0x1 bl sub_8085B4C ldr r0, [r6, 0x70] ldr r2, _08087484 adds r1, r0, r2 movs r0, 0x1 strb r0, [r1] add r7, sp, 0x28 add r3, sp, 0x48 mov r8, r3 add r0, sp, 0x60 mov r10, r0 mov r1, sp adds r1, 0x64 str r1, [sp, 0x6C] b _0808748E .align 2, 0 _08087470: .4byte gUnknown_81014B0 _08087474: .4byte gUnknown_8101504 _08087478: .4byte gUnknown_81015A0 _0808747C: .4byte gUnknown_81015D4 _08087480: .4byte gUnknown_810744C _08087484: .4byte 0x0000015f _08087488: movs r0, 0x46 bl sub_803E46C _0808748E: adds r0, r4, 0 bl sub_8085B80 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _08087488 ldr r0, [r6, 0x70] ldr r2, _08087510 adds r0, r2 strb r5, [r0] ldr r0, [r6, 0x70] ldr r4, _08087514 adds r0, r4 movs r1, 0x1 strb r1, [r0] adds r0, r6, 0 movs r1, 0x2 movs r2, 0x2 movs r3, 0x4 bl sub_80869E4 ldr r0, _08087518 bl sub_8052910 movs r0, 0x3C movs r1, 0x46 bl sub_803E708 ldr r0, _0808751C bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, [r6, 0x70] adds r0, r4 strb r5, [r0] adds r0, r6, 0 movs r1, 0x2 movs r2, 0x2 movs r3, 0x5 bl sub_80869E4 adds r1, r7, 0 ldr r0, _08087520 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r3,r4} stm r1!, {r3,r4} str r7, [sp, 0x60] str r6, [sp, 0x64] mov r0, r8 mov r1, r10 ldr r2, [sp, 0x6C] movs r3, 0x1 bl sub_8085B4C mov r4, r9 adds r4, 0xC b _0808752A .align 2, 0 _08087510: .4byte 0x0000015f _08087514: .4byte 0x0000015d _08087518: .4byte gUnknown_81015E8 _0808751C: .4byte gUnknown_8101624 _08087520: .4byte gUnknown_8107464 _08087524: movs r0, 0x46 bl sub_803E46C _0808752A: mov r0, r8 bl sub_8085B80 lsls r0, 24 cmp r0, 0 bne _08087524 adds r0, r6, 0 movs r1, 0x2 movs r2, 0x1 movs r3, 0x3 bl sub_80869E4 ldr r0, _080875B0 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r0, 0x3 bl sub_808775C ldr r0, _080875B4 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r0, 0x1 bl sub_808775C ldr r0, _080875B8 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r0, 0x2 bl sub_808775C ldr r0, _080875BC bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r1, 0x96 lsls r1, 1 ldr r0, [sp, 0x68] movs r2, 0xB bl sub_8086A70 adds r0, r4, 0 movs r1, 0x10 bl sub_80858AC add sp, 0x70 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080875B0: .4byte gUnknown_810165C _080875B4: .4byte gUnknown_8101750 _080875B8: .4byte gUnknown_810178C _080875BC: .4byte gUnknown_81017B4 thumb_func_end sub_8087364 thumb_func_start sub_80875C0 sub_80875C0: push {r4,r5,lr} bl sub_8085480 adds r4, r0, 0 movs r0, 0x8 bl sub_8085680 adds r5, r0, 0 bl sub_8086448 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _08087648 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r0, 0xED lsls r0, 1 bl sub_8083E38 ldr r0, _0808764C bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 adds r0, r5, 0 bl sub_8087704 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _08087650 bl sub_8052910 movs r0, 0x1 bl sub_808775C ldr r0, _08087654 bl sub_8052910 movs r0, 0x2 bl sub_808775C ldr r0, _08087658 bl sub_8052910 movs r1, 0x96 lsls r1, 1 adds r0, r5, 0 movs r2, 0xB bl sub_8086A70 adds r4, 0xC adds r0, r4, 0 movs r1, 0x10 bl sub_80858AC pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08087648: .4byte gUnknown_81017E4 _0808764C: .4byte gUnknown_81015A0 _08087650: .4byte gUnknown_8101898 _08087654: .4byte gUnknown_81018EC _08087658: .4byte gUnknown_8101918 thumb_func_end sub_80875C0 thumb_func_start sub_808765C sub_808765C: push {r4,r5,lr} bl sub_8085480 adds r5, r0, 0 movs r0, 0x8 bl sub_8085680 adds r4, r0, 0 bl sub_8086448 movs r0, 0x91 bl sub_8086AE4 lsls r0, 24 cmp r0, 0 beq _08087688 ldr r0, _08087684 bl sub_80866C4 b _080876EA .align 2, 0 _08087684: .4byte gUnknown_8101A38 _08087688: movs r0, 0x1 bl sub_808775C movs r0, 0xED lsls r0, 1 bl sub_8083E38 ldr r0, _080876F0 bl sub_8052910 adds r0, r4, 0 bl sub_8087704 ldr r0, _080876F4 bl sub_8052910 movs r0, 0x1 bl sub_808775C ldr r0, _080876F8 bl sub_8052910 movs r0, 0x2 bl sub_808775C ldr r0, _080876FC bl sub_8052910 movs r0, 0x2 bl sub_808775C ldr r0, _08087700 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r1, 0x96 lsls r1, 1 adds r0, r4, 0 movs r2, 0xB bl sub_8086A70 adds r0, r5, 0 adds r0, 0xC movs r1, 0x10 bl sub_80858AC _080876EA: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080876F0: .4byte gUnknown_810193C _080876F4: .4byte gUnknown_8101970 _080876F8: .4byte gUnknown_8101994 _080876FC: .4byte gUnknown_81019E4 _08087700: .4byte gUnknown_8101A04 thumb_func_end sub_808765C thumb_func_start sub_8087704 sub_8087704: push {r4,r5,lr} adds r5, r0, 0 ldr r0, [r5, 0x70] movs r1, 0xAE lsls r1, 1 adds r0, r1 movs r2, 0 movs r1, 0x1 strb r1, [r0] ldr r0, [r5, 0x70] movs r1, 0xAF lsls r1, 1 adds r0, r1 strb r2, [r0] ldr r0, [r5, 0x70] adds r1, 0x16 adds r0, r1 movs r1, 0xC8 str r1, [r0] movs r0, 0xF5 lsls r0, 1 bl sub_8083E38 movs r4, 0xC8 _08087734: ldr r0, [r5, 0x70] movs r1, 0xBA lsls r1, 1 adds r0, r1 lsls r1, r4, 8 str r1, [r0] movs r0, 0x46 bl sub_803E46C subs r4, 0x5 cmp r4, 0 bge _08087734 movs r0, 0x1E movs r1, 0x46 bl sub_803E708 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8087704 thumb_func_start sub_808775C sub_808775C: push {r4,r5,lr} sub sp, 0x4 adds r5, r0, 0 movs r0, 0xFB lsls r0, 1 bl sub_8083E38 cmp r5, 0x2 ble _08087790 movs r4, 0xFA _08087770: lsrs r2, r4, 31 adds r2, r4, r2 asrs r2, 1 movs r0, 0x1 str r0, [sp] adds r0, r4, 0 adds r1, r4, 0 movs r3, 0x1 bl sub_8085C54 movs r0, 0x46 bl sub_803E46C subs r4, 0xA cmp r4, 0xC7 bgt _08087770 _08087790: cmp r5, 0x1 ble _080877B6 movs r4, 0xFA _08087796: lsrs r2, r4, 31 adds r2, r4, r2 asrs r2, 1 movs r0, 0x1 str r0, [sp] adds r0, r4, 0 adds r1, r4, 0 movs r3, 0x1 bl sub_8085C54 movs r0, 0x46 bl sub_803E46C subs r4, 0xA cmp r4, 0xC7 bgt _08087796 _080877B6: movs r4, 0xFA _080877B8: adds r2, r4, 0 cmp r4, 0 bge _080877C0 adds r2, r4, 0x3 _080877C0: asrs r2, 2 movs r0, 0x1 str r0, [sp] adds r0, r4, 0 adds r1, r4, 0 movs r3, 0x1 bl sub_8085C54 movs r0, 0x46 bl sub_803E46C subs r4, 0xA cmp r4, 0 bge _080877B8 bl sub_8085EB0 add sp, 0x4 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_808775C thumb_func_start sub_80877E8 sub_80877E8: push {r4-r6,lr} bl sub_8085480 adds r6, r0, 0 movs r0, 0x9 bl sub_8085680 adds r5, r0, 0 movs r0, 0x26 bl sub_8083E88 bl sub_8085374 bl sub_80854D4 movs r0, 0x6 bl sub_8085930 ldr r4, _08087840 adds r0, r4, 0 bl sub_80855E4 adds r0, r5, 0 movs r1, 0 bl sub_8085918 adds r0, r5, 0 bl _call_via_r4 movs r1, 0x4 ldrsh r0, [r6, r1] subs r0, 0x3 movs r2, 0x6 ldrsh r1, [r6, r2] subs r1, 0x2 bl sub_8085860 ldr r0, _08087844 movs r1, 0x92 bl sub_808D8BC pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08087840: .4byte sub_8086A3C _08087844: .4byte gUnknown_202E038 thumb_func_end sub_80877E8 thumb_func_start sub_8087848 sub_8087848: push {r4-r6,lr} sub sp, 0x4 bl sub_8085480 adds r5, r0, 0 movs r0, 0x9 bl sub_8085680 adds r4, r0, 0 movs r0, 0x26 bl sub_8083E88 bl sub_80854D4 movs r0, 0x6 bl sub_8085930 ldr r6, _08087890 adds r0, r6, 0 bl sub_80855E4 movs r0, 0x92 bl sub_8086AE4 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 beq _08087894 movs r1, 0x87 lsls r1, 2 adds r0, r4, 0 movs r2, 0 bl sub_8068FE0 b _080878B4 .align 2, 0 _08087890: .4byte sub_8086A3C _08087894: ldr r0, _080878E8 movs r3, 0 ldrsh r2, [r0, r3] str r1, [sp] adds r0, r4, 0 adds r1, r4, 0 movs r3, 0 bl sub_8072008 adds r0, r4, 0 movs r1, 0 bl sub_8085918 adds r0, r4, 0 bl _call_via_r6 _080878B4: movs r1, 0x4 ldrsh r0, [r5, r1] subs r0, 0x5 movs r2, 0x6 ldrsh r1, [r5, r2] bl sub_8085860 bl sub_803F994 adds r4, r0, 0 bl sub_803F9B0 adds r1, r0, 0 ldr r3, _080878EC adds r1, r3 adds r0, r4, 0 bl sub_803F878 ldr r0, _080878F0 movs r1, 0x92 bl sub_808D8BC add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080878E8: .4byte gUnknown_80F57CE _080878EC: .4byte 0xfffff000 _080878F0: .4byte gUnknown_202E038 thumb_func_end sub_8087848 thumb_func_start sub_80878F4 sub_80878F4: push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 movs r2, 0xF6 lsls r2, 24 adds r1, r2 lsrs r1, 24 cmp r1, 0x2 bhi _0808791A cmp r0, 0x9 bne _0808791A movs r0, 0x7 bl sub_8097FA8 ldr r0, _08087920 ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0x2] _0808791A: pop {r0} bx r0 .align 2, 0 _08087920: .4byte gUnknown_203B418 thumb_func_end sub_80878F4 thumb_func_start sub_8087924 sub_8087924: push {r4-r6,lr} bl sub_8085480 adds r5, r0, 0 bl sub_808548C adds r4, r0, 0 movs r0, 0x9 bl sub_8085680 adds r6, r0, 0 movs r0, 0xC movs r1, 0x5 bl sub_8087D80 bl sub_8086500 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _08087AE8 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 adds r0, r4, 0 movs r1, 0x4 movs r2, 0x1 movs r3, 0x5 bl sub_80869E4 movs r0, 0x4 movs r1, 0x46 bl sub_803E708 adds r0, r4, 0 bl sub_808696C movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _08087AEC bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r0, 0xC movs r1, 0x5 bl sub_8087D80 movs r0, 0x9 movs r1, 0x5 bl sub_8087DE8 ldr r0, _08087AF0 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 adds r0, r4, 0 movs r1, 0x4 movs r2, 0x1 movs r3, 0x2 bl sub_80869E4 adds r0, r5, 0 movs r1, 0x4 movs r2, 0x2 movs r3, 0x6 bl sub_80869E4 ldr r0, _08087AF4 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 adds r0, r4, 0 movs r1, 0x4 movs r2, 0x2 movs r3, 0x6 bl sub_80869E4 bl sub_8086690 ldr r0, _08087AF8 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r0, 0x5 bl sub_8085930 movs r0, 0x4 movs r1, 0x46 bl sub_803E708 movs r0, 0x4 bl sub_8085930 ldr r0, _08087AFC bl sub_8083E38 bl sub_8083F14 bl sub_8087F24 ldr r0, _08087B00 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _08087B04 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _08087B08 bl sub_8083E38 adds r0, r4, 0 movs r1, 0x4 bl sub_80856E0 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _08087B0C bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 bl sub_8087EB0 movs r0, 0xED lsls r0, 1 bl sub_8083E38 ldr r0, _08087B10 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r0, 0x9 movs r1, 0x5 bl sub_8087D80 movs r0, 0xB movs r1, 0x5 bl sub_8087DE8 ldr r0, _08087B14 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r0, 0xC movs r1, 0x5 bl sub_8087D80 movs r0, 0x9 movs r1, 0x5 bl sub_8087DE8 adds r0, r6, 0 bl sub_8087D30 bl sub_808663C bl sub_8087EB0 ldr r0, _08087B18 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r0, 0xB movs r1, 0x6 bl sub_8087DE8 ldr r0, _08087B1C bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r1, 0xC8 lsls r1, 1 adds r0, r6, 0 movs r2, 0xB bl sub_8086A70 adds r5, 0xC adds r0, r5, 0 movs r1, 0x10 bl sub_80858AC pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08087AE8: .4byte gUnknown_8101A9C _08087AEC: .4byte gUnknown_8101AD4 _08087AF0: .4byte gUnknown_8101C30 _08087AF4: .4byte gUnknown_8101CBC _08087AF8: .4byte gUnknown_8101D8C _08087AFC: .4byte 0x000002f2 _08087B00: .4byte gUnknown_8101DA0 _08087B04: .4byte gUnknown_8101E1C _08087B08: .4byte 0x000001cf _08087B0C: .4byte gUnknown_8101EAC _08087B10: .4byte gUnknown_8102070 _08087B14: .4byte gUnknown_81020A4 _08087B18: .4byte gUnknown_81020D4 _08087B1C: .4byte gUnknown_8102108 thumb_func_end sub_8087924 thumb_func_start sub_8087B20 sub_8087B20: push {r4-r6,lr} bl sub_8085480 adds r5, r0, 0 bl sub_808548C adds r4, r0, 0 movs r0, 0x9 bl sub_8085680 adds r6, r0, 0 movs r0, 0xA movs r1, 0x5 bl sub_8087D80 bl sub_8086500 movs r0, 0xA movs r1, 0x46 bl sub_803E708 adds r0, r4, 0 bl sub_808696C movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _08087C24 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 adds r0, r4, 0 movs r1, 0x4 movs r2, 0x1 movs r3, 0x2 bl sub_80869E4 adds r0, r5, 0 movs r1, 0x4 movs r2, 0x2 movs r3, 0x6 bl sub_80869E4 ldr r0, _08087C28 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 adds r0, r4, 0 movs r1, 0x4 movs r2, 0x2 movs r3, 0x6 bl sub_80869E4 adds r0, r5, 0 movs r1, 0x4 movs r2, 0x2 movs r3, 0x6 bl sub_80869E4 bl sub_8086690 bl sub_8087F24 movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r0, 0x5 bl sub_8085930 movs r0, 0x4 movs r1, 0x46 bl sub_803E708 movs r0, 0x4 bl sub_8085930 adds r0, r6, 0 bl sub_8087D30 bl sub_808663C bl sub_8087EB0 ldr r0, _08087C2C bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r0, 0xB movs r1, 0x6 bl sub_8087DE8 ldr r0, _08087C30 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _08087C34 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r1, 0xC8 lsls r1, 1 adds r0, r6, 0 movs r2, 0xB bl sub_8086A70 adds r5, 0xC adds r0, r5, 0 movs r1, 0x10 bl sub_80858AC pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08087C24: .4byte gUnknown_8102158 _08087C28: .4byte gUnknown_8102190 _08087C2C: .4byte gUnknown_8102200 _08087C30: .4byte gUnknown_8102254 _08087C34: .4byte gUnknown_81022F8 thumb_func_end sub_8087B20 thumb_func_start sub_8087C38 sub_8087C38: push {r4,r5,lr} bl sub_8085480 adds r5, r0, 0 movs r0, 0x9 bl sub_8085680 adds r4, r0, 0 movs r0, 0xC movs r1, 0x5 bl sub_8087D80 bl sub_808654C movs r0, 0x92 bl sub_8086AE4 lsls r0, 24 cmp r0, 0 beq _08087CA4 movs r0, 0x5 bl sub_8085930 movs r0, 0x4 movs r1, 0x46 bl sub_803E708 movs r0, 0x4 bl sub_8085930 movs r0, 0x4 movs r1, 0x46 bl sub_803E708 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _08087C9C bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _08087CA0 ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0x2] b _08087D16 .align 2, 0 _08087C9C: .4byte gUnknown_8100D3C _08087CA0: .4byte gUnknown_203B418 _08087CA4: ldr r0, _08087D1C bl sub_8052910 movs r0, 0x5 bl sub_8085930 movs r0, 0x4 movs r1, 0x46 bl sub_803E708 movs r0, 0x4 bl sub_8085930 adds r0, r4, 0 bl sub_8087D30 ldr r0, _08087D20 bl sub_8052910 movs r0, 0xC movs r1, 0x5 bl sub_8087D80 movs r0, 0x9 movs r1, 0x5 bl sub_8087DE8 ldr r0, _08087D24 bl sub_8052910 bl sub_8087EB0 ldr r0, _08087D28 bl sub_8052910 movs r0, 0xB movs r1, 0x6 bl sub_8087DE8 ldr r0, _08087D2C bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r1, 0xC8 lsls r1, 1 adds r0, r4, 0 movs r2, 0xB bl sub_8086A70 adds r0, r5, 0 adds r0, 0xC movs r1, 0x10 bl sub_80858AC _08087D16: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08087D1C: .4byte gUnknown_810232C _08087D20: .4byte gUnknown_8102398 _08087D24: .4byte gUnknown_81023C4 _08087D28: .4byte gUnknown_8102400 _08087D2C: .4byte gUnknown_8102454 thumb_func_end sub_8087C38 thumb_func_start sub_8087D30 sub_8087D30: push {r4,r5,lr} adds r5, r0, 0 ldr r0, [r5, 0x70] movs r1, 0xAE lsls r1, 1 adds r0, r1 movs r2, 0 movs r1, 0x1 strb r1, [r0] ldr r0, [r5, 0x70] movs r1, 0xAF lsls r1, 1 adds r0, r1 strb r2, [r0] ldr r0, [r5, 0x70] adds r1, 0x16 adds r0, r1 movs r1, 0xC8 lsls r1, 8 str r1, [r0] movs r0, 0xFC lsls r0, 1 bl sub_8083E38 movs r4, 0xC8 _08087D62: ldr r0, [r5, 0x70] movs r1, 0xBA lsls r1, 1 adds r0, r1 lsls r1, r4, 8 str r1, [r0] movs r0, 0x46 bl sub_803E46C subs r4, 0x5 cmp r4, 0 bge _08087D62 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8087D30 thumb_func_start sub_8087D80 sub_8087D80: push {lr} sub sp, 0x8 adds r3, r1, 0 lsls r1, r0, 1 adds r1, r0 lsls r1, 11 movs r2, 0xC0 lsls r2, 4 adds r0, r1, r2 cmp r0, 0 bge _08087D98 adds r0, 0xFF _08087D98: lsls r0, 8 lsrs r0, 16 ldr r1, _08087DE0 ldr r2, [sp, 0x4] ands r2, r1 orrs r2, r0 str r2, [sp, 0x4] lsls r0, r3, 1 adds r0, r3 lsls r0, 11 movs r1, 0x80 lsls r1, 5 adds r0, r1 cmp r0, 0 bge _08087DB8 adds r0, 0xFF _08087DB8: lsls r0, 8 lsrs r0, 16 lsls r0, 16 ldr r1, _08087DE4 ands r2, r1 orrs r2, r0 str r2, [sp, 0x4] movs r0, 0xB9 lsls r0, 1 movs r1, 0 str r1, [sp] movs r1, 0x10 movs r2, 0 add r3, sp, 0x4 bl sub_8085EC8 add sp, 0x8 pop {r0} bx r0 .align 2, 0 _08087DE0: .4byte 0xffff0000 _08087DE4: .4byte 0x0000ffff thumb_func_end sub_8087D80 thumb_func_start sub_8087DE8 sub_8087DE8: push {r4-r6,lr} sub sp, 0x8 adds r3, r1, 0 lsls r1, r0, 1 adds r1, r0 lsls r1, 11 movs r2, 0xC0 lsls r2, 4 adds r0, r1, r2 cmp r0, 0 bge _08087E00 adds r0, 0xFF _08087E00: lsls r0, 8 lsrs r0, 16 ldr r1, _08087EA8 ldr r2, [sp, 0x4] ands r2, r1 orrs r2, r0 str r2, [sp, 0x4] lsls r0, r3, 1 adds r0, r3 lsls r0, 11 movs r1, 0x80 lsls r1, 5 adds r0, r1 cmp r0, 0 bge _08087E20 adds r0, 0xFF _08087E20: lsls r0, 8 lsrs r0, 16 lsls r0, 16 ldr r1, _08087EAC ands r2, r1 orrs r2, r0 str r2, [sp, 0x4] movs r0, 0xB9 lsls r0, 1 movs r1, 0 str r1, [sp] movs r1, 0x16 movs r2, 0 add r3, sp, 0x4 bl sub_8085EC8 adds r6, r0, 0 movs r0, 0xF6 lsls r0, 1 bl sub_8083E38 movs r4, 0xFA movs r5, 0x1 _08087E4E: str r5, [sp] adds r0, r4, 0 movs r1, 0 movs r2, 0 movs r3, 0x1 bl sub_8085C54 movs r0, 0x46 bl sub_803E46C subs r4, 0xA cmp r4, 0x13 bgt _08087E4E movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r4, 0xFA movs r5, 0x1 _08087E74: str r5, [sp] adds r0, r4, 0 movs r1, 0 movs r2, 0 movs r3, 0x1 bl sub_8085C54 movs r0, 0x46 bl sub_803E46C subs r4, 0xA cmp r4, 0 bge _08087E74 movs r0, 0xA movs r1, 0x46 bl sub_803E708 bl sub_8085EB0 adds r0, r6, 0 bl sub_8085F44 add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08087EA8: .4byte 0xffff0000 _08087EAC: .4byte 0x0000ffff thumb_func_end sub_8087DE8 thumb_func_start sub_8087EB0 sub_8087EB0: push {r4,lr} sub sp, 0x4 ldr r0, _08087F20 bl sub_8083E38 movs r4, 0xFA _08087EBC: lsrs r2, r4, 31 adds r2, r4, r2 asrs r2, 1 movs r0, 0x1 str r0, [sp] adds r0, r4, 0 adds r1, r4, 0 movs r3, 0x1 bl sub_8085C54 movs r0, 0x46 bl sub_803E46C subs r4, 0xA cmp r4, 0x9 bgt _08087EBC movs r0, 0x1E movs r1, 0x46 bl sub_803E708 ldr r0, _08087F20 bl sub_8083E38 movs r4, 0xFA _08087EEC: lsrs r2, r4, 31 adds r2, r4, r2 asrs r2, 1 movs r0, 0x1 str r0, [sp] adds r0, r4, 0 adds r1, r4, 0 movs r3, 0x1 bl sub_8085C54 movs r0, 0x46 bl sub_803E46C subs r4, 0xA cmp r4, 0 bge _08087EEC movs r0, 0x1E movs r1, 0x46 bl sub_803E708 bl sub_8085EB0 add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08087F20: .4byte 0x000001ed thumb_func_end sub_8087EB0 thumb_func_start sub_8087F24 sub_8087F24: push {r4-r6,lr} sub sp, 0x4 movs r4, 0 movs r6, 0 movs r5, 0x50 negs r5, r5 _08087F30: str r6, [sp] adds r0, r4, 0 adds r1, r4, 0 adds r2, r4, 0 movs r3, 0 bl sub_8085C54 movs r0, 0x46 bl sub_803E46C subs r4, 0x8 cmp r4, r5 bge _08087F30 add sp, 0x4 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8087F24 thumb_func_start sub_8087F54 sub_8087F54: push {r4-r6,lr} bl sub_8085480 adds r6, r0, 0 movs r0, 0xD bl sub_8085680 adds r5, r0, 0 movs r0, 0x72 bl sub_8083E88 bl sub_8085374 bl sub_80854D4 movs r0, 0x4 bl sub_8085930 ldr r4, _08087FAC adds r0, r4, 0 bl sub_80855E4 adds r0, r5, 0 movs r1, 0 bl sub_8085918 adds r0, r5, 0 bl _call_via_r4 movs r1, 0x4 ldrsh r0, [r6, r1] movs r2, 0x6 ldrsh r1, [r6, r2] subs r1, 0x3 bl sub_8085860 ldr r0, _08087FB0 movs r1, 0x90 bl sub_808D8BC pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08087FAC: .4byte sub_8086A3C _08087FB0: .4byte gUnknown_202E038 thumb_func_end sub_8087F54 thumb_func_start sub_8087FB4 sub_8087FB4: push {r4,lr} movs r0, 0xD bl sub_8085680 adds r4, r0, 0 movs r0, 0x72 bl sub_8083E88 bl sub_8085374 bl sub_80854D4 movs r0, 0x4 bl sub_8085930 adds r0, r4, 0 movs r1, 0 bl sub_8085918 adds r0, r4, 0 movs r1, 0xF movs r2, 0 bl sub_806CDD4 ldr r0, _08087FF4 movs r1, 0x90 bl sub_808D8BC pop {r4} pop {r0} bx r0 .align 2, 0 _08087FF4: .4byte gUnknown_202E038 thumb_func_end sub_8087FB4 thumb_func_start sub_8087FF8 sub_8087FF8: push {r4-r6,lr} sub sp, 0x4 bl sub_8085480 adds r5, r0, 0 movs r0, 0xD bl sub_8085680 adds r4, r0, 0 bl sub_8085374 bl sub_80854D4 movs r0, 0x4 bl sub_8085930 ldr r6, _0808803C adds r0, r6, 0 bl sub_80855E4 movs r0, 0x90 bl sub_8086AE4 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 beq _08088040 movs r1, 0x87 lsls r1, 2 adds r0, r4, 0 movs r2, 0 bl sub_8068FE0 b _08088060 .align 2, 0 _0808803C: .4byte sub_8086A3C _08088040: ldr r0, _08088080 movs r3, 0 ldrsh r2, [r0, r3] str r1, [sp] adds r0, r4, 0 adds r1, r4, 0 movs r3, 0 bl sub_8072008 adds r0, r4, 0 movs r1, 0 bl sub_8085918 adds r0, r4, 0 bl _call_via_r6 _08088060: movs r1, 0x4 ldrsh r0, [r5, r1] movs r2, 0x6 ldrsh r1, [r5, r2] subs r1, 0x3 bl sub_8085860 ldr r0, _08088084 movs r1, 0x90 bl sub_808D8BC add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08088080: .4byte gUnknown_80F57D0 _08088084: .4byte gUnknown_202E038 thumb_func_end sub_8087FF8 thumb_func_start sub_8088088 sub_8088088: push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 movs r2, 0xF3 lsls r2, 24 adds r1, r2 lsrs r1, 24 cmp r1, 0x2 bhi _080880AE cmp r0, 0xD bne _080880AE movs r0, 0x9 bl sub_8097FA8 ldr r0, _080880B4 ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0x2] _080880AE: pop {r0} bx r0 .align 2, 0 _080880B4: .4byte gUnknown_203B418 thumb_func_end sub_8088088 thumb_func_start sub_80880B8 sub_80880B8: push {r4-r6,lr} mov r6, r8 push {r6} bl sub_8085480 adds r5, r0, 0 bl sub_808548C adds r6, r0, 0 movs r0, 0xD bl sub_8085680 mov r8, r0 bl sub_8086448 adds r0, r6, 0 bl sub_808696C ldr r0, _080882C8 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 bl sub_8086598 bl sub_8083F14 ldr r0, _080882CC bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 adds r0, r6, 0 movs r1, 0x4 movs r2, 0x1 movs r3, 0x2 bl sub_80869E4 adds r0, r5, 0 movs r1, 0x4 movs r2, 0x2 movs r3, 0x6 bl sub_80869E4 ldr r0, _080882D0 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 adds r0, r5, 0 movs r1, 0x6 bl sub_8085918 movs r0, 0x4 movs r1, 0x46 bl sub_803E708 adds r0, r5, 0 movs r1, 0x5 bl sub_8085918 movs r0, 0x4 movs r1, 0x46 bl sub_803E708 adds r0, r5, 0 movs r1, 0x6 bl sub_8085918 movs r0, 0x4 movs r1, 0x46 bl sub_803E708 adds r0, r5, 0 movs r1, 0x7 bl sub_8085918 movs r0, 0x4 movs r1, 0x46 bl sub_803E708 adds r0, r5, 0 movs r1, 0x6 bl sub_8085918 movs r0, 0x4 movs r1, 0x46 bl sub_803E708 adds r0, r5, 0 movs r1, 0x5 bl sub_8085918 movs r0, 0x4 movs r1, 0x46 bl sub_803E708 adds r0, r5, 0 movs r1, 0x6 bl sub_8085918 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _080882D4 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _080882D8 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 adds r0, r5, 0 movs r1, 0x4 movs r2, 0x1 movs r3, 0x4 bl sub_80869E4 adds r0, r6, 0 movs r1, 0x4 movs r2, 0x2 movs r3, 0x4 bl sub_80869E4 ldr r4, _080882DC adds r0, r4, 0 bl sub_8083E38 adds r0, r6, 0 bl sub_808696C adds r0, r4, 0 bl sub_8083E38 adds r0, r5, 0 bl sub_808696C ldr r0, _080882E0 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _080882E4 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r0, 0 bl sub_8083E38 ldr r0, _080882E8 ldr r0, [r0] ldr r1, _080882EC adds r0, r1 movs r1, 0x7 strb r1, [r0] movs r0, 0 movs r1, 0x1 bl sub_807EAA0 movs r0, 0xF7 lsls r0, 1 bl sub_8083E38 bl sub_8088574 ldr r0, _080882F0 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 bl sub_80884E0 bl sub_8086738 movs r0, 0xED lsls r0, 1 bl sub_8083E38 ldr r0, _080882F4 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r0, 0xF5 lsls r0, 1 bl sub_8083E38 mov r0, r8 bl sub_8088484 bl sub_80865E8 bl sub_80884E0 ldr r0, _080882F8 bl sub_8052910 mov r0, r8 movs r1, 0xF movs r2, 0 bl sub_806CDD4 bl sub_80884E0 ldr r0, _080882FC bl sub_8052910 mov r0, r8 movs r1, 0x10 movs r2, 0 bl sub_806CDD4 bl sub_80884E0 ldr r0, _08088300 bl sub_8052910 mov r0, r8 movs r1, 0xF movs r2, 0 bl sub_806CDD4 movs r0, 0x10 movs r1, 0x46 bl sub_803E708 movs r1, 0xE1 lsls r1, 1 mov r0, r8 movs r2, 0xB bl sub_8086A70 adds r5, 0xC adds r0, r5, 0 movs r1, 0x10 bl sub_80858AC pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080882C8: .4byte gUnknown_8102478 _080882CC: .4byte gUnknown_81025B4 _080882D0: .4byte gUnknown_81025D4 _080882D4: .4byte gUnknown_8102610 _080882D8: .4byte gUnknown_81026C4 _080882DC: .4byte 0x000001d5 _080882E0: .4byte gUnknown_810270C _080882E4: .4byte gUnknown_810272C _080882E8: .4byte gUnknown_203B418 _080882EC: .4byte 0x0000e265 _080882F0: .4byte gUnknown_81027BC _080882F4: .4byte gUnknown_8102810 _080882F8: .4byte gUnknown_8102840 _080882FC: .4byte gUnknown_810286C _08088300: .4byte gUnknown_81028B8 thumb_func_end sub_80880B8 thumb_func_start sub_8088304 sub_8088304: push {r4,r5,lr} bl sub_8085480 adds r5, r0, 0 movs r0, 0xD bl sub_8085680 adds r4, r0, 0 ldr r0, _08088384 ldr r0, [r0] ldr r1, _08088388 adds r0, r1 movs r1, 0x7 strb r1, [r0] movs r0, 0 movs r1, 0x1 bl sub_807EAA0 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _0808838C bl sub_8052910 adds r0, r4, 0 movs r1, 0x10 movs r2, 0 bl sub_806CDD4 bl sub_80884E0 ldr r0, _08088390 bl sub_8052910 bl sub_80884E0 ldr r0, _08088394 bl sub_8052910 adds r0, r4, 0 movs r1, 0xF movs r2, 0 bl sub_806CDD4 movs r0, 0x28 movs r1, 0x46 bl sub_803E708 movs r1, 0xE1 lsls r1, 1 adds r0, r4, 0 movs r2, 0xB bl sub_8086A70 adds r5, 0xC adds r0, r5, 0 movs r1, 0x10 bl sub_80858AC pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08088384: .4byte gUnknown_203B418 _08088388: .4byte 0x0000e265 _0808838C: .4byte gUnknown_81028D4 _08088390: .4byte gUnknown_8102918 _08088394: .4byte gUnknown_8102948 thumb_func_end sub_8088304 thumb_func_start sub_8088398 sub_8088398: push {r4,r5,lr} bl sub_8085480 adds r5, r0, 0 movs r0, 0xD bl sub_8085680 adds r4, r0, 0 bl sub_8086448 movs r0, 0x90 bl sub_8086AE4 lsls r0, 24 cmp r0, 0 beq _080883C4 ldr r0, _080883C0 bl sub_80866C4 b _08088460 .align 2, 0 _080883C0: .4byte gUnknown_8102A9C _080883C4: ldr r0, _08088468 ldr r0, [r0] ldr r1, _0808846C adds r0, r1 movs r1, 0x7 strb r1, [r0] movs r0, 0 movs r1, 0x1 bl sub_807EAA0 bl sub_80884E0 bl sub_8086738 movs r0, 0xED lsls r0, 1 bl sub_8083E38 ldr r0, _08088470 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 adds r0, r4, 0 bl sub_8088484 bl sub_80884E0 ldr r0, _08088474 bl sub_8052910 adds r0, r4, 0 movs r1, 0xF movs r2, 0 bl sub_806CDD4 bl sub_80884E0 ldr r0, _08088478 bl sub_8052910 adds r0, r4, 0 movs r1, 0x10 movs r2, 0 bl sub_806CDD4 bl sub_80884E0 ldr r0, _0808847C bl sub_8052910 bl sub_80884E0 ldr r0, _08088480 bl sub_8052910 adds r0, r4, 0 movs r1, 0xF movs r2, 0 bl sub_806CDD4 movs r0, 0x28 movs r1, 0x46 bl sub_803E708 movs r1, 0xE1 lsls r1, 1 adds r0, r4, 0 movs r2, 0xB bl sub_8086A70 adds r0, r5, 0 adds r0, 0xC movs r1, 0x10 bl sub_80858AC _08088460: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08088468: .4byte gUnknown_203B418 _0808846C: .4byte 0x0000e265 _08088470: .4byte gUnknown_8102984 _08088474: .4byte gUnknown_81029B4 _08088478: .4byte gUnknown_8102A18 _0808847C: .4byte gUnknown_8102A24 _08088480: .4byte gUnknown_8102A74 thumb_func_end sub_8088398 thumb_func_start sub_8088484 sub_8088484: push {r4,r5,lr} sub sp, 0x4 adds r5, r0, 0 ldr r0, [r5, 0x70] movs r1, 0xAE lsls r1, 1 adds r0, r1 movs r2, 0 movs r1, 0x1 strb r1, [r0] ldr r0, [r5, 0x70] movs r1, 0xAF lsls r1, 1 adds r0, r1 strb r2, [r0] movs r0, 0xF5 lsls r0, 1 bl sub_8083E38 movs r4, 0xFA _080884AC: ldr r0, [r5, 0x70] movs r1, 0xBA lsls r1, 1 adds r0, r1 lsls r1, r4, 8 str r1, [r0] lsrs r2, r4, 31 adds r2, r4, r2 asrs r2, 1 movs r0, 0 str r0, [sp] adds r0, r4, 0 adds r1, r4, 0 movs r3, 0x1 bl sub_8085C54 movs r0, 0x46 bl sub_803E46C subs r4, 0x5 cmp r4, 0 bge _080884AC add sp, 0x4 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8088484 thumb_func_start sub_80884E0 sub_80884E0: push {r4,r5,lr} sub sp, 0x4 ldr r0, _08088570 bl sub_8083E38 movs r4, 0xFA _080884EC: lsrs r0, r4, 31 adds r0, r4, r0 asrs r0, 1 movs r1, 0x1 str r1, [sp] adds r1, r4, 0 adds r2, r4, 0 movs r3, 0x1 bl sub_8085C54 movs r0, 0x46 bl sub_803E46C subs r4, 0xA cmp r4, 0x95 bgt _080884EC movs r0, 0x4 movs r1, 0x46 bl sub_803E708 movs r4, 0xFA movs r5, 0x1 _08088518: str r5, [sp] movs r0, 0 adds r1, r4, 0 adds r2, r4, 0 movs r3, 0x1 bl sub_8085C54 movs r0, 0x46 bl sub_803E46C subs r4, 0xA cmp r4, 0xC7 bgt _08088518 movs r0, 0x4 movs r1, 0x46 bl sub_803E708 movs r4, 0xFA _0808853C: lsrs r0, r4, 31 adds r0, r4, r0 asrs r0, 1 movs r1, 0x1 str r1, [sp] adds r1, r4, 0 adds r2, r4, 0 movs r3, 0x1 bl sub_8085C54 movs r0, 0x46 bl sub_803E46C subs r4, 0xA cmp r4, 0 bge _0808853C movs r0, 0x4 movs r1, 0x46 bl sub_803E708 bl sub_8085EB0 add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08088570: .4byte 0x000002ad thumb_func_end sub_80884E0 thumb_func_start sub_8088574 sub_8088574: push {r4,r5,lr} sub sp, 0x4 movs r4, 0 movs r5, 0 _0808857C: str r5, [sp] adds r0, r4, 0 adds r1, r4, 0 adds r2, r4, 0 movs r3, 0 bl sub_8085C54 movs r0, 0x46 bl sub_803E46C adds r4, 0x8 cmp r4, 0x50 ble _0808857C add sp, 0x4 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8088574 thumb_func_start sub_80885A0 sub_80885A0: push {lr} movs r0, 0x3C bl sub_8083ED8 movs r0, 0x3C movs r1, 0x46 bl sub_803E708 bl sub_8083F14 ldr r0, _080885C0 ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0x7] pop {r0} bx r0 .align 2, 0 _080885C0: .4byte gUnknown_203B418 thumb_func_end sub_80885A0 thumb_func_start sub_80885C4 sub_80885C4: push {r4,lr} bl sub_8085480 adds r4, r0, 0 movs r0, 0x3C bl sub_8083ED8 movs r0, 0x3C movs r1, 0x46 bl sub_803E708 bl sub_8083F14 bl sub_80854D4 movs r0, 0x4 bl sub_8085930 ldr r0, _08088604 bl sub_80855E4 movs r1, 0x4 ldrsh r0, [r4, r1] movs r2, 0x6 ldrsh r1, [r4, r2] subs r1, 0x3 bl sub_8085860 pop {r4} pop {r0} bx r0 .align 2, 0 _08088604: .4byte sub_8086A3C thumb_func_end sub_80885C4 thumb_func_start sub_8088608 sub_8088608: ldr r0, _08088614 ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0x2] bx lr .align 2, 0 _08088614: .4byte gUnknown_203B418 thumb_func_end sub_8088608 thumb_func_start sub_8088618 sub_8088618: push {lr} bl sub_8086448 ldr r0, _08088628 bl sub_80866C4 pop {r0} bx r0 .align 2, 0 _08088628: .4byte gUnknown_8102B10 thumb_func_end sub_8088618 thumb_func_start sub_808862C sub_808862C: push {r4-r6,lr} mov r6, r8 push {r6} bl sub_8085480 mov r8, r0 movs r0, 0xA bl sub_8085680 adds r5, r0, 0 movs r0, 0xE bl sub_8085680 adds r6, r0, 0 movs r0, 0x72 bl sub_8083E88 bl sub_80867F4 bl sub_8085374 bl sub_80854D4 movs r0, 0x4 bl sub_8085930 ldr r4, _080886B8 adds r0, r4, 0 bl sub_80855E4 adds r0, r5, 0 movs r1, 0x4 bl sub_8085918 adds r0, r5, 0 movs r1, 0xD movs r2, 0x4 bl sub_80861D4 adds r0, r6, 0 movs r1, 0 bl sub_8085918 adds r0, r6, 0 bl _call_via_r4 mov r1, r8 movs r2, 0x4 ldrsh r0, [r1, r2] movs r3, 0x6 ldrsh r1, [r1, r3] subs r1, 0x3 bl sub_8085860 ldr r4, _080886BC ldr r1, _080886C0 adds r0, r4, 0 bl sub_808D8BC adds r4, 0x50 adds r0, r4, 0 movs r1, 0x41 bl sub_808D8BC pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080886B8: .4byte sub_8086A3C _080886BC: .4byte gUnknown_202E038 _080886C0: .4byte 0x0000019b thumb_func_end sub_808862C thumb_func_start sub_80886C4 sub_80886C4: push {r4-r6,lr} bl sub_8085480 adds r6, r0, 0 movs r0, 0xA bl sub_8085680 adds r5, r0, 0 movs r0, 0xE bl sub_8085680 adds r4, r0, 0 ldr r0, _0808874C bl sub_8083E38 bl sub_80867F4 bl sub_8085374 bl sub_80854D4 movs r0, 0x4 bl sub_8085930 movs r1, 0x87 lsls r1, 2 adds r0, r5, 0 movs r2, 0 bl sub_8068FE0 adds r0, r4, 0 movs r1, 0 bl sub_8085918 adds r0, r4, 0 bl sub_8086A3C movs r1, 0x4 ldrsh r0, [r6, r1] movs r2, 0x6 ldrsh r1, [r6, r2] bl sub_8085860 bl sub_803F994 adds r4, r0, 0 bl sub_803F9B0 adds r1, r0, 0 ldr r0, _08088750 adds r1, r0 adds r0, r4, 0 bl sub_803F878 ldr r4, _08088754 ldr r1, _08088758 adds r0, r4, 0 bl sub_808D8BC adds r4, 0x50 adds r0, r4, 0 movs r1, 0x41 bl sub_808D8BC pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0808874C: .4byte 0x000003e5 _08088750: .4byte 0xfffff000 _08088754: .4byte gUnknown_202E038 _08088758: .4byte 0x0000019b thumb_func_end sub_80886C4 thumb_func_start sub_808875C sub_808875C: push {r4-r7,lr} sub sp, 0x4 bl sub_8085480 adds r7, r0, 0 movs r0, 0xA bl sub_8085680 adds r4, r0, 0 movs r0, 0xE bl sub_8085680 adds r5, r0, 0 bl sub_80867F4 bl sub_80854D4 movs r0, 0x4 bl sub_8085930 ldr r0, _080887B4 bl sub_80855E4 movs r6, 0x87 lsls r6, 2 adds r0, r4, 0 adds r1, r6, 0 movs r2, 0 bl sub_8068FE0 ldr r0, _080887B8 bl sub_8086AE4 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 beq _080887BC adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 bl sub_8068FE0 b _080887E0 .align 2, 0 _080887B4: .4byte sub_8086A3C _080887B8: .4byte 0x0000019b _080887BC: ldr r0, _0808880C movs r3, 0 ldrsh r2, [r0, r3] str r1, [sp] adds r0, r5, 0 adds r1, r5, 0 movs r3, 0 bl sub_8072008 adds r0, r5, 0 movs r1, 0 bl sub_8085918 adds r0, r5, 0 movs r1, 0xF movs r2, 0 bl sub_80861D4 _080887E0: movs r1, 0x4 ldrsh r0, [r7, r1] movs r2, 0x6 ldrsh r1, [r7, r2] subs r1, 0x3 bl sub_8085860 ldr r4, _08088810 ldr r1, _08088814 adds r0, r4, 0 bl sub_808D8BC adds r4, 0x50 adds r0, r4, 0 movs r1, 0x41 bl sub_808D8BC add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0808880C: .4byte gUnknown_80F57D2 _08088810: .4byte gUnknown_202E038 _08088814: .4byte 0x0000019b thumb_func_end sub_808875C thumb_func_start sub_8088818 sub_8088818: push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 movs r2, 0xEE lsls r2, 24 adds r1, r2 lsrs r1, 24 cmp r1, 0x2 bhi _0808883E cmp r0, 0xE bne _0808883E movs r0, 0xC bl sub_8097FA8 ldr r0, _08088844 ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0x2] _0808883E: pop {r0} bx r0 .align 2, 0 _08088844: .4byte gUnknown_203B418 thumb_func_end sub_8088818 thumb_func_start sub_8088848 sub_8088848: push {lr} bl sub_8086854 pop {r0} bx r0 thumb_func_end sub_8088848 thumb_func_start sub_8088854 sub_8088854: push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} bl sub_8085480 adds r5, r0, 0 bl sub_808548C mov r8, r0 movs r0, 0xA bl sub_8085680 adds r6, r0, 0 movs r0, 0xE bl sub_8085680 mov r9, r0 bl sub_8086448 ldr r0, _08088A5C bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r0, 0x3C movs r1, 0x46 bl sub_803E708 ldr r0, _08088A60 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r0, 0x1 movs r1, 0x1 movs r2, 0x1 bl sub_8086838 bl sub_808680C movs r0, 0x3C movs r1, 0x46 bl sub_803E708 bl sub_808682C movs r0, 0x1E movs r1, 0x46 bl sub_803E708 ldr r0, _08088A64 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r0, 0x1 movs r1, 0x1 movs r2, 0x1 bl sub_8086838 bl sub_808680C movs r0, 0x3C movs r1, 0x46 bl sub_803E708 ldr r0, _08088A68 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 bl sub_8088CA0 ldr r0, _08088A6C bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _08088A70 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r4, _08088A74 adds r0, r4, 0 bl sub_8083E38 mov r0, r8 bl sub_808696C ldr r0, _08088A78 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 bl sub_808682C movs r0, 0x3C movs r1, 0x46 bl sub_803E708 adds r0, r6, 0 movs r1, 0x6 movs r2, 0x4 bl sub_80861B8 ldr r0, _08088A7C bl sub_8083E38 bl sub_8086738 movs r1, 0x87 lsls r1, 2 adds r0, r6, 0 movs r2, 0 bl sub_8068FE0 ldr r0, _08088A80 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _08088A84 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r0, 0x4 bl sub_8085930 bl sub_8086764 movs r0, 0x28 movs r1, 0x46 bl sub_803E708 adds r0, r4, 0 bl sub_8083E38 mov r0, r8 bl sub_808696C ldr r0, _08088A88 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r0, 0x1 movs r1, 0x1 movs r2, 0x1 bl sub_8086838 bl sub_808680C movs r0, 0x3C movs r1, 0x46 bl sub_803E708 ldr r0, _08088A8C bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 bl sub_8083F14 bl sub_8088D30 movs r0, 0x1E movs r1, 0x46 bl sub_803E708 ldr r0, _08088A90 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _08088A94 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r0, 0x1E movs r1, 0x46 bl sub_803E708 bl sub_808682C movs r0, 0x3C movs r1, 0x46 bl sub_803E708 movs r0, 0xFD lsls r0, 1 bl sub_8083E38 bl sub_8086738 movs r0, 0x4 bl sub_8085930 ldr r0, _08088A98 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 mov r0, r9 bl sub_8086A54 movs r0, 0x4 bl sub_8085930 bl sub_8086764 movs r1, 0xFA lsls r1, 1 mov r0, r9 movs r2, 0xB bl sub_8086A70 adds r5, 0xC adds r0, r5, 0 movs r1, 0x10 bl sub_80858AC pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08088A5C: .4byte gUnknown_8102E70 _08088A60: .4byte gUnknown_8102EBC _08088A64: .4byte gUnknown_8102EE0 _08088A68: .4byte gUnknown_8102EF8 _08088A6C: .4byte gUnknown_8102F30 _08088A70: .4byte gUnknown_8102F64 _08088A74: .4byte 0x000001d5 _08088A78: .4byte gUnknown_8102F84 _08088A7C: .4byte 0x00000205 _08088A80: .4byte gUnknown_8102FAC _08088A84: .4byte gUnknown_8102FC4 _08088A88: .4byte gUnknown_8102FD8 _08088A8C: .4byte gUnknown_8103054 _08088A90: .4byte gUnknown_81030D8 _08088A94: .4byte gUnknown_8103110 _08088A98: .4byte gUnknown_8103140 thumb_func_end sub_8088854 thumb_func_start sub_8088A9C sub_8088A9C: push {r4,r5,lr} bl sub_8085480 adds r4, r0, 0 movs r0, 0xE bl sub_8085680 adds r5, r0, 0 movs r0, 0x1 movs r1, 0x1 movs r2, 0x1 bl sub_8086838 bl sub_808680C movs r0, 0x3C movs r1, 0x46 bl sub_803E708 ldr r0, _08088B50 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 bl sub_8088CA0 movs r0, 0x1E movs r1, 0x46 bl sub_803E708 ldr r0, _08088B54 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _08088B58 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 bl sub_808682C movs r0, 0x3C movs r1, 0x46 bl sub_803E708 bl sub_8083F14 movs r0, 0xFD lsls r0, 1 bl sub_8083E38 bl sub_8086738 ldr r0, _08088B5C bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 adds r0, r5, 0 bl sub_8086A54 movs r0, 0x4 bl sub_8085930 bl sub_8086764 movs r1, 0xFA lsls r1, 1 adds r0, r5, 0 movs r2, 0xB bl sub_8086A70 adds r4, 0xC adds r0, r4, 0 movs r1, 0x10 bl sub_80858AC pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08088B50: .4byte gUnknown_8103188 _08088B54: .4byte gUnknown_8103228 _08088B58: .4byte gUnknown_8103310 _08088B5C: .4byte gUnknown_8103340 thumb_func_end sub_8088A9C thumb_func_start sub_8088B60 sub_8088B60: push {r4-r6,lr} bl sub_8085480 adds r6, r0, 0 movs r0, 0xE bl sub_8085680 adds r5, r0, 0 bl sub_8086448 ldr r0, _08088B88 bl sub_8086AE4 lsls r0, 24 cmp r0, 0 beq _08088B90 ldr r0, _08088B8C bl sub_80866C4 b _08088BF2 .align 2, 0 _08088B88: .4byte 0x0000019b _08088B8C: .4byte gUnknown_8103488 _08088B90: ldr r0, _08088BF8 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 adds r0, r5, 0 bl sub_8088C08 adds r0, r5, 0 bl sub_8088C08 ldr r0, _08088BFC bl sub_8052910 movs r4, 0xFB lsls r4, 1 adds r0, r4, 0 bl sub_8083E38 bl sub_8088CA0 ldr r0, _08088C00 bl sub_8052910 adds r0, r4, 0 bl sub_8083E38 bl sub_8088CA0 ldr r0, _08088C04 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r1, 0xFA lsls r1, 1 adds r0, r5, 0 movs r2, 0xB bl sub_8086A70 adds r0, r6, 0 adds r0, 0xC movs r1, 0x10 bl sub_80858AC _08088BF2: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08088BF8: .4byte gUnknown_81033A0 _08088BFC: .4byte gUnknown_81033AC _08088C00: .4byte gUnknown_810343C _08088C04: .4byte gUnknown_810347C thumb_func_end sub_8088B60 thumb_func_start sub_8088C08 sub_8088C08: push {r4,r5,lr} adds r5, r0, 0 movs r0, 0x18 movs r1, 0x10 bl sub_8086848 adds r0, r5, 0 movs r1, 0 movs r2, 0 bl sub_806CDD4 movs r4, 0 _08088C20: cmp r4, 0xA beq _08088C28 cmp r4, 0x20 bne _08088C3C _08088C28: ldr r0, _08088C9C bl sub_8083E38 movs r0, 0 movs r1, 0x1 movs r2, 0 bl sub_8086838 bl sub_808680C _08088C3C: adds r0, r4, 0 subs r0, 0xA cmp r0, 0xB bls _08088C48 cmp r4, 0x1F ble _08088C54 _08088C48: adds r0, r5, 0 movs r1, 0 movs r2, 0x80 lsls r2, 1 bl sub_804539C _08088C54: movs r0, 0x46 bl sub_803E46C adds r4, 0x1 cmp r4, 0x2B ble _08088C20 movs r0, 0x4 ldrsh r1, [r5, r0] movs r0, 0x6 ldrsh r2, [r5, r0] adds r2, 0x1 adds r0, r5, 0 bl sub_80856C8 adds r0, r5, 0 movs r1, 0xF movs r2, 0 bl sub_80861D4 movs r0, 0xA movs r1, 0x46 bl sub_803E708 bl sub_808682C movs r0, 0x4 bl sub_8085930 movs r0, 0x22 movs r1, 0x46 bl sub_803E708 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08088C9C: .4byte 0x000001f9 thumb_func_end sub_8088C08 thumb_func_start sub_8088CA0 sub_8088CA0: push {r4,lr} sub sp, 0x4 movs r4, 0xFA _08088CA6: lsrs r2, r4, 31 adds r2, r4, r2 asrs r2, 1 movs r0, 0x1 str r0, [sp] adds r0, r4, 0 adds r1, r2, 0 movs r3, 0x1 bl sub_8085C54 movs r0, 0x46 bl sub_803E46C subs r4, 0xA cmp r4, 0x95 bgt _08088CA6 movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r4, 0xFA _08088CD0: lsrs r1, r4, 31 adds r1, r4, r1 asrs r1, 1 movs r0, 0x1 str r0, [sp] adds r0, r4, 0 movs r2, 0 movs r3, 0x1 bl sub_8085C54 movs r0, 0x46 bl sub_803E46C subs r4, 0xA cmp r4, 0xC7 bgt _08088CD0 movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r4, 0xFA _08088CFA: lsrs r2, r4, 31 adds r2, r4, r2 asrs r2, 1 movs r0, 0x1 str r0, [sp] adds r0, r4, 0 adds r1, r2, 0 movs r3, 0x1 bl sub_8085C54 movs r0, 0x46 bl sub_803E46C subs r4, 0xA cmp r4, 0 bge _08088CFA movs r0, 0xA movs r1, 0x46 bl sub_803E708 bl sub_8085EB0 add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_8088CA0 thumb_func_start sub_8088D30 sub_8088D30: push {r4,lr} sub sp, 0x4 movs r4, 0xFA _08088D36: lsrs r2, r4, 31 adds r2, r4, r2 asrs r2, 1 movs r0, 0x1 str r0, [sp] adds r0, r4, 0 adds r1, r2, 0 movs r3, 0x1 bl sub_8085C54 movs r0, 0x46 bl sub_803E46C subs r4, 0xA cmp r4, 0x95 bgt _08088D36 movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r4, 0xFA _08088D60: lsrs r1, r4, 31 adds r1, r4, r1 asrs r1, 1 movs r0, 0x1 str r0, [sp] adds r0, r4, 0 movs r2, 0 movs r3, 0x1 bl sub_8085C54 movs r0, 0x46 bl sub_803E46C subs r4, 0xA cmp r4, 0xC7 bgt _08088D60 movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r4, 0xFA _08088D8A: lsrs r2, r4, 31 adds r2, r4, r2 asrs r2, 1 movs r0, 0x1 str r0, [sp] adds r0, r4, 0 adds r1, r2, 0 movs r3, 0x1 bl sub_8085C54 movs r0, 0x46 bl sub_803E46C subs r4, 0xA cmp r4, 0 bge _08088D8A movs r0, 0xA movs r1, 0x46 bl sub_803E708 bl sub_8085EB0 add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_8088D30 thumb_func_start sub_8088DC0 sub_8088DC0: push {r4-r6,lr} mov r6, r8 push {r6} bl sub_8085480 mov r8, r0 movs r0, 0xB bl sub_8085680 adds r5, r0, 0 movs r0, 0xC bl sub_8085680 adds r6, r0, 0 bl sub_80867F4 movs r0, 0 movs r1, 0x1 movs r2, 0 bl sub_8086838 bl sub_8085374 bl sub_80854D4 movs r0, 0x4 bl sub_8085930 ldr r4, _08088E50 adds r0, r4, 0 bl sub_80855E4 adds r0, r5, 0 bl _call_via_r4 adds r0, r5, 0 movs r1, 0xE movs r2, 0 bl sub_806CDD4 adds r0, r6, 0 bl _call_via_r4 adds r0, r6, 0 movs r1, 0xE movs r2, 0 bl sub_806CDD4 mov r1, r8 movs r2, 0x4 ldrsh r0, [r1, r2] movs r3, 0x6 ldrsh r1, [r1, r3] subs r1, 0x3 bl sub_8085860 ldr r4, _08088E54 ldr r1, _08088E58 adds r0, r4, 0 bl sub_808D8BC adds r4, 0x50 adds r0, r4, 0 movs r1, 0x41 bl sub_808D8BC pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08088E50: .4byte sub_8086A3C _08088E54: .4byte gUnknown_202E038 _08088E58: .4byte 0x0000019b thumb_func_end sub_8088DC0 thumb_func_start sub_8088E5C sub_8088E5C: push {r4-r6,lr} mov r6, r8 push {r6} bl sub_8085480 mov r8, r0 movs r0, 0xB bl sub_8085680 adds r5, r0, 0 movs r0, 0xC bl sub_8085680 adds r6, r0, 0 bl sub_80867F4 movs r0, 0 movs r1, 0x1 movs r2, 0 bl sub_8086838 bl sub_80854D4 movs r0, 0x4 bl sub_8085930 ldr r0, _08088EDC bl sub_80855E4 movs r4, 0x87 lsls r4, 2 adds r0, r5, 0 adds r1, r4, 0 movs r2, 0 bl sub_8068FE0 adds r0, r6, 0 adds r1, r4, 0 movs r2, 0 bl sub_8068FE0 mov r1, r8 movs r2, 0x4 ldrsh r0, [r1, r2] movs r3, 0x6 ldrsh r1, [r1, r3] subs r1, 0x3 bl sub_8085860 ldr r4, _08088EE0 ldr r1, _08088EE4 adds r0, r4, 0 bl sub_808D8BC adds r4, 0x50 adds r0, r4, 0 movs r1, 0x41 bl sub_808D8BC pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08088EDC: .4byte sub_8086A3C _08088EE0: .4byte gUnknown_202E038 _08088EE4: .4byte 0x0000019b thumb_func_end sub_8088E5C thumb_func_start sub_8088EE8 sub_8088EE8: push {lr} bl sub_8086854 pop {r0} bx r0 thumb_func_end sub_8088EE8 thumb_func_start sub_8088EF4 sub_8088EF4: push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0xC bl sub_8085480 mov r9, r0 bl sub_808548C adds r5, r0, 0 movs r0, 0xB bl sub_8085680 mov r8, r0 movs r0, 0xC bl sub_8085680 adds r6, r0, 0 mov r0, sp mov r1, r9 adds r2, r5, 0 bl sub_8052D44 bl sub_8086448 adds r0, r5, 0 bl sub_808696C ldr r0, _08089118 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 adds r0, r5, 0 movs r1, 0x4 movs r2, 0x1 movs r3, 0x2 bl sub_80869E4 mov r0, r9 movs r1, 0x4 movs r2, 0x2 movs r3, 0x6 bl sub_80869E4 ldr r0, _0808911C bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 bl sub_8083F14 ldr r0, _08089120 bl sub_80855E4 bl sub_808680C ldr r4, _08089124 adds r0, r4, 0 bl sub_8083E38 movs r0, 0x28 movs r1, 0x46 bl sub_803E708 ldr r0, _08089128 bl sub_8052910 movs r0, 0x78 movs r1, 0x46 bl sub_803E708 adds r0, r4, 0 bl sub_8083E58 bl sub_808682C ldr r0, _0808912C bl sub_80855E4 movs r0, 0x14 movs r1, 0x46 bl sub_803E708 movs r0, 0x4 bl sub_8085930 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _08089130 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 adds r4, 0x10 adds r0, r4, 0 bl sub_8083E38 adds r0, r5, 0 bl sub_808696C ldr r0, _08089134 bl sub_8083E38 adds r0, r5, 0 movs r1, 0x4 bl sub_80856E0 ldr r0, _08089138 bl sub_8052910 mov r1, r8 ldr r0, [r1, 0x70] movs r2, 0xAF lsls r2, 1 adds r0, r2 movs r1, 0 strb r1, [r0] ldr r0, [r6, 0x70] adds r0, r2 strb r1, [r0] mov r1, r8 ldr r0, [r1, 0xC] ldr r1, [r6, 0xC] adds r0, r1 lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 str r0, [sp, 0x4] mov r0, r8 ldr r1, [r0, 0x10] ldr r0, [r6, 0x10] adds r1, r0 lsrs r0, r1, 31 adds r1, r0 asrs r1, 1 movs r0, 0x80 lsls r0, 4 adds r1, r0 add r0, sp, 0x4 str r1, [r0, 0x4] movs r1, 0x20 bl sub_80858AC movs r0, 0x3C movs r1, 0x46 bl sub_803E708 bl sub_80891F0 ldr r0, _0808913C bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _08089140 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 mov r0, r9 movs r1, 0x4 movs r2, 0x2 movs r3, 0x5 bl sub_80869E4 ldr r0, _08089144 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _08089148 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _0808914C bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 mov r0, r9 movs r1, 0x4 movs r2, 0x1 movs r3, 0x3 bl sub_80869E4 adds r0, r5, 0 movs r1, 0x4 movs r2, 0x1 movs r3, 0x3 bl sub_80869E4 ldr r0, _08089150 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 adds r0, r4, 0 bl sub_8083E38 adds r0, r5, 0 bl sub_808696C ldr r0, _08089154 bl sub_8052910 movs r0, 0x1E movs r1, 0x46 bl sub_803E708 ldr r0, _08089158 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 adds r0, r5, 0 movs r1, 0x4 movs r2, 0x1 movs r3, 0x2 bl sub_80869E4 mov r0, r9 movs r1, 0x4 movs r2, 0x2 movs r3, 0x6 bl sub_80869E4 ldr r0, _0808915C bl sub_8052910 bl sub_8089294 ldr r0, _08089160 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _08089164 ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0x2] add sp, 0xC pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08089118: .4byte gUnknown_8102B1C _0808911C: .4byte gUnknown_8102B54 _08089120: .4byte sub_80868F4 _08089124: .4byte 0x000001c5 _08089128: .4byte gUnknown_8102BC4 _0808912C: .4byte sub_8086910 _08089130: .4byte gUnknown_8102BE4 _08089134: .4byte 0x000001c7 _08089138: .4byte gUnknown_8102C30 _0808913C: .4byte gUnknown_8102C54 _08089140: .4byte gUnknown_8102C98 _08089144: .4byte gUnknown_8102CB0 _08089148: .4byte gUnknown_8102CF8 _0808914C: .4byte gUnknown_8102D34 _08089150: .4byte gUnknown_8102D4C _08089154: .4byte gUnknown_8102D7C _08089158: .4byte gUnknown_8102DFC _0808915C: .4byte gUnknown_8102E2C _08089160: .4byte gUnknown_8102E54 _08089164: .4byte gUnknown_203B418 thumb_func_end sub_8088EF4 thumb_func_start sub_8089168 sub_8089168: push {r4,lr} bl sub_8085480 adds r4, r0, 0 bl sub_8086448 movs r0, 0xA movs r1, 0x46 bl sub_803E708 adds r0, r4, 0 bl sub_808696C movs r0, 0xA movs r1, 0x46 bl sub_803E708 adds r4, 0xC adds r0, r4, 0 movs r1, 0x10 bl sub_80858AC pop {r4} pop {r0} bx r0 thumb_func_end sub_8089168 thumb_func_start sub_808919C sub_808919C: push {lr} ldr r2, _080891AC movs r1, 0 bl sub_804539C pop {r0} bx r0 .align 2, 0 _080891AC: .4byte 0xfffffe00 thumb_func_end sub_808919C thumb_func_start sub_80891B0 sub_80891B0: push {r4,lr} adds r4, r0, 0 movs r1, 0 movs r2, 0x4 bl sub_806CDD4 ldr r0, [r4, 0x70] ldr r2, _080891CC adds r1, r0, r2 movs r0, 0x1 strb r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _080891CC: .4byte 0x0000015f thumb_func_end sub_80891B0 thumb_func_start sub_80891D0 sub_80891D0: push {r4,lr} adds r4, r0, 0 movs r1, 0x7 movs r2, 0x4 bl sub_806CDD4 ldr r0, [r4, 0x70] ldr r2, _080891EC adds r1, r0, r2 movs r0, 0 strb r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _080891EC: .4byte 0x0000015f thumb_func_end sub_80891D0 thumb_func_start sub_80891F0 sub_80891F0: push {r4,lr} ldr r0, _08089218 bl sub_80855E4 movs r4, 0x2F _080891FA: ldr r0, _0808921C bl sub_80855E4 movs r0, 0x46 bl sub_803E46C subs r4, 0x1 cmp r4, 0 bge _080891FA ldr r0, _08089220 bl sub_80855E4 pop {r4} pop {r0} bx r0 .align 2, 0 _08089218: .4byte sub_80891B0 _0808921C: .4byte sub_808919C _08089220: .4byte sub_80891D0 thumb_func_end sub_80891F0 thumb_func_start sub_8089224 sub_8089224: push {lr} adds r3, r0, 0 ldr r1, [r3, 0x10] movs r0, 0x90 lsls r0, 8 cmp r1, r0 ble _0808928C ldr r1, [r3, 0xC] ldr r0, _08089248 cmp r1, r0 bgt _08089250 movs r0, 0xB4 lsls r0, 8 cmp r1, r0 ble _08089256 ldr r1, _0808924C b _08089278 .align 2, 0 _08089248: .4byte 0x0000e3ff _0808924C: .4byte 0xfffffe00 _08089250: ldr r0, _08089264 cmp r1, r0 bgt _0808926C _08089256: ldr r2, _08089268 adds r0, r3, 0 movs r1, 0 bl sub_804539C b _0808928C .align 2, 0 _08089264: .4byte 0x0000fbff _08089268: .4byte 0xfffffe00 _0808926C: movs r0, 0x8A lsls r0, 9 cmp r1, r0 bgt _08089282 movs r1, 0x80 lsls r1, 2 _08089278: adds r0, r3, 0 movs r2, 0 bl sub_804539C b _0808928C _08089282: ldr r2, _08089290 adds r0, r3, 0 movs r1, 0 bl sub_804539C _0808928C: pop {r0} bx r0 .align 2, 0 _08089290: .4byte 0xfffffe00 thumb_func_end sub_8089224 thumb_func_start sub_8089294 sub_8089294: push {r4,lr} ldr r0, _080892BC bl sub_80855E4 movs r4, 0x77 _0808929E: ldr r0, _080892C0 bl sub_80855E4 movs r0, 0x46 bl sub_803E46C subs r4, 0x1 cmp r4, 0 bge _0808929E ldr r0, _080892C4 bl sub_80855E4 pop {r4} pop {r0} bx r0 .align 2, 0 _080892BC: .4byte sub_80891B0 _080892C0: .4byte sub_8089224 _080892C4: .4byte sub_80891D0 thumb_func_end sub_8089294 thumb_func_start sub_80892C8 sub_80892C8: push {r4-r6,lr} bl sub_8085480 adds r6, r0, 0 movs r0, 0xF bl sub_8085680 adds r5, r0, 0 movs r0, 0x1A bl sub_8083E88 bl sub_8085374 bl sub_80854D4 movs r0, 0x4 bl sub_8085930 ldr r4, _08089320 adds r0, r4, 0 bl sub_80855E4 adds r0, r5, 0 movs r1, 0 bl sub_8085918 adds r0, r5, 0 bl _call_via_r4 movs r1, 0x4 ldrsh r0, [r6, r1] movs r2, 0x6 ldrsh r1, [r6, r2] subs r1, 0x3 bl sub_8085860 ldr r0, _08089324 movs r1, 0xCE lsls r1, 1 bl sub_808D8BC pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08089320: .4byte sub_8086A3C _08089324: .4byte gUnknown_202E038 thumb_func_end sub_80892C8 thumb_func_start sub_8089328 sub_8089328: push {r4-r6,lr} sub sp, 0x4 bl sub_8085480 adds r5, r0, 0 movs r0, 0xF bl sub_8085680 adds r4, r0, 0 movs r0, 0x1A bl sub_8083E88 bl sub_80854D4 movs r0, 0x4 bl sub_8085930 ldr r6, _08089370 adds r0, r6, 0 bl sub_80855E4 movs r0, 0xCE lsls r0, 1 bl sub_8086AE4 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 beq _08089374 movs r1, 0x87 lsls r1, 2 adds r0, r4, 0 movs r2, 0 bl sub_8068FE0 b _0808938C .align 2, 0 _08089370: .4byte sub_8086A3C _08089374: ldr r0, _080893AC movs r3, 0 ldrsh r2, [r0, r3] str r1, [sp] adds r0, r4, 0 adds r1, r4, 0 movs r3, 0 bl sub_8072008 adds r0, r4, 0 bl _call_via_r6 _0808938C: movs r1, 0x4 ldrsh r0, [r5, r1] movs r2, 0x6 ldrsh r1, [r5, r2] subs r1, 0x3 bl sub_8085860 ldr r0, _080893B0 movs r1, 0xCE lsls r1, 1 bl sub_808D8BC add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080893AC: .4byte gUnknown_80F57CA _080893B0: .4byte gUnknown_202E038 thumb_func_end sub_8089328 thumb_func_start sub_80893B4 sub_80893B4: push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 movs r2, 0xE9 lsls r2, 24 adds r1, r2 lsrs r1, 24 cmp r1, 0x2 bhi _080893DA cmp r0, 0xF bne _080893DA movs r0, 0xF bl sub_8097FA8 ldr r0, _080893E0 ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0x2] _080893DA: pop {r0} bx r0 .align 2, 0 _080893E0: .4byte gUnknown_203B418 thumb_func_end sub_80893B4 thumb_func_start sub_80893E4 sub_80893E4: push {r4-r6,lr} bl sub_8085480 adds r5, r0, 0 bl sub_808548C adds r4, r0, 0 movs r0, 0xF bl sub_8085680 adds r6, r0, 0 bl sub_8086448 ldr r0, _080894D4 bl sub_8052910 bl sub_8089674 ldr r0, _080894D8 bl sub_8052910 adds r0, r4, 0 movs r1, 0x4 bl sub_80856E0 adds r0, r4, 0 bl sub_808696C movs r0, 0xA movs r1, 0x46 bl sub_803E708 adds r0, r4, 0 movs r1, 0x4 movs r2, 0x1 movs r3, 0x2 bl sub_80869E4 adds r0, r5, 0 movs r1, 0x4 movs r2, 0x2 movs r3, 0x6 bl sub_80869E4 ldr r0, _080894DC bl sub_8052910 adds r0, r4, 0 movs r1, 0x4 movs r2, 0x2 movs r3, 0x4 bl sub_80869E4 adds r0, r5, 0 movs r1, 0x4 movs r2, 0x1 movs r3, 0x4 bl sub_80869E4 ldr r0, _080894E0 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _080894E4 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _080894E8 bl sub_8052910 bl sub_8089674 movs r0, 0xED lsls r0, 1 bl sub_8083E38 ldr r0, _080894EC bl sub_8052910 adds r0, r6, 0 bl sub_8089620 ldr r0, _080894F0 bl sub_8052910 bl sub_8089674 ldr r0, _080894F4 bl sub_8052910 bl sub_8089674 ldr r0, _080894F8 bl sub_8052910 bl sub_8089674 ldr r0, _080894FC bl sub_8052910 movs r1, 0x96 lsls r1, 2 adds r0, r6, 0 movs r2, 0x20 bl sub_8086A70 adds r5, 0xC adds r0, r5, 0 movs r1, 0x10 bl sub_80858AC pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080894D4: .4byte gUnknown_8103500 _080894D8: .4byte gUnknown_810352C _080894DC: .4byte gUnknown_8103578 _080894E0: .4byte gUnknown_81035D4 _080894E4: .4byte gUnknown_8103618 _080894E8: .4byte gUnknown_810367C _080894EC: .4byte gUnknown_8103690 _080894F0: .4byte gUnknown_81036C8 _080894F4: .4byte gUnknown_81037A0 _080894F8: .4byte gUnknown_81037D4 _080894FC: .4byte gUnknown_8103820 thumb_func_end sub_80893E4 thumb_func_start sub_8089500 sub_8089500: push {r4,r5,lr} bl sub_8085480 adds r4, r0, 0 movs r0, 0xF bl sub_8085680 adds r5, r0, 0 bl sub_8086448 bl sub_8089674 movs r0, 0xED lsls r0, 1 bl sub_8083E38 ldr r0, _08089574 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 adds r0, r5, 0 bl sub_8089620 ldr r0, _08089578 bl sub_8052910 bl sub_8089674 ldr r0, _0808957C bl sub_8052910 bl sub_8089674 ldr r0, _08089580 bl sub_8052910 bl sub_8089674 ldr r0, _08089584 bl sub_8052910 movs r1, 0x96 lsls r1, 2 adds r0, r5, 0 movs r2, 0x20 bl sub_8086A70 adds r4, 0xC adds r0, r4, 0 movs r1, 0x10 bl sub_80858AC pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08089574: .4byte gUnknown_8103690 _08089578: .4byte gUnknown_8103844 _0808957C: .4byte gUnknown_8103874 _08089580: .4byte gUnknown_81038A8 _08089584: .4byte gUnknown_81038F8 thumb_func_end sub_8089500 thumb_func_start sub_8089588 sub_8089588: push {r4,r5,lr} bl sub_8085480 adds r5, r0, 0 movs r0, 0xF bl sub_8085680 adds r4, r0, 0 bl sub_8086448 movs r0, 0xCE lsls r0, 1 bl sub_8086AE4 lsls r0, 24 cmp r0, 0 beq _080895B8 ldr r0, _080895B4 bl sub_80866C4 b _08089606 .align 2, 0 _080895B4: .4byte gUnknown_8103B58 _080895B8: movs r0, 0xED lsls r0, 1 bl sub_8083E38 ldr r0, _0808960C bl sub_8052910 adds r0, r4, 0 bl sub_8089620 ldr r0, _08089610 bl sub_8052910 bl sub_8089674 ldr r0, _08089614 bl sub_8052910 bl sub_8089674 ldr r0, _08089618 bl sub_8052910 bl sub_8089674 ldr r0, _0808961C bl sub_8052910 movs r1, 0x96 lsls r1, 2 adds r0, r4, 0 movs r2, 0xB bl sub_8086A70 adds r0, r5, 0 adds r0, 0xC movs r1, 0x10 bl sub_80858AC _08089606: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0808960C: .4byte gUnknown_8103904 _08089610: .4byte gUnknown_8103938 _08089614: .4byte gUnknown_8103AA4 _08089618: .4byte gUnknown_8103AE4 _0808961C: .4byte gUnknown_8103B30 thumb_func_end sub_8089588 thumb_func_start sub_8089620 sub_8089620: push {r4-r6,lr} adds r6, r0, 0 ldr r0, [r6, 0x70] movs r2, 0xAF lsls r2, 1 adds r1, r0, r2 movs r0, 0 strb r0, [r1] movs r5, 0xC8 lsls r5, 8 movs r4, 0xC0 lsls r4, 3 movs r0, 0xFC lsls r0, 1 bl sub_8083E38 b _08089652 _08089642: ldr r0, [r6, 0x70] movs r1, 0xBA lsls r1, 1 adds r0, r1 str r5, [r0] movs r0, 0x46 bl sub_803E46C _08089652: subs r5, r4 subs r4, 0x18 cmp r4, 0x13 bgt _0808965C movs r4, 0x14 _0808965C: cmp r5, 0 bge _08089642 ldr r0, [r6, 0x70] movs r2, 0xBA lsls r2, 1 adds r0, r2 movs r1, 0 str r1, [r0] pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8089620 thumb_func_start sub_8089674 sub_8089674: push {r4,lr} sub sp, 0x4 movs r0, 0xFB lsls r0, 1 bl sub_8083E38 movs r4, 0xFA _08089682: lsrs r2, r4, 31 adds r2, r4, r2 asrs r2, 1 movs r0, 0x1 str r0, [sp] adds r0, r2, 0 adds r1, r4, 0 movs r3, 0x1 bl sub_8085C54 movs r0, 0x46 bl sub_803E46C subs r4, 0xA cmp r4, 0x95 bgt _08089682 movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r4, 0xFA _080896AC: lsrs r0, r4, 31 adds r0, r4, r0 asrs r0, 1 movs r1, 0x1 str r1, [sp] adds r1, r4, 0 movs r2, 0 movs r3, 0x1 bl sub_8085C54 movs r0, 0x46 bl sub_803E46C subs r4, 0xA cmp r4, 0xC7 bgt _080896AC movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r4, 0xFA _080896D6: lsrs r2, r4, 31 adds r2, r4, r2 asrs r2, 1 movs r0, 0x1 str r0, [sp] adds r0, r2, 0 adds r1, r4, 0 movs r3, 0x1 bl sub_8085C54 movs r0, 0x46 bl sub_803E46C subs r4, 0xA cmp r4, 0 bge _080896D6 movs r0, 0xA movs r1, 0x46 bl sub_803E708 bl sub_8085EB0 add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_8089674 thumb_func_start sub_808970C sub_808970C: push {r4,lr} bl sub_8085480 adds r4, r0, 0 movs r0, 0x7D bl sub_8083E88 bl sub_80854D4 movs r0, 0x4 bl sub_8085930 ldr r0, _08089744 bl sub_80855E4 ldr r0, _08089748 bl sub_808563C movs r1, 0x4 ldrsh r0, [r4, r1] movs r2, 0x6 ldrsh r1, [r4, r2] subs r1, 0x3 bl sub_8085860 pop {r4} pop {r0} bx r0 .align 2, 0 _08089744: .4byte sub_8086A3C _08089748: .4byte sub_8089908 thumb_func_end sub_808970C thumb_func_start sub_808974C sub_808974C: push {r4,lr} bl sub_8085480 adds r4, r0, 0 bl sub_80854D4 movs r0, 0x4 bl sub_8085930 ldr r0, _08089780 bl sub_80855E4 ldr r0, _08089784 bl sub_808563C movs r1, 0x4 ldrsh r0, [r4, r1] movs r2, 0x6 ldrsh r1, [r4, r2] subs r1, 0x3 bl sub_8085860 pop {r4} pop {r0} bx r0 .align 2, 0 _08089780: .4byte sub_8086A3C _08089784: .4byte sub_80898F8 thumb_func_end sub_808974C thumb_func_start sub_8089788 sub_8089788: push {r4-r7,lr} adds r7, r0, 0 lsls r1, 24 lsrs r6, r1, 24 lsls r2, 24 movs r0, 0xE6 lsls r0, 24 adds r2, r0 lsrs r2, 24 cmp r2, 0x1 bhi _080897E2 movs r5, 0 _080897A0: ldr r0, _080897E8 ldr r0, [r0] lsls r1, r5, 2 ldr r2, _080897EC adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080897C8 cmp r4, r7 beq _080897C8 ldr r0, [r4, 0x70] adds r0, 0xA4 ldrb r0, [r0] cmp r0, r6 beq _080897E2 _080897C8: adds r5, 0x1 cmp r5, 0xF ble _080897A0 movs r0, 0 cmp r0, 0 bne _080897E2 movs r0, 0x11 bl sub_8097FA8 ldr r0, _080897E8 ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0x2] _080897E2: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080897E8: .4byte gUnknown_203B418 _080897EC: .4byte 0x0001358c thumb_func_end sub_8089788 thumb_func_start sub_80897F0 sub_80897F0: push {r4,lr} bl sub_8085480 adds r4, r0, 0 bl sub_8086448 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _08089858 bl sub_808563C movs r0, 0x20 movs r1, 0x46 bl sub_803E708 bl sub_808692C ldr r0, _0808985C bl sub_8052910 ldr r0, _08089860 bl sub_8052910 ldr r0, _08089864 bl sub_8052910 ldr r0, _08089868 bl sub_8052910 ldr r0, _0808986C bl sub_8052910 ldr r0, _08089870 bl sub_8052910 ldr r0, _08089874 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 adds r4, 0xC adds r0, r4, 0 movs r1, 0x10 bl sub_80858AC pop {r4} pop {r0} bx r0 .align 2, 0 _08089858: .4byte sub_80862BC _0808985C: .4byte gUnknown_8103BD8 _08089860: .4byte gUnknown_8103C00 _08089864: .4byte gUnknown_8103C3C _08089868: .4byte gUnknown_8103C74 _0808986C: .4byte gUnknown_8103CC4 _08089870: .4byte gUnknown_8103D0C _08089874: .4byte gUnknown_8103D50 thumb_func_end sub_80897F0 thumb_func_start sub_8089878 sub_8089878: push {r4,lr} bl sub_8085480 adds r4, r0, 0 bl sub_8086448 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _080898D0 bl sub_808563C movs r0, 0x20 movs r1, 0x46 bl sub_803E708 bl sub_808692C ldr r0, _080898D4 bl sub_8052910 ldr r0, _080898D8 bl sub_8052910 ldr r0, _080898DC bl sub_8052910 ldr r0, _080898E0 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 adds r4, 0xC adds r0, r4, 0 movs r1, 0x10 bl sub_80858AC pop {r4} pop {r0} bx r0 .align 2, 0 _080898D0: .4byte sub_80862BC _080898D4: .4byte gUnknown_8103D8C _080898D8: .4byte gUnknown_8103D98 _080898DC: .4byte gUnknown_8103DD8 _080898E0: .4byte gUnknown_8103E28 thumb_func_end sub_8089878 thumb_func_start sub_80898E4 sub_80898E4: push {lr} bl sub_8086448 ldr r0, _080898F4 bl sub_80866C4 pop {r0} bx r0 .align 2, 0 _080898F4: .4byte gUnknown_8103E34 thumb_func_end sub_80898E4 thumb_func_start sub_80898F8 sub_80898F8: push {lr} movs r1, 0x87 lsls r1, 2 movs r2, 0 bl sub_8068FE0 pop {r0} bx r0 thumb_func_end sub_80898F8 thumb_func_start sub_8089908 sub_8089908: push {lr} movs r1, 0x4 bl sub_8085918 pop {r0} bx r0 thumb_func_end sub_8089908 thumb_func_start sub_8089914 sub_8089914: push {r4-r6,lr} bl sub_8085480 adds r6, r0, 0 movs r0, 0x11 bl sub_8085680 adds r5, r0, 0 bl sub_8083F14 ldr r0, _0808996C ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0x7] bl sub_80854D4 movs r0, 0x4 bl sub_8085930 ldr r4, _08089970 adds r0, r4, 0 bl sub_80855E4 adds r0, r5, 0 movs r1, 0 bl sub_8085918 adds r0, r5, 0 bl _call_via_r4 movs r1, 0x4 ldrsh r0, [r6, r1] movs r2, 0x6 ldrsh r1, [r6, r2] subs r1, 0x3 bl sub_8085860 ldr r0, _08089974 movs r1, 0x96 bl sub_808D8BC pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0808996C: .4byte gUnknown_203B418 _08089970: .4byte sub_8086A3C _08089974: .4byte gUnknown_202E038 thumb_func_end sub_8089914 thumb_func_start sub_8089978 sub_8089978: push {r4-r6,lr} bl sub_8085480 adds r5, r0, 0 movs r0, 0x11 bl sub_8085680 adds r4, r0, 0 bl sub_8083F14 bl sub_80854D4 movs r0, 0x4 bl sub_8085930 ldr r6, _080899C0 adds r0, r6, 0 bl sub_80855E4 movs r0, 0x96 bl sub_808E734 lsls r0, 24 cmp r0, 0 beq _080899C4 movs r0, 0x23 bl sub_8083E88 movs r1, 0x87 lsls r1, 2 adds r0, r4, 0 movs r2, 0 bl sub_8068FE0 b _080899DA .align 2, 0 _080899C0: .4byte sub_8086A3C _080899C4: ldr r0, _080899F8 ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0x7] adds r0, r4, 0 movs r1, 0 bl sub_8085918 adds r0, r4, 0 bl _call_via_r6 _080899DA: movs r1, 0x4 ldrsh r0, [r5, r1] movs r2, 0x6 ldrsh r1, [r5, r2] subs r1, 0x3 bl sub_8085860 ldr r0, _080899FC movs r1, 0x96 bl sub_808D8BC pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080899F8: .4byte gUnknown_203B418 _080899FC: .4byte gUnknown_202E038 thumb_func_end sub_8089978 thumb_func_start sub_8089A00 sub_8089A00: push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 movs r2, 0xE3 lsls r2, 24 adds r1, r2 lsrs r1, 24 cmp r1, 0x2 bhi _08089A26 cmp r0, 0x11 bne _08089A26 movs r0, 0x13 bl sub_8097FA8 ldr r0, _08089A2C ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0x2] _08089A26: pop {r0} bx r0 .align 2, 0 _08089A2C: .4byte gUnknown_203B418 thumb_func_end sub_8089A00 thumb_func_start sub_8089A30 sub_8089A30: push {r4,r5,lr} bl sub_8085480 adds r4, r0, 0 movs r0, 0x11 bl sub_8085680 adds r5, r0, 0 bl sub_8086448 ldr r0, _08089AC0 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r0, 0x23 bl sub_8083E88 bl sub_8086794 movs r0, 0x1E movs r1, 0x46 bl sub_803E708 adds r0, r5, 0 bl sub_8089B64 movs r0, 0x3C movs r1, 0x46 bl sub_803E708 ldr r0, _08089AC4 bl sub_8052910 ldr r0, _08089AC8 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 bl sub_8089BB8 ldr r0, _08089ACC bl sub_8052910 bl sub_8089BB8 ldr r0, _08089AD0 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r1, 0xE1 lsls r1, 2 adds r0, r5, 0 movs r2, 0x20 bl sub_8086A70 adds r4, 0xC adds r0, r4, 0 movs r1, 0x10 bl sub_80858AC pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08089AC0: .4byte gUnknown_8103EA4 _08089AC4: .4byte gUnknown_8103F0C _08089AC8: .4byte gUnknown_8103F4C _08089ACC: .4byte gUnknown_8103FCC _08089AD0: .4byte gUnknown_8104008 thumb_func_end sub_8089A30 thumb_func_start sub_8089AD4 sub_8089AD4: push {r4,r5,lr} bl sub_8085480 adds r5, r0, 0 movs r0, 0x11 bl sub_8085680 adds r4, r0, 0 bl sub_8086448 movs r0, 0x96 bl sub_808E734 lsls r0, 24 cmp r0, 0 beq _08089B00 ldr r0, _08089AFC bl sub_80866C4 b _08089B4E .align 2, 0 _08089AFC: .4byte gUnknown_8104144 _08089B00: ldr r0, _08089B54 bl sub_8052910 movs r0, 0x23 bl sub_8083E88 bl sub_8086794 adds r0, r4, 0 bl sub_8089B64 movs r0, 0x3C movs r1, 0x46 bl sub_803E708 ldr r0, _08089B58 bl sub_8052910 bl sub_8089BB8 ldr r0, _08089B5C bl sub_8052910 bl sub_8089BB8 ldr r0, _08089B60 bl sub_8052910 movs r1, 0xE1 lsls r1, 2 adds r0, r4, 0 movs r2, 0x20 bl sub_8086A70 adds r0, r5, 0 adds r0, 0xC movs r1, 0x10 bl sub_80858AC _08089B4E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08089B54: .4byte gUnknown_8104044 _08089B58: .4byte gUnknown_8104050 _08089B5C: .4byte gUnknown_81040CC _08089B60: .4byte gUnknown_8104114 thumb_func_end sub_8089AD4 thumb_func_start sub_8089B64 sub_8089B64: push {r4-r6,lr} adds r6, r0, 0 ldr r0, [r6, 0x70] movs r2, 0xAF lsls r2, 1 adds r1, r0, r2 movs r0, 0 strb r0, [r1] movs r5, 0xC8 lsls r5, 8 movs r4, 0x80 lsls r4, 3 movs r0, 0xFC lsls r0, 1 bl sub_8083E38 b _08089B96 _08089B86: ldr r0, [r6, 0x70] movs r1, 0xBA lsls r1, 1 adds r0, r1 str r5, [r0] movs r0, 0x46 bl sub_803E46C _08089B96: subs r5, r4 subs r4, 0xB cmp r4, 0x1D bgt _08089BA0 movs r4, 0x1E _08089BA0: cmp r5, 0 bge _08089B86 ldr r0, [r6, 0x70] movs r2, 0xBA lsls r2, 1 adds r0, r2 movs r1, 0 str r1, [r0] pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8089B64 thumb_func_start sub_8089BB8 sub_8089BB8: push {r4,r5,lr} sub sp, 0x4 movs r0, 0xFB lsls r0, 1 bl sub_8083E38 movs r4, 0xFA movs r5, 0x1 _08089BC8: str r5, [sp] adds r0, r4, 0 adds r1, r4, 0 adds r2, r4, 0 movs r3, 0x1 bl sub_8085C54 movs r0, 0x46 bl sub_803E46C subs r4, 0xA cmp r4, 0x95 bgt _08089BC8 movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r4, 0xFA movs r5, 0x1 _08089BEE: str r5, [sp] adds r0, r4, 0 adds r1, r4, 0 movs r2, 0 movs r3, 0x1 bl sub_8085C54 movs r0, 0x46 bl sub_803E46C subs r4, 0xA cmp r4, 0xC7 bgt _08089BEE movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r4, 0xFA movs r5, 0x1 _08089C14: str r5, [sp] adds r0, r4, 0 adds r1, r4, 0 adds r2, r4, 0 movs r3, 0x1 bl sub_8085C54 movs r0, 0x46 bl sub_803E46C subs r4, 0xA cmp r4, 0 bge _08089C14 movs r0, 0xA movs r1, 0x46 bl sub_803E708 bl sub_8085EB0 add sp, 0x4 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8089BB8 thumb_func_start sub_8089C44 sub_8089C44: push {r4,r5,lr} bl sub_8085480 adds r5, r0, 0 movs r0, 0x12 bl sub_8085680 adds r4, r0, 0 movs r0, 0x72 bl sub_8083E88 bl sub_80854D4 movs r0, 0x4 bl sub_8085930 adds r0, r4, 0 movs r1, 0 bl sub_8085918 movs r1, 0x4 ldrsh r0, [r5, r1] movs r2, 0x6 ldrsh r1, [r5, r2] bl sub_8085860 ldr r0, _08089C88 ldr r1, _08089C8C bl sub_808D8BC pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08089C88: .4byte gUnknown_202E038 _08089C8C: .4byte 0x0000010d thumb_func_end sub_8089C44 thumb_func_start sub_8089C90 sub_8089C90: push {r4,r5,lr} bl sub_8085480 adds r5, r0, 0 movs r0, 0x12 bl sub_8085680 adds r4, r0, 0 movs r0, 0x72 bl sub_8083E88 bl sub_80854D4 movs r0, 0x4 bl sub_8085930 ldr r0, _08089CCC bl sub_808E734 lsls r0, 24 cmp r0, 0 beq _08089CD0 movs r1, 0x87 lsls r1, 2 adds r0, r4, 0 movs r2, 0 bl sub_8068FE0 b _08089CD8 .align 2, 0 _08089CCC: .4byte 0x0000010d _08089CD0: adds r0, r4, 0 movs r1, 0 bl sub_8085918 _08089CD8: movs r1, 0x4 ldrsh r0, [r5, r1] movs r2, 0x6 ldrsh r1, [r5, r2] bl sub_8085860 ldr r0, _08089CF4 ldr r1, _08089CF8 bl sub_808D8BC pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08089CF4: .4byte gUnknown_202E038 _08089CF8: .4byte 0x0000010d thumb_func_end sub_8089C90 thumb_func_start sub_8089CFC sub_8089CFC: push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 movs r2, 0xE0 lsls r2, 24 adds r1, r2 lsrs r1, 24 cmp r1, 0x2 bhi _08089D22 cmp r0, 0x12 bne _08089D22 movs r0, 0x15 bl sub_8097FA8 ldr r0, _08089D28 ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0x2] _08089D22: pop {r0} bx r0 .align 2, 0 _08089D28: .4byte gUnknown_203B418 thumb_func_end sub_8089CFC thumb_func_start sub_8089D2C sub_8089D2C: push {r4,r5,lr} bl sub_8085480 adds r4, r0, 0 movs r0, 0x12 bl sub_8085680 adds r5, r0, 0 bl sub_8089E68 ldr r0, _08089D80 bl sub_8052910 bl sub_8089E68 ldr r0, _08089D84 bl sub_8052910 bl sub_8089E68 ldr r0, _08089D88 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r1, 0x96 lsls r1, 2 adds r0, r5, 0 movs r2, 0xB bl sub_8086A70 adds r4, 0xC adds r0, r4, 0 movs r1, 0x10 bl sub_80858AC pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08089D80: .4byte gUnknown_8104150 _08089D84: .4byte gUnknown_81041AC _08089D88: .4byte gUnknown_81041F8 thumb_func_end sub_8089D2C thumb_func_start sub_8089D8C sub_8089D8C: push {r4,r5,lr} bl sub_8085480 adds r4, r0, 0 movs r0, 0x12 bl sub_8085680 adds r5, r0, 0 bl sub_8089E68 ldr r0, _08089DE0 bl sub_8052910 bl sub_8089E68 ldr r0, _08089DE4 bl sub_8052910 bl sub_8089E68 ldr r0, _08089DE8 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r1, 0x96 lsls r1, 2 adds r0, r5, 0 movs r2, 0xB bl sub_8086A70 adds r4, 0xC adds r0, r4, 0 movs r1, 0x10 bl sub_80858AC pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08089DE0: .4byte gUnknown_8104240 _08089DE4: .4byte gUnknown_81042AC _08089DE8: .4byte gUnknown_81042B8 thumb_func_end sub_8089D8C thumb_func_start sub_8089DEC sub_8089DEC: push {r4,r5,lr} bl sub_8085480 adds r5, r0, 0 movs r0, 0x12 bl sub_8085680 adds r4, r0, 0 ldr r0, _08089E10 bl sub_808E734 lsls r0, 24 cmp r0, 0 beq _08089E18 ldr r0, _08089E14 bl sub_80866C4 b _08089E54 .align 2, 0 _08089E10: .4byte 0x0000010d _08089E14: .4byte gUnknown_81043DC _08089E18: bl sub_8089E68 ldr r0, _08089E5C bl sub_8052910 bl sub_8089E68 ldr r0, _08089E60 bl sub_8052910 bl sub_8089E68 ldr r0, _08089E64 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r1, 0x96 lsls r1, 2 adds r0, r4, 0 movs r2, 0xB bl sub_8086A70 adds r0, r5, 0 adds r0, 0xC movs r1, 0x10 bl sub_80858AC _08089E54: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08089E5C: .4byte gUnknown_8104310 _08089E60: .4byte gUnknown_810439C _08089E64: .4byte gUnknown_81043C0 thumb_func_end sub_8089DEC thumb_func_start sub_8089E68 sub_8089E68: push {r4,r5,lr} sub sp, 0x4 ldr r0, _08089EF8 bl sub_8083E38 movs r4, 0xFA _08089E74: lsrs r2, r4, 31 adds r2, r4, r2 asrs r2, 1 movs r0, 0x1 str r0, [sp] adds r0, r4, 0 adds r1, r2, 0 movs r3, 0x1 bl sub_8085C54 movs r0, 0x46 bl sub_803E46C subs r4, 0xA cmp r4, 0x95 bgt _08089E74 movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r4, 0xFA movs r5, 0x1 _08089EA0: str r5, [sp] adds r0, r4, 0 movs r1, 0 movs r2, 0 movs r3, 0x1 bl sub_8085C54 movs r0, 0x46 bl sub_803E46C subs r4, 0xA cmp r4, 0xC7 bgt _08089EA0 movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r4, 0xFA _08089EC4: lsrs r2, r4, 31 adds r2, r4, r2 asrs r2, 1 movs r0, 0x1 str r0, [sp] adds r0, r4, 0 adds r1, r2, 0 movs r3, 0x1 bl sub_8085C54 movs r0, 0x46 bl sub_803E46C subs r4, 0xA cmp r4, 0 bge _08089EC4 movs r0, 0xA movs r1, 0x46 bl sub_803E708 bl sub_8085EB0 add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08089EF8: .4byte 0x000001ed thumb_func_end sub_8089E68 thumb_func_start sub_8089EFC sub_8089EFC: push {r4,r5,lr} bl sub_8085480 adds r5, r0, 0 movs r0, 0x13 bl sub_8085680 adds r4, r0, 0 movs r0, 0x72 bl sub_8083E88 bl sub_80854D4 movs r0, 0x4 bl sub_8085930 adds r0, r4, 0 movs r1, 0 bl sub_8085918 movs r1, 0x4 ldrsh r0, [r5, r1] movs r2, 0x6 ldrsh r1, [r5, r2] bl sub_8085860 ldr r0, _08089F40 movs r1, 0x86 lsls r1, 1 bl sub_808D8BC pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08089F40: .4byte gUnknown_202E038 thumb_func_end sub_8089EFC thumb_func_start sub_8089F44 sub_8089F44: push {r4,r5,lr} bl sub_8085480 adds r5, r0, 0 movs r0, 0x13 bl sub_8085680 adds r4, r0, 0 movs r0, 0x72 bl sub_8083E88 bl sub_80854D4 movs r0, 0x4 bl sub_8085930 adds r0, r4, 0 movs r1, 0 bl sub_8085918 movs r1, 0x4 ldrsh r0, [r5, r1] movs r2, 0x6 ldrsh r1, [r5, r2] bl sub_8085860 ldr r0, _08089F88 movs r1, 0x86 lsls r1, 1 bl sub_808D8BC pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08089F88: .4byte gUnknown_202E038 thumb_func_end sub_8089F44 thumb_func_start sub_8089F8C sub_8089F8C: push {r4,r5,lr} bl sub_8085480 adds r5, r0, 0 movs r0, 0x13 bl sub_8085680 adds r4, r0, 0 movs r0, 0x72 bl sub_8083E88 bl sub_80854D4 movs r0, 0x4 bl sub_8085930 movs r0, 0x86 lsls r0, 1 bl sub_808E734 lsls r0, 24 cmp r0, 0 beq _08089FC8 movs r1, 0x87 lsls r1, 2 adds r0, r4, 0 movs r2, 0 bl sub_8068FE0 b _08089FD0 _08089FC8: adds r0, r4, 0 movs r1, 0 bl sub_8085918 _08089FD0: movs r1, 0x4 ldrsh r0, [r5, r1] movs r2, 0x6 ldrsh r1, [r5, r2] bl sub_8085860 ldr r0, _08089FEC movs r1, 0x86 lsls r1, 1 bl sub_808D8BC pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08089FEC: .4byte gUnknown_202E038 thumb_func_end sub_8089F8C thumb_func_start sub_8089FF0 sub_8089FF0: push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 movs r2, 0xDD lsls r2, 24 adds r1, r2 lsrs r1, 24 cmp r1, 0x2 bhi _0808A016 cmp r0, 0x13 bne _0808A016 movs r0, 0x17 bl sub_8097FA8 ldr r0, _0808A01C ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0x2] _0808A016: pop {r0} bx r0 .align 2, 0 _0808A01C: .4byte gUnknown_203B418 thumb_func_end sub_8089FF0 thumb_func_start sub_808A020 sub_808A020: push {r4,r5,lr} bl sub_8085480 adds r4, r0, 0 movs r0, 0x13 bl sub_8085680 adds r5, r0, 0 ldr r0, _0808A0A4 bl sub_8052910 bl sub_808A1D8 ldr r0, _0808A0A8 bl sub_8052910 ldr r0, _0808A0AC ldr r0, [r0] ldr r1, _0808A0B0 adds r0, r1 movs r1, 0x4 strb r1, [r0] movs r0, 0 movs r1, 0x1 bl sub_807EAA0 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _0808A0B4 bl sub_8052910 bl sub_808A1D8 ldr r0, _0808A0B8 bl sub_8052910 bl sub_808A1D8 ldr r0, _0808A0BC bl sub_8052910 bl sub_808A1D8 ldr r0, _0808A0C0 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r1, _0808A0C4 adds r0, r5, 0 movs r2, 0xB bl sub_8086A70 adds r4, 0xC adds r0, r4, 0 movs r1, 0x10 bl sub_80858AC pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0808A0A4: .4byte gUnknown_8104450 _0808A0A8: .4byte gUnknown_81044B4 _0808A0AC: .4byte gUnknown_203B418 _0808A0B0: .4byte 0x0000e265 _0808A0B4: .4byte gUnknown_8104510 _0808A0B8: .4byte gUnknown_810453C _0808A0BC: .4byte gUnknown_8104570 _0808A0C0: .4byte gUnknown_81045B0 _0808A0C4: .4byte 0x0000028a thumb_func_end sub_808A020 thumb_func_start sub_808A0C8 sub_808A0C8: push {r4,r5,lr} bl sub_8085480 adds r4, r0, 0 movs r0, 0x13 bl sub_8085680 adds r5, r0, 0 ldr r0, _0808A12C ldr r0, [r0] ldr r1, _0808A130 adds r0, r1 movs r1, 0x4 strb r1, [r0] movs r0, 0 movs r1, 0x1 bl sub_807EAA0 bl sub_808A1D8 ldr r0, _0808A134 bl sub_8052910 bl sub_808A1D8 ldr r0, _0808A138 bl sub_8052910 bl sub_808A1D8 ldr r0, _0808A13C bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r1, _0808A140 adds r0, r5, 0 movs r2, 0xB bl sub_8086A70 adds r4, 0xC adds r0, r4, 0 movs r1, 0x10 bl sub_80858AC pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0808A12C: .4byte gUnknown_203B418 _0808A130: .4byte 0x0000e265 _0808A134: .4byte gUnknown_81045F8 _0808A138: .4byte gUnknown_8104674 _0808A13C: .4byte gUnknown_81046A0 _0808A140: .4byte 0x0000028a thumb_func_end sub_808A0C8 thumb_func_start sub_808A144 sub_808A144: push {r4,r5,lr} bl sub_8085480 adds r5, r0, 0 movs r0, 0x13 bl sub_8085680 adds r4, r0, 0 movs r0, 0x86 lsls r0, 1 bl sub_808E734 lsls r0, 24 cmp r0, 0 beq _0808A170 ldr r0, _0808A16C bl sub_80866C4 b _0808A1BA .align 2, 0 _0808A16C: .4byte gUnknown_8104778 _0808A170: ldr r0, _0808A1C0 ldr r0, [r0] ldr r1, _0808A1C4 adds r0, r1 movs r1, 0x4 strb r1, [r0] movs r0, 0 movs r1, 0x1 bl sub_807EAA0 ldr r0, _0808A1C8 bl sub_8052910 bl sub_808A1D8 ldr r0, _0808A1CC bl sub_8052910 bl sub_808A1D8 ldr r0, _0808A1D0 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r1, _0808A1D4 adds r0, r4, 0 movs r2, 0xB bl sub_8086A70 adds r0, r5, 0 adds r0, 0xC movs r1, 0x10 bl sub_80858AC _0808A1BA: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0808A1C0: .4byte gUnknown_203B418 _0808A1C4: .4byte 0x0000e265 _0808A1C8: .4byte gUnknown_81046CC _0808A1CC: .4byte gUnknown_8104744 _0808A1D0: .4byte gUnknown_810476C _0808A1D4: .4byte 0x0000028a thumb_func_end sub_808A144 thumb_func_start sub_808A1D8 sub_808A1D8: push {r4,r5,lr} sub sp, 0x4 movs r0, 0xFB lsls r0, 1 bl sub_8083E38 movs r4, 0xFA movs r5, 0x1 _0808A1E8: str r5, [sp] adds r0, r4, 0 adds r1, r4, 0 adds r2, r4, 0 movs r3, 0x1 bl sub_8085C54 movs r0, 0x46 bl sub_803E46C subs r4, 0xA cmp r4, 0x95 bgt _0808A1E8 movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r4, 0xFA movs r5, 0x1 _0808A20E: str r5, [sp] adds r0, r4, 0 adds r1, r4, 0 adds r2, r4, 0 movs r3, 0x1 bl sub_8085C54 movs r0, 0x46 bl sub_803E46C subs r4, 0xA cmp r4, 0xC7 bgt _0808A20E movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r4, 0xFA movs r5, 0x1 _0808A234: str r5, [sp] adds r0, r4, 0 adds r1, r4, 0 adds r2, r4, 0 movs r3, 0x1 bl sub_8085C54 movs r0, 0x46 bl sub_803E46C subs r4, 0xA cmp r4, 0 bge _0808A234 movs r0, 0xA movs r1, 0x46 bl sub_803E708 bl sub_8085EB0 add sp, 0x4 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_808A1D8 thumb_func_start sub_808A264 sub_808A264: push {r4-r6,lr} bl sub_8085480 adds r6, r0, 0 movs r0, 0x14 bl sub_8085680 adds r5, r0, 0 movs r0, 0x72 bl sub_8083E88 bl sub_80854D4 movs r0, 0x4 bl sub_8085930 ldr r4, _0808A2B8 adds r0, r4, 0 bl sub_80855E4 adds r0, r5, 0 movs r1, 0 bl sub_8085918 adds r0, r5, 0 bl _call_via_r4 movs r1, 0x4 ldrsh r0, [r6, r1] movs r2, 0x6 ldrsh r1, [r6, r2] subs r1, 0x3 bl sub_8085860 ldr r0, _0808A2BC movs r1, 0x87 lsls r1, 1 bl sub_808D8BC pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0808A2B8: .4byte sub_8086A3C _0808A2BC: .4byte gUnknown_202E038 thumb_func_end sub_808A264 thumb_func_start sub_808A2C0 sub_808A2C0: push {r4,r5,lr} bl sub_8085480 adds r5, r0, 0 movs r0, 0x14 bl sub_8085680 adds r4, r0, 0 movs r0, 0x72 bl sub_8083E88 bl sub_80854D4 movs r0, 0x4 bl sub_8085930 adds r0, r4, 0 movs r1, 0 bl sub_8085918 movs r1, 0x4 ldrsh r0, [r5, r1] movs r2, 0x6 ldrsh r1, [r5, r2] bl sub_8085860 ldr r0, _0808A304 movs r1, 0x87 lsls r1, 1 bl sub_808D8BC pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0808A304: .4byte gUnknown_202E038 thumb_func_end sub_808A2C0 thumb_func_start sub_808A308 sub_808A308: push {r4,r5,lr} bl sub_8085480 adds r5, r0, 0 movs r0, 0x14 bl sub_8085680 adds r4, r0, 0 movs r0, 0x72 bl sub_8083E88 bl sub_80854D4 movs r0, 0x4 bl sub_8085930 movs r0, 0x87 lsls r0, 1 bl sub_808E734 lsls r0, 24 cmp r0, 0 beq _0808A344 movs r1, 0x87 lsls r1, 2 adds r0, r4, 0 movs r2, 0 bl sub_8068FE0 b _0808A34C _0808A344: adds r0, r4, 0 movs r1, 0 bl sub_8085918 _0808A34C: movs r1, 0x4 ldrsh r0, [r5, r1] movs r2, 0x6 ldrsh r1, [r5, r2] bl sub_8085860 ldr r0, _0808A368 movs r1, 0x87 lsls r1, 1 bl sub_808D8BC pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0808A368: .4byte gUnknown_202E038 thumb_func_end sub_808A308 thumb_func_start sub_808A36C sub_808A36C: push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 movs r2, 0xDA lsls r2, 24 adds r1, r2 lsrs r1, 24 cmp r1, 0x2 bhi _0808A392 cmp r0, 0x14 bne _0808A392 movs r0, 0x19 bl sub_8097FA8 ldr r0, _0808A398 ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0x2] _0808A392: pop {r0} bx r0 .align 2, 0 _0808A398: .4byte gUnknown_203B418 thumb_func_end sub_808A36C thumb_func_start sub_808A39C sub_808A39C: push {r4,r5,lr} bl sub_8085480 adds r4, r0, 0 movs r0, 0x14 bl sub_8085680 adds r5, r0, 0 bl sub_8086448 ldr r0, _0808A434 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _0808A438 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r0, 0x1 movs r1, 0x2 bl sub_80426C8 movs r0, 0x3C movs r1, 0x46 bl sub_803E708 ldr r0, _0808A43C bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 adds r0, r5, 0 bl sub_808A528 ldr r0, _0808A440 bl sub_8052910 ldr r0, _0808A444 bl sub_8052910 bl sub_808A57C ldr r0, _0808A448 bl sub_8052910 bl sub_808A57C ldr r0, _0808A44C bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r1, _0808A450 adds r0, r5, 0 movs r2, 0xB bl sub_8086A70 adds r4, 0xC adds r0, r4, 0 movs r1, 0x10 bl sub_80858AC pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0808A434: .4byte gUnknown_8104784 _0808A438: .4byte gUnknown_8104790 _0808A43C: .4byte gUnknown_81047B0 _0808A440: .4byte gUnknown_810484C _0808A444: .4byte gUnknown_8104888 _0808A448: .4byte gUnknown_81048C8 _0808A44C: .4byte gUnknown_8104914 _0808A450: .4byte 0x0000028a thumb_func_end sub_808A39C thumb_func_start sub_808A454 sub_808A454: push {r4,r5,lr} bl sub_8085480 adds r4, r0, 0 movs r0, 0x14 bl sub_8085680 adds r5, r0, 0 ldr r0, _0808A4A0 bl sub_8052910 bl sub_808A57C ldr r0, _0808A4A4 bl sub_8052910 bl sub_808A57C ldr r0, _0808A4A8 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r1, _0808A4AC adds r0, r5, 0 movs r2, 0xB bl sub_8086A70 adds r4, 0xC adds r0, r4, 0 movs r1, 0x10 bl sub_80858AC pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0808A4A0: .4byte gUnknown_8104930 _0808A4A4: .4byte gUnknown_8104980 _0808A4A8: .4byte gUnknown_8104998 _0808A4AC: .4byte 0x0000028a thumb_func_end sub_808A454 thumb_func_start sub_808A4B0 sub_808A4B0: push {r4,r5,lr} bl sub_8085480 adds r5, r0, 0 movs r0, 0x14 bl sub_8085680 adds r4, r0, 0 movs r0, 0x87 lsls r0, 1 bl sub_808E734 lsls r0, 24 cmp r0, 0 beq _0808A4DC ldr r0, _0808A4D8 bl sub_80866C4 b _0808A512 .align 2, 0 _0808A4D8: .4byte gUnknown_8104AC8 _0808A4DC: ldr r0, _0808A518 bl sub_8052910 bl sub_808A57C ldr r0, _0808A51C bl sub_8052910 bl sub_808A57C ldr r0, _0808A520 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r1, _0808A524 adds r0, r4, 0 movs r2, 0xB bl sub_8086A70 adds r0, r5, 0 adds r0, 0xC movs r1, 0x10 bl sub_80858AC _0808A512: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0808A518: .4byte gUnknown_81049D4 _0808A51C: .4byte gUnknown_8104A80 _0808A520: .4byte gUnknown_8104A9C _0808A524: .4byte 0x0000028a thumb_func_end sub_808A4B0 thumb_func_start sub_808A528 sub_808A528: push {r4-r6,lr} adds r6, r0, 0 ldr r0, [r6, 0x70] movs r2, 0xAF lsls r2, 1 adds r1, r0, r2 movs r0, 0 strb r0, [r1] movs r5, 0xC8 lsls r5, 8 movs r4, 0xC0 lsls r4, 4 movs r0, 0xFC lsls r0, 1 bl sub_8083E38 b _0808A55A _0808A54A: ldr r0, [r6, 0x70] movs r1, 0xBA lsls r1, 1 adds r0, r1 str r5, [r0] movs r0, 0x46 bl sub_803E46C _0808A55A: subs r5, r4 subs r4, 0x60 cmp r4, 0x13 bgt _0808A564 movs r4, 0x14 _0808A564: cmp r5, 0 bge _0808A54A ldr r0, [r6, 0x70] movs r2, 0xBA lsls r2, 1 adds r0, r2 movs r1, 0 str r1, [r0] pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_808A528 thumb_func_start sub_808A57C sub_808A57C: push {r4,r5,lr} sub sp, 0x4 movs r0, 0xF7 lsls r0, 1 bl sub_8083E38 movs r4, 0xFA movs r5, 0x1 _0808A58C: str r5, [sp] adds r0, r4, 0 adds r1, r4, 0 adds r2, r4, 0 movs r3, 0x1 bl sub_8085C54 movs r0, 0x46 bl sub_803E46C subs r4, 0xA cmp r4, 0x95 bgt _0808A58C movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r4, 0xFA movs r5, 0x1 _0808A5B2: str r5, [sp] adds r0, r4, 0 adds r1, r4, 0 adds r2, r4, 0 movs r3, 0x1 bl sub_8085C54 movs r0, 0x46 bl sub_803E46C subs r4, 0xA cmp r4, 0xC7 bgt _0808A5B2 movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r4, 0xFA movs r5, 0x1 _0808A5D8: str r5, [sp] adds r0, r4, 0 adds r1, r4, 0 adds r2, r4, 0 movs r3, 0x1 bl sub_8085C54 movs r0, 0x46 bl sub_803E46C subs r4, 0xA cmp r4, 0 bge _0808A5D8 movs r0, 0xA movs r1, 0x46 bl sub_803E708 bl sub_8085EB0 add sp, 0x4 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_808A57C thumb_func_start sub_808A608 sub_808A608: push {r4,r5,lr} bl sub_8085480 adds r5, r0, 0 movs r0, 0x15 bl sub_8085680 adds r4, r0, 0 movs r0, 0x1C bl sub_8083E88 bl sub_80867F4 movs r0, 0 movs r1, 0 movs r2, 0 bl sub_8086838 bl sub_80854D4 movs r0, 0x4 bl sub_8085930 adds r0, r4, 0 movs r1, 0 bl sub_8085918 adds r0, r4, 0 bl sub_8086A3C movs r1, 0x4 ldrsh r0, [r5, r1] movs r2, 0x6 ldrsh r1, [r5, r2] subs r1, 0x6 bl sub_8085860 ldr r0, _0808A660 ldr r1, _0808A664 bl sub_808D8BC pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0808A660: .4byte gUnknown_202E038 _0808A664: .4byte 0x00000113 thumb_func_end sub_808A608 thumb_func_start sub_808A668 sub_808A668: push {r4,r5,lr} bl sub_8085480 adds r5, r0, 0 movs r0, 0x15 bl sub_8085680 adds r4, r0, 0 movs r0, 0x1C bl sub_8083E88 bl sub_80867F4 movs r0, 0 movs r1, 0 movs r2, 0 bl sub_8086838 bl sub_80854D4 movs r0, 0x4 bl sub_8085930 ldr r0, _0808A6B0 bl sub_808E734 lsls r0, 24 cmp r0, 0 beq _0808A6B4 movs r1, 0x87 lsls r1, 2 adds r0, r4, 0 movs r2, 0 bl sub_8068FE0 b _0808A6C2 .align 2, 0 _0808A6B0: .4byte 0x00000113 _0808A6B4: adds r0, r4, 0 movs r1, 0 bl sub_8085918 adds r0, r4, 0 bl sub_8086A3C _0808A6C2: movs r1, 0x4 ldrsh r0, [r5, r1] movs r2, 0x6 ldrsh r1, [r5, r2] subs r1, 0x6 bl sub_8085860 ldr r0, _0808A6E0 ldr r1, _0808A6E4 bl sub_808D8BC pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0808A6E0: .4byte gUnknown_202E038 _0808A6E4: .4byte 0x00000113 thumb_func_end sub_808A668 thumb_func_start sub_808A6E8 sub_808A6E8: push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 movs r2, 0xD7 lsls r2, 24 adds r1, r2 lsrs r1, 24 cmp r1, 0x1 bhi _0808A70E cmp r0, 0x15 bne _0808A70E movs r0, 0x1A bl sub_8097FA8 ldr r0, _0808A714 ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0x2] _0808A70E: pop {r0} bx r0 .align 2, 0 _0808A714: .4byte gUnknown_203B418 thumb_func_end sub_808A6E8 thumb_func_start sub_808A718 sub_808A718: push {lr} bl sub_8086854 pop {r0} bx r0 thumb_func_end sub_808A718 thumb_func_start sub_808A724 sub_808A724: push {r4-r6,lr} sub sp, 0x8 bl sub_8085480 adds r5, r0, 0 movs r0, 0x15 bl sub_8085680 adds r6, r0, 0 ldr r0, [r5, 0xC] str r0, [sp] ldr r0, [r5, 0x10] ldr r1, _0808A800 adds r0, r1 str r0, [sp, 0x4] mov r0, sp movs r1, 0x88 bl sub_80858AC movs r0, 0x40 movs r1, 0x46 bl sub_803E708 ldr r0, _0808A804 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 bl sub_808A958 ldr r0, _0808A808 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _0808A80C bl sub_80855E4 bl sub_808680C ldr r4, _0808A810 adds r0, r4, 0 bl sub_8083E38 movs r0, 0xFA movs r1, 0x46 bl sub_803E708 adds r0, r6, 0 bl sub_808A904 adds r0, r4, 0 bl sub_8083E58 bl sub_808682C ldr r0, _0808A814 bl sub_80855E4 movs r0, 0x4 bl sub_8085930 ldr r0, _0808A818 bl sub_8052910 ldr r0, _0808A81C bl sub_8052910 movs r0, 0x1E movs r1, 0x46 bl sub_803E708 movs r0, 0x1E movs r1, 0x46 bl sub_803E708 bl sub_808A958 ldr r0, _0808A820 bl sub_8052910 bl sub_808A958 ldr r0, _0808A824 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r1, 0xC8 lsls r1, 2 adds r0, r6, 0 movs r2, 0x20 bl sub_8086A70 adds r5, 0xC adds r0, r5, 0 movs r1, 0x10 bl sub_80858AC add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0808A800: .4byte 0xfffff000 _0808A804: .4byte gUnknown_8104AD4 _0808A808: .4byte gUnknown_8104BEC _0808A80C: .4byte sub_80868F4 _0808A810: .4byte 0x000001c5 _0808A814: .4byte sub_8086910 _0808A818: .4byte gUnknown_8104C10 _0808A81C: .4byte gUnknown_8104C54 _0808A820: .4byte gUnknown_8104CB4 _0808A824: .4byte gUnknown_8104CE0 thumb_func_end sub_808A724 thumb_func_start sub_808A828 sub_808A828: push {r4,r5,lr} sub sp, 0x8 bl sub_8085480 adds r4, r0, 0 movs r0, 0x15 bl sub_8085680 adds r5, r0, 0 ldr r0, [r4, 0xC] str r0, [sp] ldr r0, [r4, 0x10] ldr r1, _0808A86C adds r0, r1 str r0, [sp, 0x4] mov r0, sp movs r1, 0x88 bl sub_80858AC movs r0, 0x40 movs r1, 0x46 bl sub_803E708 ldr r0, _0808A870 bl sub_808E734 lsls r0, 24 cmp r0, 0 beq _0808A878 ldr r0, _0808A874 bl sub_80866C4 b _0808A8E2 .align 2, 0 _0808A86C: .4byte 0xfffff000 _0808A870: .4byte 0x00000113 _0808A874: .4byte gUnknown_8104E54 _0808A878: ldr r0, _0808A8EC bl sub_8052910 bl sub_808A958 ldr r0, _0808A8F0 bl sub_80855E4 bl sub_808680C movs r0, 0xA movs r1, 0x46 bl sub_803E708 adds r0, r5, 0 bl sub_808A904 bl sub_808682C ldr r0, _0808A8F4 bl sub_80855E4 movs r0, 0x4 bl sub_8085930 ldr r0, _0808A8F8 bl sub_8052910 bl sub_808A958 ldr r0, _0808A8FC bl sub_8052910 bl sub_808A958 ldr r0, _0808A900 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r1, 0xC8 lsls r1, 2 adds r0, r5, 0 movs r2, 0x20 bl sub_8086A70 adds r0, r4, 0 adds r0, 0xC movs r1, 0x10 bl sub_80858AC _0808A8E2: add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0808A8EC: .4byte gUnknown_8104CEC _0808A8F0: .4byte sub_80868F4 _0808A8F4: .4byte sub_8086910 _0808A8F8: .4byte gUnknown_8104D60 _0808A8FC: .4byte gUnknown_8104DDC _0808A900: .4byte gUnknown_8104E0C thumb_func_end sub_808A828 thumb_func_start sub_808A904 sub_808A904: push {r4-r6,lr} adds r6, r0, 0 ldr r0, [r6, 0x70] movs r2, 0xAF lsls r2, 1 adds r1, r0, r2 movs r0, 0 strb r0, [r1] movs r5, 0xC8 lsls r5, 8 movs r4, 0xC0 lsls r4, 4 movs r0, 0xFC lsls r0, 1 bl sub_8083E38 b _0808A936 _0808A926: ldr r0, [r6, 0x70] movs r1, 0xBA lsls r1, 1 adds r0, r1 str r5, [r0] movs r0, 0x46 bl sub_803E46C _0808A936: subs r5, r4 subs r4, 0x60 cmp r4, 0x13 bgt _0808A940 movs r4, 0x14 _0808A940: cmp r5, 0 bge _0808A926 ldr r0, [r6, 0x70] movs r2, 0xBA lsls r2, 1 adds r0, r2 movs r1, 0 str r1, [r0] pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_808A904 thumb_func_start sub_808A958 sub_808A958: push {r4,r5,lr} sub sp, 0x4 ldr r0, _0808A9E0 bl sub_8083E38 movs r4, 0xFA movs r5, 0x1 _0808A966: str r5, [sp] adds r0, r4, 0 adds r1, r4, 0 adds r2, r4, 0 movs r3, 0x1 bl sub_8085C54 movs r0, 0x46 bl sub_803E46C subs r4, 0xA cmp r4, 0x95 bgt _0808A966 movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r4, 0xFA movs r5, 0x1 _0808A98C: str r5, [sp] adds r0, r4, 0 adds r1, r4, 0 adds r2, r4, 0 movs r3, 0x1 bl sub_8085C54 movs r0, 0x46 bl sub_803E46C subs r4, 0xA cmp r4, 0xC7 bgt _0808A98C movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r4, 0xFA movs r5, 0x1 _0808A9B2: str r5, [sp] adds r0, r4, 0 adds r1, r4, 0 adds r2, r4, 0 movs r3, 0x1 bl sub_8085C54 movs r0, 0x46 bl sub_803E46C subs r4, 0xA cmp r4, 0 bge _0808A9B2 movs r0, 0xA movs r1, 0x46 bl sub_803E708 bl sub_8085EB0 add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0808A9E0: .4byte 0x000001ed thumb_func_end sub_808A958 thumb_func_start sub_808A9E4 sub_808A9E4: push {r4,r5,lr} bl sub_8085480 adds r5, r0, 0 movs r0, 0x16 bl sub_8085680 adds r4, r0, 0 movs r0, 0x72 bl sub_8083E88 bl sub_80854D4 movs r0, 0x4 bl sub_8085930 ldr r0, _0808AA30 bl sub_80855E4 adds r0, r4, 0 movs r1, 0x4 bl sub_8085918 movs r1, 0x4 ldrsh r0, [r5, r1] movs r2, 0x6 ldrsh r1, [r5, r2] subs r1, 0x4 bl sub_8085860 ldr r0, _0808AA34 ldr r1, _0808AA38 bl sub_808D8BC pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0808AA30: .4byte sub_8086A3C _0808AA34: .4byte gUnknown_202E038 _0808AA38: .4byte 0x00000199 thumb_func_end sub_808A9E4 thumb_func_start sub_808AA3C sub_808AA3C: push {r4,r5,lr} bl sub_8085480 adds r5, r0, 0 movs r0, 0x16 bl sub_8085680 adds r4, r0, 0 movs r0, 0x72 bl sub_8083E88 bl sub_80854D4 movs r0, 0x4 bl sub_8085930 ldr r0, _0808AA88 bl sub_80855E4 adds r0, r4, 0 movs r1, 0x4 bl sub_8085918 movs r1, 0x4 ldrsh r0, [r5, r1] movs r2, 0x6 ldrsh r1, [r5, r2] subs r1, 0x3 bl sub_8085860 ldr r0, _0808AA8C ldr r1, _0808AA90 bl sub_808D8BC pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0808AA88: .4byte sub_8086A3C _0808AA8C: .4byte gUnknown_202E038 _0808AA90: .4byte 0x00000199 thumb_func_end sub_808AA3C thumb_func_start sub_808AA94 sub_808AA94: push {r4,r5,lr} bl sub_8085480 adds r5, r0, 0 movs r0, 0x16 bl sub_8085680 adds r4, r0, 0 movs r0, 0x72 bl sub_8083E88 bl sub_80854D4 movs r0, 0x4 bl sub_8085930 ldr r0, _0808AAE4 bl sub_80855E4 movs r1, 0x87 lsls r1, 2 adds r0, r4, 0 movs r2, 0 bl sub_8068FE0 movs r1, 0x4 ldrsh r0, [r5, r1] movs r2, 0x6 ldrsh r1, [r5, r2] subs r1, 0x3 bl sub_8085860 ldr r0, _0808AAE8 ldr r1, _0808AAEC bl sub_808D8BC pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0808AAE4: .4byte sub_8086A3C _0808AAE8: .4byte gUnknown_202E038 _0808AAEC: .4byte 0x00000199 thumb_func_end sub_808AA94 thumb_func_start sub_808AAF0 sub_808AAF0: push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 movs r2, 0xD5 lsls r2, 24 adds r1, r2 lsrs r1, 24 cmp r1, 0x2 bhi _0808AB16 cmp r0, 0x16 bne _0808AB16 movs r0, 0x1C bl sub_8097FA8 ldr r0, _0808AB1C ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0x2] _0808AB16: pop {r0} bx r0 .align 2, 0 _0808AB1C: .4byte gUnknown_203B418 thumb_func_end sub_808AAF0 thumb_func_start sub_808AB20 sub_808AB20: push {r4,r5,lr} sub sp, 0x10 bl sub_8085480 adds r5, r0, 0 movs r0, 0x16 bl sub_8085680 adds r4, r0, 0 ldr r0, [r4, 0xC] str r0, [sp, 0x4] ldr r0, [r4, 0x10] movs r1, 0x80 lsls r1, 6 adds r0, r1 str r0, [sp, 0x8] ldr r0, _0808ABC4 str r0, [sp, 0xC] ldr r0, _0808ABC8 add r3, sp, 0xC movs r1, 0x1 str r1, [sp] movs r1, 0 movs r2, 0 bl sub_8085EC8 movs r0, 0x1E movs r1, 0x46 bl sub_803E708 bl sub_8086448 add r0, sp, 0x4 movs r1, 0x18 bl sub_80858AC movs r0, 0x2 movs r1, 0x46 bl sub_803E708 adds r0, r4, 0 bl sub_80862BC movs r0, 0x20 movs r1, 0x46 bl sub_803E708 bl sub_808692C ldr r0, _0808ABCC bl sub_8052910 bl sub_808AC50 ldr r0, _0808ABD0 bl sub_8052910 bl sub_808AC50 ldr r0, _0808ABD4 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r1, 0x96 lsls r1, 2 adds r0, r4, 0 movs r2, 0xB bl sub_8086A70 adds r5, 0xC adds r0, r5, 0 movs r1, 0x10 bl sub_80858AC add sp, 0x10 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0808ABC4: .4byte 0x007000fc _0808ABC8: .4byte 0x000001bd _0808ABCC: .4byte gUnknown_8104E60 _0808ABD0: .4byte gUnknown_8104EFC _0808ABD4: .4byte gUnknown_8104F30 thumb_func_end sub_808AB20 thumb_func_start sub_808ABD8 sub_808ABD8: push {r4,r5,lr} bl sub_8085480 adds r4, r0, 0 movs r0, 0x16 bl sub_8085680 adds r5, r0, 0 bl sub_8086448 bl sub_808692C ldr r0, _0808AC30 bl sub_8052910 bl sub_808AC50 ldr r0, _0808AC34 bl sub_8052910 bl sub_808AC50 ldr r0, _0808AC38 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r1, 0x96 lsls r1, 2 adds r0, r5, 0 movs r2, 0xB bl sub_8086A70 adds r4, 0xC adds r0, r4, 0 movs r1, 0x10 bl sub_80858AC pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0808AC30: .4byte gUnknown_8104F64 _0808AC34: .4byte gUnknown_8104EFC _0808AC38: .4byte gUnknown_8104F30 thumb_func_end sub_808ABD8 thumb_func_start sub_808AC3C sub_808AC3C: push {lr} bl sub_8086448 ldr r0, _0808AC4C bl sub_80866C4 pop {r0} bx r0 .align 2, 0 _0808AC4C: .4byte gUnknown_8104FC8 thumb_func_end sub_808AC3C thumb_func_start sub_808AC50 sub_808AC50: push {r4,r5,lr} sub sp, 0x4 movs r0, 0xF7 lsls r0, 1 bl sub_8083E38 ldr r1, _0808ACBC movs r0, 0x1F str r0, [r1] movs r4, 0xFA movs r5, 0x1 _0808AC66: str r5, [sp] adds r0, r4, 0 adds r1, r4, 0 adds r2, r4, 0 movs r3, 0x1 bl sub_8085C54 movs r0, 0x46 bl sub_803E46C subs r4, 0xA cmp r4, 0x95 bgt _0808AC66 movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r4, 0xFA movs r5, 0x1 _0808AC8C: str r5, [sp] adds r0, r4, 0 adds r1, r4, 0 adds r2, r4, 0 movs r3, 0x1 bl sub_8085C54 movs r0, 0x46 bl sub_803E46C subs r4, 0xA cmp r4, 0 bge _0808AC8C movs r0, 0xA movs r1, 0x46 bl sub_803E708 bl sub_8085EB0 add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0808ACBC: .4byte gUnknown_202EDC8 thumb_func_end sub_808AC50 thumb_func_start sub_808ACC0 sub_808ACC0: push {r4,lr} ldr r4, _0808ACF4 adds r0, r4, 0 bl sub_808E734 lsls r0, 24 cmp r0, 0 beq _0808ACF8 movs r0, 0x17 bl sub_8085680 movs r1, 0x87 lsls r1, 2 movs r2, 0 bl sub_8068FE0 movs r0, 0x22 bl sub_8097FA8 movs r0, 0x1D bl sub_8097FA8 movs r0, 0x79 bl sub_808B1CC b _0808AD38 .align 2, 0 _0808ACF4: .4byte 0x00000195 _0808ACF8: movs r0, 0x79 bl sub_80860A8 lsls r0, 24 cmp r0, 0 bne _0808AD10 movs r0, 0x7A bl sub_80860A8 lsls r0, 24 cmp r0, 0 beq _0808AD1E _0808AD10: movs r0, 0x22 bl sub_8098044 movs r0, 0x1D bl sub_8097FA8 b _0808AD38 _0808AD1E: movs r0, 0x22 bl sub_8098044 movs r0, 0x1D bl sub_8098044 ldr r0, _0808AD40 bl sub_80855E4 ldr r0, _0808AD44 adds r1, r4, 0 bl sub_808D8BC _0808AD38: pop {r4} pop {r0} bx r0 .align 2, 0 _0808AD40: .4byte sub_808B2B0 _0808AD44: .4byte gUnknown_202E038 thumb_func_end sub_808ACC0 thumb_func_start sub_808AD48 sub_808AD48: push {r4,lr} movs r4, 0xCB lsls r4, 1 adds r0, r4, 0 bl sub_808E734 lsls r0, 24 cmp r0, 0 beq _0808AD7E movs r0, 0x18 bl sub_8085680 movs r1, 0x87 lsls r1, 2 movs r2, 0 bl sub_8068FE0 movs r0, 0x22 bl sub_8097FA8 movs r0, 0x1D bl sub_8097FA8 movs r0, 0x77 bl sub_808B1CC b _0808ADBE _0808AD7E: movs r0, 0x77 bl sub_80860A8 lsls r0, 24 cmp r0, 0 bne _0808AD96 movs r0, 0x7A bl sub_80860A8 lsls r0, 24 cmp r0, 0 beq _0808ADA4 _0808AD96: movs r0, 0x22 bl sub_8098044 movs r0, 0x1D bl sub_8097FA8 b _0808ADBE _0808ADA4: movs r0, 0x22 bl sub_8098044 movs r0, 0x1D bl sub_8098044 ldr r0, _0808ADC4 bl sub_80855E4 ldr r0, _0808ADC8 adds r1, r4, 0 bl sub_808D8BC _0808ADBE: pop {r4} pop {r0} bx r0 .align 2, 0 _0808ADC4: .4byte sub_808B2B0 _0808ADC8: .4byte gUnknown_202E038 thumb_func_end sub_808AD48 thumb_func_start sub_808ADCC sub_808ADCC: push {r4,lr} ldr r4, _0808AE00 adds r0, r4, 0 bl sub_808E734 lsls r0, 24 cmp r0, 0 beq _0808AE04 movs r0, 0x19 bl sub_8085680 movs r1, 0x87 lsls r1, 2 movs r2, 0 bl sub_8068FE0 movs r0, 0x22 bl sub_8097FA8 movs r0, 0x1D bl sub_8097FA8 movs r0, 0x78 bl sub_808B1CC b _0808AE44 .align 2, 0 _0808AE00: .4byte 0x00000197 _0808AE04: movs r0, 0x78 bl sub_80860A8 lsls r0, 24 cmp r0, 0 bne _0808AE1C movs r0, 0x7A bl sub_80860A8 lsls r0, 24 cmp r0, 0 beq _0808AE2A _0808AE1C: movs r0, 0x22 bl sub_8098044 movs r0, 0x1D bl sub_8097FA8 b _0808AE44 _0808AE2A: movs r0, 0x22 bl sub_8098044 movs r0, 0x1D bl sub_8098044 ldr r0, _0808AE4C bl sub_80855E4 ldr r0, _0808AE50 adds r1, r4, 0 bl sub_808D8BC _0808AE44: pop {r4} pop {r0} bx r0 .align 2, 0 _0808AE4C: .4byte sub_808B2B0 _0808AE50: .4byte gUnknown_202E038 thumb_func_end sub_808ADCC thumb_func_start sub_808AE54 sub_808AE54: push {r4-r6,lr} sub sp, 0x8 adds r6, r2, 0 lsls r0, 24 lsrs r5, r0, 24 lsls r1, 24 lsrs r4, r1, 24 bl sub_8085480 adds r1, r0, 0 mov r0, sp movs r2, 0 bl sub_8052D44 movs r0, 0x22 bl sub_8098100 lsls r0, 24 cmp r0, 0 bne _0808AEBA cmp r4, 0x2E bne _0808AEBA cmp r5, 0x17 bne _0808AEBA movs r0, 0 bl sub_808B1CC movs r0, 0x1D bl sub_8098100 lsls r0, 24 cmp r0, 0 bne _0808AEBA add r4, sp, 0x4 adds r0, r4, 0 movs r1, 0x79 movs r2, 0 bl sub_8090A8C bl sub_8083600 adds r1, r6, 0 adds r2, r4, 0 bl sub_80464C8 movs r0, 0x72 bl sub_8083E88 ldr r0, _0808AEC4 bl sub_8052910 _0808AEBA: add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0808AEC4: .4byte gUnknown_8105040 thumb_func_end sub_808AE54 thumb_func_start sub_808AEC8 sub_808AEC8: push {r4-r6,lr} sub sp, 0x8 adds r6, r2, 0 lsls r0, 24 lsrs r5, r0, 24 lsls r1, 24 lsrs r4, r1, 24 bl sub_8085480 adds r1, r0, 0 mov r0, sp movs r2, 0 bl sub_8052D44 movs r0, 0x22 bl sub_8098100 lsls r0, 24 cmp r0, 0 bne _0808AF2E cmp r4, 0x2F bne _0808AF2E cmp r5, 0x18 bne _0808AF2E movs r0, 0 bl sub_808B1CC movs r0, 0x1D bl sub_8098100 lsls r0, 24 cmp r0, 0 bne _0808AF2E add r4, sp, 0x4 adds r0, r4, 0 movs r1, 0x77 movs r2, 0 bl sub_8090A8C bl sub_8083600 adds r1, r6, 0 adds r2, r4, 0 bl sub_80464C8 movs r0, 0x72 bl sub_8083E88 ldr r0, _0808AF38 bl sub_8052910 _0808AF2E: add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0808AF38: .4byte gUnknown_810510C thumb_func_end sub_808AEC8 thumb_func_start sub_808AF3C sub_808AF3C: push {r4-r6,lr} sub sp, 0x8 adds r6, r2, 0 lsls r0, 24 lsrs r5, r0, 24 lsls r1, 24 lsrs r4, r1, 24 bl sub_8085480 adds r1, r0, 0 mov r0, sp movs r2, 0 bl sub_8052D44 movs r0, 0x22 bl sub_8098100 lsls r0, 24 cmp r0, 0 bne _0808AFA2 cmp r4, 0x30 bne _0808AFA2 cmp r5, 0x19 bne _0808AFA2 movs r0, 0 bl sub_808B1CC movs r0, 0x1D bl sub_8098100 lsls r0, 24 cmp r0, 0 bne _0808AFA2 add r4, sp, 0x4 adds r0, r4, 0 movs r1, 0x78 movs r2, 0 bl sub_8090A8C bl sub_8083600 adds r1, r6, 0 adds r2, r4, 0 bl sub_80464C8 movs r0, 0x72 bl sub_8083E88 ldr r0, _0808AFAC bl sub_8052910 _0808AFA2: add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0808AFAC: .4byte gUnknown_81051D0 thumb_func_end sub_808AF3C thumb_func_start sub_808AFB0 sub_808AFB0: push {r4,lr} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 bl sub_8085480 adds r1, r0, 0 mov r0, sp movs r2, 0 bl sub_8052D44 movs r0, 0x22 bl sub_8098100 lsls r0, 24 cmp r0, 0 bne _0808B01E cmp r4, 0x2E bne _0808B01E movs r0, 0x1D bl sub_8098100 lsls r0, 24 cmp r0, 0 bne _0808B01E movs r0, 0x79 bl sub_80860A8 lsls r0, 24 cmp r0, 0 beq _0808B01E movs r0, 0x1D bl sub_8097FD0 ldr r4, _0808B028 bl sub_8083600 adds r1, r0, 0 adds r0, r4, 0 movs r2, 0 bl sub_8045B94 ldr r0, _0808B02C bl sub_8052910 movs r0, 0 movs r1, 0xD4 bl sub_80421C0 movs r0, 0xA movs r1, 0x46 bl sub_803E708 bl sub_8046D20 _0808B01E: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0808B028: .4byte gUnknown_202DF98 _0808B02C: .4byte gUnknown_81050B4 thumb_func_end sub_808AFB0 thumb_func_start sub_808B030 sub_808B030: push {r4,lr} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 bl sub_8085480 adds r1, r0, 0 mov r0, sp movs r2, 0 bl sub_8052D44 movs r0, 0x22 bl sub_8098100 lsls r0, 24 cmp r0, 0 bne _0808B09E cmp r4, 0x2F bne _0808B09E movs r0, 0x1D bl sub_8098100 lsls r0, 24 cmp r0, 0 bne _0808B09E movs r0, 0x77 bl sub_80860A8 lsls r0, 24 cmp r0, 0 beq _0808B09E movs r0, 0x1D bl sub_8097FD0 ldr r4, _0808B0A8 bl sub_8083600 adds r1, r0, 0 adds r0, r4, 0 movs r2, 0 bl sub_8045B94 ldr r0, _0808B0AC bl sub_8052910 movs r0, 0 movs r1, 0xD4 bl sub_80421C0 movs r0, 0xA movs r1, 0x46 bl sub_803E708 bl sub_8046D20 _0808B09E: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0808B0A8: .4byte gUnknown_202DF98 _0808B0AC: .4byte gUnknown_810517C thumb_func_end sub_808B030 thumb_func_start sub_808B0B0 sub_808B0B0: push {r4,lr} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 bl sub_8085480 adds r1, r0, 0 mov r0, sp movs r2, 0 bl sub_8052D44 movs r0, 0x22 bl sub_8098100 lsls r0, 24 cmp r0, 0 bne _0808B11E cmp r4, 0x30 bne _0808B11E movs r0, 0x1D bl sub_8098100 lsls r0, 24 cmp r0, 0 bne _0808B11E movs r0, 0x78 bl sub_80860A8 lsls r0, 24 cmp r0, 0 beq _0808B11E movs r0, 0x1D bl sub_8097FD0 ldr r4, _0808B128 bl sub_8083600 adds r1, r0, 0 adds r0, r4, 0 movs r2, 0 bl sub_8045B94 ldr r0, _0808B12C bl sub_8052910 movs r0, 0 movs r1, 0xD4 bl sub_80421C0 movs r0, 0xA movs r1, 0x46 bl sub_803E708 bl sub_8046D20 _0808B11E: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0808B128: .4byte gUnknown_202DF98 _0808B12C: .4byte gUnknown_8105244 thumb_func_end sub_808B0B0 thumb_func_start sub_808B130 sub_808B130: push {lr} movs r0, 0x22 bl sub_8098100 lsls r0, 24 cmp r0, 0 bne _0808B158 movs r0, 0x4 bl sub_8085930 ldr r0, _0808B15C bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _0808B160 bl sub_808563C _0808B158: pop {r0} bx r0 .align 2, 0 _0808B15C: .4byte gUnknown_8104FD4 _0808B160: .4byte sub_808B2C4 thumb_func_end sub_808B130 thumb_func_start sub_808B164 sub_808B164: push {lr} movs r0, 0x22 bl sub_8098100 lsls r0, 24 cmp r0, 0 bne _0808B18C movs r0, 0x4 bl sub_8085930 ldr r0, _0808B190 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _0808B194 bl sub_808563C _0808B18C: pop {r0} bx r0 .align 2, 0 _0808B190: .4byte gUnknown_8105028 _0808B194: .4byte sub_808B2D4 thumb_func_end sub_808B164 thumb_func_start sub_808B198 sub_808B198: push {lr} movs r0, 0x22 bl sub_8098100 lsls r0, 24 cmp r0, 0 bne _0808B1C0 movs r0, 0x4 bl sub_8085930 ldr r0, _0808B1C4 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _0808B1C8 bl sub_808563C _0808B1C0: pop {r0} bx r0 .align 2, 0 _0808B1C4: .4byte gUnknown_8105034 _0808B1C8: .4byte sub_808B2E4 thumb_func_end sub_808B198 thumb_func_start sub_808B1CC sub_808B1CC: push {r4-r7,lr} sub sp, 0x8 lsls r0, 24 lsrs r6, r0, 24 ldr r7, _0808B21C ldr r2, [r7] ldr r1, _0808B220 adds r0, r2, r1 ldrh r0, [r0] ldr r5, _0808B224 ldr r1, [sp] ands r1, r5 orrs r1, r0 str r1, [sp] ldr r3, _0808B228 adds r2, r3 ldrh r0, [r2] lsls r0, 16 ldr r4, _0808B22C adds r2, r4, 0 ands r2, r1 orrs r2, r0 str r2, [sp] mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 blt _0808B208 cmp r2, 0 bge _0808B244 _0808B208: bl sub_8083600 adds r2, r0, 0 cmp r2, 0 bne _0808B230 ldr r1, [r7] movs r0, 0x1 strb r0, [r1, 0x2] b _0808B2A8 .align 2, 0 _0808B21C: .4byte gUnknown_203B418 _0808B220: .4byte 0x00000684 _0808B224: .4byte 0xffff0000 _0808B228: .4byte 0x00000686 _0808B22C: .4byte 0x0000ffff _0808B230: ldrh r0, [r2, 0x4] ldr r1, [sp] ands r1, r5 orrs r1, r0 str r1, [sp] ldrh r0, [r2, 0x6] lsls r0, 16 ands r1, r4 orrs r1, r0 str r1, [sp] _0808B244: mov r5, sp mov r0, sp movs r1, 0 bl sub_807FE04 mov r0, sp movs r2, 0 ldrsh r0, [r0, r2] movs r3, 0x2 ldrsh r1, [r5, r3] bl sub_8049590 ldrh r2, [r0] movs r3, 0x80 lsls r3, 2 adds r1, r3, 0 orrs r1, r2 strh r1, [r0] cmp r6, 0 beq _0808B2A0 adds r0, r6, 0 bl sub_80860A8 lsls r0, 24 cmp r0, 0 bne _0808B2A0 movs r0, 0x7A bl sub_80860A8 lsls r0, 24 cmp r0, 0 bne _0808B2A0 add r4, sp, 0x4 adds r0, r4, 0 adds r1, r6, 0 movs r2, 0 bl sub_8090A8C ldrh r0, [r5, 0x2] subs r0, 0x1 strh r0, [r5, 0x2] mov r0, sp adds r1, r4, 0 movs r2, 0x1 bl sub_80460F8 _0808B2A0: bl sub_8049ED4 bl sub_8040A84 _0808B2A8: add sp, 0x8 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_808B1CC thumb_func_start sub_808B2B0 sub_808B2B0: push {lr} ldr r1, [r0, 0x70] adds r1, 0x46 movs r2, 0x4 strb r2, [r1] movs r1, 0x4 bl sub_806CE68 pop {r0} bx r0 thumb_func_end sub_808B2B0 thumb_func_start sub_808B2C4 sub_808B2C4: push {lr} movs r1, 0xE1 lsls r1, 1 movs r2, 0xB bl sub_8086A70 pop {r0} bx r0 thumb_func_end sub_808B2C4 thumb_func_start sub_808B2D4 sub_808B2D4: push {lr} movs r1, 0xE1 lsls r1, 1 movs r2, 0xB bl sub_8086A70 pop {r0} bx r0 thumb_func_end sub_808B2D4 thumb_func_start sub_808B2E4 sub_808B2E4: push {lr} movs r1, 0xE1 lsls r1, 1 movs r2, 0xB bl sub_8086A70 pop {r0} bx r0 thumb_func_end sub_808B2E4 thumb_func_start sub_808B2F4 sub_808B2F4: push {r4-r6,lr} bl sub_8085480 adds r6, r0, 0 movs r0, 0x1A bl sub_8085680 adds r5, r0, 0 movs r0, 0x79 bl sub_8083E88 bl sub_808BCE4 bl sub_8049ED4 bl sub_80854D4 movs r0, 0x4 bl sub_8085930 ldr r4, _0808B350 adds r0, r4, 0 bl sub_80855E4 adds r0, r5, 0 movs r1, 0 bl sub_8085918 adds r0, r5, 0 bl _call_via_r4 movs r1, 0x4 ldrsh r0, [r6, r1] movs r2, 0x6 ldrsh r1, [r6, r2] subs r1, 0x3 bl sub_8085860 ldr r0, _0808B354 ldr r1, _0808B358 bl sub_808D8BC pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0808B350: .4byte sub_8086A3C _0808B354: .4byte gUnknown_202E038 _0808B358: .4byte 0x0000019d thumb_func_end sub_808B2F4 thumb_func_start sub_808B35C sub_808B35C: push {r4-r6,lr} bl sub_8085480 adds r6, r0, 0 movs r0, 0x1A bl sub_8085680 adds r4, r0, 0 movs r0, 0x79 bl sub_8083E88 bl sub_80854D4 movs r0, 0x4 bl sub_8085930 ldr r5, _0808B3A0 adds r0, r5, 0 bl sub_80855E4 ldr r0, _0808B3A4 bl sub_808E734 lsls r0, 24 cmp r0, 0 beq _0808B3A8 movs r1, 0x87 lsls r1, 2 adds r0, r4, 0 movs r2, 0 bl sub_8068FE0 b _0808B3BE .align 2, 0 _0808B3A0: .4byte sub_8086A3C _0808B3A4: .4byte 0x0000019d _0808B3A8: adds r0, r4, 0 movs r1, 0 bl sub_8085918 adds r0, r4, 0 bl _call_via_r5 bl sub_808BCE4 bl sub_8049ED4 _0808B3BE: movs r1, 0x4 ldrsh r0, [r6, r1] movs r2, 0x6 ldrsh r1, [r6, r2] subs r1, 0x3 bl sub_8085860 ldr r0, _0808B3DC ldr r1, _0808B3E0 bl sub_808D8BC pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0808B3DC: .4byte gUnknown_202E038 _0808B3E0: .4byte 0x0000019d thumb_func_end sub_808B35C thumb_func_start sub_808B3E4 sub_808B3E4: push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsls r2, 24 lsrs r4, r2, 24 movs r2, 0xCF lsls r2, 24 adds r1, r2 lsrs r1, 24 cmp r1, 0x1 bhi _0808B44E cmp r0, 0x1A bne _0808B44E movs r0, 0x1E bl sub_8097FA8 cmp r4, 0 beq _0808B418 ldr r0, _0808B414 ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0x2] b _0808B44E .align 2, 0 _0808B414: .4byte gUnknown_203B418 _0808B418: ldr r0, _0808B434 ldr r0, [r0] ldr r1, _0808B438 adds r0, r1 ldrb r4, [r0] movs r0, 0x36 bl sub_80860A8 lsls r0, 24 cmp r0, 0 beq _0808B43C bl sub_808B5B8 b _0808B440 .align 2, 0 _0808B434: .4byte gUnknown_203B418 _0808B438: .4byte 0x0001356c _0808B43C: bl sub_808B50C _0808B440: ldr r0, _0808B454 ldr r0, [r0] ldr r2, _0808B458 adds r0, r2 strb r4, [r0] bl sub_8040A84 _0808B44E: pop {r4} pop {r0} bx r0 .align 2, 0 _0808B454: .4byte gUnknown_203B418 _0808B458: .4byte 0x0001356c thumb_func_end sub_808B3E4 thumb_func_start sub_808B45C sub_808B45C: push {r4,r5,lr} bl sub_8085480 adds r4, r0, 0 movs r0, 0x1A bl sub_8085680 adds r5, r0, 0 bl sub_8086448 movs r0, 0x40 movs r1, 0x46 bl sub_803E708 ldr r0, _0808B4F8 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 adds r0, r4, 0 bl sub_808696C movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _0808B4FC bl sub_8052910 movs r0, 0x37 adds r1, r5, 0 movs r2, 0x1 bl sub_80861F8 ldr r0, _0808B500 bl sub_80855E4 movs r0, 0x3C movs r1, 0x46 bl sub_803E708 adds r0, r5, 0 bl sub_808BBB8 movs r0, 0x5A movs r1, 0x46 bl sub_803E708 ldr r0, _0808B504 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _0808B508 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r1, 0xAF lsls r1, 1 adds r0, r5, 0 movs r2, 0x20 bl sub_8086A70 adds r4, 0xC adds r0, r4, 0 movs r1, 0x10 bl sub_80858AC pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0808B4F8: .4byte gUnknown_8105438 _0808B4FC: .4byte gUnknown_81054A0 _0808B500: .4byte sub_80862BC _0808B504: .4byte gUnknown_81054E4 _0808B508: .4byte gUnknown_810550C thumb_func_end sub_808B45C thumb_func_start sub_808B50C sub_808B50C: push {r4,r5,lr} movs r0, 0x1A bl sub_8085680 adds r5, r0, 0 ldr r0, _0808B59C ldr r1, _0808B5A0 bl sub_808D8BC ldr r4, _0808B5A4 adds r0, r4, 0 bl sub_80855E4 adds r0, r5, 0 bl _call_via_r4 movs r0, 0 bl sub_8041888 ldr r0, [r5, 0x70] movs r1, 0xAE lsls r1, 1 adds r0, r1 movs r1, 0 movs r4, 0x1 strb r4, [r0] ldr r0, [r5, 0x70] movs r2, 0xAF lsls r2, 1 adds r0, r2 strb r1, [r0] adds r0, r5, 0 movs r1, 0xE movs r2, 0 bl sub_80861B8 movs r0, 0x1E bl sub_8083ED8 movs r0, 0x1E movs r1, 0x46 bl sub_803E708 ldr r0, _0808B5A8 bl sub_8052910 movs r0, 0x79 bl sub_8083E88 ldr r0, _0808B5AC bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 adds r0, r5, 0 bl sub_808BC20 ldr r0, _0808B5B0 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _0808B5B4 ldr r0, [r0] strb r4, [r0, 0x2] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0808B59C: .4byte gUnknown_202E038 _0808B5A0: .4byte 0x0000019d _0808B5A4: .4byte sub_808BBA8 _0808B5A8: .4byte gUnknown_810554C _0808B5AC: .4byte gUnknown_8105558 _0808B5B0: .4byte gUnknown_81055F4 _0808B5B4: .4byte gUnknown_203B418 thumb_func_end sub_808B50C thumb_func_start sub_808B5B8 sub_808B5B8: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x78 movs r0, 0x1A bl sub_8085680 adds r6, r0, 0 ldr r0, _0808B82C ldr r1, _0808B830 bl sub_808D8BC ldr r4, _0808B834 adds r0, r4, 0 bl sub_80855E4 adds r0, r6, 0 bl _call_via_r4 movs r0, 0 bl sub_8041888 ldr r0, [r6, 0x70] movs r1, 0xAE lsls r1, 1 adds r0, r1 movs r1, 0 movs r4, 0x1 strb r4, [r0] ldr r0, [r6, 0x70] movs r2, 0xAF lsls r2, 1 adds r0, r2 strb r1, [r0] adds r0, r6, 0 movs r1, 0xE movs r2, 0 bl sub_80861B8 ldr r0, _0808B838 bl sub_80855E4 ldr r0, _0808B83C ldr r0, [r0] ldr r1, _0808B840 adds r0, r1 strb r4, [r0] movs r0, 0x1E bl sub_8083ED8 movs r0, 0x1E movs r1, 0x46 bl sub_803E708 ldr r0, _0808B844 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _0808B848 bl sub_8083E38 movs r0, 0x96 movs r1, 0x46 bl sub_803E708 adds r0, r6, 0 bl sub_80862BC ldr r0, _0808B84C bl sub_8052910 movs r0, 0x79 bl sub_8083E88 movs r0, 0xA movs r1, 0x46 bl sub_803E708 adds r0, r6, 0 movs r1, 0 bl sub_80856E0 movs r0, 0xB5 lsls r0, 1 bl sub_8083E38 ldr r0, _0808B850 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 adds r0, r6, 0 bl sub_808696C ldr r0, _0808B854 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 _0808B690: ldr r4, _0808B858 _0808B692: movs r0, 0 ldr r1, [r4] ldr r2, _0808B85C ldr r3, _0808B860 bl sub_8052C68 mov r9, r0 cmp r0, 0 ble _0808B692 movs r0, 0xA movs r1, 0x46 bl sub_803E708 mov r2, r9 cmp r2, 0x1 bne _0808B754 ldr r0, _0808B864 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 adds r0, r6, 0 bl sub_808BC70 movs r0, 0 add r7, sp, 0x6C _0808B6CA: adds r0, 0x1 mov r8, r0 mov r4, sp movs r5, 0x8 _0808B6D2: adds r0, r4, 0 movs r1, 0x69 movs r2, 0 bl sub_8045C28 adds r4, 0x4 subs r5, 0x1 cmp r5, 0 bge _0808B6D2 movs r0, 0x3 bl sub_8084100 ldrh r1, [r6, 0x4] adds r1, r0 subs r1, 0x1 lsls r1, 16 lsrs r1, 16 ldr r2, _0808B868 ldr r0, [sp, 0x6C] ands r0, r2 orrs r0, r1 str r0, [sp, 0x6C] movs r0, 0x3 bl sub_8084100 ldrh r2, [r6, 0x6] adds r2, r0 subs r2, 0x1 lsls r2, 16 ldr r0, _0808B86C ldr r1, [sp, 0x6C] ands r1, r0 orrs r1, r2 str r1, [sp, 0x6C] movs r2, 0 ldrsh r0, [r7, r2] asrs r1, 16 bl sub_8049590 ldrh r1, [r0] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _0808B744 movs r0, 0xA6 lsls r0, 1 bl sub_8083E38 adds r0, r7, 0 bl sub_808BB3C adds r0, r6, 0 adds r1, r7, 0 mov r2, sp movs r3, 0x9 bl sub_8046860 _0808B744: mov r0, r8 cmp r0, 0x5 ble _0808B6CA ldr r0, [r6, 0x70] ldr r2, _0808B870 adds r1, r0, r2 movs r0, 0 strb r0, [r1] _0808B754: mov r0, r9 cmp r0, 0x2 bne _0808B80A ldr r0, _0808B874 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 adds r0, r6, 0 bl sub_808BC70 movs r0, 0 add r1, sp, 0x24 mov r8, r1 add r7, sp, 0x70 _0808B776: adds r0, 0x1 mov r10, r0 mov r4, r8 movs r5, 0x8 _0808B77E: movs r0, 0 bl sub_803D73C adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 movs r2, 0 bl sub_8045C28 adds r4, 0x4 subs r5, 0x1 cmp r5, 0 bge _0808B77E movs r0, 0x3 bl sub_8084100 ldrh r1, [r6, 0x4] adds r1, r0 subs r1, 0x1 lsls r1, 16 lsrs r1, 16 ldr r2, _0808B868 ldr r0, [sp, 0x70] ands r0, r2 orrs r0, r1 str r0, [sp, 0x70] movs r0, 0x3 bl sub_8084100 ldrh r2, [r6, 0x6] adds r2, r0 subs r2, 0x1 lsls r2, 16 ldr r0, _0808B86C ldr r1, [sp, 0x70] ands r1, r0 orrs r1, r2 str r1, [sp, 0x70] movs r2, 0 ldrsh r0, [r7, r2] asrs r1, 16 bl sub_8049590 ldrh r1, [r0] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _0808B7FA movs r0, 0xC8 lsls r0, 1 bl sub_8083E38 adds r0, r7, 0 bl sub_808BB3C adds r0, r6, 0 adds r1, r7, 0 mov r2, r8 movs r3, 0x9 bl sub_8046860 _0808B7FA: mov r0, r10 cmp r0, 0x5 ble _0808B776 ldr r0, [r6, 0x70] ldr r2, _0808B870 adds r1, r0, r2 movs r0, 0 strb r0, [r1] _0808B80A: mov r0, r9 cmp r0, 0x3 bne _0808B8CA bl sub_808BD94 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3A bne _0808B87C ldr r0, _0808B878 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 b _0808B690 .align 2, 0 _0808B82C: .4byte gUnknown_202E038 _0808B830: .4byte 0x0000019d _0808B834: .4byte sub_808BBA8 _0808B838: .4byte sub_80861A8 _0808B83C: .4byte gUnknown_203B418 _0808B840: .4byte 0x0001356c _0808B844: .4byte gUnknown_8105668 _0808B848: .4byte 0x000001a7 _0808B84C: .4byte gUnknown_8105674 _0808B850: .4byte gUnknown_81056B8 _0808B854: .4byte gUnknown_81056DC _0808B858: .4byte gUnknown_8105798 _0808B85C: .4byte gUnknown_810579C _0808B860: .4byte 0x00000705 _0808B864: .4byte gUnknown_810581C _0808B868: .4byte 0xffff0000 _0808B86C: .4byte 0x0000ffff _0808B870: .4byte 0x0000015d _0808B874: .4byte gUnknown_8105974 _0808B878: .4byte gUnknown_8105A08 _0808B87C: ldr r0, _0808BA30 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 adds r0, r6, 0 bl sub_808BC70 ldr r0, [r6, 0x70] ldr r2, _0808BA34 adds r1, r0, r2 movs r0, 0 strb r0, [r1] ldr r0, _0808BA38 bl sub_8052910 adds r0, r4, 0 bl sub_80925EC movs r0, 0xD4 bl sub_8083E38 bl sub_8083600 adds r1, r0, 0 ldr r0, _0808BA3C movs r2, 0 bl sub_8045B94 ldr r0, _0808BA40 adds r1, r4, 0 movs r2, 0 bl sub_8092578 ldr r0, _0808BA44 bl sub_8052910 _0808B8CA: mov r0, r9 cmp r0, 0x4 bne _0808B98E ldr r0, _0808BA48 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 adds r0, r6, 0 bl sub_808BC70 movs r0, 0 add r1, sp, 0x48 mov r8, r1 add r7, sp, 0x74 _0808B8EC: adds r0, 0x1 mov r10, r0 mov r4, r8 movs r5, 0x3 _0808B8F4: movs r0, 0x8 bl sub_8084100 ldr r2, _0808BA4C adds r0, r2 ldrb r1, [r0] adds r0, r4, 0 movs r2, 0 bl sub_8045C28 adds r4, 0x4 subs r5, 0x1 cmp r5, 0 bge _0808B8F4 movs r0, 0x3 bl sub_8084100 ldrh r1, [r6, 0x4] adds r1, r0 subs r1, 0x1 lsls r1, 16 lsrs r1, 16 ldr r2, _0808BA50 ldr r0, [sp, 0x74] ands r0, r2 orrs r0, r1 str r0, [sp, 0x74] movs r0, 0x3 bl sub_8084100 ldrh r2, [r6, 0x6] adds r2, r0 subs r2, 0x1 lsls r2, 16 ldr r0, _0808BA54 ldr r1, [sp, 0x74] ands r1, r0 orrs r1, r2 str r1, [sp, 0x74] movs r2, 0 ldrsh r0, [r7, r2] asrs r1, 16 bl sub_8049590 ldrh r1, [r0] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _0808B970 movs r0, 0xC8 lsls r0, 1 bl sub_8083E38 adds r0, r7, 0 bl sub_808BB3C adds r0, r6, 0 adds r1, r7, 0 mov r2, r8 movs r3, 0x4 bl sub_8046860 _0808B970: mov r0, r10 cmp r0, 0x4 ble _0808B8EC ldr r0, [r6, 0x70] ldr r2, _0808BA34 adds r1, r0, r2 movs r0, 0 strb r0, [r1] ldr r0, _0808BA58 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 _0808B98E: mov r0, r9 cmp r0, 0x5 bne _0808B9F8 ldr r0, _0808BA5C bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 adds r0, r6, 0 bl sub_808BC70 ldr r0, [r6, 0x70] ldr r2, _0808BA34 adds r1, r0, r2 movs r0, 0 strb r0, [r1] ldr r0, _0808BA60 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 bl sub_8083600 adds r1, r0, 0 adds r1, 0x4 adds r0, r6, 0x4 bl sub_80983D8 adds r1, r0, 0 adds r0, r6, 0 bl sub_8085918 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _0808BA64 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _0808BA68 ldr r0, [r0] ldr r1, _0808BA6C adds r0, r1 movs r1, 0x1 strb r1, [r0] _0808B9F8: ldr r0, _0808BA70 bl sub_8052910 adds r0, r6, 0 bl sub_808BC20 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _0808BA74 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 bl sub_808BD38 add sp, 0x78 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0808BA30: .4byte gUnknown_8105AD4 _0808BA34: .4byte 0x0000015d _0808BA38: .4byte gUnknown_8105B20 _0808BA3C: .4byte gUnknown_202DF98 _0808BA40: .4byte gUnknown_202DE58 _0808BA44: .4byte gUnknown_8105B68 _0808BA48: .4byte gUnknown_8105BA8 _0808BA4C: .4byte gUnknown_81074FC _0808BA50: .4byte 0xffff0000 _0808BA54: .4byte 0x0000ffff _0808BA58: .4byte gUnknown_8105BF4 _0808BA5C: .4byte gUnknown_8105D2C _0808BA60: .4byte gUnknown_8105D80 _0808BA64: .4byte gUnknown_8105D9C _0808BA68: .4byte gUnknown_203B418 _0808BA6C: .4byte 0x00000674 _0808BA70: .4byte gUnknown_81058E0 _0808BA74: .4byte gUnknown_810593C thumb_func_end sub_808B5B8 thumb_func_start sub_808BA78 sub_808BA78: push {lr} ldr r0, _0808BA94 bl sub_808E734 lsls r0, 24 cmp r0, 0 beq _0808BA9C bl sub_8086448 ldr r0, _0808BA98 bl sub_80866C4 b _0808BAA0 .align 2, 0 _0808BA94: .4byte 0x0000019d _0808BA98: .4byte gUnknown_8105E14 _0808BA9C: bl sub_808B45C _0808BAA0: pop {r0} bx r0 thumb_func_end sub_808BA78 thumb_func_start sub_808BAA4 sub_808BAA4: push {r4,r5,lr} sub sp, 0x4 ldr r0, _0808BB34 bl sub_8083E38 ldr r1, _0808BB38 movs r0, 0x1F str r0, [r1] movs r4, 0xFA movs r5, 0x1 _0808BAB8: str r5, [sp] adds r0, r4, 0 adds r1, r4, 0 adds r2, r4, 0 movs r3, 0x1 bl sub_8085C54 movs r0, 0x46 bl sub_803E46C subs r4, 0xA cmp r4, 0x95 bgt _0808BAB8 movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r4, 0xFA movs r5, 0x1 _0808BADE: str r5, [sp] adds r0, r4, 0 adds r1, r4, 0 adds r2, r4, 0 movs r3, 0x1 bl sub_8085C54 movs r0, 0x46 bl sub_803E46C subs r4, 0xA cmp r4, 0xC7 bgt _0808BADE movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r4, 0xFA movs r5, 0x1 _0808BB04: str r5, [sp] adds r0, r4, 0 adds r1, r4, 0 adds r2, r4, 0 movs r3, 0x1 bl sub_8085C54 movs r0, 0x46 bl sub_803E46C subs r4, 0xA cmp r4, 0 bge _0808BB04 movs r0, 0xA movs r1, 0x46 bl sub_803E708 bl sub_8085EB0 add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0808BB34: .4byte 0x000002c1 _0808BB38: .4byte gUnknown_202EDC8 thumb_func_end sub_808BAA4 thumb_func_start sub_808BB3C sub_808BB3C: push {lr} sub sp, 0x8 adds r3, r0, 0 movs r0, 0 ldrsh r1, [r3, r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 11 movs r1, 0xC0 lsls r1, 4 adds r0, r1 cmp r0, 0 bge _0808BB58 adds r0, 0xFF _0808BB58: lsls r0, 8 lsrs r0, 16 ldr r1, _0808BBA0 ldr r2, [sp, 0x4] ands r2, r1 orrs r2, r0 str r2, [sp, 0x4] movs r0, 0x2 ldrsh r1, [r3, r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 11 movs r1, 0x80 lsls r1, 5 adds r0, r1 cmp r0, 0 bge _0808BB7C adds r0, 0xFF _0808BB7C: lsls r0, 8 lsrs r0, 16 lsls r0, 16 ldr r1, _0808BBA4 ands r2, r1 orrs r2, r0 str r2, [sp, 0x4] movs r0, 0 str r0, [sp] movs r0, 0x64 movs r1, 0 movs r2, 0 add r3, sp, 0x4 bl sub_8085EC8 add sp, 0x8 pop {r0} bx r0 .align 2, 0 _0808BBA0: .4byte 0xffff0000 _0808BBA4: .4byte 0x0000ffff thumb_func_end sub_808BB3C thumb_func_start sub_808BBA8 sub_808BBA8: push {lr} ldr r0, [r0, 0x70] movs r1, 0 bl sub_806BFC0 pop {r0} bx r0 thumb_func_end sub_808BBA8 thumb_func_start sub_808BBB8 sub_808BBB8: push {r4-r7,lr} adds r5, r0, 0 movs r0, 0x1B adds r1, r5, 0 movs r2, 0 bl sub_80861F8 adds r0, r5, 0 bl sub_8086A54 adds r0, r5, 0 movs r1, 0xE movs r2, 0 bl sub_80861B8 movs r4, 0xA0 lsls r4, 8 movs r6, 0x80 lsls r6, 2 movs r0, 0xFC lsls r0, 1 bl sub_8083E38 ldr r7, _0808BBEC b _0808BC00 .align 2, 0 _0808BBEC: .4byte 0x000017ff _0808BBF0: ldr r0, [r5, 0x70] movs r1, 0xBA lsls r1, 1 adds r0, r1 str r4, [r0] movs r0, 0x46 bl sub_803E46C _0808BC00: subs r4, r6 cmp r4, r7 bgt _0808BC0A movs r6, 0x80 lsls r6, 1 _0808BC0A: cmp r4, 0 bge _0808BBF0 ldr r0, [r5, 0x70] movs r1, 0xBA lsls r1, 1 adds r0, r1 movs r1, 0 str r1, [r0] pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_808BBB8 thumb_func_start sub_808BC20 sub_808BC20: push {r4-r6,lr} adds r5, r0, 0 movs r0, 0xA6 lsls r0, 2 bl sub_8083E38 movs r4, 0 movs r6, 0x7 _0808BC30: adds r1, r4, 0 ands r1, r6 adds r0, r5, 0 bl sub_8085918 movs r0, 0x3 movs r1, 0x46 bl sub_803E708 adds r4, 0x1 cmp r4, 0x18 ble _0808BC30 ldr r0, [r5, 0x70] movs r2, 0xAF lsls r2, 1 adds r1, r0, r2 movs r0, 0x1 strb r0, [r1] ldr r0, _0808BC6C bl sub_8083E38 movs r0, 0x63 adds r1, r5, 0 movs r2, 0x1 bl sub_80861F8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0808BC6C: .4byte 0x0000027f thumb_func_end sub_808BC20 thumb_func_start sub_808BC70 sub_808BC70: push {r4,lr} adds r4, r0, 0 ldr r0, [r4, 0x70] ldr r2, _0808BCD4 adds r1, r0, r2 movs r0, 0x1 strb r0, [r1] ldr r0, _0808BCD8 bl sub_8052910 ldr r0, _0808BCDC bl sub_8083E38 movs r0, 0x67 adds r1, r4, 0 movs r2, 0x1 bl sub_80861F8 movs r0, 0xAA lsls r0, 2 bl sub_8083E38 movs r0, 0x68 adds r1, r4, 0 movs r2, 0 bl sub_80861F8 adds r4, r0, 0 ldr r0, _0808BCE0 bl sub_8052910 adds r0, r4, 0 bl sub_800E9A8 lsls r0, 24 cmp r0, 0 beq _0808BCC0 adds r0, r4, 0 bl sub_800DC14 _0808BCC0: movs r0, 0xA movs r1, 0x46 bl sub_803E708 bl sub_808BAA4 pop {r4} pop {r0} bx r0 .align 2, 0 _0808BCD4: .4byte 0x0000015d _0808BCD8: .4byte gUnknown_81058A8 _0808BCDC: .4byte 0x00000375 _0808BCE0: .4byte gUnknown_81058C4 thumb_func_end sub_808BC70 thumb_func_start sub_808BCE4 sub_808BCE4: push {lr} ldr r0, _0808BD24 ldr r1, [r0] ldr r2, _0808BD28 adds r0, r1, r2 movs r2, 0 ldrsh r0, [r0, r2] ldr r2, _0808BD2C adds r1, r2 movs r2, 0 ldrsh r1, [r1, r2] bl sub_8049590 ldrh r2, [r0] ldr r1, _0808BD30 ands r1, r2 movs r2, 0x10 orrs r1, r2 ldr r2, _0808BD34 ands r1, r2 strh r1, [r0] bl sub_8049884 bl sub_8049B8C bl sub_8049ED4 bl sub_8040A84 pop {r0} bx r0 .align 2, 0 _0808BD24: .4byte gUnknown_203B418 _0808BD28: .4byte 0x0000e23c _0808BD2C: .4byte 0x0000e23e _0808BD30: .4byte 0x0000fffc _0808BD34: .4byte 0x0000fdff thumb_func_end sub_808BCE4 thumb_func_start sub_808BD38 sub_808BD38: push {r4,lr} ldr r0, _0808BD84 ldr r1, [r0] ldr r2, _0808BD88 adds r0, r1, r2 movs r4, 0 ldrsh r0, [r0, r4] adds r2, 0x2 adds r1, r2 movs r4, 0 ldrsh r1, [r1, r4] bl sub_8049590 ldrh r2, [r0] ldr r1, _0808BD8C ands r1, r2 movs r3, 0x1 orrs r1, r3 ldr r2, _0808BD90 ands r1, r2 movs r4, 0x80 lsls r4, 2 adds r2, r4, 0 orrs r1, r2 strh r1, [r0] strb r3, [r0, 0x8] bl sub_8049884 bl sub_8049B8C bl sub_8049ED4 bl sub_8040A84 pop {r4} pop {r0} bx r0 .align 2, 0 _0808BD84: .4byte gUnknown_203B418 _0808BD88: .4byte 0x0000e23c _0808BD8C: .4byte 0x0000fffc _0808BD90: .4byte 0x0000ffef thumb_func_end sub_808BD38 thumb_func_start sub_808BD94 sub_808BD94: push {r4,r5,lr} sub sp, 0x3C movs r5, 0 movs r4, 0x1 _0808BD9C: lsls r0, r4, 24 lsrs r0, 24 bl sub_8092534 lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 beq _0808BDC4 cmp r0, 0x2 beq _0808BDC4 ldr r0, _0808BDDC ldr r0, [r0] adds r0, r4 ldrb r0, [r0] cmp r0, 0 bne _0808BDC4 mov r1, sp adds r0, r1, r5 strb r4, [r0] adds r5, 0x1 _0808BDC4: adds r4, 0x1 cmp r4, 0x39 ble _0808BD9C cmp r5, 0 beq _0808BDE0 adds r0, r5, 0 bl sub_8084100 add r0, sp ldrb r0, [r0] b _0808BDE2 .align 2, 0 _0808BDDC: .4byte gUnknown_203B468 _0808BDE0: movs r0, 0x3A _0808BDE2: add sp, 0x3C pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_808BD94 thumb_func_start sub_808BDEC sub_808BDEC: push {r4,r5,lr} bl sub_8085480 adds r5, r0, 0 movs r0, 0x1B bl sub_8085680 adds r4, r0, 0 bl sub_8083F14 bl sub_80854D4 movs r0, 0x4 bl sub_8085930 ldr r0, _0808BE34 bl sub_80855E4 movs r0, 0x89 lsls r0, 1 bl sub_808E734 lsls r0, 24 cmp r0, 0 beq _0808BE38 movs r0, 0x23 bl sub_8083E88 movs r1, 0x87 lsls r1, 2 adds r0, r4, 0 movs r2, 0 bl sub_8068FE0 b _0808BE48 .align 2, 0 _0808BE34: .4byte sub_8086A3C _0808BE38: ldr r0, _0808BE68 ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0x7] adds r0, r4, 0 movs r1, 0 bl sub_8085918 _0808BE48: movs r1, 0x4 ldrsh r0, [r5, r1] movs r2, 0x6 ldrsh r1, [r5, r2] subs r1, 0x3 bl sub_8085860 ldr r0, _0808BE6C movs r1, 0x89 lsls r1, 1 bl sub_808D8BC pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0808BE68: .4byte gUnknown_203B418 _0808BE6C: .4byte gUnknown_202E038 thumb_func_end sub_808BDEC thumb_func_start sub_808BE70 sub_808BE70: push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 cmp r1, 0x33 bne _0808BE8A cmp r0, 0x1B bne _0808BE8A ldr r0, _0808BE90 ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0x2] _0808BE8A: pop {r0} bx r0 .align 2, 0 _0808BE90: .4byte gUnknown_203B418 thumb_func_end sub_808BE70 thumb_func_start sub_808BE94 sub_808BE94: push {r4-r6,lr} sub sp, 0x4 bl sub_8085480 adds r6, r0, 0 movs r0, 0x1B bl sub_8085680 adds r4, r0, 0 movs r0, 0x89 lsls r0, 1 bl sub_808E734 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 beq _0808BEC8 bl sub_8086448 ldr r0, _0808BEC4 bl sub_80866C4 b _0808BF7C .align 2, 0 _0808BEC4: .4byte gUnknown_8106068 _0808BEC8: bl sub_8083F14 bl sub_8086448 ldr r0, _0808BF84 bl sub_8052910 movs r0, 0x23 movs r1, 0x3C bl sub_8083EA8 bl sub_808C0CC ldr r0, _0808BF88 bl sub_8052910 bl sub_808BFA0 ldr r0, _0808BF8C bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _0808BF90 bl sub_8052910 movs r0, 0xFC lsls r0, 1 bl sub_8083E38 adds r0, r4, 0 movs r1, 0xD movs r2, 0 bl sub_80861D4 movs r0, 0x2B movs r1, 0x46 bl sub_803E708 adds r0, r4, 0 movs r1, 0 movs r2, 0 bl sub_80861B8 ldr r0, _0808BF94 bl sub_8052910 bl sub_808BFA0 ldr r0, _0808BF98 bl sub_8052910 bl sub_808C02C movs r2, 0xFA negs r2, r2 str r5, [sp] adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x1 bl sub_8085C54 bl sub_8083F14 adds r0, r4, 0 movs r1, 0x7 movs r2, 0 bl sub_80861D4 ldr r0, _0808BF9C bl sub_8052910 bl sub_808BFA0 movs r1, 0xC8 lsls r1, 2 adds r0, r4, 0 movs r2, 0x20 bl sub_8086A70 movs r0, 0x23 bl sub_8083E88 adds r0, r6, 0 adds r0, 0xC movs r1, 0x10 bl sub_80858AC _0808BF7C: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0808BF84: .4byte gUnknown_8105E88 _0808BF88: .4byte gUnknown_8105EF8 _0808BF8C: .4byte gUnknown_8105F38 _0808BF90: .4byte gUnknown_8105F74 _0808BF94: .4byte gUnknown_8105FA0 _0808BF98: .4byte gUnknown_8105FD8 _0808BF9C: .4byte gUnknown_8106024 thumb_func_end sub_808BE94 thumb_func_start sub_808BFA0 sub_808BFA0: push {r4,r5,lr} sub sp, 0x4 movs r0, 0xFB lsls r0, 1 bl sub_8083E38 movs r4, 0xFA movs r5, 0x1 _0808BFB0: str r5, [sp] movs r0, 0 movs r1, 0 adds r2, r4, 0 movs r3, 0x1 bl sub_8085C54 movs r0, 0x46 bl sub_803E46C subs r4, 0xA cmp r4, 0x95 bgt _0808BFB0 movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r4, 0xFA movs r5, 0x1 _0808BFD6: str r5, [sp] movs r0, 0 adds r1, r4, 0 adds r2, r4, 0 movs r3, 0x1 bl sub_8085C54 movs r0, 0x46 bl sub_803E46C subs r4, 0xA cmp r4, 0xC7 bgt _0808BFD6 movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r4, 0xFA movs r5, 0x1 _0808BFFC: str r5, [sp] movs r0, 0 movs r1, 0 adds r2, r4, 0 movs r3, 0x1 bl sub_8085C54 movs r0, 0x46 bl sub_803E46C subs r4, 0xA cmp r4, 0 bge _0808BFFC movs r0, 0xA movs r1, 0x46 bl sub_803E708 bl sub_8085EB0 add sp, 0x4 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_808BFA0 thumb_func_start sub_808C02C sub_808C02C: push {r4,r5,lr} sub sp, 0x4 movs r0, 0xFB lsls r0, 1 bl sub_8083E38 movs r4, 0 movs r5, 0 _0808C03C: str r5, [sp] adds r0, r4, 0 adds r1, r4, 0 adds r2, r4, 0 movs r3, 0x1 bl sub_8085C54 movs r0, 0x46 bl sub_803E46C adds r4, 0x64 cmp r4, 0xC7 ble _0808C03C movs r4, 0xC8 movs r5, 0 _0808C05A: str r5, [sp] adds r0, r4, 0 adds r1, r4, 0 adds r2, r4, 0 movs r3, 0x1 bl sub_8085C54 movs r0, 0x46 bl sub_803E46C subs r4, 0x64 cmp r4, 0 bge _0808C05A movs r0, 0x4 movs r1, 0x46 bl sub_803E708 movs r4, 0 movs r5, 0 _0808C080: str r5, [sp] adds r0, r4, 0 adds r1, r4, 0 adds r2, r4, 0 movs r3, 0x1 bl sub_8085C54 movs r0, 0x46 bl sub_803E46C adds r4, 0x64 cmp r4, 0xC7 ble _0808C080 movs r4, 0xC8 movs r5, 0 _0808C09E: str r5, [sp] adds r0, r4, 0 adds r1, r4, 0 adds r2, r4, 0 movs r3, 0x1 bl sub_8085C54 movs r0, 0x46 bl sub_803E46C subs r4, 0x64 cmp r4, 0 bge _0808C09E movs r0, 0xA movs r1, 0x46 bl sub_803E708 bl sub_8085EB0 add sp, 0x4 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_808C02C thumb_func_start sub_808C0CC sub_808C0CC: push {lr} sub sp, 0x4 ldr r1, _0808C104 movs r0, 0x1F str r0, [r1] movs r0, 0x1 str r0, [sp] movs r0, 0 movs r1, 0 movs r2, 0 movs r3, 0x1 bl sub_8085C54 bl sub_803E9D0 movs r0, 0x46 bl sub_803E46C ldr r0, _0808C108 ldr r1, [r0] movs r0, 0 strb r0, [r1, 0x7] bl sub_808BFA0 add sp, 0x4 pop {r0} bx r0 .align 2, 0 _0808C104: .4byte gUnknown_202EDC8 _0808C108: .4byte gUnknown_203B418 thumb_func_end sub_808C0CC thumb_func_start sub_808C10C sub_808C10C: push {r4,r5,lr} bl sub_8085480 adds r5, r0, 0 movs r0, 0x1C bl sub_8085680 adds r4, r0, 0 bl sub_8083F14 bl sub_80854D4 movs r0, 0x4 bl sub_8085930 movs r0, 0xCD lsls r0, 1 bl sub_808E734 lsls r0, 24 cmp r0, 0 beq _0808C146 movs r1, 0x87 lsls r1, 2 adds r0, r4, 0 movs r2, 0 bl sub_8068FE0 b _0808C156 _0808C146: ldr r0, _0808C194 ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0x7] adds r0, r4, 0 movs r1, 0 bl sub_8085918 _0808C156: movs r1, 0x4 ldrsh r0, [r5, r1] movs r2, 0x6 ldrsh r1, [r5, r2] bl sub_8085860 bl sub_803F994 adds r4, r0, 0 bl sub_803F9B0 adds r1, r0, 0 ldr r0, _0808C198 adds r1, r0 adds r0, r4, 0 bl sub_803F878 ldr r4, _0808C19C movs r1, 0xCD lsls r1, 1 adds r0, r4, 0 bl sub_808D8BC adds r4, 0x50 ldr r1, _0808C1A0 adds r0, r4, 0 bl sub_808D8BC pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0808C194: .4byte gUnknown_203B418 _0808C198: .4byte 0xfffff000 _0808C19C: .4byte gUnknown_202E038 _0808C1A0: .4byte 0x0000019b thumb_func_end sub_808C10C thumb_func_start sub_808C1A4 sub_808C1A4: push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 cmp r1, 0x34 bne _0808C1C4 cmp r0, 0x1C bne _0808C1C4 ldr r0, _0808C1C8 ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0x2] movs r0, 0x23 bl sub_8083E88 _0808C1C4: pop {r0} bx r0 .align 2, 0 _0808C1C8: .4byte gUnknown_203B418 thumb_func_end sub_808C1A4 thumb_func_start sub_808C1CC sub_808C1CC: push {r4,r5,lr} bl sub_8085480 adds r4, r0, 0 movs r0, 0x1C bl sub_8085680 adds r5, r0, 0 bl sub_8083F14 movs r0, 0xCD lsls r0, 1 bl sub_808E734 lsls r0, 24 cmp r0, 0 beq _0808C224 movs r0, 0x23 movs r1, 0x3C bl sub_8083EA8 adds r0, r4, 0 bl sub_808696C movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _0808C21C bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _0808C220 ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0x2] b _0808C2AE .align 2, 0 _0808C21C: .4byte gUnknown_81062A8 _0808C220: .4byte gUnknown_203B418 _0808C224: ldr r0, _0808C2B4 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _0808C2B8 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 bl nullsub_99 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _0808C2BC bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r0, 0x23 movs r1, 0x3C bl sub_8083EA8 bl sub_808C360 ldr r0, _0808C2C0 bl sub_8052910 bl sub_808C2D4 ldr r0, _0808C2C4 bl sub_8052910 bl sub_808C2D4 ldr r0, _0808C2C8 bl sub_8052910 bl sub_808C2D4 ldr r0, _0808C2CC bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r1, 0x96 lsls r1, 2 adds r0, r5, 0 movs r2, 0xB bl sub_8086A70 movs r0, 0x23 bl sub_8083E88 adds r0, r4, 0 adds r0, 0xC movs r1, 0x10 bl sub_80858AC _0808C2AE: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0808C2B4: .4byte gUnknown_8106074 _0808C2B8: .4byte gUnknown_81060BC _0808C2BC: .4byte gUnknown_8106104 _0808C2C0: .4byte gUnknown_8106140 _0808C2C4: .4byte gUnknown_8106214 _0808C2C8: .4byte gUnknown_8106244 _0808C2CC: .4byte gUnknown_810627C thumb_func_end sub_808C1CC thumb_func_start nullsub_99 nullsub_99: bx lr thumb_func_end nullsub_99 thumb_func_start sub_808C2D4 sub_808C2D4: push {r4,r5,lr} sub sp, 0x4 movs r0, 0xFC lsls r0, 1 bl sub_8083E38 movs r4, 0xFA movs r5, 0x1 _0808C2E4: str r5, [sp] movs r0, 0 movs r1, 0 adds r2, r4, 0 movs r3, 0x1 bl sub_8085C54 movs r0, 0x46 bl sub_803E46C subs r4, 0xA cmp r4, 0x95 bgt _0808C2E4 movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r4, 0xFA movs r5, 0x1 _0808C30A: str r5, [sp] movs r0, 0 adds r1, r4, 0 adds r2, r4, 0 movs r3, 0x1 bl sub_8085C54 movs r0, 0x46 bl sub_803E46C subs r4, 0xA cmp r4, 0xC7 bgt _0808C30A movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r4, 0xFA movs r5, 0x1 _0808C330: str r5, [sp] movs r0, 0 movs r1, 0 adds r2, r4, 0 movs r3, 0x1 bl sub_8085C54 movs r0, 0x46 bl sub_803E46C subs r4, 0xA cmp r4, 0 bge _0808C330 movs r0, 0xA movs r1, 0x46 bl sub_803E708 bl sub_8085EB0 add sp, 0x4 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_808C2D4 thumb_func_start sub_808C360 sub_808C360: push {lr} sub sp, 0x4 ldr r1, _0808C398 movs r0, 0x1F str r0, [r1] movs r0, 0x1 str r0, [sp] movs r0, 0 movs r1, 0 movs r2, 0 movs r3, 0x1 bl sub_8085C54 bl sub_803E9D0 movs r0, 0x46 bl sub_803E46C ldr r0, _0808C39C ldr r1, [r0] movs r0, 0 strb r0, [r1, 0x7] bl sub_808C2D4 add sp, 0x4 pop {r0} bx r0 .align 2, 0 _0808C398: .4byte gUnknown_202EDC8 _0808C39C: .4byte gUnknown_203B418 thumb_func_end sub_808C360 thumb_func_start sub_808C3A0 sub_808C3A0: push {r4,lr} bl sub_8085480 adds r4, r0, 0 bl sub_8083F14 bl sub_80854D4 movs r0, 0x4 bl sub_8085930 ldr r0, _0808C3D4 bl sub_80855E4 movs r0, 0xCF lsls r0, 1 bl sub_808E734 lsls r0, 24 cmp r0, 0 beq _0808C3DC ldr r0, _0808C3D8 bl sub_808563C b _0808C3EA .align 2, 0 _0808C3D4: .4byte sub_8086A3C _0808C3D8: .4byte sub_808C590 _0808C3DC: ldr r0, _0808C408 ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0x7] ldr r0, _0808C40C bl sub_808563C _0808C3EA: movs r1, 0x4 ldrsh r0, [r4, r1] movs r2, 0x6 ldrsh r1, [r4, r2] subs r1, 0x3 bl sub_8085860 ldr r0, _0808C410 movs r1, 0xCF lsls r1, 1 bl sub_808D8BC pop {r4} pop {r0} bx r0 .align 2, 0 _0808C408: .4byte gUnknown_203B418 _0808C40C: .4byte sub_808C5A0 _0808C410: .4byte gUnknown_202E038 thumb_func_end sub_808C3A0 thumb_func_start sub_808C414 sub_808C414: push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 cmp r1, 0x35 bne _0808C434 cmp r0, 0x1D bne _0808C434 ldr r0, _0808C438 ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0x2] movs r0, 0x1A bl sub_8083E88 _0808C434: pop {r0} bx r0 .align 2, 0 _0808C438: .4byte gUnknown_203B418 thumb_func_end sub_808C414 thumb_func_start sub_808C43C sub_808C43C: push {r4,lr} bl sub_8085480 adds r4, r0, 0 bl sub_8086448 movs r0, 0xCF lsls r0, 1 bl sub_808E734 lsls r0, 24 cmp r0, 0 beq _0808C464 ldr r0, _0808C460 bl sub_80866C4 b _0808C4A8 .align 2, 0 _0808C460: .4byte gUnknown_81063C4 _0808C464: ldr r0, _0808C4B0 bl sub_8052910 movs r0, 0x1A movs r1, 0x3C bl sub_8083EA8 bl sub_808C550 ldr r0, _0808C4B4 bl sub_8052910 bl sub_808C4C4 ldr r0, _0808C4B8 bl sub_8052910 bl sub_808C4C4 ldr r0, _0808C4BC bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _0808C4C0 bl sub_808563C adds r0, r4, 0 adds r0, 0xC movs r1, 0x10 bl sub_80858AC _0808C4A8: pop {r4} pop {r0} bx r0 .align 2, 0 _0808C4B0: .4byte gUnknown_81062B4 _0808C4B4: .4byte gUnknown_81062E8 _0808C4B8: .4byte gUnknown_8106368 _0808C4BC: .4byte gUnknown_8106390 _0808C4C0: .4byte sub_808C5AC thumb_func_end sub_808C43C thumb_func_start sub_808C4C4 sub_808C4C4: push {r4,r5,lr} sub sp, 0x4 ldr r0, _0808C54C bl sub_8083E38 movs r4, 0xFA movs r5, 0x1 _0808C4D2: str r5, [sp] adds r0, r4, 0 movs r1, 0 movs r2, 0 movs r3, 0x1 bl sub_8085C54 movs r0, 0x46 bl sub_803E46C subs r4, 0xA cmp r4, 0x95 bgt _0808C4D2 movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r4, 0xFA movs r5, 0x1 _0808C4F8: str r5, [sp] adds r0, r4, 0 adds r1, r4, 0 movs r2, 0 movs r3, 0x1 bl sub_8085C54 movs r0, 0x46 bl sub_803E46C subs r4, 0xA cmp r4, 0xC7 bgt _0808C4F8 movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r4, 0xFA movs r5, 0x1 _0808C51E: str r5, [sp] adds r0, r4, 0 movs r1, 0 movs r2, 0 movs r3, 0x1 bl sub_8085C54 movs r0, 0x46 bl sub_803E46C subs r4, 0xA cmp r4, 0 bge _0808C51E movs r0, 0xA movs r1, 0x46 bl sub_803E708 bl sub_8085EB0 add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0808C54C: .4byte 0x000002c1 thumb_func_end sub_808C4C4 thumb_func_start sub_808C550 sub_808C550: push {lr} sub sp, 0x4 ldr r1, _0808C588 movs r0, 0x1F str r0, [r1] movs r0, 0x1 str r0, [sp] movs r0, 0 movs r1, 0 movs r2, 0 movs r3, 0x1 bl sub_8085C54 bl sub_803E9D0 movs r0, 0x46 bl sub_803E46C ldr r0, _0808C58C ldr r1, [r0] movs r0, 0 strb r0, [r1, 0x7] bl sub_808C4C4 add sp, 0x4 pop {r0} bx r0 .align 2, 0 _0808C588: .4byte gUnknown_202EDC8 _0808C58C: .4byte gUnknown_203B418 thumb_func_end sub_808C550 thumb_func_start sub_808C590 sub_808C590: push {lr} movs r1, 0x87 lsls r1, 2 movs r2, 0 bl sub_8068FE0 pop {r0} bx r0 thumb_func_end sub_808C590 thumb_func_start sub_808C5A0 sub_808C5A0: push {lr} movs r1, 0 bl sub_8085918 pop {r0} bx r0 thumb_func_end sub_808C5A0 thumb_func_start sub_808C5AC sub_808C5AC: push {lr} ldr r1, _0808C5BC movs r2, 0x20 bl sub_8086A70 pop {r0} bx r0 .align 2, 0 _0808C5BC: .4byte 0x000003b6 thumb_func_end sub_808C5AC thumb_func_start sub_808C5C0 sub_808C5C0: push {r4,r5,lr} bl sub_8085480 adds r5, r0, 0 movs r0, 0x1E bl sub_8085680 adds r4, r0, 0 movs r0, 0x7F bl sub_8083E88 bl sub_80854D4 movs r0, 0x4 bl sub_8085930 adds r0, r4, 0 movs r1, 0 bl sub_8085918 movs r1, 0x4 ldrsh r0, [r5, r1] movs r2, 0x6 ldrsh r1, [r5, r2] bl sub_8085860 bl sub_803F994 adds r4, r0, 0 bl sub_803F9B0 adds r1, r0, 0 ldr r0, _0808C61C adds r1, r0 adds r0, r4, 0 bl sub_803F878 ldr r0, _0808C620 movs r1, 0x8A lsls r1, 1 bl sub_808D8BC pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0808C61C: .4byte 0xfffff000 _0808C620: .4byte gUnknown_202E038 thumb_func_end sub_808C5C0 thumb_func_start nullsub_100 nullsub_100: bx lr thumb_func_end nullsub_100 thumb_func_start sub_808C628 sub_808C628: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 bl sub_8085480 adds r7, r0, 0 movs r0, 0x1E bl sub_8085680 str r0, [sp] movs r0, 0x8A lsls r0, 1 bl sub_808E734 lsls r0, 24 cmp r0, 0 bne _0808C658 ldr r0, [sp] bl sub_806FD18 lsls r0, 24 cmp r0, 0 bne _0808C680 _0808C658: movs r1, 0x87 lsls r1, 2 ldr r0, [sp] movs r2, 0 bl sub_8068FE0 adds r0, r7, 0 bl sub_808696C movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _0808C67C bl sub_8052910 b _0808C8AC .align 2, 0 _0808C67C: .4byte gUnknown_810663C _0808C680: adds r0, r7, 0 bl sub_808696C movs r0, 0xA movs r1, 0x46 bl sub_803E708 adds r0, r7, 0 bl sub_80862BC movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _0808C71C bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 bl sub_8086598 bl sub_8086598 bl sub_8086598 bl sub_8086598 ldr r0, _0808C720 bl sub_8052910 ldr r4, _0808C724 adds r0, r4, 0 bl sub_8083E38 ldr r0, [sp] movs r1, 0xA movs r2, 0 bl sub_806CDD4 movs r0, 0x14 movs r1, 0x46 bl sub_803E708 ldr r0, [sp] movs r1, 0 bl sub_806CE68 movs r0, 0x4 movs r1, 0x46 bl sub_803E708 adds r0, r4, 0 bl sub_8083E38 ldr r0, [sp] movs r1, 0xA movs r2, 0 bl sub_806CDD4 ldr r0, _0808C728 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r0, 0 mov r8, r4 ldr r6, _0808C72C _0808C70E: cmp r0, 0 beq _0808C730 cmp r0, 0x1 bne _0808C718 b _0808C828 _0808C718: b _0808C8A6 .align 2, 0 _0808C71C: .4byte gUnknown_81063D0 _0808C720: .4byte gUnknown_8106400 _0808C724: .4byte 0x000001c7 _0808C728: .4byte gUnknown_810643C _0808C72C: .4byte 0x000001d5 _0808C730: ldr r5, _0808C75C _0808C732: movs r0, 0 ldr r1, [r5] ldr r2, _0808C760 ldr r3, _0808C764 bl sub_8052C68 adds r4, r0, 0 cmp r4, 0 ble _0808C732 movs r0, 0xA movs r1, 0x46 bl sub_803E708 cmp r4, 0x1 bne _0808C824 bl sub_8083F14 movs r0, 0xCC bl sub_8083E38 b _0808C76E .align 2, 0 _0808C75C: .4byte gUnknown_81065A8 _0808C760: .4byte gUnknown_81065AC _0808C764: .4byte 0x00000701 _0808C768: movs r0, 0x46 bl sub_803E46C _0808C76E: movs r0, 0xCC bl sub_8083E74 lsls r0, 24 cmp r0, 0 bne _0808C768 movs r0, 0x7F bl sub_8083E88 mov r0, r8 bl sub_8083E38 ldr r0, [sp] movs r1, 0xD movs r2, 0 bl sub_80861D4 movs r0, 0x37 movs r1, 0x46 bl sub_803E708 adds r0, r6, 0 bl sub_8083E38 movs r0, 0x1A movs r1, 0x46 bl sub_803E708 adds r0, r6, 0 bl sub_8083E38 movs r0, 0x1C movs r1, 0x46 bl sub_803E708 ldr r0, _0808C818 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r1, [sp] adds r0, r7, 0 mov r2, sp bl sub_806FDF4 movs r0, 0x7F bl sub_8083E88 ldr r0, _0808C81C bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 mov r0, r8 bl sub_8083E38 ldr r0, [sp] movs r1, 0xD movs r2, 0 bl sub_80861D4 movs r0, 0x37 movs r1, 0x46 bl sub_803E708 adds r0, r6, 0 bl sub_8083E38 movs r0, 0x1A movs r1, 0x46 bl sub_803E708 adds r0, r6, 0 bl sub_8083E38 movs r0, 0x1B movs r1, 0x46 bl sub_803E708 ldr r0, _0808C820 b _0808C898 .align 2, 0 _0808C818: .4byte gUnknown_8106468 _0808C81C: .4byte gUnknown_810648C _0808C820: .4byte gUnknown_81064BC _0808C824: movs r0, 0x1 b _0808C8A6 _0808C828: ldr r5, _0808C844 _0808C82A: movs r0, 0 ldr r1, [r5] ldr r2, _0808C848 ldr r3, _0808C84C bl sub_8052C68 adds r4, r0, 0 cmp r4, 0 ble _0808C82A cmp r4, 0x1 bne _0808C850 movs r0, 0 b _0808C8A6 .align 2, 0 _0808C844: .4byte gUnknown_810660C _0808C848: .4byte gUnknown_8106610 _0808C84C: .4byte 0x00000701 _0808C850: movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _0808C8D0 bl sub_8052910 ldr r1, [sp] movs r0, 0x3E movs r2, 0x1 bl sub_80861F8 movs r0, 0x18 movs r1, 0x46 bl sub_803E708 ldr r1, [sp] movs r0, 0x3E movs r2, 0x1 bl sub_80861F8 movs r0, 0xE movs r1, 0x46 bl sub_803E708 ldr r0, _0808C8D4 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, [sp] bl sub_808C8E0 ldr r0, _0808C8D8 _0808C898: bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r0, 0x2 _0808C8A6: cmp r0, 0x2 beq _0808C8AC b _0808C70E _0808C8AC: movs r0, 0x1E bl sub_8083ED8 movs r0, 0x1E movs r1, 0x46 bl sub_803E708 ldr r0, _0808C8DC ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0x2] add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0808C8D0: .4byte gUnknown_8106500 _0808C8D4: .4byte gUnknown_8106534 _0808C8D8: .4byte gUnknown_8106560 _0808C8DC: .4byte gUnknown_203B418 thumb_func_end sub_808C628 thumb_func_start sub_808C8E0 sub_808C8E0: push {r4,r5,lr} adds r5, r0, 0 ldr r0, _0808C934 bl sub_8083E38 adds r0, r5, 0 movs r1, 0 movs r2, 0 bl sub_806CDD4 movs r4, 0 _0808C8F6: ldr r0, [r5, 0x70] movs r1, 0xBA lsls r1, 1 adds r0, r1 lsls r1, r4, 8 str r1, [r0] movs r0, 0x46 bl sub_803E46C adds r4, 0x1 cmp r4, 0xF ble _0808C8F6 movs r4, 0x10 _0808C910: ldr r0, [r5, 0x70] movs r1, 0xBA lsls r1, 1 adds r0, r1 lsls r1, r4, 8 str r1, [r0] movs r0, 0x46 bl sub_803E46C adds r4, 0x4 cmp r4, 0xC7 ble _0808C910 adds r0, r5, 0 bl sub_8086A3C pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0808C934: .4byte 0x000001a5 thumb_func_end sub_808C8E0 thumb_func_start sub_808C938 sub_808C938: push {lr} ldr r0, _0808C944 bl sub_80855E4 pop {r0} bx r0 .align 2, 0 _0808C944: .4byte sub_808C9B0 thumb_func_end sub_808C938 thumb_func_start sub_808C948 sub_808C948: push {r4-r6,lr} adds r6, r0, 0 lsls r1, 24 lsrs r1, 24 cmp r1, 0x37 bne _0808C98A movs r5, 0 movs r4, 0 b _0808C95C _0808C95A: adds r4, 0x1 _0808C95C: cmp r4, 0xF bgt _0808C97E ldr r0, _0808C990 ldr r0, [r0] lsls r1, r4, 2 ldr r2, _0808C994 adds r0, r2 adds r0, r1 ldr r0, [r0] cmp r0, r6 beq _0808C95A bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0808C95A movs r5, 0x1 _0808C97E: cmp r5, 0 bne _0808C98A ldr r0, _0808C990 ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0x2] _0808C98A: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0808C990: .4byte gUnknown_203B418 _0808C994: .4byte 0x0001358c thumb_func_end sub_808C948 thumb_func_start sub_808C998 sub_808C998: push {lr} ldr r0, _0808C9AC bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 pop {r0} bx r0 .align 2, 0 _0808C9AC: .4byte gUnknown_8106720 thumb_func_end sub_808C998 thumb_func_start sub_808C9B0 sub_808C9B0: push {lr} ldr r1, [r0, 0x70] adds r1, 0x46 movs r2, 0x4 strb r2, [r1] movs r1, 0x4 bl sub_806CE68 pop {r0} bx r0 thumb_func_end sub_808C9B0 thumb_func_start sub_808C9C4 sub_808C9C4: push {r4,r5,lr} bl sub_8085480 adds r5, r0, 0 movs r0, 0x7 bl sub_8085680 adds r4, r0, 0 movs r0, 0x72 bl sub_8083E88 bl sub_80854D4 movs r0, 0x4 bl sub_8085930 ldr r0, _0808CA10 bl sub_80855E4 adds r0, r4, 0 movs r1, 0 bl sub_8085918 movs r1, 0x4 ldrsh r0, [r5, r1] movs r2, 0x6 ldrsh r1, [r5, r2] subs r1, 0x3 bl sub_8085860 ldr r0, _0808CA14 ldr r1, _0808CA18 bl sub_808D8BC pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0808CA10: .4byte sub_8086A3C _0808CA14: .4byte gUnknown_202E038 _0808CA18: .4byte 0x0000014d thumb_func_end sub_808C9C4 thumb_func_start sub_808CA1C sub_808CA1C: push {r4,r5,lr} movs r0, 0x7 bl sub_8085680 adds r5, r0, 0 bl sub_808696C movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _0808CB44 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 adds r0, r5, 0 movs r1, 0x4 movs r2, 0x2 movs r3, 0x4 bl sub_80869E4 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _0808CB48 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 bl sub_8086448 bl sub_8086598 movs r0, 0x20 movs r1, 0x46 bl sub_803E708 adds r0, r5, 0 bl sub_80862BC movs r0, 0x20 movs r1, 0x46 bl sub_803E708 adds r0, r5, 0 movs r1, 0x4 movs r2, 0x2 movs r3, 0 bl sub_80869E4 ldr r0, _0808CB4C bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r4, _0808CB50 adds r0, r4, 0 bl sub_8083E38 adds r0, r5, 0 movs r1, 0xA movs r2, 0 bl sub_806CDD4 movs r0, 0x14 movs r1, 0x46 bl sub_803E708 adds r0, r5, 0 movs r1, 0 bl sub_806CE68 movs r0, 0x4 movs r1, 0x46 bl sub_803E708 adds r0, r4, 0 bl sub_8083E38 adds r0, r5, 0 movs r1, 0xA movs r2, 0 bl sub_806CDD4 movs r0, 0x14 movs r1, 0x46 bl sub_803E708 ldr r0, _0808CB54 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 adds r0, r5, 0 movs r1, 0 movs r2, 0 bl sub_806CDD4 movs r4, 0x17 _0808CAF6: adds r0, r5, 0 movs r1, 0 movs r2, 0x80 lsls r2, 1 bl sub_804539C movs r0, 0x46 bl sub_803E46C subs r4, 0x1 cmp r4, 0 bge _0808CAF6 adds r0, r5, 0 movs r1, 0 bl sub_806CE68 movs r0, 0x20 movs r1, 0x46 bl sub_803E708 adds r0, r5, 0 bl sub_8042B0C movs r1, 0x87 lsls r1, 2 adds r0, r5, 0 movs r2, 0 bl sub_8068FE0 ldr r2, _0808CB58 ldr r1, [r2] movs r0, 0x1 strb r0, [r1, 0x4] ldr r1, [r2] movs r0, 0x4 strb r0, [r1, 0x11] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0808CB44: .4byte gUnknown_8106778 _0808CB48: .4byte gUnknown_81067BC _0808CB4C: .4byte gUnknown_81067E0 _0808CB50: .4byte 0x000001c7 _0808CB54: .4byte gUnknown_8106834 _0808CB58: .4byte gUnknown_203B418 thumb_func_end sub_808CA1C thumb_func_start sub_808CB5C sub_808CB5C: push {r4,r5,lr} bl sub_8085480 adds r5, r0, 0 movs r0, 0x7 bl sub_8085680 adds r4, r0, 0 movs r0, 0x72 bl sub_8083E88 bl sub_80854D4 movs r0, 0x4 bl sub_8085930 movs r1, 0x87 lsls r1, 2 adds r0, r4, 0 movs r2, 0 bl sub_8068FE0 movs r1, 0x4 ldrsh r0, [r5, r1] movs r2, 0x6 ldrsh r1, [r5, r2] bl sub_8085860 ldr r0, _0808CBA4 ldr r1, _0808CBA8 bl sub_808D8BC pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0808CBA4: .4byte gUnknown_202E038 _0808CBA8: .4byte 0x0000014d thumb_func_end sub_808CB5C thumb_func_start nullsub_101 nullsub_101: bx lr thumb_func_end nullsub_101 thumb_func_start sub_808CBB0 sub_808CBB0: push {r4,r5,lr} bl sub_8085480 adds r5, r0, 0 movs r0, 0x1F bl sub_8085680 adds r4, r0, 0 movs r0, 0x72 bl sub_8083E88 bl sub_80854D4 movs r0, 0x4 bl sub_8085930 ldr r0, _0808CBFC bl sub_80855E4 adds r0, r4, 0 movs r1, 0 bl sub_8085918 movs r1, 0x4 ldrsh r0, [r5, r1] movs r2, 0x6 ldrsh r1, [r5, r2] subs r1, 0x3 bl sub_8085860 ldr r0, _0808CC00 movs r1, 0x82 lsls r1, 1 bl sub_808D8BC pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0808CBFC: .4byte sub_8086A3C _0808CC00: .4byte gUnknown_202E038 thumb_func_end sub_808CBB0 thumb_func_start sub_808CC04 sub_808CC04: push {r4,r5,lr} movs r0, 0x1F bl sub_8085680 adds r5, r0, 0 bl sub_808696C movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _0808CD2C bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 adds r0, r5, 0 movs r1, 0x4 movs r2, 0x2 movs r3, 0x4 bl sub_80869E4 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r0, _0808CD30 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 bl sub_8086448 bl sub_8086598 movs r0, 0x20 movs r1, 0x46 bl sub_803E708 adds r0, r5, 0 bl sub_80862BC movs r0, 0x20 movs r1, 0x46 bl sub_803E708 adds r0, r5, 0 movs r1, 0x4 movs r2, 0x2 movs r3, 0 bl sub_80869E4 ldr r0, _0808CD34 bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 ldr r4, _0808CD38 adds r0, r4, 0 bl sub_8083E38 adds r0, r5, 0 movs r1, 0xA movs r2, 0 bl sub_806CDD4 movs r0, 0x14 movs r1, 0x46 bl sub_803E708 adds r0, r5, 0 movs r1, 0 bl sub_806CE68 movs r0, 0x4 movs r1, 0x46 bl sub_803E708 adds r0, r4, 0 bl sub_8083E38 adds r0, r5, 0 movs r1, 0xA movs r2, 0 bl sub_806CDD4 movs r0, 0x14 movs r1, 0x46 bl sub_803E708 ldr r0, _0808CD3C bl sub_8052910 movs r0, 0xA movs r1, 0x46 bl sub_803E708 adds r0, r5, 0 movs r1, 0 movs r2, 0 bl sub_806CDD4 movs r4, 0x17 _0808CCDE: adds r0, r5, 0 movs r1, 0 movs r2, 0x80 lsls r2, 1 bl sub_804539C movs r0, 0x46 bl sub_803E46C subs r4, 0x1 cmp r4, 0 bge _0808CCDE adds r0, r5, 0 movs r1, 0 bl sub_806CE68 movs r0, 0x20 movs r1, 0x46 bl sub_803E708 adds r0, r5, 0 bl sub_8042B0C movs r1, 0x87 lsls r1, 2 adds r0, r5, 0 movs r2, 0 bl sub_8068FE0 ldr r2, _0808CD40 ldr r1, [r2] movs r0, 0x1 strb r0, [r1, 0x4] ldr r1, [r2] movs r0, 0x4 strb r0, [r1, 0x11] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0808CD2C: .4byte gUnknown_810688C _0808CD30: .4byte gUnknown_81068D0 _0808CD34: .4byte gUnknown_8106918 _0808CD38: .4byte 0x000001c7 _0808CD3C: .4byte gUnknown_8106934 _0808CD40: .4byte gUnknown_203B418 thumb_func_end sub_808CC04 thumb_func_start sub_808CD44 sub_808CD44: push {r4,r5,lr} bl sub_8085480 adds r5, r0, 0 movs r0, 0x1F bl sub_8085680 adds r4, r0, 0 movs r0, 0x72 bl sub_8083E88 bl sub_80854D4 movs r0, 0x4 bl sub_8085930 ldr r0, _0808CD94 bl sub_80855E4 movs r1, 0x87 lsls r1, 2 adds r0, r4, 0 movs r2, 0 bl sub_8068FE0 movs r1, 0x4 ldrsh r0, [r5, r1] movs r2, 0x6 ldrsh r1, [r5, r2] subs r1, 0x3 bl sub_8085860 ldr r0, _0808CD98 movs r1, 0x82 lsls r1, 1 bl sub_808D8BC pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0808CD94: .4byte sub_8086A3C _0808CD98: .4byte gUnknown_202E038 thumb_func_end sub_808CD44 thumb_func_start sub_808CD9C sub_808CD9C: push {lr} bl sub_8086448 ldr r0, _0808CDAC bl sub_80866C4 pop {r0} bx r0 .align 2, 0 _0808CDAC: .4byte gUnknown_810697C thumb_func_end sub_808CD9C thumb_func_start sub_808CDB0 sub_808CDB0: lsls r0, 24 lsrs r0, 21 ldr r1, _0808CDBC adds r0, r1 bx lr .align 2, 0 _0808CDBC: .4byte gUnknown_8107544 thumb_func_end sub_808CDB0 thumb_func_start LoadMonsterParameters LoadMonsterParameters: push {lr} ldr r1, _0808CDE4 ldr r0, _0808CDE8 str r0, [r1] ldr r0, _0808CDEC ldr r1, _0808CDF0 bl OpenFileAndGetFileDataPtr ldr r1, _0808CDF4 str r0, [r1] ldr r1, _0808CDF8 ldr r0, [r0, 0x4] str r0, [r1] ldr r1, _0808CDFC movs r0, 0 strh r0, [r1] pop {r0} bx r0 .align 2, 0 _0808CDE4: .4byte gUnknown_203B45C _0808CDE8: .4byte gUnknown_202F400 _0808CDEC: .4byte gUnknown_81075F4 _0808CDF0: .4byte gUnknown_8300500 _0808CDF4: .4byte gUnknown_202F3E4 _0808CDF8: .4byte gUnknown_202F3E0 _0808CDFC: .4byte gUnknown_20384E8 thumb_func_end LoadMonsterParameters thumb_func_start sub_808CE00 sub_808CE00: ldr r0, _0808CE04 bx lr .align 2, 0 _0808CE04: .4byte gUnknown_202F400 thumb_func_end sub_808CE00 thumb_func_start sub_808CE08 sub_808CE08: push {r4-r7,lr} ldr r4, _0808CE60 movs r3, 0 movs r1, 0 ldr r2, _0808CE64 _0808CE12: ldr r0, [r4] adds r0, r1 strh r3, [r0] adds r1, 0x58 subs r2, 0x1 cmp r2, 0 bne _0808CE12 ldr r5, _0808CE60 ldr r4, _0808CE68 movs r3, 0 movs r1, 0 movs r2, 0x3 _0808CE2A: ldr r0, [r5] adds r0, r1 adds r0, r4 strh r3, [r0] adds r1, 0x64 subs r2, 0x1 cmp r2, 0 bge _0808CE2A ldr r7, _0808CE60 ldr r6, _0808CE6C movs r4, 0 movs r3, 0 ldr r5, _0808CE70 movs r2, 0x3 _0808CE46: ldr r0, [r7] adds r0, r3 adds r1, r0, r6 strh r4, [r1] adds r0, r5 strh r4, [r0] adds r3, 0x58 subs r2, 0x1 cmp r2, 0 bge _0808CE46 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0808CE60: .4byte gUnknown_203B45C _0808CE64: .4byte 0x0000019d _0808CE68: .4byte 0x00008df8 _0808CE6C: .4byte 0x00008f90 _0808CE70: .4byte 0x00008f88 thumb_func_end sub_808CE08 thumb_func_start sub_808CE74 sub_808CE74: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x6C mov r8, r2 lsls r0, 16 asrs r7, r0, 16 lsls r1, 24 mov r2, sp movs r0, 0x3 strh r0, [r2] cmp r1, 0 beq _0808CE9C mov r1, sp movs r0, 0x1 strb r0, [r1, 0x2] movs r0, 0x40 b _0808CEA4 _0808CE9C: mov r1, sp movs r0, 0 strb r0, [r1, 0x2] movs r0, 0x41 _0808CEA4: strb r0, [r1, 0x4] mov r0, sp movs r6, 0 movs r5, 0x1 strb r5, [r0, 0x3] adds r0, r7, 0 bl sub_808DBC0 mov r1, sp movs r4, 0 strh r0, [r1, 0x16] adds r0, r7, 0 movs r1, 0 bl sub_808DC28 mov r1, sp strb r0, [r1, 0x18] adds r0, r7, 0 movs r1, 0x1 bl sub_808DC28 mov r1, sp strb r0, [r1, 0x19] adds r0, r7, 0 movs r1, 0 bl sub_808DC48 mov r1, sp strb r0, [r1, 0x1A] adds r0, r7, 0 movs r1, 0x1 bl sub_808DC48 mov r1, sp strb r0, [r1, 0x1B] mov r0, sp strh r5, [r0, 0x14] strb r4, [r0, 0xC] strb r4, [r0, 0x10] add r0, sp, 0x20 movs r1, 0 bl sub_808EC94 mov r0, sp strh r7, [r0, 0x8] add r0, sp, 0x28 strb r4, [r0] adds r0, 0x1 strb r4, [r0] str r6, [sp, 0x1C] add r0, sp, 0x24 strb r4, [r0] mov r0, sp strb r4, [r0, 0x5] add r0, sp, 0x2C adds r1, r7, 0 bl sub_808E490 mov r0, r8 cmp r0, 0 bne _0808CF5C add r4, sp, 0x58 adds r0, r4, 0 adds r1, r7, 0 bl sub_808D8BC add r0, sp, 0x4C adds r1, r4, 0 movs r2, 0xA bl sub_8092310 lsls r4, r7, 3 b _0808CF72 _0808CF36: mov r1, r8 ldr r0, [r1] adds r0, r6 mov r1, sp movs r2, 0x58 bl memcpy ldr r0, _0808CF58 ldr r0, [r0] adds r0, r4 mov r5, r9 strb r5, [r0] adds r0, r7, 0 bl sub_80980B4 b _0808CFB8 .align 2, 0 _0808CF58: .4byte gUnknown_203B468 _0808CF5C: movs r2, 0 lsls r4, r7, 3 add r3, sp, 0x4C _0808CF62: adds r0, r3, r2 mov r5, r8 adds r1, r5, r2 ldrb r1, [r1] strb r1, [r0] adds r2, 0x1 cmp r2, 0x9 ble _0808CF62 _0808CF72: ldr r0, _0808CFC8 ldr r1, [r0] adds r0, r4, r7 lsls r0, 3 adds r0, r1 ldrb r0, [r0, 0x16] mov r10, r0 movs r5, 0 ldr r0, _0808CFCC mov r8, r0 movs r1, 0x1 mov r9, r1 _0808CF8A: movs r0, 0x58 adds r6, r5, 0 muls r6, r0 mov r1, r8 ldr r0, [r1] adds r0, r6, r0 ldrb r1, [r0] mov r0, r9 ands r0, r1 cmp r0, 0 bne _0808CFAE adds r0, r5, 0 bl sub_80923D4 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r10 beq _0808CF36 _0808CFAE: adds r5, 0x1 movs r0, 0xCE lsls r0, 1 cmp r5, r0 ble _0808CF8A _0808CFB8: add sp, 0x6C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0808CFC8: .4byte gUnknown_202F3E0 _0808CFCC: .4byte gUnknown_203B45C thumb_func_end sub_808CE74 thumb_func_start sub_808CFD0 sub_808CFD0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 adds r7, r0, 0 mov r10, r2 adds r4, r3, 0 lsls r1, 16 asrs r1, 16 mov r9, r1 lsls r4, 24 lsrs r4, 24 movs r5, 0 movs r0, 0 mov r8, r0 movs r0, 0x1 movs r6, 0x1 strh r6, [r7] strb r5, [r7, 0x2] strb r0, [r7, 0x3] mov r0, r9 bl sub_808DBC0 strh r0, [r7, 0x16] mov r0, r9 movs r1, 0 bl sub_808DC28 strb r0, [r7, 0x18] mov r0, r9 movs r1, 0x1 bl sub_808DC28 strb r0, [r7, 0x19] mov r0, r9 movs r1, 0 bl sub_808DC48 strb r0, [r7, 0x1A] mov r0, r9 movs r1, 0x1 bl sub_808DC48 strb r0, [r7, 0x1B] mov r1, r9 strh r1, [r7, 0x8] adds r0, r7, 0 adds r0, 0x28 adds r1, r4, 0 bl sub_8090B08 mov r4, r8 str r4, [r7, 0x1C] adds r0, r7, 0 adds r0, 0x24 strb r5, [r0] strh r6, [r7, 0x14] ldr r1, [sp, 0x34] ldr r0, [r1] str r0, [r7, 0x4] strb r5, [r7, 0xC] strb r5, [r7, 0x10] adds r0, r7, 0 adds r0, 0x20 movs r1, 0 bl sub_808EC94 ldr r4, [sp, 0x38] cmp r4, 0 beq _0808D08C movs r0, 0x4C adds r0, r7 mov r8, r0 adds r5, r4, 0 adds r4, r7, 0 adds r4, 0x2C movs r6, 0x3 _0808D06E: ldrh r0, [r5] cmp r0, 0 beq _0808D07E adds r1, r0, 0 adds r0, r4, 0 bl sub_8092AD4 b _0808D080 _0808D07E: strb r0, [r4] _0808D080: adds r5, 0x2 adds r4, 0x8 subs r6, 0x1 cmp r6, 0 bge _0808D06E b _0808D09A _0808D08C: adds r0, r7, 0 adds r0, 0x2C mov r1, r9 bl sub_808E490 adds r7, 0x4C mov r8, r7 _0808D09A: mov r1, r10 cmp r1, 0 bne _0808D0B4 mov r0, sp mov r1, r9 bl sub_808D8BC mov r0, r8 mov r1, sp movs r2, 0xA bl sub_8092310 b _0808D0C8 _0808D0B4: movs r2, 0 mov r3, r8 _0808D0B8: adds r0, r3, r2 mov r4, r10 adds r1, r4, r2 ldrb r1, [r1] strb r1, [r0] adds r2, 0x1 cmp r2, 0x9 ble _0808D0B8 _0808D0C8: add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_808CFD0 thumb_func_start sub_808D0D8 sub_808D0D8: push {r4-r7,lr} adds r7, r0, 0 movs r6, 0 movs r4, 0x1 strb r4, [r7, 0x3] movs r1, 0x8 ldrsh r0, [r7, r1] bl sub_808DBC0 movs r5, 0 strh r0, [r7, 0x16] movs r2, 0x8 ldrsh r0, [r7, r2] movs r1, 0 bl sub_808DC28 strb r0, [r7, 0x18] movs r1, 0x8 ldrsh r0, [r7, r1] movs r1, 0x1 bl sub_808DC28 strb r0, [r7, 0x19] movs r2, 0x8 ldrsh r0, [r7, r2] movs r1, 0 bl sub_808DC48 strb r0, [r7, 0x1A] movs r1, 0x8 ldrsh r0, [r7, r1] movs r1, 0x1 bl sub_808DC48 strb r0, [r7, 0x1B] str r6, [r7, 0x1C] adds r0, r7, 0 adds r0, 0x24 strb r5, [r0] strh r4, [r7, 0x14] subs r0, 0x4 movs r1, 0 bl sub_808EC94 adds r0, r7, 0 adds r0, 0x2C movs r2, 0x8 ldrsh r1, [r7, r2] bl sub_808E490 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_808D0D8 thumb_func_start sub_808D144 sub_808D144: push {r4-r7,lr} adds r5, r0, 0 adds r7, r1, 0 movs r4, 0 movs r0, 0x1 strh r0, [r5] strb r4, [r5, 0x2] ldrh r0, [r7, 0x16] strb r0, [r5, 0x3] ldrh r0, [r7, 0x14] strh r0, [r5, 0x16] ldrh r0, [r7, 0x1A] strb r0, [r5, 0x18] ldrh r0, [r7, 0x1C] strb r0, [r5, 0x19] ldrh r0, [r7, 0x1E] strb r0, [r5, 0x1A] ldrh r0, [r7, 0x20] strb r0, [r5, 0x1B] ldrh r0, [r7, 0x4] strh r0, [r5, 0x8] adds r0, r5, 0 adds r0, 0x28 ldrb r1, [r7, 0x6] bl sub_8090B08 ldr r0, [r7, 0x24] str r0, [r5, 0x1C] adds r0, r5, 0 adds r0, 0x24 strb r4, [r0] ldrh r0, [r7, 0x18] strh r0, [r5, 0x14] ldr r0, [r7, 0x8] str r0, [r5, 0x4] strb r4, [r5, 0xC] strb r4, [r5, 0x10] adds r0, r5, 0 adds r0, 0x20 movs r1, 0 bl sub_808EC94 movs r6, 0 adds r4, r5, 0 adds r4, 0x2C _0808D19E: lsls r1, r6, 1 adds r0, r7, 0 adds r0, 0xC adds r0, r1 ldrh r1, [r0] cmp r1, 0 beq _0808D1B4 adds r0, r4, 0 bl sub_8092AD4 b _0808D1B6 _0808D1B4: strb r1, [r4] _0808D1B6: adds r4, 0x8 adds r6, 0x1 cmp r6, 0x3 ble _0808D19E movs r6, 0 adds r3, r5, 0 adds r3, 0x4C ldr r2, [r7] _0808D1C6: adds r0, r3, r6 adds r1, r2, r6 ldrb r1, [r1] strb r1, [r0] adds r6, 0x1 cmp r6, 0x9 ble _0808D1C6 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_808D144 thumb_func_start sub_808D1DC sub_808D1DC: push {r4-r7,lr} mov r7, r8 push {r7} mov r8, r0 movs r2, 0x8 ldrsh r1, [r0, r2] ldr r0, _0808D204 ldr r2, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 3 adds r0, r2 ldrb r6, [r0, 0x16] ldr r0, _0808D208 ldr r0, [r0] adds r0, r6 ldrb r0, [r0] cmp r0, 0 bne _0808D238 b _0808D268 .align 2, 0 _0808D204: .4byte gUnknown_202F3E0 _0808D208: .4byte gUnknown_203B468 _0808D20C: ldr r0, [r7] adds r0, r5 mov r1, r8 movs r2, 0x58 bl memcpy ldr r1, [r7] adds r1, r5 ldrh r2, [r1] ldr r0, _0808D234 ands r0, r2 strh r0, [r1] mov r1, r8 movs r2, 0x8 ldrsh r0, [r1, r2] bl sub_80980B4 ldr r0, [r7] adds r0, r5 b _0808D26A .align 2, 0 _0808D234: .4byte 0x0000bfff _0808D238: movs r4, 0 ldr r7, _0808D274 _0808D23C: movs r0, 0x58 adds r5, r4, 0 muls r5, r0 ldr r0, [r7] adds r0, r5, r0 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0808D25E adds r0, r4, 0 bl sub_80923D4 lsls r0, 24 lsrs r0, 24 cmp r0, r6 beq _0808D20C _0808D25E: adds r4, 0x1 movs r0, 0xCE lsls r0, 1 cmp r4, r0 ble _0808D23C _0808D268: movs r0, 0 _0808D26A: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0808D274: .4byte gUnknown_203B45C thumb_func_end sub_808D1DC thumb_func_start sub_808D278 sub_808D278: push {r4-r7,lr} lsls r0, 16 asrs r0, 16 ldr r1, _0808D29C ldr r2, [r1] lsls r1, r0, 3 adds r1, r0 lsls r1, 3 adds r1, r2 ldrb r6, [r1, 0x16] ldr r0, _0808D2A0 ldr r0, [r0] adds r0, r6 ldrb r0, [r0] cmp r0, 0 bne _0808D2AA b _0808D2DA .align 2, 0 _0808D29C: .4byte gUnknown_202F3E0 _0808D2A0: .4byte gUnknown_203B468 _0808D2A4: ldr r0, [r7] adds r0, r5 b _0808D2DC _0808D2AA: movs r4, 0 ldr r7, _0808D2E4 _0808D2AE: movs r0, 0x58 adds r5, r4, 0 muls r5, r0 ldr r0, [r7] adds r0, r5, r0 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0808D2D0 adds r0, r4, 0 bl sub_80923D4 lsls r0, 24 lsrs r0, 24 cmp r0, r6 beq _0808D2A4 _0808D2D0: adds r4, 0x1 movs r0, 0xCE lsls r0, 1 cmp r4, r0 ble _0808D2AE _0808D2DA: movs r0, 0 _0808D2DC: pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0808D2E4: .4byte gUnknown_203B45C thumb_func_end sub_808D278 thumb_func_start sub_808D2E8 sub_808D2E8: push {r4-r6,lr} sub sp, 0x60 adds r4, r0, 0 adds r6, r1, 0 adds r5, r2, 0 ldr r0, [sp, 0x70] lsls r4, 16 asrs r4, 16 lsls r5, 24 lsrs r5, 24 str r3, [sp] str r0, [sp, 0x4] add r0, sp, 0x8 adds r1, r4, 0 adds r2, r6, 0 adds r3, r5, 0 bl sub_808CFD0 add r0, sp, 0x8 bl sub_808D1DC add sp, 0x60 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_808D2E8 thumb_func_start sub_808D31C sub_808D31C: push {lr} adds r1, r0, 0 ldrb r0, [r1, 0x2] cmp r0, 0 bne _0808D338 movs r2, 0 ldrb r0, [r1, 0x4] cmp r0, 0x41 bne _0808D330 movs r2, 0x1 _0808D330: adds r0, r2, 0 cmp r0, 0 bne _0808D338 strh r0, [r1] _0808D338: pop {r0} bx r0 thumb_func_end sub_808D31C thumb_func_start sub_808D33C sub_808D33C: push {r4,lr} movs r3, 0 ldr r0, _0808D360 ldr r4, [r0] _0808D344: movs r0, 0x58 muls r0, r3 adds r2, r0, r4 ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0808D364 ldrb r0, [r2, 0x2] cmp r0, 0 beq _0808D364 adds r0, r2, 0 b _0808D370 .align 2, 0 _0808D360: .4byte gUnknown_203B45C _0808D364: adds r3, 0x1 movs r0, 0xCE lsls r0, 1 cmp r3, r0 ble _0808D344 movs r0, 0 _0808D370: pop {r4} pop {r1} bx r1 thumb_func_end sub_808D33C thumb_func_start sub_808D378 sub_808D378: push {r4,lr} movs r3, 0 ldr r0, _0808D3A4 ldr r4, [r0] _0808D380: movs r0, 0x58 muls r0, r3 adds r2, r0, r4 ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0808D3A8 movs r1, 0 ldrb r0, [r2, 0x4] cmp r0, 0x41 bne _0808D39A movs r1, 0x1 _0808D39A: cmp r1, 0 beq _0808D3A8 adds r0, r2, 0 b _0808D3B4 .align 2, 0 _0808D3A4: .4byte gUnknown_203B45C _0808D3A8: adds r3, 0x1 movs r0, 0xCE lsls r0, 1 cmp r3, r0 ble _0808D380 movs r0, 0 _0808D3B4: pop {r4} pop {r1} bx r1 thumb_func_end sub_808D378 thumb_func_start sub_808D3BC sub_808D3BC: push {r4-r6,lr} movs r4, 0 ldr r0, _0808D3E0 ldr r2, [r0] adds r3, r2, 0 movs r6, 0x1 movs r5, 0xCE lsls r5, 1 _0808D3CC: ldrb r1, [r2] adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _0808D3E4 ldrb r0, [r2, 0x4] cmp r0, 0x40 bne _0808D3E4 adds r0, r3, 0 b _0808D3F0 .align 2, 0 _0808D3E0: .4byte gUnknown_203B45C _0808D3E4: adds r2, 0x58 adds r3, 0x58 adds r4, 0x1 cmp r4, r5 ble _0808D3CC movs r0, 0 _0808D3F0: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_808D3BC thumb_func_start sub_808D3F8 sub_808D3F8: push {r4-r6,lr} movs r4, 0 ldr r0, _0808D41C ldr r2, [r0] adds r3, r2, 0 movs r6, 0x1 movs r5, 0xCE lsls r5, 1 _0808D408: ldrb r1, [r2] adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _0808D420 ldrb r0, [r2, 0x4] cmp r0, 0x41 bne _0808D420 adds r0, r3, 0 b _0808D42C .align 2, 0 _0808D41C: .4byte gUnknown_203B45C _0808D420: adds r2, 0x58 adds r3, 0x58 adds r4, 0x1 cmp r4, r5 ble _0808D408 movs r0, 0 _0808D42C: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_808D3F8 thumb_func_start sub_808D434 sub_808D434: push {r4-r7,lr} adds r6, r1, 0 lsls r0, 16 asrs r5, r0, 16 ldr r0, _0808D468 ldr r2, [r0] movs r4, 0 movs r3, 0 movs r0, 0x1 mov r12, r0 movs r7, 0xCE lsls r7, 1 _0808D44C: ldrb r1, [r2] mov r0, r12 ands r0, r1 cmp r0, 0 beq _0808D46E movs r1, 0x8 ldrsh r0, [r2, r1] cmp r0, r5 bne _0808D46E cmp r4, r6 bne _0808D46C adds r0, r2, 0 b _0808D478 .align 2, 0 _0808D468: .4byte gUnknown_203B45C _0808D46C: adds r4, 0x1 _0808D46E: adds r3, 0x1 adds r2, 0x58 cmp r3, r7 ble _0808D44C movs r0, 0 _0808D478: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_808D434 thumb_func_start sub_808D480 sub_808D480: push {r4,r5,lr} ldr r0, _0808D4A8 ldr r2, [r0] movs r4, 0 movs r5, 0x1 ldr r3, _0808D4AC _0808D48C: ldrb r1, [r2] adds r0, r5, 0 ands r0, r1 cmp r0, 0 beq _0808D498 adds r4, 0x1 _0808D498: subs r3, 0x1 adds r2, 0x58 cmp r3, 0 bne _0808D48C adds r0, r4, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0808D4A8: .4byte gUnknown_203B45C _0808D4AC: .4byte 0x0000019d thumb_func_end sub_808D480 thumb_func_start sub_808D4B0 sub_808D4B0: push {r4-r6,lr} ldr r0, _0808D4F8 ldr r2, [r0] movs r5, 0 movs r4, 0 ldr r6, _0808D4FC _0808D4BC: ldrh r3, [r2] lsrs r0, r3, 1 movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _0808D4E4 ldrb r0, [r2, 0x2] cmp r0, 0 bne _0808D4E4 movs r1, 0 ldrb r0, [r2, 0x4] cmp r0, 0x41 bne _0808D4D8 movs r1, 0x1 _0808D4D8: cmp r1, 0 bne _0808D4E4 movs r5, 0x1 adds r0, r6, 0 ands r0, r3 strh r0, [r2] _0808D4E4: adds r4, 0x1 adds r2, 0x58 movs r0, 0xCE lsls r0, 1 cmp r4, r0 ble _0808D4BC adds r0, r5, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0808D4F8: .4byte gUnknown_203B45C _0808D4FC: .4byte 0x0000fffd thumb_func_end sub_808D4B0 thumb_func_start sub_808D500 sub_808D500: push {r4-r6,lr} ldr r0, _0808D53C ldr r2, [r0] movs r5, 0 movs r4, 0 ldr r6, _0808D540 _0808D50C: ldrh r3, [r2] lsrs r0, r3, 1 movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _0808D526 ldrb r0, [r2, 0x2] cmp r0, 0 bne _0808D526 movs r5, 0x1 adds r0, r6, 0 ands r0, r3 strh r0, [r2] _0808D526: adds r4, 0x1 adds r2, 0x58 movs r0, 0xCE lsls r0, 1 cmp r4, r0 ble _0808D50C adds r0, r5, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0808D53C: .4byte gUnknown_203B45C _0808D540: .4byte 0x0000fffd thumb_func_end sub_808D500 thumb_func_start sub_808D544 sub_808D544: push {r4-r7,lr} adds r4, r0, 0 ldr r0, _0808D57C ldr r3, [r0] movs r5, 0 movs r2, 0 movs r7, 0x1 movs r6, 0xCE lsls r6, 1 adds r1, r4, 0 _0808D558: ldrh r0, [r3] lsrs r0, 1 ands r0, r7 cmp r0, 0 beq _0808D56C cmp r4, 0 beq _0808D568 str r2, [r1] _0808D568: adds r1, 0x4 adds r5, 0x1 _0808D56C: adds r2, 0x1 adds r3, 0x58 cmp r2, r6 ble _0808D558 adds r0, r5, 0 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0808D57C: .4byte gUnknown_203B45C thumb_func_end sub_808D544 thumb_func_start sub_808D580 sub_808D580: push {r4-r7,lr} adds r6, r0, 0 ldr r0, _0808D5AC ldr r2, [r0] movs r5, 0 movs r4, 0 mov r12, r0 adds r3, r6, 0 _0808D590: ldrb r0, [r2, 0x2] cmp r0, 0 beq _0808D5B0 ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0808D5B0 cmp r6, 0 beq _0808D5B0 str r4, [r3] adds r5, 0x1 b _0808D5BC .align 2, 0 _0808D5AC: .4byte gUnknown_203B45C _0808D5B0: adds r4, 0x1 adds r2, 0x58 movs r0, 0xCE lsls r0, 1 cmp r4, r0 ble _0808D590 _0808D5BC: mov r0, r12 ldr r2, [r0] movs r4, 0 lsls r0, r5, 2 adds r7, r0, r6 _0808D5C6: movs r1, 0 ldrb r0, [r2, 0x4] cmp r0, 0x41 bne _0808D5D0 movs r1, 0x1 _0808D5D0: cmp r1, 0 beq _0808D5F8 ldrb r0, [r2, 0x2] cmp r0, 0 bne _0808D5F8 ldrh r1, [r2] lsrs r0, r1, 1 movs r3, 0x1 ands r0, r3 cmp r0, 0 beq _0808D5F8 adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _0808D5F8 cmp r6, 0 beq _0808D5F8 str r4, [r7] adds r5, 0x1 b _0808D604 _0808D5F8: adds r4, 0x1 adds r2, 0x58 movs r0, 0xCE lsls r0, 1 cmp r4, r0 ble _0808D5C6 _0808D604: mov r0, r12 ldr r2, [r0] movs r4, 0 movs r3, 0x1 lsls r0, r5, 2 adds r7, r0, r6 _0808D610: ldrh r1, [r2] lsrs r0, r1, 1 ands r0, r3 cmp r0, 0 beq _0808D63E adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _0808D63E ldrb r0, [r2, 0x2] cmp r0, 0 bne _0808D63E movs r1, 0 ldrb r0, [r2, 0x4] cmp r0, 0x41 bne _0808D632 movs r1, 0x1 _0808D632: cmp r1, 0 bne _0808D63E cmp r6, 0 beq _0808D63E stm r7!, {r4} adds r5, 0x1 _0808D63E: adds r4, 0x1 adds r2, 0x58 movs r0, 0xCE lsls r0, 1 cmp r4, r0 ble _0808D610 adds r0, r5, 0 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_808D580 thumb_func_start sub_808D654 sub_808D654: push {r4-r6,lr} adds r5, r0, 0 ldr r0, _0808D6A0 ldr r2, [r0] movs r6, 0 movs r4, 0 adds r3, r5, 0 _0808D662: ldrh r0, [r2] lsrs r0, 1 movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _0808D68C ldrb r0, [r2, 0x2] cmp r0, 0 bne _0808D68C movs r1, 0 ldrb r0, [r2, 0x4] cmp r0, 0x41 bne _0808D67E movs r1, 0x1 _0808D67E: cmp r1, 0 bne _0808D68C cmp r5, 0 beq _0808D688 str r4, [r3] _0808D688: adds r3, 0x4 adds r6, 0x1 _0808D68C: adds r4, 0x1 adds r2, 0x58 movs r0, 0xCE lsls r0, 1 cmp r4, r0 ble _0808D662 adds r0, r6, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0808D6A0: .4byte gUnknown_203B45C thumb_func_end sub_808D654 thumb_func_start sub_808D6A4 sub_808D6A4: push {r4-r6,lr} adds r5, r0, 0 ldr r0, _0808D6E4 ldr r2, [r0] movs r6, 0 movs r4, 0 adds r3, r5, 0 _0808D6B2: ldrh r0, [r2] lsrs r0, 1 movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _0808D6CE ldrb r0, [r2, 0x2] cmp r0, 0 bne _0808D6CE cmp r5, 0 beq _0808D6CA str r4, [r3] _0808D6CA: adds r3, 0x4 adds r6, 0x1 _0808D6CE: adds r4, 0x1 adds r2, 0x58 movs r0, 0xCE lsls r0, 1 cmp r4, r0 ble _0808D6B2 adds r0, r6, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0808D6E4: .4byte gUnknown_203B45C thumb_func_end sub_808D6A4 thumb_func_start sub_808D6E8 sub_808D6E8: push {r4-r7,lr} mov r7, r8 push {r7} movs r7, 0 movs r5, 0 movs r4, 0 ldr r0, _0808D740 mov r8, r0 movs r6, 0x1 _0808D6FA: movs r0, 0x58 adds r1, r4, 0 muls r1, r0 mov r2, r8 ldr r0, [r2] adds r2, r0, r1 ldrh r1, [r2] adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _0808D728 lsrs r0, r1, 1 ands r0, r6 cmp r0, 0 beq _0808D728 movs r1, 0x8 ldrsh r0, [r2, r1] bl sub_808DACC lsls r0, 24 lsrs r0, 24 adds r5, r0 adds r7, 0x1 _0808D728: adds r4, 0x1 movs r0, 0xCE lsls r0, 1 cmp r4, r0 ble _0808D6FA cmp r5, 0x5 bgt _0808D744 cmp r7, 0x3 bgt _0808D744 movs r0, 0x1 b _0808D746 .align 2, 0 _0808D740: .4byte gUnknown_203B45C _0808D744: movs r0, 0 _0808D746: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_808D6E8 thumb_func_start sub_808D750 sub_808D750: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 16 asrs r0, 16 mov r8, r0 movs r6, 0 movs r5, 0 movs r4, 0 ldr r0, _0808D7C8 mov r9, r0 movs r7, 0x1 _0808D76A: movs r0, 0x58 adds r1, r4, 0 muls r1, r0 mov r2, r9 ldr r0, [r2] adds r1, r0, r1 ldrh r2, [r1] adds r0, r7, 0 ands r0, r2 cmp r0, 0 beq _0808D798 lsrs r0, r2, 1 ands r0, r7 cmp r0, 0 beq _0808D798 movs r2, 0x8 ldrsh r0, [r1, r2] bl sub_808DACC lsls r0, 24 lsrs r0, 24 adds r5, r0 adds r6, 0x1 _0808D798: adds r4, 0x1 movs r0, 0xCE lsls r0, 1 cmp r4, r0 ble _0808D76A cmp r6, 0x3 bgt _0808D7CC ldr r2, _0808D7C8 movs r0, 0x58 mov r1, r8 muls r1, r0 ldr r0, [r2] adds r1, r0, r1 movs r2, 0x8 ldrsh r0, [r1, r2] bl sub_808DACC lsls r0, 24 lsrs r0, 24 adds r5, r0 cmp r5, 0x6 bgt _0808D7CC movs r0, 0x1 b _0808D7CE .align 2, 0 _0808D7C8: .4byte gUnknown_203B45C _0808D7CC: movs r0, 0 _0808D7CE: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_808D750 thumb_func_start sub_808D7DC sub_808D7DC: lsls r0, 16 asrs r0, 16 ldr r3, _0808D7FC movs r2, 0x58 muls r2, r0 ldr r0, [r3] adds r0, r2 adds r2, r0, 0 adds r2, 0x28 ldrb r2, [r2] strb r2, [r1] adds r0, 0x29 ldrb r0, [r0] strb r0, [r1, 0x1] bx lr .align 2, 0 _0808D7FC: .4byte gUnknown_203B45C thumb_func_end sub_808D7DC thumb_func_start sub_808D800 sub_808D800: lsls r0, 16 asrs r0, 16 ldr r3, _0808D820 movs r2, 0x58 muls r2, r0 ldr r0, [r3] adds r0, r2 ldrb r3, [r1] adds r2, r0, 0 adds r2, 0x28 strb r3, [r2] ldrb r1, [r1, 0x1] adds r0, 0x29 strb r1, [r0] bx lr .align 2, 0 _0808D820: .4byte gUnknown_203B45C thumb_func_end sub_808D800 thumb_func_start sub_808D824 sub_808D824: push {r4,lr} sub sp, 0x14 adds r4, r0, 0 movs r1, 0x8 ldrsh r0, [r4, r1] bl sub_808D994 adds r1, r0, 0 mov r0, sp bl sub_80922F4 movs r2, 0 adds r4, 0x4C _0808D83E: adds r0, r4, r2 mov r3, sp adds r1, r3, r2 ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 beq _0808D850 movs r0, 0 b _0808D85C _0808D850: cmp r0, 0 beq _0808D85A adds r2, 0x1 cmp r2, 0x9 ble _0808D83E _0808D85A: movs r0, 0x1 _0808D85C: add sp, 0x14 pop {r4} pop {r1} bx r1 thumb_func_end sub_808D824 thumb_func_start sub_808D864 sub_808D864: push {r4-r7,lr} lsls r0, 16 asrs r0, 16 lsls r1, 16 asrs r1, 16 ldr r2, _0808D8A0 movs r3, 0x58 muls r0, r3 ldr r2, [r2] adds r0, r2, r0 adds r6, r0, 0 adds r6, 0x4C adds r0, r1, 0 muls r0, r3 adds r2, r0 adds r5, r2, 0 adds r5, 0x4C movs r7, 0 _0808D888: ldrb r0, [r6] bl sub_8092280 adds r4, r0, 0 ldrb r0, [r5] bl sub_8092280 cmp r4, r0 ble _0808D8A4 movs r0, 0x1 b _0808D8B4 .align 2, 0 _0808D8A0: .4byte gUnknown_203B45C _0808D8A4: cmp r4, r0 blt _0808D8B2 adds r6, 0x1 adds r5, 0x1 adds r7, 0x1 cmp r7, 0x9 ble _0808D888 _0808D8B2: movs r0, 0 _0808D8B4: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_808D864 thumb_func_start sub_808D8BC sub_808D8BC: push {lr} lsls r1, 16 asrs r1, 16 ldr r2, _0808D8DC ldr r3, [r2] lsls r2, r1, 3 adds r2, r1 lsls r2, 3 adds r2, r3 ldr r1, [r2] movs r2, 0x14 bl strncpy pop {r0} bx r0 .align 2, 0 _0808D8DC: .4byte gUnknown_202F3E0 thumb_func_end sub_808D8BC thumb_func_start sub_808D8E0 sub_808D8E0: push {r4,lr} lsls r3, r1, 16 asrs r3, 16 ldr r1, _0808D900 ldr r2, _0808D904 ldr r4, [r2] lsls r2, r3, 3 adds r2, r3 lsls r2, 3 adds r2, r4 ldr r2, [r2] bl sub_800D158 pop {r4} pop {r0} bx r0 .align 2, 0 _0808D900: .4byte gUnknown_8107600 _0808D904: .4byte gUnknown_202F3E0 thumb_func_end sub_808D8E0 thumb_func_start sub_808D908 sub_808D908: push {r4,lr} lsls r3, r1, 16 asrs r3, 16 ldr r1, _0808D928 ldr r2, _0808D92C ldr r4, [r2] lsls r2, r3, 3 adds r2, r3 lsls r2, 3 adds r2, r4 ldr r2, [r2] bl sub_800D158 pop {r4} pop {r0} bx r0 .align 2, 0 _0808D928: .4byte gUnknown_8107608 _0808D92C: .4byte gUnknown_202F3E0 thumb_func_end sub_808D908 thumb_func_start sub_808D930 sub_808D930: push {r4-r7,lr} adds r7, r0, 0 lsls r1, 16 asrs r6, r1, 16 adds r0, r6, 0 bl sub_808E770 lsls r0, 16 asrs r0, 16 cmp r0, 0xC9 bne _0808D970 ldr r5, _0808D968 movs r0, 0xC9 bl sub_808D994 adds r4, r0, 0 adds r0, r6, 0 bl sub_808E8C8 ldr r1, _0808D96C adds r0, r1 ldrb r3, [r0] adds r0, r7, 0 adds r1, r5, 0 adds r2, r4, 0 bl sub_800D158 b _0808D986 .align 2, 0 _0808D968: .4byte gUnknown_8107630 _0808D96C: .4byte gUnknown_8107610 _0808D970: ldr r1, _0808D98C ldr r0, _0808D990 ldr r2, [r0] lsls r0, r6, 3 adds r0, r6 lsls r0, 3 adds r0, r2 ldr r2, [r0] adds r0, r7, 0 bl sub_800D158 _0808D986: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0808D98C: .4byte gUnknown_8107638 _0808D990: .4byte gUnknown_202F3E0 thumb_func_end sub_808D930 thumb_func_start sub_808D994 sub_808D994: lsls r0, 16 asrs r0, 16 ldr r1, _0808D9A8 ldr r2, [r1] lsls r1, r0, 3 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r0, [r1] bx lr .align 2, 0 _0808D9A8: .4byte gUnknown_202F3E0 thumb_func_end sub_808D994 thumb_func_start sub_808D9AC sub_808D9AC: push {r4,r5,lr} sub sp, 0x14 adds r5, r0, 0 adds r4, r2, 0 adds r1, 0x4C mov r0, sp movs r2, 0xA bl sub_80922B4 cmp r4, 0 bne _0808D9C4 movs r4, 0x5 _0808D9C4: ldr r1, _0808D9D8 adds r0, r5, 0 adds r2, r4, 0 mov r3, sp bl sub_800D158 add sp, 0x14 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0808D9D8: .4byte gUnknown_810763C thumb_func_end sub_808D9AC thumb_func_start sub_808D9DC sub_808D9DC: push {r4,r5,lr} sub sp, 0x14 adds r5, r0, 0 adds r4, r2, 0 adds r1, 0x58 mov r0, sp movs r2, 0xA bl sub_80922B4 cmp r4, 0 bne _0808D9F4 movs r4, 0x6 _0808D9F4: ldr r1, _0808DA08 adds r0, r5, 0 adds r2, r4, 0 mov r3, sp bl sub_800D158 add sp, 0x14 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0808DA08: .4byte gUnknown_810763C thumb_func_end sub_808D9DC thumb_func_start sub_808DA0C sub_808DA0C: push {r4,lr} sub sp, 0x14 adds r4, r0, 0 adds r1, 0x58 mov r0, sp movs r2, 0xA bl sub_80922B4 ldr r1, _0808DA30 adds r0, r4, 0 mov r2, sp bl sub_800D158 add sp, 0x14 pop {r4} pop {r0} bx r0 .align 2, 0 _0808DA30: .4byte gUnknown_8107638 thumb_func_end sub_808DA0C thumb_func_start sub_808DA34 sub_808DA34: push {lr} adds r1, 0x4C movs r2, 0xA bl sub_80922B4 pop {r0} bx r0 thumb_func_end sub_808DA34 thumb_func_start sub_808DA44 sub_808DA44: push {r4-r6,lr} sub sp, 0x30 lsls r0, 16 asrs r4, r0, 16 lsls r1, 24 lsrs r2, r1, 24 cmp r2, 0xC bls _0808DAA0 mov r1, sp ldr r0, _0808DA98 ldm r0!, {r3,r5,r6} stm r1!, {r3,r5,r6} ldm r0!, {r3,r5,r6} stm r1!, {r3,r5,r6} ldm r0!, {r3,r5,r6} stm r1!, {r3,r5,r6} ldm r0!, {r3,r5,r6} stm r1!, {r3,r5,r6} mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 beq _0808DA92 mov r1, sp add r3, sp, 0x48 _0808DA76: movs r5, 0 ldrsh r0, [r1, r5] cmp r0, r4 bne _0808DA84 ldr r0, [r1, 0x4] cmp r0, r2 beq _0808DA9C _0808DA84: adds r1, 0x8 cmp r1, r3 bgt _0808DA92 movs r6, 0 ldrsh r0, [r1, r6] cmp r0, 0 bne _0808DA76 _0808DA92: movs r0, 0 b _0808DAA6 .align 2, 0 _0808DA98: .4byte gUnknown_8107654 _0808DA9C: movs r0, 0x1 b _0808DAA6 _0808DAA0: ldr r0, _0808DAB0 adds r0, r2, r0 ldrb r0, [r0] _0808DAA6: add sp, 0x30 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0808DAB0: .4byte gUnknown_8107645 thumb_func_end sub_808DA44 thumb_func_start sub_808DAB4 sub_808DAB4: lsls r0, 16 asrs r0, 16 ldr r1, _0808DAC8 ldr r2, [r1] lsls r1, r0, 3 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r0, [r1, 0x4] bx lr .align 2, 0 _0808DAC8: .4byte gUnknown_202F3E0 thumb_func_end sub_808DAB4 thumb_func_start sub_808DACC sub_808DACC: lsls r0, 16 asrs r0, 16 ldr r1, _0808DAE0 ldr r2, [r1] lsls r1, r0, 3 adds r1, r0 lsls r1, 3 adds r1, r2 ldrb r0, [r1, 0x9] bx lr .align 2, 0 _0808DAE0: .4byte gUnknown_202F3E0 thumb_func_end sub_808DACC thumb_func_start sub_808DAE4 sub_808DAE4: lsls r0, 16 asrs r0, 16 ldr r1, _0808DAF8 ldr r2, [r1] lsls r1, r0, 3 adds r1, r0 lsls r1, 3 adds r1, r2 ldrb r0, [r1, 0x19] bx lr .align 2, 0 _0808DAF8: .4byte gUnknown_202F3E0 thumb_func_end sub_808DAE4 thumb_func_start sub_808DAFC sub_808DAFC: lsls r0, 16 asrs r0, 16 ldr r1, _0808DB10 ldr r2, [r1] lsls r1, r0, 3 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r0, [r1, 0xC] bx lr .align 2, 0 _0808DB10: .4byte gUnknown_202F3E0 thumb_func_end sub_808DAFC thumb_func_start sub_808DB14 sub_808DB14: lsls r0, 16 asrs r0, 16 ldr r1, _0808DB28 ldr r2, [r1] lsls r1, r0, 3 adds r1, r0 lsls r1, 3 adds r1, r2 ldrb r0, [r1, 0x15] bx lr .align 2, 0 _0808DB28: .4byte gUnknown_202F3E0 thumb_func_end sub_808DB14 thumb_func_start sub_808DB2C sub_808DB2C: lsls r0, 16 asrs r0, 16 ldr r1, _0808DB44 ldr r2, [r1] lsls r1, r0, 3 adds r1, r0 lsls r1, 3 adds r1, r2 ldrb r0, [r1, 0x1B] lsls r0, 25 lsrs r0, 24 bx lr .align 2, 0 _0808DB44: .4byte gUnknown_202F3E0 thumb_func_end sub_808DB2C thumb_func_start sub_808DB48 sub_808DB48: lsls r0, 16 asrs r0, 16 ldr r1, _0808DB5C ldr r2, [r1] lsls r1, r0, 3 adds r1, r0 lsls r1, 3 adds r1, r2 ldrb r0, [r1, 0x1C] bx lr .align 2, 0 _0808DB5C: .4byte gUnknown_202F3E0 thumb_func_end sub_808DB48 thumb_func_start sub_808DB60 sub_808DB60: lsls r0, 16 asrs r0, 16 ldr r1, _0808DB74 ldr r2, [r1] lsls r1, r0, 3 adds r1, r0 lsls r1, 3 adds r1, r2 ldrb r0, [r1, 0x1D] bx lr .align 2, 0 _0808DB74: .4byte gUnknown_202F3E0 thumb_func_end sub_808DB60 thumb_func_start sub_808DB78 sub_808DB78: lsls r0, 16 asrs r0, 16 ldr r1, _0808DB8C ldr r2, [r1] lsls r1, r0, 3 adds r1, r0 lsls r1, 3 adds r1, r2 ldrh r0, [r1, 0x2C] bx lr .align 2, 0 _0808DB8C: .4byte gUnknown_202F3E0 thumb_func_end sub_808DB78 thumb_func_start sub_808DB90 sub_808DB90: lsls r0, 16 asrs r0, 16 ldr r1, _0808DBA4 ldr r2, [r1] lsls r1, r0, 3 adds r1, r0 lsls r1, 3 adds r1, r2 ldrh r0, [r1, 0x2E] bx lr .align 2, 0 _0808DBA4: .4byte gUnknown_202F3E0 thumb_func_end sub_808DB90 thumb_func_start sub_808DBA8 sub_808DBA8: lsls r0, 16 asrs r0, 16 ldr r1, _0808DBBC ldr r2, [r1] lsls r1, r0, 3 adds r1, r0 lsls r1, 3 adds r1, r2 ldrb r0, [r1, 0x16] bx lr .align 2, 0 _0808DBBC: .4byte gUnknown_202F3E0 thumb_func_end sub_808DBA8 thumb_func_start sub_808DBC0 sub_808DBC0: lsls r0, 16 asrs r0, 16 ldr r1, _0808DBD4 ldr r2, [r1] lsls r1, r0, 3 adds r1, r0 lsls r1, 3 adds r1, r2 ldrh r0, [r1, 0x1E] bx lr .align 2, 0 _0808DBD4: .4byte gUnknown_202F3E0 thumb_func_end sub_808DBC0 thumb_func_start sub_808DBD8 sub_808DBD8: lsls r0, 16 asrs r0, 16 ldr r1, _0808DBF0 ldr r2, [r1] lsls r1, r0, 3 adds r1, r0 lsls r1, 3 adds r1, r2 adds r1, 0x33 ldrb r0, [r1] bx lr .align 2, 0 _0808DBF0: .4byte gUnknown_202F3E0 thumb_func_end sub_808DBD8 thumb_func_start sub_808DBF4 sub_808DBF4: lsls r0, 16 asrs r0, 16 ldr r1, _0808DC08 ldr r2, [r1] lsls r1, r0, 3 adds r1, r0 lsls r1, 3 adds r1, r2 ldrb r0, [r1, 0x12] bx lr .align 2, 0 _0808DC08: .4byte gUnknown_202F3E0 thumb_func_end sub_808DBF4 thumb_func_start sub_808DC0C sub_808DC0C: lsls r0, 16 asrs r0, 16 ldr r1, _0808DC24 ldr r2, [r1] lsls r1, r0, 3 adds r1, r0 lsls r1, 3 adds r1, r2 movs r2, 0x34 ldrsh r0, [r1, r2] bx lr .align 2, 0 _0808DC24: .4byte gUnknown_202F3E0 thumb_func_end sub_808DC0C thumb_func_start sub_808DC28 sub_808DC28: lsls r0, 16 asrs r0, 16 ldr r2, _0808DC44 ldr r3, [r2] lsls r2, r0, 3 adds r2, r0 lsls r2, 3 adds r2, r3 lsls r1, 1 adds r2, 0x24 adds r2, r1 ldrh r0, [r2] bx lr .align 2, 0 _0808DC44: .4byte gUnknown_202F3E0 thumb_func_end sub_808DC28 thumb_func_start sub_808DC48 sub_808DC48: lsls r0, 16 asrs r0, 16 ldr r2, _0808DC64 ldr r3, [r2] lsls r2, r0, 3 adds r2, r0 lsls r2, 3 adds r2, r3 lsls r1, 1 adds r2, 0x28 adds r2, r1 ldrh r0, [r2] bx lr .align 2, 0 _0808DC64: .4byte gUnknown_202F3E0 thumb_func_end sub_808DC48 thumb_func_start sub_808DC68 sub_808DC68: lsls r0, 16 asrs r0, 16 ldr r2, _0808DC80 ldr r3, [r2] lsls r2, r0, 3 adds r2, r0 lsls r2, 3 adds r2, r3 adds r2, 0x13 adds r2, r1 ldrb r0, [r2] bx lr .align 2, 0 _0808DC80: .4byte gUnknown_202F3E0 thumb_func_end sub_808DC68 thumb_func_start sub_808DC84 sub_808DC84: lsls r0, 16 asrs r0, 16 ldr r2, _0808DC9C ldr r3, [r2] lsls r2, r0, 3 adds r2, r0 lsls r2, 3 adds r2, r3 adds r2, 0x17 adds r2, r1 ldrb r0, [r2] bx lr .align 2, 0 _0808DC9C: .4byte gUnknown_202F3E0 thumb_func_end sub_808DC84 thumb_func_start sub_808DCA0 sub_808DCA0: lsls r0, 16 asrs r0, 16 ldr r2, _0808DCBC ldr r3, [r2] lsls r2, r0, 3 adds r2, r0 lsls r2, 3 adds r2, r3 lsls r1, 1 adds r2, 0x3C adds r2, r1 movs r1, 0 ldrsh r0, [r2, r1] bx lr .align 2, 0 _0808DCBC: .4byte gUnknown_202F3E0 thumb_func_end sub_808DCA0 thumb_func_start sub_808DCC0 sub_808DCC0: lsls r0, 16 asrs r0, 16 ldr r1, _0808DCD8 ldr r2, [r1] lsls r1, r0, 3 adds r1, r0 lsls r1, 3 adds r1, r2 adds r1, 0x40 movs r2, 0 ldrsh r0, [r1, r2] bx lr .align 2, 0 _0808DCD8: .4byte gUnknown_202F3E0 thumb_func_end sub_808DCC0 thumb_func_start sub_808DCDC sub_808DCDC: lsls r0, 16 asrs r0, 16 ldr r2, _0808DCF8 ldr r3, [r2] lsls r2, r0, 3 adds r2, r0 lsls r2, 3 adds r2, r3 lsls r1, 1 adds r2, 0x42 adds r2, r1 movs r1, 0 ldrsh r0, [r2, r1] bx lr .align 2, 0 _0808DCF8: .4byte gUnknown_202F3E0 thumb_func_end sub_808DCDC thumb_func_start sub_808DCFC sub_808DCFC: lsls r0, 16 asrs r0, 16 ldr r1, _0808DD14 ldr r2, [r1] lsls r1, r0, 3 adds r1, r0 lsls r1, 3 adds r1, r2 movs r2, 0x3E ldrsh r0, [r1, r2] bx lr .align 2, 0 _0808DD14: .4byte gUnknown_202F3E0 thumb_func_end sub_808DCFC thumb_func_start sub_808DD18 sub_808DD18: push {r4,lr} lsls r0, 16 asrs r0, 16 ldr r2, _0808DD44 ldr r3, [r2] lsls r2, r0, 3 adds r2, r0 lsls r2, 3 adds r2, r3 ldr r4, [r2, 0x20] subs r1, 0x1 adds r0, r4, 0 muls r0, r1 movs r1, 0xA bl __divsi3 adds r4, r0 adds r0, r4, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _0808DD44: .4byte gUnknown_202F3E0 thumb_func_end sub_808DD18 thumb_func_start sub_808DD48 sub_808DD48: lsls r0, 16 asrs r0, 16 ldr r2, _0808DD64 ldr r3, [r2] lsls r2, r0, 3 adds r2, r0 lsls r2, 3 adds r2, r3 ldr r3, [r2, 0x38] ldr r2, [r2, 0x34] str r2, [r1] str r3, [r1, 0x4] bx lr .align 2, 0 _0808DD64: .4byte gUnknown_202F3E0 thumb_func_end sub_808DD48 thumb_func_start sub_808DD68 sub_808DD68: push {lr} lsls r0, 16 asrs r2, r0, 16 cmp r1, 0 bne _0808DD88 ldr r0, _0808DD84 ldr r1, [r0] lsls r0, r2, 3 adds r0, r2 lsls r0, 3 adds r0, r1 ldrb r0, [r0, 0x8] b _0808DD8A .align 2, 0 _0808DD84: .4byte gUnknown_202F3E0 _0808DD88: movs r0, 0xA _0808DD8A: pop {r1} bx r1 thumb_func_end sub_808DD68 thumb_func_start sub_808DD90 sub_808DD90: push {lr} sub sp, 0xC lsls r0, 16 asrs r2, r0, 16 ldr r0, _0808DDBC ldr r1, [r0] lsls r0, r2, 3 adds r0, r2 lsls r0, 3 adds r0, r1 ldrh r0, [r0, 0x10] cmp r0, 0 beq _0808DDC8 ldr r1, _0808DDC0 mov r0, sp bl sprintf ldr r1, _0808DDC4 mov r0, sp bl OpenFile b _0808DDCA .align 2, 0 _0808DDBC: .4byte gUnknown_202F3E0 _0808DDC0: .4byte gUnknown_8107684 _0808DDC4: .4byte gUnknown_8510000 _0808DDC8: movs r0, 0 _0808DDCA: add sp, 0xC pop {r1} bx r1 thumb_func_end sub_808DD90 thumb_func_start sub_808DDD0 sub_808DDD0: push {lr} sub sp, 0xC lsls r0, 16 asrs r2, r0, 16 ldr r0, _0808DDFC ldr r1, [r0] lsls r0, r2, 3 adds r0, r2 lsls r0, 3 adds r0, r1 ldrh r0, [r0, 0x10] cmp r0, 0 beq _0808DE08 ldr r1, _0808DE00 mov r0, sp bl sprintf ldr r1, _0808DE04 mov r0, sp bl OpenFileAndGetFileDataPtr b _0808DE0A .align 2, 0 _0808DDFC: .4byte gUnknown_202F3E0 _0808DE00: .4byte gUnknown_8107684 _0808DE04: .4byte gUnknown_8510000 _0808DE08: movs r0, 0 _0808DE0A: add sp, 0xC pop {r1} bx r1 thumb_func_end sub_808DDD0 thumb_func_start sub_808DE10 sub_808DE10: lsls r0, 16 asrs r0, 16 ldr r2, _0808DE2C ldr r3, [r2] lsls r2, r0, 3 adds r2, r0 lsls r2, 3 adds r2, r3 ldrh r0, [r2, 0x10] asrs r0, r1 movs r1, 0x1 ands r0, r1 bx lr .align 2, 0 _0808DE2C: .4byte gUnknown_202F3E0 thumb_func_end sub_808DE10 thumb_func_start sub_808DE30 sub_808DE30: push {r4,lr} adds r2, r1, 0 ldr r4, _0808DE4C movs r1, 0x58 adds r3, r2, 0 muls r3, r1 ldr r1, [r4] adds r1, r3 bl sub_808DE50 pop {r4} pop {r0} bx r0 .align 2, 0 _0808DE4C: .4byte gUnknown_203B45C thumb_func_end sub_808DE30 thumb_func_start sub_808DE50 sub_808DE50: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 adds r5, r0, 0 adds r6, r1, 0 adds r4, r2, 0 ldrh r0, [r6] strh r0, [r5] ldrb r0, [r6, 0x3] strb r0, [r5, 0x3] ldrh r0, [r6, 0x14] strh r0, [r5, 0x8] ldr r0, [r6, 0x20] str r0, [r5, 0x4C] adds r0, r5, 0 adds r0, 0x54 bl sub_808E6F4 ldr r0, [r6, 0x4] str r0, [r5, 0x4] ldrb r0, [r6, 0x2] strb r0, [r5, 0x2] strh r4, [r5, 0xA] ldrh r0, [r6, 0x8] strh r0, [r5, 0xE] adds r0, r6, 0 adds r0, 0x24 ldrb r1, [r0] adds r0, r5, 0 adds r0, 0x50 strb r1, [r0] ldrh r0, [r6, 0x16] strh r0, [r5, 0x12] strh r0, [r5, 0x10] add r0, sp, 0x4 mov r8, r0 adds r2, r6, 0 adds r2, 0x18 adds r1, r5, 0 adds r1, 0x14 movs r3, 0x1 _0808DEA4: ldrb r0, [r2] strb r0, [r1] ldrb r0, [r2, 0x2] strb r0, [r1, 0x2] adds r2, 0x1 adds r1, 0x1 subs r3, 0x1 cmp r3, 0 bge _0808DEA4 ldr r0, [r6, 0x1C] str r0, [r5, 0x18] adds r0, r5, 0 adds r0, 0x1C adds r1, r6, 0 adds r1, 0x2C bl sub_8093F50 movs r3, 0 movs r0, 0x28 adds r0, r6 mov r12, r0 adds r2, r5, 0 adds r2, 0x40 adds r7, r5, 0 adds r7, 0x58 adds r4, r6, 0 adds r4, 0x4C _0808DEDA: adds r0, r7, r3 adds r1, r4, r3 ldrb r1, [r1] strb r1, [r0] adds r3, 0x1 cmp r3, 0x9 ble _0808DEDA mov r0, r12 ldrb r1, [r0] negs r0, r1 orrs r0, r1 lsrs r0, 31 cmp r0, 0 beq _0808DF00 adds r0, r2, 0 mov r1, r12 bl sub_8090B64 b _0808DF06 _0808DF00: strb r0, [r2, 0x2] strb r0, [r2, 0x1] strb r0, [r2] _0808DF06: mov r0, sp movs r1, 0x64 bl sub_80943A0 ldr r0, [sp] str r0, [r5, 0x44] mov r0, r8 movs r1, 0x64 bl sub_80943A0 ldr r0, [sp, 0x4] str r0, [r5, 0x48] add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_808DE50 thumb_func_start sub_808DF2C sub_808DF2C: push {lr} ldr r3, _0808DF40 movs r2, 0x58 muls r2, r0 ldr r0, [r3] adds r0, r2 bl sub_808DF44 pop {r0} bx r0 .align 2, 0 _0808DF40: .4byte gUnknown_203B45C thumb_func_end sub_808DF2C thumb_func_start sub_808DF44 sub_808DF44: push {r4-r7,lr} adds r5, r0, 0 adds r4, r1, 0 ldrh r0, [r4] strh r0, [r5] ldrb r0, [r4, 0x3] strb r0, [r5, 0x3] ldrh r0, [r4, 0x8] strh r0, [r5, 0x14] ldr r0, [r4, 0x4C] str r0, [r5, 0x20] ldr r0, [r4, 0x4] str r0, [r5, 0x4] ldrb r0, [r4, 0x2] strb r0, [r5, 0x2] ldrh r0, [r4, 0xE] strh r0, [r5, 0x8] adds r0, r4, 0 adds r0, 0x50 ldrb r1, [r0] adds r0, r5, 0 adds r0, 0x24 strb r1, [r0] ldrh r0, [r4, 0x12] strh r0, [r5, 0x16] adds r2, r4, 0 adds r2, 0x14 adds r1, r5, 0 adds r1, 0x18 movs r3, 0x1 _0808DF80: ldrb r0, [r2] strb r0, [r1] ldrb r0, [r2, 0x2] strb r0, [r1, 0x2] adds r2, 0x1 adds r1, 0x1 subs r3, 0x1 cmp r3, 0 bge _0808DF80 ldr r0, [r4, 0x18] str r0, [r5, 0x1C] adds r0, r5, 0 adds r0, 0x2C adds r1, r4, 0 adds r1, 0x1C bl sub_8093FA8 movs r3, 0 adds r7, r4, 0 adds r7, 0x40 adds r6, r5, 0 adds r6, 0x28 adds r5, 0x4C adds r2, r4, 0 adds r2, 0x58 _0808DFB2: adds r0, r5, r3 adds r1, r2, r3 ldrb r1, [r1] strb r1, [r0] adds r3, 0x1 cmp r3, 0x9 ble _0808DFB2 ldrb r0, [r7] movs r1, 0x1 ands r1, r0 cmp r1, 0 beq _0808DFD4 adds r0, r6, 0 adds r1, r7, 0 bl sub_8090BB0 b _0808DFD6 _0808DFD4: strb r1, [r6] _0808DFD6: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_808DF44 thumb_func_start sub_808DFDC sub_808DFDC: push {lr} ldr r3, _0808E000 movs r2, 0x58 muls r2, r0 ldr r0, [r3] adds r3, r0, r2 adds r1, 0x40 ldrb r0, [r1] movs r2, 0x1 ands r2, r0 cmp r2, 0 beq _0808E004 adds r0, r3, 0 adds r0, 0x28 bl sub_8090BB0 b _0808E00A .align 2, 0 _0808E000: .4byte gUnknown_203B45C _0808E004: adds r0, r3, 0 adds r0, 0x28 strb r2, [r0] _0808E00A: pop {r0} bx r0 thumb_func_end sub_808DFDC thumb_func_start sub_808E010 sub_808E010: push {r4-r6,lr} sub sp, 0xC adds r6, r0, 0 adds r5, r2, 0 lsls r1, 16 asrs r2, r1, 16 ldr r1, _0808E06C movs r3, 0 ldrsh r0, [r1, r3] cmp r0, r2 beq _0808E04A strh r2, [r1] ldr r1, _0808E070 mov r0, sp bl sprintf ldr r1, _0808E074 mov r0, sp bl OpenFileAndGetFileDataPtr adds r4, r0, 0 ldr r0, _0808E078 movs r1, 0 adds r2, r4, 0 bl sub_800AAA8 adds r0, r4, 0 bl CloseFile _0808E04A: subs r5, 0x1 cmp r5, 0 bge _0808E052 movs r5, 0 _0808E052: ldr r0, _0808E078 lsls r1, r5, 1 adds r1, r5 lsls r1, 2 adds r2, r6, 0 adds r1, r0 ldm r1!, {r0,r3,r4} stm r2!, {r0,r3,r4} add sp, 0xC pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0808E06C: .4byte gUnknown_20384E8 _0808E070: .4byte gUnknown_810768C _0808E074: .4byte gUnknown_8300500 _0808E078: .4byte gUnknown_20384F0 thumb_func_end sub_808E010 thumb_func_start sub_808E07C sub_808E07C: push {r4,lr} adds r2, r0, 0 adds r4, r1, 0 ldrb r1, [r2] adds r2, 0x1 movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0808E094 ldrb r3, [r2] adds r2, 0x1 b _0808E098 _0808E094: adds r3, r1, 0 movs r1, 0 _0808E098: movs r0, 0x7F ands r3, r0 ands r1, r0 lsls r0, r1, 7 orrs r0, r3 strh r0, [r4] adds r0, r2, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_808E07C thumb_func_start sub_808E0AC sub_808E0AC: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 adds r6, r0, 0 mov r8, r2 adds r5, r3, 0 lsls r1, 16 asrs r1, 16 adds r2, r1, 0 movs r7, 0 ldr r0, _0808E0DC cmp r1, r0 beq _0808E0D8 cmp r1, 0 beq _0808E0D8 movs r0, 0xD2 lsls r0, 1 cmp r1, r0 bne _0808E0E0 _0808E0D8: movs r0, 0 b _0808E170 .align 2, 0 _0808E0DC: .4byte 0x000001a5 _0808E0E0: adds r0, r2, 0 bl sub_8092B18 adds r1, r0, 0 mov r4, sp movs r0, 0x88 lsls r0, 1 mov r10, r0 movs r3, 0xB1 lsls r3, 1 mov r9, r3 b _0808E156 _0808E0F8: cmp r0, r8 bne _0808E156 movs r2, 0x1 ldrh r0, [r4] cmp r0, 0xEE bne _0808E110 ldr r0, _0808E180 movs r3, 0 ldrsh r0, [r0, r3] cmp r5, r0 bge _0808E110 movs r2, 0 _0808E110: ldrh r0, [r4] cmp r0, 0xEF bne _0808E122 ldr r0, _0808E184 movs r3, 0 ldrsh r0, [r0, r3] cmp r5, r0 bge _0808E122 movs r2, 0 _0808E122: ldrh r0, [r4] cmp r0, r10 bne _0808E134 ldr r0, _0808E188 movs r3, 0 ldrsh r0, [r0, r3] cmp r5, r0 bge _0808E134 movs r2, 0 _0808E134: ldrh r0, [r4] cmp r0, r9 bne _0808E146 ldr r0, _0808E18C movs r3, 0 ldrsh r0, [r0, r3] cmp r5, r0 bge _0808E146 movs r2, 0 _0808E146: cmp r2, 0 beq _0808E156 cmp r7, 0xF bgt _0808E156 ldrh r0, [r4] strh r0, [r6] adds r6, 0x2 adds r7, 0x1 _0808E156: ldrb r0, [r1] cmp r0, 0 beq _0808E16E adds r0, r1, 0 mov r1, sp bl sub_808E07C adds r1, r0, 0 ldrb r0, [r1] adds r1, 0x1 cmp r0, r8 ble _0808E0F8 _0808E16E: adds r0, r7, 0 _0808E170: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0808E180: .4byte gUnknown_810ACB8 _0808E184: .4byte gUnknown_810ACBA _0808E188: .4byte gUnknown_810ACBC _0808E18C: .4byte gUnknown_810ACBE thumb_func_end sub_808E0AC thumb_func_start sub_808E190 sub_808E190: push {r4,r5,lr} sub sp, 0x4 lsls r0, 16 lsrs r5, r0, 16 lsls r1, 16 asrs r4, r1, 16 ldr r0, _0808E1B8 cmp r4, r0 beq _0808E20C cmp r4, 0 beq _0808E20C movs r0, 0xD2 lsls r0, 1 cmp r4, r0 beq _0808E20C movs r0, 0xB0 lsls r0, 1 cmp r5, r0 bne _0808E1C0 b _0808E20C .align 2, 0 _0808E1B8: .4byte 0x000001a5 _0808E1BC: movs r0, 0x1 b _0808E20E _0808E1C0: adds r0, r4, 0 bl sub_8092B18 adds r1, r0, 0 b _0808E1DE _0808E1CA: adds r0, r1, 0 mov r1, sp bl sub_808E07C adds r1, r0, 0 adds r1, 0x1 mov r0, sp ldrh r0, [r0] cmp r5, r0 beq _0808E1BC _0808E1DE: ldrb r0, [r1] cmp r0, 0 bne _0808E1CA adds r0, r4, 0 bl sub_8092B54 adds r1, r0, 0 ldrb r0, [r1] cmp r0, 0 beq _0808E20C mov r4, sp adds r4, 0x2 _0808E1F6: adds r0, r1, 0 adds r1, r4, 0 bl sub_808E07C adds r1, r0, 0 ldrh r0, [r4] cmp r0, r5 beq _0808E1BC ldrb r0, [r1] cmp r0, 0 bne _0808E1F6 _0808E20C: movs r0, 0 _0808E20E: add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_808E190 thumb_func_start sub_808E218 sub_808E218: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C mov r10, r0 mov r8, r1 movs r0, 0 mov r9, r0 movs r0, 0xCF lsls r0, 2 add r0, r10 mov r1, r9 str r1, [r0] mov r2, r8 movs r3, 0x8 ldrsh r1, [r2, r3] ldr r0, _0808E254 cmp r1, r0 beq _0808E24E cmp r1, 0 beq _0808E24E movs r0, 0xD2 lsls r0, 1 cmp r1, r0 bne _0808E258 _0808E24E: movs r0, 0 b _0808E396 .align 2, 0 _0808E254: .4byte 0x000001a5 _0808E258: mov r0, r8 mov r1, sp bl sub_808E3B8 str r0, [sp, 0x10] movs r5, 0 cmp r9, r0 blt _0808E26A b _0808E38A _0808E26A: lsls r4, r5, 2 mov r1, sp adds r0, r1, r4 movs r2, 0 ldrsh r0, [r0, r2] bl sub_8092B18 adds r6, r0, 0 str r4, [sp, 0x18] adds r5, 0x1 str r5, [sp, 0x14] b _0808E35E _0808E282: movs r0, 0xCE lsls r0, 1 cmp r9, r0 bgt _0808E35E movs r7, 0x1 ldrh r0, [r4] cmp r0, 0xEE bne _0808E2A4 ldr r0, _0808E3A8 mov r3, r8 movs r4, 0x14 ldrsh r1, [r3, r4] movs r2, 0 ldrsh r0, [r0, r2] cmp r1, r0 bge _0808E2A4 movs r7, 0 _0808E2A4: mov r3, r12 ldrh r0, [r3] cmp r0, 0xEF bne _0808E2BE ldr r0, _0808E3AC mov r4, r8 movs r2, 0x14 ldrsh r1, [r4, r2] movs r3, 0 ldrsh r0, [r0, r3] cmp r1, r0 bge _0808E2BE movs r7, 0 _0808E2BE: mov r4, r12 ldrh r1, [r4] movs r0, 0x88 lsls r0, 1 cmp r1, r0 bne _0808E2DC ldr r0, _0808E3B0 mov r2, r8 movs r3, 0x14 ldrsh r1, [r2, r3] movs r4, 0 ldrsh r0, [r0, r4] cmp r1, r0 bge _0808E2DC movs r7, 0 _0808E2DC: mov r0, r12 ldrh r1, [r0] movs r0, 0xB1 lsls r0, 1 cmp r1, r0 bne _0808E2FA ldr r0, _0808E3B4 mov r2, r8 movs r3, 0x14 ldrsh r1, [r2, r3] movs r4, 0 ldrsh r0, [r0, r4] cmp r1, r0 bge _0808E2FA movs r7, 0 _0808E2FA: movs r4, 0x1 mov r5, r12 mov r2, r8 adds r2, 0x2C movs r3, 0x3 _0808E304: ldrb r1, [r2] adds r0, r4, 0 ands r0, r1 cmp r0, 0 beq _0808E318 ldrh r0, [r2, 0x2] ldrh r1, [r5] cmp r0, r1 bne _0808E318 movs r7, 0 _0808E318: adds r2, 0x8 subs r3, 0x1 cmp r3, 0 bge _0808E304 cmp r7, 0 beq _0808E35E movs r2, 0 cmp r2, r9 bge _0808E34A mov r3, r10 ldrh r0, [r3] mov r4, r12 ldrh r4, [r4] cmp r0, r4 beq _0808E34A mov r3, r12 mov r1, r10 _0808E33A: adds r1, 0x2 adds r2, 0x1 cmp r2, r9 bge _0808E34A ldrh r0, [r1] ldrh r4, [r3] cmp r0, r4 bne _0808E33A _0808E34A: cmp r2, r9 bne _0808E35E mov r1, r9 lsls r0, r1, 1 add r0, r10 mov r2, r12 ldrh r1, [r2] strh r1, [r0] movs r3, 0x1 add r9, r3 _0808E35E: ldrb r0, [r6] cmp r0, 0 beq _0808E380 add r4, sp, 0xC adds r0, r6, 0 adds r1, r4, 0 bl sub_808E07C adds r6, r0, 0 ldrb r0, [r6] adds r6, 0x1 ldr r1, [sp, 0x18] add r1, sp ldrb r1, [r1, 0x2] mov r12, r4 cmp r0, r1 ble _0808E282 _0808E380: ldr r5, [sp, 0x14] ldr r4, [sp, 0x10] cmp r5, r4 bge _0808E38A b _0808E26A _0808E38A: movs r0, 0xCF lsls r0, 2 add r0, r10 mov r1, r9 str r1, [r0] mov r0, r9 _0808E396: add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0808E3A8: .4byte gUnknown_810ACB8 _0808E3AC: .4byte gUnknown_810ACBA _0808E3B0: .4byte gUnknown_810ACBC _0808E3B4: .4byte gUnknown_810ACBE thumb_func_end sub_808E218 thumb_func_start sub_808E3B8 sub_808E3B8: push {r4-r7,lr} ldrh r2, [r0, 0x8] strh r2, [r1] ldrb r2, [r0, 0x3] strb r2, [r1, 0x2] movs r7, 0x1 movs r3, 0x8 ldrsh r2, [r0, r3] movs r6, 0 adds r5, r0, 0 adds r5, 0xC adds r4, r1, 0x4 b _0808E3E0 _0808E3D2: strh r2, [r4] ldrb r0, [r5] strb r0, [r4, 0x2] adds r4, 0x4 adds r7, 0x1 adds r5, 0x4 adds r6, 0x1 _0808E3E0: cmp r6, 0x1 bgt _0808E3F8 ldrb r0, [r5] cmp r0, 0 beq _0808E3F8 adds r0, r2, 0 bl sub_808DC0C lsls r0, 16 asrs r2, r0, 16 cmp r2, 0 bne _0808E3D2 _0808E3F8: adds r0, r7, 0 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_808E3B8 thumb_func_start sub_808E400 sub_808E400: 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 lsls r2, 24 lsrs r2, 24 str r2, [sp] lsls r3, 24 lsrs r3, 24 str r3, [sp, 0x4] movs r0, 0 mov r10, r0 movs r7, 0x1 adds r6, r1, 0 _0808E426: lsls r0, r7, 16 asrs r5, r0, 16 mov r8, r5 adds r0, r5, 0 bl sub_808DC0C lsls r0, 16 asrs r0, 16 cmp r9, r0 bne _0808E46C ldr r0, [sp] cmp r0, 0 bne _0808E456 mov r0, r9 bl sub_808DACC adds r4, r0, 0 adds r0, r5, 0 bl sub_808DACC lsls r4, 24 lsls r0, 24 cmp r4, r0 bne _0808E46C _0808E456: ldr r0, [sp, 0x4] cmp r0, 0 bne _0808E462 ldr r0, _0808E488 cmp r5, r0 beq _0808E46C _0808E462: mov r0, r8 strh r0, [r6] adds r6, 0x2 movs r0, 0x1 add r10, r0 _0808E46C: adds r7, 0x1 ldr r0, _0808E48C cmp r7, r0 ble _0808E426 mov r0, r10 add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0808E488: .4byte 0x0000013d _0808E48C: .4byte 0x000001a7 thumb_func_end sub_808E400 thumb_func_start sub_808E490 sub_808E490: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x20 mov r8, r0 lsls r1, 16 asrs r1, 16 ldr r3, _0808E4F8 mov r0, sp movs r2, 0x1 bl sub_808E0AC adds r7, r0, 0 cmp r7, 0 bne _0808E4B8 movs r7, 0x1 mov r1, sp movs r0, 0xCC lsls r0, 1 strh r0, [r1] _0808E4B8: movs r4, 0 cmp r4, r7 bge _0808E4D8 mov r6, sp mov r5, r8 adds r4, r7, 0 _0808E4C4: ldrh r1, [r6] adds r0, r5, 0 bl sub_8092AD4 adds r6, 0x2 adds r5, 0x8 subs r4, 0x1 cmp r4, 0 bne _0808E4C4 adds r4, r7, 0 _0808E4D8: cmp r4, 0x3 bgt _0808E4EC movs r1, 0 lsls r0, r4, 3 add r0, r8 _0808E4E2: strb r1, [r0] adds r0, 0x8 adds r4, 0x1 cmp r4, 0x3 ble _0808E4E2 _0808E4EC: add sp, 0x20 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0808E4F8: .4byte 0x000003e7 thumb_func_end sub_808E490 thumb_func_start sub_808E4FC sub_808E4FC: push {lr} sub sp, 0x10 ldr r1, _0808E518 lsls r0, 2 adds r0, r1 ldr r0, [r0] mov r1, sp bl sub_8097DF0 ldr r0, [sp] ldr r0, [r0] add sp, 0x10 pop {r1} bx r1 .align 2, 0 _0808E518: .4byte gUnknown_810D628 thumb_func_end sub_808E4FC thumb_func_start sub_808E51C sub_808E51C: push {lr} sub sp, 0x10 ldr r1, _0808E538 lsls r0, 2 adds r0, r1 ldr r0, [r0] mov r1, sp bl sub_8097DF0 ldr r0, [sp] ldr r0, [r0, 0x4] add sp, 0x10 pop {r1} bx r1 .align 2, 0 _0808E538: .4byte gUnknown_810D628 thumb_func_end sub_808E51C thumb_func_start sub_808E53C sub_808E53C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 mov r8, r0 str r1, [sp] ldr r0, _0808E628 ldr r1, _0808E62C bl OpenFileAndGetFileDataPtr adds r7, r0, 0 ldr r4, [r7, 0x4] movs r6, 0x7 adds r4, 0x4 mov r1, r8 lsls r0, r1, 5 ldr r2, _0808E630 adds r5, r0, r2 _0808E564: adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x20 bl CpuCopy adds r5, 0x20 adds r4, 0x20 subs r6, 0x1 cmp r6, 0 bne _0808E564 adds r0, r7, 0 bl CloseFile movs r6, 0 movs r0, 0x3 mov r12, r0 ldr r1, _0808E634 mov r10, r1 ldr r2, _0808E638 mov r9, r2 ldr r5, _0808E63C movs r7, 0 mov r4, r12 ldr r0, [sp] ands r4, r0 lsls r4, 10 _0808E598: lsls r3, r6, 3 ldr r0, _0808E640 adds r3, r0 ldrh r1, [r3] ldr r0, _0808E644 ands r0, r1 ldr r1, _0808E648 ands r0, r1 mov r2, r10 ands r0, r2 ldr r1, _0808E64C ands r0, r1 ldr r1, _0808E650 ands r0, r1 strh r0, [r3] ldr r1, [r5] mov r2, r12 ands r1, r2 lsls r1, 14 mov r2, r9 ands r0, r2 orrs r0, r1 strh r0, [r3] ldrh r0, [r3, 0x2] ldr r1, _0808E654 ands r1, r0 strh r1, [r3, 0x2] ldr r0, _0808E63C adds r0, 0x4 adds r0, r7, r0 ldr r0, [r0] mov r2, r12 ands r0, r2 lsls r0, 14 mov r2, r9 ands r1, r2 orrs r1, r0 strh r1, [r3, 0x2] ldr r1, [r5, 0x8] add r1, r8 ldr r0, _0808E658 ands r1, r0 ldrh r2, [r3, 0x4] movs r0, 0xFC lsls r0, 8 ands r0, r2 orrs r0, r1 mov r1, r10 ands r0, r1 orrs r0, r4 ldr r1, _0808E65C ands r0, r1 strh r0, [r3, 0x4] ldrh r1, [r3, 0x6] ldr r0, _0808E660 ands r0, r1 ldr r1, _0808E664 ands r0, r1 strh r0, [r3, 0x6] adds r5, 0xC adds r7, 0xC adds r6, 0x1 cmp r6, 0x2 ble _0808E598 add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0808E628: .4byte gUnknown_81076BC _0808E62C: .4byte gUnknown_83B0000 _0808E630: .4byte 0x06010000 _0808E634: .4byte 0x0000f3ff _0808E638: .4byte 0x00003fff _0808E63C: .4byte gUnknown_8107698 _0808E640: .4byte gUnknown_202F3E8 _0808E644: .4byte 0x0000feff _0808E648: .4byte 0x0000fdff _0808E64C: .4byte 0x0000efff _0808E650: .4byte 0x0000dfff _0808E654: .4byte 0x0000c1ff _0808E658: .4byte 0x000003ff _0808E65C: .4byte 0x00000fff _0808E660: .4byte 0x0000fffe _0808E664: .4byte 0x0000fffd thumb_func_end sub_808E53C thumb_func_start sub_808E668 sub_808E668: push {r4,r5,lr} adds r4, r1, 0 adds r5, r2, 0 lsls r0, 16 asrs r1, r0, 16 ldr r2, _0808E6E0 adds r0, r2 lsrs r0, 16 cmp r0, 0x1 bls _0808E6D6 adds r0, r1, 0 bl sub_808DAE4 lsls r0, 24 lsrs r0, 24 movs r3, 0 ldrsh r2, [r4, r3] movs r3, 0x10 ldrsh r1, [r5, r3] adds r2, r1 movs r1, 0x2 ldrsh r3, [r4, r1] movs r4, 0x12 ldrsh r1, [r5, r4] adds r3, r1 ldr r4, _0808E6E4 lsls r1, r0, 2 adds r1, r4 ldr r1, [r1] adds r2, r1 subs r3, 0x4 ldr r1, _0808E6E8 ands r2, r1 lsls r0, 3 ldr r1, _0808E6EC adds r0, r1 ldrh r4, [r0, 0x2] movs r1, 0xFE lsls r1, 8 ands r1, r4 orrs r1, r2 strh r1, [r0, 0x2] ldr r1, _0808E6F0 ands r3, r1 lsls r3, 4 ldrh r2, [r0, 0x6] movs r1, 0xF ands r1, r2 orrs r1, r3 strh r1, [r0, 0x6] movs r1, 0 movs r2, 0 movs r3, 0 bl AddSprite _0808E6D6: movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0808E6E0: .4byte 0xffce0000 _0808E6E4: .4byte gUnknown_81076C4 _0808E6E8: .4byte 0x000001ff _0808E6EC: .4byte gUnknown_202F3E8 _0808E6F0: .4byte 0x00000fff thumb_func_end sub_808E668 thumb_func_start sub_808E6F4 sub_808E6F4: push {r4,r5,lr} adds r5, r0, 0 movs r0, 0xA bl RandomCapped ldr r1, _0808E70C lsls r0, 2 adds r0, r1 ldr r0, [r0] strh r0, [r5] movs r4, 0 b _0808E712 .align 2, 0 _0808E70C: .4byte gUnknown_810AC90 _0808E710: adds r4, 0x1 _0808E712: cmp r4, 0x63 bgt _0808E724 movs r0, 0x12 bl RandomCapped strb r0, [r5, 0x2] lsls r0, 24 cmp r0, 0 beq _0808E710 _0808E724: cmp r4, 0x64 bne _0808E72C movs r0, 0x2 strb r0, [r5, 0x2] _0808E72C: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_808E6F4 thumb_func_start sub_808E734 sub_808E734: push {r4-r6,lr} lsls r0, 16 asrs r4, r0, 16 movs r3, 0 ldr r0, _0808E75C ldr r2, [r0] movs r6, 0x1 movs r5, 0xCE lsls r5, 1 _0808E746: ldrb r1, [r2] adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _0808E760 movs r1, 0x8 ldrsh r0, [r2, r1] cmp r0, r4 bne _0808E760 movs r0, 0x1 b _0808E76A .align 2, 0 _0808E75C: .4byte gUnknown_203B45C _0808E760: adds r2, 0x58 adds r3, 0x1 cmp r3, r5 ble _0808E746 movs r0, 0 _0808E76A: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_808E734 thumb_func_start sub_808E770 sub_808E770: push {lr} lsls r0, 16 asrs r1, r0, 16 ldr r0, _0808E788 cmp r1, r0 beq _0808E792 movs r0, 0xBD lsls r0, 1 cmp r1, r0 bne _0808E78C subs r0, 0x2 b _0808E854 .align 2, 0 _0808E788: .4byte 0x00000179 _0808E78C: ldr r0, _0808E798 cmp r1, r0 bne _0808E79C _0808E792: movs r0, 0xBC lsls r0, 1 b _0808E854 .align 2, 0 _0808E798: .4byte 0x0000017b _0808E79C: cmp r1, 0xCA beq _0808E80E cmp r1, 0xCB beq _0808E80E cmp r1, 0xCC beq _0808E80E cmp r1, 0xCD beq _0808E80E cmp r1, 0xCE beq _0808E80E cmp r1, 0xCF beq _0808E80E cmp r1, 0xD0 beq _0808E80E cmp r1, 0xD1 beq _0808E80E cmp r1, 0xD2 beq _0808E80E cmp r1, 0xD3 beq _0808E80E cmp r1, 0xD4 beq _0808E80E cmp r1, 0xD5 beq _0808E80E cmp r1, 0xD6 beq _0808E80E cmp r1, 0xD7 beq _0808E80E cmp r1, 0xD8 beq _0808E80E cmp r1, 0xD9 beq _0808E80E cmp r1, 0xDA beq _0808E80E cmp r1, 0xDB beq _0808E80E cmp r1, 0xDC beq _0808E80E cmp r1, 0xDD beq _0808E80E cmp r1, 0xDE beq _0808E80E cmp r1, 0xDF beq _0808E80E cmp r1, 0xE0 beq _0808E80E cmp r1, 0xE1 beq _0808E80E cmp r1, 0xE2 beq _0808E80E ldr r0, _0808E814 cmp r1, r0 beq _0808E80E movs r0, 0xD0 lsls r0, 1 cmp r1, r0 bne _0808E818 _0808E80E: movs r0, 0xC9 b _0808E854 .align 2, 0 _0808E814: .4byte 0x0000019f _0808E818: ldr r0, _0808E82C cmp r1, r0 beq _0808E836 movs r0, 0xD1 lsls r0, 1 cmp r1, r0 bne _0808E830 subs r0, 0x4 b _0808E854 .align 2, 0 _0808E82C: .4byte 0x000001a1 _0808E830: ldr r0, _0808E83C cmp r1, r0 bne _0808E840 _0808E836: movs r0, 0xCF lsls r0, 1 b _0808E854 .align 2, 0 _0808E83C: .4byte 0x000001a3 _0808E840: ldr r0, _0808E84C cmp r1, r0 beq _0808E850 adds r0, r1, 0 b _0808E854 .align 2, 0 _0808E84C: .4byte 0x000001a7 _0808E850: movs r0, 0xCE lsls r0, 1 _0808E854: pop {r1} bx r1 thumb_func_end sub_808E770 thumb_func_start sub_808E858 sub_808E858: push {lr} lsls r0, 16 asrs r1, r0, 16 adds r2, r1, 0 ldr r0, _0808E874 cmp r1, r0 beq _0808E87E movs r0, 0xBD lsls r0, 1 cmp r1, r0 bne _0808E878 subs r0, 0x2 b _0808E8C4 .align 2, 0 _0808E874: .4byte 0x00000179 _0808E878: ldr r0, _0808E884 cmp r1, r0 bne _0808E888 _0808E87E: movs r0, 0xBC lsls r0, 1 b _0808E8C4 .align 2, 0 _0808E884: .4byte 0x0000017b _0808E888: ldr r0, _0808E89C cmp r1, r0 beq _0808E8A6 movs r0, 0xD1 lsls r0, 1 cmp r1, r0 bne _0808E8A0 subs r0, 0x4 b _0808E8C4 .align 2, 0 _0808E89C: .4byte 0x000001a1 _0808E8A0: ldr r0, _0808E8AC cmp r1, r0 bne _0808E8B0 _0808E8A6: movs r0, 0xCF lsls r0, 1 b _0808E8C4 .align 2, 0 _0808E8AC: .4byte 0x000001a3 _0808E8B0: ldr r0, _0808E8BC cmp r2, r0 beq _0808E8C0 adds r0, r2, 0 b _0808E8C4 .align 2, 0 _0808E8BC: .4byte 0x000001a7 _0808E8C0: movs r0, 0xCE lsls r0, 1 _0808E8C4: pop {r1} bx r1 thumb_func_end sub_808E858 thumb_func_start sub_808E8C8 sub_808E8C8: push {lr} lsls r0, 16 asrs r1, r0, 16 cmp r1, 0xCA bne _0808E8D6 movs r0, 0x1 b _0808E9B2 _0808E8D6: cmp r1, 0xCB bne _0808E8DE movs r0, 0x2 b _0808E9B2 _0808E8DE: cmp r1, 0xCC bne _0808E8E6 movs r0, 0x3 b _0808E9B2 _0808E8E6: cmp r1, 0xCD bne _0808E8EE movs r0, 0x4 b _0808E9B2 _0808E8EE: cmp r1, 0xCE bne _0808E8F6 movs r0, 0x5 b _0808E9B2 _0808E8F6: cmp r1, 0xCF bne _0808E8FE movs r0, 0x6 b _0808E9B2 _0808E8FE: cmp r1, 0xD0 bne _0808E906 movs r0, 0x7 b _0808E9B2 _0808E906: cmp r1, 0xD1 bne _0808E90E movs r0, 0x8 b _0808E9B2 _0808E90E: cmp r1, 0xD2 bne _0808E916 movs r0, 0x9 b _0808E9B2 _0808E916: cmp r1, 0xD3 bne _0808E91E movs r0, 0xA b _0808E9B2 _0808E91E: cmp r1, 0xD4 bne _0808E926 movs r0, 0xB b _0808E9B2 _0808E926: cmp r1, 0xD5 bne _0808E92E movs r0, 0xC b _0808E9B2 _0808E92E: cmp r1, 0xD6 bne _0808E936 movs r0, 0xD b _0808E9B2 _0808E936: cmp r1, 0xD7 bne _0808E93E movs r0, 0xE b _0808E9B2 _0808E93E: cmp r1, 0xD8 bne _0808E946 movs r0, 0xF b _0808E9B2 _0808E946: cmp r1, 0xD9 bne _0808E94E movs r0, 0x10 b _0808E9B2 _0808E94E: cmp r1, 0xDA bne _0808E956 movs r0, 0x11 b _0808E9B2 _0808E956: cmp r1, 0xDB bne _0808E95E movs r0, 0x12 b _0808E9B2 _0808E95E: cmp r1, 0xDC bne _0808E966 movs r0, 0x13 b _0808E9B2 _0808E966: cmp r1, 0xDD bne _0808E96E movs r0, 0x14 b _0808E9B2 _0808E96E: cmp r1, 0xDE bne _0808E976 movs r0, 0x15 b _0808E9B2 _0808E976: cmp r1, 0xDF bne _0808E97E movs r0, 0x16 b _0808E9B2 _0808E97E: cmp r1, 0xE0 bne _0808E986 movs r0, 0x17 b _0808E9B2 _0808E986: cmp r1, 0xE1 bne _0808E98E movs r0, 0x18 b _0808E9B2 _0808E98E: cmp r1, 0xE2 bne _0808E996 movs r0, 0x19 b _0808E9B2 _0808E996: ldr r0, _0808E9A0 cmp r1, r0 bne _0808E9A4 movs r0, 0x1A b _0808E9B2 .align 2, 0 _0808E9A0: .4byte 0x0000019f _0808E9A4: movs r0, 0xD0 lsls r0, 1 cmp r1, r0 beq _0808E9B0 movs r0, 0 b _0808E9B2 _0808E9B0: movs r0, 0x1B _0808E9B2: pop {r1} bx r1 thumb_func_end sub_808E8C8 thumb_func_start sub_808E9B8 sub_808E9B8: ldrh r1, [r0] ldr r0, _0808E9C0 ands r0, r1 bx lr .align 2, 0 _0808E9C0: .4byte 0x000001ff thumb_func_end sub_808E9B8 thumb_func_start sub_808E9C4 sub_808E9C4: lsls r1, 16 asrs r1, 16 ldrh r3, [r0] movs r2, 0xFE lsls r2, 8 ands r2, r3 orrs r2, r1 strh r2, [r0] bx lr thumb_func_end sub_808E9C4 thumb_func_start sub_808E9D8 sub_808E9D8: lsls r2, 16 asrs r2, 16 lsls r1, 9 orrs r2, r1 strh r2, [r0] bx lr thumb_func_end sub_808E9D8 thumb_func_start sub_808E9E4 sub_808E9E4: ldrh r0, [r0] lsrs r0, 9 bx lr thumb_func_end sub_808E9E4 thumb_func_start sub_808E9EC sub_808E9EC: push {r4-r6,lr} adds r3, r1, 0 ldrb r2, [r0, 0x18] str r2, [r3] ldrb r1, [r0, 0x19] str r1, [r3, 0x4] ldrb r1, [r0, 0x1A] str r1, [r3, 0x8] ldrb r1, [r0, 0x1B] str r1, [r3, 0xC] movs r1, 0 strb r1, [r3, 0x10] strb r1, [r3, 0x11] strb r1, [r3, 0x12] strb r1, [r3, 0x13] adds r1, r0, 0 adds r1, 0x28 ldrb r0, [r1] cmp r0, 0 beq _0808EA96 adds r4, r0, 0 adds r5, r4, 0 cmp r4, 0x13 bne _0808EA2A ldr r1, _0808EA9C ldrh r0, [r1] strb r0, [r3, 0x10] movs r6, 0 ldrsh r0, [r1, r6] adds r0, r2, r0 str r0, [r3] _0808EA2A: cmp r4, 0x21 bne _0808EA42 ldr r1, _0808EAA0 ldrb r0, [r1] ldrb r2, [r3, 0x11] adds r0, r2 strb r0, [r3, 0x11] movs r6, 0 ldrsh r1, [r1, r6] ldr r0, [r3, 0x4] adds r0, r1 str r0, [r3, 0x4] _0808EA42: cmp r4, 0x2B bne _0808EA66 ldr r2, _0808EAA4 ldrb r0, [r2] ldrb r6, [r3, 0x10] adds r1, r0, r6 strb r1, [r3, 0x10] ldrb r1, [r3, 0x11] adds r0, r1 strb r0, [r3, 0x11] movs r6, 0 ldrsh r1, [r2, r6] ldr r0, [r3] adds r0, r1 str r0, [r3] ldr r0, [r3, 0x4] adds r0, r1 str r0, [r3, 0x4] _0808EA66: cmp r4, 0x1E bne _0808EA7E ldr r1, _0808EAA8 ldrb r0, [r1] ldrb r2, [r3, 0x12] adds r0, r2 strb r0, [r3, 0x12] movs r6, 0 ldrsh r1, [r1, r6] ldr r0, [r3, 0x8] adds r0, r1 str r0, [r3, 0x8] _0808EA7E: cmp r5, 0x22 bne _0808EA96 ldr r1, _0808EAAC ldrb r0, [r1] ldrb r2, [r3, 0x13] adds r0, r2 strb r0, [r3, 0x13] movs r6, 0 ldrsh r1, [r1, r6] ldr r0, [r3, 0xC] adds r0, r1 str r0, [r3, 0xC] _0808EA96: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0808EA9C: .4byte gUnknown_810AC60 _0808EAA0: .4byte gUnknown_810AC62 _0808EAA4: .4byte gUnknown_810AC68 _0808EAA8: .4byte gUnknown_810AC64 _0808EAAC: .4byte gUnknown_810AC66 thumb_func_end sub_808E9EC thumb_func_start sub_808EAB0 sub_808EAB0: lsls r0, 24 ldr r1, _0808EABC lsrs r0, 22 adds r0, r1 ldr r0, [r0] bx lr .align 2, 0 _0808EABC: .4byte gUnknown_8112234 thumb_func_end sub_808EAB0 thumb_func_start sub_808EAC0 sub_808EAC0: push {lr} lsls r1, 24 ldr r2, _0808EAD8 lsrs r1, 22 adds r1, r2 ldr r1, [r1] movs r2, 0x14 bl strncpy pop {r0} bx r0 .align 2, 0 _0808EAD8: .4byte gUnknown_8112C14 thumb_func_end sub_808EAC0 thumb_func_start sub_808EADC sub_808EADC: lsls r0, 24 ldr r1, _0808EAE8 lsrs r0, 22 adds r0, r1 ldr r0, [r0] bx lr .align 2, 0 _0808EAE8: .4byte gUnknown_811240C thumb_func_end sub_808EADC thumb_func_start sub_808EAEC sub_808EAEC: lsls r0, 24 ldr r1, _0808EAF8 lsrs r0, 22 adds r0, r1 ldr r0, [r0] bx lr .align 2, 0 _0808EAF8: .4byte gUnknown_8112CFC thumb_func_end sub_808EAEC thumb_func_start sub_808EAFC sub_808EAFC: lsls r0, 24 lsrs r0, 24 ldr r1, _0808EB08 adds r0, r1 ldrb r0, [r0] bx lr .align 2, 0 _0808EB08: .4byte gUnknown_810A36B thumb_func_end sub_808EAFC thumb_func_start sub_808EB0C sub_808EB0C: push {r4-r6,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0 movs r3, 0 ldr r1, _0808EB44 _0808EB18: movs r6, 0 ldrsh r0, [r1, r6] cmp r0, r5 bgt _0808EB26 adds r0, r4, r2 strb r3, [r0] adds r2, 0x1 _0808EB26: adds r1, 0x2 adds r3, 0x1 cmp r3, 0xB ble _0808EB18 cmp r2, 0xB bgt _0808EB3E movs r1, 0xB _0808EB34: adds r0, r4, r2 strb r1, [r0] adds r2, 0x1 cmp r2, 0xB ble _0808EB34 _0808EB3E: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0808EB44: .4byte gUnknown_810A378 thumb_func_end sub_808EB0C thumb_func_start sub_808EB48 sub_808EB48: push {r4-r7,lr} adds r4, r1, 0 movs r6, 0x1 movs r5, 0 adds r2, r0, 0 ldr r1, _0808EB64 movs r3, 0xB _0808EB56: movs r7, 0 ldrsh r0, [r1, r7] cmp r0, r4 bgt _0808EB68 strb r6, [r2] b _0808EB6A .align 2, 0 _0808EB64: .4byte gUnknown_810A378 _0808EB68: strb r5, [r2] _0808EB6A: adds r2, 0x1 adds r1, 0x2 subs r3, 0x1 cmp r3, 0 bge _0808EB56 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_808EB48 thumb_func_start sub_808EB7C sub_808EB7C: push {lr} adds r2, r0, 0 lsls r1, 24 lsrs r1, 24 cmp r1, 0 bne _0808EB8C movs r0, 0 b _0808EB9E _0808EB8C: movs r3, 0 ldr r0, _0808EBA4 lsls r1, 2 adds r1, r0 ldr r0, [r1] cmp r0, r2 bgt _0808EB9C movs r3, 0x1 _0808EB9C: adds r0, r3, 0 _0808EB9E: pop {r1} bx r1 .align 2, 0 _0808EBA4: .4byte gUnknown_810A390 thumb_func_end sub_808EB7C thumb_func_start sub_808EBA8 sub_808EBA8: push {r4-r7,lr} mov r7, r8 push {r7} adds r7, r0, 0 mov r8, r1 movs r6, 0 movs r5, 0x1 _0808EBB6: lsls r0, r5, 24 lsrs r4, r0, 24 mov r0, r8 adds r1, r4, 0 bl sub_808EB7C lsls r0, 24 cmp r0, 0 beq _0808EBCE adds r0, r7, r6 strb r4, [r0] adds r6, 0x1 _0808EBCE: adds r5, 0x1 cmp r5, 0x17 ble _0808EBB6 adds r1, r6, 0 cmp r6, 0x17 bgt _0808EBE6 movs r2, 0 _0808EBDC: adds r0, r7, r1 strb r2, [r0] adds r1, 0x1 cmp r1, 0x17 ble _0808EBDC _0808EBE6: adds r0, r6, 0 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_808EBA8 thumb_func_start sub_808EBF4 sub_808EBF4: push {r4-r6,lr} adds r4, r0, 0 adds r6, r1, 0 movs r5, 0x1 lsls r5, r6 adds r1, r5, 0 bl sub_808ECD0 lsls r0, 24 cmp r0, 0 beq _0808EC22 ldrb r0, [r4] bics r0, r5 strb r0, [r4] asrs r1, r5, 8 ldrb r0, [r4, 0x1] bics r0, r1 strb r0, [r4, 0x1] asrs r1, r5, 16 ldrb r0, [r4, 0x2] bics r0, r1 strb r0, [r4, 0x2] b _0808EC2A _0808EC22: adds r0, r4, 0 adds r1, r6, 0 bl sub_808EC30 _0808EC2A: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_808EBF4 thumb_func_start sub_808EC30 sub_808EC30: push {r4-r7,lr} adds r3, r0, 0 adds r7, r1, 0 movs r4, 0 ldr r1, _0808EC90 lsls r0, r7, 2 adds r0, r1 ldr r6, [r0] adds r5, r1, 0 movs r0, 0x1 mov r12, r0 _0808EC46: ldr r0, [r5] cmp r6, r0 bne _0808EC66 mov r1, r12 lsls r1, r4 ldrb r0, [r3] bics r0, r1 strb r0, [r3] asrs r2, r1, 8 ldrb r0, [r3, 0x1] bics r0, r2 strb r0, [r3, 0x1] asrs r1, 16 ldrb r0, [r3, 0x2] bics r0, r1 strb r0, [r3, 0x2] _0808EC66: adds r5, 0x4 adds r4, 0x1 cmp r4, 0x17 ble _0808EC46 movs r1, 0x1 lsls r1, r7 ldrb r2, [r3] adds r0, r1, 0 orrs r0, r2 strb r0, [r3] asrs r0, r1, 8 ldrb r2, [r3, 0x1] orrs r0, r2 strb r0, [r3, 0x1] asrs r1, 16 ldrb r0, [r3, 0x2] orrs r1, r0 strb r1, [r3, 0x2] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0808EC90: .4byte gUnknown_81076E4 thumb_func_end sub_808EC30 thumb_func_start sub_808EC94 sub_808EC94: push {r4,r5,lr} adds r5, r0, 0 lsls r4, r1, 24 lsrs r4, 24 movs r0, 0 strb r0, [r5] strb r0, [r5, 0x1] strb r0, [r5, 0x2] adds r0, r5, 0 movs r1, 0x2 bl sub_808EC30 adds r0, r5, 0 movs r1, 0x3 bl sub_808EC30 adds r0, r5, 0 movs r1, 0x16 bl sub_808EC30 cmp r4, 0 beq _0808ECC8 adds r0, r5, 0 movs r1, 0x12 bl sub_808EC30 _0808ECC8: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_808EC94 thumb_func_start sub_808ECD0 sub_808ECD0: push {lr} adds r2, r0, 0 adds r3, r1, 0 ldrb r0, [r2] ands r0, r3 cmp r0, 0 bne _0808ECF6 ldrb r0, [r2, 0x1] lsrs r1, r3, 8 ands r0, r1 cmp r0, 0 bne _0808ECF6 ldrb r0, [r2, 0x2] lsrs r1, r3, 16 ands r0, r1 cmp r0, 0 bne _0808ECF6 movs r0, 0 b _0808ECF8 _0808ECF6: movs r0, 0x1 _0808ECF8: pop {r1} bx r1 thumb_func_end sub_808ECD0 thumb_func_start sub_808ECFC sub_808ECFC: movs r0, 0 bx lr thumb_func_end sub_808ECFC thumb_func_start sub_808ED00 sub_808ED00: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x10 mov r0, sp bl sub_808D580 adds r6, r0, 0 movs r4, 0 cmp r4, r6 bge _0808ED44 movs r0, 0x58 mov r8, r0 mov r7, sp movs r5, 0 adds r4, r6, 0 _0808ED20: ldr r0, _0808ED70 ldr r1, [r0] adds r0, r1, r5 ldr r2, _0808ED74 adds r0, r2 ldm r7!, {r2} mov r3, r8 muls r3, r2 adds r2, r3, 0 adds r1, r2 movs r2, 0x58 bl memcpy adds r5, 0x58 subs r4, 0x1 cmp r4, 0 bne _0808ED20 adds r4, r6, 0 _0808ED44: cmp r4, 0x3 bgt _0808ED64 ldr r5, _0808ED70 ldr r3, _0808ED74 movs r2, 0 movs r0, 0x58 adds r1, r4, 0 muls r1, r0 _0808ED54: ldr r0, [r5] adds r0, r1 adds r0, r3 strh r2, [r0] adds r1, 0x58 adds r4, 0x1 cmp r4, 0x3 ble _0808ED54 _0808ED64: add sp, 0x10 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0808ED70: .4byte gUnknown_203B45C _0808ED74: .4byte 0x00008f88 thumb_func_end sub_808ED00 thumb_func_start sub_808ED78 sub_808ED78: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x24 adds r3, r0, 0 adds r2, r1, 0 add r4, sp, 0xC adds r0, r4, 0 adds r1, r3, 0 bl sub_809486C mov r10, r4 mov r0, sp adds r0, 0x1E str r0, [sp, 0x20] add r1, sp, 0x1C mov r8, r1 ldr r0, _0808EDF0 adds r2, r0, 0 mov r1, sp movs r5, 0x5 _0808EDA6: ldrh r0, [r1] orrs r0, r2 strh r0, [r1] adds r1, 0x2 subs r5, 0x1 cmp r5, 0 bge _0808EDA6 movs r0, 0x1 negs r0, r0 ldr r1, [sp, 0x20] strh r0, [r1] movs r5, 0 mov r4, sp _0808EDC0: ldr r2, _0808EDF4 movs r0, 0x58 adds r1, r5, 0 muls r1, r0 ldr r0, [r2] adds r1, r0, r1 ldrh r2, [r1] movs r0, 0x1 ands r0, r2 cmp r0, 0 beq _0808EDF8 movs r0, 0x2 ands r0, r2 cmp r0, 0 beq _0808EDE2 strh r5, [r4] adds r4, 0x2 _0808EDE2: ldrb r0, [r1, 0x2] cmp r0, 0 beq _0808EDFA ldr r0, [sp, 0x20] strh r5, [r0] b _0808EDFA .align 2, 0 _0808EDF0: .4byte 0x0000ffff _0808EDF4: .4byte gUnknown_203B45C _0808EDF8: strb r0, [r1, 0x3] _0808EDFA: mov r0, r10 bl sub_808EFA0 adds r5, 0x1 movs r0, 0xCE lsls r0, 1 cmp r5, r0 ble _0808EDC0 ldr r1, _0808EE34 mov r9, r1 mov r4, r10 ldr r7, _0808EE38 movs r6, 0 movs r5, 0x3 _0808EE16: mov r1, r9 ldr r0, [r1] adds r0, r6, r0 ldr r1, _0808EE38 adds r0, r1 ldrb r0, [r0] movs r1, 0x1 ands r1, r0 cmp r1, 0 beq _0808EE3C movs r0, 0xFF mov r1, r8 strb r0, [r1] b _0808EE40 .align 2, 0 _0808EE34: .4byte gUnknown_203B45C _0808EE38: .4byte 0x00008f88 _0808EE3C: mov r0, r8 strb r1, [r0] _0808EE40: adds r0, r4, 0 mov r1, r8 movs r2, 0x1 bl sub_809488C mov r0, r9 ldr r1, [r0] adds r1, r7 adds r0, r4, 0 bl sub_808EFA0 adds r7, 0x58 adds r6, 0x58 subs r5, 0x1 cmp r5, 0 bge _0808EE16 mov r4, sp movs r5, 0x5 _0808EE64: mov r0, r10 adds r1, r4, 0 movs r2, 0x10 bl sub_809488C adds r4, 0x2 subs r5, 0x1 cmp r5, 0 bge _0808EE64 mov r0, r10 ldr r1, [sp, 0x20] movs r2, 0x10 bl sub_809488C mov r0, r10 bl nullsub_102 mov r1, r10 ldr r0, [r1, 0x8] add sp, 0x24 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_808ED78 thumb_func_start sub_808EE9C sub_808EE9C: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x14 adds r3, r0, 0 adds r2, r1, 0 mov r0, sp adds r1, r3, 0 bl sub_809485C movs r5, 0 add r7, sp, 0x10 movs r0, 0x12 add r0, sp mov r8, r0 ldr r6, _0808EF10 movs r4, 0 _0808EEBE: ldr r1, [r6] adds r1, r4 mov r0, sp bl sub_808F068 adds r4, 0x58 adds r5, 0x1 movs r0, 0xCE lsls r0, 1 cmp r5, r0 ble _0808EEBE movs r5, 0 adds r6, r7, 0 ldr r7, _0808EF10 _0808EEDA: mov r0, sp adds r1, r6, 0 movs r2, 0x1 bl sub_8094924 movs r0, 0x58 adds r4, r5, 0 muls r4, r0 ldr r1, _0808EF14 adds r0, r4, r1 ldr r1, [r7] adds r1, r0 mov r0, sp bl sub_808F068 ldrb r0, [r6] movs r1, 0x1 ands r1, r0 cmp r1, 0 beq _0808EF18 ldr r0, [r7] adds r0, r4 ldr r2, _0808EF14 adds r0, r2 movs r1, 0x3 b _0808EF20 .align 2, 0 _0808EF10: .4byte gUnknown_203B45C _0808EF14: .4byte 0x00008f88 _0808EF18: ldr r0, [r7] adds r0, r4 ldr r3, _0808EF98 adds r0, r3 _0808EF20: strh r1, [r0] adds r5, 0x1 cmp r5, 0x3 ble _0808EEDA mov r4, r8 movs r6, 0xCE lsls r6, 1 movs r5, 0x5 _0808EF30: mov r0, sp adds r1, r4, 0 movs r2, 0x10 bl sub_8094924 ldrh r0, [r4] cmp r0, r6 bhi _0808EF56 ldr r0, _0808EF9C ldr r2, [r0] movs r0, 0 ldrsh r1, [r4, r0] movs r0, 0x58 muls r0, r1 adds r2, r0 ldrh r1, [r2] movs r0, 0x2 orrs r0, r1 strh r0, [r2] _0808EF56: subs r5, 0x1 cmp r5, 0 bge _0808EF30 mov r0, sp mov r1, r8 movs r2, 0x10 bl sub_8094924 mov r2, r8 ldrh r1, [r2] movs r0, 0xCE lsls r0, 1 cmp r1, r0 bhi _0808EF84 ldr r0, _0808EF9C ldr r1, [r0] movs r3, 0 ldrsh r2, [r2, r3] movs r0, 0x58 muls r0, r2 adds r1, r0 movs r0, 0x1 strb r0, [r1, 0x2] _0808EF84: mov r0, sp bl nullsub_102 ldr r0, [sp, 0x8] add sp, 0x14 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0808EF98: .4byte 0x00008f88 _0808EF9C: .4byte gUnknown_203B45C thumb_func_end sub_808EE9C thumb_func_start sub_808EFA0 sub_808EFA0: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 adds r1, r5, 0x3 movs r2, 0x7 bl sub_809488C adds r1, r5, 0 adds r1, 0x8 adds r0, r4, 0 movs r2, 0x9 bl sub_809488C adds r1, r5, 0x4 adds r0, r4, 0 bl sub_80902F4 adds r1, r5, 0 adds r1, 0xC adds r0, r4, 0 bl sub_808F41C adds r1, r5, 0 adds r1, 0x10 adds r0, r4, 0 bl sub_808F41C adds r1, r5, 0 adds r1, 0x14 adds r0, r4, 0 movs r2, 0xA bl sub_809488C adds r1, r5, 0 adds r1, 0x16 adds r0, r4, 0 movs r2, 0xA bl sub_809488C adds r1, r5, 0 adds r1, 0x18 adds r0, r4, 0 movs r2, 0x8 bl sub_809488C adds r1, r5, 0 adds r1, 0x19 adds r0, r4, 0 movs r2, 0x8 bl sub_809488C adds r1, r5, 0 adds r1, 0x1A adds r0, r4, 0 movs r2, 0x8 bl sub_809488C adds r1, r5, 0 adds r1, 0x1B adds r0, r4, 0 movs r2, 0x8 bl sub_809488C adds r1, r5, 0 adds r1, 0x1C adds r0, r4, 0 movs r2, 0x18 bl sub_809488C adds r1, r5, 0 adds r1, 0x20 adds r0, r4, 0 movs r2, 0x18 bl sub_809488C adds r1, r5, 0 adds r1, 0x24 adds r0, r4, 0 movs r2, 0x4 bl sub_809488C adds r1, r5, 0 adds r1, 0x28 adds r0, r4, 0 bl sub_8091DE0 adds r1, r5, 0 adds r1, 0x2C adds r0, r4, 0 bl sub_8094108 adds r1, r5, 0 adds r1, 0x4C adds r0, r4, 0 movs r2, 0x50 bl sub_809488C pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_808EFA0 thumb_func_start sub_808F068 sub_808F068: push {r4-r6,lr} adds r5, r0, 0 adds r4, r1, 0 adds r0, r4, 0 movs r1, 0 movs r2, 0x58 bl memset movs r6, 0 movs r0, 0 strh r0, [r4] strb r6, [r4, 0x2] adds r1, r4, 0x3 adds r0, r5, 0 movs r2, 0x7 bl sub_8094924 ldrb r0, [r4, 0x3] cmp r0, 0 beq _0808F098 ldrh r0, [r4] movs r1, 0x1 orrs r0, r1 strh r0, [r4] _0808F098: adds r1, r4, 0 adds r1, 0x8 adds r0, r5, 0 movs r2, 0x9 bl sub_8094924 adds r1, r4, 0x4 adds r0, r5, 0 bl sub_8090314 adds r1, r4, 0 adds r1, 0xC adds r0, r5, 0 bl sub_808F410 adds r1, r4, 0 adds r1, 0x10 adds r0, r5, 0 bl sub_808F410 adds r1, r4, 0 adds r1, 0x14 adds r0, r5, 0 movs r2, 0xA bl sub_8094924 adds r1, r4, 0 adds r1, 0x16 adds r0, r5, 0 movs r2, 0xA bl sub_8094924 adds r1, r4, 0 adds r1, 0x18 adds r0, r5, 0 movs r2, 0x8 bl sub_8094924 adds r1, r4, 0 adds r1, 0x19 adds r0, r5, 0 movs r2, 0x8 bl sub_8094924 adds r1, r4, 0 adds r1, 0x1A adds r0, r5, 0 movs r2, 0x8 bl sub_8094924 adds r1, r4, 0 adds r1, 0x1B adds r0, r5, 0 movs r2, 0x8 bl sub_8094924 adds r1, r4, 0 adds r1, 0x1C adds r0, r5, 0 movs r2, 0x18 bl sub_8094924 adds r1, r4, 0 adds r1, 0x20 adds r0, r5, 0 movs r2, 0x18 bl sub_8094924 adds r1, r4, 0 adds r1, 0x24 adds r0, r5, 0 movs r2, 0x4 bl sub_8094924 adds r1, r4, 0 adds r1, 0x28 adds r0, r5, 0 bl sub_8091DC0 adds r1, r4, 0 adds r1, 0x2C adds r0, r5, 0 bl sub_8094128 adds r1, r4, 0 adds r1, 0x4C adds r0, r5, 0 movs r2, 0x50 bl sub_8094924 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_808F068 thumb_func_start sub_808F154 sub_808F154: push {r4-r7,lr} sub sp, 0x14 adds r3, r0, 0 adds r2, r1, 0 mov r0, sp adds r1, r3, 0 bl sub_809486C add r2, sp, 0x10 movs r0, 0xFF strb r0, [r2] mov r1, sp adds r1, 0x11 movs r0, 0 strb r0, [r1] movs r5, 0 adds r6, r2, 0 adds r7, r1, 0 _0808F178: ldr r1, _0808F2A8 movs r0, 0x64 muls r0, r5 ldr r2, _0808F2AC adds r0, r2 ldr r1, [r1] adds r4, r1, r0 mov r0, sp adds r1, r4, 0 movs r2, 0x2 bl sub_809488C ldrb r0, [r4, 0x2] adds r1, r7, 0 cmp r0, 0 beq _0808F19A adds r1, r6, 0 _0808F19A: mov r0, sp movs r2, 0x1 bl sub_809488C adds r1, r4, 0x3 mov r0, sp movs r2, 0x7 bl sub_809488C adds r1, r4, 0x4 mov r0, sp bl sub_80902F4 adds r1, r4, 0 adds r1, 0x8 mov r0, sp movs r2, 0xA bl sub_809488C adds r1, r4, 0 adds r1, 0xA mov r0, sp movs r2, 0x10 bl sub_809488C adds r1, r4, 0 adds r1, 0xC mov r0, sp movs r2, 0x10 bl sub_809488C adds r1, r4, 0 adds r1, 0xE mov r0, sp movs r2, 0x9 bl sub_809488C adds r1, r4, 0 adds r1, 0x10 mov r0, sp movs r2, 0xA bl sub_809488C adds r1, r4, 0 adds r1, 0x12 mov r0, sp movs r2, 0xA bl sub_809488C adds r1, r4, 0 adds r1, 0x14 mov r0, sp movs r2, 0x8 bl sub_809488C adds r1, r4, 0 adds r1, 0x15 mov r0, sp movs r2, 0x8 bl sub_809488C adds r1, r4, 0 adds r1, 0x16 mov r0, sp movs r2, 0x8 bl sub_809488C adds r1, r4, 0 adds r1, 0x17 mov r0, sp movs r2, 0x8 bl sub_809488C adds r1, r4, 0 adds r1, 0x18 mov r0, sp movs r2, 0x18 bl sub_809488C adds r1, r4, 0 adds r1, 0x1C mov r0, sp bl sub_8094184 adds r1, r4, 0 adds r1, 0x40 mov r0, sp bl sub_8091E28 adds r1, r4, 0 adds r1, 0x44 mov r0, sp bl sub_809449C adds r1, r4, 0 adds r1, 0x48 mov r0, sp bl sub_809449C adds r1, r4, 0 adds r1, 0x4C mov r0, sp movs r2, 0x18 bl sub_809488C adds r1, r4, 0 adds r1, 0x50 mov r0, sp movs r2, 0x4 bl sub_809488C adds r1, r4, 0 adds r1, 0x54 mov r0, sp bl sub_808F448 adds r1, r4, 0 adds r1, 0x58 mov r0, sp movs r2, 0x50 bl sub_809488C adds r5, 0x1 cmp r5, 0x3 bgt _0808F296 b _0808F178 _0808F296: mov r0, sp bl nullsub_102 ldr r0, [sp, 0x8] add sp, 0x14 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0808F2A8: .4byte gUnknown_203B45C _0808F2AC: .4byte 0x00008df8 thumb_func_end sub_808F154 thumb_func_start sub_808F2B0 sub_808F2B0: push {r4-r6,lr} sub sp, 0x14 adds r3, r0, 0 adds r2, r1, 0 mov r0, sp adds r1, r3, 0 bl sub_809485C movs r5, 0 add r6, sp, 0x10 _0808F2C4: ldr r1, _0808F300 movs r0, 0x64 muls r0, r5 ldr r2, _0808F304 adds r0, r2 ldr r1, [r1] adds r4, r1, r0 adds r0, r4, 0 movs r1, 0 movs r2, 0x64 bl memset mov r0, sp adds r1, r4, 0 movs r2, 0x2 bl sub_8094924 mov r0, sp adds r1, r6, 0 movs r2, 0x1 bl sub_8094924 ldrb r0, [r6] movs r2, 0x1 adds r1, r2, 0 ands r1, r0 cmp r1, 0 beq _0808F308 strb r2, [r4, 0x2] b _0808F30A .align 2, 0 _0808F300: .4byte gUnknown_203B45C _0808F304: .4byte 0x00008df8 _0808F308: strb r1, [r4, 0x2] _0808F30A: adds r1, r4, 0x3 mov r0, sp movs r2, 0x7 bl sub_8094924 adds r1, r4, 0x4 mov r0, sp bl sub_8090314 adds r1, r4, 0 adds r1, 0x8 mov r0, sp movs r2, 0xA bl sub_8094924 adds r1, r4, 0 adds r1, 0xA mov r0, sp movs r2, 0x10 bl sub_8094924 adds r1, r4, 0 adds r1, 0xC mov r0, sp movs r2, 0x10 bl sub_8094924 adds r1, r4, 0 adds r1, 0xE mov r0, sp movs r2, 0x9 bl sub_8094924 adds r1, r4, 0 adds r1, 0x10 mov r0, sp movs r2, 0xA bl sub_8094924 adds r1, r4, 0 adds r1, 0x12 mov r0, sp movs r2, 0xA bl sub_8094924 adds r1, r4, 0 adds r1, 0x14 mov r0, sp movs r2, 0x8 bl sub_8094924 adds r1, r4, 0 adds r1, 0x15 mov r0, sp movs r2, 0x8 bl sub_8094924 adds r1, r4, 0 adds r1, 0x16 mov r0, sp movs r2, 0x8 bl sub_8094924 adds r1, r4, 0 adds r1, 0x17 mov r0, sp movs r2, 0x8 bl sub_8094924 adds r1, r4, 0 adds r1, 0x18 mov r0, sp movs r2, 0x18 bl sub_8094924 adds r1, r4, 0 adds r1, 0x1C mov r0, sp bl sub_80941FC adds r1, r4, 0 adds r1, 0x40 mov r0, sp bl sub_8091E00 adds r1, r4, 0 adds r1, 0x44 mov r0, sp bl sub_809447C adds r1, r4, 0 adds r1, 0x48 mov r0, sp bl sub_809447C adds r1, r4, 0 adds r1, 0x4C mov r0, sp movs r2, 0x18 bl sub_8094924 adds r1, r4, 0 adds r1, 0x50 mov r0, sp movs r2, 0x4 bl sub_8094924 adds r1, r4, 0 adds r1, 0x54 mov r0, sp bl sub_808F428 adds r1, r4, 0 adds r1, 0x58 mov r0, sp movs r2, 0x50 bl sub_8094924 adds r5, 0x1 cmp r5, 0x3 bgt _0808F3FE b _0808F2C4 _0808F3FE: mov r0, sp bl nullsub_102 ldr r0, [sp, 0x8] add sp, 0x14 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_808F2B0 thumb_func_start sub_808F410 sub_808F410: push {lr} movs r2, 0x7 bl sub_8094924 pop {r0} bx r0 thumb_func_end sub_808F410 thumb_func_start sub_808F41C sub_808F41C: push {lr} movs r2, 0x7 bl sub_809488C pop {r0} bx r0 thumb_func_end sub_808F41C thumb_func_start sub_808F428 sub_808F428: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 movs r2, 0xA bl sub_8094924 adds r4, 0x2 adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x5 bl sub_8094924 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_808F428 thumb_func_start sub_808F448 sub_808F448: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 movs r2, 0xA bl sub_809488C adds r4, 0x2 adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x5 bl sub_809488C pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_808F448 thumb_func_start sub_808F468 sub_808F468: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x20 mov r8, r0 adds r4, r1, 0 lsls r2, 24 lsrs r2, 24 str r2, [sp, 0x14] movs r0, 0 strh r0, [r4, 0x4] movs r0, 0x1 str r0, [sp, 0x18] add r7, sp, 0xC _0808F488: ldr r1, [sp, 0x18] lsls r0, r1, 16 asrs r0, 16 cmp r0, 0x41 bne _0808F49C movs r0, 0x41 adds r1, r7, 0 bl sub_808DD48 b _0808F4A2 _0808F49C: adds r1, r7, 0 bl sub_808DD48 _0808F4A2: ldrh r0, [r7, 0x2] cmp r0, 0 beq _0808F4B6 mov r2, r8 movs r3, 0x8 ldrsh r1, [r2, r3] movs r2, 0 ldrsh r0, [r7, r2] cmp r1, r0 beq _0808F4C2 _0808F4B6: ldr r3, [sp, 0x18] adds r3, 0x1 str r3, [sp, 0x18] ldr r0, _0808F4D4 cmp r3, r0 ble _0808F488 _0808F4C2: movs r0, 0xD4 lsls r0, 1 ldr r1, [sp, 0x18] cmp r1, r0 bne _0808F4D8 movs r0, 0x4 strh r0, [r4, 0x4] b _0808F6EC .align 2, 0 _0808F4D4: .4byte 0x000001a7 _0808F4D8: movs r2, 0x1 str r2, [sp, 0x18] movs r3, 0x8 mov r10, r3 _0808F4E0: movs r0, 0 mov r9, r0 ldr r1, [sp, 0x18] lsls r0, r1, 16 asrs r0, 16 str r0, [sp, 0x1C] adds r1, r7, 0 bl sub_808DD48 ldrh r0, [r7, 0x2] cmp r0, 0 bne _0808F4FA b _0808F6DE _0808F4FA: mov r2, r8 movs r3, 0x8 ldrsh r1, [r2, r3] movs r2, 0 ldrsh r0, [r7, r2] cmp r1, r0 beq _0808F50A b _0808F6DE _0808F50A: ldr r0, [sp, 0x1C] bl sub_808DBA8 lsls r0, 24 lsrs r5, r0, 24 mov r3, r8 movs r1, 0x8 ldrsh r0, [r3, r1] bl sub_808DBA8 lsls r0, 24 lsrs r6, r0, 24 adds r0, r5, 0 mov r1, sp movs r2, 0 movs r3, 0 bl sub_8092638 mov r0, sp ldrb r0, [r0, 0x4] cmp r0, 0 bne _0808F544 ldrh r0, [r4, 0x4] movs r1, 0x20 orrs r0, r1 strh r0, [r4, 0x4] movs r2, 0x1 mov r9, r2 b _0808F566 _0808F544: mov r0, sp movs r3, 0x2 ldrsh r1, [r0, r3] cmp r5, r6 bne _0808F550 subs r1, 0x1 _0808F550: mov r0, sp movs r2, 0 ldrsh r0, [r0, r2] cmp r0, r1 bgt _0808F566 ldrh r0, [r4, 0x4] movs r1, 0x40 orrs r0, r1 strh r0, [r4, 0x4] movs r3, 0x1 mov r9, r3 _0808F566: ldrh r0, [r7, 0x2] cmp r0, 0x1 bne _0808F588 ldrh r2, [r4, 0x4] ands r0, r2 cmp r0, 0 beq _0808F576 b _0808F6DE _0808F576: mov r0, r8 ldrb r1, [r0, 0x3] movs r3, 0x4 ldrsh r0, [r7, r3] cmp r1, r0 bge _0808F5E6 movs r0, 0x2 orrs r0, r2 b _0808F5C8 _0808F588: cmp r0, 0x2 bne _0808F5A8 mov r2, r8 movs r3, 0x14 ldrsh r1, [r2, r3] movs r2, 0x4 ldrsh r0, [r7, r2] cmp r1, r0 bge _0808F5E6 ldrh r0, [r4, 0x4] movs r1, 0x10 orrs r0, r1 strh r0, [r4, 0x4] movs r3, 0x1 mov r9, r3 b _0808F5E6 _0808F5A8: cmp r0, 0x3 bne _0808F5E6 ldr r0, [sp, 0x14] cmp r0, 0 beq _0808F5D0 ldrb r0, [r4] movs r2, 0x4 ldrsh r1, [r7, r2] cmp r0, r1 beq _0808F5E6 ldrb r0, [r4, 0x1] cmp r0, r1 beq _0808F5E6 ldrh r0, [r4, 0x4] mov r3, r10 orrs r0, r3 _0808F5C8: strh r0, [r4, 0x4] movs r0, 0x1 mov r9, r0 b _0808F5E6 _0808F5D0: ldrb r0, [r7, 0x4] bl sub_8091130 cmp r0, 0 bge _0808F5E6 ldrh r0, [r4, 0x4] mov r1, r10 orrs r0, r1 strh r0, [r4, 0x4] movs r2, 0x1 mov r9, r2 _0808F5E6: ldrh r0, [r7, 0x6] cmp r0, 0x4 bne _0808F604 ldr r3, [sp, 0x14] cmp r3, 0 beq _0808F600 ldrb r0, [r4] cmp r0, 0x76 beq _0808F6CA ldrb r0, [r4, 0x1] cmp r0, 0x76 beq _0808F6CA b _0808F666 _0808F600: movs r0, 0x76 b _0808F672 _0808F604: cmp r0, 0x5 bne _0808F614 mov r3, r8 ldrb r0, [r3, 0x18] ldrb r1, [r3, 0x1A] cmp r0, r1 bhi _0808F6CA b _0808F6DE _0808F614: cmp r0, 0x6 bne _0808F624 mov r2, r8 ldrb r0, [r2, 0x18] ldrb r3, [r2, 0x1A] cmp r0, r3 bcc _0808F6CA b _0808F6DE _0808F624: cmp r0, 0x7 bne _0808F634 mov r1, r8 ldrb r0, [r1, 0x18] ldrb r2, [r1, 0x1A] cmp r0, r2 beq _0808F6CA b _0808F6DE _0808F634: cmp r0, 0x8 bne _0808F650 ldr r3, [sp, 0x14] cmp r3, 0 beq _0808F64C ldrb r0, [r4] cmp r0, 0x30 beq _0808F6CA ldrb r0, [r4, 0x1] cmp r0, 0x30 beq _0808F6CA b _0808F666 _0808F64C: movs r0, 0x30 b _0808F672 _0808F650: cmp r0, 0x9 bne _0808F684 ldr r3, [sp, 0x14] cmp r3, 0 beq _0808F670 ldrb r0, [r4] cmp r0, 0x31 beq _0808F6CA ldrb r0, [r4, 0x1] cmp r0, 0x31 beq _0808F6CA _0808F666: ldrh r0, [r4, 0x4] mov r1, r10 orrs r0, r1 strh r0, [r4, 0x4] b _0808F6DE _0808F670: movs r0, 0x31 _0808F672: bl sub_8091130 cmp r0, 0 bge _0808F6CA ldrh r0, [r4, 0x4] mov r2, r10 orrs r0, r2 strh r0, [r4, 0x4] b _0808F6DE _0808F684: cmp r0, 0xB bne _0808F694 ldrb r1, [r4, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0808F6CA b _0808F6DE _0808F694: cmp r0, 0xC bne _0808F6A4 ldrb r1, [r4, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0808F6CA b _0808F6DE _0808F6A4: cmp r0, 0xA bne _0808F6CA ldr r3, [sp, 0x14] cmp r3, 0 beq _0808F6BC ldrb r0, [r4] cmp r0, 0x2F beq _0808F6CA ldrb r0, [r4, 0x1] cmp r0, 0x2F beq _0808F6CA b _0808F6DE _0808F6BC: movs r0, 0x2F bl sub_8091130 cmp r0, 0 bge _0808F6CA movs r0, 0x1 mov r9, r0 _0808F6CA: mov r1, r9 cmp r1, 0 bne _0808F6DE ldrh r0, [r4, 0x4] movs r1, 0x1 orrs r0, r1 strh r0, [r4, 0x4] mov r2, sp ldrh r2, [r2, 0x1C] strh r2, [r4, 0x6] _0808F6DE: ldr r3, [sp, 0x18] adds r3, 0x1 str r3, [sp, 0x18] ldr r0, _0808F6FC cmp r3, r0 bgt _0808F6EC b _0808F4E0 _0808F6EC: add sp, 0x20 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0808F6FC: .4byte 0x000001a7 thumb_func_end sub_808F468 thumb_func_start sub_808F700 sub_808F700: push {r4,lr} sub sp, 0x8 mov r4, sp mov r1, sp movs r2, 0 bl sub_808F468 ldrh r1, [r4, 0x4] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0808F71C movs r0, 0x1 b _0808F72A _0808F71C: movs r0, 0x4 ands r0, r1 cmp r0, 0 bne _0808F728 movs r0, 0 b _0808F72A _0808F728: movs r0, 0x2 _0808F72A: add sp, 0x8 pop {r4} pop {r1} bx r1 thumb_func_end sub_808F700 thumb_func_start sub_808F734 sub_808F734: push {r4-r7,lr} sub sp, 0x58 adds r5, r0, 0 lsls r4, r1, 16 asrs r4, 16 movs r6, 0 mov r0, sp adds r1, r5, 0 movs r2, 0x58 bl memcpy adds r0, r5, 0 adds r1, r4, 0 bl sub_808F798 adds r7, r0, 0 movs r0, 0x9E lsls r0, 1 cmp r4, r0 bne _0808F782 mov r0, sp strb r6, [r0, 0x2] add r0, sp, 0x28 strb r6, [r0] add r4, sp, 0x4C ldr r5, _0808F794 adds r0, r5, 0 bl sub_808D994 adds r1, r0, 0 adds r0, r4, 0 movs r2, 0xA bl sub_8092310 mov r0, sp adds r1, r5, 0 bl sub_808F798 adds r6, r0, 0 _0808F782: cmp r6, 0 beq _0808F78A bl sub_8097848 _0808F78A: adds r0, r7, 0 add sp, 0x58 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0808F794: .4byte 0x0000013d thumb_func_end sub_808F734 thumb_func_start sub_808F798 sub_808F798: push {r4-r6,lr} sub sp, 0xA4 adds r4, r0, 0 lsls r1, 16 asrs r5, r1, 16 mov r0, sp adds r1, r4, 0 movs r2, 0x58 bl memcpy mov r0, sp movs r1, 0x8 ldrsh r6, [r0, r1] add r0, sp, 0x58 mov r1, sp ldrb r2, [r1, 0x3] adds r1, r5, 0 bl sub_808E010 ldr r0, [sp, 0x58] str r0, [sp, 0x1C] movs r0, 0 strh r0, [r4] mov r0, sp strh r5, [r0, 0x8] ldrb r0, [r0, 0xC] cmp r0, 0 bne _0808F7DA mov r0, sp mov r1, sp ldrb r1, [r1, 0x3] strb r1, [r0, 0xC] b _0808F7EA _0808F7DA: mov r0, sp ldrb r0, [r0, 0x10] cmp r0, 0 bne _0808F7EA mov r0, sp mov r1, sp ldrb r1, [r1, 0x3] strb r1, [r0, 0x10] _0808F7EA: add r4, sp, 0x64 adds r0, r6, 0 bl sub_808D994 adds r1, r0, 0 adds r0, r4, 0 bl sub_80922F4 movs r2, 0 b _0808F800 _0808F7FE: adds r2, 0x1 _0808F800: cmp r2, 0x9 bgt _0808F816 adds r1, r4, r2 add r0, sp, 0x4C adds r0, r2 ldrb r1, [r1] ldrb r0, [r0] cmp r1, r0 bne _0808F82E cmp r1, 0 bne _0808F7FE _0808F816: movs r0, 0x1 cmp r0, 0 beq _0808F82E add r4, sp, 0x4C adds r0, r5, 0 bl sub_808D994 adds r1, r0, 0 adds r0, r4, 0 movs r2, 0xA bl sub_8092310 _0808F82E: mov r0, sp bl sub_808D1DC add sp, 0xA4 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_808F798 thumb_func_start sub_808F83C sub_808F83C: movs r0, 0 strb r0, [r2] bx lr thumb_func_end sub_808F83C thumb_func_start sub_808F844 sub_808F844: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x30 adds r5, r0, 0 adds r4, r1, 0 mov r10, r2 str r3, [sp, 0x2C] ldr r0, [sp, 0x50] bl sub_80073B8 ldr r0, _0808F880 mov r1, r10 adds r1, 0x2 movs r2, 0x14 bl strncpy movs r0, 0x20 mov r9, r0 cmp r5, 0x5 bls _0808F874 b _0808FED6 _0808F874: lsls r0, r5, 2 ldr r1, _0808F884 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0808F880: .4byte gUnknown_202DF98 _0808F884: .4byte _0808F888 .align 2, 0 _0808F888: .4byte _0808FED6 .4byte _0808FBF4 .4byte _0808F8A0 .4byte _0808FB44 .4byte _0808FCB0 .4byte _0808FDB0 _0808F8A0: lsls r0, r4, 3 adds r0, 0x10 ldr r2, _0808F998 movs r5, 0 str r5, [sp] movs r1, 0 ldr r3, [sp, 0x50] bl sub_8014FF0 ldr r4, _0808F99C mov r1, r10 ldr r0, [r1, 0x2C] str r0, [r4] ldr r0, [r1, 0x30] str r0, [r4, 0x4] ldr r0, _0808F9A0 ldr r2, [r0] str r5, [sp] movs r0, 0x4 mov r1, r9 ldr r3, [sp, 0x50] bl sub_8014FF0 movs r2, 0xA add r9, r2 ldr r0, _0808F9A4 ldr r2, [r0] str r5, [sp] movs r0, 0x4 mov r1, r9 ldr r3, [sp, 0x50] bl sub_8014FF0 movs r3, 0xA add r9, r3 mov r0, r10 ldr r2, [r0, 0x2C] cmp r2, 0x63 bgt _0808F914 movs r3, 0 ldrsh r1, [r0, r3] adds r2, 0x1 add r0, sp, 0x8 bl sub_808E010 ldr r0, [sp, 0x8] mov r2, r10 ldr r1, [r2, 0x30] subs r0, r1 str r0, [r4] ldr r0, _0808F9A8 ldr r2, [r0] str r5, [sp] movs r0, 0x4 mov r1, r9 ldr r3, [sp, 0x50] bl sub_8014FF0 _0808F914: movs r3, 0xC add r9, r3 mov r1, r10 ldr r0, [r1, 0x24] str r0, [r4] ldr r0, [r1, 0x28] str r0, [r4, 0x4] ldr r0, _0808F9AC ldr r2, [r0] str r5, [sp] movs r0, 0x4 mov r1, r9 ldr r3, [sp, 0x50] bl sub_8014FF0 movs r2, 0xA add r9, r2 ldr r0, _0808F9B0 ldr r2, [r0] str r5, [sp] movs r0, 0x4 mov r1, r9 ldr r3, [sp, 0x50] bl sub_8014FF0 ldr r0, _0808F9B4 ldr r2, [r0] mov r0, r10 adds r0, 0x34 ldrb r3, [r0] str r3, [r4] mov r1, r10 adds r1, 0x39 ldrb r0, [r1] cmp r0, 0 beq _0808F964 adds r0, r3, r0 str r0, [r4] ldr r0, _0808F9B8 ldr r2, [r0] _0808F964: str r5, [sp] movs r0, 0x4 mov r1, r9 ldr r3, [sp, 0x50] bl sub_8014FF0 mov r1, r10 adds r1, 0x3B ldrb r3, [r1] cmp r3, 0 beq _0808F9C0 mov r0, r10 adds r0, 0x36 ldrb r0, [r0] adds r1, r3, 0 adds r0, r1 str r0, [r4] ldr r0, _0808F9BC ldr r2, [r0] str r5, [sp] movs r0, 0x4 mov r1, r9 ldr r3, [sp, 0x50] bl sub_8014FF0 b _0808F9D8 .align 2, 0 _0808F998: .4byte gUnknown_8107754 _0808F99C: .4byte gUnknown_202DE30 _0808F9A0: .4byte gUnknown_810DD80 _0808F9A4: .4byte gUnknown_810DD9C _0808F9A8: .4byte gUnknown_810DDB8 _0808F9AC: .4byte gUnknown_810DDD0 _0808F9B0: .4byte gUnknown_810DDE4 _0808F9B4: .4byte gUnknown_810DE0C _0808F9B8: .4byte gUnknown_810DE20 _0808F9BC: .4byte gUnknown_810DE4C _0808F9C0: mov r0, r10 adds r0, 0x36 ldrb r0, [r0] str r0, [r4] ldr r0, _0808FA44 ldr r2, [r0] str r3, [sp] movs r0, 0x4 mov r1, r9 ldr r3, [sp, 0x50] bl sub_8014FF0 _0808F9D8: movs r3, 0xA add r9, r3 ldr r0, _0808FA48 ldr r2, [r0] movs r5, 0 str r5, [sp] movs r0, 0x4 mov r1, r9 ldr r3, [sp, 0x50] bl sub_8014FF0 ldr r0, _0808FA4C ldr r2, [r0] ldr r4, _0808FA50 mov r0, r10 adds r0, 0x35 ldrb r3, [r0] str r3, [r4] mov r1, r10 adds r1, 0x3A ldrb r0, [r1] cmp r0, 0 beq _0808FA0E adds r0, r3, r0 str r0, [r4] ldr r0, _0808FA54 ldr r2, [r0] _0808FA0E: str r5, [sp] movs r0, 0x4 mov r1, r9 ldr r3, [sp, 0x50] bl sub_8014FF0 mov r1, r10 adds r1, 0x3C ldrb r3, [r1] cmp r3, 0 beq _0808FA5C mov r0, r10 adds r0, 0x37 ldrb r0, [r0] adds r1, r3, 0 adds r0, r1 str r0, [r4] ldr r0, _0808FA58 ldr r2, [r0] str r5, [sp] movs r0, 0x4 mov r1, r9 ldr r3, [sp, 0x50] bl sub_8014FF0 b _0808FA74 .align 2, 0 _0808FA44: .4byte gUnknown_810DE38 _0808FA48: .4byte gUnknown_810DDFC _0808FA4C: .4byte gUnknown_810DE24 _0808FA50: .4byte gUnknown_202DE30 _0808FA54: .4byte gUnknown_810DE28 _0808FA58: .4byte gUnknown_810DE54 _0808FA5C: mov r0, r10 adds r0, 0x37 ldrb r0, [r0] str r0, [r4] ldr r0, _0808FA94 ldr r2, [r0] str r3, [sp] movs r0, 0x4 mov r1, r9 ldr r3, [sp, 0x50] bl sub_8014FF0 _0808FA74: movs r0, 0xA add r9, r0 mov r2, r10 adds r2, 0x20 ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0808FA9C ldr r0, _0808FA98 adds r1, r2, 0 movs r2, 0 bl sub_8090E14 b _0808FAA6 .align 2, 0 _0808FA94: .4byte gUnknown_810DE50 _0808FA98: .4byte gUnknown_202DE58 _0808FA9C: ldr r0, _0808FB24 ldr r1, _0808FB28 ldr r1, [r1] bl strcpy _0808FAA6: ldr r0, _0808FB2C ldr r2, [r0] movs r4, 0 str r4, [sp] movs r0, 0x4 mov r1, r9 ldr r3, [sp, 0x50] bl sub_8014FF0 movs r1, 0xC add r9, r1 ldr r1, _0808FB30 mov r2, r10 movs r3, 0x3E ldrsh r0, [r2, r3] str r0, [r1] movs r1, 0x3E ldrsh r0, [r2, r1] movs r1, 0xA bl __divsi3 lsls r0, 16 asrs r0, 16 cmp r0, 0 bge _0808FADA movs r0, 0 _0808FADA: cmp r0, 0x62 ble _0808FAE0 movs r0, 0x63 _0808FAE0: ldr r1, _0808FB34 lsls r0, 2 adds r0, r1 ldr r5, _0808FB38 ldr r1, [r0] adds r0, r5, 0 bl strcpy ldr r0, _0808FB3C ldr r2, [r0] str r4, [sp] movs r0, 0x4 mov r1, r9 ldr r3, [sp, 0x50] bl sub_8014FF0 movs r2, 0xA add r9, r2 mov r0, r10 adds r0, 0x38 ldrb r4, [r0] cmp r4, 0 beq _0808FB10 b _0808FED6 _0808FB10: adds r0, 0x1C ldrb r1, [r0] adds r0, r5, 0 bl sub_808EAC0 ldr r0, _0808FB40 ldr r2, [r0] str r4, [sp] b _0808FECC .align 2, 0 _0808FB24: .4byte gUnknown_202DE58 _0808FB28: .4byte gUnknown_810DE58 _0808FB2C: .4byte gUnknown_810DE6C _0808FB30: .4byte gUnknown_202DE30 _0808FB34: .4byte gUnknown_8115718 _0808FB38: .4byte gUnknown_202DF98 _0808FB3C: .4byte gUnknown_810DE80 _0808FB40: .4byte gUnknown_810DE98 _0808FB44: lsls r0, r4, 3 adds r0, 0x10 ldr r2, _0808FBE8 movs r4, 0 str r4, [sp] movs r1, 0 ldr r3, [sp, 0x50] bl sub_8014FF0 ldr r2, _0808FBEC str r4, [sp] movs r0, 0x4 mov r1, r9 ldr r3, [sp, 0x50] bl sub_8014FF0 mov r3, r10 ldrb r0, [r3, 0x16] bl sub_8092344 adds r2, r0, 0 str r4, [sp] movs r0, 0x38 mov r1, r9 ldr r3, [sp, 0x50] bl sub_8014FF0 mov r1, r10 ldrb r0, [r1, 0x17] cmp r0, 0 beq _0808FB94 bl sub_8092344 adds r2, r0, 0 str r4, [sp] movs r0, 0x60 mov r1, r9 ldr r3, [sp, 0x50] bl sub_8014FF0 _0808FB94: movs r2, 0xC add r9, r2 ldr r2, _0808FBF0 str r4, [sp] movs r0, 0x4 mov r1, r9 ldr r3, [sp, 0x50] bl sub_8014FF0 movs r3, 0xC add r9, r3 mov r1, r10 ldrb r0, [r1, 0x18] bl sub_8092390 adds r2, r0, 0 str r4, [sp] movs r5, 0xB str r5, [sp, 0x4] movs r0, 0x4 mov r1, r9 ldr r3, [sp, 0x50] bl sub_8015034 movs r2, 0x21 add r9, r2 mov r3, r10 ldrb r0, [r3, 0x19] cmp r0, 0 bne _0808FBD2 b _0808FED6 _0808FBD2: bl sub_8092390 adds r2, r0, 0 str r4, [sp] str r5, [sp, 0x4] movs r0, 0x4 mov r1, r9 ldr r3, [sp, 0x50] bl sub_8015034 b _0808FED6 .align 2, 0 _0808FBE8: .4byte gUnknown_810775C _0808FBEC: .4byte gUnknown_8107768 _0808FBF0: .4byte gUnknown_8107770 _0808FBF4: lsls r0, r4, 3 adds r0, 0x10 ldr r1, _0808FC34 ldr r2, [r1] movs r1, 0 str r1, [sp] ldr r3, [sp, 0x50] bl sub_8014FF0 mov r0, r10 adds r0, 0x56 movs r1, 0 ldrsh r0, [r0, r1] subs r5, r0, 0x1 movs r2, 0xC negs r2, r2 add r9, r2 movs r7, 0 ldr r6, [sp, 0x2C] adds r6, 0xC adds r1, r6, 0 movs r2, 0 ldr r0, [sp, 0x2C] adds r0, 0x2C _0808FC24: str r2, [r0] subs r0, 0x4 cmp r0, r1 bge _0808FC24 movs r3, 0 mov r8, r3 b _0808FC88 .align 2, 0 _0808FC34: .4byte gUnknown_810DD58 _0808FC38: mov r0, r10 adds r0, 0x58 adds r4, r0, r5 ldrb r0, [r4] cmp r0, 0 beq _0808FC78 movs r7, 0x1 ldr r0, _0808FCA0 ldrb r1, [r4] lsls r1, 2 adds r1, r0 ldr r0, _0808FCA4 ldr r1, [r1] movs r2, 0x50 bl strncpy ldr r2, _0808FCA8 movs r0, 0 str r0, [sp] movs r0, 0xC mov r1, r9 ldr r3, [sp, 0x50] bl sub_8014FF0 mov r0, r8 cmp r0, 0 ble _0808FC78 subs r0, 0x1 lsls r0, 2 adds r0, r6, r0 ldrb r1, [r4] str r1, [r0] _0808FC78: movs r1, 0x1 add r8, r1 adds r5, 0x1 movs r2, 0xC add r9, r2 mov r3, r8 cmp r3, 0x9 bgt _0808FC90 _0808FC88: cmp r5, 0 blt _0808FC78 cmp r5, 0xB ble _0808FC38 _0808FC90: cmp r7, 0 beq _0808FC96 b _0808FED6 _0808FC96: ldr r0, _0808FCAC ldr r2, [r0] str r7, [sp] b _0808FD98 .align 2, 0 _0808FCA0: .4byte gUnknown_810CF1C _0808FCA4: .4byte gUnknown_202DEA8 _0808FCA8: .4byte gUnknown_8107784 _0808FCAC: .4byte gUnknown_810DF78 _0808FCB0: lsls r0, r4, 3 adds r0, 0x10 ldr r1, _0808FCF8 ldr r2, [r1] movs r1, 0 str r1, [sp] ldr r3, [sp, 0x50] bl sub_8014FF0 add r4, sp, 0x14 mov r0, r10 movs r2, 0x3E ldrsh r1, [r0, r2] adds r0, r4, 0 bl sub_808EBA8 mov r0, r10 adds r0, 0x40 movs r3, 0 ldrsh r0, [r0, r3] subs r7, r0, 0x1 mov r1, r9 subs r1, 0xC movs r2, 0 ldr r0, [sp, 0x2C] adds r0, 0x8 _0808FCE4: strb r2, [r0] subs r0, 0x1 ldr r3, [sp, 0x2C] cmp r0, r3 bge _0808FCE4 mov r9, r1 movs r4, 0 mov r8, r4 b _0808FD84 .align 2, 0 _0808FCF8: .4byte gUnknown_810DD68 _0808FCFC: mov r5, sp adds r5, r7 adds r5, 0x14 ldrb r0, [r5] cmp r0, 0 beq _0808FD74 movs r4, 0x1 bl sub_808EAB0 adds r1, r0, 0 ldr r6, _0808FD3C adds r0, r6, 0 movs r2, 0x50 bl strncpy mov r0, r10 adds r0, 0x50 adds r1, r4, 0 ldrb r5, [r5] lsls r1, r5 bl sub_808ECD0 lsls r0, 24 cmp r0, 0 beq _0808FD44 adds r0, r6, 0 subs r0, 0x50 ldr r1, _0808FD40 bl strcpy b _0808FD4E .align 2, 0 _0808FD3C: .4byte gUnknown_202DEA8 _0808FD40: .4byte gUnknown_8107788 _0808FD44: adds r0, r6, 0 subs r0, 0x50 ldr r1, _0808FDA4 bl strcpy _0808FD4E: mov r0, r8 cmp r0, 0 ble _0808FD64 subs r0, 0x1 ldr r1, [sp, 0x2C] adds r0, r1, r0 mov r1, sp adds r1, r7 adds r1, 0x14 ldrb r1, [r1] strb r1, [r0] _0808FD64: ldr r2, _0808FDA8 movs r0, 0 str r0, [sp] movs r0, 0xC mov r1, r9 ldr r3, [sp, 0x50] bl sub_8014FF0 _0808FD74: movs r2, 0x1 add r8, r2 adds r7, 0x1 movs r3, 0xC add r9, r3 mov r0, r8 cmp r0, 0x9 bgt _0808FD8C _0808FD84: cmp r7, 0 blt _0808FD74 cmp r7, 0x17 ble _0808FCFC _0808FD8C: cmp r4, 0 beq _0808FD92 b _0808FED6 _0808FD92: ldr r0, _0808FDAC ldr r2, [r0] str r4, [sp] _0808FD98: movs r0, 0xC movs r1, 0x20 ldr r3, [sp, 0x50] bl sub_8014FF0 b _0808FED6 .align 2, 0 _0808FDA4: .4byte gUnknown_810778C _0808FDA8: .4byte gUnknown_8107790 _0808FDAC: .4byte gUnknown_810DF84 _0808FDB0: lsls r0, r4, 3 adds r0, 0x10 ldr r2, _0808FEEC movs r5, 0 str r5, [sp] movs r1, 0 ldr r3, [sp, 0x50] bl sub_8014FF0 ldr r6, _0808FEF0 mov r2, r10 movs r3, 0 ldrsh r1, [r2, r3] adds r0, r6, 0 bl sub_808D8BC ldr r1, _0808FEF4 mov r2, r10 movs r3, 0 ldrsh r0, [r2, r3] str r0, [r1] ldr r0, _0808FEF8 ldr r2, [r0] str r5, [sp] movs r0, 0x4 mov r1, r9 ldr r3, [sp, 0x50] bl sub_8014FF0 movs r0, 0xA add r9, r0 mov r1, r10 movs r2, 0 ldrsh r0, [r1, r2] bl sub_808DBA8 lsls r0, 24 lsrs r0, 24 bl sub_8092524 adds r1, r0, 0 ldr r4, _0808FEFC adds r0, r4, 0 movs r2, 0x50 bl strncpy ldr r0, _0808FF00 ldr r2, [r0] str r5, [sp] movs r0, 0x4 mov r1, r9 ldr r3, [sp, 0x50] bl sub_8014FF0 movs r3, 0xA add r9, r3 ldr r0, _0808FF04 ldr r2, [r0] str r5, [sp] movs r0, 0x4 mov r1, r9 ldr r3, [sp, 0x50] bl sub_8014FF0 movs r0, 0xD add r9, r0 ldr r0, _0808FF08 ldr r2, [r0] str r5, [sp] movs r0, 0x4 mov r1, r9 ldr r3, [sp, 0x50] bl sub_8014FF0 movs r1, 0xA add r9, r1 mov r1, r10 adds r1, 0x1C adds r0, r4, 0 bl sub_8090208 ldr r0, _0808FF0C ldr r2, [r0] str r5, [sp] movs r0, 0x4 mov r1, r9 ldr r3, [sp, 0x50] bl sub_8014FF0 movs r2, 0xD add r9, r2 mov r3, r10 movs r1, 0 ldrsh r0, [r3, r1] bl sub_808DAB4 adds r1, r0, 0 adds r0, r6, 0 movs r2, 0x14 bl strncpy ldr r0, _0808FF10 ldr r2, [r0] str r5, [sp] movs r0, 0x4 mov r1, r9 ldr r3, [sp, 0x50] bl sub_8014FF0 movs r2, 0xD add r9, r2 ldr r4, _0808FF14 mov r3, r10 movs r1, 0 ldrsh r0, [r3, r1] bl sub_808DACC lsls r0, 24 lsrs r0, 22 adds r0, r4 ldr r1, [r0] adds r0, r6, 0 bl strcpy ldr r0, _0808FF18 ldr r2, [r0] str r5, [sp] movs r0, 0x4 mov r1, r9 ldr r3, [sp, 0x50] bl sub_8014FF0 movs r2, 0xD add r9, r2 ldr r1, _0808FF1C mov r0, r10 adds r0, 0x4C ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r2, [r0] str r5, [sp] _0808FECC: movs r0, 0x4 mov r1, r9 ldr r3, [sp, 0x50] bl sub_8014FF0 _0808FED6: ldr r0, [sp, 0x50] bl sub_80073E0 add sp, 0x30 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0808FEEC: .4byte gUnknown_8107798 _0808FEF0: .4byte gUnknown_202DF98 _0808FEF4: .4byte gUnknown_202DE30 _0808FEF8: .4byte gUnknown_810DEB4 _0808FEFC: .4byte gUnknown_202DE58 _0808FF00: .4byte gUnknown_810DEC8 _0808FF04: .4byte gUnknown_810DEDC _0808FF08: .4byte gUnknown_810DFB4 _0808FF0C: .4byte gUnknown_810DFC8 _0808FF10: .4byte gUnknown_810DEF4 _0808FF14: .4byte gUnknown_810E02C _0808FF18: .4byte gUnknown_810DF98 _0808FF1C: .4byte gUnknown_810DFCC thumb_func_end sub_808F844 thumb_func_start sub_808FF20 sub_808FF20: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r5, r0, 0 adds r6, r1, 0 lsls r2, 24 lsrs r2, 24 mov r8, r2 adds r0, r5, 0x2 movs r2, 0 bl sub_808D9AC ldrh r0, [r6, 0x8] strh r0, [r5] movs r1, 0x16 ldrsh r0, [r6, r1] str r0, [r5, 0x24] str r0, [r5, 0x28] ldrb r0, [r6, 0x3] str r0, [r5, 0x2C] ldr r0, [r6, 0x1C] str r0, [r5, 0x30] movs r4, 0 _0808FF50: adds r1, r5, 0 adds r1, 0x34 adds r1, r4 adds r0, r6, 0 adds r0, 0x18 adds r0, r4 ldrb r0, [r0] strb r0, [r1] adds r1, r5, 0 adds r1, 0x36 adds r1, r4 adds r0, r6, 0 adds r0, 0x1A adds r0, r4 ldrb r0, [r0] strb r0, [r1] movs r7, 0x8 ldrsh r0, [r6, r7] adds r1, r4, 0 bl sub_808DC68 adds r1, r5, 0 adds r1, 0x16 adds r1, r4 strb r0, [r1] movs r1, 0x8 ldrsh r0, [r6, r1] adds r1, r4, 0 bl sub_808DC84 adds r1, r5, 0 adds r1, 0x18 adds r1, r4 strb r0, [r1] adds r4, 0x1 cmp r4, 0x1 ble _0808FF50 ldrb r2, [r6, 0x2] adds r1, r5, 0 adds r1, 0x38 movs r0, 0 strb r2, [r1] adds r2, r5, 0 adds r2, 0x39 strb r0, [r2] adds r3, r5, 0 adds r3, 0x3A strb r0, [r3] movs r7, 0x3B adds r7, r5 mov r12, r7 strb r0, [r7] movs r1, 0x3C adds r1, r5 mov r9, r1 strb r0, [r1] adds r0, r6, 0 adds r0, 0x28 ldrb r1, [r0] adds r4, r0, 0 cmp r1, 0 beq _08090026 cmp r1, 0x13 bne _0808FFDA ldr r0, _08090060 ldrb r0, [r0] ldrb r7, [r2] adds r0, r7 strb r0, [r2] _0808FFDA: ldrb r1, [r4] cmp r1, 0x21 bne _0808FFEA ldr r0, _08090064 ldrb r0, [r0] ldrb r7, [r3] adds r0, r7 strb r0, [r3] _0808FFEA: cmp r1, 0x2B bne _0808FFFE ldr r0, _08090068 ldrb r0, [r0] ldrb r7, [r2] adds r1, r0, r7 strb r1, [r2] ldrb r1, [r3] adds r0, r1 strb r0, [r3] _0808FFFE: ldrb r0, [r4] cmp r0, 0x1E bne _08090012 ldr r0, _0809006C ldrb r0, [r0] mov r2, r12 ldrb r2, [r2] adds r0, r2 mov r7, r12 strb r0, [r7] _08090012: ldrb r0, [r4] cmp r0, 0x22 bne _08090026 ldr r0, _08090070 ldrb r0, [r0] mov r1, r9 ldrb r1, [r1] adds r0, r1 mov r2, r9 strb r0, [r2] _08090026: adds r0, r6, 0 adds r0, 0x24 ldrb r1, [r0] adds r0, r5, 0 adds r0, 0x54 strb r1, [r0] subs r0, 0x34 adds r1, r4, 0 bl sub_8090B64 ldrh r0, [r6, 0x14] strh r0, [r5, 0x3E] ldr r0, [r6, 0x4] str r0, [r5, 0x1C] ldr r0, [r6, 0xC] str r0, [r5, 0x44] ldr r0, [r6, 0x10] str r0, [r5, 0x48] ldr r0, [r6, 0x20] str r0, [r5, 0x50] mov r7, r8 cmp r7, 0 beq _08090074 adds r0, r6, 0 bl sub_808F700 adds r1, r5, 0 adds r1, 0x4C b _0809007A .align 2, 0 _08090060: .4byte gUnknown_810AC60 _08090064: .4byte gUnknown_810AC62 _08090068: .4byte gUnknown_810AC68 _0809006C: .4byte gUnknown_810AC64 _08090070: .4byte gUnknown_810AC66 _08090074: adds r1, r5, 0 adds r1, 0x4C movs r0, 0x3 _0809007A: strb r0, [r1] adds r1, r5, 0 adds r1, 0x58 movs r2, 0 adds r0, r5, 0 adds r0, 0x63 _08090086: strb r2, [r0] subs r0, 0x1 cmp r0, r1 bge _08090086 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_808FF20 thumb_func_start sub_809009C sub_809009C: lsls r0, 24 ldr r1, _080900A8 lsrs r0, 21 adds r0, r1 ldr r0, [r0] bx lr .align 2, 0 _080900A8: .4byte gUnknown_8111A28 thumb_func_end sub_809009C thumb_func_start sub_80900AC sub_80900AC: lsls r0, 24 ldr r1, _080900BC lsrs r0, 21 adds r1, 0x4 adds r0, r1 ldr r0, [r0] bx lr .align 2, 0 _080900BC: .4byte gUnknown_8111A28 thumb_func_end sub_80900AC thumb_func_start sub_80900C0 sub_80900C0: lsls r0, 24 ldr r1, _080900CC lsrs r0, 20 adds r0, r1 ldrb r0, [r0] bx lr .align 2, 0 _080900CC: .4byte gUnknown_8109D30 thumb_func_end sub_80900C0 thumb_func_start sub_80900D0 sub_80900D0: lsls r0, 24 ldr r1, _080900E0 lsrs r0, 20 adds r0, r1 movs r1, 0xC ldrsh r0, [r0, r1] bx lr .align 2, 0 _080900E0: .4byte gUnknown_8109D30 thumb_func_end sub_80900D0 thumb_func_start sub_80900E4 sub_80900E4: lsls r0, 24 ldr r1, _080900F0 lsrs r0, 20 adds r0, r1 ldrb r0, [r0, 0xA] bx lr .align 2, 0 _080900F0: .4byte gUnknown_8109D30 thumb_func_end sub_80900E4 thumb_func_start sub_80900F4 sub_80900F4: lsls r0, 24 ldr r1, _08090100 lsrs r0, 20 adds r0, r1 ldrb r0, [r0, 0x9] bx lr .align 2, 0 _08090100: .4byte gUnknown_8109D30 thumb_func_end sub_80900F4 thumb_func_start sub_8090104 sub_8090104: lsls r0, 24 ldr r1, _08090110 lsrs r0, 20 adds r0, r1 ldrb r0, [r0, 0x6] bx lr .align 2, 0 _08090110: .4byte gUnknown_8109D30 thumb_func_end sub_8090104 thumb_func_start sub_8090114 sub_8090114: lsls r0, 24 ldr r1, _08090120 lsrs r0, 20 adds r0, r1 ldrb r0, [r0, 0x4] bx lr .align 2, 0 _08090120: .4byte gUnknown_8109D30 thumb_func_end sub_8090114 thumb_func_start sub_8090124 sub_8090124: lsls r0, 24 ldr r1, _08090130 lsrs r0, 20 adds r0, r1 ldrb r0, [r0, 0x7] bx lr .align 2, 0 _08090130: .4byte gUnknown_8109D30 thumb_func_end sub_8090124 thumb_func_start sub_8090134 sub_8090134: lsls r0, 24 ldr r1, _08090144 lsrs r0, 20 adds r0, r1 ldrb r0, [r0, 0x3] lsls r0, 24 asrs r0, 24 bx lr .align 2, 0 _08090144: .4byte gUnknown_8109D30 thumb_func_end sub_8090134 thumb_func_start sub_8090148 sub_8090148: lsls r0, 24 ldr r1, _08090154 lsrs r0, 20 adds r0, r1 ldrb r0, [r0, 0x2] bx lr .align 2, 0 _08090154: .4byte gUnknown_8109D30 thumb_func_end sub_8090148 thumb_func_start sub_8090158 sub_8090158: lsls r0, 24 ldr r1, _08090164 lsrs r0, 20 adds r0, r1 ldrb r0, [r0, 0x8] bx lr .align 2, 0 _08090164: .4byte gUnknown_8109D30 thumb_func_end sub_8090158 thumb_func_start sub_8090168 sub_8090168: lsls r0, 24 ldr r1, _08090178 lsrs r0, 20 adds r0, r1 movs r1, 0xE ldrsh r0, [r0, r1] bx lr .align 2, 0 _08090178: .4byte gUnknown_8109D30 thumb_func_end sub_8090168 thumb_func_start sub_809017C sub_809017C: push {r4-r6,lr} sub sp, 0x4 adds r1, r0, 0 mov r0, sp bl sub_80901D8 movs r5, 0 ldr r2, _080901AC ldrb r0, [r2] cmp r0, 0x3F beq _080901C6 mov r3, sp ldrb r6, [r3] movs r4, 0 adds r1, r2, 0 _0809019A: ldrb r0, [r1] cmp r6, r0 bne _080901B0 ldrb r0, [r3, 0x1] ldrb r2, [r1, 0x1] cmp r0, r2 bne _080901B0 movs r0, 0x1 b _080901C8 .align 2, 0 _080901AC: .4byte gUnknown_8107828 _080901B0: adds r4, 0x4 adds r1, 0x4 adds r5, 0x1 ldr r0, _080901D0 cmp r5, r0 bgt _080901C6 ldr r2, _080901D4 adds r0, r4, r2 ldrb r0, [r0] cmp r0, 0x3F bne _0809019A _080901C6: movs r0, 0 _080901C8: add sp, 0x4 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _080901D0: .4byte 0x000003e6 _080901D4: .4byte gUnknown_8107828 thumb_func_end sub_809017C thumb_func_start sub_80901D8 sub_80901D8: push {lr} adds r3, r0, 0 adds r2, r1, 0 ldrb r0, [r2] subs r0, 0x4B lsls r0, 24 lsrs r0, 24 cmp r0, 0x16 bhi _080901FE movs r0, 0x34 strb r0, [r3] ldrb r1, [r2] subs r1, 0x4B lsls r0, r1, 1 adds r0, r1 ldrb r2, [r2, 0x1] adds r0, r2 strb r0, [r3, 0x1] b _08090202 _080901FE: ldr r0, [r2] str r0, [r3] _08090202: pop {r0} bx r0 thumb_func_end sub_80901D8 thumb_func_start sub_8090208 sub_8090208: push {lr} ldr r3, _08090220 ldr r2, _08090224 ldrb r1, [r1] lsls r1, 3 adds r1, r2 ldr r2, [r1] adds r1, r3, 0 bl sub_800D158 pop {r0} bx r0 .align 2, 0 _08090220: .4byte gUnknown_8108F10 _08090224: .4byte gUnknown_8111A28 thumb_func_end sub_8090208 thumb_func_start sub_8090228 sub_8090228: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 ldr r0, _08090250 ldrb r3, [r4] lsls r1, r3, 4 adds r1, r0 ldrb r0, [r1] cmp r0, 0 beq _0809025C ldr r1, _08090254 ldr r2, _08090258 lsls r0, r3, 3 adds r0, r2 ldr r2, [r0] ldrb r3, [r4, 0x1] adds r0, r5, 0 bl sub_800D158 b _0809026E .align 2, 0 _08090250: .4byte gUnknown_8109D30 _08090254: .4byte gUnknown_8108F18 _08090258: .4byte gUnknown_8111A28 _0809025C: ldr r1, _08090274 ldr r2, _08090278 lsls r0, r3, 3 adds r0, r2 ldr r2, [r0] ldrb r3, [r4, 0x1] adds r0, r5, 0 bl sub_800D158 _0809026E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08090274: .4byte gUnknown_8108F2C _08090278: .4byte gUnknown_8111A28 thumb_func_end sub_8090228 thumb_func_start sub_809027C sub_809027C: push {lr} ldr r2, _08090294 ldrb r1, [r1] lsls r1, 3 adds r1, r2 ldr r1, [r1] movs r2, 0x50 bl strncpy pop {r0} bx r0 .align 2, 0 _08090294: .4byte gUnknown_8111A28 thumb_func_end sub_809027C thumb_func_start sub_8090298 sub_8090298: push {lr} lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 subs r0, 0x4B lsls r0, 24 lsrs r0, 24 cmp r0, 0x16 bhi _080902AE movs r0, 0x4 b _080902C2 _080902AE: cmp r1, 0x3E bhi _080902C0 ldr r0, _080902BC adds r0, r1, r0 ldrb r0, [r0] b _080902C2 .align 2, 0 _080902BC: .4byte gUnknown_81077A8 _080902C0: movs r0, 0x1 _080902C2: pop {r1} bx r1 thumb_func_end sub_8090298 thumb_func_start sub_80902C8 sub_80902C8: push {lr} lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 subs r0, 0x4B lsls r0, 24 lsrs r0, 24 cmp r0, 0x16 bls _080902EC cmp r1, 0x3E bhi _080902EC ldr r0, _080902E8 adds r0, r1, r0 ldrb r0, [r0] b _080902EE .align 2, 0 _080902E8: .4byte gUnknown_81077E8 _080902EC: movs r0, 0 _080902EE: pop {r1} bx r1 thumb_func_end sub_80902C8 thumb_func_start sub_80902F4 sub_80902F4: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 movs r2, 0x7 bl sub_809488C adds r4, 0x1 adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x7 bl sub_809488C pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80902F4 thumb_func_start sub_8090314 sub_8090314: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 movs r0, 0 strb r0, [r4] strb r0, [r4, 0x1] adds r0, r5, 0 movs r2, 0x7 bl sub_8094924 adds r4, 0x1 adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x7 bl sub_8094924 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8090314 thumb_func_start sub_809033C sub_809033C: lsls r0, 24 ldr r1, _08090348 lsrs r0, 20 adds r0, r1 ldrb r0, [r0, 0x1] bx lr .align 2, 0 _08090348: .4byte gUnknown_8109D30 thumb_func_end sub_809033C thumb_func_start sub_809034C sub_809034C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xF8 adds r7, r2, 0 ldr r2, [sp, 0x118] lsls r0, 24 lsrs r0, 24 mov r9, r0 lsls r1, 16 asrs r1, 16 str r1, [sp, 0xE0] lsls r3, 24 lsrs r3, 24 str r3, [sp, 0xE4] lsls r2, 24 lsrs r2, 24 str r2, [sp, 0xE8] bl sub_8090A34 str r0, [sp, 0xEC] movs r5, 0 movs r0, 0 str r0, [sp, 0xF4] mov r8, r0 add r4, sp, 0xC8 movs r0, 0xA strb r0, [r4] add r1, sp, 0xF4 ldrb r1, [r1] strb r1, [r4, 0x1] ldr r1, _0809040C adds r0, r7, 0 bl strcpy movs r2, 0 str r2, [sp, 0xF0] movs r3, 0 ldr r0, _08090410 ldr r6, [r0] movs r4, 0x1 _080903A2: movs r0, 0x58 muls r0, r3 adds r2, r6, r0 ldrh r1, [r2] adds r0, r4, 0 ands r0, r1 cmp r0, 0 beq _080903D0 lsrs r0, r1, 1 ands r0, r4 cmp r0, 0 beq _080903D0 adds r0, r2, 0 adds r0, 0x28 ldrb r0, [r0] cmp r0, 0 beq _080903CA ldr r0, [sp, 0xF0] adds r0, 0x1 str r0, [sp, 0xF0] _080903CA: adds r5, 0x1 cmp r5, 0x4 beq _080903DA _080903D0: adds r3, 0x1 movs r0, 0xCE lsls r0, 1 cmp r3, r0 ble _080903A2 _080903DA: ldr r0, _08090414 mov r2, r9 lsls r1, r2, 4 adds r0, r1, r0 ldrb r0, [r0, 0x5] mov r9, r1 ldr r1, [sp, 0xE4] cmp r1, 0 bne _080903F2 cmp r0, 0x3 ble _080903F2 movs r0, 0x3 _080903F2: cmp r5, r0 ble _0809043C cmp r0, 0x1 bne _0809041C ldr r0, _08090418 ldr r0, [r0] mov r1, sp add r2, sp, 0xC8 movs r3, 0 bl xxx_format_string b _08090430 .align 2, 0 _0809040C: .4byte gUnknown_8108F40 _08090410: .4byte gUnknown_203B45C _08090414: .4byte gUnknown_8109D30 _08090418: .4byte gUnknown_8115A2C _0809041C: ldr r1, _08090464 subs r0, r5, r0 str r0, [r1] ldr r0, _08090468 ldr r0, [r0] mov r1, sp add r2, sp, 0xC8 movs r3, 0 bl xxx_format_string _08090430: adds r0, r7, 0 mov r1, sp bl sub_8090888 movs r2, 0x1 mov r8, r2 _0809043C: ldr r0, _0809046C mov r2, r9 adds r1, r2, r0 ldrb r0, [r1, 0x4] cmp r0, 0 beq _0809048E ldr r1, [sp, 0xEC] cmp r0, r1 bge _0809048E ldr r1, _08090464 str r0, [r1] ldr r2, [sp, 0xEC] subs r0, r2, r0 str r0, [r1, 0x4] mov r0, r8 cmp r0, 0 bne _08090474 ldr r0, _08090470 b _08090476 .align 2, 0 _08090464: .4byte gUnknown_202DE30 _08090468: .4byte gUnknown_81159DC _0809046C: .4byte gUnknown_8109D30 _08090470: .4byte gUnknown_8115A80 _08090474: ldr r0, _080904AC _08090476: ldr r0, [r0] mov r1, sp add r2, sp, 0xC8 movs r3, 0 bl xxx_format_string adds r0, r7, 0 mov r1, sp bl sub_8090888 movs r1, 0x1 mov r8, r1 _0809048E: ldr r2, [sp, 0xE0] cmp r2, 0 beq _0809054E ldr r0, _080904B0 adds r1, r2, 0 bl sub_808D908 cmp r5, 0x3 ble _080904D2 mov r0, r8 cmp r0, 0 bne _080904B8 ldr r0, _080904B4 b _080904BA .align 2, 0 _080904AC: .4byte gUnknown_8115ADC _080904B0: .4byte gUnknown_202DF98 _080904B4: .4byte gUnknown_8115B3C _080904B8: ldr r0, _08090528 _080904BA: ldr r0, [r0] mov r1, sp add r2, sp, 0xC8 movs r3, 0 bl xxx_format_string adds r0, r7, 0 mov r1, sp bl sub_8090888 movs r1, 0x1 mov r8, r1 _080904D2: ldr r0, [sp, 0xE0] bl sub_808DACC lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 ldr r2, _0809052C mov r10, r2 movs r6, 0x1 _080904E4: movs r0, 0x58 adds r1, r4, 0 muls r1, r0 mov r2, r10 ldr r0, [r2] adds r2, r0, r1 ldrh r1, [r2] adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _08090510 lsrs r0, r1, 1 ands r0, r6 cmp r0, 0 beq _08090510 movs r1, 0x8 ldrsh r0, [r2, r1] bl sub_808DACC lsls r0, 24 lsrs r0, 24 adds r5, r0 _08090510: adds r4, 0x1 movs r0, 0xCE lsls r0, 1 cmp r4, r0 ble _080904E4 cmp r5, 0x6 ble _0809054E mov r2, r8 cmp r2, 0 bne _08090534 ldr r0, _08090530 b _08090536 .align 2, 0 _08090528: .4byte gUnknown_8115BA4 _0809052C: .4byte gUnknown_203B45C _08090530: .4byte gUnknown_8115BF4 _08090534: ldr r0, _080905D0 _08090536: ldr r0, [r0] mov r1, sp add r2, sp, 0xC8 movs r3, 0 bl xxx_format_string adds r0, r7, 0 mov r1, sp bl sub_8090888 movs r0, 0x1 mov r8, r0 _0809054E: ldr r1, [sp, 0xE4] cmp r1, 0 beq _08090602 add r5, sp, 0xCC ldr r1, _080905D4 adds r0, r5, 0 movs r2, 0x8 bl memcpy add r4, sp, 0xD4 ldr r1, _080905D8 adds r0, r4, 0 movs r2, 0x4 bl memcpy movs r6, 0 mov r10, r4 ldr r0, _080905DC add r0, r9 ldrb r5, [r0, 0xB] add r4, sp, 0xCC _08090578: adds r0, r5, 0 asrs r0, r6 movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _0809059E ldrh r0, [r4] bl sub_8090820 lsls r0, 24 cmp r0, 0 bne _0809059E mov r2, r10 adds r0, r2, r6 ldrb r0, [r0] bl sub_80911A4 cmp r0, 0 beq _080905A6 _0809059E: adds r4, 0x2 adds r6, 0x1 cmp r6, 0x3 ble _08090578 _080905A6: cmp r6, 0x3 bgt _08090602 add r4, sp, 0xD8 lsls r0, r6, 1 add r0, sp adds r0, 0xCC ldrh r1, [r0] adds r0, r4, 0 bl sub_8092A88 ldr r0, _080905E0 adds r1, r4, 0 movs r2, 0 bl sub_80928C0 mov r0, r8 cmp r0, 0 bne _080905E8 ldr r0, _080905E4 b _080905EA .align 2, 0 _080905D0: .4byte gUnknown_8115C4C _080905D4: .4byte gUnknown_8108F42 _080905D8: .4byte gUnknown_8108F4A _080905DC: .4byte gUnknown_8109D30 _080905E0: .4byte gUnknown_202DE58 _080905E4: .4byte gUnknown_8115CB8 _080905E8: ldr r0, _080906A0 _080905EA: ldr r0, [r0] mov r1, sp add r2, sp, 0xC8 movs r3, 0 bl xxx_format_string adds r0, r7, 0 mov r1, sp bl sub_8090888 movs r1, 0x1 mov r8, r1 _08090602: ldr r0, _080906A4 add r0, r9 ldrb r1, [r0, 0xB] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080906CE ldr r5, _080906A8 ldr r2, [sp, 0xE0] cmp r2, 0 beq _0809063A adds r0, r2, 0 movs r1, 0 bl sub_808DC68 lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 beq _08090638 ldr r0, [sp, 0xE0] movs r1, 0x1 bl sub_808DC68 lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bne _0809063A _08090638: movs r5, 0 _0809063A: ldr r0, _080906A8 cmp r5, r0 bne _080906CE movs r5, 0 movs r6, 0x1 _08090644: ldr r2, _080906AC movs r0, 0x58 adds r1, r5, 0 muls r1, r0 ldr r0, [r2] adds r4, r0, r1 ldrh r1, [r4] adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _08090686 lsrs r0, r1, 1 ands r0, r6 cmp r0, 0 beq _08090686 movs r1, 0x8 ldrsh r0, [r4, r1] movs r1, 0 bl sub_808DC68 lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 beq _08090690 movs r2, 0x8 ldrsh r0, [r4, r2] movs r1, 0x1 bl sub_808DC68 lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 beq _08090690 _08090686: adds r5, 0x1 movs r0, 0xCE lsls r0, 1 cmp r5, r0 ble _08090644 _08090690: ldr r0, _080906A8 cmp r5, r0 bne _080906CE mov r0, r8 cmp r0, 0 bne _080906B4 ldr r0, _080906B0 b _080906B6 .align 2, 0 _080906A0: .4byte gUnknown_8115D14 _080906A4: .4byte gUnknown_8109D30 _080906A8: .4byte 0x0000019d _080906AC: .4byte gUnknown_203B45C _080906B0: .4byte gUnknown_8115D5C _080906B4: ldr r0, _080906D8 _080906B6: ldr r0, [r0] mov r1, sp add r2, sp, 0xC8 movs r3, 0 bl xxx_format_string adds r0, r7, 0 mov r1, sp bl sub_8090888 movs r1, 0x1 mov r8, r1 _080906CE: mov r2, r8 cmp r2, 0 beq _080906DC movs r0, 0x1 b _0809080E .align 2, 0 _080906D8: .4byte gUnknown_8115D94 _080906DC: ldr r0, _080907EC add r0, r9 ldrb r0, [r0, 0xA] cmp r0, 0 beq _080906EC ldr r0, [sp, 0xE8] cmp r0, 0 beq _0809071A _080906EC: ldr r1, [sp, 0xF4] cmp r1, 0 bne _08090708 ldr r0, _080907F0 ldr r1, [r0] adds r0, r7, 0 bl strcpy adds r0, r7, 0 add r1, sp, 0xC8 bl strcat movs r2, 0x1 str r2, [sp, 0xF4] _08090708: ldr r0, _080907F4 ldr r1, [r0] adds r0, r7, 0 bl strcat adds r0, r7, 0 add r1, sp, 0xC8 bl strcat _0809071A: ldr r0, _080907EC add r0, r9 ldrb r0, [r0, 0x6] cmp r0, 0 beq _08090752 ldr r0, [sp, 0xF4] cmp r0, 0 bne _08090740 ldr r0, _080907F0 ldr r1, [r0] adds r0, r7, 0 bl strcpy adds r0, r7, 0 add r1, sp, 0xC8 bl strcat movs r1, 0x1 str r1, [sp, 0xF4] _08090740: ldr r0, _080907F8 ldr r1, [r0] adds r0, r7, 0 bl strcat adds r0, r7, 0 add r1, sp, 0xC8 bl strcat _08090752: ldr r0, _080907EC add r0, r9 ldrb r0, [r0, 0x4] cmp r0, 0 bne _08090792 ldr r2, [sp, 0xEC] ldr r0, [sp, 0xF0] cmn r2, r0 beq _08090792 ldr r1, [sp, 0xF4] cmp r1, 0 bne _08090780 ldr r0, _080907F0 ldr r1, [r0] adds r0, r7, 0 bl strcpy adds r0, r7, 0 add r1, sp, 0xC8 bl strcat movs r2, 0x1 str r2, [sp, 0xF4] _08090780: ldr r0, _080907FC ldr r1, [r0] adds r0, r7, 0 bl strcat adds r0, r7, 0 add r1, sp, 0xC8 bl strcat _08090792: ldr r0, _080907EC add r0, r9 ldrb r0, [r0, 0x7] cmp r0, 0 bne _080907DA ldr r0, _08090800 ldr r0, [r0] movs r1, 0x98 lsls r1, 2 adds r0, r1 ldr r0, [r0] cmp r0, 0 beq _080907DA ldr r2, [sp, 0xF4] cmp r2, 0 bne _080907C8 ldr r0, _080907F0 ldr r1, [r0] adds r0, r7, 0 bl strcpy adds r0, r7, 0 add r1, sp, 0xC8 bl strcat movs r0, 0x1 str r0, [sp, 0xF4] _080907C8: ldr r0, _08090804 ldr r1, [r0] adds r0, r7, 0 bl strcat adds r0, r7, 0 add r1, sp, 0xC8 bl strcat _080907DA: ldr r1, [sp, 0xF4] cmp r1, 0 bne _0809080C ldr r1, _08090808 adds r0, r7, 0 bl sub_800D158 movs r0, 0 b _0809080E .align 2, 0 _080907EC: .4byte gUnknown_8109D30 _080907F0: .4byte gUnknown_8115DD4 _080907F4: .4byte gUnknown_8115E00 _080907F8: .4byte gUnknown_8115E28 _080907FC: .4byte gUnknown_8115E54 _08090800: .4byte gUnknown_203B460 _08090804: .4byte gUnknown_8115E80 _08090808: .4byte gUnknown_8108F50 _0809080C: movs r0, 0x2 _0809080E: add sp, 0xF8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_809034C thumb_func_start sub_8090820 sub_8090820: push {r4-r7,lr} lsls r0, 16 lsrs r6, r0, 16 movs r4, 0 ldr r0, _08090868 ldr r0, [r0] mov r12, r0 movs r7, 0x1 _08090830: movs r0, 0x58 muls r0, r4 mov r2, r12 adds r1, r2, r0 ldrh r2, [r1] adds r0, r7, 0 ands r0, r2 cmp r0, 0 beq _08090874 lsrs r0, r2, 1 ands r0, r7 cmp r0, 0 beq _08090874 movs r3, 0 movs r5, 0x1 adds r2, r1, 0 adds r2, 0x2C _08090852: ldrb r1, [r2] adds r0, r5, 0 ands r0, r1 cmp r0, 0 beq _0809086C ldrh r0, [r2, 0x2] cmp r0, r6 bne _0809086C movs r0, 0x1 b _08090880 .align 2, 0 _08090868: .4byte gUnknown_203B45C _0809086C: adds r2, 0x8 adds r3, 0x1 cmp r3, 0x3 ble _08090852 _08090874: adds r4, 0x1 movs r0, 0xCE lsls r0, 1 cmp r4, r0 ble _08090830 movs r0, 0 _08090880: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8090820 thumb_func_start sub_8090888 sub_8090888: push {r4-r7,lr} adds r4, r0, 0 adds r5, r1, 0 movs r6, 0 b _0809089C _08090892: ldrb r0, [r4] cmp r0, 0xA bne _0809089A adds r6, 0x1 _0809089A: adds r4, 0x1 _0809089C: ldrb r0, [r4] cmp r0, 0 bne _08090892 ldrb r7, [r5] b _080908AE _080908A6: movs r0, 0xA strb r0, [r4] adds r4, 0x1 adds r6, 0x1 _080908AE: adds r0, r6, 0 movs r1, 0x3 bl __modsi3 cmp r0, 0 bne _080908A6 adds r1, r7, 0 lsls r0, r1, 24 cmp r0, 0 beq _080908CE _080908C2: strb r1, [r4] adds r4, 0x1 adds r5, 0x1 ldrb r1, [r5] cmp r1, 0 bne _080908C2 _080908CE: movs r0, 0 strb r0, [r4] pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8090888 thumb_func_start sub_80908D8 sub_80908D8: push {lr} adds r2, r0, 0 ldrb r0, [r2] cmp r0, 0x3E bhi _08090908 ldr r0, _08090900 ldrb r3, [r2] adds r0, r3, r0 ldrb r1, [r2, 0x1] ldrb r0, [r0] cmp r1, r0 bcs _08090908 ldr r1, _08090904 lsls r0, r3, 2 adds r0, r1 ldrb r1, [r2, 0x1] ldr r0, [r0] adds r0, r1 ldrb r0, [r0] b _0809090A .align 2, 0 _08090900: .4byte gUnknown_81077A8 _08090904: .4byte gUnknown_8108084 _08090908: movs r0, 0x1 _0809090A: pop {r1} bx r1 thumb_func_end sub_80908D8 thumb_func_start sub_8090910 sub_8090910: push {r4-r7,lr} adds r5, r0, 0 adds r7, r1, 0 ldr r4, _0809094C adds r0, r4, 0 bl RandomCapped adds r6, r0, 0 adds r0, r4, 0 bl RandomCapped adds r2, r0, 0 ldrb r0, [r5] cmp r0, 0x3E bhi _08090954 ldr r0, _08090950 ldrb r1, [r5] adds r1, r0 ldrb r0, [r5, 0x1] ldrb r1, [r1] cmp r0, r1 bcs _08090954 adds r0, r7, 0 adds r1, r6, 0 bl sub_8091E94 lsls r0, 24 lsrs r0, 24 b _08090956 .align 2, 0 _0809094C: .4byte 0x0000270f _08090950: .4byte gUnknown_81077A8 _08090954: movs r0, 0x46 _08090956: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8090910 thumb_func_start sub_809095C sub_809095C: push {r4,lr} lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x3E bls _0809096A _08090966: movs r0, 0x1 b _0809098C _0809096A: movs r2, 0 ldr r0, _08090994 ldrb r1, [r0] adds r4, r0, 0 cmp r1, 0x3F beq _0809098A adds r1, r4, 0 _08090978: adds r0, r2, r1 ldrb r0, [r0] cmp r0, r3 beq _08090966 adds r2, 0x1 adds r0, r2, r4 ldrb r0, [r0] cmp r0, 0x3F bne _08090978 _0809098A: movs r0, 0 _0809098C: pop {r4} pop {r1} bx r1 .align 2, 0 _08090994: .4byte gUnknown_810A350 thumb_func_end sub_809095C thumb_func_start sub_8090998 sub_8090998: push {lr} ldr r1, _080909B8 ldr r0, _080909BC str r0, [r1] ldr r0, _080909C0 ldr r1, _080909C4 bl OpenFileAndGetFileDataPtr ldr r1, _080909C8 str r0, [r1] ldr r1, _080909CC ldr r0, [r0, 0x4] str r0, [r1] pop {r0} bx r0 .align 2, 0 _080909B8: .4byte gUnknown_203B460 _080909BC: .4byte gUnknown_20389A8 _080909C0: .4byte gUnknown_8109764 _080909C4: .4byte gUnknown_8300500 _080909C8: .4byte gUnknown_20389A0 _080909CC: .4byte gUnknown_20389A4 thumb_func_end sub_8090998 thumb_func_start sub_80909D0 sub_80909D0: ldr r0, _080909D4 bx lr .align 2, 0 _080909D4: .4byte gUnknown_20389A8 thumb_func_end sub_80909D0 thumb_func_start sub_80909D8 sub_80909D8: push {r4,lr} movs r4, 0 ldr r3, _08090A30 movs r2, 0 _080909E0: ldr r0, [r3] lsls r1, r4, 2 adds r0, r1 strb r2, [r0] adds r4, 0x1 cmp r4, 0x13 ble _080909E0 movs r4, 0 ldr r3, _08090A30 movs r2, 0 _080909F4: ldr r0, [r3] lsls r1, r4, 1 adds r0, 0x50 adds r0, r1 strh r2, [r0] adds r4, 0x1 cmp r4, 0xEF ble _080909F4 movs r4, 0 _08090A06: lsls r0, r4, 24 lsrs r0, 24 bl sub_8091840 adds r4, 0x1 cmp r4, 0x7 ble _08090A06 ldr r0, _08090A30 ldr r2, [r0] movs r1, 0x98 lsls r1, 2 adds r0, r2, r1 movs r1, 0 str r1, [r0] movs r3, 0x99 lsls r3, 2 adds r0, r2, r3 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _08090A30: .4byte gUnknown_203B460 thumb_func_end sub_80909D8 thumb_func_start sub_8090A34 sub_8090A34: push {r4,r5,lr} movs r4, 0 ldr r0, _08090A5C movs r5, 0x1 ldr r2, [r0] movs r3, 0x13 _08090A40: ldrb r1, [r2] adds r0, r5, 0 ands r0, r1 cmp r0, 0 beq _08090A4C adds r4, 0x1 _08090A4C: adds r2, 0x4 subs r3, 0x1 cmp r3, 0 bge _08090A40 adds r0, r4, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08090A5C: .4byte gUnknown_203B460 thumb_func_end sub_8090A34 thumb_func_start sub_8090A60 sub_8090A60: push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl sub_8090BD0 lsls r0, 24 cmp r0, 0 beq _08090A84 adds r0, r4, 0 bl sub_8090BD0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08090A84 movs r0, 0 b _08090A86 _08090A84: movs r0, 0x1 _08090A86: pop {r4} pop {r1} bx r1 thumb_func_end sub_8090A60 thumb_func_start sub_8090A8C sub_8090A8C: push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 lsls r1, 24 lsrs r5, r1, 24 lsls r2, 24 lsrs r2, 24 mov r8, r2 cmp r5, 0 beq _08090AF8 movs r7, 0x1 strb r7, [r6] strb r5, [r6, 0x2] adds r0, r5, 0 bl sub_8090A60 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _08090AD4 adds r0, r5, 0 movs r1, 0 bl sub_8090D80 adds r4, r0, 0 adds r0, r5, 0 movs r1, 0x1 bl sub_8090D80 adds r1, r0, 0 adds r0, r4, 0 bl RandomRange strb r0, [r6, 0x1] b _08090AE8 _08090AD4: adds r0, r5, 0 bl sub_8090BD0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x6 bne _08090AE6 strb r7, [r6, 0x1] b _08090AE8 _08090AE6: strb r4, [r6, 0x1] _08090AE8: mov r0, r8 cmp r0, 0 beq _08090AFE ldrb r1, [r6] movs r0, 0x8 orrs r0, r1 strb r0, [r6] b _08090AFE _08090AF8: strb r5, [r6] strb r5, [r6, 0x2] strb r5, [r6, 0x1] _08090AFE: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8090A8C thumb_func_start sub_8090B08 sub_8090B08: push {r4-r6,lr} adds r6, r0, 0 lsls r1, 24 lsrs r5, r1, 24 cmp r5, 0 beq _08090B5A strb r5, [r6] adds r0, r5, 0 bl sub_8090A60 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _08090B42 adds r0, r5, 0 movs r1, 0 bl sub_8090D80 adds r4, r0, 0 adds r0, r5, 0 movs r1, 0x1 bl sub_8090D80 adds r1, r0, 0 adds r0, r4, 0 bl RandomRange strb r0, [r6, 0x1] b _08090B5E _08090B42: adds r0, r5, 0 bl sub_8090BD0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x6 bne _08090B56 movs r0, 0x1 strb r0, [r6, 0x1] b _08090B5E _08090B56: strb r4, [r6, 0x1] b _08090B5E _08090B5A: strb r5, [r6] strb r5, [r6, 0x1] _08090B5E: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8090B08 thumb_func_start sub_8090B64 sub_8090B64: push {r4-r6,lr} adds r4, r0, 0 adds r5, r1, 0 ldrb r1, [r5] adds r0, r1, 0 cmp r0, 0 beq _08090BA4 movs r0, 0x1 strb r0, [r4] strb r1, [r4, 0x2] ldrb r0, [r4, 0x2] bl sub_8090A60 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0 bne _08090B9A ldrb r0, [r4, 0x2] bl sub_8090BD0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x6 beq _08090B9A ldrb r0, [r4, 0x2] cmp r0, 0x7C bne _08090BA0 _08090B9A: ldrb r0, [r5, 0x1] strb r0, [r4, 0x1] b _08090BAA _08090BA0: strb r6, [r4, 0x1] b _08090BAA _08090BA4: strb r0, [r4, 0x2] strb r0, [r4, 0x1] strb r0, [r4] _08090BAA: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8090B64 thumb_func_start sub_8090BB0 sub_8090BB0: push {lr} adds r3, r0, 0 ldrb r0, [r1] movs r2, 0x1 ands r2, r0 cmp r2, 0 beq _08090BC8 ldrb r0, [r1, 0x2] strb r0, [r3] ldrb r0, [r1, 0x1] strb r0, [r3, 0x1] b _08090BCA _08090BC8: strb r2, [r3] _08090BCA: pop {r0} bx r0 thumb_func_end sub_8090BB0 thumb_func_start sub_8090BD0 sub_8090BD0: lsls r0, 24 ldr r1, _08090BE0 ldr r1, [r1] lsrs r0, 19 adds r0, r1 ldrb r0, [r0, 0xC] bx lr .align 2, 0 _08090BE0: .4byte gUnknown_20389A4 thumb_func_end sub_8090BD0 thumb_func_start sub_8090BE4 sub_8090BE4: push {r4,lr} adds r4, r0, 0 ldrb r0, [r4, 0x2] cmp r0, 0x69 bne _08090BF6 adds r0, r4, 0 bl sub_80915D4 b _08090C24 _08090BF6: ldrb r0, [r4, 0x2] bl sub_8090A60 lsls r0, 24 cmp r0, 0 bne _08090C14 ldrb r0, [r4, 0x2] ldr r1, _08090C10 ldr r1, [r1] lsls r0, 5 adds r0, r1 ldr r0, [r0, 0x4] b _08090C24 .align 2, 0 _08090C10: .4byte gUnknown_20389A4 _08090C14: ldrb r0, [r4, 0x2] ldr r1, _08090C2C ldr r1, [r1] lsls r0, 5 adds r0, r1 ldrb r1, [r4, 0x1] ldr r0, [r0, 0x4] muls r0, r1 _08090C24: pop {r4} pop {r1} bx r1 .align 2, 0 _08090C2C: .4byte gUnknown_20389A4 thumb_func_end sub_8090BE4 thumb_func_start sub_8090C30 sub_8090C30: push {r4,lr} adds r4, r0, 0 ldrb r0, [r4, 0x2] cmp r0, 0x69 bne _08090C42 adds r0, r4, 0 bl sub_80915D4 b _08090C70 _08090C42: ldrb r0, [r4, 0x2] bl sub_8090A60 lsls r0, 24 cmp r0, 0 bne _08090C60 ldrb r0, [r4, 0x2] ldr r1, _08090C5C ldr r1, [r1] lsls r0, 5 adds r0, r1 ldr r0, [r0, 0x8] b _08090C70 .align 2, 0 _08090C5C: .4byte gUnknown_20389A4 _08090C60: ldrb r0, [r4, 0x2] ldr r1, _08090C78 ldr r1, [r1] lsls r0, 5 adds r0, r1 ldrb r1, [r4, 0x1] ldr r0, [r0, 0x8] muls r0, r1 _08090C70: pop {r4} pop {r1} bx r1 .align 2, 0 _08090C78: .4byte gUnknown_20389A4 thumb_func_end sub_8090C30 thumb_func_start sub_8090C7C sub_8090C7C: push {r4,lr} adds r4, r0, 0 ldrb r0, [r4, 0x2] bl sub_80914E4 lsls r0, 24 cmp r0, 0 bne _08090C90 movs r0, 0 b _08090CC0 _08090C90: ldrb r0, [r4, 0x2] bl sub_8090A60 lsls r0, 24 cmp r0, 0 bne _08090CB0 ldrb r0, [r4, 0x2] ldr r1, _08090CAC ldr r1, [r1] lsls r0, 5 adds r0, r1 ldr r0, [r0, 0x4] b _08090CC0 .align 2, 0 _08090CAC: .4byte gUnknown_20389A4 _08090CB0: ldrb r0, [r4, 0x2] ldr r1, _08090CC8 ldr r1, [r1] lsls r0, 5 adds r0, r1 ldrb r1, [r4, 0x1] ldr r0, [r0, 0x4] muls r0, r1 _08090CC0: pop {r4} pop {r1} bx r1 .align 2, 0 _08090CC8: .4byte gUnknown_20389A4 thumb_func_end sub_8090C7C thumb_func_start sub_8090CCC sub_8090CCC: push {r4,lr} adds r4, r0, 0 ldrb r0, [r4, 0x2] bl sub_80914E4 lsls r0, 24 cmp r0, 0 bne _08090CE0 movs r0, 0 b _08090D10 _08090CE0: ldrb r0, [r4, 0x2] bl sub_8090A60 lsls r0, 24 cmp r0, 0 bne _08090D00 ldrb r0, [r4, 0x2] ldr r1, _08090CFC ldr r1, [r1] lsls r0, 5 adds r0, r1 ldr r0, [r0, 0x8] b _08090D10 .align 2, 0 _08090CFC: .4byte gUnknown_20389A4 _08090D00: ldrb r0, [r4, 0x2] ldr r1, _08090D18 ldr r1, [r1] lsls r0, 5 adds r0, r1 ldrb r1, [r4, 0x1] ldr r0, [r0, 0x8] muls r0, r1 _08090D10: pop {r4} pop {r1} bx r1 .align 2, 0 _08090D18: .4byte gUnknown_20389A4 thumb_func_end sub_8090CCC thumb_func_start sub_8090D1C sub_8090D1C: lsls r0, 24 ldr r1, _08090D2C ldr r1, [r1] lsrs r0, 19 adds r0, r1 ldr r0, [r0, 0x4] bx lr .align 2, 0 _08090D2C: .4byte gUnknown_20389A4 thumb_func_end sub_8090D1C thumb_func_start sub_8090D30 sub_8090D30: lsls r0, 24 ldr r1, _08090D40 ldr r1, [r1] lsrs r0, 19 adds r0, r1 ldr r0, [r0, 0x8] bx lr .align 2, 0 _08090D40: .4byte gUnknown_20389A4 thumb_func_end sub_8090D30 thumb_func_start sub_8090D44 sub_8090D44: lsls r0, 24 ldr r1, _08090D54 ldr r1, [r1] lsrs r0, 19 adds r0, r1 ldrb r0, [r0, 0x1A] bx lr .align 2, 0 _08090D54: .4byte gUnknown_20389A4 thumb_func_end sub_8090D44 thumb_func_start sub_8090D58 sub_8090D58: lsls r0, 24 ldr r1, _08090D68 ldr r1, [r1] lsrs r0, 19 adds r0, r1 ldrb r0, [r0, 0x1D] bx lr .align 2, 0 _08090D68: .4byte gUnknown_20389A4 thumb_func_end sub_8090D58 thumb_func_start sub_8090D6C sub_8090D6C: lsls r0, 24 ldr r1, _08090D7C ldr r1, [r1] lsrs r0, 19 adds r0, r1 ldrb r0, [r0, 0x1E] bx lr .align 2, 0 _08090D7C: .4byte gUnknown_20389A4 thumb_func_end sub_8090D6C thumb_func_start sub_8090D80 sub_8090D80: lsls r0, 24 ldr r2, _08090D94 ldr r2, [r2] lsrs r0, 19 adds r0, r2 adds r0, 0x1B adds r0, r1 ldrb r0, [r0] bx lr .align 2, 0 _08090D94: .4byte gUnknown_20389A4 thumb_func_end sub_8090D80 thumb_func_start sub_8090D98 sub_8090D98: lsls r0, 24 ldr r1, _08090DA8 ldr r1, [r1] lsrs r0, 19 adds r0, r1 ldr r0, [r0, 0x10] bx lr .align 2, 0 _08090DA8: .4byte gUnknown_20389A4 thumb_func_end sub_8090D98 thumb_func_start sub_8090DAC sub_8090DAC: lsls r0, 24 ldr r2, _08090DC0 ldr r2, [r2] lsrs r0, 19 adds r0, r2 adds r0, 0x14 adds r0, r1 ldrb r0, [r0] bx lr .align 2, 0 _08090DC0: .4byte gUnknown_20389A4 thumb_func_end sub_8090DAC thumb_func_start sub_8090DC4 sub_8090DC4: push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x54 adds r6, r0, 0 adds r4, r1, 0 mov r8, r2 lsls r4, 24 lsrs r4, 24 ldr r0, _08090E10 ldr r1, [r0] lsls r0, r4, 5 adds r0, r1 ldr r1, [r0] mov r0, sp movs r2, 0x50 bl strncpy add r5, sp, 0x50 adds r0, r5, 0 adds r1, r4, 0 movs r2, 0 bl sub_8090A8C movs r0, 0x1 strb r0, [r5, 0x1] adds r0, r6, 0 mov r1, sp adds r2, r5, 0 mov r3, r8 bl sub_8090F58 add sp, 0x54 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08090E10: .4byte gUnknown_20389A4 thumb_func_end sub_8090DC4 thumb_func_start sub_8090E14 sub_8090E14: push {r4-r7,lr} sub sp, 0x50 adds r6, r0, 0 adds r5, r1, 0 adds r7, r2, 0 movs r4, 0 cmp r7, 0 beq _08090E2C ldrb r1, [r7, 0x8] negs r0, r1 orrs r0, r1 lsrs r4, r0, 31 _08090E2C: ldrb r0, [r5, 0x2] bl sub_8090BD0 lsls r0, 24 cmp r0, 0 bne _08090E3E cmp r4, 0 bne _08090E50 b _08090E70 _08090E3E: ldrb r0, [r5, 0x2] bl sub_8090BD0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08090E90 cmp r4, 0 beq _08090E70 _08090E50: ldr r1, _08090E68 ldrb r0, [r5, 0x2] ldr r2, _08090E6C ldr r2, [r2] lsls r0, 5 adds r0, r2 ldr r2, [r0] ldrb r3, [r5, 0x1] mov r0, sp bl sub_800D158 b _08090EC4 .align 2, 0 _08090E68: .4byte gUnknown_8109770 _08090E6C: .4byte gUnknown_20389A4 _08090E70: ldr r1, _08090E88 ldrb r0, [r5, 0x2] ldr r2, _08090E8C ldr r2, [r2] lsls r0, 5 adds r0, r2 ldr r2, [r0] mov r0, sp bl sub_800D158 b _08090EC4 .align 2, 0 _08090E88: .4byte gUnknown_8109778 _08090E8C: .4byte gUnknown_20389A4 _08090E90: ldrb r0, [r5, 0x2] cmp r0, 0x69 bne _08090EB0 ldr r4, _08090EAC adds r0, r5, 0 bl sub_80915D4 adds r2, r0, 0 mov r0, sp adds r1, r4, 0 bl sub_800D158 b _08090EC4 .align 2, 0 _08090EAC: .4byte gUnknown_810977C _08090EB0: ldrb r0, [r5, 0x2] ldr r1, _08090F2C ldr r1, [r1] lsls r0, 5 adds r0, r1 ldr r1, [r0] mov r0, sp movs r2, 0x50 bl strncpy _08090EC4: ldrb r1, [r5] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08090EE2 ldr r1, _08090F30 adds r0, r6, 0 mov r2, sp bl sub_800D158 mov r0, sp adds r1, r6, 0 movs r2, 0x50 bl strncpy _08090EE2: cmp r7, 0 beq _08090F38 ldrb r0, [r7, 0x4] cmp r0, 0 beq _08090F0A ldrb r1, [r5] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _08090F0A ldr r1, _08090F34 adds r0, r6, 0 mov r2, sp bl sub_800D158 mov r0, sp adds r1, r6, 0 movs r2, 0x50 bl strncpy _08090F0A: ldr r0, [r7] cmp r0, 0x1 beq _08090F14 cmp r0, 0x3 bne _08090F44 _08090F14: ldrb r1, [r5] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08090F38 adds r0, r6, 0 mov r1, sp adds r2, r5, 0 adds r3, r7, 0 bl sub_8090F58 b _08090F50 .align 2, 0 _08090F2C: .4byte gUnknown_20389A4 _08090F30: .4byte gUnknown_8109784 _08090F34: .4byte gUnknown_810978C _08090F38: adds r0, r6, 0 mov r1, sp movs r2, 0x50 bl strncpy b _08090F50 _08090F44: adds r0, r6, 0 mov r1, sp adds r2, r5, 0 adds r3, r7, 0 bl sub_8090F58 _08090F50: add sp, 0x50 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8090E14 thumb_func_start sub_8090F58 sub_8090F58: push {r4-r6,lr} sub sp, 0x2C adds r5, r0, 0 adds r6, r1, 0 adds r0, r2, 0 adds r4, r3, 0 cmp r4, 0 bne _08090F6C adds r0, r5, 0 b _08090F94 _08090F6C: ldr r1, [r4] cmp r1, 0x1 bcc _08090F8A cmp r1, 0x2 bhi _08090F7E bl sub_8090BE4 adds r1, r0, 0 b _08090F8C _08090F7E: cmp r1, 0x4 bhi _08090F8A bl sub_8090C30 adds r1, r0, 0 b _08090F8C _08090F8A: movs r1, 0 _08090F8C: cmp r1, 0 bne _08090F9C adds r0, r5, 0 adds r1, r6, 0 _08090F94: movs r2, 0x50 bl strncpy b _08090FDE _08090F9C: movs r2, 0x6 ldrsh r0, [r4, r2] cmp r0, 0 beq _08090FC8 adds r0, r1, 0 add r1, sp, 0x4 movs r2, 0x1 bl sub_8090FEC ldr r1, _08090FC4 movs r0, 0x6 ldrsh r3, [r4, r0] add r2, sp, 0x4 str r2, [sp] adds r0, r5, 0 adds r2, r6, 0 bl sub_800D158 b _08090FDE .align 2, 0 _08090FC4: .4byte gUnknown_8109794 _08090FC8: adds r0, r1, 0 add r1, sp, 0x4 movs r2, 0 bl sub_8090FEC ldr r1, _08090FE8 adds r0, r5, 0 adds r2, r6, 0 add r3, sp, 0x4 bl sub_800D158 _08090FDE: add sp, 0x2C pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08090FE8: .4byte gUnknown_81097A4 thumb_func_end sub_8090F58 thumb_func_start sub_8090FEC sub_8090FEC: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r5, r0, 0 adds r4, r1, 0 lsls r2, 24 lsrs r2, 24 mov r10, r2 movs r0, 0 mov r8, r0 movs r6, 0 movs r2, 0 ldr r1, _08091050 mov r9, r1 mov r12, r9 _0809100E: movs r1, 0 lsls r3, r2, 2 ldr r7, _08091054 adds r0, r3, r7 ldr r0, [r0] adds r7, r2, 0x1 cmp r5, r0 blt _0809102C ldr r2, _08091054 _08091020: adds r0, r3, r2 ldr r0, [r0] subs r5, r0 adds r1, 0x1 cmp r5, r0 bge _08091020 _0809102C: cmp r1, 0x9 ble _08091032 movs r1, 0x9 _08091032: cmp r1, 0 beq _0809105C movs r0, 0x1 mov r8, r0 lsls r1, 1 mov r2, r12 adds r0, r1, r2 ldrb r0, [r0] strb r0, [r4] adds r4, 0x1 ldr r0, _08091058 adds r1, r0 ldrb r0, [r1] b _0809106C .align 2, 0 _08091050: .4byte gUnknown_81097C4 _08091054: .4byte gUnknown_81097B0 _08091058: .4byte gUnknown_81097C5 _0809105C: mov r1, r8 cmp r1, 0 beq _08091074 mov r2, r12 ldrb r0, [r2] strb r0, [r4] adds r4, 0x1 ldrb r0, [r2, 0x1] _0809106C: strb r0, [r4] adds r4, 0x1 adds r6, 0x1 b _08091080 _08091074: mov r0, r10 cmp r0, 0 beq _08091080 movs r0, 0x60 strb r0, [r4] adds r4, 0x1 _08091080: adds r2, r7, 0 cmp r2, 0x4 ble _0809100E lsls r1, r5, 1 mov r2, r9 adds r0, r1, r2 ldrb r0, [r0] strb r0, [r4] adds r4, 0x1 mov r0, r9 adds r0, 0x1 adds r1, r0 ldrb r0, [r1] strb r0, [r4] adds r6, 0x1 movs r0, 0 strb r0, [r4, 0x1] adds r0, r6, 0 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8090FEC thumb_func_start sub_80910B4 sub_80910B4: push {r4-r7,lr} movs r2, 0 movs r4, 0 ldr r7, _080910C0 movs r3, 0 b _080910DA .align 2, 0 _080910C0: .4byte gUnknown_203B460 _080910C4: cmp r2, r4 ble _080910D4 ldr r0, [r7] lsls r1, r4, 2 adds r1, r0, r1 adds r0, r3 ldr r0, [r0] str r0, [r1] _080910D4: adds r3, 0x4 adds r2, 0x1 adds r4, 0x1 _080910DA: cmp r2, 0x13 bgt _08091106 ldr r0, [r7] adds r0, r3, r0 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08091106 ldr r5, _0809112C movs r6, 0x1 _080910F0: adds r3, 0x4 adds r2, 0x1 cmp r2, 0x13 bgt _08091106 ldr r0, [r5] adds r0, r3, r0 ldrb r1, [r0] adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _080910F0 _08091106: cmp r2, 0x14 bne _080910C4 cmp r4, 0x13 bgt _08091124 ldr r3, _0809112C movs r2, 0 _08091112: lsls r1, r4, 2 ldr r0, [r3] adds r1, r0 strb r2, [r1, 0x2] strb r2, [r1, 0x1] strb r2, [r1] adds r4, 0x1 cmp r4, 0x13 ble _08091112 _08091124: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0809112C: .4byte gUnknown_203B460 thumb_func_end sub_80910B4 thumb_func_start sub_8091130 sub_8091130: push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 movs r3, 0 ldr r0, _08091154 ldr r2, [r0] movs r5, 0x1 _0809113E: ldrb r1, [r2] adds r0, r5, 0 ands r0, r1 cmp r0, 0 beq _08091158 ldrb r0, [r2, 0x2] cmp r0, r4 bne _08091158 adds r0, r3, 0 b _08091164 .align 2, 0 _08091154: .4byte gUnknown_203B460 _08091158: adds r2, 0x4 adds r3, 0x1 cmp r3, 0x13 ble _0809113E movs r0, 0x1 negs r0, r0 _08091164: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8091130 thumb_func_start sub_809116C sub_809116C: push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 ldr r0, _080911A0 ldr r2, [r0] movs r6, 0x1 movs r3, 0x13 _0809117C: ldrb r1, [r2] adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _0809118E ldrb r0, [r2, 0x2] cmp r0, r5 bne _0809118E adds r4, 0x1 _0809118E: adds r2, 0x4 subs r3, 0x1 cmp r3, 0 bge _0809117C adds r0, r4, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _080911A0: .4byte gUnknown_203B460 thumb_func_end sub_809116C thumb_func_start sub_80911A4 sub_80911A4: push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 adds r0, r5, 0 bl sub_809116C adds r4, r0, 0 movs r3, 0 ldr r0, _080911F4 ldr r7, [r0] movs r6, 0x1 _080911BA: movs r0, 0x58 muls r0, r3 adds r2, r7, r0 ldrh r1, [r2] adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _080911E2 lsrs r0, r1, 1 ands r0, r6 cmp r0, 0 beq _080911E2 adds r0, r2, 0 adds r0, 0x28 ldrb r0, [r0] cmp r0, 0 beq _080911E2 cmp r0, r5 bne _080911E2 adds r4, 0x1 _080911E2: adds r3, 0x1 movs r0, 0xCE lsls r0, 1 cmp r3, r0 ble _080911BA adds r0, r4, 0 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080911F4: .4byte gUnknown_203B45C thumb_func_end sub_80911A4 thumb_func_start sub_80911F8 sub_80911F8: push {r4,r5,lr} adds r2, r0, 0 ldr r4, _08091230 cmp r2, 0x12 bgt _0809121C adds r5, r4, 0 lsls r0, r2, 2 adds r3, r0, 0x4 _08091208: ldr r0, [r5] lsls r1, r2, 2 adds r1, r0, r1 adds r0, r3 ldr r0, [r0] str r0, [r1] adds r3, 0x4 adds r2, 0x1 cmp r2, 0x12 ble _08091208 _0809121C: ldr r0, [r4] adds r0, 0x4E movs r1, 0 strb r1, [r0] ldr r0, [r4] adds r0, 0x4C strb r1, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08091230: .4byte gUnknown_203B460 thumb_func_end sub_80911F8 thumb_func_start sub_8091234 sub_8091234: ldr r3, _08091248 ldr r1, [r3] lsls r0, 2 adds r1, r0 movs r2, 0 strb r2, [r1, 0x2] ldr r1, [r3] adds r1, r0 strb r2, [r1] bx lr .align 2, 0 _08091248: .4byte gUnknown_203B460 thumb_func_end sub_8091234 thumb_func_start sub_809124C sub_809124C: push {lr} sub sp, 0x4 adds r3, r0, 0 adds r2, r1, 0 lsls r3, 24 lsrs r3, 24 lsls r2, 24 lsrs r2, 24 mov r0, sp adds r1, r3, 0 bl sub_8090A8C mov r0, sp bl sub_8091290 lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r1} bx r1 thumb_func_end sub_809124C thumb_func_start sub_8091274 sub_8091274: push {lr} sub sp, 0x4 adds r1, r0, 0 mov r0, sp bl sub_8090B64 mov r0, sp bl sub_8091290 lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r1} bx r1 thumb_func_end sub_8091274 thumb_func_start sub_8091290 sub_8091290: push {r4-r6,lr} adds r4, r0, 0 movs r3, 0 ldr r5, _080912B4 movs r6, 0x1 _0809129A: lsls r1, r3, 2 ldr r0, [r5] adds r2, r1, r0 ldrb r1, [r2] adds r0, r6, 0 ands r0, r1 cmp r0, 0 bne _080912B8 ldr r0, [r4] str r0, [r2] movs r0, 0 b _080912C0 .align 2, 0 _080912B4: .4byte gUnknown_203B460 _080912B8: adds r3, 0x1 cmp r3, 0x13 ble _0809129A movs r0, 0x1 _080912C0: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8091290 thumb_func_start sub_80912C8 sub_80912C8: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} movs r5, 0 movs r6, 0 _080912D6: ldr r0, _0809139C lsls r1, r5, 2 ldr r0, [r0] adds r4, r0, r1 ldrb r1, [r4] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080912FE ldrb r0, [r4, 0x2] cmp r0, 0x69 bne _080912FE adds r0, r4, 0 bl sub_80915D4 bl sub_80913A0 strb r6, [r4, 0x2] strb r6, [r4, 0x1] strb r6, [r4] _080912FE: adds r5, 0x1 cmp r5, 0x13 ble _080912D6 bl sub_80910B4 movs r5, 0 _0809130A: movs r0, 0x1 negs r0, r0 mov r9, r0 lsls r2, r5, 2 ldr r1, _0809139C mov r8, r1 ldr r0, [r1] adds r3, r2, r0 ldrb r1, [r3] movs r0, 0x1 ands r0, r1 mov r10, r2 adds r7, r5, 0x1 cmp r0, 0 beq _08091382 ldrb r0, [r3, 0x2] bl sub_8090D44 adds r6, r0, 0 adds r4, r7, 0 cmp r7, 0x13 bgt _08091368 _08091336: lsls r5, r4, 2 mov r1, r8 ldr r0, [r1] adds r2, r5, r0 ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08091362 ldrb r0, [r2, 0x2] bl sub_8090D44 cmp r6, r0 ble _08091362 mov r9, r4 mov r1, r8 ldr r0, [r1] adds r0, r5 ldrb r0, [r0, 0x2] bl sub_8090D44 adds r6, r0, 0 _08091362: adds r4, 0x1 cmp r4, 0x13 ble _08091336 _08091368: mov r4, r9 cmp r4, 0 blt _08091382 ldr r0, _0809139C ldr r1, [r0] mov r0, r10 adds r2, r1, r0 ldr r3, [r2] lsls r0, r4, 2 adds r1, r0 ldr r0, [r1] str r0, [r2] str r3, [r1] _08091382: adds r5, r7, 0 cmp r5, 0x13 ble _0809130A bl sub_80910B4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0809139C: .4byte gUnknown_203B460 thumb_func_end sub_80912C8 thumb_func_start sub_80913A0 sub_80913A0: push {lr} ldr r1, _080913C4 ldr r1, [r1] movs r3, 0x98 lsls r3, 2 adds r2, r1, r3 ldr r1, [r2] adds r1, r0 str r1, [r2] ldr r0, _080913C8 cmp r1, r0 bgt _080913BE cmp r1, 0 bge _080913C0 movs r0, 0 _080913BE: str r0, [r2] _080913C0: pop {r0} bx r0 .align 2, 0 _080913C4: .4byte gUnknown_203B460 _080913C8: .4byte 0x0001869f thumb_func_end sub_80913A0 thumb_func_start sub_80913CC sub_80913CC: lsls r0, 24 ldr r1, _080913DC ldr r1, [r1] lsrs r0, 19 adds r0, r1 ldrh r0, [r0, 0x18] bx lr .align 2, 0 _080913DC: .4byte gUnknown_20389A4 thumb_func_end sub_80913CC thumb_func_start sub_80913E0 sub_80913E0: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x5C adds r6, r0, 0 adds r5, r1, 0 mov r8, r2 ldrb r0, [r6, 0x2] bl sub_8090D98 ldrb r1, [r6, 0x2] add r0, sp, 0x4 movs r2, 0 bl sub_8090DC4 ldrb r0, [r6, 0x2] cmp r0, 0x7C bne _08091414 ldr r0, _080914D4 ldrb r1, [r6, 0x1] adds r1, 0x7D lsls r1, 24 lsrs r1, 24 movs r2, 0 bl sub_8090DC4 _08091414: adds r0, r5, 0 bl sub_80073B8 movs r7, 0 str r7, [sp] movs r0, 0x10 movs r1, 0 add r2, sp, 0x4 adds r3, r5, 0 bl sub_8014FF0 ldrb r0, [r6, 0x2] bl sub_8090D98 adds r2, r0, 0 str r7, [sp] movs r0, 0x8 movs r1, 0x18 adds r3, r5, 0 bl sub_8014FF0 ldrb r0, [r6, 0x2] bl sub_8090BD0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x5 bne _080914B6 add r4, sp, 0x54 ldrb r0, [r6, 0x2] bl sub_80913CC adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 bl sub_8092A88 movs r0, 0x7 str r0, [sp] adds r0, r5, 0 movs r1, 0x4 movs r2, 0x52 movs r3, 0xC8 bl sub_80078A4 ldr r0, _080914D8 ldr r2, [r0] str r7, [sp] movs r0, 0x4 movs r1, 0x54 adds r3, r5, 0 bl sub_8014FF0 adds r0, r4, 0 bl sub_8092B00 lsls r0, 24 lsrs r0, 24 bl sub_8092334 adds r2, r0, 0 str r7, [sp] movs r0, 0x40 movs r1, 0x54 adds r3, r5, 0 bl sub_8014FF0 adds r0, r4, 0 bl sub_8092BF4 ldr r1, _080914DC str r0, [r1] ldr r0, _080914E0 ldr r2, [r0] str r7, [sp] movs r0, 0x80 movs r1, 0x54 adds r3, r5, 0 bl sub_8014FF0 _080914B6: adds r0, r5, 0 bl sub_80073E0 ldrb r0, [r6, 0x2] bl sub_8090D98 mov r1, r8 bl sub_8097DF0 add sp, 0x5C pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080914D4: .4byte gUnknown_202DE58 _080914D8: .4byte gUnknown_810CF0C _080914DC: .4byte gUnknown_202DE30 _080914E0: .4byte gUnknown_8115970 thumb_func_end sub_80913E0 thumb_func_start sub_80914E4 sub_80914E4: push {r4,lr} lsls r0, 24 lsrs r0, 24 adds r4, r0, 0 cmp r0, 0 beq _0809151A cmp r0, 0x69 beq _0809151A cmp r0, 0x79 beq _0809151A cmp r0, 0x77 beq _0809151A cmp r0, 0x78 beq _0809151A cmp r0, 0x7A beq _0809151A bl sub_8090D30 cmp r0, 0 beq _0809151A adds r0, r4, 0 bl sub_8090D1C cmp r0, 0 beq _0809151A movs r0, 0x1 b _0809151C _0809151A: movs r0, 0 _0809151C: pop {r4} pop {r1} bx r1 thumb_func_end sub_80914E4 thumb_func_start sub_8091524 sub_8091524: push {lr} lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 cmp r0, 0 beq _0809153C cmp r0, 0x69 beq _0809153C cmp r1, 0x7C beq _0809153C movs r0, 0x1 b _0809153E _0809153C: movs r0, 0 _0809153E: pop {r1} bx r1 thumb_func_end sub_8091524 thumb_func_start sub_8091544 sub_8091544: push {lr} lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 cmp r0, 0 beq _08091568 cmp r0, 0x69 beq _08091568 cmp r0, 0x79 beq _08091568 cmp r0, 0x77 beq _08091568 cmp r0, 0x78 beq _08091568 cmp r1, 0x7A beq _08091568 movs r0, 0x1 b _0809156A _08091568: movs r0, 0 _0809156A: pop {r1} bx r1 thumb_func_end sub_8091544 thumb_func_start sub_8091570 sub_8091570: push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl sub_8090BD0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 beq _08091596 adds r0, r4, 0 bl sub_8090BD0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 beq _08091596 movs r0, 0 b _08091598 _08091596: movs r0, 0x1 _08091598: pop {r4} pop {r1} bx r1 thumb_func_end sub_8091570 thumb_func_start sub_80915A0 sub_80915A0: push {lr} lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 cmp r0, 0xE0 beq _080915CC cmp r0, 0xE1 beq _080915CC cmp r0, 0xE2 beq _080915CC cmp r0, 0xE3 beq _080915CC cmp r0, 0xE4 beq _080915CC cmp r0, 0xE5 beq _080915CC cmp r0, 0xE6 beq _080915CC cmp r1, 0xE7 beq _080915CC movs r0, 0 b _080915CE _080915CC: movs r0, 0x1 _080915CE: pop {r1} bx r1 thumb_func_end sub_80915A0 thumb_func_start sub_80915D4 sub_80915D4: ldr r1, _080915E0 ldrb r0, [r0, 0x1] lsls r0, 2 adds r0, r1 ldr r0, [r0] bx lr .align 2, 0 _080915E0: .4byte gUnknown_810A3F0 thumb_func_end sub_80915D4 thumb_func_start sub_80915E4 sub_80915E4: ldr r1, _080915F0 ldrb r0, [r0, 0x1] lsls r0, 2 adds r0, r1 ldr r0, [r0] bx lr .align 2, 0 _080915F0: .4byte gUnknown_810A3F0 thumb_func_end sub_80915E4 thumb_func_start sub_80915F4 sub_80915F4: push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 adds r7, r3, 0 lsls r1, 24 lsrs r5, r1, 24 lsls r2, 24 lsrs r2, 24 mov r8, r2 ldr r0, _080916B8 strh r0, [r7] movs r0, 0 strh r0, [r7, 0x2] adds r0, r5, 0 bl sub_8091764 lsls r0, 24 cmp r0, 0 bne _0809161E b _08091756 _0809161E: movs r1, 0x8 ldrsh r0, [r6, r1] movs r1, 0 bl sub_808DC68 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r2, 0x8 ldrsh r0, [r6, r2] movs r1, 0x1 bl sub_808DC68 lsls r0, 24 lsrs r0, 24 adds r2, r5, 0 subs r2, 0x55 ldr r5, _080916BC lsls r2, 1 lsls r1, r4, 3 adds r1, r4 lsls r1, 2 adds r1, r2, r1 adds r1, r5 movs r4, 0 ldrsh r3, [r1, r4] lsls r1, r0, 3 adds r1, r0 lsls r1, 2 adds r2, r1 adds r2, r5 movs r1, 0 ldrsh r0, [r2, r1] movs r2, 0x14 ldrsh r1, [r6, r2] adds r3, r0 ldrh r4, [r6, 0x14] adds r3, r4 strh r3, [r6, 0x14] movs r2, 0x14 ldrsh r0, [r6, r2] subs r1, r0, r1 lsls r3, 16 cmp r3, 0 bgt _0809167C movs r0, 0x1 strh r0, [r6, 0x14] _0809167C: movs r4, 0x14 ldrsh r0, [r6, r4] ldr r2, _080916C0 cmp r0, r2 ble _08091688 strh r2, [r6, 0x14] _08091688: movs r0, 0 cmp r1, 0x8 bgt _0809169C movs r0, 0x1 cmp r1, 0x4 bgt _0809169C movs r0, 0x3 cmp r1, 0x2 ble _0809169C movs r0, 0x2 _0809169C: strh r0, [r7] mov r1, r8 cmp r1, 0 bne _08091756 cmp r0, 0 bne _080916C4 movs r0, 0x10 bl RandomCapped cmp r0, 0xA bne _080916C4 movs r0, 0xF b _080916D2 .align 2, 0 _080916B8: .4byte 0x0000ffff _080916BC: .4byte gUnknown_810A580 _080916C0: .4byte 0x000003e7 _080916C4: movs r0, 0x4 bl RandomCapped ldr r1, _080916EC lsls r0, 1 adds r0, r1 ldrh r0, [r0] _080916D2: strh r0, [r7, 0x2] ldrh r1, [r7, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080916F6 ldrb r0, [r6, 0x18] cmp r0, 0xFE bhi _080916F0 adds r0, 0x1 strb r0, [r6, 0x18] b _080916F6 .align 2, 0 _080916EC: .4byte gUnknown_81097E0 _080916F0: ldr r0, _0809170C ands r0, r1 strh r0, [r7, 0x2] _080916F6: ldrh r1, [r7, 0x2] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08091716 ldrb r0, [r6, 0x19] cmp r0, 0xFE bhi _08091710 adds r0, 0x1 strb r0, [r6, 0x19] b _08091716 .align 2, 0 _0809170C: .4byte 0x0000fffe _08091710: ldr r0, _0809172C ands r0, r1 strh r0, [r7, 0x2] _08091716: ldrh r1, [r7, 0x2] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08091736 ldrb r0, [r6, 0x1A] cmp r0, 0xFE bhi _08091730 adds r0, 0x1 strb r0, [r6, 0x1A] b _08091736 .align 2, 0 _0809172C: .4byte 0x0000fffd _08091730: ldr r0, _0809174C ands r0, r1 strh r0, [r7, 0x2] _08091736: ldrh r1, [r7, 0x2] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08091756 ldrb r0, [r6, 0x1B] cmp r0, 0xFE bhi _08091750 adds r0, 0x1 strb r0, [r6, 0x1B] b _08091756 .align 2, 0 _0809174C: .4byte 0x0000fffb _08091750: ldr r0, _08091760 ands r0, r1 strh r0, [r7, 0x2] _08091756: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08091760: .4byte 0x0000fff7 thumb_func_end sub_80915F4 thumb_func_start sub_8091764 sub_8091764: push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x55 bls _08091776 cmp r0, 0x66 bhi _08091776 movs r0, 0x1 b _08091778 _08091776: movs r0, 0 _08091778: pop {r1} bx r1 thumb_func_end sub_8091764 thumb_func_start sub_809177C sub_809177C: push {r4,lr} movs r4, 0 _08091780: lsls r1, r4, 2 ldr r0, _080917A4 ldr r0, [r0] adds r2, r1, r0 ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080917A8 ldrb r0, [r2, 0x2] bl sub_8091764 lsls r0, 24 cmp r0, 0 beq _080917A8 movs r0, 0x1 b _080917B0 .align 2, 0 _080917A4: .4byte gUnknown_203B460 _080917A8: adds r4, 0x1 cmp r4, 0x13 ble _08091780 movs r0, 0 _080917B0: pop {r4} pop {r1} bx r1 thumb_func_end sub_809177C thumb_func_start sub_80917B8 sub_80917B8: push {r4,lr} adds r4, r0, 0 ldrb r0, [r4, 0x2] bl sub_8090A60 lsls r0, 24 cmp r0, 0 beq _080917E0 ldr r2, _080917DC ldr r1, [r2] ldrb r0, [r4, 0x2] lsls r0, 1 adds r1, 0x50 adds r1, r0 ldrh r0, [r1] ldrb r3, [r4, 0x1] adds r0, r3 b _080917F0 .align 2, 0 _080917DC: .4byte gUnknown_203B460 _080917E0: ldr r2, _0809180C ldr r1, [r2] ldrb r0, [r4, 0x2] lsls r0, 1 adds r1, 0x50 adds r1, r0 ldrh r0, [r1] adds r0, 0x1 _080917F0: strh r0, [r1] ldr r0, [r2] ldrb r1, [r4, 0x2] lsls r1, 1 adds r0, 0x50 adds r2, r0, r1 ldrh r0, [r2] ldr r1, _08091810 cmp r0, r1 bls _08091806 strh r1, [r2] _08091806: pop {r4} pop {r0} bx r0 .align 2, 0 _0809180C: .4byte gUnknown_203B460 _08091810: .4byte 0x000003e7 thumb_func_end sub_80917B8 thumb_func_start sub_8091814 sub_8091814: push {lr} movs r3, 0 ldr r0, _0809183C ldr r0, [r0] movs r2, 0x8C lsls r2, 2 adds r1, r0, r2 movs r2, 0x7 _08091824: ldrb r0, [r1] cmp r0, 0 beq _0809182C adds r3, 0x1 _0809182C: adds r1, 0x4 subs r2, 0x1 cmp r2, 0 bge _08091824 adds r0, r3, 0 pop {r1} bx r1 .align 2, 0 _0809183C: .4byte gUnknown_203B460 thumb_func_end sub_8091814 thumb_func_start sub_8091840 sub_8091840: lsls r0, 24 ldr r1, _08091858 lsrs r0, 22 movs r2, 0x8C lsls r2, 2 adds r0, r2 ldr r1, [r1] adds r1, r0 movs r0, 0 strb r0, [r1] strb r0, [r1, 0x1] bx lr .align 2, 0 _08091858: .4byte gUnknown_203B460 thumb_func_end sub_8091840 thumb_func_start sub_809185C sub_809185C: lsls r0, 24 ldr r1, _08091870 lsrs r0, 22 movs r2, 0x8C lsls r2, 2 adds r0, r2 ldr r1, [r1] adds r1, r0 adds r0, r1, 0 bx lr .align 2, 0 _08091870: .4byte gUnknown_203B460 thumb_func_end sub_809185C thumb_func_start sub_8091874 sub_8091874: push {r4-r7,lr} movs r2, 0 movs r4, 0 ldr r7, _08091884 movs r6, 0x8C lsls r6, 2 movs r3, 0 b _080918A0 .align 2, 0 _08091884: .4byte gUnknown_203B460 _08091888: cmp r2, r4 ble _0809189A ldr r0, [r7] lsls r1, r4, 2 adds r0, r6 adds r1, r0, r1 adds r0, r3 ldr r0, [r0] str r0, [r1] _0809189A: adds r3, 0x4 adds r2, 0x1 adds r4, 0x1 _080918A0: cmp r2, 0x7 bgt _080918CA ldr r0, [r7] adds r0, r3 adds r0, r6 ldrb r0, [r0] cmp r0, 0 bne _080918CA ldr r5, _080918E8 movs r1, 0x8C lsls r1, 2 _080918B6: adds r3, 0x4 adds r2, 0x1 cmp r2, 0x7 bgt _080918CA ldr r0, [r5] adds r0, r3 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _080918B6 _080918CA: cmp r2, 0x8 bne _08091888 cmp r4, 0x7 bgt _080918E0 _080918D2: lsls r0, r4, 24 lsrs r0, 24 bl sub_8091840 adds r4, 0x1 cmp r4, 0x7 ble _080918D2 _080918E0: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080918E8: .4byte gUnknown_203B460 thumb_func_end sub_8091874 thumb_func_start sub_80918EC sub_80918EC: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} movs r0, 0 _080918F8: adds r1, r0, 0x1 mov r8, r1 mov r6, r8 cmp r1, 0x7 bgt _08091964 ldr r1, _08091978 mov r9, r1 lsls r7, r0, 2 movs r0, 0x8C lsls r0, 2 mov r10, r0 _0809190E: mov r1, r9 ldr r0, [r1] adds r0, r7 add r0, r10 ldrb r0, [r0] bl sub_8090D44 adds r4, r0, 0 mov r1, r9 ldr r0, [r1] lsls r5, r6, 2 adds r0, r5 add r0, r10 ldrb r0, [r0] bl sub_8090D44 cmp r4, r0 bgt _0809194C cmp r4, r0 bne _0809195E mov r1, r9 ldr r0, [r1] adds r2, r0, r7 ldr r1, _0809197C adds r2, r1 adds r0, r5 adds r0, r1 ldrb r1, [r2] ldrb r0, [r0] cmp r1, r0 bcs _0809195E _0809194C: mov r1, r9 ldr r0, [r1] add r0, r10 adds r2, r0, r7 ldr r3, [r2] adds r0, r5 ldr r1, [r0] str r1, [r2] str r3, [r0] _0809195E: adds r6, 0x1 cmp r6, 0x7 ble _0809190E _08091964: mov r0, r8 cmp r0, 0x6 ble _080918F8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08091978: .4byte gUnknown_203B460 _0809197C: .4byte 0x00000231 thumb_func_end sub_80918EC thumb_func_start sub_8091980 sub_8091980: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x10 lsls r0, 24 lsrs r0, 24 mov r8, r0 mov r1, sp ldr r0, _080919F4 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldr r0, [r0] str r0, [r1] movs r5, 0 _0809199C: lsls r0, r5, 24 lsrs r0, 24 bl sub_8091840 adds r5, 0x1 cmp r5, 0x7 ble _0809199C mov r0, r8 lsls r7, r0, 2 ldr r6, _080919F8 movs r5, 0x7 _080919B2: adds r0, r6, 0 bl RandomCapped adds r4, r0, 0 adds r0, r6, 0 bl RandomCapped adds r2, r0, 0 mov r1, sp adds r0, r1, r7 ldr r0, [r0] adds r1, r4, 0 bl sub_8091E94 lsls r0, 24 lsrs r0, 24 bl sub_80919FC subs r5, 0x1 cmp r5, 0 bge _080919B2 bl sub_80918EC mov r0, r8 bl sub_8091BB4 add sp, 0x10 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080919F4: .4byte gUnknown_81097E8 _080919F8: .4byte 0x0000270f thumb_func_end sub_8091980 thumb_func_start sub_80919FC sub_80919FC: push {r4,r5,lr} sub sp, 0x4 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 mov r0, sp bl sub_8090B08 movs r3, 0 ldr r5, _08091A34 movs r4, 0x8C lsls r4, 2 _08091A14: ldr r1, [r5] lsls r2, r3, 2 adds r0, r1, r2 adds r0, r4 ldrb r0, [r0] cmp r0, 0 bne _08091A38 movs r3, 0x8C lsls r3, 2 adds r0, r1, r3 adds r0, r2 ldr r1, [sp] str r1, [r0] movs r0, 0 b _08091A40 .align 2, 0 _08091A34: .4byte gUnknown_203B460 _08091A38: adds r3, 0x1 cmp r3, 0x7 ble _08091A14 movs r0, 0x1 _08091A40: add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80919FC thumb_func_start sub_8091A48 sub_8091A48: push {lr} movs r3, 0 ldr r0, _08091A70 ldr r0, [r0] movs r2, 0x94 lsls r2, 2 adds r1, r0, r2 movs r2, 0x3 _08091A58: ldrb r0, [r1] cmp r0, 0 beq _08091A60 adds r3, 0x1 _08091A60: adds r1, 0x4 subs r2, 0x1 cmp r2, 0 bge _08091A58 adds r0, r3, 0 pop {r1} bx r1 .align 2, 0 _08091A70: .4byte gUnknown_203B460 thumb_func_end sub_8091A48 thumb_func_start sub_8091A74 sub_8091A74: lsls r0, 24 ldr r1, _08091A8C lsrs r0, 22 movs r2, 0x94 lsls r2, 2 adds r0, r2 ldr r1, [r1] adds r1, r0 movs r0, 0 strb r0, [r1] strb r0, [r1, 0x1] bx lr .align 2, 0 _08091A8C: .4byte gUnknown_203B460 thumb_func_end sub_8091A74 thumb_func_start sub_8091A90 sub_8091A90: lsls r0, 24 ldr r1, _08091AA4 lsrs r0, 22 movs r2, 0x94 lsls r2, 2 adds r0, r2 ldr r1, [r1] adds r1, r0 adds r0, r1, 0 bx lr .align 2, 0 _08091AA4: .4byte gUnknown_203B460 thumb_func_end sub_8091A90 thumb_func_start sub_8091AA8 sub_8091AA8: push {r4-r7,lr} movs r2, 0 movs r4, 0 ldr r7, _08091AB8 movs r6, 0x94 lsls r6, 2 movs r3, 0 b _08091AD4 .align 2, 0 _08091AB8: .4byte gUnknown_203B460 _08091ABC: cmp r2, r4 ble _08091ACE ldr r0, [r7] lsls r1, r4, 2 adds r0, r6 adds r1, r0, r1 adds r0, r3 ldr r0, [r0] str r0, [r1] _08091ACE: adds r3, 0x4 adds r2, 0x1 adds r4, 0x1 _08091AD4: cmp r2, 0x3 bgt _08091AFE ldr r0, [r7] adds r0, r3 adds r0, r6 ldrb r0, [r0] cmp r0, 0 bne _08091AFE ldr r5, _08091B1C movs r1, 0x94 lsls r1, 2 _08091AEA: adds r3, 0x4 adds r2, 0x1 cmp r2, 0x3 bgt _08091AFE ldr r0, [r5] adds r0, r3 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _08091AEA _08091AFE: cmp r2, 0x4 bne _08091ABC cmp r4, 0x3 bgt _08091B14 _08091B06: lsls r0, r4, 24 lsrs r0, 24 bl sub_8091A74 adds r4, 0x1 cmp r4, 0x3 ble _08091B06 _08091B14: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08091B1C: .4byte gUnknown_203B460 thumb_func_end sub_8091AA8 thumb_func_start sub_8091B20 sub_8091B20: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} movs r0, 0 _08091B2C: adds r1, r0, 0x1 mov r8, r1 mov r6, r8 cmp r1, 0x3 bgt _08091B98 ldr r1, _08091BAC mov r9, r1 lsls r7, r0, 2 movs r0, 0x94 lsls r0, 2 mov r10, r0 _08091B42: mov r1, r9 ldr r0, [r1] adds r0, r7 add r0, r10 ldrb r0, [r0] bl sub_8090D44 adds r4, r0, 0 mov r1, r9 ldr r0, [r1] lsls r5, r6, 2 adds r0, r5 add r0, r10 ldrb r0, [r0] bl sub_8090D44 cmp r4, r0 bgt _08091B80 cmp r4, r0 bne _08091B92 mov r1, r9 ldr r0, [r1] adds r2, r0, r7 ldr r1, _08091BB0 adds r2, r1 adds r0, r5 adds r0, r1 ldrb r1, [r2] ldrb r0, [r0] cmp r1, r0 bcs _08091B92 _08091B80: mov r1, r9 ldr r0, [r1] add r0, r10 adds r2, r0, r7 ldr r3, [r2] adds r0, r5 ldr r1, [r0] str r1, [r2] str r3, [r0] _08091B92: adds r6, 0x1 cmp r6, 0x3 ble _08091B42 _08091B98: mov r0, r8 cmp r0, 0x2 ble _08091B2C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08091BAC: .4byte gUnknown_203B460 _08091BB0: .4byte 0x00000251 thumb_func_end sub_8091B20 thumb_func_start sub_8091BB4 sub_8091BB4: push {r4-r7,lr} sub sp, 0x10 lsls r0, 24 lsrs r4, r0, 24 mov r1, sp ldr r0, _08091C14 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldr r0, [r0] str r0, [r1] movs r5, 0 _08091BCA: lsls r0, r5, 24 lsrs r0, 24 bl sub_8091A74 adds r5, 0x1 cmp r5, 0x3 ble _08091BCA lsls r7, r4, 2 ldr r6, _08091C18 movs r5, 0x3 _08091BDE: adds r0, r6, 0 bl RandomCapped adds r4, r0, 0 adds r0, r6, 0 bl RandomCapped adds r2, r0, 0 mov r1, sp adds r0, r1, r7 ldr r0, [r0] adds r1, r4, 0 bl sub_8091E94 lsls r0, 24 lsrs r0, 24 bl sub_8091C1C subs r5, 0x1 cmp r5, 0 bge _08091BDE bl sub_8091B20 add sp, 0x10 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08091C14: .4byte gUnknown_81097F8 _08091C18: .4byte 0x0000270f thumb_func_end sub_8091BB4 thumb_func_start sub_8091C1C sub_8091C1C: push {r4,r5,lr} sub sp, 0x4 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 mov r0, sp bl sub_8090B08 movs r3, 0 ldr r5, _08091C54 movs r4, 0x94 lsls r4, 2 _08091C34: ldr r1, [r5] lsls r2, r3, 2 adds r0, r1, r2 adds r0, r4 ldrb r0, [r0] cmp r0, 0 bne _08091C58 movs r3, 0x94 lsls r3, 2 adds r0, r1, r3 adds r0, r2 ldr r1, [sp] str r1, [r0] movs r0, 0 b _08091C60 .align 2, 0 _08091C54: .4byte gUnknown_203B460 _08091C58: adds r3, 0x1 cmp r3, 0x3 ble _08091C34 movs r0, 0x1 _08091C60: add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8091C1C thumb_func_start sub_8091C68 sub_8091C68: push {r4-r6,lr} sub sp, 0x10 adds r3, r0, 0 adds r2, r1, 0 mov r0, sp adds r1, r3, 0 bl sub_809486C movs r4, 0 ldr r5, _08091D10 _08091C7C: lsls r0, r4, 2 ldr r1, [r5] adds r1, r0 mov r0, sp bl sub_8091E28 adds r4, 0x1 cmp r4, 0x13 ble _08091C7C ldr r6, _08091D10 movs r5, 0x50 movs r4, 0xEF _08091C94: ldr r1, [r6] adds r1, r5 mov r0, sp movs r2, 0xA bl sub_809488C adds r5, 0x2 subs r4, 0x1 cmp r4, 0 bge _08091C94 ldr r6, _08091D10 movs r5, 0x8C lsls r5, 2 movs r4, 0x7 _08091CB0: ldr r1, [r6] adds r1, r5 mov r0, sp bl sub_8091DE0 adds r5, 0x4 subs r4, 0x1 cmp r4, 0 bge _08091CB0 ldr r6, _08091D10 movs r5, 0x94 lsls r5, 2 movs r4, 0x3 _08091CCA: ldr r1, [r6] adds r1, r5 mov r0, sp bl sub_8091DE0 adds r5, 0x4 subs r4, 0x1 cmp r4, 0 bge _08091CCA ldr r4, _08091D10 ldr r1, [r4] movs r0, 0x98 lsls r0, 2 adds r1, r0 mov r0, sp movs r2, 0x18 bl sub_809488C ldr r1, [r4] movs r0, 0x99 lsls r0, 2 adds r1, r0 mov r0, sp movs r2, 0x18 bl sub_809488C mov r0, sp bl nullsub_102 ldr r0, [sp, 0x8] add sp, 0x10 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08091D10: .4byte gUnknown_203B460 thumb_func_end sub_8091C68 thumb_func_start sub_8091D14 sub_8091D14: push {r4-r6,lr} sub sp, 0x10 adds r3, r0, 0 adds r2, r1, 0 mov r0, sp adds r1, r3, 0 bl sub_809485C movs r4, 0 ldr r5, _08091DBC _08091D28: lsls r0, r4, 2 ldr r1, [r5] adds r1, r0 mov r0, sp bl sub_8091E00 adds r4, 0x1 cmp r4, 0x13 ble _08091D28 ldr r6, _08091DBC movs r5, 0x50 movs r4, 0xEF _08091D40: ldr r1, [r6] adds r1, r5 mov r0, sp movs r2, 0xA bl sub_8094924 adds r5, 0x2 subs r4, 0x1 cmp r4, 0 bge _08091D40 ldr r6, _08091DBC movs r5, 0x8C lsls r5, 2 movs r4, 0x7 _08091D5C: ldr r1, [r6] adds r1, r5 mov r0, sp bl sub_8091DC0 adds r5, 0x4 subs r4, 0x1 cmp r4, 0 bge _08091D5C ldr r6, _08091DBC movs r5, 0x94 lsls r5, 2 movs r4, 0x3 _08091D76: ldr r1, [r6] adds r1, r5 mov r0, sp bl sub_8091DC0 adds r5, 0x4 subs r4, 0x1 cmp r4, 0 bge _08091D76 ldr r4, _08091DBC ldr r1, [r4] movs r0, 0x98 lsls r0, 2 adds r1, r0 mov r0, sp movs r2, 0x18 bl sub_8094924 ldr r1, [r4] movs r0, 0x99 lsls r0, 2 adds r1, r0 mov r0, sp movs r2, 0x18 bl sub_8094924 mov r0, sp bl nullsub_102 ldr r0, [sp, 0x8] add sp, 0x10 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08091DBC: .4byte gUnknown_203B460 thumb_func_end sub_8091D14 thumb_func_start sub_8091DC0 sub_8091DC0: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 movs r2, 0x8 bl sub_8094924 adds r4, 0x1 adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x7 bl sub_8094924 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8091DC0 thumb_func_start sub_8091DE0 sub_8091DE0: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 movs r2, 0x8 bl sub_809488C adds r4, 0x1 adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x7 bl sub_809488C pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8091DE0 thumb_func_start sub_8091E00 sub_8091E00: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x8 bl sub_8094924 adds r1, r5, 0x1 adds r0, r4, 0 movs r2, 0x7 bl sub_8094924 adds r5, 0x2 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x8 bl sub_8094924 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8091E00 thumb_func_start sub_8091E28 sub_8091E28: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x8 bl sub_809488C adds r1, r5, 0x1 adds r0, r4, 0 movs r2, 0x7 bl sub_809488C adds r5, 0x2 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x8 bl sub_809488C pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8091E28 thumb_func_start sub_8091E50 sub_8091E50: lsls r0, 24 ldr r1, _08091E5C lsrs r0, 22 adds r0, r1 ldr r0, [r0] bx lr .align 2, 0 _08091E5C: .4byte gUnknown_810AF50 thumb_func_end sub_8091E50 thumb_func_start sub_8091E60 sub_8091E60: push {r4,lr} lsls r0, 24 lsrs r3, r0, 24 lsls r0, r1, 24 lsrs r4, r0, 24 cmp r3, 0x3E bhi _08091E8C ldr r2, _08091E88 lsrs r0, 27 lsls r1, r3, 5 adds r0, r1 adds r0, r2 ldrb r0, [r0] movs r1, 0x7 ands r1, r4 asrs r0, r1 movs r1, 0x1 ands r0, r1 b _08091E8E .align 2, 0 _08091E88: .4byte gUnknown_8108F64 _08091E8C: movs r0, 0 _08091E8E: pop {r4} pop {r1} bx r1 thumb_func_end sub_8091E60 thumb_func_start sub_8091E94 sub_8091E94: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r4, _08091EE4 add sp, r4 mov r8, r1 mov r10, r2 ldr r1, _08091EE8 subs r0, 0x1 lsls r0, 2 adds r0, r1 movs r3, 0 add r1, sp, 0x18 mov r9, r1 ldr r2, _08091EEC mov r12, r2 add r6, sp, 0x1F8 ldr r2, [r0] adds r7, r6, 0 movs r4, 0 _08091EC0: ldrh r1, [r2] cmp r1, r12 bls _08091EF4 ldrh r0, [r2] ldr r1, _08091EF0 adds r0, r1 cmp r0, 0 beq _08091EFC movs r5, 0 adds r1, r7, r4 _08091ED4: strh r5, [r1] adds r1, 0x2 adds r4, 0x2 adds r3, 0x1 subs r0, 0x1 cmp r0, 0 bne _08091ED4 b _08091EFC .align 2, 0 _08091EE4: .4byte 0xfffffc10 _08091EE8: .4byte gUnknown_8108E58 _08091EEC: .4byte 0x0000752f _08091EF0: .4byte 0xffff8ad0 _08091EF4: adds r0, r6, r4 strh r1, [r0] adds r4, 0x2 adds r3, 0x1 _08091EFC: adds r2, 0x2 cmp r3, 0xFB ble _08091EC0 movs r3, 0xB add r2, sp, 0x1F8 mov r1, sp _08091F08: ldrh r0, [r2] strh r0, [r1] adds r2, 0x2 adds r1, 0x2 subs r3, 0x1 cmp r3, 0 bge _08091F08 mov r2, r9 add r1, sp, 0x210 movs r3, 0xEF _08091F1C: ldrh r0, [r1] strh r0, [r2] adds r1, 0x2 adds r2, 0x2 subs r3, 0x1 cmp r3, 0 bge _08091F1C movs r7, 0xC movs r6, 0 mov r0, sp movs r2, 0 ldrsh r0, [r0, r2] cmp r0, 0 beq _08091F4A mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] cmp r0, r8 blt _08091F4A movs r7, 0 b _08091F66 _08091F46: mov r8, r5 b _08091F9C _08091F4A: adds r6, 0x1 cmp r6, 0xB bgt _08091F66 lsls r0, r6, 1 mov r2, sp adds r1, r2, r0 movs r2, 0 ldrsh r0, [r1, r2] cmp r0, 0 beq _08091F4A cmp r0, r8 blt _08091F4A lsls r0, r6, 24 lsrs r7, r0, 24 _08091F66: movs r0, 0x46 mov r8, r0 cmp r7, 0xC beq _08091F9C movs r6, 0 mov r4, r9 _08091F72: movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0 beq _08091F94 lsls r0, r6, 24 lsrs r5, r0, 24 adds r0, r5, 0 bl sub_8090BD0 lsls r0, 24 lsrs r0, 24 cmp r0, r7 bne _08091F94 movs r2, 0 ldrsh r0, [r4, r2] cmp r0, r10 bge _08091F46 _08091F94: adds r4, 0x2 adds r6, 0x1 cmp r6, 0xEF ble _08091F72 _08091F9C: mov r0, r8 movs r3, 0xFC lsls r3, 2 add sp, r3 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8091E94 thumb_func_start sub_8091FB4 sub_8091FB4: push {r4-r6,lr} movs r6, 0 _08091FB8: ldr r0, _08092038 lsls r1, r6, 2 ldr r0, [r0] adds r4, r0, r1 ldrb r1, [r4] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08091FE8 movs r0, 0xF7 ands r0, r1 movs r5, 0 strb r0, [r4] ldrb r0, [r4, 0x2] cmp r0, 0x69 bne _08091FE8 adds r0, r4, 0 bl sub_80915D4 bl sub_80913A0 strb r5, [r4, 0x2] strb r5, [r4, 0x1] strb r5, [r4] _08091FE8: adds r6, 0x1 cmp r6, 0x13 ble _08091FB8 bl sub_80910B4 movs r6, 0 _08091FF4: movs r0, 0x58 adds r1, r6, 0 muls r1, r0 ldr r0, _0809203C ldr r0, [r0] adds r2, r1, r0 ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08092026 adds r4, r2, 0 adds r4, 0x28 ldrb r0, [r4] cmp r0, 0 beq _08092026 cmp r0, 0x69 bne _08092026 adds r0, r4, 0 bl sub_80915E4 bl sub_80913A0 movs r0, 0 strb r0, [r4] _08092026: adds r6, 0x1 movs r0, 0xCE lsls r0, 1 cmp r6, r0 ble _08091FF4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08092038: .4byte gUnknown_203B460 _0809203C: .4byte gUnknown_203B45C thumb_func_end sub_8091FB4 thumb_func_start sub_8092040 sub_8092040: push {r4,lr} lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0xEF bls _0809204E _0809204A: movs r0, 0x1 b _08092070 _0809204E: movs r2, 0 ldr r0, _08092078 ldrb r1, [r0] adds r4, r0, 0 cmp r1, 0xF0 beq _0809206E adds r1, r4, 0 _0809205C: adds r0, r2, r1 ldrb r0, [r0] cmp r0, r3 beq _0809204A adds r2, 0x1 adds r0, r2, r4 ldrb r0, [r0] cmp r0, 0xF0 bne _0809205C _0809206E: movs r0, 0 _08092070: pop {r4} pop {r1} bx r1 .align 2, 0 _08092078: .4byte gUnknown_810A35B thumb_func_end sub_8092040 thumb_func_start sub_809207C sub_809207C: ldr r1, _08092084 ldr r0, _08092088 str r0, [r1] bx lr .align 2, 0 _08092084: .4byte gUnknown_203B464 _08092088: .4byte gUnknown_2038C10 thumb_func_end sub_809207C thumb_func_start sub_809208C sub_809208C: ldr r0, _08092090 bx lr .align 2, 0 _08092090: .4byte gUnknown_2038C10 thumb_func_end sub_809208C thumb_func_start sub_8092094 sub_8092094: push {r4,lr} ldr r4, _080920B0 ldr r0, [r4] ldr r1, _080920B4 movs r2, 0xA bl sub_8092310 ldr r1, [r4] movs r0, 0 str r0, [r1, 0xC] strb r0, [r1, 0x10] pop {r4} pop {r0} bx r0 .align 2, 0 _080920B0: .4byte gUnknown_203B464 _080920B4: .4byte gUnknown_810982C thumb_func_end sub_8092094 thumb_func_start sub_80920B8 sub_80920B8: push {lr} adds r2, r0, 0 movs r1, 0 ldr r0, _080920D4 ldr r3, [r0] _080920C2: adds r0, r3, r1 ldrb r0, [r0] strb r0, [r2] adds r2, 0x1 adds r1, 0x1 cmp r1, 0x9 ble _080920C2 pop {r0} bx r0 .align 2, 0 _080920D4: .4byte gUnknown_203B464 thumb_func_end sub_80920B8 thumb_func_start sub_80920D8 sub_80920D8: push {lr} ldr r1, _080920E8 ldr r1, [r1] movs r2, 0xA bl sub_80922B4 pop {r0} bx r0 .align 2, 0 _080920E8: .4byte gUnknown_203B464 thumb_func_end sub_80920D8 thumb_func_start sub_80920EC sub_80920EC: push {r4,lr} adds r3, r0, 0 movs r2, 0 ldr r4, _0809210C _080920F4: ldr r0, [r4] adds r0, r2 ldrb r1, [r3] strb r1, [r0] adds r3, 0x1 adds r2, 0x1 cmp r2, 0x9 ble _080920F4 pop {r4} pop {r0} bx r0 .align 2, 0 _0809210C: .4byte gUnknown_203B464 thumb_func_end sub_80920EC thumb_func_start sub_8092110 sub_8092110: ldr r0, _08092118 ldr r0, [r0] ldr r0, [r0, 0xC] bx lr .align 2, 0 _08092118: .4byte gUnknown_203B464 thumb_func_end sub_8092110 thumb_func_start sub_809211C sub_809211C: push {lr} bl sub_8092178 lsls r0, 24 lsrs r0, 24 cmp r0, 0x6 beq _08092144 ldr r1, _0809213C lsls r0, 2 adds r0, r1 ldr r1, _08092140 ldr r1, [r1] ldr r0, [r0] ldr r1, [r1, 0xC] subs r0, r1 b _08092146 .align 2, 0 _0809213C: .4byte gUnknown_8109810 _08092140: .4byte gUnknown_203B464 _08092144: movs r0, 0 _08092146: pop {r1} bx r1 thumb_func_end sub_809211C thumb_func_start sub_809214C sub_809214C: ldr r1, _08092154 ldr r1, [r1] str r0, [r1, 0xC] bx lr .align 2, 0 _08092154: .4byte gUnknown_203B464 thumb_func_end sub_809214C thumb_func_start sub_8092158 sub_8092158: push {lr} ldr r1, _08092170 ldr r2, [r1] ldr r1, [r2, 0xC] adds r1, r0 str r1, [r2, 0xC] ldr r0, _08092174 cmp r1, r0 ble _0809216C str r0, [r2, 0xC] _0809216C: pop {r0} bx r0 .align 2, 0 _08092170: .4byte gUnknown_203B464 _08092174: .4byte 0x05f5e0ff thumb_func_end sub_8092158 thumb_func_start sub_8092178 sub_8092178: push {lr} movs r1, 0 ldr r0, _08092190 ldr r0, [r0] ldr r3, [r0, 0xC] ldr r2, _08092194 _08092184: ldr r0, [r2] cmp r3, r0 bge _08092198 lsls r0, r1, 24 lsrs r0, 24 b _080921A2 .align 2, 0 _08092190: .4byte gUnknown_203B464 _08092194: .4byte gUnknown_8109810 _08092198: adds r2, 0x4 adds r1, 0x1 cmp r1, 0x6 ble _08092184 movs r0, 0x6 _080921A2: pop {r1} bx r1 thumb_func_end sub_8092178 thumb_func_start sub_80921A8 sub_80921A8: lsls r0, 24 ldr r1, _080921B4 lsrs r0, 22 adds r0, r1 ldr r0, [r0] bx lr .align 2, 0 _080921B4: .4byte gUnknown_810B44C thumb_func_end sub_80921A8 thumb_func_start sub_80921B8 sub_80921B8: ldr r0, _080921C0 ldr r0, [r0] ldrb r0, [r0, 0x10] bx lr .align 2, 0 _080921C0: .4byte gUnknown_203B464 thumb_func_end sub_80921B8 thumb_func_start sub_80921C4 sub_80921C4: push {r4-r6,lr} sub sp, 0x14 adds r3, r0, 0 adds r2, r1, 0 add r6, sp, 0x10 movs r0, 0xFF strb r0, [r6] mov r5, sp adds r5, 0x11 movs r0, 0 strb r0, [r5] mov r0, sp adds r1, r3, 0 bl sub_809486C ldr r4, _08092228 ldr r1, [r4] mov r0, sp movs r2, 0x58 bl sub_809488C ldr r1, [r4] adds r1, 0xC mov r0, sp movs r2, 0x20 bl sub_809488C movs r0, 0 bl sub_80023E4 ldr r1, [r4] strb r0, [r1, 0x10] ldr r0, [r4] ldrb r0, [r0, 0x10] adds r1, r5, 0 cmp r0, 0 beq _08092210 adds r1, r6, 0 _08092210: mov r0, sp movs r2, 0x1 bl sub_809488C mov r0, sp bl nullsub_102 ldr r0, [sp, 0x8] add sp, 0x14 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08092228: .4byte gUnknown_203B464 thumb_func_end sub_80921C4 thumb_func_start sub_809222C sub_809222C: push {r4,r5,lr} sub sp, 0x14 adds r3, r0, 0 adds r2, r1, 0 mov r0, sp adds r1, r3, 0 bl sub_809485C ldr r5, _0809227C ldr r1, [r5] mov r0, sp movs r2, 0x58 bl sub_8094924 ldr r1, [r5] adds r1, 0xC mov r0, sp movs r2, 0x20 bl sub_8094924 add r4, sp, 0x10 mov r0, sp adds r1, r4, 0 movs r2, 0x1 bl sub_8094924 ldr r2, [r5] ldrb r1, [r4] movs r0, 0x1 ands r0, r1 strb r0, [r2, 0x10] mov r0, sp bl nullsub_102 ldr r0, [sp, 0x8] add sp, 0x14 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0809227C: .4byte gUnknown_203B464 thumb_func_end sub_809222C thumb_func_start sub_8092280 sub_8092280: lsls r0, 24 lsrs r0, 24 bx lr thumb_func_end sub_8092280 thumb_func_start sub_8092288 sub_8092288: lsls r0, 24 lsrs r0, 24 bx lr thumb_func_end sub_8092288 thumb_func_start sub_8092290 sub_8092290: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 b _080922A4 _08092298: ldrb r0, [r4] adds r4, 0x1 bl sub_8092288 strb r0, [r5] adds r5, 0x1 _080922A4: ldrb r0, [r4] cmp r0, 0 bne _08092298 movs r0, 0 strb r0, [r5] pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8092290 thumb_func_start sub_80922B4 sub_80922B4: push {r4-r6,lr} adds r6, r0, 0 adds r4, r1, 0 adds r5, r2, 0 b _080922CA _080922BE: ldrb r0, [r4] adds r4, 0x1 bl sub_8092288 strb r0, [r6] adds r6, 0x1 _080922CA: adds r0, r5, 0 subs r5, 0x1 cmp r0, 0 ble _080922D8 ldrb r0, [r4] cmp r0, 0 bne _080922BE _080922D8: movs r0, 0 strb r0, [r6] pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80922B4 thumb_func_start sub_80922E4 sub_80922E4: ldr r1, _080922F0 lsls r0, 2 adds r0, r1 ldr r0, [r0] bx lr .align 2, 0 _080922F0: .4byte gUnknown_810983C thumb_func_end sub_80922E4 thumb_func_start sub_80922F4 sub_80922F4: push {lr} adds r2, r0, 0 b _08092300 _080922FA: strb r0, [r2] adds r1, 0x1 adds r2, 0x1 _08092300: ldrb r0, [r1] cmp r0, 0 bne _080922FA movs r0, 0 strb r0, [r2] pop {r0} bx r0 thumb_func_end sub_80922F4 thumb_func_start sub_8092310 sub_8092310: push {r4,lr} adds r4, r0, 0 b _0809231C _08092316: strb r0, [r4] adds r4, 0x1 adds r1, 0x1 _0809231C: adds r0, r2, 0 subs r2, 0x1 cmp r0, 0 ble _0809232E ldrb r0, [r1] adds r3, r0, 0 cmp r3, 0 bne _08092316 strb r3, [r4] _0809232E: pop {r4} pop {r0} bx r0 thumb_func_end sub_8092310 thumb_func_start sub_8092334 sub_8092334: lsls r0, 24 ldr r1, _08092340 lsrs r0, 22 adds r0, r1 ldr r0, [r0] bx lr .align 2, 0 _08092340: .4byte gUnknown_810AD4C thumb_func_end sub_8092334 thumb_func_start sub_8092344 sub_8092344: lsls r0, 24 ldr r1, _08092350 lsrs r0, 22 adds r0, r1 ldr r0, [r0] bx lr .align 2, 0 _08092350: .4byte gUnknown_810AE24 thumb_func_end sub_8092344 thumb_func_start sub_8092354 sub_8092354: lsls r0, 24 lsrs r0, 24 ldr r1, _08092360 adds r0, r1 ldrb r0, [r0] bx lr .align 2, 0 _08092360: .4byte gUnknown_810AC7C thumb_func_end sub_8092354 thumb_func_start sub_8092364 sub_8092364: lsls r0, 24 lsrs r0, 24 ldr r1, _08092370 adds r0, r1 ldrb r0, [r0] bx lr .align 2, 0 _08092370: .4byte gUnknown_810AC6A thumb_func_end sub_8092364 thumb_func_start sub_8092374 sub_8092374: push {lr} lsls r1, 24 ldr r2, _0809238C lsrs r1, 22 adds r1, r2 ldr r1, [r1] movs r2, 0x50 bl strncpy pop {r0} bx r0 .align 2, 0 _0809238C: .4byte gUnknown_810B4C8 thumb_func_end sub_8092374 thumb_func_start sub_8092390 sub_8092390: lsls r0, 24 ldr r1, _0809239C lsrs r0, 22 adds r0, r1 ldr r0, [r0] bx lr .align 2, 0 _0809239C: .4byte gUnknown_810B988 thumb_func_end sub_8092390 thumb_func_start sub_80923A0 sub_80923A0: ldr r1, _080923A8 ldr r0, _080923AC str r0, [r1] bx lr .align 2, 0 _080923A8: .4byte gUnknown_203B468 _080923AC: .4byte gUnknown_2038C28 thumb_func_end sub_80923A0 thumb_func_start sub_80923B0 sub_80923B0: ldr r0, _080923B4 bx lr .align 2, 0 _080923B4: .4byte gUnknown_2038C28 thumb_func_end sub_80923B0 thumb_func_start sub_80923B8 sub_80923B8: push {lr} movs r1, 0 ldr r3, _080923D0 movs r2, 0 _080923C0: ldr r0, [r3] adds r0, r1 strb r2, [r0] adds r1, 0x1 cmp r1, 0x39 ble _080923C0 pop {r0} bx r0 .align 2, 0 _080923D0: .4byte gUnknown_203B468 thumb_func_end sub_80923B8 thumb_func_start sub_80923D4 sub_80923D4: push {r4,r5,lr} adds r4, r0, 0 movs r3, 0 movs r1, 0 ldr r2, _080923F0 _080923DE: movs r5, 0 ldrsh r0, [r2, r5] adds r3, r0 cmp r3, r4 ble _080923F4 lsls r0, r1, 24 lsrs r0, 24 b _080923FE .align 2, 0 _080923F0: .4byte gUnknown_810AA90 _080923F4: adds r2, 0x8 adds r1, 0x1 cmp r1, 0x39 ble _080923DE movs r0, 0 _080923FE: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80923D4 thumb_func_start sub_8092404 sub_8092404: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} mov r10, r1 lsls r0, 24 lsrs r0, 24 mov r9, r0 lsls r2, 24 lsrs r2, 24 mov r8, r2 lsls r3, 24 lsrs r7, r3, 24 movs r6, 0 movs r4, 0 mov r5, r10 _08092426: movs r0, 0x58 adds r1, r4, 0 muls r1, r0 ldr r0, _08092494 ldr r0, [r0] adds r2, r1, r0 ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08092472 ldrb r0, [r2, 0x2] cmp r0, 0 beq _08092448 mov r0, r8 cmp r0, 0 beq _08092472 _08092448: movs r1, 0 ldrb r0, [r2, 0x4] cmp r0, 0x41 bne _08092452 movs r1, 0x1 _08092452: cmp r1, 0 beq _0809245A cmp r7, 0 beq _08092472 _0809245A: adds r0, r4, 0 bl sub_80923D4 lsls r0, 24 lsrs r0, 24 cmp r0, r9 bne _08092472 cmp r6, 0xF bgt _08092472 strh r4, [r5] adds r5, 0x2 adds r6, 0x1 _08092472: adds r4, 0x1 movs r0, 0xCE lsls r0, 1 cmp r4, r0 ble _08092426 lsls r0, r6, 1 add r0, r10 ldr r2, _08092498 adds r1, r2, 0 strh r1, [r0] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08092494: .4byte gUnknown_203B45C _08092498: .4byte 0x0000ffff thumb_func_end sub_8092404 thumb_func_start sub_809249C sub_809249C: push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 lsls r1, 24 lsrs r7, r1, 24 ldr r0, _080924F8 ldr r0, [r0] adds r0, r6 ldrb r0, [r0] cmp r0, 0 beq _0809251A movs r5, 0 _080924B4: ldr r2, _080924FC movs r0, 0x58 adds r1, r5, 0 muls r1, r0 ldr r0, [r2] adds r4, r0, r1 ldrb r1, [r4] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08092502 adds r0, r5, 0 bl sub_80923D4 lsls r0, 24 lsrs r0, 24 cmp r0, r6 bne _08092502 movs r1, 0 ldrb r0, [r4, 0x4] cmp r0, 0x41 bne _080924E2 movs r1, 0x1 _080924E2: cmp r1, 0 bne _080924F2 ldrb r1, [r4, 0x2] negs r0, r1 orrs r0, r1 lsrs r0, 31 cmp r0, 0 beq _08092500 _080924F2: movs r7, 0 b _08092502 .align 2, 0 _080924F8: .4byte gUnknown_203B468 _080924FC: .4byte gUnknown_203B45C _08092500: strh r0, [r4] _08092502: adds r5, 0x1 movs r0, 0xCE lsls r0, 1 cmp r5, r0 ble _080924B4 cmp r7, 0 beq _0809251A ldr r0, _08092520 ldr r0, [r0] adds r0, r6 movs r1, 0 strb r1, [r0] _0809251A: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08092520: .4byte gUnknown_203B468 thumb_func_end sub_809249C thumb_func_start sub_8092524 sub_8092524: lsls r0, 24 ldr r1, _08092530 lsrs r0, 22 adds r0, r1 ldr r0, [r0] bx lr .align 2, 0 _08092530: .4byte gUnknown_81139D0 thumb_func_end sub_8092524 thumb_func_start sub_8092534 sub_8092534: lsls r0, 24 ldr r1, _08092540 lsrs r0, 21 adds r0, r1 ldrb r0, [r0, 0x2] bx lr .align 2, 0 _08092540: .4byte gUnknown_810AA90 thumb_func_end sub_8092534 thumb_func_start sub_8092544 sub_8092544: lsls r0, 24 ldr r1, _08092554 lsrs r0, 21 adds r1, 0x4 adds r0, r1 ldr r0, [r0] bx lr .align 2, 0 _08092554: .4byte gUnknown_810AA90 thumb_func_end sub_8092544 thumb_func_start sub_8092558 sub_8092558: push {lr} lsls r2, r1, 24 ldr r1, _08092570 ldr r3, _08092574 lsrs r2, 22 adds r2, r3 ldr r2, [r2] bl sub_800D158 pop {r0} bx r0 .align 2, 0 _08092570: .4byte gUnknown_81098A4 _08092574: .4byte gUnknown_81139D0 thumb_func_end sub_8092558 thumb_func_start sub_8092578 sub_8092578: push {r4,r5,lr} sub sp, 0x18 adds r5, r0, 0 lsls r1, 24 lsrs r4, r1, 24 lsls r2, 24 cmp r2, 0 beq _080925C0 ldr r0, _080925B4 lsls r1, r4, 3 adds r0, 0x4 adds r1, r0 ldr r0, [r1] add r1, sp, 0x4 movs r2, 0x1 bl sub_8090FEC ldr r1, _080925B8 ldr r2, _080925BC lsls r0, r4, 2 adds r0, r2 ldr r2, [r0] add r0, sp, 0x4 str r0, [sp] adds r0, r5, 0 movs r3, 0x60 bl sub_800D158 b _080925CE .align 2, 0 _080925B4: .4byte gUnknown_810AA90 _080925B8: .4byte gUnknown_81098AC _080925BC: .4byte gUnknown_81139D0 _080925C0: ldr r0, _080925D8 lsls r1, r4, 2 adds r1, r0 ldr r1, [r1] adds r0, r5, 0 bl strcpy _080925CE: add sp, 0x18 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080925D8: .4byte gUnknown_81139D0 thumb_func_end sub_8092578 thumb_func_start sub_80925DC sub_80925DC: lsls r0, 24 ldr r1, _080925E8 lsrs r0, 22 adds r0, r1 ldr r0, [r0] bx lr .align 2, 0 _080925E8: .4byte gUnknown_8113E30 thumb_func_end sub_80925DC thumb_func_start sub_80925EC sub_80925EC: lsls r0, 24 lsrs r0, 24 ldr r1, _080925FC ldr r1, [r1] adds r1, r0 movs r0, 0x1 strb r0, [r1] bx lr .align 2, 0 _080925FC: .4byte gUnknown_203B468 thumb_func_end sub_80925EC thumb_func_start sub_8092600 sub_8092600: lsls r0, 24 lsrs r0, 24 ldr r1, _08092610 ldr r1, [r1] adds r1, r0 ldrb r0, [r1] bx lr .align 2, 0 _08092610: .4byte gUnknown_203B468 thumb_func_end sub_8092600 thumb_func_start sub_8092614 sub_8092614: push {lr} movs r1, 0x1 ldr r0, _08092628 ldr r2, [r0] _0809261C: adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0 bne _0809262C movs r0, 0 b _08092634 .align 2, 0 _08092628: .4byte gUnknown_203B468 _0809262C: adds r1, 0x1 cmp r1, 0x39 ble _0809261C movs r0, 0x1 _08092634: pop {r1} bx r1 thumb_func_end sub_8092614 thumb_func_start sub_8092638 sub_8092638: push {r4-r7,lr} mov r7, r8 push {r7} adds r4, r1, 0 lsls r0, 24 lsrs r5, r0, 24 lsls r2, 24 lsrs r2, 24 mov r12, r2 lsls r3, 24 lsrs r3, 24 mov r8, r3 movs r6, 0 movs r3, 0 ldr r2, _080926DC cmp r3, r5 bge _0809266E ldr r1, _080926E0 adds r3, r5, 0 _0809265E: movs r7, 0 ldrsh r0, [r1, r7] adds r6, r0 adds r1, 0x8 subs r3, 0x1 cmp r3, 0 bne _0809265E adds r3, r5, 0 _0809266E: str r6, [r4, 0x8] ldr r0, [r2] adds r0, r3 ldrb r0, [r0] strb r0, [r4, 0x4] lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _080926E8 movs r0, 0 strh r0, [r4, 0x2] ldr r1, _080926E0 lsls r0, r3, 3 adds r0, r1 ldrh r0, [r0] strh r0, [r4] movs r3, 0 movs r1, 0 ldrsh r0, [r4, r1] cmp r3, r0 bge _080926EC ldr r5, _080926E4 _0809269A: movs r0, 0x58 adds r1, r6, 0 muls r1, r0 ldr r0, [r5] adds r2, r0, r1 ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080926CC mov r7, r12 cmp r7, 0 beq _080926BA ldrb r0, [r2, 0x2] cmp r0, 0 bne _080926CC _080926BA: mov r0, r8 cmp r0, 0 beq _080926C6 ldrb r0, [r2, 0x4] cmp r0, 0x41 beq _080926CC _080926C6: ldrh r0, [r4, 0x2] adds r0, 0x1 strh r0, [r4, 0x2] _080926CC: adds r3, 0x1 adds r6, 0x1 movs r1, 0 ldrsh r0, [r4, r1] cmp r3, r0 blt _0809269A b _080926EC .align 2, 0 _080926DC: .4byte gUnknown_203B468 _080926E0: .4byte gUnknown_810AA90 _080926E4: .4byte gUnknown_203B45C _080926E8: strh r0, [r4, 0x2] strh r0, [r4] _080926EC: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8092638 thumb_func_start sub_80926F8 sub_80926F8: push {r4-r7,lr} adds r4, r1, 0 lsls r0, 24 lsrs r3, r0, 24 lsls r2, 24 lsrs r7, r2, 24 movs r5, 0 movs r2, 0 ldr r0, _08092780 mov r12, r0 cmp r2, r3 bge _08092724 ldr r1, _08092784 adds r2, r3, 0 _08092714: movs r6, 0 ldrsh r0, [r1, r6] adds r5, r0 adds r1, 0x8 subs r2, 0x1 cmp r2, 0 bne _08092714 adds r2, r3, 0 _08092724: str r5, [r4, 0x8] mov r1, r12 ldr r0, [r1] adds r0, r2 ldrb r0, [r0] strb r0, [r4, 0x4] lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _0809279C movs r0, 0 strh r0, [r4, 0x2] ldr r1, _08092784 lsls r0, r2, 3 adds r0, r1 ldrh r0, [r0] strh r0, [r4] movs r6, 0 ldrsh r0, [r4, r6] cmp r0, 0 ble _080927A0 ldr r6, _08092788 adds r2, r0, 0 _08092752: movs r0, 0x58 adds r1, r5, 0 muls r1, r0 ldr r0, [r6] adds r3, r0, r1 ldrb r1, [r3] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08092792 ldrb r0, [r3, 0x2] cmp r0, 0 bne _08092776 cmp r7, 0 bne _0809278C ldrb r0, [r3, 0x4] cmp r0, 0x41 bne _0809278C _08092776: ldrh r0, [r4] subs r0, 0x1 strh r0, [r4] b _08092792 .align 2, 0 _08092780: .4byte gUnknown_203B468 _08092784: .4byte gUnknown_810AA90 _08092788: .4byte gUnknown_203B45C _0809278C: ldrh r0, [r4, 0x2] adds r0, 0x1 strh r0, [r4, 0x2] _08092792: subs r2, 0x1 adds r5, 0x1 cmp r2, 0 bne _08092752 b _080927A0 _0809279C: strh r0, [r4, 0x2] strh r0, [r4] _080927A0: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80926F8 thumb_func_start sub_80927A8 sub_80927A8: push {r4,r5,lr} sub sp, 0x14 adds r3, r0, 0 adds r2, r1, 0 mov r0, sp adds r1, r3, 0 bl sub_809486C movs r4, 0 add r5, sp, 0x10 _080927BC: ldr r0, _080927F0 ldr r0, [r0] adds r0, r4 ldrb r0, [r0] cmp r0, 0 beq _080927CC movs r0, 0x1 negs r0, r0 _080927CC: str r0, [sp, 0x10] mov r0, sp adds r1, r5, 0 movs r2, 0x1 bl sub_809488C adds r4, 0x1 cmp r4, 0x39 ble _080927BC mov r0, sp bl nullsub_102 ldr r0, [sp, 0x8] add sp, 0x14 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080927F0: .4byte gUnknown_203B468 thumb_func_end sub_80927A8 thumb_func_start sub_80927F4 sub_80927F4: push {r4-r7,lr} sub sp, 0x14 adds r3, r0, 0 adds r2, r1, 0 mov r0, sp adds r1, r3, 0 bl sub_809485C movs r4, 0 add r7, sp, 0x10 movs r6, 0x1 ldr r5, _08092828 _0809280C: mov r0, sp adds r1, r7, 0 movs r2, 0x1 bl sub_8094924 ldr r1, [sp, 0x10] ands r1, r6 cmp r1, 0 beq _0809282C ldr r0, [r5] adds r0, r4 strb r6, [r0] b _08092832 .align 2, 0 _08092828: .4byte gUnknown_203B468 _0809282C: ldr r0, [r5] adds r0, r4 strb r1, [r0] _08092832: adds r4, 0x1 cmp r4, 0x39 ble _0809280C mov r0, sp bl nullsub_102 ldr r0, [sp, 0x8] add sp, 0x14 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80927F4 thumb_func_start LoadWazaParameters LoadWazaParameters: push {lr} ldr r0, _08092868 ldr r1, _0809286C bl OpenFileAndGetFileDataPtr ldr r1, _08092870 str r0, [r1] ldr r1, _08092874 ldr r2, [r0, 0x4] ldr r0, [r2] str r0, [r1] ldr r1, _08092878 ldr r0, [r2, 0x4] str r0, [r1] pop {r0} bx r0 .align 2, 0 _08092868: .4byte gUnknown_81098D0 _0809286C: .4byte gUnknown_8300500 _08092870: .4byte gUnknown_2038C64 _08092874: .4byte gUnknown_2038C68 _08092878: .4byte gUnknown_2038C6C thumb_func_end LoadWazaParameters thumb_func_start sub_809287C sub_809287C: push {lr} adds r2, r0, 0 ldrb r1, [r2] movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _08092894 ldrb r1, [r2, 0x1] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08092898 _08092894: movs r0, 0x32 b _0809289A _08092898: movs r0, 0x34 _0809289A: pop {r1} bx r1 thumb_func_end sub_809287C thumb_func_start sub_80928A0 sub_80928A0: push {r4,r5,lr} sub sp, 0x8 adds r4, r0, 0 adds r5, r2, 0 mov r0, sp bl sub_8093F10 adds r0, r4, 0 mov r1, sp adds r2, r5, 0 bl sub_80928C0 add sp, 0x8 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80928A0 thumb_func_start sub_80928C0 sub_80928C0: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x20 adds r7, r0, 0 adds r4, r1, 0 adds r5, r2, 0 adds r0, r4, 0 bl sub_809287C lsls r0, 24 lsrs r6, r0, 24 cmp r5, 0 bne _080928DE ldr r5, _080928F0 _080928DE: ldrb r1, [r4, 0x5] cmp r1, 0 beq _080928F8 ldr r1, _080928F4 ldrb r2, [r4, 0x5] add r0, sp, 0x14 bl sub_800D158 b _080928FC .align 2, 0 _080928F0: .4byte gUnknown_81098C4 _080928F4: .4byte gUnknown_81098DC _080928F8: add r0, sp, 0x14 strb r1, [r0] _080928FC: ldrb r0, [r5, 0x8] cmp r0, 0 beq _08092904 movs r6, 0x2 _08092904: ldrb r0, [r5, 0x9] cmp r0, 0 beq _08092918 ldrh r0, [r4, 0x2] bl sub_809422C lsls r0, 24 cmp r0, 0 beq _08092918 movs r6, 0x2 _08092918: ldr r0, [r5] cmp r0, 0x4 bls _08092920 b _08092A6A _08092920: lsls r0, 2 ldr r1, _0809292C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0809292C: .4byte _08092930 .align 2, 0 _08092930: .4byte _08092944 .4byte _0809296C .4byte _08092998 .4byte _080929C4 .4byte _08092A20 _08092944: ldr r1, _08092964 ldrh r2, [r4, 0x2] ldr r0, _08092968 ldr r3, [r0] lsls r0, r2, 3 adds r0, r2 lsls r0, 2 adds r0, r3 ldr r3, [r0] add r0, sp, 0x14 str r0, [sp] adds r0, r7, 0 adds r2, r6, 0 bl sub_800D158 b _08092A6A .align 2, 0 _08092964: .4byte gUnknown_81098E0 _08092968: .4byte gUnknown_2038C68 _0809296C: adds r0, r4, 0 bl sub_8092BF4 adds r3, r0, 0 ldr r1, _0809298C mov r8, r1 ldrb r1, [r4] movs r0, 0x8 ands r0, r1 ldr r1, _08092990 mov r12, r1 cmp r0, 0 beq _080929E2 ldr r0, _08092994 b _080929E0 .align 2, 0 _0809298C: .4byte gUnknown_81098EC _08092990: .4byte gUnknown_810990C _08092994: .4byte gUnknown_8109908 _08092998: adds r0, r4, 0 bl sub_8092BF4 adds r3, r0, 0 ldr r0, _080929B8 mov r8, r0 ldrb r1, [r4] movs r0, 0x8 ands r0, r1 ldr r1, _080929BC mov r12, r1 cmp r0, 0 beq _080929E2 ldr r0, _080929C0 b _080929E0 .align 2, 0 _080929B8: .4byte gUnknown_8109910 _080929BC: .4byte gUnknown_810990C _080929C0: .4byte gUnknown_8109908 _080929C4: adds r0, r4, 0 bl sub_8092BF4 adds r3, r0, 0 ldr r0, _08092A10 mov r8, r0 ldrb r1, [r4] movs r0, 0x4 ands r0, r1 ldr r1, _08092A14 mov r12, r1 cmp r0, 0 beq _080929E2 ldr r0, _08092A18 _080929E0: mov r12, r0 _080929E2: ldrh r1, [r4, 0x2] ldr r0, _08092A1C ldr r2, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r0, [r0] str r0, [sp] add r1, sp, 0x14 str r1, [sp, 0x4] ldr r0, [r5, 0x4] str r0, [sp, 0x8] ldrb r0, [r4, 0x4] str r0, [sp, 0xC] str r3, [sp, 0x10] adds r0, r7, 0 mov r1, r8 adds r2, r6, 0 mov r3, r12 bl sub_800D158 b _08092A6A .align 2, 0 _08092A10: .4byte gUnknown_81098EC _08092A14: .4byte gUnknown_810990C _08092A18: .4byte gUnknown_8109928 _08092A1C: .4byte gUnknown_2038C68 _08092A20: adds r0, r4, 0 bl sub_8092BF4 adds r3, r0, 0 ldr r0, _08092A78 mov r8, r0 ldrb r1, [r4] movs r0, 0x4 ands r0, r1 ldr r1, _08092A7C mov r12, r1 cmp r0, 0 beq _08092A3E ldr r0, _08092A80 mov r12, r0 _08092A3E: ldrh r1, [r4, 0x2] ldr r0, _08092A84 ldr r2, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r0, [r0] str r0, [sp] add r1, sp, 0x14 str r1, [sp, 0x4] ldr r0, [r5, 0x4] str r0, [sp, 0x8] ldrb r0, [r4, 0x4] str r0, [sp, 0xC] str r3, [sp, 0x10] adds r0, r7, 0 mov r1, r8 adds r2, r6, 0 mov r3, r12 bl sub_800D158 _08092A6A: add sp, 0x20 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08092A78: .4byte gUnknown_8109910 _08092A7C: .4byte gUnknown_810990C _08092A80: .4byte gUnknown_8109928 _08092A84: .4byte gUnknown_2038C68 thumb_func_end sub_80928C0 thumb_func_start sub_8092A88 sub_8092A88: push {r4,r5,lr} adds r4, r0, 0 movs r2, 0 movs r0, 0x5 strb r0, [r4] strb r2, [r4, 0x1] movs r5, 0 strh r1, [r4, 0x2] adds r0, r4, 0 bl sub_8092BF4 strb r0, [r4, 0x4] strb r5, [r4, 0x5] pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8092A88 thumb_func_start sub_8092AA8 sub_8092AA8: push {r4,r5,lr} adds r5, r0, 0 lsls r1, 16 lsrs r2, r1, 16 cmp r2, 0 bne _08092AB8 strb r2, [r5] b _08092ACE _08092AB8: movs r1, 0 movs r0, 0x5 strb r0, [r5] strb r1, [r5, 0x1] movs r4, 0 strh r2, [r5, 0x2] adds r0, r5, 0 bl sub_8092BF4 strb r0, [r5, 0x4] strb r4, [r5, 0x5] _08092ACE: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8092AA8 thumb_func_start sub_8092AD4 sub_8092AD4: movs r2, 0x5 strb r2, [r0] movs r2, 0 strh r1, [r0, 0x2] strb r2, [r0, 0x4] bx lr thumb_func_end sub_8092AD4 thumb_func_start sub_8092AE0 sub_8092AE0: ldrh r2, [r0, 0x2] ldr r0, _08092AFC ldr r3, [r0] lsls r0, r2, 3 adds r0, r2 lsls r0, 2 adds r0, r3 lsls r1, 1 adds r0, 0x8 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] bx lr .align 2, 0 _08092AFC: .4byte gUnknown_2038C68 thumb_func_end sub_8092AE0 thumb_func_start sub_8092B00 sub_8092B00: ldrh r1, [r0, 0x2] ldr r0, _08092B14 ldr r2, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x6] bx lr .align 2, 0 _08092B14: .4byte gUnknown_2038C68 thumb_func_end sub_8092B00 thumb_func_start sub_8092B18 sub_8092B18: push {lr} lsls r0, 16 asrs r1, r0, 16 adds r2, r1, 0 ldr r0, _08092B40 cmp r1, r0 beq _08092B48 cmp r1, 0 beq _08092B48 movs r0, 0xD2 lsls r0, 1 cmp r2, r0 beq _08092B48 ldr r0, _08092B44 ldr r1, [r0] lsls r0, r2, 3 adds r0, r1 ldr r0, [r0] b _08092B4A .align 2, 0 _08092B40: .4byte 0x000001a5 _08092B44: .4byte gUnknown_2038C6C _08092B48: ldr r0, _08092B50 _08092B4A: pop {r1} bx r1 .align 2, 0 _08092B50: .4byte gUnknown_810992B thumb_func_end sub_8092B18 thumb_func_start sub_8092B54 sub_8092B54: push {lr} lsls r0, 16 asrs r1, r0, 16 adds r2, r1, 0 ldr r0, _08092B7C cmp r1, r0 beq _08092B84 cmp r1, 0 beq _08092B84 movs r0, 0xD2 lsls r0, 1 cmp r2, r0 beq _08092B84 ldr r0, _08092B80 ldr r1, [r0] lsls r0, r2, 3 adds r0, r1 ldr r0, [r0, 0x4] b _08092B86 .align 2, 0 _08092B7C: .4byte 0x000001a5 _08092B80: .4byte gUnknown_2038C6C _08092B84: ldr r0, _08092B8C _08092B86: pop {r1} bx r1 .align 2, 0 _08092B8C: .4byte gUnknown_810992B thumb_func_end sub_8092B54 thumb_func_start sub_8092B90 sub_8092B90: ldrh r1, [r0, 0x2] ldr r0, _08092BA4 ldr r2, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0xD] bx lr .align 2, 0 _08092BA4: .4byte gUnknown_2038C68 thumb_func_end sub_8092B90 thumb_func_start sub_8092BA8 sub_8092BA8: ldrh r1, [r0, 0x2] ldr r0, _08092BBC ldr r2, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x11] bx lr .align 2, 0 _08092BBC: .4byte gUnknown_2038C68 thumb_func_end sub_8092BA8 thumb_func_start sub_8092BC0 sub_8092BC0: ldrh r1, [r0, 0x2] ldr r0, _08092BD4 ldr r2, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x4 ldrsh r0, [r0, r1] bx lr .align 2, 0 _08092BD4: .4byte gUnknown_2038C68 thumb_func_end sub_8092BC0 thumb_func_start sub_8092BD8 sub_8092BD8: ldrh r2, [r0, 0x2] ldr r0, _08092BF0 ldr r3, [r0] lsls r0, r2, 3 adds r0, r2 lsls r0, 2 adds r0, r3 adds r0, 0xE adds r0, r1 ldrb r0, [r0] bx lr .align 2, 0 _08092BF0: .4byte gUnknown_2038C68 thumb_func_end sub_8092BD8 thumb_func_start sub_8092BF4 sub_8092BF4: ldrh r1, [r0, 0x2] ldr r0, _08092C08 ldr r2, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0xC] bx lr .align 2, 0 _08092C08: .4byte gUnknown_2038C68 thumb_func_end sub_8092BF4 thumb_func_start sub_8092C0C sub_8092C0C: ldrh r1, [r0, 0x2] ldr r0, _08092C20 ldr r2, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x12] bx lr .align 2, 0 _08092C20: .4byte gUnknown_2038C68 thumb_func_end sub_8092C0C thumb_func_start sub_8092C24 sub_8092C24: ldrh r1, [r0, 0x2] ldr r0, _08092C38 ldr r2, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x13] bx lr .align 2, 0 _08092C38: .4byte gUnknown_2038C68 thumb_func_end sub_8092C24 thumb_func_start sub_8092C3C sub_8092C3C: ldrh r1, [r0, 0x2] ldr r0, _08092C50 ldr r2, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x17] bx lr .align 2, 0 _08092C50: .4byte gUnknown_2038C68 thumb_func_end sub_8092C3C thumb_func_start sub_8092C54 sub_8092C54: ldrh r1, [r0, 0x2] ldr r0, _08092C68 ldr r2, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x18] bx lr .align 2, 0 _08092C68: .4byte gUnknown_2038C68 thumb_func_end sub_8092C54 thumb_func_start sub_8092C6C sub_8092C6C: ldrh r1, [r0, 0x2] ldr r0, _08092C80 ldr r2, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x19] bx lr .align 2, 0 _08092C80: .4byte gUnknown_2038C68 thumb_func_end sub_8092C6C thumb_func_start sub_8092C84 sub_8092C84: push {r4,lr} sub sp, 0x8 adds r4, r0, 0 lsls r1, 16 lsrs r1, 16 mov r0, sp bl sub_8092A88 adds r0, r4, 0 mov r1, sp movs r2, 0 bl sub_80928C0 add sp, 0x8 pop {r4} pop {r0} bx r0 thumb_func_end sub_8092C84 thumb_func_start sub_8092CA8 sub_8092CA8: lsls r0, 16 lsrs r0, 16 ldr r1, _08092CBC ldr r2, [r1] lsls r1, r0, 3 adds r1, r0 lsls r1, 2 adds r1, r2 ldr r0, [r1, 0x20] bx lr .align 2, 0 _08092CBC: .4byte gUnknown_2038C68 thumb_func_end sub_8092CA8 thumb_func_start sub_8092CC0 sub_8092CC0: lsls r0, 16 lsrs r0, 16 ldr r1, _08092CD4 ldr r2, [r1] lsls r1, r0, 3 adds r1, r0 lsls r1, 2 adds r1, r2 ldrb r0, [r1, 0x14] bx lr .align 2, 0 _08092CD4: .4byte gUnknown_2038C68 thumb_func_end sub_8092CC0 thumb_func_start sub_8092CD8 sub_8092CD8: lsls r0, 16 lsrs r0, 16 ldr r1, _08092CEC ldr r2, [r1] lsls r1, r0, 3 adds r1, r0 lsls r1, 2 adds r1, r2 ldrb r0, [r1, 0x15] bx lr .align 2, 0 _08092CEC: .4byte gUnknown_2038C68 thumb_func_end sub_8092CD8 thumb_func_start sub_8092CF0 sub_8092CF0: lsls r0, 16 lsrs r0, 16 ldr r1, _08092D04 ldr r2, [r1] lsls r1, r0, 3 adds r1, r0 lsls r1, 2 adds r1, r2 ldrb r0, [r1, 0x16] bx lr .align 2, 0 _08092D04: .4byte gUnknown_2038C68 thumb_func_end sub_8092CF0 thumb_func_start sub_8092D08 sub_8092D08: push {lr} adds r2, r0, 0 ldrh r1, [r2, 0x2] cmp r1, 0xD9 beq _08092D4C movs r0, 0x8E lsls r0, 1 cmp r1, r0 beq _08092D4C cmp r1, 0x53 beq _08092D4C cmp r1, 0x22 beq _08092D4C cmp r1, 0x54 beq _08092D4C cmp r1, 0xAB beq _08092D4C ldr r0, _08092D48 cmp r1, r0 beq _08092D4C cmp r1, 0x1B beq _08092D4C cmp r1, 0xF1 beq _08092D4C cmp r1, 0x19 beq _08092D4C ldrh r0, [r2, 0x2] cmp r0, 0x1A beq _08092D4C movs r0, 0 b _08092D4E .align 2, 0 _08092D48: .4byte 0x00000125 _08092D4C: movs r0, 0x1 _08092D4E: pop {r1} bx r1 thumb_func_end sub_8092D08 thumb_func_start sub_8092D54 sub_8092D54: push {r4-r6,lr} adds r6, r0, 0 adds r0, r1, 0 ldr r5, _08092D78 ldr r4, _08092D7C bl sub_8092C6C lsls r0, 2 adds r0, r4 ldr r2, [r0] adds r0, r6, 0 adds r1, r5, 0 bl sub_800D158 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08092D78: .4byte gUnknown_810992C _08092D7C: .4byte gUnknown_810CC0C thumb_func_end sub_8092D54 thumb_func_start sub_8092D80 sub_8092D80: push {r4,r5,lr} adds r3, r1, 0 movs r5, 0 lsls r1, r3, 3 adds r1, r0 _08092D8A: adds r1, 0x8 adds r3, 0x1 cmp r3, 0x4 beq _08092DB0 ldrb r2, [r1] movs r4, 0x1 adds r0, r4, 0 ands r0, r2 cmp r0, 0 beq _08092DB0 lsrs r0, r2, 1 ands r0, r4 cmp r0, 0 bne _08092DAA adds r0, r3, 0 b _08092DB2 _08092DAA: adds r5, 0x1 cmp r5, 0x3 ble _08092D8A _08092DB0: movs r0, 0 _08092DB2: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8092D80 thumb_func_start sub_8092DB8 sub_8092DB8: push {r4-r6,lr} adds r4, r0, 0 movs r5, 0 movs r6, 0x1 _08092DC0: subs r1, 0x1 cmp r1, 0 bge _08092DF0 movs r2, 0x3 ldrb r1, [r4, 0x18] adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _08092DD6 movs r1, 0x3 b _08092DEC _08092DD6: subs r2, 0x1 cmp r2, 0 blt _08092E12 lsls r0, r2, 3 adds r0, r4 ldrb r1, [r0] adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _08092DD6 adds r1, r2, 0 _08092DEC: cmp r2, 0 blt _08092E12 _08092DF0: lsls r0, r1, 3 adds r0, r4 ldrb r2, [r0] movs r3, 0x1 adds r0, r3, 0 ands r0, r2 cmp r0, 0 beq _08092E12 lsrs r0, r2, 1 ands r0, r3 cmp r0, 0 bne _08092E0C adds r0, r1, 0 b _08092E14 _08092E0C: adds r5, 0x1 cmp r5, 0x3 ble _08092DC0 _08092E12: movs r0, 0 _08092E14: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8092DB8 thumb_func_start sub_8092E1C sub_8092E1C: push {r4,r5,lr} adds r3, r1, 0 movs r5, 0 lsls r1, r3, 3 adds r1, r0 _08092E26: adds r1, 0x8 adds r3, 0x1 cmp r3, 0x8 beq _08092E4C ldrb r2, [r1] movs r4, 0x1 adds r0, r4, 0 ands r0, r2 cmp r0, 0 beq _08092E4C lsrs r0, r2, 1 ands r0, r4 cmp r0, 0 bne _08092E46 adds r0, r3, 0 b _08092E4E _08092E46: adds r5, 0x1 cmp r5, 0x7 ble _08092E26 _08092E4C: movs r0, 0 _08092E4E: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8092E1C thumb_func_start sub_8092E54 sub_8092E54: push {r4,r5,lr} adds r3, r1, 0 movs r5, 0 lsls r1, r3, 3 adds r1, r0 _08092E5E: adds r1, 0x8 adds r3, 0x1 cmp r3, 0x8 beq _08092E84 ldrb r2, [r1] movs r4, 0x1 adds r0, r4, 0 ands r0, r2 cmp r0, 0 beq _08092E84 lsrs r0, r2, 1 ands r0, r4 cmp r0, 0 bne _08092E7E adds r0, r3, 0 b _08092E86 _08092E7E: adds r5, 0x1 cmp r5, 0x7 ble _08092E5E _08092E84: movs r0, 0 _08092E86: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8092E54 thumb_func_start sub_8092E8C sub_8092E8C: push {r4-r6,lr} adds r6, r0, 0 movs r5, 0 lsls r0, r1, 3 adds r3, r0, r6 _08092E96: subs r3, 0x8 subs r1, 0x1 cmp r1, 0 bge _08092EC6 movs r3, 0x7 movs r4, 0x1 adds r2, r6, 0 adds r2, 0x38 _08092EA6: ldrb r1, [r2] adds r0, r4, 0 ands r0, r1 cmp r0, 0 beq _08092EBC lsrs r0, r1, 1 ands r0, r4 cmp r0, 0 bne _08092EBC adds r0, r3, 0 b _08092EE6 _08092EBC: subs r2, 0x8 subs r3, 0x1 cmp r3, 0 bgt _08092EA6 b _08092EE4 _08092EC6: ldrb r2, [r3] movs r4, 0x1 adds r0, r4, 0 ands r0, r2 cmp r0, 0 beq _08092EE4 lsrs r0, r2, 1 ands r0, r4 cmp r0, 0 bne _08092EDE adds r0, r1, 0 b _08092EE6 _08092EDE: adds r5, 0x1 cmp r5, 0x7 ble _08092E96 _08092EE4: movs r0, 0 _08092EE6: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8092E8C thumb_func_start sub_8092EEC sub_8092EEC: push {r4-r6,lr} adds r6, r0, 0 movs r5, 0 lsls r0, r1, 3 adds r3, r0, r6 _08092EF6: subs r3, 0x8 subs r1, 0x1 cmp r1, 0 bge _08092F26 movs r3, 0x7 movs r4, 0x1 adds r2, r6, 0 adds r2, 0x38 _08092F06: ldrb r1, [r2] adds r0, r4, 0 ands r0, r1 cmp r0, 0 beq _08092F1C lsrs r0, r1, 1 ands r0, r4 cmp r0, 0 bne _08092F1C adds r0, r3, 0 b _08092F46 _08092F1C: subs r2, 0x8 subs r3, 0x1 cmp r3, 0 bgt _08092F06 b _08092F44 _08092F26: ldrb r2, [r3] movs r4, 0x1 adds r0, r4, 0 ands r0, r2 cmp r0, 0 beq _08092F44 lsrs r0, r2, 1 ands r0, r4 cmp r0, 0 bne _08092F3E adds r0, r1, 0 b _08092F46 _08092F3E: adds r5, 0x1 cmp r5, 0x7 ble _08092EF6 _08092F44: movs r0, 0 _08092F46: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8092EEC thumb_func_start sub_8092F4C sub_8092F4C: push {r4,lr} adds r2, r0, 0 cmp r1, 0 ble _08092F78 movs r4, 0x1 lsls r0, r1, 3 adds r3, r0, r2 _08092F5A: ldrb r2, [r3] adds r0, r4, 0 ands r0, r2 cmp r0, 0 beq _08092F78 lsrs r0, r2, 1 ands r0, r4 cmp r0, 0 bne _08092F70 adds r0, r1, 0 b _08092F7A _08092F70: subs r3, 0x8 subs r1, 0x1 cmp r1, 0 bgt _08092F5A _08092F78: movs r0, 0 _08092F7A: pop {r4} pop {r1} bx r1 thumb_func_end sub_8092F4C thumb_func_start sub_8092F80 sub_8092F80: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x80 adds r7, r0, 0 mov r8, r1 lsls r0, r1, 3 adds r0, r7, r0 ldrb r2, [r0] movs r1, 0x80 orrs r1, r2 strb r1, [r0] adds r0, r7, 0 mov r1, sp bl sub_8093784 mov r0, sp bl sub_8093744 adds r3, r0, 0 cmp r3, 0x2 bhi _08092FCC lsls r1, r3, 5 adds r0, r3, 0x1 lsls r0, 5 mov r2, sp adds r5, r0, r2 adds r4, r1, r2 movs r6, 0x3 _08092FBA: ldr r2, [r4] ldr r3, [r4, 0x4] ldr r0, [r5] ldr r1, [r5, 0x4] stm r4!, {r0,r1} stm r5!, {r2,r3} subs r6, 0x1 cmp r6, 0 bge _08092FBA _08092FCC: adds r0, r7, 0 mov r1, sp bl sub_80937E0 movs r3, 0 movs r5, 0x80 movs r4, 0x7F adds r1, r7, 0 _08092FDC: ldrb r2, [r1] adds r0, r5, 0 ands r0, r2 cmp r0, 0 beq _08092FF0 adds r0, r4, 0 ands r0, r2 strb r0, [r1] mov r8, r3 b _08092FF8 _08092FF0: adds r1, 0x8 adds r3, 0x1 cmp r3, 0x3 ble _08092FDC _08092FF8: mov r0, r8 add sp, 0x80 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8092F80 thumb_func_start sub_8093008 sub_8093008: push {r4-r7,lr} mov r7, r8 push {r7} ldr r4, _0809307C add sp, r4 adds r7, r0, 0 mov r8, r1 lsls r0, r1, 3 adds r0, r7, r0 ldrb r2, [r0] movs r1, 0x80 orrs r1, r2 strb r1, [r0] adds r0, r7, 0 mov r1, sp bl sub_8093974 mov r0, sp bl sub_80938F4 adds r3, r0, 0 cmp r3, 0x6 bhi _08093056 lsls r1, r3, 6 adds r0, r3, 0x1 lsls r0, 6 mov r2, sp adds r5, r0, r2 adds r4, r1, r2 movs r6, 0x7 _08093044: ldr r2, [r4] ldr r3, [r4, 0x4] ldr r0, [r5] ldr r1, [r5, 0x4] stm r4!, {r0,r1} stm r5!, {r2,r3} subs r6, 0x1 cmp r6, 0 bge _08093044 _08093056: adds r0, r7, 0 mov r1, sp bl sub_8093A2C movs r3, 0 movs r5, 0x80 movs r4, 0x7F adds r1, r7, 0 _08093066: ldrb r2, [r1] adds r0, r5, 0 ands r0, r2 cmp r0, 0 beq _08093080 adds r0, r4, 0 ands r0, r2 strb r0, [r1] mov r8, r3 b _08093088 .align 2, 0 _0809307C: .4byte 0xfffffe00 _08093080: adds r1, 0x8 adds r3, 0x1 cmp r3, 0x7 ble _08093066 _08093088: mov r0, r8 movs r3, 0x80 lsls r3, 2 add sp, r3 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8093008 thumb_func_start sub_809309C sub_809309C: push {r4-r7,lr} mov r7, r8 push {r7} ldr r4, _08093110 add sp, r4 adds r7, r0, 0 mov r8, r1 lsls r0, r1, 3 adds r0, r7, r0 ldrb r2, [r0] movs r1, 0x80 orrs r1, r2 strb r1, [r0] adds r0, r7, 0 mov r1, sp bl sub_80939D0 mov r0, sp bl sub_8093934 adds r3, r0, 0 cmp r3, 0x6 bhi _080930EA lsls r1, r3, 6 adds r0, r3, 0x1 lsls r0, 6 mov r2, sp adds r5, r0, r2 adds r4, r1, r2 movs r6, 0x7 _080930D8: ldr r2, [r4] ldr r3, [r4, 0x4] ldr r0, [r5] ldr r1, [r5, 0x4] stm r4!, {r0,r1} stm r5!, {r2,r3} subs r6, 0x1 cmp r6, 0 bge _080930D8 _080930EA: adds r0, r7, 0 mov r1, sp bl sub_8093B40 movs r3, 0 movs r5, 0x80 movs r4, 0x7F adds r1, r7, 0 _080930FA: ldrb r2, [r1] adds r0, r5, 0 ands r0, r2 cmp r0, 0 beq _08093114 adds r0, r4, 0 ands r0, r2 strb r0, [r1] mov r8, r3 b _0809311C .align 2, 0 _08093110: .4byte 0xfffffe00 _08093114: adds r1, 0x8 adds r3, 0x1 cmp r3, 0x7 ble _080930FA _0809311C: mov r0, r8 movs r3, 0x80 lsls r3, 2 add sp, r3 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_809309C thumb_func_start sub_8093130 sub_8093130: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x80 adds r7, r0, 0 mov r8, r1 lsls r0, r1, 3 adds r0, r7, r0 ldrb r2, [r0] movs r1, 0x80 orrs r1, r2 strb r1, [r0] adds r0, r7, 0 mov r1, sp bl sub_8093784 mov r0, sp bl sub_8093744 adds r1, r0, 0 subs r0, r1, 0x1 cmp r0, 0x2 bhi _0809317C lsls r1, 5 lsls r0, 5 mov r2, sp adds r5, r0, r2 adds r4, r1, r2 movs r6, 0x3 _0809316A: ldr r2, [r4] ldr r3, [r4, 0x4] ldr r0, [r5] ldr r1, [r5, 0x4] stm r4!, {r0,r1} stm r5!, {r2,r3} subs r6, 0x1 cmp r6, 0 bge _0809316A _0809317C: adds r0, r7, 0 mov r1, sp bl sub_80937E0 movs r1, 0 movs r5, 0x80 movs r4, 0x7F adds r2, r7, 0 _0809318C: ldrb r3, [r2] adds r0, r5, 0 ands r0, r3 cmp r0, 0 beq _080931A0 adds r0, r4, 0 ands r0, r3 strb r0, [r2] mov r8, r1 b _080931A8 _080931A0: adds r2, 0x8 adds r1, 0x1 cmp r1, 0x3 ble _0809318C _080931A8: mov r0, r8 add sp, 0x80 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8093130 thumb_func_start sub_80931B8 sub_80931B8: push {r4-r7,lr} mov r7, r8 push {r7} ldr r4, _0809322C add sp, r4 adds r7, r0, 0 mov r8, r1 lsls r0, r1, 3 adds r0, r7, r0 ldrb r2, [r0] movs r1, 0x80 orrs r1, r2 strb r1, [r0] adds r0, r7, 0 mov r1, sp bl sub_8093974 mov r0, sp bl sub_80938F4 adds r1, r0, 0 subs r0, r1, 0x1 cmp r0, 0x6 bhi _08093206 lsls r1, 6 lsls r0, 6 mov r2, sp adds r5, r0, r2 adds r4, r1, r2 movs r6, 0x7 _080931F4: ldr r2, [r4] ldr r3, [r4, 0x4] ldr r0, [r5] ldr r1, [r5, 0x4] stm r4!, {r0,r1} stm r5!, {r2,r3} subs r6, 0x1 cmp r6, 0 bge _080931F4 _08093206: adds r0, r7, 0 mov r1, sp bl sub_8093A2C movs r1, 0 movs r5, 0x80 movs r4, 0x7F adds r2, r7, 0 _08093216: ldrb r3, [r2] adds r0, r5, 0 ands r0, r3 cmp r0, 0 beq _08093230 adds r0, r4, 0 ands r0, r3 strb r0, [r2] mov r8, r1 b _08093238 .align 2, 0 _0809322C: .4byte 0xfffffe00 _08093230: adds r2, 0x8 adds r1, 0x1 cmp r1, 0x7 ble _08093216 _08093238: mov r0, r8 movs r3, 0x80 lsls r3, 2 add sp, r3 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80931B8 thumb_func_start sub_809324C sub_809324C: push {r4-r7,lr} mov r7, r8 push {r7} ldr r4, _080932C0 add sp, r4 adds r7, r0, 0 mov r8, r1 lsls r0, r1, 3 adds r0, r7, r0 ldrb r2, [r0] movs r1, 0x80 orrs r1, r2 strb r1, [r0] adds r0, r7, 0 mov r1, sp bl sub_80939D0 mov r0, sp bl sub_8093934 adds r1, r0, 0 subs r0, r1, 0x1 cmp r0, 0x6 bhi _0809329A lsls r1, 6 lsls r0, 6 mov r2, sp adds r5, r0, r2 adds r4, r1, r2 movs r6, 0x7 _08093288: ldr r2, [r4] ldr r3, [r4, 0x4] ldr r0, [r5] ldr r1, [r5, 0x4] stm r4!, {r0,r1} stm r5!, {r2,r3} subs r6, 0x1 cmp r6, 0 bge _08093288 _0809329A: adds r0, r7, 0 mov r1, sp bl sub_8093B40 movs r1, 0 movs r5, 0x80 movs r4, 0x7F adds r2, r7, 0 _080932AA: ldrb r3, [r2] adds r0, r5, 0 ands r0, r3 cmp r0, 0 beq _080932C4 adds r0, r4, 0 ands r0, r3 strb r0, [r2] mov r8, r1 b _080932CC .align 2, 0 _080932C0: .4byte 0xfffffe00 _080932C4: adds r2, 0x8 adds r1, 0x1 cmp r1, 0x7 ble _080932AA _080932CC: mov r0, r8 movs r3, 0x80 lsls r3, 2 add sp, r3 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_809324C thumb_func_start sub_80932E0 sub_80932E0: push {lr} lsls r0, 3 adds r0, r1 ldrb r1, [r0] movs r0, 0x8 ands r0, r1 cmp r0, 0 bne _080932F4 movs r0, 0 b _080932F6 _080932F4: movs r0, 0x1 _080932F6: pop {r1} bx r1 thumb_func_end sub_80932E0 thumb_func_start sub_80932FC sub_80932FC: push {lr} lsls r0, 3 adds r0, r1 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 bne _08093310 movs r0, 0 b _08093312 _08093310: movs r0, 0x1 _08093312: pop {r1} bx r1 thumb_func_end sub_80932FC thumb_func_start sub_8093318 sub_8093318: push {r4,lr} sub sp, 0x40 adds r4, r0, 0 mov r0, sp movs r2, 0x40 bl MemoryCopy8 adds r0, r4, 0 mov r1, sp bl sub_8093400 lsls r0, 24 lsrs r0, 24 add sp, 0x40 pop {r4} pop {r1} bx r1 thumb_func_end sub_8093318 thumb_func_start sub_809333C sub_809333C: push {r4,lr} sub sp, 0x40 adds r4, r0, 0 mov r0, sp movs r2, 0x40 bl MemoryCopy8 adds r0, r4, 0 mov r1, sp bl sub_8093468 lsls r0, 24 lsrs r0, 24 add sp, 0x40 pop {r4} pop {r1} bx r1 thumb_func_end sub_809333C thumb_func_start sub_8093360 sub_8093360: push {r4,lr} sub sp, 0x40 adds r4, r0, 0 mov r0, sp movs r2, 0x40 bl MemoryCopy8 adds r0, r4, 0 mov r1, sp bl sub_80933D8 lsls r0, 24 lsrs r0, 24 add sp, 0x40 pop {r4} pop {r1} bx r1 thumb_func_end sub_8093360 thumb_func_start sub_8093384 sub_8093384: push {lr} lsls r0, 3 adds r0, r1 ldrb r1, [r0] movs r0, 0x8 ands r0, r1 cmp r0, 0 bne _08093398 movs r0, 0x1 b _0809339A _08093398: movs r0, 0 _0809339A: pop {r1} bx r1 thumb_func_end sub_8093384 thumb_func_start sub_80933A0 sub_80933A0: push {r4-r6,lr} movs r4, 0 movs r6, 0x1 movs r5, 0x2 movs r3, 0x7 _080933AA: ldrb r2, [r1] adds r0, r6, 0 ands r0, r2 cmp r0, 0 beq _080933BE adds r0, r5, 0 ands r0, r2 cmp r0, 0 bne _080933BE adds r4, 0x1 _080933BE: adds r1, 0x8 subs r3, 0x1 cmp r3, 0 bge _080933AA cmp r4, 0x1 bgt _080933CE movs r0, 0 b _080933D0 _080933CE: movs r0, 0x1 _080933D0: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80933A0 thumb_func_start sub_80933D8 sub_80933D8: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl sub_8093400 lsls r0, 24 cmp r0, 0 bne _080933F6 adds r0, r4, 0 adds r1, r5, 0 bl sub_8093468 lsls r0, 24 lsrs r0, 24 b _080933F8 _080933F6: movs r0, 0x1 _080933F8: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80933D8 thumb_func_start sub_8093400 sub_8093400: push {r4-r7,lr} adds r4, r0, 0 adds r7, r1, 0 lsls r0, r4, 3 adds r0, r7, r0 ldrh r0, [r0, 0x2] bl sub_809422C lsls r0, 24 cmp r0, 0 beq _08093428 b _08093460 _08093418: adds r0, r1, 0 orrs r0, r2 strb r0, [r6] adds r0, r7, 0 bl sub_809371C movs r0, 0x1 b _08093462 _08093428: adds r5, r4, 0x1 cmp r5, 0x7 bgt _08093460 lsls r0, r5, 3 adds r4, r0, r7 adds r6, r4, 0 _08093434: ldrb r1, [r4] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08093460 ldrh r0, [r4, 0x2] bl sub_809422C lsls r0, 24 cmp r0, 0 bne _08093460 ldrb r1, [r4] movs r2, 0x2 movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08093418 adds r4, 0x8 adds r6, 0x8 adds r5, 0x1 cmp r5, 0x7 ble _08093434 _08093460: movs r0, 0 _08093462: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8093400 thumb_func_start sub_8093468 sub_8093468: push {r4-r7,lr} adds r6, r1, 0 movs r5, 0 adds r1, r0, 0x1 movs r4, 0 cmp r1, 0x7 bgt _080934A0 movs r0, 0x2 mov r12, r0 movs r7, 0xFD lsls r0, r1, 3 adds r3, r0, r6 _08093480: ldrb r2, [r3] mov r0, r12 ands r0, r2 cmp r0, 0 beq _080934A0 adds r0, r7, 0 ands r0, r2 strb r0, [r3] movs r5, 0x1 adds r3, 0x8 adds r1, 0x1 adds r4, 0x1 cmp r4, 0x7 bgt _080934A0 cmp r1, 0x7 ble _08093480 _080934A0: adds r0, r6, 0 bl sub_809371C adds r0, r5, 0 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8093468 thumb_func_start sub_80934B0 sub_80934B0: push {lr} adds r2, r0, 0 adds r0, r2, 0x1 cmp r0, 0x7 bgt _080934D2 lsls r0, r2, 3 adds r0, 0x8 adds r0, r1, r0 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080934D2 movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _080934D6 _080934D2: movs r0, 0 b _080934D8 _080934D6: movs r0, 0x1 _080934D8: pop {r1} bx r1 thumb_func_end sub_80934B0 thumb_func_start sub_80934DC sub_80934DC: push {r4-r7,lr} adds r5, r1, 0 lsls r0, 3 adds r4, r5, r0 ldrb r1, [r4] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _080934F4 movs r0, 0xF7 ands r0, r1 b _0809351A _080934F4: movs r7, 0x1 movs r6, 0xF7 adds r1, r5, 0 movs r3, 0x3 _080934FC: ldrb r2, [r1] adds r0, r7, 0 ands r0, r2 cmp r0, 0 beq _0809350C adds r0, r6, 0 ands r0, r2 strb r0, [r1] _0809350C: adds r1, 0x8 subs r3, 0x1 cmp r3, 0 bge _080934FC ldrb r1, [r4] movs r0, 0x8 orrs r0, r1 _0809351A: strb r0, [r4] adds r0, r5, 0 bl sub_809371C movs r0, 0x1 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80934DC thumb_func_start sub_809352C sub_809352C: push {lr} lsls r0, 3 adds r0, r1, r0 ldrb r3, [r0] movs r2, 0xF7 ands r2, r3 strb r2, [r0] adds r0, r1, 0 bl sub_809371C pop {r0} bx r0 thumb_func_end sub_809352C thumb_func_start sub_8093544 sub_8093544: push {lr} lsls r0, 3 adds r0, r1, r0 ldrb r2, [r0] movs r3, 0x4 eors r2, r3 strb r2, [r0] adds r0, r1, 0 bl sub_809371C movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_8093544 thumb_func_start sub_8093560 sub_8093560: push {r4-r7,lr} adds r4, r0, 0 adds r6, r1, 0 movs r5, 0x1 lsls r0, r4, 3 adds r0, r6, r0 ldrh r0, [r0, 0x2] strh r0, [r2] movs r1, 0 adds r0, r2, 0x2 movs r3, 0x2 _08093576: strh r1, [r0] adds r0, 0x2 subs r3, 0x1 cmp r3, 0 bge _08093576 adds r4, 0x1 adds r2, 0x2 cmp r4, 0x7 bgt _080935B0 cmp r5, 0x3 bgt _080935B0 movs r7, 0x2 lsls r0, r4, 3 adds r3, r0, r6 _08093592: ldrb r1, [r3] adds r0, r7, 0 ands r0, r1 cmp r0, 0 beq _080935B0 ldrh r0, [r3, 0x2] strh r0, [r2] adds r2, 0x2 adds r5, 0x1 adds r3, 0x8 adds r4, 0x1 cmp r4, 0x7 bgt _080935B0 cmp r5, 0x3 ble _08093592 _080935B0: adds r0, r5, 0 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8093560 thumb_func_start sub_80935B8 sub_80935B8: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r5, r0, 0 movs r0, 0x63 mov r12, r0 movs r0, 0 mov r8, r0 movs r6, 0 adds r4, r1, 0 cmp r4, 0 blt _08093606 lsls r0, r4, 3 adds r2, r5, r0 ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08093606 movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08093606 movs r7, 0x1 movs r3, 0x2 _080935EC: subs r2, 0x8 subs r4, 0x1 cmp r4, 0 blt _08093606 ldrb r1, [r2] adds r0, r7, 0 ands r0, r1 cmp r0, 0 beq _08093606 adds r0, r3, 0 ands r0, r1 cmp r0, 0 bne _080935EC _08093606: adds r2, r4, 0x1 mov r9, r2 cmp r2, 0x3 bgt _08093642 lsls r0, r2, 3 adds r3, r5, r0 ldrb r1, [r3] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08093642 movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08093642 movs r6, 0x1 movs r7, 0x2 _08093628: adds r3, 0x8 adds r2, 0x1 cmp r2, 0x3 bgt _08093642 ldrb r1, [r3] adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _08093642 adds r0, r7, 0 ands r0, r1 cmp r0, 0 bne _08093628 _08093642: cmp r6, 0 bne _0809364A movs r0, 0x63 b _080936CC _0809364A: movs r6, 0 b _08093668 _0809364E: ldrb r0, [r3, 0x4] cmp r12, r0 ble _08093656 mov r12, r0 _08093656: cmp r0, 0 bne _0809365C movs r6, 0x1 _0809365C: ldrb r1, [r3, 0x1] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _08093668 movs r6, 0x1 _08093668: subs r2, 0x1 cmp r2, r4 blt _0809367C lsls r0, r2, 3 adds r3, r5, r0 ldrb r1, [r3] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0809364E _0809367C: cmp r6, 0 beq _080936C6 mov r2, r9 cmp r2, 0x3 bgt _080936C0 lsls r0, r2, 3 adds r3, r5, r0 ldrb r1, [r3] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080936C0 movs r6, 0x2 movs r4, 0xFD _08093698: ldrb r1, [r3] adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _080936C0 adds r0, r4, 0 ands r0, r1 strb r0, [r3] movs r0, 0x1 mov r8, r0 adds r2, 0x1 cmp r2, 0x3 bgt _080936C0 lsls r0, r2, 3 adds r3, r5, r0 ldrb r1, [r3] mov r0, r8 ands r0, r1 cmp r0, 0 bne _08093698 _080936C0: mov r0, r8 cmp r0, 0 bne _080936CA _080936C6: mov r0, r12 b _080936CC _080936CA: movs r0, 0 _080936CC: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80935B8 thumb_func_start sub_80936D8 sub_80936D8: push {r4,lr} sub sp, 0x80 adds r4, r0, 0 mov r1, sp bl sub_8093784 adds r0, r4, 0 mov r1, sp bl sub_80937E0 add sp, 0x80 pop {r4} pop {r0} bx r0 thumb_func_end sub_80936D8 thumb_func_start sub_80936F4 sub_80936F4: push {r4,lr} ldr r4, _08093718 add sp, r4 adds r4, r0, 0 mov r1, sp bl sub_8093974 adds r0, r4, 0 mov r1, sp bl sub_8093A2C movs r3, 0x80 lsls r3, 2 add sp, r3 pop {r4} pop {r0} bx r0 .align 2, 0 _08093718: .4byte 0xfffffe00 thumb_func_end sub_80936F4 thumb_func_start sub_809371C sub_809371C: push {r4,lr} ldr r4, _08093740 add sp, r4 adds r4, r0, 0 mov r1, sp bl sub_80939D0 adds r0, r4, 0 mov r1, sp bl sub_8093B40 movs r3, 0x80 lsls r3, 2 add sp, r3 pop {r4} pop {r0} bx r0 .align 2, 0 _08093740: .4byte 0xfffffe00 thumb_func_end sub_809371C thumb_func_start sub_8093744 sub_8093744: push {r4-r7,lr} adds r7, r0, 0 movs r4, 0 movs r6, 0x1 movs r5, 0x80 _0809374E: movs r3, 0 lsls r0, r4, 5 adds r2, r0, r7 _08093754: ldrb r1, [r2] adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _0809376A adds r0, r5, 0 ands r0, r1 cmp r0, 0 beq _0809376A adds r0, r4, 0 b _0809377C _0809376A: adds r2, 0x8 adds r3, 0x1 cmp r3, 0x3 ble _08093754 adds r4, 0x1 cmp r4, 0x3 ble _0809374E movs r0, 0x1 negs r0, r0 _0809377C: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8093744 thumb_func_start sub_8093784 sub_8093784: push {r4-r7,lr} adds r6, r0, 0 movs r2, 0 movs r4, 0 _0809378C: lsls r0, r2, 5 adds r2, 0x1 movs r3, 0x3 adds r0, r1 adds r0, 0x18 _08093796: strb r4, [r0] subs r0, 0x8 subs r3, 0x1 cmp r3, 0 bge _08093796 cmp r2, 0x3 ble _0809378C movs r3, 0 movs r5, 0 adds r4, r1, 0 subs r4, 0x20 movs r7, 0x2 _080937AE: cmp r5, 0 beq _080937BC ldrb r1, [r6] adds r0, r7, 0 ands r0, r1 cmp r0, 0 bne _080937C0 _080937BC: adds r4, 0x20 movs r3, 0 _080937C0: lsls r2, r3, 3 adds r2, r4 ldm r6!, {r0,r1} str r0, [r2] str r1, [r2, 0x4] ldrb r1, [r2] movs r0, 0xFD ands r0, r1 strb r0, [r2] adds r3, 0x1 adds r5, 0x1 cmp r5, 0x3 ble _080937AE pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8093784 thumb_func_start sub_80937E0 sub_80937E0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 str r0, [sp, 0x8] mov r9, r1 movs r0, 0 mov r8, r0 movs r6, 0 add r1, sp, 0x4 mov r10, r1 mov r12, r6 movs r3, 0x1 _080937FE: mov r2, sp adds r0, r2, r6 mov r7, r12 strb r7, [r0] mov r1, sp adds r1, r6 adds r1, 0x4 mov r2, r12 strb r2, [r1] adds r7, r0, 0 lsls r0, r6, 5 adds r6, 0x1 adds r5, r1, 0 mov r1, r9 adds r2, r0, r1 movs r4, 0x3 _0809381E: ldrb r1, [r2] adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _0809383E movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08093832 strb r3, [r7] _08093832: ldrb r1, [r2] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _0809383E strb r3, [r5] _0809383E: adds r2, 0x8 subs r4, 0x1 cmp r4, 0 bge _0809381E cmp r6, 0x3 ble _080937FE movs r6, 0 mov r2, r8 lsls r2, 3 str r2, [sp, 0xC] _08093852: movs r4, 0 lsls r0, r6, 5 mov r7, r9 adds r5, r0, r7 ldr r0, [sp, 0xC] ldr r1, [sp, 0x8] adds r2, r0, r1 mov r7, r10 adds r7, r6 mov r12, r7 _08093866: ldrb r1, [r5] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080938D6 ldr r0, [r5] ldr r1, [r5, 0x4] str r0, [r2] str r1, [r2, 0x4] cmp r4, 0 bne _08093884 ldrb r1, [r2] movs r0, 0xFD ands r0, r1 b _0809388A _08093884: ldrb r0, [r2] movs r1, 0x2 orrs r0, r1 _0809388A: strb r0, [r2] ldrb r0, [r2] movs r3, 0xF7 ands r3, r0 movs r1, 0 movs r0, 0xFB ands r3, r0 strb r3, [r2] mov r7, sp adds r0, r7, r6 ldrb r0, [r0] cmp r0, 0 beq _080938B0 cmp r4, 0 bne _080938B0 movs r1, 0x8 adds r0, r3, 0 orrs r0, r1 strb r0, [r2] _080938B0: mov r1, r12 ldrb r0, [r1] cmp r0, 0 beq _080938C4 cmp r4, 0 bne _080938C4 ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] _080938C4: adds r2, 0x8 ldr r7, [sp, 0xC] adds r7, 0x8 str r7, [sp, 0xC] movs r0, 0x1 add r8, r0 mov r1, r8 cmp r1, 0x4 beq _080938E4 _080938D6: adds r5, 0x8 adds r4, 0x1 cmp r4, 0x3 ble _08093866 adds r6, 0x1 cmp r6, 0x3 ble _08093852 _080938E4: add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80937E0 thumb_func_start sub_80938F4 sub_80938F4: push {r4-r7,lr} adds r7, r0, 0 movs r4, 0 movs r6, 0x1 movs r5, 0x80 _080938FE: movs r3, 0 lsls r0, r4, 6 adds r2, r0, r7 _08093904: ldrb r1, [r2] adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _0809391A adds r0, r5, 0 ands r0, r1 cmp r0, 0 beq _0809391A adds r0, r4, 0 b _0809392C _0809391A: adds r2, 0x8 adds r3, 0x1 cmp r3, 0x7 ble _08093904 adds r4, 0x1 cmp r4, 0x7 ble _080938FE movs r0, 0x1 negs r0, r0 _0809392C: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80938F4 thumb_func_start sub_8093934 sub_8093934: push {r4-r7,lr} adds r7, r0, 0 movs r4, 0 movs r6, 0x1 movs r5, 0x80 _0809393E: movs r3, 0 lsls r0, r4, 6 adds r2, r0, r7 _08093944: ldrb r1, [r2] adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _0809395A adds r0, r5, 0 ands r0, r1 cmp r0, 0 beq _0809395A adds r0, r4, 0 b _0809396C _0809395A: adds r2, 0x8 adds r3, 0x1 cmp r3, 0x7 ble _08093944 adds r4, 0x1 cmp r4, 0x7 ble _0809393E movs r0, 0x1 negs r0, r0 _0809396C: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8093934 thumb_func_start sub_8093974 sub_8093974: push {r4-r7,lr} adds r6, r0, 0 movs r2, 0 movs r4, 0 _0809397C: lsls r0, r2, 6 adds r2, 0x1 movs r3, 0x7 adds r0, r1 adds r0, 0x38 _08093986: strb r4, [r0] subs r0, 0x8 subs r3, 0x1 cmp r3, 0 bge _08093986 cmp r2, 0x7 ble _0809397C movs r3, 0 movs r5, 0 adds r4, r1, 0 subs r4, 0x40 movs r7, 0x2 _0809399E: cmp r5, 0 beq _080939AC ldrb r1, [r6] adds r0, r7, 0 ands r0, r1 cmp r0, 0 bne _080939B0 _080939AC: adds r4, 0x40 movs r3, 0 _080939B0: lsls r2, r3, 3 adds r2, r4 ldm r6!, {r0,r1} str r0, [r2] str r1, [r2, 0x4] ldrb r1, [r2] movs r0, 0xFD ands r0, r1 strb r0, [r2] adds r3, 0x1 adds r5, 0x1 cmp r5, 0x7 ble _0809399E pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8093974 thumb_func_start sub_80939D0 sub_80939D0: push {r4-r7,lr} adds r6, r0, 0 movs r2, 0 movs r4, 0 _080939D8: lsls r0, r2, 6 adds r2, 0x1 movs r3, 0x7 adds r0, r1 adds r0, 0x38 _080939E2: strb r4, [r0] subs r0, 0x8 subs r3, 0x1 cmp r3, 0 bge _080939E2 cmp r2, 0x7 ble _080939D8 movs r3, 0 movs r5, 0 adds r4, r1, 0 subs r4, 0x40 movs r7, 0x2 _080939FA: cmp r5, 0 beq _08093A08 ldrb r1, [r6] adds r0, r7, 0 ands r0, r1 cmp r0, 0 bne _08093A0C _08093A08: adds r4, 0x40 movs r3, 0 _08093A0C: lsls r2, r3, 3 adds r2, r4 ldm r6!, {r0,r1} str r0, [r2] str r1, [r2, 0x4] ldrb r1, [r2] movs r0, 0xFD ands r0, r1 strb r0, [r2] adds r3, 0x1 adds r5, 0x1 cmp r5, 0x7 ble _080939FA pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80939D0 thumb_func_start sub_8093A2C sub_8093A2C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x18 str r0, [sp, 0x10] mov r9, r1 movs r0, 0 mov r8, r0 movs r6, 0 add r1, sp, 0x8 mov r10, r1 mov r12, r6 movs r3, 0x1 _08093A4A: mov r2, sp adds r0, r2, r6 mov r7, r12 strb r7, [r0] mov r1, sp adds r1, r6 adds r1, 0x8 mov r2, r12 strb r2, [r1] adds r7, r0, 0 lsls r0, r6, 6 adds r6, 0x1 adds r5, r1, 0 mov r1, r9 adds r2, r0, r1 movs r4, 0x7 _08093A6A: ldrb r1, [r2] adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _08093A8A movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08093A7E strb r3, [r7] _08093A7E: ldrb r1, [r2] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08093A8A strb r3, [r5] _08093A8A: adds r2, 0x8 subs r4, 0x1 cmp r4, 0 bge _08093A6A cmp r6, 0x7 ble _08093A4A movs r6, 0 mov r2, r8 lsls r2, 3 str r2, [sp, 0x14] _08093A9E: movs r4, 0 lsls r0, r6, 6 mov r7, r9 adds r5, r0, r7 ldr r0, [sp, 0x14] ldr r1, [sp, 0x10] adds r2, r0, r1 mov r7, r10 adds r7, r6 mov r12, r7 _08093AB2: ldrb r1, [r5] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08093B22 ldr r0, [r5] ldr r1, [r5, 0x4] str r0, [r2] str r1, [r2, 0x4] cmp r4, 0 bne _08093AD0 ldrb r1, [r2] movs r0, 0xFD ands r0, r1 b _08093AD6 _08093AD0: ldrb r0, [r2] movs r1, 0x2 orrs r0, r1 _08093AD6: strb r0, [r2] ldrb r0, [r2] movs r3, 0xF7 ands r3, r0 movs r1, 0 movs r0, 0xFB ands r3, r0 strb r3, [r2] mov r7, sp adds r0, r7, r6 ldrb r0, [r0] cmp r0, 0 beq _08093AFC cmp r4, 0 bne _08093AFC movs r1, 0x8 adds r0, r3, 0 orrs r0, r1 strb r0, [r2] _08093AFC: mov r1, r12 ldrb r0, [r1] cmp r0, 0 beq _08093B10 cmp r4, 0 bne _08093B10 ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] _08093B10: adds r2, 0x8 ldr r7, [sp, 0x14] adds r7, 0x8 str r7, [sp, 0x14] movs r0, 0x1 add r8, r0 mov r1, r8 cmp r1, 0x8 beq _08093B30 _08093B22: adds r5, 0x8 adds r4, 0x1 cmp r4, 0x7 ble _08093AB2 adds r6, 0x1 cmp r6, 0x7 ble _08093A9E _08093B30: add sp, 0x18 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8093A2C thumb_func_start sub_8093B40 sub_8093B40: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x18 str r0, [sp, 0x10] mov r9, r1 movs r0, 0 mov r8, r0 movs r6, 0 add r1, sp, 0x8 mov r10, r1 mov r12, r6 movs r3, 0x1 _08093B5E: mov r2, sp adds r0, r2, r6 mov r7, r12 strb r7, [r0] mov r1, sp adds r1, r6 adds r1, 0x8 mov r2, r12 strb r2, [r1] adds r7, r0, 0 lsls r0, r6, 6 adds r6, 0x1 adds r5, r1, 0 mov r1, r9 adds r2, r0, r1 movs r4, 0x7 _08093B7E: ldrb r1, [r2] adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _08093B9E movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08093B92 strb r3, [r7] _08093B92: ldrb r1, [r2] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08093B9E strb r3, [r5] _08093B9E: adds r2, 0x8 subs r4, 0x1 cmp r4, 0 bge _08093B7E cmp r6, 0x7 ble _08093B5E movs r6, 0 mov r2, r8 lsls r2, 3 str r2, [sp, 0x14] _08093BB2: movs r4, 0 lsls r0, r6, 6 mov r7, r9 adds r5, r0, r7 ldr r0, [sp, 0x14] ldr r1, [sp, 0x10] adds r2, r0, r1 mov r7, r10 adds r7, r6 mov r12, r7 _08093BC6: ldrb r1, [r5] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08093C36 ldr r0, [r5] ldr r1, [r5, 0x4] str r0, [r2] str r1, [r2, 0x4] cmp r4, 0 bne _08093BE4 ldrb r1, [r2] movs r0, 0xFD ands r0, r1 b _08093BEA _08093BE4: ldrb r0, [r2] movs r1, 0x2 orrs r0, r1 _08093BEA: strb r0, [r2] ldrb r0, [r2] movs r3, 0xF7 ands r3, r0 movs r1, 0 movs r0, 0xFB ands r3, r0 strb r3, [r2] mov r7, sp adds r0, r7, r6 ldrb r0, [r0] cmp r0, 0 beq _08093C10 cmp r4, 0 bne _08093C10 movs r1, 0x8 adds r0, r3, 0 orrs r0, r1 strb r0, [r2] _08093C10: mov r1, r12 ldrb r0, [r1] cmp r0, 0 beq _08093C24 cmp r4, 0 bne _08093C24 ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] _08093C24: adds r2, 0x8 ldr r7, [sp, 0x14] adds r7, 0x8 str r7, [sp, 0x14] movs r0, 0x1 add r8, r0 mov r1, r8 cmp r1, 0x8 beq _08093C44 _08093C36: adds r5, 0x8 adds r4, 0x1 cmp r4, 0x7 ble _08093BC6 adds r6, 0x1 cmp r6, 0x7 ble _08093BB2 _08093C44: add sp, 0x18 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8093B40 thumb_func_start sub_8093C54 sub_8093C54: push {r4-r7,lr} sub sp, 0x40 adds r6, r0, 0 lsls r0, r1, 3 adds r0, r6 movs r2, 0 strb r2, [r0] adds r3, r1, 0x1 cmp r3, 0x7 bgt _08093CA6 lsls r0, r3, 3 adds r4, r6, r0 ldrb r1, [r4] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08093CA6 movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08093CA6 mov r12, r2 movs r7, 0x1 adds r2, r4, 0 movs r5, 0x2 _08093C86: mov r0, r12 strb r0, [r4] adds r2, 0x8 adds r3, 0x1 cmp r3, 0x7 bgt _08093CA6 adds r4, r2, 0 ldrb r1, [r2] adds r0, r7, 0 ands r0, r1 cmp r0, 0 beq _08093CA6 adds r0, r5, 0 ands r0, r1 cmp r0, 0 bne _08093C86 _08093CA6: movs r4, 0 movs r7, 0x1 adds r2, r6, 0 mov r5, sp movs r3, 0x7 _08093CB0: ldrb r1, [r2] adds r0, r7, 0 ands r0, r1 cmp r0, 0 beq _08093CC2 ldr r0, [r2] ldr r1, [r2, 0x4] stm r5!, {r0,r1} adds r4, 0x1 _08093CC2: adds r2, 0x8 subs r3, 0x1 cmp r3, 0 bge _08093CB0 cmp r4, 0x7 bgt _08093CDE movs r1, 0 lsls r0, r4, 3 add r0, sp _08093CD4: strb r1, [r0] adds r0, 0x8 adds r4, 0x1 cmp r4, 0x7 ble _08093CD4 _08093CDE: mov r4, sp adds r2, r6, 0 movs r3, 0x7 _08093CE4: ldm r4!, {r0,r1} stm r2!, {r0,r1} subs r3, 0x1 cmp r3, 0 bge _08093CE4 add sp, 0x40 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8093C54 thumb_func_start sub_8093CF8 sub_8093CF8: push {r4-r7,lr} sub sp, 0x40 adds r6, r0, 0 lsls r0, r1, 3 adds r0, r6 movs r2, 0 strb r2, [r0] adds r3, r1, 0x1 cmp r3, 0x7 bgt _08093D4A lsls r0, r3, 3 adds r4, r6, r0 ldrb r1, [r4] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08093D4A movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08093D4A mov r12, r2 movs r7, 0x1 adds r2, r4, 0 movs r5, 0x2 _08093D2A: mov r0, r12 strb r0, [r4] adds r2, 0x8 adds r3, 0x1 cmp r3, 0x7 bgt _08093D4A adds r4, r2, 0 ldrb r1, [r2] adds r0, r7, 0 ands r0, r1 cmp r0, 0 beq _08093D4A adds r0, r5, 0 ands r0, r1 cmp r0, 0 bne _08093D2A _08093D4A: movs r4, 0 movs r7, 0x1 adds r2, r6, 0 mov r5, sp movs r3, 0x7 _08093D54: ldrb r1, [r2] adds r0, r7, 0 ands r0, r1 cmp r0, 0 beq _08093D66 ldr r0, [r2] ldr r1, [r2, 0x4] stm r5!, {r0,r1} adds r4, 0x1 _08093D66: adds r2, 0x8 subs r3, 0x1 cmp r3, 0 bge _08093D54 cmp r4, 0x7 bgt _08093D82 movs r1, 0 lsls r0, r4, 3 add r0, sp _08093D78: strb r1, [r0] adds r0, 0x8 adds r4, 0x1 cmp r4, 0x7 ble _08093D78 _08093D82: mov r4, sp adds r2, r6, 0 movs r3, 0x7 _08093D88: ldm r4!, {r0,r1} stm r2!, {r0,r1} subs r3, 0x1 cmp r3, 0 bge _08093D88 add sp, 0x40 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8093CF8 thumb_func_start sub_8093D9C sub_8093D9C: push {r4-r6,lr} sub sp, 0x8 adds r4, r0, 0 adds r5, r2, 0 adds r6, r3, 0 lsls r1, 16 lsrs r1, 16 mov r0, sp bl sub_8092A88 adds r0, r4, 0 mov r1, sp adds r2, r5, 0 adds r3, r6, 0 bl sub_8093DE8 add sp, 0x8 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8093D9C thumb_func_start sub_8093DC4 sub_8093DC4: push {r4-r6,lr} sub sp, 0x8 adds r4, r0, 0 adds r5, r2, 0 adds r6, r3, 0 mov r0, sp bl sub_8093F10 adds r0, r4, 0 mov r1, sp adds r2, r5, 0 adds r3, r6, 0 bl sub_8093DE8 add sp, 0x8 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8093DC4 thumb_func_start sub_8093DE8 sub_8093DE8: push {r4-r7,lr} mov r7, r8 push {r7} ldr r4, _08093E80 add sp, r4 adds r4, r0, 0 adds r6, r1, 0 adds r5, r2, 0 mov r8, r3 adds r0, r5, 0 bl sub_80073B8 ldr r0, _08093E84 adds r1, r6, 0 movs r2, 0 bl sub_80928C0 lsls r4, 3 adds r4, 0x10 ldr r2, _08093E88 movs r7, 0 str r7, [sp] adds r0, r4, 0 movs r1, 0 adds r3, r5, 0 bl sub_8014FF0 movs r3, 0x13 ldrh r1, [r6, 0x2] ldr r4, _08093E8C ldr r2, [r4] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r2, [r0, 0x1C] ldrb r0, [r2] cmp r0, 0x2A bne _08093E3A movs r3, 0x10 adds r2, 0x1 _08093E3A: str r7, [sp] movs r0, 0x4 adds r1, r3, 0 adds r3, r5, 0 bl sub_8014FF0 adds r0, r6, 0 adds r1, r5, 0 bl sub_8093E90 adds r0, r5, 0 bl sub_80073E0 ldrh r1, [r6, 0x2] ldr r2, [r4] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r1, [r0, 0x1C] add r0, sp, 0x4 bl strcpy add r0, sp, 0x4 mov r1, r8 bl sub_8097DF0 movs r3, 0xC9 lsls r3, 2 add sp, r3 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08093E80: .4byte 0xfffffcdc _08093E84: .4byte gUnknown_202DF98 _08093E88: .4byte gUnknown_8109930 _08093E8C: .4byte gUnknown_2038C68 thumb_func_end sub_8093DE8 thumb_func_start sub_8093E90 sub_8093E90: push {r4-r6,lr} sub sp, 0x4 adds r6, r0, 0 adds r5, r1, 0 movs r0, 0x7 str r0, [sp] adds r0, r5, 0 movs r1, 0x4 movs r2, 0x48 movs r3, 0xC8 bl sub_80078A4 ldr r0, _08093F00 adds r1, r6, 0 bl sub_8092D54 ldr r0, _08093F04 ldr r2, [r0] movs r4, 0 str r4, [sp] movs r0, 0x4 movs r1, 0x4A adds r3, r5, 0 bl sub_8014FF0 ldr r0, _08093F08 ldr r2, [r0] str r4, [sp] movs r0, 0x4 movs r1, 0x56 adds r3, r5, 0 bl sub_8014FF0 adds r0, r6, 0 bl sub_8092B00 lsls r0, 24 lsrs r0, 24 bl sub_8092334 adds r2, r0, 0 str r4, [sp] movs r0, 0x40 movs r1, 0x56 adds r3, r5, 0 bl sub_8014FF0 adds r0, r6, 0 bl sub_8092BC0 ldr r1, _08093F0C str r0, [r1] add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08093F00: .4byte gUnknown_202DF98 _08093F04: .4byte gUnknown_810CF00 _08093F08: .4byte gUnknown_810CF0C _08093F0C: .4byte gUnknown_202DE30 thumb_func_end sub_8093E90 thumb_func_start sub_8093F10 sub_8093F10: push {r4,lr} adds r3, r0, 0 adds r4, r1, 0 ldrb r1, [r4] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08093F48 movs r0, 0 strb r1, [r3] strb r0, [r3, 0x1] ldrh r0, [r4, 0x2] strh r0, [r3, 0x2] ldrh r1, [r4, 0x2] ldr r0, _08093F44 ldr r2, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0xC] strb r0, [r3, 0x4] ldrb r0, [r4, 0x4] strb r0, [r3, 0x5] b _08093F4A .align 2, 0 _08093F44: .4byte gUnknown_2038C68 _08093F48: strb r0, [r3] _08093F4A: pop {r4} pop {r0} bx r0 thumb_func_end sub_8093F10 thumb_func_start sub_8093F50 sub_8093F50: push {r4-r7,lr} adds r6, r0, 0 movs r7, 0 adds r3, r6, 0 adds r4, r1, 0 movs r5, 0x3 _08093F5C: ldrb r1, [r4] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08093F8C strb r1, [r3] strb r7, [r3, 0x1] ldrh r0, [r4, 0x2] strh r0, [r3, 0x2] ldrh r1, [r4, 0x2] ldr r0, _08093F88 ldr r2, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0xC] strb r0, [r3, 0x4] ldrb r0, [r4, 0x4] strb r0, [r3, 0x5] b _08093F8E .align 2, 0 _08093F88: .4byte gUnknown_2038C68 _08093F8C: strb r0, [r3] _08093F8E: adds r3, 0x8 adds r4, 0x8 subs r5, 0x1 cmp r5, 0 bge _08093F5C adds r1, r6, 0 adds r1, 0x20 movs r0, 0 strb r0, [r1] pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8093F50 thumb_func_start sub_8093FA8 sub_8093FA8: push {lr} adds r2, r0, 0 movs r3, 0x3 _08093FAE: ldrb r0, [r1] strb r0, [r2] ldrh r0, [r1, 0x2] strh r0, [r2, 0x2] ldrb r0, [r1, 0x5] strb r0, [r2, 0x4] adds r2, 0x8 adds r1, 0x8 subs r3, 0x1 cmp r3, 0 bge _08093FAE pop {r0} bx r0 thumb_func_end sub_8093FA8 thumb_func_start sub_8093FC8 sub_8093FC8: push {r4-r7,lr} adds r5, r0, 0 adds r2, r1, 0 movs r3, 0 ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08094002 movs r7, 0xFB movs r6, 0x1 adds r4, r2, 0 adds r2, r5, 0 _08093FE2: ldm r4!, {r0,r1} str r0, [r2] str r1, [r2, 0x4] ldrb r1, [r2, 0x1] adds r0, r7, 0 ands r0, r1 strb r0, [r2, 0x1] adds r2, 0x8 adds r3, 0x1 cmp r3, 0x3 bgt _08094002 ldrb r1, [r4] adds r0, r6, 0 ands r0, r1 cmp r0, 0 bne _08093FE2 _08094002: cmp r3, 0x7 bgt _08094016 movs r1, 0 lsls r0, r3, 3 adds r0, r5 _0809400C: strb r1, [r0] adds r0, 0x8 adds r3, 0x1 cmp r3, 0x7 ble _0809400C _08094016: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8093FC8 thumb_func_start sub_809401C sub_809401C: push {r4-r6,lr} adds r5, r0, 0 adds r3, r1, 0 movs r2, 0 ldrb r1, [r3] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08094046 movs r6, 0x1 adds r4, r5, 0 _08094032: ldm r3!, {r0,r1} stm r4!, {r0,r1} adds r2, 0x1 cmp r2, 0x3 bgt _08094046 ldrb r1, [r3] adds r0, r6, 0 ands r0, r1 cmp r0, 0 bne _08094032 _08094046: cmp r2, 0x7 bgt _0809405A movs r1, 0 lsls r0, r2, 3 adds r0, r5 _08094050: strb r1, [r0] adds r0, 0x8 adds r2, 0x1 cmp r2, 0x7 ble _08094050 _0809405A: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_809401C thumb_func_start sub_8094060 sub_8094060: push {r4-r7,lr} adds r6, r0, 0 adds r7, r1, 0 movs r4, 0 movs r5, 0 adds r3, r6, 0 ldrb r1, [r3] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08094084 _08094076: lsls r2, r4, 3 adds r2, r7, r2 ldr r0, [r3] ldr r1, [r3, 0x4] str r0, [r2] str r1, [r2, 0x4] adds r4, 0x1 _08094084: adds r5, 0x1 cmp r5, 0x7 bgt _0809409C lsls r0, r5, 3 adds r3, r6, r0 ldrb r1, [r3] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08094084 cmp r4, 0x3 ble _08094076 _0809409C: cmp r4, 0x3 bgt _080940B0 movs r1, 0 lsls r0, r4, 3 adds r0, r7 _080940A6: strb r1, [r0] adds r0, 0x8 adds r4, 0x1 cmp r4, 0x3 ble _080940A6 _080940B0: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8094060 thumb_func_start sub_80940B8 sub_80940B8: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x4 bl sub_809488C adds r1, r5, 0x2 adds r0, r4, 0 movs r2, 0x9 bl sub_809488C adds r5, 0x4 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x7 bl sub_809488C pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80940B8 thumb_func_start sub_80940E0 sub_80940E0: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x4 bl sub_8094924 adds r1, r5, 0x2 adds r0, r4, 0 movs r2, 0x9 bl sub_8094924 adds r5, 0x4 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x7 bl sub_8094924 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80940E0 thumb_func_start sub_8094108 sub_8094108: push {r4-r6,lr} adds r6, r0, 0 adds r4, r1, 0 movs r5, 0x3 _08094110: adds r0, r6, 0 adds r1, r4, 0 bl sub_80940B8 adds r4, 0x8 subs r5, 0x1 cmp r5, 0 bge _08094110 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8094108 thumb_func_start sub_8094128 sub_8094128: push {r4-r6,lr} adds r6, r0, 0 adds r4, r1, 0 movs r5, 0x3 _08094130: adds r0, r6, 0 adds r1, r4, 0 bl sub_80940E0 adds r4, 0x8 subs r5, 0x1 cmp r5, 0 bge _08094130 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8094128 thumb_func_start sub_8094148 sub_8094148: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 movs r2, 0x4 bl sub_809488C adds r1, r4, 0x1 adds r0, r5, 0 movs r2, 0x1 bl sub_809488C adds r1, r4, 0x2 adds r0, r5, 0 movs r2, 0x9 bl sub_809488C adds r1, r4, 0x4 adds r0, r5, 0 movs r2, 0x7 bl sub_809488C adds r4, 0x5 adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x7 bl sub_809488C pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8094148 thumb_func_start sub_8094184 sub_8094184: push {r4-r7,lr} adds r6, r0, 0 adds r7, r1, 0 adds r4, r7, 0 movs r5, 0x3 _0809418E: adds r0, r6, 0 adds r1, r4, 0 bl sub_8094148 adds r4, 0x8 subs r5, 0x1 cmp r5, 0 bge _0809418E adds r1, r7, 0 adds r1, 0x20 adds r0, r6, 0 movs r2, 0x8 bl sub_809488C pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8094184 thumb_func_start sub_80941B0 sub_80941B0: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 adds r0, r4, 0 movs r1, 0 movs r2, 0x8 bl memset adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x4 bl sub_8094924 adds r1, r4, 0x1 adds r0, r5, 0 movs r2, 0x1 bl sub_8094924 adds r1, r4, 0x2 adds r0, r5, 0 movs r2, 0x9 bl sub_8094924 adds r1, r4, 0x4 adds r0, r5, 0 movs r2, 0x7 bl sub_8094924 adds r4, 0x5 adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x7 bl sub_8094924 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80941B0 thumb_func_start sub_80941FC sub_80941FC: push {r4-r7,lr} adds r6, r0, 0 adds r7, r1, 0 adds r4, r7, 0 movs r5, 0x3 _08094206: adds r0, r6, 0 adds r1, r4, 0 bl sub_80941B0 adds r4, 0x8 subs r5, 0x1 cmp r5, 0 bge _08094206 adds r1, r7, 0 adds r1, 0x20 movs r0, 0 strb r0, [r1] adds r0, r6, 0 movs r2, 0x8 bl sub_8094924 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80941FC thumb_func_start sub_809422C sub_809422C: push {lr} lsls r0, 16 lsrs r1, r0, 16 adds r2, r1, 0 cmp r1, 0x97 beq _08094260 cmp r1, 0x64 beq _08094260 cmp r1, 0x3C beq _08094260 cmp r1, 0x4B beq _08094260 movs r0, 0xAE lsls r0, 1 cmp r1, r0 beq _08094260 cmp r1, 0x99 beq _08094260 cmp r1, 0xCD beq _08094260 cmp r1, 0x9C beq _08094260 cmp r2, 0x8 beq _08094260 movs r0, 0 b _08094262 _08094260: movs r0, 0x1 _08094262: pop {r1} bx r1 thumb_func_end sub_809422C thumb_func_start sub_8094268 sub_8094268: push {r4-r6,lr} adds r5, r0, 0 adds r3, r1, 0 asrs r0, r3, 16 asrs r1, r2, 16 adds r0, r1 lsls r0, 16 ldr r6, _080942B0 ands r3, r6 orrs r3, r0 adds r2, r3, r2 lsls r2, 16 lsrs r2, 16 ldr r4, _080942B4 ands r3, r4 orrs r3, r2 asrs r1, r3, 16 ldr r0, _080942B8 cmp r1, r0 ble _080942A6 adds r0, r3, 0x1 lsls r0, 16 lsrs r0, 16 ands r3, r4 orrs r3, r0 asrs r0, r3, 16 ldr r1, _080942BC adds r0, r1 lsls r0, 16 ands r3, r6 orrs r3, r0 _080942A6: str r3, [r5] adds r0, r5, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _080942B0: .4byte 0x0000ffff _080942B4: .4byte 0xffff0000 _080942B8: .4byte 0x000003e7 _080942BC: .4byte 0xfffffc18 thumb_func_end sub_8094268 thumb_func_start sub_80942C0 sub_80942C0: push {r4,r5,lr} adds r5, r0, 0 adds r3, r1, 0 asrs r0, r3, 16 asrs r1, r2, 16 subs r0, r1 lsls r0, 16 ldr r4, _08094310 ands r3, r4 orrs r3, r0 subs r2, r3, r2 lsls r2, 16 lsrs r2, 16 ldr r1, _08094314 ands r3, r1 orrs r3, r2 cmp r3, 0 bge _080942FC subs r0, r3, 0x1 lsls r0, 16 lsrs r0, 16 ands r3, r1 orrs r3, r0 asrs r0, r3, 16 movs r2, 0xFA lsls r2, 2 adds r0, r2 lsls r0, 16 ands r3, r4 orrs r3, r0 _080942FC: lsls r0, r3, 16 cmp r0, 0 bge _08094304 movs r3, 0 _08094304: str r3, [r5] adds r0, r5, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08094310: .4byte 0x0000ffff _08094314: .4byte 0xffff0000 thumb_func_end sub_80942C0 thumb_func_start sub_8094318 sub_8094318: push {r4,lr} adds r4, r0, 0 adds r3, r1, 0 lsls r0, r3, 16 asrs r1, r0, 16 lsls r0, r2, 16 asrs r0, 16 cmp r1, r0 bgt _08094336 cmp r1, r0 blt _0809433A asrs r1, r3, 16 asrs r0, r2, 16 cmp r1, r0 ble _0809433A _08094336: str r2, [r4] b _0809433C _0809433A: str r3, [r4] _0809433C: adds r0, r4, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_8094318 thumb_func_start sub_8094344 sub_8094344: push {r4,lr} adds r4, r0, 0 adds r3, r1, 0 lsls r0, r3, 16 asrs r1, r0, 16 lsls r0, r2, 16 asrs r0, 16 cmp r1, r0 bgt _08094362 cmp r1, r0 blt _08094366 asrs r1, r3, 16 asrs r0, r2, 16 cmp r1, r0 ble _08094366 _08094362: str r3, [r4] b _08094368 _08094366: str r2, [r4] _08094368: adds r0, r4, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_8094344 thumb_func_start sub_8094370 sub_8094370: push {r4,r5,lr} adds r5, r0, 0 lsls r1, 16 lsls r2, 16 ldr r4, _08094398 lsrs r3, r1, 16 orrs r3, r2 asrs r2, 16 ldr r1, _0809439C asrs r0, r1, 16 cmp r2, r0 ble _0809438C ands r3, r4 orrs r3, r1 _0809438C: str r3, [r5] adds r0, r5, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08094398: .4byte 0x0000ffff _0809439C: .4byte 0x03e70000 thumb_func_end sub_8094370 thumb_func_start sub_80943A0 sub_80943A0: lsls r1, 16 lsrs r2, r1, 16 str r2, [r0] bx lr thumb_func_end sub_80943A0 thumb_func_start sub_80943A8 sub_80943A8: push {r4,r5,lr} ldr r3, [r1, 0x4] lsrs r2, r3, 16 ldr r1, _080943D4 ands r5, r1 orrs r5, r2 ldr r4, _080943D8 adds r2, r4, 0 ands r2, r3 lsls r1, r2, 5 subs r1, r2 lsls r1, 2 adds r1, r2 lsls r1, 3 lsrs r1, 16 lsls r1, 16 ands r5, r4 orrs r5, r1 str r5, [r0] pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080943D4: .4byte 0xffff0000 _080943D8: .4byte 0x0000ffff thumb_func_end sub_80943A8 thumb_func_start sub_80943DC sub_80943DC: push {r4-r6,lr} mov r6, r8 push {r6} mov r8, r0 adds r4, r1, 0 lsls r1, r4, 16 asrs r1, 16 lsls r0, r1, 5 subs r0, r1 lsls r0, 2 adds r0, r1 lsls r0, 3 asrs r1, r4, 16 adds r0, r1 lsls r3, r2, 16 asrs r3, 16 lsls r1, r3, 5 subs r1, r3 lsls r1, 2 adds r1, r3 lsls r1, 3 asrs r2, 16 adds r1, r2 muls r0, r1 movs r5, 0xFA lsls r5, 2 adds r1, r5, 0 bl __divsi3 adds r6, r0, 0 adds r1, r5, 0 bl __divsi3 lsls r0, 16 lsrs r0, 16 ldr r1, _08094448 ands r4, r1 orrs r4, r0 adds r0, r6, 0 adds r1, r5, 0 bl __modsi3 lsls r0, 16 ldr r1, _0809444C ands r1, r4 orrs r0, r1 mov r1, r8 str r0, [r1] mov r0, r8 pop {r3} mov r8, r3 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08094448: .4byte 0xffff0000 _0809444C: .4byte 0x0000ffff thumb_func_end sub_80943DC thumb_func_start sub_8094450 sub_8094450: push {lr} adds r1, r0, 0 lsls r0, r1, 16 asrs r2, r0, 16 cmp r2, 0 bne _0809446A asrs r0, r1, 16 cmp r0, 0 bne _08094466 movs r0, 0 b _08094476 _08094466: movs r0, 0x1 b _08094476 _0809446A: asrs r0, r1, 16 cmp r0, 0 bne _08094474 adds r0, r2, 0 b _08094476 _08094474: adds r0, r2, 0x1 _08094476: pop {r1} bx r1 thumb_func_end sub_8094450 thumb_func_start sub_809447C sub_809447C: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 movs r2, 0x10 bl sub_8094924 adds r4, 0x2 adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x10 bl sub_8094924 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_809447C thumb_func_start sub_809449C sub_809449C: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 movs r2, 0x10 bl sub_809488C adds r4, 0x2 adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x10 bl sub_809488C pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_809449C thumb_func_start sub_80944BC sub_80944BC: push {r4,lr} sub sp, 0x8 adds r4, r1, 0 lsls r0, 16 asrs r1, r0, 16 ldr r0, _080944F4 cmp r1, r0 bgt _08094500 lsls r1, 16 lsrs r1, 16 mov r0, sp bl sub_8092AA8 ldr r0, _080944F8 mov r1, sp movs r2, 0 bl sub_80928C0 ldr r0, _080944FC ldr r0, [r0] adds r2, r4, 0 adds r2, 0xC8 adds r1, r4, 0 movs r3, 0 bl xxx_format_string b _08094516 .align 2, 0 _080944F4: .4byte 0x000001f3 _080944F8: .4byte gUnknown_202DE58 _080944FC: .4byte gUnknown_811383C _08094500: ldr r0, _08094520 ldr r2, _08094524 adds r1, r2 lsls r1, 3 adds r0, 0x4 adds r1, r0 ldr r1, [r1] adds r0, r4, 0 movs r2, 0xC8 bl strncpy _08094516: add sp, 0x8 pop {r4} pop {r0} bx r0 .align 2, 0 _08094520: .4byte gUnknown_8113080 _08094524: .4byte 0xfffffe0c thumb_func_end sub_80944BC thumb_func_start sub_8094528 sub_8094528: push {lr} lsls r0, 16 asrs r1, r0, 16 ldr r0, _08094544 cmp r1, r0 ble _08094550 ldr r0, _08094548 ldr r2, _0809454C adds r1, r2 lsls r1, 3 adds r1, r0 ldrb r0, [r1] b _08094552 .align 2, 0 _08094544: .4byte 0x000001f3 _08094548: .4byte gUnknown_8113080 _0809454C: .4byte 0xfffffe0c _08094550: movs r0, 0x1 _08094552: pop {r1} bx r1 thumb_func_end sub_8094528 thumb_func_start sub_8094558 sub_8094558: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xCC adds r7, r0, 0 adds r4, r1, 0 adds r6, r2, 0 bl sub_80073B8 movs r5, 0 str r5, [sp] movs r0, 0x10 movs r1, 0 adds r2, r4, 0 adds r3, r7, 0 bl sub_8014FF0 ldr r4, _080945D0 adds r1, r6, 0 adds r1, 0x18 adds r0, r4, 0 bl sub_8090208 ldr r0, _080945D4 ldr r2, [r0] str r5, [sp] movs r0, 0x4 movs r1, 0x10 adds r3, r7, 0 bl sub_8014FF0 movs r5, 0x1A adds r0, r4, 0 adds r1, r6, 0 movs r2, 0xA bl sub_80922B4 adds r4, 0x50 adds r1, r6, 0 adds r1, 0xA adds r0, r4, 0 movs r2, 0xA bl sub_80922B4 movs r1, 0x14 ldrsh r0, [r6, r1] bl sub_8094528 lsls r0, 24 cmp r0, 0 beq _080945DC ldr r0, _080945D8 ldr r0, [r0] add r2, sp, 0xCC add r1, sp, 0x4 movs r3, 0 bl xxx_format_string b _080945EA .align 2, 0 _080945D0: .4byte gUnknown_202DF98 _080945D4: .4byte gUnknown_8113850 _080945D8: .4byte gUnknown_8113868 _080945DC: ldr r0, _0809465C ldr r0, [r0] add r2, sp, 0xCC add r1, sp, 0x4 movs r3, 0 bl xxx_format_string _080945EA: add r0, sp, 0x4 bl sub_8008ED0 movs r4, 0xB0 subs r0, r4, r0 lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 movs r1, 0 mov r8, r1 str r1, [sp] adds r1, r5, 0 add r2, sp, 0x4 adds r3, r7, 0 bl sub_8014FF0 adds r5, 0xA movs r1, 0x14 ldrsh r0, [r6, r1] add r1, sp, 0x4 bl sub_80944BC add r0, sp, 0x4 bl sub_8008ED0 subs r4, r0 lsrs r0, r4, 31 adds r4, r0 asrs r0, r4, 1 mov r1, r8 str r1, [sp] adds r1, r5, 0 add r2, sp, 0x4 adds r3, r7, 0 bl sub_8014FF0 adds r5, 0x10 ldr r1, _08094660 ldr r0, [r6, 0x20] str r0, [r1] adds r0, r6, 0 adds r0, 0x2A ldrb r0, [r0] str r0, [r1, 0x4] cmp r0, 0x63 ble _08094668 ldr r0, _08094664 ldr r2, [r0] mov r0, r8 str r0, [sp] movs r0, 0x4 adds r1, r5, 0 adds r3, r7, 0 bl sub_8014FF0 b _0809467A .align 2, 0 _0809465C: .4byte gUnknown_8113870 _08094660: .4byte gUnknown_202DE30 _08094664: .4byte gUnknown_81138C0 _08094668: ldr r0, _080946CC ldr r2, [r0] mov r1, r8 str r1, [sp] movs r0, 0x4 adds r1, r5, 0 adds r3, r7, 0 bl sub_8014FF0 _0809467A: adds r5, 0xA ldr r4, _080946D0 movs r1, 0x24 ldrsh r0, [r6, r1] str r0, [r4] ldr r0, _080946D4 ldr r2, [r0] movs r0, 0 mov r8, r0 str r0, [sp] movs r0, 0x4 adds r1, r5, 0 adds r3, r7, 0 bl sub_8014FF0 adds r5, 0xA adds r0, r6, 0 adds r0, 0x26 ldrb r2, [r0] str r2, [r4] adds r0, 0x2 ldrb r0, [r0] str r0, [r4, 0x4] adds r0, r6, 0 adds r0, 0x2B ldrb r1, [r0] cmp r1, 0 beq _080946DC adds r0, r1, 0 adds r0, r2, r0 str r0, [r4] ldr r0, _080946D8 ldr r2, [r0] mov r1, r8 str r1, [sp] movs r0, 0x4 adds r1, r5, 0 adds r3, r7, 0 bl sub_8014FF0 b _080946EC .align 2, 0 _080946CC: .4byte gUnknown_8113898 _080946D0: .4byte gUnknown_202DE30 _080946D4: .4byte gUnknown_81138D0 _080946D8: .4byte gUnknown_8113950 _080946DC: ldr r0, _08094714 ldr r2, [r0] str r1, [sp] movs r0, 0x4 adds r1, r5, 0 adds r3, r7, 0 bl sub_8014FF0 _080946EC: adds r0, r6, 0 adds r0, 0x2D ldrb r1, [r0] cmp r1, 0 beq _08094720 ldr r2, _08094718 ldr r0, [r2, 0x4] adds r0, r1 str r0, [r2, 0x4] ldr r0, _0809471C ldr r2, [r0] movs r0, 0 str r0, [sp] movs r0, 0x4 adds r1, r5, 0 adds r3, r7, 0 bl sub_8014FF0 b _08094730 .align 2, 0 _08094714: .4byte gUnknown_81138E4 _08094718: .4byte gUnknown_202DE30 _0809471C: .4byte gUnknown_8113974 _08094720: ldr r0, _08094768 ldr r2, [r0] str r1, [sp] movs r0, 0x4 adds r1, r5, 0 adds r3, r7, 0 bl sub_8014FF0 _08094730: adds r5, 0xA ldr r2, _0809476C adds r0, r6, 0 adds r0, 0x27 ldrb r3, [r0] str r3, [r2] adds r0, 0x2 ldrb r0, [r0] str r0, [r2, 0x4] adds r0, r6, 0 adds r0, 0x2C ldrb r1, [r0] cmp r1, 0 beq _08094774 adds r0, r1, 0 adds r0, r3, r0 str r0, [r2] ldr r0, _08094770 ldr r2, [r0] movs r0, 0 str r0, [sp] movs r0, 0x4 adds r1, r5, 0 adds r3, r7, 0 bl sub_8014FF0 b _08094784 .align 2, 0 _08094768: .4byte gUnknown_8113900 _0809476C: .4byte gUnknown_202DE30 _08094770: .4byte gUnknown_8113990 _08094774: ldr r0, _080947AC ldr r2, [r0] str r1, [sp] movs r0, 0x4 adds r1, r5, 0 adds r3, r7, 0 bl sub_8014FF0 _08094784: adds r0, r6, 0 adds r0, 0x2E ldrb r1, [r0] cmp r1, 0 beq _080947B8 ldr r2, _080947B0 ldr r0, [r2, 0x4] adds r0, r1 str r0, [r2, 0x4] ldr r0, _080947B4 ldr r2, [r0] movs r0, 0 str r0, [sp] movs r0, 0x4 adds r1, r5, 0 adds r3, r7, 0 bl sub_8014FF0 b _080947C8 .align 2, 0 _080947AC: .4byte gUnknown_8113918 _080947B0: .4byte gUnknown_202DE30 _080947B4: .4byte gUnknown_81139B4 _080947B8: ldr r0, _080947E4 ldr r2, [r0] str r1, [sp] movs r0, 0x4 adds r1, r5, 0 adds r3, r7, 0 bl sub_8014FF0 _080947C8: adds r5, 0x10 adds r2, r6, 0 adds r2, 0x1C ldrb r1, [r6, 0x1C] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080947EC ldr r0, _080947E8 adds r1, r2, 0 movs r2, 0 bl sub_8090E14 b _080947F6 .align 2, 0 _080947E4: .4byte gUnknown_8113934 _080947E8: .4byte gUnknown_202DE58 _080947EC: ldr r0, _0809481C ldr r1, _08094820 ldr r1, [r1] bl strcpy _080947F6: ldr r0, _08094824 ldr r2, [r0] movs r0, 0 str r0, [sp] movs r0, 0x4 adds r1, r5, 0 adds r3, r7, 0 bl sub_8014FF0 adds r0, r7, 0 bl sub_80073E0 add sp, 0xCC pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0809481C: .4byte gUnknown_202DE58 _08094820: .4byte gUnknown_81139B8 _08094824: .4byte gUnknown_81139CC thumb_func_end sub_8094558 thumb_func_start sub_8094828 sub_8094828: push {lr} lsls r0, 16 lsrs r2, r0, 16 lsls r1, 24 lsrs r0, r1, 24 cmp r0, 0 beq _08094852 bl sub_8090BD0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x9 bne _0809484C ldr r0, _08094848 b _08094856 .align 2, 0 _08094848: .4byte 0x00000223 _0809484C: movs r0, 0x89 lsls r0, 2 b _08094856 _08094852: lsls r0, r2, 16 asrs r0, 16 _08094856: pop {r1} bx r1 thumb_func_end sub_8094828 thumb_func_start sub_809485C sub_809485C: str r1, [r0] movs r3, 0 str r3, [r0, 0x8] str r3, [r0, 0xC] adds r1, r2 str r1, [r0, 0x4] bx lr thumb_func_end sub_809485C thumb_func_start sub_809486C sub_809486C: push {lr} str r1, [r0] movs r3, 0 str r3, [r0, 0x8] str r3, [r0, 0xC] adds r3, r1, r2 str r3, [r0, 0x4] adds r0, r1, 0 adds r1, r2, 0 bl MemoryClear8 pop {r0} bx r0 thumb_func_end sub_809486C thumb_func_start nullsub_102 nullsub_102: bx lr thumb_func_end nullsub_102 thumb_func_start sub_809488C sub_809488C: push {r4-r7,lr} adds r3, r0, 0 adds r4, r2, 0 movs r5, 0 adds r6, r1, 0 cmp r4, 0 beq _080948DE movs r7, 0x1 _0809489C: ldrb r0, [r6] asrs r0, r5 ands r0, r7 cmp r0, 0 beq _080948B4 ldr r2, [r3] ldr r1, [r3, 0x8] adds r0, r7, 0 lsls r0, r1 ldrb r1, [r2] orrs r0, r1 strb r0, [r2] _080948B4: adds r5, 0x1 cmp r5, 0x8 bne _080948BE adds r6, 0x1 movs r5, 0 _080948BE: ldr r0, [r3, 0x8] adds r0, 0x1 str r0, [r3, 0x8] cmp r0, 0x8 bne _080948D2 ldr r0, [r3] adds r0, 0x1 str r0, [r3] movs r0, 0 str r0, [r3, 0x8] _080948D2: ldr r0, [r3, 0xC] adds r0, 0x1 str r0, [r3, 0xC] subs r4, 0x1 cmp r4, 0 bne _0809489C _080948DE: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_809488C thumb_func_start sub_80948E4 sub_80948E4: push {r4-r6,lr} adds r4, r0, 0 adds r5, r2, 0 adds r6, r1, 0 cmp r5, 0 beq _0809491C _080948F0: ldrb r1, [r6] ldr r0, [r4, 0x8] lsls r1, r0 ldr r3, [r4] ldrb r2, [r3] adds r0, r1, 0 orrs r0, r2 strb r0, [r3] ldr r2, [r4] adds r0, r2, 0x1 str r0, [r4] asrs r1, 8 ldrb r0, [r2, 0x1] orrs r1, r0 strb r1, [r2, 0x1] adds r6, 0x1 ldr r0, [r4, 0xC] adds r0, 0x8 str r0, [r4, 0xC] subs r5, 0x1 cmp r5, 0 bne _080948F0 _0809491C: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80948E4 thumb_func_start sub_8094924 sub_8094924: push {r4-r7,lr} adds r3, r0, 0 adds r5, r2, 0 movs r6, 0 adds r2, r1, 0 cmp r5, 0 beq _08094978 _08094932: cmp r6, 0 bne _08094938 strb r6, [r2] _08094938: ldr r7, [r3] ldrb r0, [r7] ldr r4, [r3, 0x8] asrs r0, r4 movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _08094952 adds r0, r1, 0 lsls r0, r6 ldrb r1, [r2] orrs r0, r1 strb r0, [r2] _08094952: adds r6, 0x1 cmp r6, 0x8 bne _0809495C adds r2, 0x1 movs r6, 0 _0809495C: adds r0, r4, 0x1 str r0, [r3, 0x8] cmp r0, 0x8 bne _0809496C adds r0, r7, 0x1 str r0, [r3] movs r0, 0 str r0, [r3, 0x8] _0809496C: ldr r0, [r3, 0xC] adds r0, 0x1 str r0, [r3, 0xC] subs r5, 0x1 cmp r5, 0 bne _08094932 _08094978: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8094924 thumb_func_start sub_8094980 sub_8094980: ldr r1, _08094988 ldr r0, _0809498C str r0, [r1] bx lr .align 2, 0 _08094988: .4byte gUnknown_203B46C _0809498C: .4byte gUnknown_2038C70 thumb_func_end sub_8094980 thumb_func_start sub_8094990 sub_8094990: ldr r0, _08094994 bx lr .align 2, 0 _08094994: .4byte gUnknown_2038C70 thumb_func_end sub_8094990 thumb_func_start sub_8094998 sub_8094998: push {lr} lsls r0, 24 ldr r2, _080949D8 ldr r1, [r2] movs r3, 0 strb r3, [r1, 0x8] cmp r0, 0 beq _080949AC ldr r0, [r2] strb r3, [r0, 0xB] _080949AC: ldr r0, [r2] strb r3, [r0, 0x9] ldr r0, [r2] strb r3, [r0, 0xA] ldr r0, [r2] strb r3, [r0] ldr r0, [r2] movs r1, 0x1 strb r1, [r0, 0x1] ldr r0, [r2] strb r1, [r0, 0x2] ldr r0, [r2] strb r1, [r0, 0x3] ldr r0, [r2] strb r1, [r0, 0x4] ldr r0, [r2] strb r3, [r0, 0xC] bl sub_8094C14 pop {r0} bx r0 .align 2, 0 _080949D8: .4byte gUnknown_203B46C thumb_func_end sub_8094998 thumb_func_start sub_80949DC sub_80949DC: push {lr} adds r2, r0, 0 ldr r0, _08094A38 ldr r1, [r0] ldrb r0, [r1, 0x8] ldrb r3, [r2, 0x8] cmp r0, r3 bne _08094A3C ldrb r0, [r1, 0x9] ldrb r3, [r2, 0x9] cmp r0, r3 bne _08094A3C ldrb r0, [r1, 0xA] ldrb r3, [r2, 0xA] cmp r0, r3 bne _08094A3C ldrb r0, [r1, 0xB] ldrb r3, [r2, 0xB] cmp r0, r3 bne _08094A3C ldrb r0, [r1] ldrb r3, [r2] cmp r0, r3 bne _08094A3C ldrb r0, [r1, 0x1] ldrb r3, [r2, 0x1] cmp r0, r3 bne _08094A3C ldrb r0, [r1, 0x2] ldrb r3, [r2, 0x2] cmp r0, r3 bne _08094A3C ldrb r0, [r1, 0x3] ldrb r3, [r2, 0x3] cmp r0, r3 bne _08094A3C ldrb r0, [r1, 0x4] ldrb r3, [r2, 0x4] cmp r0, r3 bne _08094A3C ldrb r0, [r1, 0xC] ldrb r2, [r2, 0xC] cmp r0, r2 bne _08094A3C movs r0, 0x1 b _08094A3E .align 2, 0 _08094A38: .4byte gUnknown_203B46C _08094A3C: movs r0, 0 _08094A3E: pop {r1} bx r1 thumb_func_end sub_80949DC thumb_func_start sub_8094A44 sub_8094A44: push {r4-r7,lr} sub sp, 0x4 adds r4, r0, 0 movs r1, 0xFF mov r0, sp strb r1, [r0] mov r7, sp adds r7, 0x1 movs r0, 0 strb r0, [r7] ldr r5, _08094B14 ldr r1, [r5] adds r1, 0x8 adds r0, r4, 0 movs r2, 0x2 bl sub_809488C ldr r0, [r5] ldrb r0, [r0, 0x9] mov r1, sp adds r6, r7, 0 cmp r0, 0 bne _08094A74 adds r1, r6, 0 _08094A74: adds r0, r4, 0 movs r2, 0x1 bl sub_809488C ldr r0, [r5] ldrb r0, [r0, 0xA] adds r1, r6, 0 cmp r0, 0 beq _08094A88 mov r1, sp _08094A88: adds r0, r4, 0 movs r2, 0x1 bl sub_809488C ldr r0, [r5] ldrb r0, [r0, 0xB] adds r1, r6, 0 cmp r0, 0 beq _08094A9C mov r1, sp _08094A9C: adds r0, r4, 0 movs r2, 0x1 bl sub_809488C ldr r0, [r5] ldrb r0, [r0] adds r1, r6, 0 cmp r0, 0 beq _08094AB0 mov r1, sp _08094AB0: adds r0, r4, 0 movs r2, 0x1 bl sub_809488C ldr r0, [r5] ldrb r0, [r0, 0x1] adds r1, r6, 0 cmp r0, 0 beq _08094AC4 mov r1, sp _08094AC4: adds r0, r4, 0 movs r2, 0x1 bl sub_809488C ldr r0, [r5] ldrb r0, [r0, 0x2] adds r1, r6, 0 cmp r0, 0 beq _08094AD8 mov r1, sp _08094AD8: adds r0, r4, 0 movs r2, 0x1 bl sub_809488C ldr r0, [r5] ldrb r0, [r0, 0x3] adds r1, r7, 0 cmp r0, 0 beq _08094AEC mov r1, sp _08094AEC: adds r0, r4, 0 movs r2, 0x1 bl sub_809488C ldr r1, [r5] adds r1, 0x4 adds r0, r4, 0 movs r2, 0x3 bl sub_809488C ldr r1, [r5] adds r1, 0xC adds r0, r4, 0 movs r2, 0x2 bl sub_809488C add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08094B14: .4byte gUnknown_203B46C thumb_func_end sub_8094A44 thumb_func_start sub_8094B18 sub_8094B18: push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x4 adds r6, r0, 0 mov r1, sp movs r2, 0x2 bl sub_8094924 ldr r5, _08094C10 ldr r2, [r5] mov r0, sp ldrb r1, [r0] movs r0, 0x3 mov r8, r0 ands r0, r1 strb r0, [r2, 0x8] adds r0, r6, 0 mov r1, sp movs r2, 0x1 bl sub_8094924 ldr r2, [r5] mov r0, sp ldrb r1, [r0] movs r4, 0x1 adds r0, r4, 0 ands r0, r1 strb r0, [r2, 0x9] adds r0, r6, 0 mov r1, sp movs r2, 0x1 bl sub_8094924 ldr r2, [r5] mov r0, sp ldrb r1, [r0] adds r0, r4, 0 ands r0, r1 strb r0, [r2, 0xA] adds r0, r6, 0 mov r1, sp movs r2, 0x1 bl sub_8094924 ldr r2, [r5] mov r0, sp ldrb r1, [r0] adds r0, r4, 0 ands r0, r1 strb r0, [r2, 0xB] adds r0, r6, 0 mov r1, sp movs r2, 0x1 bl sub_8094924 ldr r2, [r5] mov r0, sp ldrb r1, [r0] adds r0, r4, 0 ands r0, r1 strb r0, [r2] adds r0, r6, 0 mov r1, sp movs r2, 0x1 bl sub_8094924 ldr r2, [r5] mov r0, sp ldrb r1, [r0] adds r0, r4, 0 ands r0, r1 strb r0, [r2, 0x1] adds r0, r6, 0 mov r1, sp movs r2, 0x1 bl sub_8094924 ldr r2, [r5] mov r0, sp ldrb r1, [r0] adds r0, r4, 0 ands r0, r1 strb r0, [r2, 0x2] adds r0, r6, 0 mov r1, sp movs r2, 0x1 bl sub_8094924 ldr r1, [r5] mov r0, sp ldrb r0, [r0] ands r4, r0 strb r4, [r1, 0x3] adds r0, r6, 0 mov r1, sp movs r2, 0x3 bl sub_8094924 ldr r2, [r5] mov r0, sp ldrb r1, [r0] movs r0, 0x7 ands r0, r1 strb r0, [r2, 0x4] adds r0, r6, 0 mov r1, sp movs r2, 0x2 bl sub_8094924 ldr r1, [r5] mov r0, sp ldrb r0, [r0] mov r2, r8 ands r2, r0 strb r2, [r1, 0xC] bl sub_8094C14 add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08094C10: .4byte gUnknown_203B46C thumb_func_end sub_8094B18 thumb_func_start sub_8094C14 sub_8094C14: push {r4,lr} sub sp, 0x10 mov r1, sp ldr r0, _08094C40 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldr r0, [r0] str r0, [r1] ldr r0, _08094C44 ldr r0, [r0] ldrb r1, [r0, 0x8] movs r0, 0x3 ands r0, r1 lsls r0, 2 add r0, sp ldr r0, [r0] bl sub_80099F0 add sp, 0x10 pop {r4} pop {r0} bx r0 .align 2, 0 _08094C40: .4byte gUnknown_8109954 _08094C44: .4byte gUnknown_203B46C thumb_func_end sub_8094C14 thumb_func_start sub_8094C48 sub_8094C48: push {lr} ldr r0, _08094C5C ldr r0, [r0] ldrb r0, [r0, 0x4] cmp r0, 0 beq _08094C60 cmp r0, 0x3 beq _08094C60 movs r0, 0x1 b _08094C62 .align 2, 0 _08094C5C: .4byte gUnknown_203B46C _08094C60: movs r0, 0 _08094C62: pop {r1} bx r1 thumb_func_end sub_8094C48 thumb_func_start sub_8094C68 sub_8094C68: push {lr} ldr r0, _08094C7C ldr r0, [r0] ldrb r0, [r0, 0x4] cmp r0, 0x2 beq _08094C80 cmp r0, 0x5 beq _08094C80 movs r0, 0x1 b _08094C82 .align 2, 0 _08094C7C: .4byte gUnknown_203B46C _08094C80: movs r0, 0 _08094C82: pop {r1} bx r1 thumb_func_end sub_8094C68 thumb_func_start sub_8094C88 sub_8094C88: push {lr} ldr r0, _08094C98 ldr r1, [r0] ldrb r0, [r1, 0x4] cmp r0, 0x2 bhi _08094C9C movs r0, 0x1 b _08094CA8 .align 2, 0 _08094C98: .4byte gUnknown_203B46C _08094C9C: subs r0, 0x3 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bhi _08094CAA movs r0, 0x4 _08094CA8: strb r0, [r1, 0x4] _08094CAA: pop {r0} bx r0 thumb_func_end sub_8094C88 thumb_func_start sub_8094CB0 sub_8094CB0: ldr r1, _08094CBC strh r1, [r0] movs r1, 0x1 negs r1, r1 strh r1, [r0, 0x2] bx lr .align 2, 0 _08094CBC: .4byte 0x0000ffff thumb_func_end sub_8094CB0 thumb_func_start sub_8094CC0 sub_8094CC0: ldr r1, _08094CCC strh r1, [r0] movs r1, 0x1 negs r1, r1 strh r1, [r0, 0x2] bx lr .align 2, 0 _08094CCC: .4byte 0x0000ffff thumb_func_end sub_8094CC0 thumb_func_start sub_8094CD0 sub_8094CD0: ldr r1, _08094CDC strh r1, [r0] movs r1, 0x1 negs r1, r1 strh r1, [r0, 0x2] bx lr .align 2, 0 _08094CDC: .4byte 0x0000ffff thumb_func_end sub_8094CD0 thumb_func_start sub_8094CE0 sub_8094CE0: ldr r1, _08094CEC strh r1, [r0] movs r1, 0x1 negs r1, r1 strh r1, [r0, 0x2] bx lr .align 2, 0 _08094CEC: .4byte 0x0000ffff thumb_func_end sub_8094CE0 thumb_func_start sub_8094CF0 sub_8094CF0: ldr r1, _08094CFC strh r1, [r0] movs r1, 0x1 negs r1, r1 strh r1, [r0, 0x2] bx lr .align 2, 0 _08094CFC: .4byte 0x0000ffff thumb_func_end sub_8094CF0 thumb_func_start sub_8094D00 sub_8094D00: ldr r1, _08094D0C strh r1, [r0] movs r1, 0x1 negs r1, r1 strh r1, [r0, 0x2] bx lr .align 2, 0 _08094D0C: .4byte 0x0000ffff thumb_func_end sub_8094D00 thumb_func_start sub_8094D10 sub_8094D10: movs r0, 0 bx lr thumb_func_end sub_8094D10 thumb_func_start sub_8094D14 sub_8094D14: movs r0, 0 bx lr thumb_func_end sub_8094D14 thumb_func_start sub_8094D18 sub_8094D18: movs r0, 0 bx lr thumb_func_end sub_8094D18 thumb_func_start sub_8094D1C sub_8094D1C: movs r0, 0 bx lr thumb_func_end sub_8094D1C thumb_func_start sub_8094D20 sub_8094D20: movs r0, 0 bx lr thumb_func_end sub_8094D20 thumb_func_start sub_8094D24 sub_8094D24: movs r0, 0 bx lr thumb_func_end sub_8094D24 thumb_func_start sub_8094D28 sub_8094D28: push {r4-r7,lr} ldr r2, _08094D64 str r0, [r2] ldr r1, _08094D68 movs r0, 0x1 str r0, [r1] ldr r7, _08094D6C adds r5, r2, 0 adds r4, r1, 0 ldr r6, _08094D70 _08094D3C: ldr r2, [r4] lsls r3, r2, 2 adds r3, r5 subs r0, r2, 0x1 lsls r0, 2 adds r0, r5 ldr r0, [r0] lsrs r1, r0, 30 eors r0, r1 muls r0, r6 adds r0, r2 str r0, [r3] adds r2, 0x1 str r2, [r4] cmp r2, r7 ble _08094D3C pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08094D64: .4byte gUnknown_3001198 _08094D68: .4byte gUnknown_203B470 _08094D6C: .4byte 0x0000026f _08094D70: .4byte 0x6c078965 thumb_func_end sub_8094D28 thumb_func_start sub_8094D74 sub_8094D74: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} mov r8, r0 adds r7, r1, 0 ldr r0, _08094E34 bl sub_8094D28 movs r4, 0x1 movs r5, 0 adds r3, r7, 0 movs r0, 0x9C lsls r0, 2 cmp r3, r0 bge _08094D96 adds r3, r0, 0 _08094D96: ldr r6, _08094E38 cmp r3, 0 beq _08094DE2 mov r9, r6 ldr r0, _08094E3C adds r0, r6 mov r12, r0 adds r2, r6, 0 _08094DA6: ldr r1, [r2] lsrs r0, r1, 30 eors r1, r0 ldr r0, _08094E40 muls r0, r1 ldr r1, [r2, 0x4] eors r1, r0 lsls r0, r5, 2 add r0, r8 ldr r0, [r0] adds r1, r0 adds r1, r5 str r1, [r2, 0x4] adds r2, 0x4 adds r4, 0x1 adds r5, 0x1 ldr r0, _08094E44 cmp r4, r0 ble _08094DD6 mov r1, r12 ldr r0, [r1] str r0, [r6] mov r2, r9 movs r4, 0x1 _08094DD6: cmp r5, r7 blt _08094DDC movs r5, 0 _08094DDC: subs r3, 0x1 cmp r3, 0 bne _08094DA6 _08094DE2: ldr r3, _08094E44 ldr r5, _08094E38 ldr r0, _08094E3C adds r0, r5 mov r8, r0 lsls r0, r4, 2 subs r0, 0x4 adds r2, r0, r5 ldr r1, _08094E48 mov r12, r1 adds r7, r3, 0 _08094DF8: ldr r0, [r2] lsrs r1, r0, 30 eors r0, r1 mov r1, r12 muls r1, r0 ldr r0, [r2, 0x4] eors r0, r1 subs r0, r4 str r0, [r2, 0x4] adds r2, 0x4 adds r4, 0x1 cmp r4, r7 ble _08094E1C mov r1, r8 ldr r0, [r1] str r0, [r6] adds r2, r5, 0 movs r4, 0x1 _08094E1C: subs r3, 0x1 cmp r3, 0 bne _08094DF8 movs r0, 0x80 lsls r0, 24 str r0, [r6] pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08094E34: .4byte 0x012bd6aa _08094E38: .4byte gUnknown_3001198 _08094E3C: .4byte 0x000009bc _08094E40: .4byte 0x0019660d _08094E44: .4byte 0x0000026f _08094E48: .4byte 0x5d588b65 thumb_func_end sub_8094D74 thumb_func_start sub_8094E4C sub_8094E4C: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r0, _08094F54 ldr r2, [r0] ldr r1, _08094F58 mov r8, r0 cmp r2, r1 ble _08094F1C ldr r0, _08094F5C cmp r2, r0 bne _08094E6C ldr r0, _08094F60 bl sub_8094D28 _08094E6C: movs r3, 0 ldr r0, _08094F64 mov r9, r0 ldr r7, _08094F68 mov r12, r9 adds r5, r7, 0 _08094E78: ldr r4, [r5] movs r6, 0x80 lsls r6, 24 ands r4, r6 ldr r0, [r5, 0x4] ldr r1, _08094F6C ands r0, r1 orrs r4, r0 ldr r1, _08094F70 adds r0, r3, r1 lsls r0, 2 adds r0, r7 lsrs r2, r4, 1 ldr r1, [r0] eors r1, r2 movs r0, 0x1 ands r4, r0 lsls r0, r4, 2 add r0, r12 ldr r0, [r0] eors r1, r0 stm r5!, {r1} adds r3, 0x1 cmp r3, 0xE2 ble _08094E78 ldr r5, _08094F74 cmp r3, r5 bgt _08094EE6 ldr r1, _08094F68 ldr r4, _08094F64 mov r12, r4 lsls r0, r3, 2 adds r2, r0, r1 ldr r4, _08094F78 adds r0, r4 adds r7, r0, r1 _08094EC0: ldr r4, [r2] ands r4, r6 ldr r0, [r2, 0x4] ldr r1, _08094F6C ands r0, r1 orrs r4, r0 lsrs r0, r4, 1 ldm r7!, {r1} eors r1, r0 movs r0, 0x1 ands r4, r0 lsls r0, r4, 2 add r0, r12 ldr r0, [r0] eors r1, r0 stm r2!, {r1} adds r3, 0x1 cmp r3, r5 ble _08094EC0 _08094EE6: ldr r2, _08094F68 ldr r0, _08094F7C adds r3, r2, r0 ldr r4, [r3] movs r0, 0x80 lsls r0, 24 ands r4, r0 ldr r0, [r2] ldr r1, _08094F6C ands r0, r1 orrs r4, r0 movs r1, 0xC6 lsls r1, 3 adds r2, r1 lsrs r0, r4, 1 ldr r1, [r2] eors r1, r0 movs r0, 0x1 ands r4, r0 lsls r0, r4, 2 add r0, r9 ldr r0, [r0] eors r1, r0 str r1, [r3] movs r0, 0 mov r4, r8 str r0, [r4] _08094F1C: ldr r2, _08094F68 mov r0, r8 ldr r1, [r0] lsls r0, r1, 2 adds r0, r2 ldr r4, [r0] adds r1, 0x1 mov r0, r8 str r1, [r0] lsrs r0, r4, 11 eors r4, r0 lsls r0, r4, 7 ldr r1, _08094F80 ands r0, r1 eors r4, r0 lsls r0, r4, 15 ldr r1, _08094F84 ands r0, r1 eors r4, r0 lsrs r0, r4, 18 eors r4, r0 adds r0, r4, 0 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08094F54: .4byte gUnknown_203B470 _08094F58: .4byte 0x0000026f _08094F5C: .4byte 0x00000271 _08094F60: .4byte 0x00001571 _08094F64: .4byte gUnknown_203B474 _08094F68: .4byte gUnknown_3001198 _08094F6C: .4byte 0x7fffffff _08094F70: .4byte 0x0000018d _08094F74: .4byte 0x0000026e _08094F78: .4byte 0xfffffc74 _08094F7C: .4byte 0x000009bc _08094F80: .4byte 0x9d2c5680 _08094F84: .4byte 0xefc60000 thumb_func_end sub_8094E4C thumb_func_start sub_8094F88 sub_8094F88: push {lr} ldr r1, _08094F98 ldr r0, _08094F9C str r0, [r1] bl sub_8094FA8 pop {r0} bx r0 .align 2, 0 _08094F98: .4byte gUnknown_203B47C _08094F9C: .4byte gUnknown_2038C80 thumb_func_end sub_8094F88 thumb_func_start sub_8094FA0 sub_8094FA0: ldr r0, _08094FA4 bx lr .align 2, 0 _08094FA4: .4byte gUnknown_2038C80 thumb_func_end sub_8094FA0 thumb_func_start sub_8094FA8 sub_8094FA8: movs r1, 0 strb r1, [r0, 0x4] strb r1, [r0, 0x3] strb r1, [r0, 0x2] strh r1, [r0] bx lr thumb_func_end sub_8094FA8 thumb_func_start sub_8094FB4 sub_8094FB4: push {lr} adds r2, r0, 0 ldrb r0, [r2, 0x4] adds r0, 0x1 movs r1, 0 strb r0, [r2, 0x4] lsls r0, 24 lsrs r0, 24 cmp r0, 0x3B bls _0809500A strb r1, [r2, 0x4] ldrb r0, [r2, 0x3] adds r0, 0x1 strb r0, [r2, 0x3] lsls r0, 24 lsrs r0, 24 cmp r0, 0x3B bls _0809500A strb r1, [r2, 0x3] ldrb r0, [r2, 0x2] adds r0, 0x1 strb r0, [r2, 0x2] lsls r0, 24 lsrs r0, 24 cmp r0, 0x3B bls _0809500A strb r1, [r2, 0x2] ldrh r3, [r2] movs r0, 0 ldrsh r1, [r2, r0] ldr r0, _08094FFC cmp r1, r0 bgt _08095000 adds r0, r3, 0x1 b _08095008 .align 2, 0 _08094FFC: .4byte 0x0000270e _08095000: movs r0, 0x3B strb r0, [r2, 0x3] strb r0, [r2, 0x2] ldr r0, _08095010 _08095008: strh r0, [r2] _0809500A: pop {r0} bx r0 .align 2, 0 _08095010: .4byte 0x0000270f thumb_func_end sub_8094FB4 thumb_func_start sub_8095014 sub_8095014: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r1, 0 ldrsh r0, [r4, r1] ldr r1, _08095030 cmp r0, r1 bgt _08095034 str r0, [r5] ldrb r0, [r4, 0x2] str r0, [r2] ldrb r0, [r4, 0x3] b _0809503A .align 2, 0 _08095030: .4byte 0x0000270f _08095034: str r1, [r5] movs r0, 0x3B str r0, [r2] _0809503A: str r0, [r3] pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8095014 thumb_func_start sub_8095044 sub_8095044: push {r4,r5,lr} adds r5, r0, 0 ldr r4, _0809507C ldr r1, [r4] adds r1, 0x4 movs r2, 0x6 bl sub_809488C ldr r1, [r4] adds r1, 0x3 adds r0, r5, 0 movs r2, 0x6 bl sub_809488C ldr r1, [r4] adds r1, 0x2 adds r0, r5, 0 movs r2, 0x6 bl sub_809488C ldr r1, [r4] adds r0, r5, 0 movs r2, 0xE bl sub_809488C pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0809507C: .4byte gUnknown_203B47C thumb_func_end sub_8095044 thumb_func_start sub_8095080 sub_8095080: push {r4,r5,lr} adds r5, r0, 0 ldr r4, _080950B8 ldr r1, [r4] adds r1, 0x4 movs r2, 0x6 bl sub_8094924 ldr r1, [r4] adds r1, 0x3 adds r0, r5, 0 movs r2, 0x6 bl sub_8094924 ldr r1, [r4] adds r1, 0x2 adds r0, r5, 0 movs r2, 0x6 bl sub_8094924 ldr r1, [r4] adds r0, r5, 0 movs r2, 0xE bl sub_8094924 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080950B8: .4byte gUnknown_203B47C thumb_func_end sub_8095080 thumb_func_start sub_80950BC sub_80950BC: ldr r1, _080950D8 ldr r0, _080950DC str r0, [r1] ldr r1, _080950E0 ldr r0, _080950E4 str r0, [r1] ldr r1, _080950E8 ldr r0, _080950EC str r0, [r1] ldr r1, _080950F0 ldr r0, _080950F4 str r0, [r1] bx lr .align 2, 0 _080950D8: .4byte gUnknown_203B480 _080950DC: .4byte gUnknown_2038C88 _080950E0: .4byte gUnknown_203B484 _080950E4: .4byte gUnknown_2039288 _080950E8: .4byte gUnknown_203B488 _080950EC: .4byte gUnknown_20392E8 _080950F0: .4byte gUnknown_203B48C _080950F4: .4byte gUnknown_20393C0 thumb_func_end sub_80950BC thumb_func_start sub_80950F8 sub_80950F8: ldr r0, _080950FC bx lr .align 2, 0 _080950FC: .4byte gUnknown_2038C88 thumb_func_end sub_80950F8 thumb_func_start sub_8095100 sub_8095100: ldr r0, _08095104 bx lr .align 2, 0 _08095104: .4byte gUnknown_2039288 thumb_func_end sub_8095100 thumb_func_start sub_8095108 sub_8095108: ldr r0, _0809510C bx lr .align 2, 0 _0809510C: .4byte gUnknown_20392E8 thumb_func_end sub_8095108 thumb_func_start sub_8095110 sub_8095110: ldr r0, _08095114 bx lr .align 2, 0 _08095114: .4byte gUnknown_20393C0 thumb_func_end sub_8095110 thumb_func_start sub_8095118 sub_8095118: push {r4,lr} ldr r4, _0809517C ldr r0, [r4] movs r2, 0xC0 lsls r2, 3 movs r1, 0 bl MemoryFill8 ldr r0, _08095180 ldr r0, [r0] movs r1, 0 movs r2, 0x5C bl MemoryFill8 movs r2, 0 movs r1, 0 movs r3, 0x1F _0809513A: ldr r0, [r4] adds r0, r1 strb r2, [r0] ldr r0, [r4] adds r0, r1 adds r0, 0x22 strb r2, [r0] ldr r0, [r4] adds r0, r1 adds r0, 0x2D strb r2, [r0] adds r1, 0x30 subs r3, 0x1 cmp r3, 0 bge _0809513A ldr r2, _08095184 ldr r1, [r2] movs r0, 0 str r0, [r1] movs r3, 0 movs r4, 0x1 negs r4, r4 _08095166: ldr r0, [r2] lsls r1, r3, 2 adds r0, 0x4 adds r0, r1 str r4, [r0] adds r3, 0x1 cmp r3, 0x1F ble _08095166 pop {r4} pop {r0} bx r0 .align 2, 0 _0809517C: .4byte gUnknown_203B480 _08095180: .4byte gUnknown_203B484 _08095184: .4byte gUnknown_203B48C thumb_func_end sub_8095118 thumb_func_start nullsub_206 nullsub_206: bx lr thumb_func_end nullsub_206 thumb_func_start nullsub_207 nullsub_207: bx lr thumb_func_end nullsub_207 thumb_func_start sub_8095190 sub_8095190: push {lr} movs r2, 0x2 ldr r0, _080951A8 ldr r0, [r0] adds r1, r0, 0 adds r1, 0x60 _0809519C: ldrb r0, [r1] cmp r0, 0 bne _080951AC adds r0, r2, 0 b _080951B8 .align 2, 0 _080951A8: .4byte gUnknown_203B480 _080951AC: adds r1, 0x30 adds r2, 0x1 cmp r2, 0x1F ble _0809519C movs r0, 0x1 negs r0, r0 _080951B8: pop {r1} bx r1 thumb_func_end sub_8095190 thumb_func_start sub_80951BC sub_80951BC: push {r4,lr} adds r4, r0, 0 bl sub_8095190 adds r2, r0, 0 movs r0, 0x1 negs r0, r0 cmp r2, r0 beq _080951F4 ldr r0, _080951F0 ldr r1, [r0] lsls r0, r2, 1 adds r0, r2 lsls r0, 4 adds r1, r0 adds r0, r4, 0 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} movs r0, 0x1 b _080951F6 .align 2, 0 _080951F0: .4byte gUnknown_203B480 _080951F4: movs r0, 0 _080951F6: pop {r4} pop {r1} bx r1 thumb_func_end sub_80951BC thumb_func_start sub_80951FC sub_80951FC: push {r4,r5,lr} ldr r1, _08095224 ldr r1, [r1] adds r1, 0x30 ldrb r2, [r1] negs r3, r2 orrs r3, r2 lsrs r3, 31 ldm r0!, {r2,r4,r5} stm r1!, {r2,r4,r5} ldm r0!, {r2,r4,r5} stm r1!, {r2,r4,r5} ldm r0!, {r2,r4,r5} stm r1!, {r2,r4,r5} ldm r0!, {r2,r4,r5} stm r1!, {r2,r4,r5} adds r0, r3, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08095224: .4byte gUnknown_203B480 thumb_func_end sub_80951FC thumb_func_start sub_8095228 sub_8095228: lsls r0, 24 lsrs r0, 24 ldr r2, _0809523C lsls r1, r0, 1 adds r1, r0 lsls r1, 4 ldr r0, [r2] adds r0, r1 bx lr .align 2, 0 _0809523C: .4byte gUnknown_203B480 thumb_func_end sub_8095228 thumb_func_start sub_8095240 sub_8095240: push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r5, _08095270 lsls r4, r0, 1 adds r4, r0 lsls r4, 4 ldr r0, [r5] adds r0, r4 movs r1, 0 movs r2, 0x30 bl MemoryFill8 ldr r0, [r5] adds r0, r4 movs r1, 0 strb r1, [r0] ldr r0, [r5] adds r0, r4 adds r0, 0x22 strb r1, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08095270: .4byte gUnknown_203B480 thumb_func_end sub_8095240 thumb_func_start sub_8095274 sub_8095274: push {lr} ldr r1, _08095294 ldr r3, [r1] adds r2, r3, 0 ldm r2!, {r1} lsls r1, 2 adds r2, r1 str r0, [r2] ldr r0, [r3] movs r1, 0 cmp r0, 0x1E bgt _0809528E adds r1, r0, 0x1 _0809528E: str r1, [r3] pop {r0} bx r0 .align 2, 0 _08095294: .4byte gUnknown_203B48C thumb_func_end sub_8095274 thumb_func_start sub_8095298 sub_8095298: push {lr} adds r3, r0, 0 movs r2, 0 ldr r0, _080952B0 ldr r0, [r0] adds r1, r0, 0x4 _080952A4: ldr r0, [r1] cmp r0, r3 bne _080952B4 movs r0, 0x1 b _080952BE .align 2, 0 _080952B0: .4byte gUnknown_203B48C _080952B4: adds r1, 0x4 adds r2, 0x1 cmp r2, 0x1F ble _080952A4 movs r0, 0 _080952BE: pop {r1} bx r1 thumb_func_end sub_8095298 thumb_func_start sub_80952C4 sub_80952C4: push {r4,lr} ldr r2, _080952EC ldr r1, [r2] movs r0, 0 str r0, [r1] movs r3, 0 adds r4, r2, 0 movs r2, 0x1 negs r2, r2 _080952D6: ldr r0, [r4] lsls r1, r3, 2 adds r0, 0x4 adds r0, r1 str r2, [r0] adds r3, 0x1 cmp r3, 0x1F ble _080952D6 pop {r4} pop {r0} bx r0 .align 2, 0 _080952EC: .4byte gUnknown_203B48C thumb_func_end sub_80952C4 thumb_func_start sub_80952F0 sub_80952F0: push {r4,lr} adds r4, r1, 0 lsls r0, 24 lsrs r1, r0, 24 movs r3, 0 ldr r0, _08095310 ldr r2, [r0] _080952FE: ldrb r0, [r2] cmp r0, r1 bne _08095314 ldr r0, [r2, 0x10] cmp r0, r4 bne _08095314 movs r0, 0x1 b _0809531E .align 2, 0 _08095310: .4byte gUnknown_203B480 _08095314: adds r2, 0x30 adds r3, 0x1 cmp r3, 0x1F ble _080952FE movs r0, 0 _0809531E: pop {r4} pop {r1} bx r1 thumb_func_end sub_80952F0 thumb_func_start sub_8095324 sub_8095324: push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 movs r3, 0 ldr r0, _0809534C ldr r1, [r0] movs r2, 0x1F _08095332: ldrb r0, [r1] cmp r0, r4 bne _0809533A adds r3, 0x1 _0809533A: adds r1, 0x30 subs r2, 0x1 cmp r2, 0 bge _08095332 adds r0, r3, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _0809534C: .4byte gUnknown_203B480 thumb_func_end sub_8095324 thumb_func_start sub_8095350 sub_8095350: push {lr} movs r3, 0 ldr r0, _08095370 ldr r1, [r0] movs r2, 0x1F _0809535A: ldrb r0, [r1] cmp r0, 0 beq _08095362 adds r3, 0x1 _08095362: adds r1, 0x30 subs r2, 0x1 cmp r2, 0 bge _0809535A adds r0, r3, 0 pop {r1} bx r1 .align 2, 0 _08095370: .4byte gUnknown_203B480 thumb_func_end sub_8095350 thumb_func_start sub_8095374 sub_8095374: push {lr} movs r3, 0x1 negs r3, r3 movs r2, 0 ldr r0, _08095398 ldr r1, [r0] _08095380: ldrb r0, [r1] cmp r0, 0x1 bne _08095388 adds r3, r2, 0 _08095388: adds r1, 0x30 adds r2, 0x1 cmp r2, 0x1F ble _08095380 adds r0, r3, 0 pop {r1} bx r1 .align 2, 0 _08095398: .4byte gUnknown_203B480 thumb_func_end sub_8095374 thumb_func_start sub_809539C sub_809539C: push {r4,lr} adds r4, r1, 0 lsls r0, 24 lsrs r1, r0, 24 movs r3, 0 ldr r0, _080953BC ldr r2, [r0] _080953AA: ldrb r0, [r2] cmp r0, r1 bne _080953C0 ldr r0, [r2, 0x10] cmp r0, r4 bne _080953C0 adds r0, r3, 0 b _080953CC .align 2, 0 _080953BC: .4byte gUnknown_203B480 _080953C0: adds r2, 0x30 adds r3, 0x1 cmp r3, 0x1F ble _080953AA movs r0, 0x1 negs r0, r0 _080953CC: pop {r4} pop {r1} bx r1 thumb_func_end sub_809539C thumb_func_start sub_80953D4 sub_80953D4: push {lr} lsls r0, 24 lsrs r3, r0, 24 movs r2, 0 ldr r0, _080953EC ldr r1, [r0] _080953E0: ldrb r0, [r1] cmp r0, r3 bne _080953F0 adds r0, r2, 0 b _080953FC .align 2, 0 _080953EC: .4byte gUnknown_203B480 _080953F0: adds r1, 0x30 adds r2, 0x1 cmp r2, 0x1F ble _080953E0 movs r0, 0x1 negs r0, r0 _080953FC: pop {r1} bx r1 thumb_func_end sub_80953D4 thumb_func_start sub_8095400 sub_8095400: push {lr} adds r3, r0, 0 movs r2, 0 ldr r0, _08095418 ldr r0, [r0] adds r1, r0, 0 adds r1, 0x10 _0809540E: ldr r0, [r1] cmp r0, r3 bne _0809541C adds r0, r2, 0 b _08095428 .align 2, 0 _08095418: .4byte gUnknown_203B480 _0809541C: adds r1, 0x30 adds r2, 0x1 cmp r2, 0x1F ble _0809540E movs r0, 0x1 negs r0, r0 _08095428: pop {r1} bx r1 thumb_func_end sub_8095400 thumb_func_start sub_809542C sub_809542C: push {r4,lr} sub sp, 0x14 ldr r4, _08095490 ldr r2, [r4] movs r1, 0x1 strb r1, [r2] ldr r2, [r4] ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [r2, 0x4] str r1, [r2, 0x8] bl Random bl sub_8094D28 bl sub_8094E4C ldr r1, [r4] str r0, [r1, 0x10] bl sub_808D33C ldr r1, [r4] ldrh r0, [r0, 0x8] strh r0, [r1, 0xC] bl sub_808D33C adds r1, r0, 0 mov r0, sp bl sub_808DA34 ldr r0, [r4] adds r0, 0x14 mov r1, sp bl sub_80922F4 bl sub_8011C34 ldr r1, [r4] str r0, [r1, 0x24] ldrb r0, [r1, 0x4] bl sub_8090134 ldr r1, [r4] adds r1, 0x2C strb r0, [r1] add sp, 0x14 pop {r4} pop {r0} bx r0 .align 2, 0 _08095490: .4byte gUnknown_203B480 thumb_func_end sub_809542C thumb_func_start sub_8095494 sub_8095494: lsls r1, 24 lsrs r1, 24 ldr r2, _080954B0 ldr r3, [r2] lsls r2, r1, 1 adds r2, r1 lsls r2, 4 adds r3, r2 ldr r1, [r3, 0x4] ldr r2, [r3, 0x8] str r1, [r0] str r2, [r0, 0x4] bx lr .align 2, 0 _080954B0: .4byte gUnknown_203B480 thumb_func_end sub_8095494 thumb_func_start sub_80954B4 sub_80954B4: push {lr} movs r0, 0x3 bl sub_8095324 cmp r0, 0 bne _080954C4 movs r0, 0 b _080954C6 _080954C4: movs r0, 0x1 _080954C6: pop {r1} bx r1 thumb_func_end sub_80954B4 thumb_func_start sub_80954CC sub_80954CC: push {r4-r6,lr} sub sp, 0x10 adds r3, r0, 0 adds r2, r1, 0 mov r0, sp adds r1, r3, 0 bl sub_809485C ldr r6, _08095618 movs r5, 0 movs r4, 0x1F _080954E2: ldr r1, [r6] adds r1, r5 mov r0, sp bl sub_8095774 adds r5, 0x30 subs r4, 0x1 cmp r4, 0 bge _080954E2 ldr r4, _0809561C ldr r1, [r4] mov r0, sp movs r2, 0x20 bl sub_8094924 ldr r5, [r4] adds r4, r5, 0x4 adds r0, r4, 0 movs r1, 0 movs r2, 0x58 bl memset mov r0, sp adds r1, r4, 0 movs r2, 0x2 bl sub_8094924 adds r1, r5, 0x6 mov r0, sp movs r2, 0x1 bl sub_8094924 adds r1, r5, 0x7 mov r0, sp movs r2, 0x7 bl sub_8094924 adds r4, 0x4 mov r0, sp adds r1, r4, 0 bl sub_8090314 adds r1, r5, 0 adds r1, 0xC mov r0, sp movs r2, 0x9 bl sub_8094924 adds r1, r5, 0 adds r1, 0x10 mov r0, sp bl sub_808F410 adds r1, r5, 0 adds r1, 0x14 mov r0, sp bl sub_808F410 adds r1, r5, 0 adds r1, 0x18 mov r0, sp movs r2, 0xA bl sub_8094924 adds r1, r5, 0 adds r1, 0x1A mov r0, sp movs r2, 0xA bl sub_8094924 adds r1, r5, 0 adds r1, 0x1C mov r0, sp movs r2, 0x8 bl sub_8094924 adds r1, r5, 0 adds r1, 0x1D mov r0, sp movs r2, 0x8 bl sub_8094924 adds r1, r5, 0 adds r1, 0x1E mov r0, sp movs r2, 0x8 bl sub_8094924 adds r1, r5, 0 adds r1, 0x1F mov r0, sp movs r2, 0x8 bl sub_8094924 adds r1, r5, 0 adds r1, 0x20 mov r0, sp movs r2, 0x18 bl sub_8094924 adds r1, r5, 0 adds r1, 0x24 mov r0, sp movs r2, 0x18 bl sub_8094924 adds r1, r5, 0 adds r1, 0x28 mov r0, sp movs r2, 0x4 bl sub_8094924 adds r1, r5, 0 adds r1, 0x2C mov r0, sp bl sub_8091DC0 adds r1, r5, 0 adds r1, 0x30 mov r0, sp bl sub_8094128 adds r1, r5, 0 adds r1, 0x50 mov r0, sp movs r2, 0x50 bl sub_8094924 ldr r4, _08095620 ldr r1, [r4] mov r0, sp movs r2, 0x20 bl sub_8094924 adds r6, r4, 0 movs r5, 0x4 movs r4, 0x1F _080955F4: ldr r1, [r6] adds r1, r5 mov r0, sp movs r2, 0x20 bl sub_8094924 adds r5, 0x4 subs r4, 0x1 cmp r4, 0 bge _080955F4 mov r0, sp bl nullsub_102 ldr r0, [sp, 0x8] add sp, 0x10 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08095618: .4byte gUnknown_203B480 _0809561C: .4byte gUnknown_203B484 _08095620: .4byte gUnknown_203B48C thumb_func_end sub_80954CC thumb_func_start sub_8095624 sub_8095624: push {r4-r6,lr} sub sp, 0x10 adds r3, r0, 0 adds r2, r1, 0 mov r0, sp adds r1, r3, 0 bl sub_809486C ldr r6, _08095768 movs r5, 0 movs r4, 0x1F _0809563A: ldr r1, [r6] adds r1, r5 mov r0, sp bl sub_8095824 adds r5, 0x30 subs r4, 0x1 cmp r4, 0 bge _0809563A ldr r4, _0809576C ldr r1, [r4] mov r0, sp movs r2, 0x20 bl sub_809488C ldr r5, [r4] adds r4, r5, 0x4 mov r0, sp adds r1, r4, 0 movs r2, 0x2 bl sub_809488C adds r1, r5, 0x6 mov r0, sp movs r2, 0x1 bl sub_809488C adds r1, r5, 0x7 mov r0, sp movs r2, 0x7 bl sub_809488C adds r4, 0x4 mov r0, sp adds r1, r4, 0 bl sub_80902F4 adds r1, r5, 0 adds r1, 0xC mov r0, sp movs r2, 0x9 bl sub_809488C adds r1, r5, 0 adds r1, 0x10 mov r0, sp bl sub_808F41C adds r1, r5, 0 adds r1, 0x14 mov r0, sp bl sub_808F41C adds r1, r5, 0 adds r1, 0x18 mov r0, sp movs r2, 0xA bl sub_809488C adds r1, r5, 0 adds r1, 0x1A mov r0, sp movs r2, 0xA bl sub_809488C adds r1, r5, 0 adds r1, 0x1C mov r0, sp movs r2, 0x8 bl sub_809488C adds r1, r5, 0 adds r1, 0x1D mov r0, sp movs r2, 0x8 bl sub_809488C adds r1, r5, 0 adds r1, 0x1E mov r0, sp movs r2, 0x8 bl sub_809488C adds r1, r5, 0 adds r1, 0x1F mov r0, sp movs r2, 0x8 bl sub_809488C adds r1, r5, 0 adds r1, 0x20 mov r0, sp movs r2, 0x18 bl sub_809488C adds r1, r5, 0 adds r1, 0x24 mov r0, sp movs r2, 0x18 bl sub_809488C adds r1, r5, 0 adds r1, 0x28 mov r0, sp movs r2, 0x4 bl sub_809488C adds r1, r5, 0 adds r1, 0x2C mov r0, sp bl sub_8091DE0 adds r1, r5, 0 adds r1, 0x30 mov r0, sp bl sub_8094108 adds r1, r5, 0 adds r1, 0x50 mov r0, sp movs r2, 0x50 bl sub_809488C ldr r4, _08095770 ldr r1, [r4] mov r0, sp movs r2, 0x20 bl sub_809488C adds r6, r4, 0 movs r5, 0x4 movs r4, 0x1F _08095742: ldr r1, [r6] adds r1, r5 mov r0, sp movs r2, 0x20 bl sub_809488C adds r5, 0x4 subs r4, 0x1 cmp r4, 0 bge _08095742 mov r0, sp bl nullsub_102 ldr r0, [sp, 0x8] add sp, 0x10 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08095768: .4byte gUnknown_203B480 _0809576C: .4byte gUnknown_203B484 _08095770: .4byte gUnknown_203B48C thumb_func_end sub_8095624 thumb_func_start sub_8095774 sub_8095774: push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x4 bl sub_8094924 adds r1, r5, 0x4 adds r0, r4, 0 bl sub_8090314 adds r1, r5, 0 adds r1, 0x8 adds r0, r4, 0 movs r2, 0x18 bl sub_8094924 adds r1, r5, 0 adds r1, 0xC adds r0, r4, 0 movs r2, 0x9 bl sub_8094924 adds r1, r5, 0 adds r1, 0x10 adds r0, r4, 0 movs r2, 0x20 bl sub_8094924 adds r1, r5, 0 adds r1, 0x14 adds r0, r4, 0 movs r2, 0x50 bl sub_8094924 adds r1, r5, 0 adds r1, 0x20 adds r0, r4, 0 movs r2, 0x8 bl sub_8094924 adds r1, r5, 0 adds r1, 0x21 adds r0, r4, 0 movs r2, 0x8 bl sub_8094924 adds r1, r5, 0 adds r1, 0x22 adds r0, r4, 0 movs r2, 0x8 bl sub_8094924 adds r1, r5, 0 adds r1, 0x24 adds r0, r4, 0 movs r2, 0x20 bl sub_8094924 adds r1, r5, 0 adds r1, 0x28 adds r0, r4, 0 movs r2, 0x20 bl sub_8094924 adds r1, r5, 0 adds r1, 0x2C adds r0, r4, 0 movs r2, 0x8 bl sub_8094924 adds r0, r4, 0 mov r1, sp movs r2, 0x1 bl sub_8094924 mov r0, sp ldrb r1, [r0] movs r0, 0x1 ands r0, r1 adds r1, r5, 0 adds r1, 0x2D strb r0, [r1] add sp, 0x4 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8095774 thumb_func_start sub_8095824 sub_8095824: push {r4-r6,lr} sub sp, 0x4 adds r5, r0, 0 adds r4, r1, 0 movs r1, 0xFF mov r0, sp strb r1, [r0] mov r6, sp adds r6, 0x1 movs r0, 0 strb r0, [r6] adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x4 bl sub_809488C adds r1, r4, 0x4 adds r0, r5, 0 bl sub_80902F4 adds r1, r4, 0 adds r1, 0x8 adds r0, r5, 0 movs r2, 0x18 bl sub_809488C adds r1, r4, 0 adds r1, 0xC adds r0, r5, 0 movs r2, 0x9 bl sub_809488C adds r1, r4, 0 adds r1, 0x10 adds r0, r5, 0 movs r2, 0x20 bl sub_809488C adds r1, r4, 0 adds r1, 0x14 adds r0, r5, 0 movs r2, 0x50 bl sub_809488C adds r1, r4, 0 adds r1, 0x20 adds r0, r5, 0 movs r2, 0x8 bl sub_809488C adds r1, r4, 0 adds r1, 0x21 adds r0, r5, 0 movs r2, 0x8 bl sub_809488C adds r1, r4, 0 adds r1, 0x22 adds r0, r5, 0 movs r2, 0x8 bl sub_809488C adds r1, r4, 0 adds r1, 0x24 adds r0, r5, 0 movs r2, 0x20 bl sub_809488C adds r1, r4, 0 adds r1, 0x28 adds r0, r5, 0 movs r2, 0x20 bl sub_809488C adds r1, r4, 0 adds r1, 0x2C adds r0, r5, 0 movs r2, 0x8 bl sub_809488C adds r0, r4, 0 adds r0, 0x2D ldrb r0, [r0] mov r1, sp cmp r0, 0 bne _080958D2 adds r1, r6, 0 _080958D2: adds r0, r5, 0 movs r2, 0x1 bl sub_809488C add sp, 0x4 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8095824 thumb_func_start sub_80958E4 sub_80958E4: str r1, [r0] bx lr thumb_func_end sub_80958E4 thumb_func_start sub_80958E8 sub_80958E8: ldr r1, _080958F0 ldr r0, _080958F4 str r0, [r1] bx lr .align 2, 0 _080958F0: .4byte gUnknown_203B490 _080958F4: .4byte gUnknown_2039448 thumb_func_end sub_80958E8 thumb_func_start sub_80958F8 sub_80958F8: ldr r0, _080958FC bx lr .align 2, 0 _080958FC: .4byte gUnknown_2039448 thumb_func_end sub_80958F8 thumb_func_start sub_8095900 sub_8095900: push {r4-r7,lr} movs r4, 0 _08095904: lsls r0, r4, 24 lsrs r0, 24 bl sub_8096040 adds r4, 0x1 cmp r4, 0x3 ble _08095904 movs r4, 0 _08095914: lsls r0, r4, 24 lsrs r0, 24 bl sub_80965B8 adds r4, 0x1 cmp r4, 0x7 ble _08095914 movs r4, 0 _08095924: lsls r0, r4, 24 lsrs r0, 24 bl sub_8096C3C adds r4, 0x1 cmp r4, 0x7 ble _08095924 movs r4, 0 ldr r3, _080959B8 movs r2, 0xBC lsls r2, 2 movs r1, 0 _0809593C: ldr r0, [r3] adds r0, r2 adds r0, r4 strb r1, [r0] adds r4, 0x1 cmp r4, 0x37 ble _0809593C ldr r4, _080959B8 ldr r0, [r4] movs r1, 0xCA lsls r1, 2 adds r0, r1 movs r1, 0 strb r1, [r0] ldr r0, [r4] movs r7, 0xC8 lsls r7, 1 adds r0, r7 movs r1, 0x28 bl MemoryClear8 ldr r0, [r4] movs r1, 0xDC lsls r1, 1 adds r0, r1 movs r1, 0x78 bl MemoryClear8 adds r3, r4, 0 movs r5, 0 movs r2, 0 movs r6, 0x8C lsls r6, 2 movs r4, 0xF _08095980: ldr r0, [r3] adds r0, r2 adds r0, r6 movs r1, 0x63 strb r1, [r0] ldr r0, [r3] adds r0, r2 ldr r7, _080959BC adds r0, r7 movs r1, 0x1 strb r1, [r0] ldr r1, [r3] adds r7, 0x3 adds r0, r1, r7 adds r0, r2 str r5, [r0] adds r7, 0x4 adds r0, r1, r7 adds r0, r2 str r5, [r0] adds r2, 0xC subs r4, 0x1 cmp r4, 0 bge _08095980 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080959B8: .4byte gUnknown_203B490 _080959BC: .4byte 0x00000231 thumb_func_end sub_8095900 thumb_func_start sub_80959C0 sub_80959C0: push {lr} adds r1, r0, 0 ldrb r0, [r1] cmp r0, 0x5 bne _080959D6 adds r0, r1, 0 bl sub_80959DC lsls r0, 24 lsrs r0, 24 b _080959D8 _080959D6: movs r0, 0 _080959D8: pop {r1} bx r1 thumb_func_end sub_80959C0 thumb_func_start sub_80959DC sub_80959DC: push {r4-r6,lr} adds r5, r0, 0 ldrb r0, [r5, 0x1] cmp r0, 0x4 bls _080959E8 b _08095B16 _080959E8: cmp r0, 0x4 bne _080959F8 ldrb r0, [r5, 0x4] bl sub_8090114 cmp r0, 0 bne _080959F8 b _08095B16 _080959F8: ldrb r0, [r5, 0x2] cmp r0, 0x9 bls _08095A00 b _08095B16 _08095A00: ldrb r0, [r5, 0x4] bl sub_809095C lsls r0, 24 cmp r0, 0 beq _08095A0E b _08095B16 _08095A0E: ldrb r4, [r5, 0x5] ldrb r0, [r5, 0x4] bl sub_8090298 cmp r4, r0 bge _08095B16 adds r4, r5, 0x4 adds r0, r4, 0 bl sub_809017C lsls r0, 24 adds r6, r4, 0 cmp r0, 0 bne _08095B16 movs r1, 0xC ldrsh r0, [r5, r1] cmp r0, 0 beq _08095B16 ldr r4, _08095B1C cmp r0, r4 bgt _08095B16 movs r2, 0xC ldrsh r0, [r5, r2] bl sub_808E770 movs r2, 0xC ldrsh r1, [r5, r2] lsls r0, 16 asrs r0, 16 cmp r1, r0 bne _08095B16 movs r1, 0xC ldrsh r0, [r5, r1] bl sub_803C0DC lsls r0, 24 cmp r0, 0 beq _08095B16 movs r2, 0xE ldrsh r0, [r5, r2] cmp r0, r4 bgt _08095B16 movs r1, 0xE ldrsh r0, [r5, r1] bl sub_808E770 movs r2, 0xE ldrsh r1, [r5, r2] lsls r0, 16 asrs r0, 16 cmp r1, r0 bne _08095B16 movs r1, 0xE ldrsh r0, [r5, r1] bl sub_803C0DC lsls r0, 24 cmp r0, 0 beq _08095B16 ldrb r0, [r5, 0x1] subs r0, 0x1 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bls _08095A9C movs r2, 0xE ldrsh r1, [r5, r2] movs r2, 0xC ldrsh r0, [r5, r2] cmp r1, r0 bne _08095B16 _08095A9C: ldrb r0, [r5, 0x10] bl sub_8092040 lsls r0, 24 cmp r0, 0 bne _08095B16 ldrb r0, [r5, 0x10] bl sub_8090A60 lsls r0, 24 cmp r0, 0 bne _08095B16 ldrb r0, [r5, 0x10] bl sub_8091524 lsls r0, 24 cmp r0, 0 beq _08095B16 ldrb r0, [r5, 0x1] cmp r0, 0x3 bne _08095AD4 ldrb r0, [r5, 0x4] ldrb r1, [r5, 0x10] bl sub_8091E60 lsls r0, 24 cmp r0, 0 beq _08095B16 _08095AD4: ldrb r0, [r5, 0x11] cmp r0, 0x4 beq _08095B16 cmp r0, 0xA beq _08095B16 cmp r0, 0xA bhi _08095B16 ldrb r0, [r5, 0x12] bl sub_8092040 lsls r0, 24 cmp r0, 0 bne _08095B16 ldrb r0, [r5, 0x13] cmp r0, 0x39 bhi _08095B16 ldrb r0, [r5, 0x11] cmp r0, 0x9 bne _08095B20 ldrb r0, [r5, 0x13] bl sub_8092534 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _08095B16 ldrb r1, [r5, 0x1] adds r0, r6, 0 bl sub_803C1D0 lsls r0, 24 cmp r0, 0 bne _08095B20 _08095B16: movs r0, 0 b _08095B22 .align 2, 0 _08095B1C: .4byte 0x000001a7 _08095B20: movs r0, 0x1 _08095B22: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80959DC thumb_func_start sub_8095B28 sub_8095B28: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r4, _08095B44 add sp, r4 adds r4, r0, 0 bl sub_8095CE0 lsls r0, 24 cmp r0, 0 bne _08095B48 movs r0, 0 b _08095CCC .align 2, 0 _08095B44: .4byte 0xfffffcb0 _08095B48: movs r0, 0x5 strb r0, [r4] movs r0, 0x8 bl RandomCapped ldr r1, _08095BC8 adds r0, r1 ldrb r0, [r0] strb r0, [r4, 0x1] cmp r0, 0x2 bne _08095B6C bl sub_8092178 lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _08095B6C strb r0, [r4, 0x1] _08095B6C: movs r0, 0 strb r0, [r4, 0x2] bl Random ldr r1, _08095BCC ands r1, r0 str r1, [r4, 0x8] movs r7, 0 movs r5, 0x1 adds r0, r4, 0x4 mov r8, r0 movs r1, 0x12 adds r1, r4 mov r9, r1 mov r6, sp _08095B8A: lsls r0, r5, 16 asrs r0, 16 bl sub_803C110 lsls r0, 24 cmp r0, 0 beq _08095B9E strh r5, [r6] adds r6, 0x2 adds r7, 0x1 _08095B9E: adds r5, 0x1 ldr r0, _08095BD0 cmp r5, r0 ble _08095B8A cmp r7, 0 beq _08095BD4 adds r0, r7, 0 bl RandomCapped lsls r0, 1 add r0, sp ldrh r0, [r0] strh r0, [r4, 0xC] adds r0, r7, 0 bl RandomCapped lsls r0, 1 add r0, sp ldrh r0, [r0] b _08095BDC .align 2, 0 _08095BC8: .4byte gUnknown_8109984 _08095BCC: .4byte 0x00ffffff _08095BD0: .4byte 0x000001a7 _08095BD4: movs r0, 0x10 strh r0, [r4, 0xC] movs r0, 0x91 lsls r0, 1 _08095BDC: strh r0, [r4, 0xE] ldrb r0, [r4, 0x1] subs r0, 0x1 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bls _08095BEE ldrh r0, [r4, 0xC] strh r0, [r4, 0xE] _08095BEE: ldrb r0, [r4, 0x4] bl sub_8095F28 strb r0, [r4, 0x10] lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _08095C10 strb r0, [r4, 0x1] ldrh r0, [r4, 0xC] strh r0, [r4, 0xE] adds r2, r4, 0 adds r2, 0x10 mov r0, r8 movs r1, 0 bl sub_803C37C _08095C10: ldrb r0, [r4, 0x4] bl sub_8090114 adds r1, r0, 0 cmp r1, 0 bne _08095C28 ldrb r0, [r4, 0x1] cmp r0, 0x4 bne _08095C28 strb r1, [r4, 0x1] ldrh r0, [r4, 0xC] strh r0, [r4, 0xE] _08095C28: ldrb r1, [r4, 0x1] mov r0, r8 mov r2, r9 bl sub_803C37C ldrb r0, [r4, 0x10] ldrb r1, [r4, 0x12] cmp r0, r1 beq _08095C28 movs r0, 0 strb r0, [r4, 0x13] ldrb r0, [r4, 0x1] cmp r0, 0x2 beq _08095C90 cmp r0, 0x2 bgt _08095C4E cmp r0, 0x1 beq _08095C6C b _08095CCA _08095C4E: cmp r0, 0x4 bgt _08095CCA bl Random adds r1, r0, 0 movs r0, 0xE0 lsls r0, 3 ands r1, r0 movs r0, 0xC0 lsls r0, 2 cmp r1, r0 beq _08095CC4 cmp r1, r0 bgt _08095CB4 b _08095CAA _08095C6C: bl Random adds r1, r0, 0 movs r0, 0x70 ands r1, r0 cmp r1, 0x10 beq _08095C80 cmp r1, 0x30 beq _08095C88 b _08095CCA _08095C80: adds r0, r4, 0 bl sub_803C3E0 b _08095CCA _08095C88: adds r0, r4, 0 bl sub_803C45C b _08095CCA _08095C90: bl Random movs r1, 0xC0 lsls r1, 6 ands r1, r0 movs r0, 0x80 lsls r0, 5 cmp r1, r0 bne _08095CCA adds r0, r4, 0 bl sub_803C4F0 b _08095CCA _08095CAA: movs r0, 0x80 lsls r0, 1 cmp r1, r0 beq _08095CBC b _08095CCA _08095CB4: movs r0, 0xC0 lsls r0, 3 cmp r1, r0 bne _08095CCA _08095CBC: adds r0, r4, 0 bl sub_803C580 b _08095CCA _08095CC4: adds r0, r4, 0 bl sub_803C610 _08095CCA: movs r0, 0x1 _08095CCC: movs r3, 0xD4 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_8095B28 thumb_func_start sub_8095CE0 sub_8095CE0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x60 str r0, [sp, 0x44] mov r0, sp bl sub_80A29B0 str r0, [sp, 0x4C] cmp r0, 0 bne _08095D0C mov r0, sp add r1, sp, 0x4C ldrb r1, [r1] strb r1, [r0] mov r1, sp movs r0, 0x1 strb r0, [r1, 0x1] movs r2, 0x2 str r2, [sp, 0x4C] _08095D0C: ldr r0, [sp, 0x4C] bl RandomCapped mov r9, r0 str r0, [sp, 0x48] mov r1, sp adds r1, 0x40 str r1, [sp, 0x5C] _08095D1C: mov r0, sp add r0, r9 ldrb r7, [r0] adds r0, r7, 0 bl sub_8090298 str r0, [sp, 0x58] lsrs r0, 31 ldr r2, [sp, 0x58] adds r0, r2, r0 asrs r0, 1 str r0, [sp, 0x54] adds r1, r2, 0 bl RandomRange adds r4, r0, 0 str r4, [sp, 0x50] _08095D3E: movs r0, 0x1 mov r8, r0 ldr r1, _08095DF4 ldr r0, [sp, 0x40] ands r0, r1 orrs r0, r7 lsls r2, r4, 24 lsrs r2, 16 ldr r1, _08095DF8 ands r0, r1 orrs r0, r2 str r0, [sp, 0x40] ldr r0, [sp, 0x5C] bl sub_809017C lsls r0, 24 cmp r0, 0 beq _08095D66 movs r1, 0 mov r8, r1 _08095D66: ldr r2, _08095DFC mov r10, r2 movs r6, 0 movs r5, 0x3 _08095D6E: mov r1, r10 ldr r0, [r1] adds r0, r6 adds r1, r7, 0 adds r2, r4, 0 movs r3, 0x1 bl sub_8095E38 lsls r0, 24 cmp r0, 0 beq _08095D88 movs r2, 0 mov r8, r2 _08095D88: adds r6, 0x14 subs r5, 0x1 cmp r5, 0 bge _08095D6E ldr r0, _08095DFC mov r10, r0 movs r6, 0x50 movs r5, 0x7 _08095D98: mov r1, r10 ldr r0, [r1] adds r0, r6 adds r1, r7, 0 adds r2, r4, 0 movs r3, 0x1 bl sub_8095E38 lsls r0, 24 cmp r0, 0 beq _08095DB2 movs r2, 0 mov r8, r2 _08095DB2: adds r6, 0x14 subs r5, 0x1 cmp r5, 0 bge _08095D98 ldr r0, _08095DFC mov r10, r0 movs r6, 0xF0 movs r5, 0x7 _08095DC2: mov r1, r10 ldr r0, [r1] adds r0, r6 adds r1, r7, 0 adds r2, r4, 0 movs r3, 0x1 bl sub_8095E38 lsls r0, 24 cmp r0, 0 beq _08095DDC movs r2, 0 mov r8, r2 _08095DDC: adds r6, 0x14 subs r5, 0x1 cmp r5, 0 bge _08095DC2 mov r0, r8 cmp r0, 0 beq _08095E00 ldr r1, [sp, 0x44] strb r7, [r1, 0x4] strb r4, [r1, 0x5] movs r0, 0x1 b _08095E28 .align 2, 0 _08095DF4: .4byte 0xffffff00 _08095DF8: .4byte 0xffff00ff _08095DFC: .4byte gUnknown_203B490 _08095E00: adds r4, 0x1 ldr r2, [sp, 0x58] cmp r4, r2 blt _08095E0A ldr r4, [sp, 0x54] _08095E0A: ldr r0, [sp, 0x50] cmp r4, r0 bne _08095D3E movs r1, 0x1 add r9, r1 ldr r2, [sp, 0x4C] cmp r9, r2 bne _08095E1E movs r0, 0 mov r9, r0 _08095E1E: ldr r1, [sp, 0x48] cmp r9, r1 beq _08095E26 b _08095D1C _08095E26: movs r0, 0 _08095E28: add sp, 0x60 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8095CE0 thumb_func_start sub_8095E38 sub_8095E38: push {r4,lr} adds r4, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r3, 24 lsrs r3, 24 ldrb r0, [r4] cmp r0, 0 beq _08095E6E ldrb r0, [r4, 0x1] cmp r0, 0x2 bne _08095E5E cmp r3, 0x1 bne _08095E5E ldrb r0, [r4, 0x4] cmp r0, r1 bne _08095E6E movs r0, 0x1 b _08095E70 _08095E5E: ldrb r0, [r4, 0x4] cmp r0, r1 bne _08095E6E ldrb r0, [r4, 0x5] cmp r0, r2 bne _08095E6E movs r0, 0x1 b _08095E70 _08095E6E: movs r0, 0 _08095E70: pop {r4} pop {r1} bx r1 thumb_func_end sub_8095E38 thumb_func_start sub_8095E78 sub_8095E78: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x3C movs r6, 0 movs r5, 0x1 _08095E84: ldr r0, _08095F04 ldr r0, [r0] adds r0, r5 ldrb r0, [r0] adds r1, r5, 0x1 mov r8, r1 cmp r0, 0 bne _08095EF6 lsls r0, r5, 24 lsrs r0, 24 bl sub_8092534 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _08095EF6 movs r4, 0 ldr r0, _08095F08 ldr r1, [r0] movs r3, 0x3 _08095EAC: ldrb r0, [r1] cmp r0, 0 beq _08095EBA ldrb r0, [r1, 0x11] cmp r0, 0x9 bne _08095EBA movs r4, 0x1 _08095EBA: adds r1, 0x14 subs r3, 0x1 cmp r3, 0 bge _08095EAC ldr r0, _08095F08 ldr r0, [r0] adds r2, r0, 0 adds r2, 0xF0 adds r1, r0, 0 movs r3, 0x7 _08095ECE: ldrb r0, [r2] cmp r0, 0 beq _08095EE0 ldr r7, _08095F0C adds r0, r1, r7 ldrb r0, [r0] cmp r0, 0x9 bne _08095EE0 movs r4, 0x1 _08095EE0: adds r2, 0x14 adds r1, 0x14 subs r3, 0x1 cmp r3, 0 bge _08095ECE cmp r4, 0 bne _08095EF6 mov r1, sp adds r0, r1, r6 strb r5, [r0] adds r6, 0x1 _08095EF6: mov r5, r8 cmp r5, 0x39 ble _08095E84 cmp r6, 0 bne _08095F10 movs r0, 0 b _08095F1A .align 2, 0 _08095F04: .4byte gUnknown_203B468 _08095F08: .4byte gUnknown_203B490 _08095F0C: .4byte 0x00000101 _08095F10: adds r0, r6, 0 bl RandomCapped add r0, sp ldrb r0, [r0] _08095F1A: add sp, 0x3C pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8095E78 thumb_func_start sub_8095F28 sub_8095F28: push {r4-r7,lr} sub sp, 0xF0 lsls r0, 24 lsrs r7, r0, 24 movs r6, 0 movs r5, 0x1 _08095F34: lsls r4, r5, 24 cmp r7, 0x63 beq _08095F48 lsrs r1, r4, 24 adds r0, r7, 0 bl sub_8091E60 lsls r0, 24 cmp r0, 0 beq _08095F6A _08095F48: lsrs r4, 24 adds r0, r4, 0 bl sub_8090A60 lsls r0, 24 cmp r0, 0 bne _08095F6A adds r0, r4, 0 bl sub_8091524 lsls r0, 24 cmp r0, 0 beq _08095F6A mov r1, sp adds r0, r1, r6 strb r5, [r0] adds r6, 0x1 _08095F6A: adds r5, 0x1 cmp r5, 0xEF ble _08095F34 cmp r6, 0 beq _08095F80 adds r0, r6, 0 bl RandomCapped add r0, sp ldrb r0, [r0] b _08095F82 _08095F80: movs r0, 0 _08095F82: add sp, 0xF0 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8095F28 thumb_func_start sub_8095F8C sub_8095F8C: push {r4,r5,lr} movs r5, 0 movs r4, 0 _08095F92: lsls r0, r4, 24 lsrs r0, 24 bl sub_8096000 lsls r0, 24 cmp r0, 0 bne _08095FA2 adds r5, 0x1 _08095FA2: adds r4, 0x1 cmp r4, 0x3 ble _08095F92 adds r0, r5, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8095F8C thumb_func_start sub_8095FB0 sub_8095FB0: push {r4,r5,lr} adds r4, r0, 0 movs r3, 0 ldr r5, _08095FD4 movs r2, 0 _08095FBA: ldr r0, [r5] adds r1, r0, r2 ldrb r0, [r1] cmp r0, 0 bne _08095FD8 adds r0, r4, 0 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2,r3} stm r1!, {r2,r3} movs r0, 0 b _08095FE2 .align 2, 0 _08095FD4: .4byte gUnknown_203B490 _08095FD8: adds r2, 0x14 adds r3, 0x1 cmp r3, 0x3 ble _08095FBA movs r0, 0x1 _08095FE2: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8095FB0 thumb_func_start sub_8095FE8 sub_8095FE8: lsls r0, 24 lsrs r0, 24 ldr r2, _08095FFC lsls r1, r0, 2 adds r1, r0 lsls r1, 2 ldr r0, [r2] adds r0, r1 bx lr .align 2, 0 _08095FFC: .4byte gUnknown_203B490 thumb_func_end sub_8095FE8 thumb_func_start sub_8096000 sub_8096000: push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _0809601C ldr r2, [r1] lsls r1, r0, 2 adds r1, r0 lsls r1, 2 adds r2, r1 ldrb r0, [r2] cmp r0, 0 beq _08096020 movs r0, 0 b _08096022 .align 2, 0 _0809601C: .4byte gUnknown_203B490 _08096020: movs r0, 0x1 _08096022: pop {r1} bx r1 thumb_func_end sub_8096000 thumb_func_start sub_8096028 sub_8096028: push {r4,lr} movs r4, 0 _0809602C: lsls r0, r4, 24 lsrs r0, 24 bl sub_8096040 adds r4, 0x1 cmp r4, 0x3 ble _0809602C pop {r4} pop {r0} bx r0 thumb_func_end sub_8096028 thumb_func_start sub_8096040 sub_8096040: push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r3, _08096074 ldr r1, [r3] lsls r2, r0, 2 adds r2, r0 lsls r2, 2 adds r1, r2 movs r4, 0 strb r4, [r1] ldr r0, [r3] adds r0, r2 movs r1, 0x63 strb r1, [r0, 0x4] ldr r0, [r3] adds r0, r2 strb r4, [r0, 0x5] ldr r0, [r3] adds r0, r2 movs r1, 0x5 strb r1, [r0, 0x11] pop {r4} pop {r0} bx r0 .align 2, 0 _08096074: .4byte gUnknown_203B490 thumb_func_end sub_8096040 thumb_func_start sub_8096078 sub_8096078: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} movs r2, 0 movs r3, 0 ldr r0, _08096090 mov r12, r0 mov r8, r3 movs r4, 0 mov r9, r4 b _080960B6 .align 2, 0 _08096090: .4byte gUnknown_203B490 _08096094: cmp r2, r3 ble _080960AA mov r1, r12 ldr r0, [r1] mov r5, r8 adds r1, r0, r5 adds r0, r4 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r6,r7} stm r1!, {r6,r7} _080960AA: adds r4, 0x14 movs r0, 0x14 add r9, r0 adds r2, 0x1 add r8, r0 adds r3, 0x1 _080960B6: cmp r2, 0x3 bgt _080960E2 mov r1, r12 ldr r0, [r1] adds r0, r4 ldrb r0, [r0] cmp r0, 0 bne _080960E2 ldr r6, _08096110 mov r1, r9 _080960CA: adds r1, 0x14 adds r4, 0x14 movs r5, 0x14 add r9, r5 adds r2, 0x1 cmp r2, 0x3 bgt _080960E2 ldr r0, [r6] adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _080960CA _080960E2: cmp r2, 0x4 bne _08096094 cmp r3, 0x3 bgt _08096102 ldr r4, _08096110 movs r2, 0 lsls r0, r3, 2 adds r0, r3 lsls r1, r0, 2 _080960F4: ldr r0, [r4] adds r0, r1 strb r2, [r0] adds r1, 0x14 adds r3, 0x1 cmp r3, 0x3 ble _080960F4 _08096102: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08096110: .4byte gUnknown_203B490 thumb_func_end sub_8096078 thumb_func_start sub_8096114 sub_8096114: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 movs r1, 0 _08096122: adds r0, r1, 0x1 mov r10, r0 mov r8, r10 cmp r0, 0x3 bgt _08096198 ldr r2, _080961B0 mov r9, r2 lsls r0, r1, 2 adds r0, r1 lsls r0, 2 mov r12, r0 mov r3, r10 lsls r0, r3, 2 add r0, r10 lsls r4, r0, 2 _08096140: mov r5, r9 ldr r1, [r5] adds r3, r1, r4 ldrb r0, [r3] cmp r0, 0 beq _0809618C mov r6, r12 adds r2, r1, r6 ldrb r1, [r2, 0x4] ldrb r0, [r3, 0x4] cmp r1, r0 bhi _08096164 cmp r1, r0 bne _0809618C ldrb r0, [r2, 0x5] ldrb r7, [r3, 0x5] cmp r0, r7 bls _0809618C _08096164: mov r1, sp adds r0, r2, 0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5,r6} stm r1!, {r5,r6} adds r1, r2, 0 adds r0, r3, 0 ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldm r0!, {r5,r6} stm r1!, {r5,r6} mov r7, r9 ldr r1, [r7] adds r1, r4 mov r0, sp ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r6,r7} stm r1!, {r6,r7} _0809618C: adds r4, 0x14 movs r0, 0x1 add r8, r0 mov r1, r8 cmp r1, 0x3 ble _08096140 _08096198: mov r1, r10 cmp r1, 0x2 ble _08096122 add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080961B0: .4byte gUnknown_203B490 thumb_func_end sub_8096114 thumb_func_start sub_80961B4 sub_80961B4: push {lr} bl sub_8096E2C lsls r0, 24 cmp r0, 0 beq _080961CE ldr r0, _080961D4 ldr r0, [r0] movs r1, 0xCA lsls r1, 2 adds r0, r1 movs r1, 0x1 strb r1, [r0] _080961CE: pop {r0} bx r0 .align 2, 0 _080961D4: .4byte gUnknown_203B490 thumb_func_end sub_80961B4 thumb_func_start sub_80961D8 sub_80961D8: push {r4-r7,lr} mov r7, r8 push {r7} movs r7, 0 bl sub_8095F8C adds r6, r0, 0 movs r1, 0x4 bl RandomRange mov r8, r0 cmp r6, 0x3 bgt _08096202 ldr r4, _08096208 ldr r0, [r4] movs r2, 0xCA lsls r2, 2 adds r1, r0, r2 ldrb r0, [r1] cmp r0, 0 bne _0809620C _08096202: movs r0, 0 b _080963A8 .align 2, 0 _08096208: .4byte gUnknown_203B490 _0809620C: strb r7, [r1] movs r5, 0x38 movs r0, 0xA movs r1, 0x31 movs r2, 0x1 bl sub_8001D08 lsls r0, 24 cmp r0, 0 beq _0809623A ldr r0, [r4] ldr r1, _08096328 adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _0809623A movs r0, 0x35 bl sub_8096E80 lsls r0, 24 cmp r0, 0 bne _0809623A movs r5, 0x35 _0809623A: movs r0, 0xF bl sub_80023E4 lsls r0, 24 cmp r0, 0 beq _0809629C ldr r0, _0809632C ldr r0, [r0] movs r2, 0xC9 lsls r2, 2 adds r0, r2 ldrb r0, [r0] cmp r0, 0 bne _08096264 movs r0, 0x34 bl sub_8096E80 lsls r0, 24 cmp r0, 0 bne _08096264 movs r5, 0x34 _08096264: ldr r0, _0809632C ldr r0, [r0] ldr r1, _08096330 adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _08096280 movs r0, 0x33 bl sub_8096E80 lsls r0, 24 cmp r0, 0 bne _08096280 movs r5, 0x33 _08096280: ldr r0, _0809632C ldr r0, [r0] ldr r2, _08096334 adds r0, r2 ldrb r0, [r0] cmp r0, 0 bne _0809629C movs r0, 0x32 bl sub_8096E80 lsls r0, 24 cmp r0, 0 bne _0809629C movs r5, 0x32 _0809629C: bl sub_8092178 lsls r0, 24 lsrs r0, 24 cmp r0, 0x6 bne _080962C4 ldr r0, _0809632C ldr r0, [r0] ldr r1, _08096338 adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _080962C4 movs r0, 0x36 bl sub_8096E80 lsls r0, 24 cmp r0, 0 bne _080962C4 movs r5, 0x36 _080962C4: movs r0, 0x6 bl sub_80023E4 lsls r0, 24 cmp r0, 0 beq _080962EC ldr r0, _0809632C ldr r0, [r0] ldr r2, _0809633C adds r0, r2 ldrb r0, [r0] cmp r0, 0 bne _080962EC movs r0, 0x37 bl sub_8096E80 lsls r0, 24 cmp r0, 0 bne _080962EC movs r5, 0x37 _080962EC: cmp r5, 0x38 bne _08096310 cmp r6, r8 bgt _08096392 bl sub_8096E2C lsls r0, 24 lsrs r5, r0, 24 movs r0, 0xE bl sub_80023E4 lsls r0, 24 cmp r0, 0 bne _0809630C cmp r5, 0x2 bhi _0809638E _0809630C: cmp r5, 0x31 bhi _0809638E _08096310: lsls r0, r6, 24 lsrs r0, 24 bl sub_8095FE8 adds r4, r0, 0 movs r0, 0x1 strb r0, [r4] movs r0, 0x62 strb r0, [r4, 0x4] strb r5, [r4, 0x5] b _0809638A .align 2, 0 _08096328: .4byte 0x00000325 _0809632C: .4byte gUnknown_203B490 _08096330: .4byte 0x00000323 _08096334: .4byte 0x00000322 _08096338: .4byte 0x00000326 _0809633C: .4byte 0x00000327 _08096340: lsls r0, r6, 24 lsrs r0, 24 bl sub_8095FE8 adds r4, r0, 0 bl sub_8095B28 lsls r0, 24 cmp r0, 0 beq _08096392 bl sub_8095E78 lsls r0, 24 lsrs r5, r0, 24 adds r0, r4, 0x4 ldrb r1, [r4, 0x1] bl sub_803C1D0 lsls r0, 24 cmp r0, 0 bne _0809636C movs r5, 0 _0809636C: movs r0, 0x5 movs r1, 0xA bl RandomRange strb r0, [r4, 0x11] lsls r0, 24 lsrs r0, 24 cmp r0, 0x9 bne _0809638A cmp r5, 0 bne _08096388 movs r0, 0x5 strb r0, [r4, 0x11] b _0809638A _08096388: strb r5, [r4, 0x13] _0809638A: movs r7, 0x1 adds r6, 0x1 _0809638E: cmp r6, r8 ble _08096340 _08096392: bl sub_80963B4 lsls r0, 24 cmp r0, 0 beq _0809639E movs r7, 0x1 _0809639E: bl sub_8096078 bl sub_8096114 adds r0, r7, 0 _080963A8: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80961D8 thumb_func_start sub_80963B4 sub_80963B4: push {r4-r6,lr} movs r6, 0 bl sub_8096E2C lsls r0, 24 lsrs r5, r0, 24 bl sub_8095F8C adds r4, r0, 0 cmp r4, 0x3 ble _080963CE movs r0, 0 b _080963F4 _080963CE: movs r0, 0xE bl sub_80023E4 lsls r0, 24 cmp r0, 0 beq _080963F2 cmp r5, 0x31 bhi _080963F2 lsls r0, r4, 24 lsrs r0, 24 bl sub_8095FE8 movs r1, 0x1 strb r1, [r0] movs r1, 0x62 strb r1, [r0, 0x4] strb r5, [r0, 0x5] movs r6, 0x1 _080963F2: adds r0, r6, 0 _080963F4: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80963B4 thumb_func_start sub_80963FC sub_80963FC: push {r4-r6,lr} movs r6, 0 _08096400: lsls r0, r6, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl sub_8095FE8 adds r5, r0, 0 ldrb r0, [r5] cmp r0, 0x1 beq _08096418 adds r0, r4, 0 bl sub_8096040 _08096418: adds r6, 0x1 cmp r6, 0x3 ble _08096400 bl sub_8096078 bl sub_8095F8C lsls r0, 24 lsrs r0, 24 bl sub_8095FE8 adds r5, r0, 0 movs r0, 0 movs r4, 0x5 strb r4, [r5] strb r0, [r5, 0x1] strb r0, [r5, 0x2] movs r0, 0x2 strb r0, [r5, 0x4] movs r0, 0x3 strb r0, [r5, 0x5] bl Random ldr r1, _08096484 ands r1, r0 str r1, [r5, 0x8] movs r0, 0x10 strh r0, [r5, 0xC] strh r0, [r5, 0xE] ldrb r0, [r5, 0x4] bl sub_8095F28 strb r0, [r5, 0x10] strb r4, [r5, 0x11] _0809645C: ldrb r1, [r5, 0x1] adds r0, r5, 0x4 adds r2, r5, 0 adds r2, 0x12 bl sub_803C37C ldrb r0, [r5, 0x10] ldrb r1, [r5, 0x12] cmp r0, r1 beq _0809645C movs r0, 0 strb r0, [r5, 0x13] bl sub_8096078 bl sub_8096114 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08096484: .4byte 0x00ffffff thumb_func_end sub_80963FC thumb_func_start sub_8096488 sub_8096488: push {r4,lr} movs r4, 0 _0809648C: lsls r0, r4, 24 lsrs r0, 24 bl sub_8096040 adds r4, 0x1 cmp r4, 0x3 ble _0809648C movs r0, 0 bl sub_8095FE8 movs r2, 0 movs r1, 0x1 strb r1, [r0] movs r1, 0x62 strb r1, [r0, 0x4] strb r2, [r0, 0x5] pop {r4} pop {r0} bx r0 thumb_func_end sub_8096488 thumb_func_start sub_80964B4 sub_80964B4: push {lr} ldr r0, _080964D4 ldr r0, [r0] ldr r1, _080964D8 adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _080964DC movs r0, 0x35 bl sub_8096E80 lsls r0, 24 cmp r0, 0 bne _080964DC movs r0, 0 b _080964DE .align 2, 0 _080964D4: .4byte gUnknown_203B490 _080964D8: .4byte 0x00000325 _080964DC: movs r0, 0x1 _080964DE: pop {r1} bx r1 thumb_func_end sub_80964B4 thumb_func_start sub_80964E4 sub_80964E4: push {lr} ldr r0, _08096504 ldr r0, [r0] ldr r1, _08096508 adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _0809650C movs r0, 0x36 bl sub_8096E80 lsls r0, 24 cmp r0, 0 bne _0809650C movs r0, 0 b _0809650E .align 2, 0 _08096504: .4byte gUnknown_203B490 _08096508: .4byte 0x00000326 _0809650C: movs r0, 0x1 _0809650E: pop {r1} bx r1 thumb_func_end sub_80964E4 thumb_func_start sub_8096514 sub_8096514: push {r4,r5,lr} movs r5, 0 movs r4, 0 _0809651A: lsls r0, r4, 24 lsrs r0, 24 bl sub_809658C lsls r0, 24 cmp r0, 0 bne _0809652A adds r5, 0x1 _0809652A: adds r4, 0x1 cmp r4, 0x7 ble _0809651A adds r0, r5, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8096514 thumb_func_start sub_8096538 sub_8096538: push {r4,r5,lr} adds r4, r0, 0 movs r3, 0 ldr r5, _08096560 movs r2, 0 _08096542: ldr r0, [r5] adds r0, r2 adds r1, r0, 0 adds r1, 0x50 ldrb r0, [r1] cmp r0, 0 bne _08096564 adds r0, r4, 0 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2,r3} stm r1!, {r2,r3} movs r0, 0 b _0809656E .align 2, 0 _08096560: .4byte gUnknown_203B490 _08096564: adds r2, 0x14 adds r3, 0x1 cmp r3, 0x7 ble _08096542 movs r0, 0x1 _0809656E: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8096538 thumb_func_start sub_8096574 sub_8096574: lsls r0, 24 lsrs r0, 24 ldr r2, _08096588 lsls r1, r0, 2 adds r1, r0 lsls r1, 2 adds r1, 0x50 ldr r0, [r2] adds r0, r1 bx lr .align 2, 0 _08096588: .4byte gUnknown_203B490 thumb_func_end sub_8096574 thumb_func_start sub_809658C sub_809658C: push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _080965AC ldr r2, [r1] lsls r1, r0, 2 adds r1, r0 lsls r1, 2 adds r2, r1 adds r2, 0x50 ldrb r0, [r2] cmp r0, 0 beq _080965B0 movs r0, 0 b _080965B2 .align 2, 0 _080965AC: .4byte gUnknown_203B490 _080965B0: movs r0, 0x1 _080965B2: pop {r1} bx r1 thumb_func_end sub_809658C thumb_func_start sub_80965B8 sub_80965B8: push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r4, _080965F0 ldr r1, [r4] lsls r2, r0, 2 adds r2, r0 lsls r2, 2 adds r1, r2 adds r1, 0x50 movs r3, 0 strb r3, [r1] ldr r0, [r4] adds r0, r2 adds r0, 0x54 movs r1, 0x63 strb r1, [r0] ldr r0, [r4] adds r0, r2 adds r0, 0x55 strb r3, [r0] ldr r0, [r4] adds r0, r2 adds r0, 0x61 strb r3, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _080965F0: .4byte gUnknown_203B490 thumb_func_end sub_80965B8 thumb_func_start sub_80965F4 sub_80965F4: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} movs r2, 0 movs r3, 0 ldr r0, _0809660C mov r12, r0 mov r8, r3 movs r4, 0 mov r9, r4 b _08096636 .align 2, 0 _0809660C: .4byte gUnknown_203B490 _08096610: cmp r2, r3 ble _0809662A mov r1, r12 ldr r0, [r1] mov r5, r8 adds r1, r0, r5 adds r0, r4 adds r1, 0x50 adds r0, 0x50 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r6,r7} stm r1!, {r6,r7} _0809662A: adds r4, 0x14 movs r0, 0x14 add r9, r0 adds r2, 0x1 add r8, r0 adds r3, 0x1 _08096636: cmp r2, 0x7 bgt _08096666 mov r1, r12 ldr r0, [r1] adds r0, r4 adds r0, 0x50 ldrb r0, [r0] cmp r0, 0 bne _08096666 ldr r6, _08096694 mov r1, r9 _0809664C: adds r1, 0x14 adds r4, 0x14 movs r5, 0x14 add r9, r5 adds r2, 0x1 cmp r2, 0x7 bgt _08096666 ldr r0, [r6] adds r0, r1 adds r0, 0x50 ldrb r0, [r0] cmp r0, 0 beq _0809664C _08096666: cmp r2, 0x8 bne _08096610 cmp r3, 0x7 bgt _08096688 ldr r4, _08096694 movs r2, 0 lsls r0, r3, 2 adds r0, r3 lsls r1, r0, 2 _08096678: ldr r0, [r4] adds r0, r1 adds r0, 0x50 strb r2, [r0] adds r1, 0x14 adds r3, 0x1 cmp r3, 0x7 ble _08096678 _08096688: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08096694: .4byte gUnknown_203B490 thumb_func_end sub_80965F4 thumb_func_start sub_8096698 sub_8096698: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 movs r1, 0 _080966A6: adds r6, r1, 0x1 mov r10, r6 cmp r6, 0x7 bgt _08096730 ldr r0, _08096748 mov r8, r0 lsls r0, r1, 2 adds r0, r1 lsls r0, 2 mov r9, r0 lsls r0, r6, 2 adds r0, r6 lsls r4, r0, 2 _080966C0: mov r2, r8 ldr r1, [r2] adds r3, r1, r4 adds r5, r3, 0 adds r5, 0x50 ldrb r0, [r5] cmp r0, 0 beq _08096724 add r1, r9 mov r12, r1 mov r0, r12 adds r0, 0x54 adds r1, r3, 0 adds r1, 0x54 ldrb r2, [r0] ldrb r0, [r1] cmp r2, r0 bhi _080966F6 cmp r2, r0 bne _08096724 mov r0, r12 adds r0, 0x55 adds r1, 0x1 ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 bls _08096724 _080966F6: mov r1, sp mov r0, r12 adds r0, 0x50 ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldm r0!, {r3,r7} stm r1!, {r3,r7} mov r1, r12 adds r1, 0x50 adds r0, r5, 0 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r7} stm r1!, {r2,r7} mov r3, r8 ldr r1, [r3] adds r1, r4 adds r1, 0x50 mov r0, sp ldm r0!, {r2,r5,r7} stm r1!, {r2,r5,r7} ldm r0!, {r3,r5} stm r1!, {r3,r5} _08096724: adds r4, 0x14 movs r7, 0x1 add r10, r7 mov r0, r10 cmp r0, 0x7 ble _080966C0 _08096730: adds r1, r6, 0 cmp r1, 0x6 ble _080966A6 add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08096748: .4byte gUnknown_203B490 thumb_func_end sub_8096698 thumb_func_start sub_809674C sub_809674C: push {r4-r7,lr} mov r7, r8 push {r7} movs r0, 0x4 movs r1, 0x8 bl RandomRange mov r8, r0 ldr r3, _08096864 movs r2, 0 movs r1, 0 movs r7, 0x7 _08096764: ldr r0, [r3] adds r0, r1 adds r0, 0x50 strb r2, [r0] adds r1, 0x14 subs r7, 0x1 cmp r7, 0 bge _08096764 movs r7, 0 movs r0, 0xE bl sub_8097318 lsls r0, 24 cmp r0, 0 beq _080967C0 movs r0, 0 bl sub_8096574 adds r5, r0, 0 movs r4, 0x2 strb r4, [r5] movs r0, 0x6 strb r0, [r5, 0x1] movs r0, 0x1 strb r0, [r5, 0x2] movs r0, 0x2A strb r0, [r5, 0x4] movs r0, 0xA strb r0, [r5, 0x5] bl Random ldr r1, _08096868 ands r1, r0 str r1, [r5, 0x8] movs r1, 0 movs r0, 0xC2 lsls r0, 1 strh r0, [r5, 0xC] movs r0, 0x38 strh r0, [r5, 0xE] strb r1, [r5, 0x10] strb r4, [r5, 0x11] movs r0, 0x3A strb r0, [r5, 0x12] strb r1, [r5, 0x13] movs r7, 0x1 _080967C0: movs r0, 0xF bl sub_8097318 lsls r0, 24 cmp r0, 0 beq _0809680A lsls r0, r7, 24 lsrs r0, 24 bl sub_8096574 adds r5, r0, 0 movs r0, 0x3 strb r0, [r5] movs r0, 0x6 strb r0, [r5, 0x1] movs r4, 0x2 strb r4, [r5, 0x2] movs r0, 0x35 strb r0, [r5, 0x4] movs r0, 0xF strb r0, [r5, 0x5] bl Random ldr r1, _08096868 ands r1, r0 str r1, [r5, 0x8] movs r1, 0 movs r0, 0x82 lsls r0, 1 strh r0, [r5, 0xC] strh r0, [r5, 0xE] strb r1, [r5, 0x10] strb r4, [r5, 0x11] movs r0, 0x3A strb r0, [r5, 0x12] strb r1, [r5, 0x13] adds r7, 0x1 _0809680A: movs r0, 0x1C bl sub_8097318 lsls r0, 24 cmp r0, 0 beq _08096854 lsls r0, r7, 24 lsrs r0, 24 bl sub_8096574 adds r5, r0, 0 movs r0, 0x4 strb r0, [r5] movs r0, 0x6 strb r0, [r5, 0x1] movs r0, 0x3 strb r0, [r5, 0x2] movs r0, 0x1A strb r0, [r5, 0x4] movs r0, 0x14 strb r0, [r5, 0x5] bl Random ldr r1, _08096868 ands r1, r0 str r1, [r5, 0x8] movs r1, 0 ldr r0, _0809686C strh r0, [r5, 0xC] strh r0, [r5, 0xE] strb r1, [r5, 0x10] movs r0, 0x2 strb r0, [r5, 0x11] movs r0, 0x3A strb r0, [r5, 0x12] strb r1, [r5, 0x13] adds r7, 0x1 _08096854: lsls r0, r7, 2 adds r0, r7 lsls r0, 2 adds r5, r0, 0 adds r5, 0x50 adds r4, r0, 0 b _08096886 .align 2, 0 _08096864: .4byte gUnknown_203B490 _08096868: .4byte 0x00ffffff _0809686C: .4byte 0x0000014d _08096870: movs r0, 0 movs r1, 0x4 bl RandomRange ldr r1, [r6] adds r1, r4 adds r1, 0x61 strb r0, [r1] adds r5, 0x14 adds r4, 0x14 adds r7, 0x1 _08096886: cmp r7, r8 bgt _0809689A ldr r6, _080968AC ldr r0, [r6] adds r0, r5 bl sub_8095B28 lsls r0, 24 cmp r0, 0 bne _08096870 _0809689A: bl sub_80965F4 bl sub_8096698 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080968AC: .4byte gUnknown_203B490 thumb_func_end sub_809674C thumb_func_start sub_80968B0 sub_80968B0: push {r4,r5,lr} adds r3, r0, 0 movs r4, 0 ldr r0, _08096928 ldr r0, [r0] adds r2, r0, 0 adds r2, 0xF0 _080968BE: ldrb r0, [r2] cmp r0, 0 beq _0809692C ldrb r0, [r3, 0x1] ldrb r1, [r2, 0x1] cmp r0, r1 bne _0809692C ldrb r0, [r3, 0x2] ldrb r5, [r2, 0x2] cmp r0, r5 bne _0809692C ldrb r0, [r3, 0x4] ldrb r1, [r2, 0x4] cmp r0, r1 bne _0809692C ldrb r0, [r3, 0x5] ldrb r5, [r2, 0x5] cmp r0, r5 bne _0809692C ldr r1, [r3, 0x8] ldr r0, [r2, 0x8] cmp r1, r0 bne _0809692C movs r0, 0xC ldrsh r1, [r3, r0] movs r5, 0xC ldrsh r0, [r2, r5] cmp r1, r0 bne _0809692C movs r0, 0xE ldrsh r1, [r3, r0] movs r5, 0xE ldrsh r0, [r2, r5] cmp r1, r0 bne _0809692C ldrb r0, [r3, 0x10] ldrb r1, [r2, 0x10] cmp r0, r1 bne _0809692C ldrb r0, [r3, 0x11] ldrb r5, [r2, 0x11] cmp r0, r5 bne _0809692C ldrb r0, [r3, 0x12] ldrb r1, [r2, 0x12] cmp r0, r1 bne _0809692C ldrb r0, [r3, 0x13] ldrb r5, [r2, 0x13] cmp r0, r5 bne _0809692C movs r0, 0x1 b _08096936 .align 2, 0 _08096928: .4byte gUnknown_203B490 _0809692C: adds r2, 0x14 adds r4, 0x1 cmp r4, 0x7 ble _080968BE movs r0, 0 _08096936: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80968B0 thumb_func_start sub_809693C sub_809693C: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r4, r0, 0 ldrb r0, [r4, 0x4] mov r9, r0 ldrb r0, [r4, 0x5] mov r8, r0 movs r7, 0 adds r0, r4, 0 bl sub_80959C0 lsls r0, 24 cmp r0, 0 bne _08096962 b _0809699A _0809695E: movs r0, 0x1 b _0809699C _08096962: ldrb r0, [r4, 0x1] cmp r0, 0x2 bne _0809696A movs r7, 0x1 _0809696A: movs r6, 0 movs r5, 0xF0 movs r4, 0 _08096970: ldr r0, _080969A8 ldr r1, [r0] adds r0, r1, r4 adds r0, 0xF0 ldrb r0, [r0] cmp r0, 0x6 bne _08096990 adds r0, r1, r5 mov r1, r9 mov r2, r8 adds r3, r7, 0 bl sub_8095E38 lsls r0, 24 cmp r0, 0 bne _0809695E _08096990: adds r5, 0x14 adds r4, 0x14 adds r6, 0x1 cmp r6, 0x7 ble _08096970 _0809699A: movs r0, 0 _0809699C: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080969A8: .4byte gUnknown_203B490 thumb_func_end sub_809693C thumb_func_start sub_80969AC sub_80969AC: push {r4,r5,lr} movs r5, 0 movs r4, 0 _080969B2: lsls r0, r4, 24 lsrs r0, 24 bl sub_8096ACC lsls r0, 24 cmp r0, 0 bne _080969C2 adds r5, 0x1 _080969C2: adds r4, 0x1 cmp r4, 0x7 ble _080969B2 adds r0, r5, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80969AC thumb_func_start sub_80969D0 sub_80969D0: push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 movs r5, 0 movs r4, 0 _080969DA: lsls r0, r4, 24 lsrs r0, 24 bl sub_8096AB4 adds r1, r0, 0 ldrb r0, [r1, 0x4] cmp r0, r6 bne _080969FA ldrb r0, [r1] cmp r0, 0x6 beq _080969F8 cmp r0, 0x8 beq _080969F8 cmp r0, 0x9 bne _080969FA _080969F8: adds r5, 0x1 _080969FA: adds r4, 0x1 cmp r4, 0x7 ble _080969DA adds r0, r5, 0 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80969D0 thumb_func_start sub_8096A08 sub_8096A08: push {r4-r6,lr} sub sp, 0xC adds r6, r1, 0 lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 _08096A14: lsls r0, r4, 24 lsrs r0, 24 bl sub_8096AB4 adds r2, r0, 0 ldrb r0, [r2, 0x4] cmp r0, r5 bne _08096A68 ldrb r0, [r2] cmp r0, 0x6 bne _08096A68 ldrb r0, [r2, 0x1] cmp r0, 0x2 bne _08096A68 ldr r1, _08096A60 ldr r0, [sp, 0x8] ands r0, r1 movs r1, 0x4A orrs r0, r1 ldr r1, _08096A64 ands r0, r1 movs r1, 0x80 lsls r1, 1 orrs r0, r1 str r0, [sp, 0x8] movs r0, 0xC ldrsh r1, [r2, r0] add r0, sp, 0x8 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] adds r0, r6, 0 movs r2, 0 movs r3, 0 bl sub_808CFD0 movs r0, 0x1 b _08096A70 .align 2, 0 _08096A60: .4byte 0xffffff00 _08096A64: .4byte 0xffff00ff _08096A68: adds r4, 0x1 cmp r4, 0x7 ble _08096A14 movs r0, 0 _08096A70: add sp, 0xC pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8096A08 thumb_func_start sub_8096A78 sub_8096A78: push {r4,r5,lr} adds r4, r0, 0 movs r3, 0 ldr r5, _08096AA0 movs r2, 0 _08096A82: ldr r0, [r5] adds r0, r2 adds r1, r0, 0 adds r1, 0xF0 ldrb r0, [r1] cmp r0, 0 bne _08096AA4 adds r0, r4, 0 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2,r3} stm r1!, {r2,r3} movs r0, 0 b _08096AAE .align 2, 0 _08096AA0: .4byte gUnknown_203B490 _08096AA4: adds r2, 0x14 adds r3, 0x1 cmp r3, 0x7 ble _08096A82 movs r0, 0x1 _08096AAE: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8096A78 thumb_func_start sub_8096AB4 sub_8096AB4: lsls r0, 24 lsrs r0, 24 ldr r2, _08096AC8 lsls r1, r0, 2 adds r1, r0 lsls r1, 2 adds r1, 0xF0 ldr r0, [r2] adds r0, r1 bx lr .align 2, 0 _08096AC8: .4byte gUnknown_203B490 thumb_func_end sub_8096AB4 thumb_func_start sub_8096ACC sub_8096ACC: push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _08096AEC ldr r2, [r1] lsls r1, r0, 2 adds r1, r0 lsls r1, 2 adds r2, r1 adds r2, 0xF0 ldrb r0, [r2] cmp r0, 0 beq _08096AF0 movs r0, 0 b _08096AF2 .align 2, 0 _08096AEC: .4byte gUnknown_203B490 _08096AF0: movs r0, 0x1 _08096AF2: pop {r1} bx r1 thumb_func_end sub_8096ACC thumb_func_start sub_8096AF8 sub_8096AF8: push {r4-r6,lr} adds r5, r0, 0 adds r0, r1, 0 adds r4, r2, 0 lsls r0, 24 lsrs r0, 24 lsls r4, 24 lsrs r4, 24 bl sub_8096AB4 adds r3, r0, 0 movs r1, 0 strb r1, [r5] ldrh r0, [r3, 0xC] strh r0, [r5, 0x2] strh r1, [r5, 0x4] ldrb r0, [r3, 0x4] cmp r0, r4 bne _08096B92 ldrb r0, [r3, 0x1] cmp r0, 0x4 bhi _08096B92 lsls r0, 2 ldr r1, _08096B30 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08096B30: .4byte _08096B34 .align 2, 0 _08096B34: .4byte _08096B78 .4byte _08096B84 .4byte _08096B84 .4byte _08096B48 .4byte _08096B78 _08096B48: ldrb r0, [r3] cmp r0, 0x6 bne _08096B92 ldr r0, _08096B74 movs r6, 0x1 ldr r2, [r0] movs r4, 0x13 _08096B56: ldrb r1, [r2] adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _08096B6A ldrb r0, [r2, 0x2] ldrb r1, [r3, 0x10] cmp r0, r1 bne _08096B6A strb r6, [r5] _08096B6A: adds r2, 0x4 subs r4, 0x1 cmp r4, 0 bge _08096B56 b _08096B92 .align 2, 0 _08096B74: .4byte gUnknown_203B460 _08096B78: ldrb r0, [r3] cmp r0, 0x9 bne _08096B92 movs r0, 0x1 strb r0, [r5] b _08096B92 _08096B84: ldrb r0, [r3] cmp r0, 0x9 bne _08096B92 movs r0, 0x1 strb r0, [r5] ldrh r0, [r3, 0xE] strh r0, [r5, 0x4] _08096B92: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8096AF8 thumb_func_start sub_8096B98 sub_8096B98: push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 _08096BA0: lsls r0, r4, 24 lsrs r0, 24 bl sub_8096AB4 adds r1, r0, 0 ldrb r0, [r1] cmp r0, 0x6 bne _08096BC2 ldrb r0, [r1, 0x1] cmp r0, 0x2 bne _08096BC2 ldrb r0, [r1, 0x4] cmp r0, r5 bne _08096BC2 movs r2, 0xE ldrsh r0, [r1, r2] b _08096BCA _08096BC2: adds r4, 0x1 cmp r4, 0x7 ble _08096BA0 movs r0, 0 _08096BCA: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8096B98 thumb_func_start sub_8096BD0 sub_8096BD0: push {r4,r5,lr} ldr r0, _08096C04 ldr r0, [r0] adds r5, r0, 0 adds r5, 0xF0 movs r4, 0 _08096BDC: ldrb r0, [r5] cmp r0, 0x9 bgt _08096BEE cmp r0, 0x7 blt _08096BEE lsls r0, r4, 24 lsrs r0, 24 bl sub_8096C3C _08096BEE: adds r5, 0x14 adds r4, 0x1 cmp r4, 0x7 ble _08096BDC bl sub_8096C80 bl sub_8096D24 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08096C04: .4byte gUnknown_203B490 thumb_func_end sub_8096BD0 thumb_func_start sub_8096C08 sub_8096C08: push {lr} adds r3, r0, 0 ldr r0, _08096C28 ldr r0, [r0] adds r1, r0, 0 adds r1, 0xF0 movs r2, 0 _08096C16: ldrb r0, [r1] cmp r0, 0x4 bls _08096C2C ldrb r0, [r1, 0x2] cmp r0, 0x4 bne _08096C2C strb r2, [r3] movs r0, 0x1 b _08096C36 .align 2, 0 _08096C28: .4byte gUnknown_203B490 _08096C2C: adds r1, 0x14 adds r2, 0x1 cmp r2, 0x7 ble _08096C16 movs r0, 0 _08096C36: pop {r1} bx r1 thumb_func_end sub_8096C08 thumb_func_start sub_8096C3C sub_8096C3C: push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r3, _08096C78 ldr r1, [r3] lsls r2, r0, 2 adds r2, r0 lsls r2, 2 adds r1, r2 adds r1, 0xF0 movs r4, 0 strb r4, [r1] ldr r0, [r3] adds r0, r2 adds r0, 0xF4 movs r1, 0x63 strb r1, [r0] ldr r0, [r3] adds r0, r2 adds r0, 0xF5 strb r4, [r0] ldr r0, [r3] adds r0, r2 ldr r2, _08096C7C adds r1, r0, r2 movs r0, 0x5 strb r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _08096C78: .4byte gUnknown_203B490 _08096C7C: .4byte 0x00000101 thumb_func_end sub_8096C3C thumb_func_start sub_8096C80 sub_8096C80: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} movs r2, 0 movs r3, 0 ldr r0, _08096C98 mov r12, r0 mov r8, r3 movs r4, 0 mov r9, r4 b _08096CC2 .align 2, 0 _08096C98: .4byte gUnknown_203B490 _08096C9C: cmp r2, r3 ble _08096CB6 mov r1, r12 ldr r0, [r1] mov r5, r8 adds r1, r0, r5 adds r0, r4 adds r1, 0xF0 adds r0, 0xF0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r6,r7} stm r1!, {r6,r7} _08096CB6: adds r4, 0x14 movs r0, 0x14 add r9, r0 adds r2, 0x1 add r8, r0 adds r3, 0x1 _08096CC2: cmp r2, 0x7 bgt _08096CF2 mov r1, r12 ldr r0, [r1] adds r0, r4 adds r0, 0xF0 ldrb r0, [r0] cmp r0, 0 bne _08096CF2 ldr r6, _08096D20 mov r1, r9 _08096CD8: adds r1, 0x14 adds r4, 0x14 movs r5, 0x14 add r9, r5 adds r2, 0x1 cmp r2, 0x7 bgt _08096CF2 ldr r0, [r6] adds r0, r1 adds r0, 0xF0 ldrb r0, [r0] cmp r0, 0 beq _08096CD8 _08096CF2: cmp r2, 0x8 bne _08096C9C cmp r3, 0x7 bgt _08096D14 ldr r4, _08096D20 movs r2, 0 lsls r0, r3, 2 adds r0, r3 lsls r1, r0, 2 _08096D04: ldr r0, [r4] adds r0, r1 adds r0, 0xF0 strb r2, [r0] adds r1, 0x14 adds r3, 0x1 cmp r3, 0x7 ble _08096D04 _08096D14: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08096D20: .4byte gUnknown_203B490 thumb_func_end sub_8096C80 thumb_func_start sub_8096D24 sub_8096D24: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x18 movs r1, 0 _08096D32: adds r6, r1, 0x1 mov r10, r6 cmp r6, 0x7 bgt _08096DBC ldr r0, _08096DD4 mov r8, r0 lsls r0, r1, 2 adds r0, r1 lsls r0, 2 mov r9, r0 lsls r0, r6, 2 adds r0, r6 lsls r4, r0, 2 _08096D4C: mov r1, r8 ldr r2, [r1] adds r3, r2, r4 adds r5, r3, 0 adds r5, 0xF0 str r5, [sp, 0x14] ldrb r0, [r5] cmp r0, 0 beq _08096DB0 add r2, r9 mov r12, r2 mov r0, r12 adds r0, 0xF4 adds r1, r3, 0 adds r1, 0xF4 ldrb r2, [r0] ldrb r0, [r1] cmp r2, r0 bhi _08096D84 cmp r2, r0 bne _08096DB0 mov r0, r12 adds r0, 0xF5 adds r1, 0x1 ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 bls _08096DB0 _08096D84: mov r2, r12 adds r2, 0xF0 mov r1, sp adds r0, r2, 0 ldm r0!, {r3,r5,r7} stm r1!, {r3,r5,r7} ldm r0!, {r3,r7} stm r1!, {r3,r7} ldr r0, [sp, 0x14] ldm r0!, {r1,r5,r7} stm r2!, {r1,r5,r7} ldm r0!, {r3,r5} stm r2!, {r3,r5} mov r7, r8 ldr r1, [r7] adds r1, r4 adds r1, 0xF0 mov r0, sp ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r7} stm r1!, {r2,r7} _08096DB0: adds r4, 0x14 movs r3, 0x1 add r10, r3 mov r5, r10 cmp r5, 0x7 ble _08096D4C _08096DBC: adds r1, r6, 0 cmp r1, 0x6 ble _08096D32 add sp, 0x18 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08096DD4: .4byte gUnknown_203B490 thumb_func_end sub_8096D24 thumb_func_start sub_8096DD8 sub_8096DD8: ldr r0, _08096DE4 ldr r0, [r0] movs r1, 0xC8 lsls r1, 1 adds r0, r1 bx lr .align 2, 0 _08096DE4: .4byte gUnknown_203B490 thumb_func_end sub_8096DD8 thumb_func_start sub_8096DE8 sub_8096DE8: ldr r0, _08096DF4 ldr r0, [r0] movs r1, 0xDC lsls r1, 1 adds r0, r1 bx lr .align 2, 0 _08096DF4: .4byte gUnknown_203B490 thumb_func_end sub_8096DE8 thumb_func_start sub_8096DF8 sub_8096DF8: lsls r0, 24 lsrs r0, 24 ldr r1, _08096E10 ldr r1, [r1] movs r2, 0xBC lsls r2, 2 adds r1, r2 adds r1, r0 movs r0, 0x1 strb r0, [r1] bx lr .align 2, 0 _08096E10: .4byte gUnknown_203B490 thumb_func_end sub_8096DF8 thumb_func_start sub_8096E14 sub_8096E14: lsls r0, 24 lsrs r0, 24 ldr r1, _08096E28 ldr r1, [r1] movs r2, 0xBC lsls r2, 2 adds r1, r2 adds r1, r0 ldrb r0, [r1] bx lr .align 2, 0 _08096E28: .4byte gUnknown_203B490 thumb_func_end sub_8096E14 thumb_func_start sub_8096E2C sub_8096E2C: push {lr} movs r3, 0 ldr r0, _08096E70 ldr r1, [r0] movs r2, 0x3 _08096E36: ldrb r0, [r1] cmp r0, 0x1 bne _08096E48 ldrb r0, [r1, 0x5] cmp r3, r0 bgt _08096E48 cmp r0, 0x31 bhi _08096E48 adds r3, r0, 0x1 _08096E48: adds r1, 0x14 subs r2, 0x1 cmp r2, 0 bge _08096E36 adds r2, r3, 0 cmp r2, 0x31 bgt _08096E7A ldr r0, _08096E70 ldr r0, [r0] movs r3, 0xBC lsls r3, 2 adds r1, r0, r3 _08096E60: adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 bne _08096E74 lsls r0, r2, 24 lsrs r0, 24 b _08096E7C .align 2, 0 _08096E70: .4byte gUnknown_203B490 _08096E74: adds r2, 0x1 cmp r2, 0x31 ble _08096E60 _08096E7A: movs r0, 0x38 _08096E7C: pop {r1} bx r1 thumb_func_end sub_8096E2C thumb_func_start sub_8096E80 sub_8096E80: push {lr} lsls r0, 24 lsrs r3, r0, 24 movs r2, 0 ldr r0, _08096E9C ldr r1, [r0] _08096E8C: ldrb r0, [r1] cmp r0, 0x1 bne _08096EA0 ldrb r0, [r1, 0x5] cmp r3, r0 bne _08096EA0 movs r0, 0x1 b _08096EAA .align 2, 0 _08096E9C: .4byte gUnknown_203B490 _08096EA0: adds r1, 0x14 adds r2, 0x1 cmp r2, 0x3 ble _08096E8C movs r0, 0 _08096EAA: pop {r1} bx r1 thumb_func_end sub_8096E80 thumb_func_start sub_8096EB0 sub_8096EB0: ldrb r1, [r0, 0x2] ldrb r2, [r0, 0x1] adds r1, r2 ldrb r3, [r0, 0x4] adds r2, r1, r3 ldrb r1, [r0, 0x5] adds r2, r1 ldr r1, [r0, 0x8] lsls r1, 8 adds r2, r1 movs r3, 0xC ldrsh r1, [r0, r3] lsls r1, 12 adds r2, r1 movs r3, 0xE ldrsh r1, [r0, r3] lsls r1, 16 adds r2, r1 ldrb r1, [r0, 0x10] lsls r1, 24 adds r1, r2, r1 ldrb r3, [r0, 0x11] adds r2, r1, r3 ldrb r1, [r0, 0x12] adds r1, r2, r1 ldrb r0, [r0, 0x13] adds r2, r1, r0 adds r0, r2, 0 bx lr thumb_func_end sub_8096EB0 thumb_func_start sub_8096EEC sub_8096EEC: push {r4-r7,lr} mov r7, r8 push {r7} mov r12, r0 movs r3, 0xF ldr r5, _08096F4C mov r8, r5 movs r4, 0x8C lsls r4, 2 _08096EFE: mov r0, r8 ldr r2, [r0] lsls r1, r3, 1 adds r1, r3 lsls r1, 2 adds r1, r2, r1 subs r3, 0x1 lsls r0, r3, 1 adds r0, r3 lsls r0, 2 adds r2, r0 adds r1, r4 adds r2, r4 ldm r2!, {r0,r6,r7} stm r1!, {r0,r6,r7} cmp r3, 0 bgt _08096EFE ldr r2, [r5] movs r3, 0x8C lsls r3, 2 adds r2, r3 mov r6, r12 ldr r0, [r6, 0x4] ldr r1, [r6, 0x8] str r0, [r2] str r1, [r2, 0x4] mov r0, r12 bl sub_8096EB0 ldr r1, [r5] movs r7, 0x8E lsls r7, 2 adds r1, r7 str r0, [r1] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08096F4C: .4byte gUnknown_203B490 thumb_func_end sub_8096EEC thumb_func_start sub_8096F50 sub_8096F50: push {r4-r7,lr} adds r4, r0, 0 bl sub_8096EB0 mov r12, r0 movs r5, 0 ldr r0, _08096F8C ldr r7, [r0] ldrb r6, [r4, 0x4] movs r3, 0 _08096F64: movs r1, 0x8C lsls r1, 2 adds r0, r3, r1 adds r2, r7, r0 ldrb r0, [r2] cmp r0, r6 bne _08096F90 ldrb r0, [r2, 0x1] ldrb r1, [r4, 0x5] cmp r0, r1 bne _08096F90 ldr r1, [r2, 0x4] ldr r0, [r4, 0x8] cmp r1, r0 bne _08096F90 ldr r0, [r2, 0x8] cmp r0, r12 bne _08096F90 movs r0, 0x1 b _08096F9A .align 2, 0 _08096F8C: .4byte gUnknown_203B490 _08096F90: adds r3, 0xC adds r5, 0x1 cmp r5, 0xF ble _08096F64 movs r0, 0 _08096F9A: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8096F50 thumb_func_start sub_8096FA0 sub_8096FA0: push {r4-r7,lr} sub sp, 0x14 adds r3, r0, 0 adds r2, r1, 0 mov r0, sp adds r1, r3, 0 bl sub_809485C add r7, sp, 0x10 ldr r6, _08097020 movs r5, 0 movs r4, 0x3 _08096FB8: ldr r1, [r6] adds r1, r5 mov r0, sp bl sub_80971EC adds r5, 0x14 subs r4, 0x1 cmp r4, 0 bge _08096FB8 ldr r6, _08097020 movs r5, 0x50 movs r4, 0x7 _08096FD0: ldr r1, [r6] adds r1, r5 mov r0, sp bl sub_80971EC adds r5, 0x14 subs r4, 0x1 cmp r4, 0 bge _08096FD0 ldr r6, _08097020 movs r5, 0xF0 movs r4, 0x7 _08096FE8: ldr r1, [r6] adds r1, r5 mov r0, sp bl sub_80971EC adds r5, 0x14 subs r4, 0x1 cmp r4, 0 bge _08096FE8 movs r4, 0 movs r6, 0x1 ldr r5, _08097020 _08097000: mov r0, sp adds r1, r7, 0 movs r2, 0x1 bl sub_8094924 ldr r1, [sp, 0x10] ands r1, r6 cmp r1, 0 beq _08097024 ldr r0, [r5] movs r1, 0xBC lsls r1, 2 adds r0, r1 adds r0, r4 strb r6, [r0] b _08097030 .align 2, 0 _08097020: .4byte gUnknown_203B490 _08097024: ldr r0, [r5] movs r2, 0xBC lsls r2, 2 adds r0, r2 adds r0, r4 strb r1, [r0] _08097030: adds r4, 0x1 cmp r4, 0x37 ble _08097000 mov r0, sp adds r1, r7, 0 movs r2, 0x1 bl sub_8094924 ldr r1, [sp, 0x10] movs r2, 0x1 ands r1, r2 cmp r1, 0 beq _0809705C ldr r0, _08097058 ldr r0, [r0] movs r1, 0xCA lsls r1, 2 adds r0, r1 strb r2, [r0] b _08097068 .align 2, 0 _08097058: .4byte gUnknown_203B490 _0809705C: ldr r0, _080970D4 ldr r0, [r0] movs r2, 0xCA lsls r2, 2 adds r0, r2 strb r1, [r0] _08097068: ldr r4, _080970D4 ldr r1, [r4] movs r0, 0xC8 lsls r0, 1 adds r1, r0 movs r2, 0xA0 lsls r2, 1 mov r0, sp bl sub_8094924 ldr r1, [r4] movs r2, 0xDC lsls r2, 1 adds r1, r2 movs r2, 0xF0 lsls r2, 2 mov r0, sp bl sub_8094924 adds r6, r4, 0 movs r5, 0x8C lsls r5, 2 movs r4, 0xF _08097096: ldr r1, [r6] adds r1, r5 adds r1, 0x8 mov r0, sp movs r2, 0x20 bl sub_8094924 ldr r1, [r6] adds r1, r5 adds r1, 0x4 mov r0, sp movs r2, 0x18 bl sub_8094924 ldr r1, [r6] adds r1, r5 mov r0, sp bl sub_8090314 adds r5, 0xC subs r4, 0x1 cmp r4, 0 bge _08097096 mov r0, sp bl nullsub_102 ldr r0, [sp, 0x8] add sp, 0x14 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080970D4: .4byte gUnknown_203B490 thumb_func_end sub_8096FA0 thumb_func_start sub_80970D8 sub_80970D8: push {r4-r7,lr} sub sp, 0x14 adds r3, r0, 0 adds r2, r1, 0 mov r0, sp adds r1, r3, 0 bl sub_809486C add r7, sp, 0x10 ldr r6, _080971E8 movs r5, 0 movs r4, 0x3 _080970F0: ldr r1, [r6] adds r1, r5 mov r0, sp bl sub_8097270 adds r5, 0x14 subs r4, 0x1 cmp r4, 0 bge _080970F0 ldr r6, _080971E8 movs r5, 0x50 movs r4, 0x7 _08097108: ldr r1, [r6] adds r1, r5 mov r0, sp bl sub_8097270 adds r5, 0x14 subs r4, 0x1 cmp r4, 0 bge _08097108 ldr r6, _080971E8 movs r5, 0xF0 movs r4, 0x7 _08097120: ldr r1, [r6] adds r1, r5 mov r0, sp bl sub_8097270 adds r5, 0x14 subs r4, 0x1 cmp r4, 0 bge _08097120 movs r4, 0 _08097134: ldr r0, _080971E8 ldr r0, [r0] movs r1, 0xBC lsls r1, 2 adds r0, r1 adds r0, r4 ldrb r0, [r0] cmp r0, 0 beq _0809714A movs r0, 0x1 negs r0, r0 _0809714A: str r0, [sp, 0x10] mov r0, sp adds r1, r7, 0 movs r2, 0x1 bl sub_809488C adds r4, 0x1 cmp r4, 0x37 ble _08097134 ldr r0, _080971E8 ldr r0, [r0] movs r1, 0xCA lsls r1, 2 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _08097170 movs r0, 0x1 negs r0, r0 _08097170: str r0, [sp, 0x10] mov r0, sp adds r1, r7, 0 movs r2, 0x1 bl sub_809488C ldr r4, _080971E8 ldr r1, [r4] movs r0, 0xC8 lsls r0, 1 adds r1, r0 movs r2, 0xA0 lsls r2, 1 mov r0, sp bl sub_809488C ldr r1, [r4] movs r0, 0xDC lsls r0, 1 adds r1, r0 movs r2, 0xF0 lsls r2, 2 mov r0, sp bl sub_809488C adds r6, r4, 0 movs r5, 0x8C lsls r5, 2 movs r4, 0xF _080971AA: ldr r1, [r6] adds r1, r5 adds r1, 0x8 mov r0, sp movs r2, 0x20 bl sub_809488C ldr r1, [r6] adds r1, r5 adds r1, 0x4 mov r0, sp movs r2, 0x18 bl sub_809488C ldr r1, [r6] adds r1, r5 mov r0, sp bl sub_80902F4 adds r5, 0xC subs r4, 0x1 cmp r4, 0 bge _080971AA mov r0, sp bl nullsub_102 ldr r0, [sp, 0x8] add sp, 0x14 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080971E8: .4byte gUnknown_203B490 thumb_func_end sub_80970D8 thumb_func_start sub_80971EC sub_80971EC: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x4 bl sub_8094924 adds r1, r5, 0x1 adds r0, r4, 0 movs r2, 0x3 bl sub_8094924 adds r1, r5, 0x2 adds r0, r4, 0 movs r2, 0x4 bl sub_8094924 adds r1, r5, 0 adds r1, 0xC adds r0, r4, 0 movs r2, 0x9 bl sub_8094924 adds r1, r5, 0 adds r1, 0xE adds r0, r4, 0 movs r2, 0x9 bl sub_8094924 adds r1, r5, 0 adds r1, 0x10 adds r0, r4, 0 movs r2, 0x8 bl sub_8094924 adds r1, r5, 0 adds r1, 0x11 adds r0, r4, 0 movs r2, 0x4 bl sub_8094924 adds r1, r5, 0 adds r1, 0x12 adds r0, r4, 0 movs r2, 0x8 bl sub_8094924 adds r1, r5, 0 adds r1, 0x13 adds r0, r4, 0 movs r2, 0x6 bl sub_8094924 adds r1, r5, 0 adds r1, 0x8 adds r0, r4, 0 movs r2, 0x18 bl sub_8094924 adds r1, r5, 0x4 adds r0, r4, 0 bl sub_8090314 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80971EC thumb_func_start sub_8097270 sub_8097270: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x4 bl sub_809488C adds r1, r5, 0x1 adds r0, r4, 0 movs r2, 0x3 bl sub_809488C adds r1, r5, 0x2 adds r0, r4, 0 movs r2, 0x4 bl sub_809488C adds r1, r5, 0 adds r1, 0xC adds r0, r4, 0 movs r2, 0x9 bl sub_809488C adds r1, r5, 0 adds r1, 0xE adds r0, r4, 0 movs r2, 0x9 bl sub_809488C adds r1, r5, 0 adds r1, 0x10 adds r0, r4, 0 movs r2, 0x8 bl sub_809488C adds r1, r5, 0 adds r1, 0x11 adds r0, r4, 0 movs r2, 0x4 bl sub_809488C adds r1, r5, 0 adds r1, 0x12 adds r0, r4, 0 movs r2, 0x8 bl sub_809488C adds r1, r5, 0 adds r1, 0x13 adds r0, r4, 0 movs r2, 0x6 bl sub_809488C adds r1, r5, 0 adds r1, 0x8 adds r0, r4, 0 movs r2, 0x18 bl sub_809488C adds r1, r5, 0x4 adds r0, r4, 0 bl sub_80902F4 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8097270 thumb_func_start sub_80972F4 sub_80972F4: push {lr} movs r0, 0 movs r1, 0x2B bl sub_80015C0 movs r0, 0 movs r1, 0x2C bl sub_80015C0 movs r0, 0 movs r1, 0x2D bl sub_80015C0 pop {r0} bx r0 thumb_func_end sub_80972F4 thumb_func_start nullsub_128 nullsub_128: bx lr thumb_func_end nullsub_128 thumb_func_start sub_8097318 sub_8097318: push {lr} lsls r0, 16 asrs r0, 16 cmp r0, 0xD bne _08097326 movs r0, 0 b _08097338 _08097326: lsls r2, r0, 16 lsrs r2, 16 movs r0, 0 movs r1, 0x2B bl sub_8001784 cmp r0, 0 beq _08097338 movs r0, 0x1 _08097338: pop {r1} bx r1 thumb_func_end sub_8097318 thumb_func_start sub_809733C sub_809733C: push {r4-r6,lr} lsls r0, 16 asrs r4, r0, 16 lsls r1, 24 lsrs r6, r1, 24 cmp r4, 0xD beq _0809737C lsls r0, r4, 16 lsrs r5, r0, 16 movs r0, 0 movs r1, 0x2C adds r2, r5, 0 bl sub_8001784 cmp r0, 0 bne _0809737C movs r0, 0 movs r1, 0x2B adds r2, r5, 0 adds r3, r6, 0 bl sub_800199C cmp r6, 0 beq _0809737C cmp r4, 0xE blt _0809737C cmp r4, 0xF ble _08097378 cmp r4, 0x1C bne _0809737C _08097378: bl sub_809674C _0809737C: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_809733C thumb_func_start sub_8097384 sub_8097384: push {lr} lsls r0, 16 asrs r0, 16 cmp r0, 0xD bne _08097392 movs r0, 0 b _080973A4 _08097392: lsls r2, r0, 16 lsrs r2, 16 movs r0, 0 movs r1, 0x2C bl sub_8001784 cmp r0, 0 beq _080973A4 movs r0, 0x1 _080973A4: pop {r1} bx r1 thumb_func_end sub_8097384 thumb_func_start sub_80973A8 sub_80973A8: push {r4-r6,lr} lsls r0, 16 asrs r0, 16 lsls r1, 24 lsrs r6, r1, 24 cmp r0, 0xD beq _080973EE lsls r5, r0, 16 cmp r6, 0 beq _080973E2 bl sub_80A26B8 lsls r0, 16 asrs r4, r0, 16 lsrs r2, r5, 16 movs r0, 0 movs r1, 0x2B movs r3, 0 bl sub_800199C movs r0, 0x1 negs r0, r0 cmp r4, r0 beq _080973E2 movs r0, 0 movs r1, 0x12 adds r2, r4, 0 bl sub_80018D8 _080973E2: lsrs r2, r5, 16 movs r0, 0 movs r1, 0x2C adds r3, r6, 0 bl sub_800199C _080973EE: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80973A8 thumb_func_start sub_80973F4 sub_80973F4: push {lr} lsls r0, 16 asrs r0, 16 cmp r0, 0xD bne _08097402 movs r0, 0 b _08097414 _08097402: lsls r2, r0, 16 lsrs r2, 16 movs r0, 0 movs r1, 0x2D bl sub_8001784 cmp r0, 0 beq _08097414 movs r0, 0x1 _08097414: pop {r1} bx r1 thumb_func_end sub_80973F4 thumb_func_start sub_8097418 sub_8097418: push {r4-r7,lr} lsls r0, 16 asrs r5, r0, 16 lsls r1, 24 lsrs r7, r1, 24 cmp r5, 0xD beq _08097470 lsls r6, r5, 16 cmp r7, 0 beq _08097464 lsrs r2, r6, 16 movs r0, 0 movs r1, 0x2C movs r3, 0 bl sub_800199C cmp r5, 0x1E bgt _08097464 lsls r0, r5, 3 ldr r1, _08097478 adds r4, r0, r1 ldrb r0, [r4, 0x4] cmp r0, 0xFF beq _0809744C bl sub_8097FA8 _0809744C: ldrb r0, [r4, 0x5] cmp r0, 0xFF beq _08097456 bl sub_8097FA8 _08097456: cmp r5, 0x9 bne _08097460 movs r0, 0x1F bl sub_8097FA8 _08097460: bl sub_8097FF8 _08097464: lsrs r2, r6, 16 movs r0, 0 movs r1, 0x2D adds r3, r7, 0 bl sub_800199C _08097470: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08097478: .4byte gUnknown_8109994 thumb_func_end sub_8097418 thumb_func_start sub_809747C sub_809747C: push {lr} lsls r0, 16 asrs r0, 16 cmp r0, 0xD beq _08097494 bl sub_80A270C lsls r0, 24 lsrs r0, 24 bl sub_809009C b _08097496 _08097494: ldr r0, _0809749C _08097496: pop {r1} bx r1 .align 2, 0 _0809749C: .4byte gUnknown_8109CA8 thumb_func_end sub_809747C thumb_func_start sub_80974A0 sub_80974A0: push {lr} lsls r0, 16 asrs r0, 16 cmp r0, 0xD beq _080974B8 bl sub_80A270C lsls r0, 24 lsrs r0, 24 bl sub_809009C b _080974BA _080974B8: ldr r0, _080974C0 _080974BA: pop {r1} bx r1 .align 2, 0 _080974C0: .4byte gUnknown_8109CA8 thumb_func_end sub_80974A0 thumb_func_start sub_80974C4 sub_80974C4: push {lr} lsls r0, 16 asrs r0, 16 cmp r0, 0x1E ble _080974D8 ldr r0, _080974D4 b _080974E0 .align 2, 0 _080974D4: .4byte gUnknown_8109CC0 _080974D8: lsls r0, 3 ldr r1, _080974E4 adds r0, r1 ldr r0, [r0] _080974E0: pop {r1} bx r1 .align 2, 0 _080974E4: .4byte gUnknown_8109994 thumb_func_end sub_80974C4 thumb_func_start sub_80974E8 sub_80974E8: push {lr} movs r0, 0 movs r1, 0x2E bl sub_80015C0 movs r0, 0 movs r1, 0x2F bl sub_80015C0 pop {r0} bx r0 thumb_func_end sub_80974E8 thumb_func_start nullsub_208 nullsub_208: bx lr thumb_func_end nullsub_208 thumb_func_start sub_8097504 sub_8097504: push {lr} lsls r0, 16 asrs r0, 16 adds r1, r0, 0 cmp r0, 0x10 bgt _08097568 cmp r0, 0xE bhi _08097580 lsls r0, 2 ldr r1, _08097520 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08097520: .4byte _08097524 .align 2, 0 _08097524: .4byte _08097564 .4byte _08097564 .4byte _08097560 .4byte _08097580 .4byte _08097580 .4byte _08097564 .4byte _08097580 .4byte _08097564 .4byte _08097580 .4byte _08097564 .4byte _08097560 .4byte _08097560 .4byte _08097560 .4byte _08097574 .4byte _08097564 _08097560: movs r0, 0xE b _08097576 _08097564: movs r0, 0xF b _08097576 _08097568: cmp r1, 0x16 bgt _08097584 cmp r1, 0x16 beq _08097584 cmp r1, 0x15 beq _08097584 _08097574: movs r0, 0x6 _08097576: bl sub_80023E4 lsls r0, 24 cmp r0, 0 beq _08097584 _08097580: movs r0, 0x1 b _08097586 _08097584: movs r0, 0 _08097586: pop {r1} bx r1 thumb_func_end sub_8097504 thumb_func_start sub_809758C sub_809758C: push {lr} adds r2, r0, 0 lsls r2, 16 lsrs r2, 16 movs r0, 0 movs r1, 0x2E bl sub_8001784 cmp r0, 0 beq _080975A2 movs r0, 0x1 _080975A2: pop {r1} bx r1 thumb_func_end sub_809758C thumb_func_start sub_80975A8 sub_80975A8: push {lr} adds r2, r0, 0 adds r3, r1, 0 lsls r3, 24 lsrs r3, 24 lsls r2, 16 lsrs r2, 16 movs r0, 0 movs r1, 0x2E bl sub_800199C pop {r0} bx r0 thumb_func_end sub_80975A8 thumb_func_start sub_80975C4 sub_80975C4: push {lr} lsls r0, 16 asrs r0, 16 bl sub_80A2728 lsls r0, 24 lsrs r0, 24 bl sub_809009C pop {r1} bx r1 thumb_func_end sub_80975C4 thumb_func_start sub_80975DC sub_80975DC: push {lr} lsls r0, 16 ldr r1, _08097600 adds r0, r1 lsrs r0, 16 cmp r0, 0x1 bhi _08097610 movs r2, 0x1 negs r2, r2 movs r0, 0x3 movs r1, 0xE bl sub_8001D08 lsls r0, 24 cmp r0, 0 beq _08097608 ldr r0, _08097604 b _08097612 .align 2, 0 _08097600: .4byte 0xffe90000 _08097604: .4byte gUnknown_8109CD4 _08097608: ldr r0, _0809760C b _08097612 .align 2, 0 _0809760C: .4byte gUnknown_8109CE4 _08097610: ldr r0, _08097618 _08097612: pop {r1} bx r1 .align 2, 0 _08097618: .4byte gUnknown_8109CF4 thumb_func_end sub_80975DC thumb_func_start sub_809761C sub_809761C: push {r4,lr} movs r4, 0 _08097620: lsls r0, r4, 16 asrs r0, 16 bl sub_809758C lsls r0, 24 cmp r0, 0 bne _08097632 movs r0, 0 b _0809763A _08097632: adds r4, 0x1 cmp r4, 0x10 ble _08097620 movs r0, 0x1 _0809763A: pop {r4} pop {r1} bx r1 thumb_func_end sub_809761C thumb_func_start sub_8097640 sub_8097640: push {lr} movs r0, 0 movs r1, 0x2E movs r2, 0x1F bl sub_8001784 cmp r0, 0 bne _0809766A bl sub_809761C lsls r0, 24 cmp r0, 0 beq _0809766A movs r0, 0 movs r1, 0x2E movs r2, 0x1F movs r3, 0x1 bl sub_800199C movs r0, 0x1 b _0809766C _0809766A: movs r0, 0 _0809766C: pop {r1} bx r1 thumb_func_end sub_8097640 thumb_func_start sub_8097670 sub_8097670: ldr r1, _08097678 ldr r0, _0809767C str r0, [r1] bx lr .align 2, 0 _08097678: .4byte gUnknown_203B494 _0809767C: .4byte gUnknown_2039778 thumb_func_end sub_8097670 thumb_func_start sub_8097680 sub_8097680: ldr r0, _08097684 bx lr .align 2, 0 _08097684: .4byte gUnknown_2039778 thumb_func_end sub_8097680 thumb_func_start sub_8097688 sub_8097688: ldr r3, _08097698 ldr r2, [r3] ldrb r1, [r0] strb r1, [r2, 0x10] ldr r1, [r3] ldrb r0, [r0, 0x1] strb r0, [r1, 0x11] bx lr .align 2, 0 _08097698: .4byte gUnknown_203B494 thumb_func_end sub_8097688 thumb_func_start sub_809769C sub_809769C: ldr r0, _080976A4 ldr r0, [r0] adds r0, 0x10 bx lr .align 2, 0 _080976A4: .4byte gUnknown_203B494 thumb_func_end sub_809769C thumb_func_start sub_80976A8 sub_80976A8: push {r4,lr} ldr r3, _080976F4 ldr r1, [r3] movs r0, 0 str r0, [r1] strh r0, [r1, 0x14] strh r0, [r1, 0x16] strh r0, [r1, 0x18] adds r2, r1, 0 adds r2, 0xC0 str r0, [r2] str r0, [r1, 0x8] str r0, [r1, 0xC] movs r2, 0 adds r4, r3, 0 movs r3, 0 _080976C8: ldr r0, [r4] lsls r1, r2, 2 adds r0, 0x1C adds r0, r1 str r3, [r0] adds r2, 0x1 cmp r2, 0xD ble _080976C8 movs r2, 0 ldr r4, _080976F4 movs r3, 0 _080976DE: ldr r0, [r4] lsls r1, r2, 2 adds r0, 0x8C adds r0, r1 str r3, [r0] adds r2, 0x1 cmp r2, 0xC ble _080976DE pop {r4} pop {r0} bx r0 .align 2, 0 _080976F4: .4byte gUnknown_203B494 thumb_func_end sub_80976A8 thumb_func_start sub_80976F8 sub_80976F8: lsls r0, 24 lsrs r0, 24 ldr r1, _0809770C ldr r2, [r1] movs r1, 0x1 lsls r1, r0 ldr r0, [r2] orrs r0, r1 str r0, [r2] bx lr .align 2, 0 _0809770C: .4byte gUnknown_203B494 thumb_func_end sub_80976F8 thumb_func_start sub_8097710 sub_8097710: push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _0809772C ldr r2, [r1] movs r1, 0x1 lsls r1, r0 ldr r0, [r2] ands r0, r1 cmp r0, 0 bne _08097730 movs r0, 0 b _08097732 .align 2, 0 _0809772C: .4byte gUnknown_203B494 _08097730: movs r0, 0x1 _08097732: pop {r1} bx r1 thumb_func_end sub_8097710 thumb_func_start sub_8097738 sub_8097738: lsls r0, 24 ldr r1, _08097744 lsrs r0, 22 adds r0, r1 ldr r0, [r0] bx lr .align 2, 0 _08097744: .4byte gUnknown_810B04C thumb_func_end sub_8097738 thumb_func_start sub_8097748 sub_8097748: ldr r0, _08097754 ldr r1, [r0] movs r0, 0 str r0, [r1, 0x4] bx lr .align 2, 0 _08097754: .4byte gUnknown_203B494 thumb_func_end sub_8097748 thumb_func_start sub_8097758 sub_8097758: push {lr} ldr r0, _08097770 ldr r1, [r0] ldr r0, [r1, 0x4] adds r0, 0x1 str r0, [r1, 0x4] ldr r2, _08097774 cmp r0, r2 ble _0809776C str r2, [r1, 0x4] _0809776C: pop {r0} bx r0 .align 2, 0 _08097770: .4byte gUnknown_203B494 _08097774: .4byte 0x0001869f thumb_func_end sub_8097758 thumb_func_start sub_8097778 sub_8097778: ldr r0, _08097780 ldr r0, [r0] ldr r0, [r0, 0x4] bx lr .align 2, 0 _08097780: .4byte gUnknown_203B494 thumb_func_end sub_8097778 thumb_func_start sub_8097784 sub_8097784: ldr r1, _0809778C ldr r1, [r1] str r0, [r1, 0x4] bx lr .align 2, 0 _0809778C: .4byte gUnknown_203B494 thumb_func_end sub_8097784 thumb_func_start sub_8097790 sub_8097790: push {lr} ldr r0, _080977B0 ldr r1, [r0] ldr r0, [r1, 0x8] adds r0, 0x1 str r0, [r1, 0x8] ldr r2, _080977B4 cmp r0, r2 ble _080977A4 str r2, [r1, 0x8] _080977A4: movs r0, 0x8 bl sub_80976F8 pop {r0} bx r0 .align 2, 0 _080977B0: .4byte gUnknown_203B494 _080977B4: .4byte 0x0001869f thumb_func_end sub_8097790 thumb_func_start sub_80977B8 sub_80977B8: ldr r0, _080977C0 ldr r0, [r0] ldr r0, [r0, 0x8] bx lr .align 2, 0 _080977C0: .4byte gUnknown_203B494 thumb_func_end sub_80977B8 thumb_func_start sub_80977C4 sub_80977C4: ldr r1, _080977CC ldr r1, [r1] str r0, [r1, 0x8] bx lr .align 2, 0 _080977CC: .4byte gUnknown_203B494 thumb_func_end sub_80977C4 thumb_func_start sub_80977D0 sub_80977D0: push {lr} ldr r0, _080977F0 ldr r1, [r0] ldr r0, [r1, 0xC] adds r0, 0x1 str r0, [r1, 0xC] ldr r2, _080977F4 cmp r0, r2 ble _080977E4 str r2, [r1, 0xC] _080977E4: movs r0, 0x9 bl sub_80976F8 pop {r0} bx r0 .align 2, 0 _080977F0: .4byte gUnknown_203B494 _080977F4: .4byte 0x0001869f thumb_func_end sub_80977D0 thumb_func_start sub_80977F8 sub_80977F8: ldr r0, _08097800 ldr r0, [r0] ldr r0, [r0, 0xC] bx lr .align 2, 0 _08097800: .4byte gUnknown_203B494 thumb_func_end sub_80977F8 thumb_func_start sub_8097804 sub_8097804: ldr r1, _0809780C ldr r1, [r1] str r0, [r1, 0xC] bx lr .align 2, 0 _0809780C: .4byte gUnknown_203B494 thumb_func_end sub_8097804 thumb_func_start sub_8097810 sub_8097810: push {lr} ldr r0, _08097830 ldr r2, [r0] ldrh r3, [r2, 0x14] movs r0, 0x14 ldrsh r1, [r2, r0] ldr r0, _08097834 cmp r1, r0 bgt _08097826 adds r0, r3, 0x1 strh r0, [r2, 0x14] _08097826: movs r0, 0xB bl sub_80976F8 pop {r0} bx r0 .align 2, 0 _08097830: .4byte gUnknown_203B494 _08097834: .4byte 0x0000270e thumb_func_end sub_8097810 thumb_func_start sub_8097838 sub_8097838: ldr r0, _08097844 ldr r0, [r0] movs r1, 0x14 ldrsh r0, [r0, r1] bx lr .align 2, 0 _08097844: .4byte gUnknown_203B494 thumb_func_end sub_8097838 thumb_func_start sub_8097848 sub_8097848: push {lr} ldr r0, _08097868 ldr r2, [r0] ldrh r3, [r2, 0x16] movs r0, 0x16 ldrsh r1, [r2, r0] ldr r0, _0809786C cmp r1, r0 bgt _0809785E adds r0, r3, 0x1 strh r0, [r2, 0x16] _0809785E: movs r0, 0xA bl sub_80976F8 pop {r0} bx r0 .align 2, 0 _08097868: .4byte gUnknown_203B494 _0809786C: .4byte 0x0000270e thumb_func_end sub_8097848 thumb_func_start sub_8097870 sub_8097870: ldr r0, _0809787C ldr r0, [r0] movs r1, 0x16 ldrsh r0, [r0, r1] bx lr .align 2, 0 _0809787C: .4byte gUnknown_203B494 thumb_func_end sub_8097870 thumb_func_start sub_8097880 sub_8097880: ldr r0, _0809788C ldr r0, [r0] movs r1, 0x18 ldrsh r0, [r0, r1] bx lr .align 2, 0 _0809788C: .4byte gUnknown_203B494 thumb_func_end sub_8097880 thumb_func_start sub_8097890 sub_8097890: push {lr} ldr r0, _080978B0 ldr r0, [r0] adds r2, r0, 0 adds r2, 0xC0 ldr r1, [r2] ldr r0, _080978B4 cmp r1, r0 bgt _080978A6 adds r0, r1, 0x1 str r0, [r2] _080978A6: movs r0, 0xC bl sub_80976F8 pop {r0} bx r0 .align 2, 0 _080978B0: .4byte gUnknown_203B494 _080978B4: .4byte 0x0001869e thumb_func_end sub_8097890 thumb_func_start sub_80978B8 sub_80978B8: ldr r0, _080978C4 ldr r0, [r0] adds r0, 0xC0 movs r1, 0 ldrsh r0, [r0, r1] bx lr .align 2, 0 _080978C4: .4byte gUnknown_203B494 thumb_func_end sub_80978B8 thumb_func_start sub_80978C8 sub_80978C8: push {lr} lsls r0, 16 asrs r0, 16 bl sub_808E858 lsls r0, 16 asrs r3, r0, 16 ldr r0, _080978FC ldr r2, [r0] adds r0, r3, 0 cmp r3, 0 bge _080978E2 adds r0, 0x1F _080978E2: asrs r0, 5 lsls r1, r0, 2 adds r2, 0x54 adds r2, r1 lsls r0, 5 subs r0, r3, r0 movs r1, 0x1 lsls r1, r0 ldr r0, [r2] orrs r0, r1 str r0, [r2] pop {r0} bx r0 .align 2, 0 _080978FC: .4byte gUnknown_203B494 thumb_func_end sub_80978C8 thumb_func_start sub_8097900 sub_8097900: push {lr} lsls r0, 16 asrs r0, 16 bl sub_808E858 lsls r0, 16 asrs r3, r0, 16 ldr r0, _08097938 ldr r2, [r0] adds r0, r3, 0 cmp r3, 0 bge _0809791A adds r0, 0x1F _0809791A: asrs r0, 5 lsls r1, r0, 2 adds r2, 0x1C adds r2, r1 lsls r0, 5 subs r0, r3, r0 movs r1, 0x1 lsls r1, r0 ldr r0, [r2] ands r0, r1 cmp r0, 0 bne _0809793C movs r0, 0 b _0809793E .align 2, 0 _08097938: .4byte gUnknown_203B494 _0809793C: movs r0, 0x1 _0809793E: pop {r1} bx r1 thumb_func_end sub_8097900 thumb_func_start sub_8097944 sub_8097944: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 movs r0, 0x1 str r0, [sp] movs r1, 0x1 str r1, [sp, 0x4] movs r0, 0xD bl sub_8097710 lsls r0, 24 cmp r0, 0 bne _08097974 bl sub_8092614 lsls r0, 24 cmp r0, 0 beq _08097974 movs r0, 0xD bl sub_80976F8 _08097974: movs r4, 0 ldr r0, _08097B5C mov r10, r0 mov r8, r4 _0809797C: ldr r1, _08097B60 ldr r0, [r1] mov r1, r8 adds r2, r1, r0 ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080979F6 movs r0, 0x8 ldrsh r3, [r2, r0] mov r1, r10 ldr r2, [r1] adds r0, r3, 0 cmp r3, 0 bge _0809799E adds r0, 0x1F _0809799E: asrs r0, 5 lsls r1, r0, 2 adds r2, 0x1C adds r2, r1 lsls r0, 5 subs r0, r3, r0 movs r1, 0x1 lsls r1, r0 ldr r0, [r2] orrs r0, r1 str r0, [r2] ldr r0, _08097B60 mov r9, r0 mov r12, r8 movs r7, 0x1 movs r6, 0x2C movs r5, 0x3 _080979C0: mov r1, r9 ldr r0, [r1] add r0, r12 adds r3, r0, r6 ldrb r1, [r3] adds r0, r7, 0 ands r0, r1 cmp r0, 0 beq _080979EE mov r0, r10 ldr r2, [r0] ldrh r3, [r3, 0x2] lsrs r0, r3, 5 lsls r0, 2 adds r2, 0x8C adds r2, r0 movs r0, 0x1F ands r3, r0 adds r1, r7, 0 lsls r1, r3 ldr r0, [r2] orrs r0, r1 str r0, [r2] _080979EE: adds r6, 0x8 subs r5, 0x1 cmp r5, 0 bge _080979C0 _080979F6: movs r1, 0x58 add r8, r1 adds r4, 0x1 movs r0, 0xCE lsls r0, 1 cmp r4, r0 ble _0809797C movs r4, 0 ldr r1, _08097B64 _08097A08: cmp r4, 0 bne _08097A0E b _08097B80 _08097A0E: ldr r0, _08097B68 cmp r4, r0 bne _08097A16 b _08097B80 _08097A16: adds r0, 0x1 cmp r4, r0 bne _08097A1E b _08097B80 _08097A1E: adds r0, 0x1 cmp r4, r0 bne _08097A26 b _08097B80 _08097A26: adds r0, 0x26 cmp r4, r0 bne _08097A2E b _08097B80 _08097A2E: adds r0, 0x1 cmp r4, r0 bne _08097A36 b _08097B80 _08097A36: adds r0, 0x1 cmp r4, r0 bne _08097A3E b _08097B80 _08097A3E: adds r0, 0x1 cmp r4, r0 bne _08097A46 b _08097B80 _08097A46: adds r0, 0x1 cmp r4, r0 bne _08097A4E b _08097B80 _08097A4E: adds r0, 0x1 cmp r4, r0 bne _08097A56 b _08097B80 _08097A56: cmp r4, r1 bne _08097A5C b _08097B80 _08097A5C: ldr r0, _08097B5C ldr r5, [r0] adds r0, r4, 0 cmp r4, 0 bge _08097A68 adds r0, 0x1F _08097A68: asrs r0, 5 lsls r3, r0, 2 adds r1, r5, 0 adds r1, 0x54 adds r1, r3 lsls r0, 5 subs r0, r4, r0 movs r2, 0x1 lsls r2, r0 ldr r0, [r1] ands r0, r2 cmp r0, 0 bne _08097A86 movs r0, 0 str r0, [sp, 0x4] _08097A86: adds r0, r5, 0 adds r0, 0x1C adds r0, r3 ldr r0, [r0] ands r0, r2 cmp r0, 0 beq _08097B7C cmp r4, 0x92 bne _08097A9E movs r0, 0x10 bl sub_80976F8 _08097A9E: cmp r4, 0x91 bne _08097AA8 movs r0, 0x11 bl sub_80976F8 _08097AA8: cmp r4, 0x90 bne _08097AB2 movs r0, 0x12 bl sub_80976F8 _08097AB2: movs r0, 0xCF lsls r0, 1 cmp r4, r0 bne _08097AC0 movs r0, 0x13 bl sub_80976F8 _08097AC0: ldr r0, _08097B6C cmp r4, r0 bne _08097ACC movs r0, 0x14 bl sub_80976F8 _08097ACC: movs r0, 0x86 lsls r0, 1 cmp r4, r0 bne _08097ADA movs r0, 0x15 bl sub_80976F8 _08097ADA: movs r0, 0x87 lsls r0, 1 cmp r4, r0 bne _08097AE8 movs r0, 0x16 bl sub_80976F8 _08097AE8: ldr r0, _08097B70 cmp r4, r0 bne _08097AF4 movs r0, 0x17 bl sub_80976F8 _08097AF4: movs r0, 0xCD lsls r0, 1 cmp r4, r0 bne _08097B02 movs r0, 0x18 bl sub_80976F8 _08097B02: ldr r0, _08097B74 cmp r4, r0 bne _08097B0E movs r0, 0x19 bl sub_80976F8 _08097B0E: movs r0, 0xCE lsls r0, 1 cmp r4, r0 bne _08097B1C movs r0, 0x1A bl sub_80976F8 _08097B1C: movs r0, 0x89 lsls r0, 1 cmp r4, r0 bne _08097B2A movs r0, 0x1B bl sub_80976F8 _08097B2A: movs r0, 0x8A lsls r0, 1 cmp r4, r0 bne _08097B38 movs r0, 0x1C bl sub_80976F8 _08097B38: cmp r4, 0x97 bne _08097B42 movs r0, 0x1D bl sub_80976F8 _08097B42: cmp r4, 0x96 bne _08097B4C movs r0, 0x1E bl sub_80976F8 _08097B4C: ldr r0, _08097B78 cmp r4, r0 bne _08097B80 movs r0, 0x1F bl sub_80976F8 b _08097B80 .align 2, 0 _08097B5C: .4byte gUnknown_203B494 _08097B60: .4byte gUnknown_203B45C _08097B64: .4byte 0x000001a7 _08097B68: .4byte 0x00000179 _08097B6C: .4byte 0x0000010d _08097B70: .4byte 0x00000113 _08097B74: .4byte 0x0000019b _08097B78: .4byte 0x0000019d _08097B7C: movs r1, 0 str r1, [sp] _08097B80: adds r4, 0x1 ldr r1, _08097C0C cmp r4, r1 bgt _08097B8A b _08097A08 _08097B8A: ldr r0, [sp] cmp r0, 0 beq _08097B96 movs r0, 0xF bl sub_80976F8 _08097B96: ldr r1, [sp, 0x4] cmp r1, 0 beq _08097BA2 movs r0, 0xE bl sub_80976F8 _08097BA2: movs r3, 0 movs r4, 0 _08097BA6: cmp r4, 0 beq _08097BE2 ldr r0, _08097C10 cmp r4, r0 beq _08097BE2 adds r0, 0x1 cmp r4, r0 beq _08097BE2 adds r0, 0x1 cmp r4, r0 beq _08097BE2 ldr r0, _08097C14 ldr r2, [r0] adds r0, r4, 0 cmp r4, 0 bge _08097BC8 adds r0, 0x1F _08097BC8: asrs r0, 5 lsls r1, r0, 2 adds r2, 0x8C adds r2, r1 lsls r0, 5 subs r0, r4, r0 movs r1, 0x1 lsls r1, r0 ldr r0, [r2] ands r0, r1 cmp r0, 0 beq _08097BE2 adds r3, 0x1 _08097BE2: adds r4, 0x1 movs r0, 0xCE lsls r0, 1 cmp r4, r0 ble _08097BA6 cmp r3, 0 beq _08097BFC ldr r0, _08097C14 ldr r0, [r0] strh r3, [r0, 0x18] movs r0, 0x7 bl sub_80976F8 _08097BFC: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08097C0C: .4byte 0x000001a7 _08097C10: .4byte 0x00000163 _08097C14: .4byte gUnknown_203B494 thumb_func_end sub_8097944 thumb_func_start sub_8097C18 sub_8097C18: push {r4-r6,lr} adds r5, r0, 0 bl sub_8097944 ldr r4, _08097CBC ldr r1, [r4] adds r1, 0x4 adds r0, r5, 0 movs r2, 0x11 bl sub_809488C ldr r1, [r4] adds r1, 0x8 adds r0, r5, 0 movs r2, 0x11 bl sub_809488C ldr r1, [r4] adds r1, 0xC adds r0, r5, 0 movs r2, 0x11 bl sub_809488C ldr r1, [r4] adds r0, r5, 0 movs r2, 0x20 bl sub_809488C ldr r1, [r4] adds r1, 0x14 adds r0, r5, 0 movs r2, 0xE bl sub_809488C ldr r1, [r4] adds r1, 0x16 adds r0, r5, 0 movs r2, 0xE bl sub_809488C ldr r1, [r4] adds r1, 0x18 adds r0, r5, 0 movs r2, 0x9 bl sub_809488C ldr r1, [r4] adds r1, 0xC0 adds r0, r5, 0 movs r2, 0x11 bl sub_809488C ldr r1, [r4] adds r1, 0x1C movs r6, 0xE0 lsls r6, 1 adds r0, r5, 0 adds r2, r6, 0 bl sub_809488C ldr r1, [r4] adds r1, 0x54 adds r0, r5, 0 adds r2, r6, 0 bl sub_809488C ldr r1, [r4] adds r1, 0x8C movs r2, 0xD0 lsls r2, 1 adds r0, r5, 0 bl sub_809488C ldr r1, [r4] adds r1, 0x10 adds r0, r5, 0 bl sub_80902F4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08097CBC: .4byte gUnknown_203B494 thumb_func_end sub_8097C18 thumb_func_start sub_8097CC0 sub_8097CC0: push {r4-r6,lr} adds r5, r0, 0 ldr r4, _08097D5C ldr r1, [r4] adds r1, 0x4 movs r2, 0x11 bl sub_8094924 ldr r1, [r4] adds r1, 0x8 adds r0, r5, 0 movs r2, 0x11 bl sub_8094924 ldr r1, [r4] adds r1, 0xC adds r0, r5, 0 movs r2, 0x11 bl sub_8094924 ldr r1, [r4] adds r0, r5, 0 movs r2, 0x20 bl sub_8094924 ldr r1, [r4] adds r1, 0x14 adds r0, r5, 0 movs r2, 0xE bl sub_8094924 ldr r1, [r4] adds r1, 0x16 adds r0, r5, 0 movs r2, 0xE bl sub_8094924 ldr r1, [r4] adds r1, 0x18 adds r0, r5, 0 movs r2, 0x9 bl sub_8094924 ldr r1, [r4] adds r1, 0xC0 adds r0, r5, 0 movs r2, 0x11 bl sub_8094924 ldr r1, [r4] adds r1, 0x1C movs r6, 0xE0 lsls r6, 1 adds r0, r5, 0 adds r2, r6, 0 bl sub_8094924 ldr r1, [r4] adds r1, 0x54 adds r0, r5, 0 adds r2, r6, 0 bl sub_8094924 ldr r1, [r4] adds r1, 0x8C movs r2, 0xD0 lsls r2, 1 adds r0, r5, 0 bl sub_8094924 ldr r1, [r4] adds r1, 0x10 adds r0, r5, 0 bl sub_8090314 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08097D5C: .4byte gUnknown_203B494 thumb_func_end sub_8097CC0 thumb_func_start sub_8097D60 sub_8097D60: push {lr} sub sp, 0x10 adds r3, r0, 0 adds r2, r1, 0 mov r0, sp adds r1, r3, 0 bl sub_809486C mov r0, sp bl sub_8094A44 mov r0, sp bl sub_8095044 mov r0, sp bl sub_8097C18 mov r0, sp bl sub_8098248 mov r0, sp bl nullsub_102 ldr r0, [sp, 0x8] add sp, 0x10 pop {r1} bx r1 thumb_func_end sub_8097D60 thumb_func_start sub_8097D98 sub_8097D98: push {lr} sub sp, 0x10 adds r3, r0, 0 adds r2, r1, 0 mov r0, sp adds r1, r3, 0 bl sub_809485C mov r0, sp bl sub_8094B18 mov r0, sp bl sub_8095080 mov r0, sp bl sub_8097CC0 mov r0, sp bl sub_8098308 mov r0, sp bl nullsub_102 ldr r0, [sp, 0x8] add sp, 0x10 pop {r1} bx r1 thumb_func_end sub_8097D98 thumb_func_start sub_8097DD0 sub_8097DD0: push {lr} adds r2, r0, 0 adds r3, r1, 0 ldr r1, [r2] ldr r0, [r3] cmp r1, r0 bne _08097DEA ldr r1, [r2, 0x4] ldr r0, [r3, 0x4] cmp r1, r0 bne _08097DEA movs r0, 0x1 b _08097DEC _08097DEA: movs r0, 0 _08097DEC: pop {r1} bx r1 thumb_func_end sub_8097DD0 thumb_func_start sub_8097DF0 sub_8097DF0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1F8 mov r8, r0 str r1, [sp, 0x1F0] movs r0, 0 mov r9, r0 movs r7, 0 ldr r1, _08097E3C ldr r0, [r1] cmp r0, 0 beq _08097E6E _08097E0E: movs r4, 0 lsls r5, r7, 3 lsls r1, r7, 2 mov r10, r1 adds r6, r7, 0x1 ldr r2, _08097E3C adds r3, r5, r2 add r1, sp, 0x18C _08097E1E: ldr r0, [r3] adds r0, r4 ldrb r2, [r0] cmp r2, 0x23 bne _08097E40 ldrb r0, [r0, 0x1] cmp r0, 0x72 bne _08097E40 strb r2, [r1] adds r1, 0x1 strb r0, [r1] adds r1, 0x1 movs r0, 0 strb r0, [r1] b _08097E50 .align 2, 0 _08097E3C: .4byte gUnknown_810E074 _08097E40: ldr r0, [r3] adds r0, r4 ldrb r0, [r0] strb r0, [r1] adds r1, 0x1 adds r4, 0x1 cmp r4, 0x63 ble _08097E1E _08097E50: add r0, sp, 0x18C bl strlen mov r1, sp add r1, r10 str r0, [r1] adds r7, r6, 0 cmp r6, 0x62 bgt _08097E6E lsls r0, r6, 3 ldr r1, _08097EB4 adds r0, r1 ldr r0, [r0] cmp r0, 0 bne _08097E0E _08097E6E: mov r2, r8 ldrb r0, [r2] cmp r0, 0 beq _08097F2C ldr r3, _08097EB4 _08097E78: cmp r0, 0x23 bne _08097F08 movs r7, 0 adds r1, r3, 0 ldr r0, [r1] cmp r0, 0 beq _08097F20 mov r2, r9 lsls r0, r2, 2 ldr r2, [sp, 0x1F0] adds r0, r2 mov r10, r0 _08097E90: lsls r4, r7, 3 adds r0, r4, r1 ldr r0, [r0] lsls r1, r7, 2 add r1, sp ldr r2, [r1] mov r1, r8 str r3, [sp, 0x1F4] bl sub_800B2D4 lsls r0, 24 adds r5, r4, 0 adds r6, r7, 0x1 ldr r3, [sp, 0x1F4] cmp r0, 0 bne _08097EF0 movs r4, 0 b _08097EBA .align 2, 0 _08097EB4: .4byte gUnknown_810E074 _08097EB8: adds r4, 0x1 _08097EBA: cmp r4, r9 bge _08097ED6 adds r0, r5, r3 lsls r1, r4, 2 ldr r2, [sp, 0x1F0] adds r1, r2 ldr r1, [r1] str r3, [sp, 0x1F4] bl sub_8097DD0 lsls r0, 24 ldr r3, [sp, 0x1F4] cmp r0, 0 beq _08097EB8 _08097ED6: cmp r4, r9 bne _08097EF0 mov r0, r9 cmp r0, 0x3 bgt _08097EF0 adds r0, r5, r3 mov r1, r10 adds r1, 0x4 mov r10, r1 subs r1, 0x4 stm r1!, {r0} movs r2, 0x1 add r9, r2 _08097EF0: adds r7, r6, 0 cmp r6, 0x62 bgt _08097F20 ldr r1, _08097F04 lsls r0, r6, 3 adds r0, r1 ldr r0, [r0] cmp r0, 0 bne _08097E90 b _08097F20 .align 2, 0 _08097F04: .4byte gUnknown_810E074 _08097F08: mov r0, r8 ldrb r1, [r0] adds r0, r1, 0 adds r0, 0x7F lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bls _08097F1C cmp r1, 0x87 bne _08097F20 _08097F1C: movs r1, 0x1 add r8, r1 _08097F20: movs r2, 0x1 add r8, r2 mov r1, r8 ldrb r0, [r1] cmp r0, 0 bne _08097E78 _08097F2C: mov r0, r9 add sp, 0x1F8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8097DF0 thumb_func_start sub_8097F40 sub_8097F40: push {lr} movs r2, 0 ldr r1, _08097F58 adds r0, r1 ldrb r0, [r0] cmp r0, 0x2 bne _08097F50 movs r2, 0x1 _08097F50: adds r0, r2, 0 pop {r1} bx r1 .align 2, 0 _08097F58: .4byte gUnknown_810ACC0 thumb_func_end sub_8097F40 thumb_func_start sub_8097F5C sub_8097F5C: ldr r1, _08097F64 ldr r0, _08097F68 str r0, [r1] bx lr .align 2, 0 _08097F64: .4byte gUnknown_203B498 _08097F68: .4byte gUnknown_2039840 thumb_func_end sub_8097F5C thumb_func_start sub_8097F6C sub_8097F6C: ldr r0, _08097F70 bx lr .align 2, 0 _08097F70: .4byte gUnknown_2039840 thumb_func_end sub_8097F6C thumb_func_start sub_8097F74 sub_8097F74: push {r4,lr} ldr r4, _08097FA0 ldr r0, [r4] movs r1, 0 movs r2, 0x64 bl memset movs r2, 0 ldr r3, _08097FA4 _08097F86: ldr r0, [r4] adds r0, 0x58 adds r0, r2 ldrb r1, [r3, 0x2] strb r1, [r0] adds r3, 0x4 adds r2, 0x1 cmp r2, 0xB ble _08097F86 pop {r4} pop {r0} bx r0 .align 2, 0 _08097FA0: .4byte gUnknown_203B498 _08097FA4: .4byte gUnknown_810AD0C thumb_func_end sub_8097F74 thumb_func_start sub_8097FA8 sub_8097FA8: lsls r0, 24 ldr r1, _08097FCC ldr r3, [r1] lsrs r1, r0, 29 lsls r1, 2 adds r3, 0x48 adds r3, r1 movs r1, 0xF8 lsls r1, 21 ands r1, r0 lsrs r1, 24 movs r2, 0x1 lsls r2, r1 ldr r0, [r3] orrs r0, r2 str r0, [r3] bx lr .align 2, 0 _08097FCC: .4byte gUnknown_203B498 thumb_func_end sub_8097FA8 thumb_func_start sub_8097FD0 sub_8097FD0: lsls r0, 24 ldr r1, _08097FF4 ldr r3, [r1] lsrs r1, r0, 29 lsls r1, 2 adds r3, 0x3C adds r3, r1 movs r1, 0xF8 lsls r1, 21 ands r1, r0 lsrs r1, 24 movs r2, 0x1 lsls r2, r1 ldr r0, [r3] orrs r0, r2 str r0, [r3] bx lr .align 2, 0 _08097FF4: .4byte gUnknown_203B498 thumb_func_end sub_8097FD0 thumb_func_start sub_8097FF8 sub_8097FF8: push {r4-r7,lr} movs r4, 0 ldr r6, _08098040 movs r7, 0x1 _08098000: ldr r5, [r6] adds r0, r4, 0 cmp r4, 0 bge _0809800A adds r0, 0x1F _0809800A: asrs r0, 5 lsls r3, r0, 2 adds r1, r5, 0 adds r1, 0x48 adds r1, r3 lsls r0, 5 subs r0, r4, r0 adds r2, r7, 0 lsls r2, r0 ldr r0, [r1] ands r0, r2 cmp r0, 0 beq _08098030 adds r1, r5, 0 adds r1, 0x3C adds r1, r3 ldr r0, [r1] orrs r0, r2 str r0, [r1] _08098030: adds r4, 0x1 cmp r4, 0x3F ble _08098000 bl sub_8098080 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08098040: .4byte gUnknown_203B498 thumb_func_end sub_8097FF8 thumb_func_start sub_8098044 sub_8098044: push {r4,r5,lr} lsls r0, 24 ldr r1, _0809807C ldr r3, [r1] lsrs r5, r0, 29 lsls r5, 2 adds r4, r3, 0 adds r4, 0x3C adds r4, r5 movs r1, 0xF8 lsls r1, 21 ands r1, r0 lsrs r1, 24 movs r2, 0x1 lsls r2, r1 mvns r2, r2 ldr r0, [r4] ands r0, r2 str r0, [r4] adds r3, 0x48 adds r3, r5 ldr r0, [r3] ands r0, r2 str r0, [r3] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0809807C: .4byte gUnknown_203B498 thumb_func_end sub_8098044 thumb_func_start sub_8098080 sub_8098080: push {r4,lr} movs r2, 0 ldr r4, _080980A0 movs r3, 0 _08098088: ldr r0, [r4] lsls r1, r2, 2 adds r0, 0x48 adds r0, r1 str r3, [r0] adds r2, 0x1 cmp r2, 0x2 ble _08098088 pop {r4} pop {r0} bx r0 .align 2, 0 _080980A0: .4byte gUnknown_203B498 thumb_func_end sub_8098080 thumb_func_start sub_80980A4 sub_80980A4: ldr r0, _080980B0 ldr r2, [r0] ldrb r0, [r2] movs r1, 0x1 strb r1, [r2] bx lr .align 2, 0 _080980B0: .4byte gUnknown_203B498 thumb_func_end sub_80980A4 thumb_func_start sub_80980B4 sub_80980B4: push {lr} lsls r0, 16 asrs r1, r0, 16 adds r3, r1, 0 ldr r0, _080980F8 cmp r1, r0 beq _080980F4 adds r0, 0x1 cmp r1, r0 beq _080980F4 adds r0, 0x1 cmp r1, r0 beq _080980F4 ldr r0, _080980FC ldr r2, [r0] adds r0, r1, 0 cmp r1, 0 bge _080980DA adds r0, 0x1F _080980DA: asrs r0, 5 lsls r1, r0, 2 adds r2, 0x4 adds r2, r1 lsls r0, 5 subs r0, r3, r0 lsls r0, 16 asrs r0, 16 movs r1, 0x1 lsls r1, r0 ldr r0, [r2] orrs r0, r1 str r0, [r2] _080980F4: pop {r0} bx r0 .align 2, 0 _080980F8: .4byte 0x000001a5 _080980FC: .4byte gUnknown_203B498 thumb_func_end sub_80980B4 thumb_func_start sub_8098100 sub_8098100: push {lr} lsls r1, r0, 24 lsrs r3, r1, 24 cmp r3, 0x3F bls _0809810E movs r0, 0 b _0809812C _0809810E: ldr r0, _08098130 ldr r2, [r0] lsrs r0, r1, 29 lsls r0, 2 adds r2, 0x3C adds r2, r0 movs r0, 0x1F ands r0, r3 movs r1, 0x1 lsls r1, r0 ldr r0, [r2] ands r0, r1 cmp r0, 0 beq _0809812C movs r0, 0x1 _0809812C: pop {r1} bx r1 .align 2, 0 _08098130: .4byte gUnknown_203B498 thumb_func_end sub_8098100 thumb_func_start sub_8098134 sub_8098134: push {lr} lsls r0, 16 asrs r1, r0, 16 adds r3, r1, 0 ldr r0, _0809816C ldr r2, [r0] adds r0, r1, 0 cmp r1, 0 bge _08098148 adds r0, 0x1F _08098148: asrs r0, 5 lsls r1, r0, 2 adds r2, 0x4 adds r2, r1 lsls r0, 5 subs r0, r3, r0 lsls r0, 16 asrs r0, 16 movs r1, 0x1 lsls r1, r0 ldr r0, [r2] ands r0, r1 cmp r0, 0 beq _08098166 movs r0, 0x1 _08098166: pop {r1} bx r1 .align 2, 0 _0809816C: .4byte gUnknown_203B498 thumb_func_end sub_8098134 thumb_func_start sub_8098170 sub_8098170: push {lr} adds r3, r0, 0 ldr r0, _0809819C ldr r2, [r0] adds r0, r3, 0 cmp r3, 0 bge _08098180 adds r0, 0x1F _08098180: asrs r0, 5 lsls r1, r0, 2 adds r2, 0x54 adds r2, r1 lsls r0, 5 subs r0, r3, r0 movs r1, 0x1 lsls r1, r0 ldr r0, [r2] orrs r0, r1 str r0, [r2] pop {r0} bx r0 .align 2, 0 _0809819C: .4byte gUnknown_203B498 thumb_func_end sub_8098170 thumb_func_start sub_80981A0 sub_80981A0: push {lr} adds r3, r0, 0 cmp r3, 0x1E ble _080981AC movs r0, 0 b _080981D4 _080981AC: ldr r0, _080981D8 ldr r2, [r0] adds r1, r3, 0 cmp r3, 0 bge _080981B8 adds r1, 0x1F _080981B8: asrs r1, 5 lsls r0, r1, 2 adds r2, 0x54 adds r2, r0 lsls r1, 5 subs r1, r3, r1 movs r0, 0x1 lsls r0, r1 ldr r2, [r2] ands r2, r0 cmp r2, 0 beq _080981D2 movs r2, 0x1 _080981D2: adds r0, r2, 0 _080981D4: pop {r1} bx r1 .align 2, 0 _080981D8: .4byte gUnknown_203B498 thumb_func_end sub_80981A0 thumb_func_start sub_80981DC sub_80981DC: push {r4,r5,lr} lsls r0, 16 asrs r3, r0, 16 movs r1, 0 ldr r4, _080981FC ldr r2, _08098200 _080981E8: movs r5, 0 ldrsh r0, [r2, r5] cmp r0, r3 bne _08098204 ldr r0, [r4] adds r0, 0x58 adds r0, r1 ldrb r0, [r0] b _0809820E .align 2, 0 _080981FC: .4byte gUnknown_203B498 _08098200: .4byte gUnknown_810AD0C _08098204: adds r2, 0x4 adds r1, 0x1 cmp r1, 0xB ble _080981E8 movs r0, 0x1 _0809820E: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80981DC thumb_func_start sub_8098214 sub_8098214: push {r4-r6,lr} lsls r0, 16 asrs r3, r0, 16 movs r1, 0 ldr r5, _08098240 movs r4, 0x1 ldr r2, _08098244 _08098222: movs r6, 0 ldrsh r0, [r2, r6] cmp r0, r3 bne _08098232 ldr r0, [r5] adds r0, 0x58 adds r0, r1 strb r4, [r0] _08098232: adds r2, 0x4 adds r1, 0x1 cmp r1, 0xB ble _08098222 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08098240: .4byte gUnknown_203B498 _08098244: .4byte gUnknown_810AD0C thumb_func_end sub_8098214 thumb_func_start sub_8098248 sub_8098248: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x8 adds r7, r0, 0 mov r5, sp adds r5, 0x3 movs r0, 0xFF strb r0, [r5] add r4, sp, 0x4 movs r0, 0 strb r0, [r4] ldr r0, _08098300 ldr r1, [r0] adds r0, r7, 0 movs r2, 0x1 bl sub_809488C movs r6, 0 mov r9, r5 mov r8, r4 mov r4, sp adds r4, 0x1 mov r5, sp adds r5, 0x2 _0809827C: lsls r0, r6, 16 asrs r0, 16 bl sub_8098134 mov r1, sp strb r0, [r1] adds r0, r7, 0 movs r2, 0x1 bl sub_809488C adds r6, 0x1 ldr r0, _08098304 cmp r6, r0 ble _0809827C movs r6, 0 _0809829A: lsls r0, r6, 24 lsrs r0, 24 bl sub_8098100 strb r0, [r4] adds r0, r7, 0 adds r1, r4, 0 movs r2, 0x1 bl sub_809488C adds r6, 0x1 cmp r6, 0x3F ble _0809829A movs r6, 0 adds r4, r5, 0 _080982B8: adds r0, r6, 0 bl sub_80981A0 strb r0, [r4] adds r0, r7, 0 adds r1, r4, 0 movs r2, 0x1 bl sub_809488C adds r6, 0x1 cmp r6, 0x1E ble _080982B8 movs r6, 0 _080982D2: ldr r0, _08098300 ldr r0, [r0] adds r0, 0x58 adds r0, r6 ldrb r0, [r0] mov r1, r8 cmp r0, 0 beq _080982E4 mov r1, r9 _080982E4: adds r0, r7, 0 movs r2, 0x1 bl sub_809488C adds r6, 0x1 cmp r6, 0xB ble _080982D2 add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08098300: .4byte gUnknown_203B498 _08098304: .4byte 0x000001a7 thumb_func_end sub_8098248 thumb_func_start sub_8098308 sub_8098308: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r6, r0, 0 ldr r4, _080983D0 ldr r0, [r4] movs r1, 0 movs r2, 0x64 bl memset ldr r1, [r4] adds r0, r6, 0 movs r2, 0x1 bl sub_8094924 movs r4, 0 mov r5, sp adds r5, 0x1 mov r7, sp adds r7, 0x2 movs r0, 0x3 add r0, sp mov r8, r0 _08098338: adds r0, r6, 0 mov r1, sp movs r2, 0x1 bl sub_8094924 mov r0, sp ldrb r0, [r0] cmp r0, 0 beq _08098352 lsls r0, r4, 16 asrs r0, 16 bl sub_80980B4 _08098352: adds r4, 0x1 ldr r0, _080983D4 cmp r4, r0 ble _08098338 movs r4, 0 _0809835C: adds r0, r6, 0 adds r1, r5, 0 movs r2, 0x1 bl sub_8094924 ldrb r0, [r5] cmp r0, 0 beq _08098374 lsls r0, r4, 24 lsrs r0, 24 bl sub_8097FA8 _08098374: adds r4, 0x1 cmp r4, 0x3F ble _0809835C movs r4, 0 adds r5, r7, 0 _0809837E: adds r0, r6, 0 adds r1, r5, 0 movs r2, 0x1 bl sub_8094924 ldrb r0, [r5] cmp r0, 0 beq _08098394 adds r0, r4, 0 bl sub_8098170 _08098394: adds r4, 0x1 cmp r4, 0x1E ble _0809837E movs r4, 0 _0809839C: adds r0, r6, 0 mov r1, r8 movs r2, 0x1 bl sub_8094924 ldr r0, _080983D0 ldr r1, [r0] adds r1, 0x58 adds r1, r4 mov r0, sp adds r0, 0x3 ldrb r2, [r0] movs r0, 0x1 ands r0, r2 strb r0, [r1] adds r4, 0x1 cmp r4, 0xB ble _0809839C bl sub_8097FF8 add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080983D0: .4byte gUnknown_203B498 _080983D4: .4byte 0x000001a7 thumb_func_end sub_8098308 thumb_func_start sub_80983D8 sub_80983D8: push {r4,lr} movs r2, 0 ldrsh r3, [r1, r2] movs r4, 0 ldrsh r2, [r0, r4] subs r2, r3, r2 movs r3, 0x2 ldrsh r1, [r1, r3] movs r4, 0x2 ldrsh r0, [r0, r4] subs r1, r0 cmp r2, 0 bne _080983FA cmp r1, 0 bne _080983FA movs r0, 0 b _08098428 _080983FA: cmp r2, 0 ble _08098400 movs r2, 0x1 _08098400: cmp r1, 0 ble _08098406 movs r1, 0x1 _08098406: movs r0, 0x1 negs r0, r0 cmp r2, r0 bgt _08098410 adds r2, r0, 0 _08098410: cmp r1, r0 bgt _08098416 adds r1, r0, 0 _08098416: ldr r3, _08098430 adds r2, 0x1 adds r1, 0x1 lsls r0, r1, 1 adds r0, r1 adds r0, r2 lsls r0, 2 adds r0, r3 ldr r0, [r0] _08098428: pop {r4} pop {r1} bx r1 .align 2, 0 _08098430: .4byte gUnknown_8115E94 thumb_func_end sub_80983D8 thumb_func_start sub_8098434 sub_8098434: push {r4,lr} adds r3, r0, 0 adds r4, r1, 0 movs r0, 0 ldrsh r1, [r3, r0] movs r2, 0 ldrsh r0, [r4, r2] subs r2, r1, r0 cmp r2, 0 bge _0809844A negs r2, r2 _0809844A: movs r0, 0x2 ldrsh r1, [r3, r0] movs r3, 0x2 ldrsh r0, [r4, r3] subs r0, r1, r0 cmp r0, 0 bge _0809845A negs r0, r0 _0809845A: cmp r0, r2 bge _08098460 adds r0, r2, 0 _08098460: pop {r4} pop {r1} bx r1 thumb_func_end sub_8098434 thumb_func_start sub_8098468 sub_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 sub_80A6390 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 sub_80A4BFC 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 sub_80A4BFC _08098850: bl sub_80A59C0 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 sub_80A4BFC movs r0, 0x1E bl sub_8098F44 movs r0, 0x1E bl sub_80118C4 _080988F8: bl sub_80A59C0 bl nullsub_124 bl sub_80AB254 bl sub_80ACA3C bl sub_80AD714 bl nullsub_105 bl sub_809B474 bl sub_80A2380 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 sub_8098468 thumb_func_start sub_8098BDC sub_8098BDC: push {lr} bl sub_809B57C bl sub_80A2380 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 sub_80A59C0 bl nullsub_124 bl sub_80AB254 bl sub_80ACA3C bl sub_80AD714 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 sub_80A4DCC 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 sub_8004D8C 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 gUnknown_202E2B8 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 gUnknown_202E2B8 _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 gUnknown_202E2B8 _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 gUnknown_202E2B8 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 gUnknown_202E2B8 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 gUnknown_202E2B8 _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 gUnknown_202E2B8 _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 sub_80A4BFC _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 sub_800CF0C bl sub_800CF3C _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 sub_80A4BFC _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 gUnknown_20389A4 _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 sub_80A4BFC _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 sub_809D790 sub_809D790: 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 sub_809D790 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 sub_809D790 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 sub_809DA70 sub_809DA70: 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 sub_80A4BFC 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 sub_809DA70 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 sub_80A6390 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 sub_80A4DCC movs r1, 0 ldrsh r0, [r4, r1] bl sub_80AD880 movs r2, 0 ldrsh r0, [r4, r2] movs r1, 0 movs r2, 0 bl sub_80A791C 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 sub_80A6390 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 sub_80A50C8 movs r3, 0 ldrsh r0, [r5, r3] bl sub_80AD880 movs r4, 0 ldrsh r0, [r5, r4] movs r1, 0 movs r2, 0 bl sub_80A791C movs r1, 0 ldrsh r0, [r5, r1] _0809F2A0: movs r1, 0 movs r2, 0 bl sub_80ABBF0 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 sub_80A5F50 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 sub_80A791C movs r2, 0 ldrsh r0, [r4, r2] adds r1, r6, 0 adds r2, r5, 0 bl sub_80ABBF0 movs r3, 0 ldrsh r0, [r4, r3] adds r1, r6, 0 adds r2, r5, 0 bl sub_80ACC2C 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 sub_80A791C 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 sub_80ABBF0 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 sub_80ACC2C 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 sub_80ADA24 bl _0809EAE0 .align 2, 0 _0809F3DC: .4byte gUnknown_2039A32 _0809F3E0: adds r0, r6, 0 adds r1, r5, 0 bl sub_80A7988 adds r0, r6, 0 adds r1, r5, 0 bl sub_80ABC5C adds r0, r6, 0 adds r1, r5, 0 bl sub_80ACC98 b _0809F41E _0809F3FA: adds r0, r6, 0 adds r1, r5, 0 bl sub_80A7988 bl _0809EAE0 _0809F406: adds r0, r6, 0 adds r1, r5, 0 bl sub_80ABC5C bl _0809EAE0 _0809F412: adds r0, r6, 0 adds r1, r5, 0 bl sub_80ACC98 bl _0809EAE0 _0809F41E: adds r0, r6, 0 adds r1, r5, 0 bl sub_80ADA90 bl _0809EAE0 _0809F42A: bl sub_80A79FC bl _0809EAE0 _0809F432: bl sub_80ABCCC bl _0809EAE0 _0809F43A: bl sub_80ACD08 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 sub_80ABD88 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 sub_80ACDC4 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 sub_80A4BFC 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 sub_80A4C50 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 sub_80A4BFC 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 sub_80A88D8 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 sub_80AC2BC 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 sub_80AD1D4 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 sub_80A89D0 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 sub_80022E8 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 sub_8002260 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 sub_80A4B70 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 sub_80A4CC4 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 sub_80A145C sub_80A145C: 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 sub_809D790 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 sub_809DA70 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 sub_80A145C 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 gUnknown_202E2B8 _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 gUnknown_202E2B8 _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 sub_80ACDC4 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 sub_80A6A90 b _080A236A _080A2346: movs r0, 0 bl sub_80A6C88 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 sub_80A2380 sub_80A2380: 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 sub_80A2380 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 sub_80022E8 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 sub_80022E8 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 sub_80022E8 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 thumb_func_start sub_80A26CC sub_80A26CC: lsls r0, 16 movs r1, 0xDC lsls r1, 14 adds r0, r1 asrs r0, 16 bx lr thumb_func_end sub_80A26CC thumb_func_start sub_80A26D8 sub_80A26D8: push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 movs r5, 0 _080A26E0: lsls r0, r5, 16 asrs r4, r0, 16 adds r0, r4, 0 bl sub_80A2608 adds r1, r0, 0 ldrb r0, [r1, 0x11] cmp r0, 0 beq _080A26FC ldrb r0, [r1, 0xC] cmp r0, r6 bne _080A26FC adds r0, r4, 0 b _080A2706 _080A26FC: adds r5, 0x1 cmp r5, 0x52 ble _080A26E0 movs r0, 0x1 negs r0, r0 _080A2706: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80A26D8 thumb_func_start sub_80A270C sub_80A270C: push {lr} lsls r0, 16 ldr r1, _080A2724 asrs r0, 15 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] bl sub_80A2608 ldrb r0, [r0, 0xC] pop {r1} bx r1 .align 2, 0 _080A2724: .4byte gUnknown_8116F9A thumb_func_end sub_80A270C thumb_func_start sub_80A2728 sub_80A2728: push {lr} lsls r0, 16 movs r1, 0xDC lsls r1, 14 adds r0, r1 asrs r0, 16 bl sub_80A2608 ldrb r0, [r0, 0xC] pop {r1} bx r1 thumb_func_end sub_80A2728 thumb_func_start sub_80A2740 sub_80A2740: push {lr} lsls r0, 16 asrs r0, 16 bl sub_80A2608 ldrb r0, [r0, 0xC] pop {r1} bx r1 thumb_func_end sub_80A2740 thumb_func_start sub_80A2750 sub_80A2750: push {r4,lr} lsls r0, 16 asrs r1, r0, 16 adds r2, r1, 0 cmp r1, 0x50 bne _080A2760 movs r0, 0x3 b _080A27C4 _080A2760: cmp r1, 0x51 beq _080A27BE cmp r1, 0x52 beq _080A2780 adds r0, r1, 0 subs r0, 0x28 lsls r0, 16 lsrs r0, 16 cmp r0, 0xE bls _080A27BE adds r0, r1, 0 subs r0, 0x37 lsls r0, 16 lsrs r0, 16 cmp r0, 0x18 bhi _080A2784 _080A2780: movs r0, 0x4 b _080A27C4 _080A2784: adds r0, r2, 0 bl sub_80A2608 adds r4, r0, 0 movs r0, 0xE ldrsh r1, [r4, r0] movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _080A27C2 movs r0, 0x5 bl sub_80023E4 lsls r0, 24 cmp r0, 0 bne _080A27C2 movs r1, 0xE ldrsh r0, [r4, r1] bl sub_80973F4 lsls r0, 24 cmp r0, 0 beq _080A27C2 movs r0, 0x1 bl sub_80023E4 lsls r0, 24 cmp r0, 0 beq _080A27C2 _080A27BE: movs r0, 0x2 b _080A27C4 _080A27C2: movs r0, 0x1 _080A27C4: pop {r4} pop {r1} bx r1 thumb_func_end sub_80A2750 thumb_func_start sub_80A27CC sub_80A27CC: push {r4,r5,lr} lsls r0, 16 asrs r4, r0, 16 adds r5, r4, 0 adds r0, r4, 0 bl sub_80A2620 movs r2, 0 ldrsh r1, [r0, r2] movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _080A281A movs r0, 0x5 bl sub_80023E4 lsls r0, 24 cmp r0, 0 bne _080A281A adds r0, r4, 0 bl sub_8097384 lsls r0, 24 cmp r0, 0 bne _080A2816 movs r0, 0x1 bl sub_80023E4 lsls r0, 24 cmp r0, 0 beq _080A281A adds r0, r5, 0 bl sub_80973F4 lsls r0, 24 cmp r0, 0 beq _080A281A _080A2816: movs r0, 0x1 b _080A281C _080A281A: movs r0, 0 _080A281C: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80A27CC thumb_func_start sub_80A2824 sub_80A2824: push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 movs r0, 0x5 bl sub_80023E4 lsls r0, 24 cmp r0, 0 bne _080A28AC movs r0, 0x1 bl sub_80023E4 lsls r0, 24 cmp r0, 0 beq _080A2880 movs r5, 0 _080A2844: lsls r0, r5, 16 asrs r4, r0, 16 adds r0, r4, 0 bl sub_80A2620 adds r1, r0, 0 ldrb r0, [r1, 0x11] cmp r0, 0 beq _080A2874 ldrb r0, [r1, 0xC] cmp r0, r6 bne _080A2874 adds r0, r4, 0 bl sub_8097384 lsls r0, 24 cmp r0, 0 bne _080A287C adds r0, r4, 0 bl sub_80973F4 lsls r0, 24 cmp r0, 0 bne _080A287C _080A2874: adds r5, 0x1 cmp r5, 0x2D ble _080A2844 b _080A28AC _080A287C: movs r0, 0x1 b _080A28AE _080A2880: movs r5, 0 _080A2882: lsls r0, r5, 16 asrs r4, r0, 16 adds r0, r4, 0 bl sub_80A2620 adds r1, r0, 0 ldrb r0, [r1, 0x11] cmp r0, 0 beq _080A28A6 ldrb r0, [r1, 0xC] cmp r0, r6 bne _080A28A6 adds r0, r4, 0 bl sub_8097384 lsls r0, 24 cmp r0, 0 bne _080A287C _080A28A6: adds r5, 0x1 cmp r5, 0x2D ble _080A2882 _080A28AC: movs r0, 0 _080A28AE: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80A2824 thumb_func_start sub_80A28B4 sub_80A28B4: push {r4,lr} lsls r0, 16 asrs r4, r0, 16 adds r0, r4, 0 bl sub_80A2620 movs r2, 0 ldrsh r1, [r0, r2] movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _080A28E8 adds r0, r4, 0 bl sub_8097384 lsls r0, 24 cmp r0, 0 bne _080A28E4 adds r0, r4, 0 bl sub_80973F4 lsls r0, 24 cmp r0, 0 beq _080A28E8 _080A28E4: movs r0, 0x1 b _080A28EA _080A28E8: movs r0, 0 _080A28EA: pop {r4} pop {r1} bx r1 thumb_func_end sub_80A28B4 thumb_func_start sub_80A28F0 sub_80A28F0: push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 movs r5, 0 _080A28F8: lsls r0, r5, 16 asrs r4, r0, 16 adds r0, r4, 0 bl sub_80A2620 adds r1, r0, 0 ldrb r0, [r1, 0x11] cmp r0, 0 beq _080A292C ldrb r0, [r1, 0xC] cmp r0, r6 bne _080A292C adds r0, r4, 0 bl sub_8097384 lsls r0, 24 cmp r0, 0 bne _080A2928 adds r0, r4, 0 bl sub_80973F4 lsls r0, 24 cmp r0, 0 beq _080A292C _080A2928: movs r0, 0x1 b _080A2934 _080A292C: adds r5, 0x1 cmp r5, 0x2D ble _080A28F8 movs r0, 0 _080A2934: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80A28F0 thumb_func_start sub_80A293C sub_80A293C: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x40 mov r8, r0 movs r7, 0 movs r1, 0 mov r0, sp adds r0, 0x3E _080A294E: strb r1, [r0] subs r0, 0x1 cmp r0, sp bge _080A294E movs r5, 0 _080A2958: lsls r0, r5, 16 asrs r4, r0, 16 adds r0, r4, 0 bl sub_80A2620 adds r6, r0, 0 ldrb r0, [r6, 0x11] cmp r0, 0 beq _080A2980 adds r0, r4, 0 bl sub_8097384 lsls r0, 24 cmp r0, 0 beq _080A2980 ldrb r0, [r6, 0xC] mov r2, sp adds r1, r2, r0 movs r0, 0x1 strb r0, [r1] _080A2980: adds r5, 0x1 cmp r5, 0x2D ble _080A2958 movs r5, 0 _080A2988: mov r1, sp adds r0, r1, r5 ldrb r0, [r0] cmp r0, 0 beq _080A299A mov r2, r8 adds r0, r2, r7 strb r5, [r0] adds r7, 0x1 _080A299A: adds r5, 0x1 cmp r5, 0x3E ble _080A2988 adds r0, r7, 0 add sp, 0x40 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80A293C thumb_func_start sub_80A29B0 sub_80A29B0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x48 mov r8, r0 movs r7, 0 movs r0, 0x2B add r0, sp mov r9, r0 add r1, sp, 0x2C mov r10, r1 mov r2, sp adds r2, 0x2D str r2, [sp, 0x40] mov r0, sp adds r0, 0x2E str r0, [sp, 0x44] movs r1, 0 adds r0, 0x10 _080A29DA: strb r1, [r0] subs r0, 0x1 cmp r0, sp bge _080A29DA movs r0, 0x1 bl sub_80023E4 lsls r0, 24 cmp r0, 0 beq _080A2A1E movs r5, 0 _080A29F0: lsls r0, r5, 16 asrs r4, r0, 16 adds r0, r4, 0 bl sub_80A2620 adds r6, r0, 0 ldrb r0, [r6, 0x11] cmp r0, 0 beq _080A2A18 adds r0, r4, 0 bl sub_80973F4 lsls r0, 24 cmp r0, 0 beq _080A2A18 ldrb r0, [r6, 0xC] mov r2, sp adds r1, r2, r0 movs r0, 0x1 strb r0, [r1] _080A2A18: adds r5, 0x1 cmp r5, 0x2D ble _080A29F0 _080A2A1E: movs r0, 0 mov r1, r9 strb r0, [r1] mov r2, r10 strb r0, [r2] ldr r1, [sp, 0x40] strb r0, [r1] ldr r2, [sp, 0x44] strb r0, [r2] movs r5, 0 _080A2A32: mov r1, sp adds r0, r1, r5 ldrb r0, [r0] cmp r0, 0 beq _080A2A44 mov r2, r8 adds r0, r2, r7 strb r5, [r0] adds r7, 0x1 _080A2A44: adds r5, 0x1 cmp r5, 0x3E ble _080A2A32 adds r0, r7, 0 add sp, 0x48 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80A29B0 thumb_func_start sub_80A2A5C sub_80A2A5C: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x40 mov r8, r0 movs r7, 0 movs r1, 0 mov r0, sp adds r0, 0x3E _080A2A6E: strb r1, [r0] subs r0, 0x1 cmp r0, sp bge _080A2A6E movs r0, 0x1 bl sub_80023E4 lsls r0, 24 cmp r0, 0 beq _080A2AC0 movs r6, 0 _080A2A84: lsls r0, r6, 16 asrs r4, r0, 16 adds r0, r4, 0 bl sub_80A2620 adds r5, r0, 0 ldrb r0, [r5, 0x11] cmp r0, 0 beq _080A2AB8 adds r0, r4, 0 bl sub_8097384 lsls r0, 24 cmp r0, 0 bne _080A2AAE adds r0, r4, 0 bl sub_80973F4 lsls r0, 24 cmp r0, 0 beq _080A2AB8 _080A2AAE: ldrb r0, [r5, 0xC] mov r2, sp adds r1, r2, r0 movs r0, 0x1 strb r0, [r1] _080A2AB8: adds r6, 0x1 cmp r6, 0x2D ble _080A2A84 b _080A2AF0 _080A2AC0: movs r6, 0 _080A2AC2: lsls r0, r6, 16 asrs r4, r0, 16 adds r0, r4, 0 bl sub_80A2620 adds r5, r0, 0 ldrb r0, [r5, 0x11] cmp r0, 0 beq _080A2AEA adds r0, r4, 0 bl sub_8097384 lsls r0, 24 cmp r0, 0 beq _080A2AEA ldrb r0, [r5, 0xC] mov r2, sp adds r1, r2, r0 movs r0, 0x1 strb r0, [r1] _080A2AEA: adds r6, 0x1 cmp r6, 0x2D ble _080A2AC2 _080A2AF0: movs r6, 0 _080A2AF2: mov r1, sp adds r0, r1, r6 ldrb r0, [r0] cmp r0, 0 beq _080A2B04 mov r2, r8 adds r0, r2, r7 strb r6, [r0] adds r7, 0x1 _080A2B04: adds r6, 0x1 cmp r6, 0x3E ble _080A2AF2 adds r0, r7, 0 add sp, 0x40 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80A2A5C thumb_func_start sub_80A2B18 sub_80A2B18: lsls r0, 16 ldr r1, _080A2B24 asrs r0, 14 adds r0, r1 ldr r0, [r0] bx lr .align 2, 0 _080A2B24: .4byte gUnknown_8117000 thumb_func_end sub_80A2B18 thumb_func_start sub_80A2B28 sub_80A2B28: 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_80A2B28 thumb_func_start sub_80A2B40 sub_80A2B40: push {r4-r6,lr} adds r5, r0, 0 ldr r2, _080A2BFC adds r0, r5, r2 ldm r1!, {r2-r4} stm r0!, {r2-r4} ldm r1!, {r2-r4} stm r0!, {r2-r4} ldr r3, _080A2C00 adds r0, r5, r3 movs r4, 0 ldrsh r1, [r0, r4] lsls r0, r1, 3 adds r0, r1 lsls r0, 1 movs r1, 0x6 bl MemoryAlloc movs r2, 0xA9 lsls r2, 3 adds r1, r5, r2 str r0, [r1] movs r6, 0 movs r3, 0xA7 lsls r3, 3 adds r0, r5, r3 movs r4, 0 ldrsh r0, [r0, r4] cmp r6, r0 bge _080A2BC0 _080A2B7C: lsls r4, r6, 2 ldr r0, _080A2C04 adds r2, r5, r0 adds r2, r4 ldr r1, _080A2C08 adds r0, r5, r1 movs r3, 0 ldrsh r0, [r0, r3] adds r1, r6, 0x2 adds r0, r1 lsls r0, 11 ldr r1, _080A2C0C adds r0, r1 str r0, [r2] ldr r1, _080A2C10 adds r0, r5, r1 movs r2, 0 ldrsh r0, [r0, r2] lsls r0, 7 movs r1, 0x6 bl MemoryAlloc ldr r3, _080A2C14 adds r1, r5, r3 adds r1, r4 str r0, [r1] adds r6, 0x1 movs r4, 0xA7 lsls r4, 3 adds r0, r5, r4 movs r1, 0 ldrsh r0, [r0, r1] cmp r6, r0 blt _080A2B7C _080A2BC0: cmp r6, 0x1 bgt _080A2BD8 movs r1, 0 lsls r0, r6, 2 ldr r2, _080A2C14 adds r0, r2 adds r0, r5 _080A2BCE: str r1, [r0, 0x8] stm r0!, {r1} adds r6, 0x1 cmp r6, 0x1 ble _080A2BCE _080A2BD8: movs r3, 0xA8 lsls r3, 3 adds r0, r5, r3 ldr r1, [r0] cmp r1, 0 beq _080A2C20 ldr r4, _080A2C18 adds r0, r5, r4 movs r1, 0 ldrsh r0, [r0, r1] lsls r0, 8 movs r1, 0x6 bl MemoryAlloc ldr r2, _080A2C1C adds r1, r5, r2 str r0, [r1] b _080A2C26 .align 2, 0 _080A2BFC: .4byte 0x0000052c _080A2C00: .4byte 0x00000534 _080A2C04: .4byte 0x00000554 _080A2C08: .4byte 0x00000536 _080A2C0C: .4byte gUnknown_202B038 _080A2C10: .4byte 0x0000053c _080A2C14: .4byte 0x0000054c _080A2C18: .4byte 0x0000053a _080A2C1C: .4byte 0x00000544 _080A2C20: ldr r3, _080A2CF0 adds r0, r5, r3 str r1, [r0] _080A2C26: movs r4, 0x86 lsls r4, 3 adds r0, r5, r4 movs r1, 0 str r1, [r0] ldr r2, _080A2CF4 adds r0, r5, r2 str r1, [r0] movs r3, 0x87 lsls r3, 3 adds r0, r5, r3 str r1, [r0] adds r4, 0xC adds r0, r5, r4 str r1, [r0] adds r2, 0xC adds r0, r5, r2 str r1, [r0] adds r3, 0xF2 adds r0, r5, r3 strb r1, [r0] adds r4, 0x8 adds r2, r5, r4 ldr r0, _080A2CF8 strh r0, [r2] movs r2, 0x8D lsls r2, 3 adds r0, r5, r2 str r1, [r0] subs r3, 0xE2 adds r0, r5, r3 strb r1, [r0] adds r4, 0x5 adds r0, r5, r4 strb r1, [r0] subs r2, 0x1E adds r0, r5, r2 strb r1, [r0] adds r3, 0x3 adds r0, r5, r3 strb r1, [r0] adds r4, 0x3 adds r0, r5, r4 strb r1, [r0] adds r2, 0x3 adds r0, r5, r2 strb r1, [r0] adds r2, r5, 0 adds r3, 0x21 adds r0, r5, r3 str r1, [r0] adds r4, 0x24 adds r0, r5, r4 strb r1, [r0] adds r3, 0x5 adds r0, r5, r3 strb r1, [r0] movs r0, 0 movs r1, 0xD _080A2C9C: strh r0, [r2] strh r0, [r2, 0x2] str r0, [r2, 0x8] str r0, [r2, 0x4] subs r1, 0x1 adds r2, 0x10 cmp r1, 0 bge _080A2C9C movs r1, 0 movs r4, 0xF8 lsls r4, 2 adds r0, r5, r4 movs r2, 0x1 _080A2CB6: strb r1, [r0] strb r1, [r0, 0x1] strh r1, [r0, 0x2] strh r1, [r0, 0x4] str r1, [r0, 0x8] str r1, [r0, 0xC] str r1, [r0, 0x14] str r1, [r0, 0x10] str r1, [r0, 0x1C] str r1, [r0, 0x18] str r1, [r0, 0x20] str r1, [r0, 0x24] adds r0, 0x28 subs r2, 0x1 cmp r2, 0 bge _080A2CB6 movs r4, 0 _080A2CD8: adds r0, r5, 0 adds r1, r4, 0 ldr r2, _080A2CFC bl sub_80A456C adds r4, 0x1 cmp r4, 0x1 ble _080A2CD8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080A2CF0: .4byte 0x00000544 _080A2CF4: .4byte 0x00000434 _080A2CF8: .4byte 0x0000ffff _080A2CFC: .4byte gUnknown_81172B8 thumb_func_end sub_80A2B40 thumb_func_start sub_80A2D00 sub_80A2D00: push {r4-r7,lr} adds r6, r0, 0 bl sub_80A2DD4 ldr r0, _080A2D5C adds r4, r6, r0 ldr r0, [r4] cmp r0, 0 beq _080A2D1A bl MemoryFree movs r0, 0 str r0, [r4] _080A2D1A: movs r1, 0xA9 lsls r1, 3 adds r4, r6, r1 ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] movs r5, 0 movs r7, 0 _080A2D2E: lsls r2, r5, 2 ldr r1, _080A2D60 adds r0, r6, r1 adds r1, r0, r2 ldr r0, [r1] cmp r0, 0 beq _080A2D3E str r7, [r1] _080A2D3E: ldr r1, _080A2D64 adds r0, r6, r1 adds r4, r0, r2 ldr r0, [r4] cmp r0, 0 beq _080A2D50 bl MemoryFree str r7, [r4] _080A2D50: adds r5, 0x1 cmp r5, 0x1 ble _080A2D2E pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080A2D5C: .4byte 0x00000544 _080A2D60: .4byte 0x00000554 _080A2D64: .4byte 0x0000054c thumb_func_end sub_80A2D00 thumb_func_start sub_80A2D68 sub_80A2D68: push {r4,lr} ldr r1, _080A2D84 adds r4, r0, r1 ldr r0, [r4] cmp r0, 0 beq _080A2D7C bl MemoryFree movs r0, 0 str r0, [r4] _080A2D7C: pop {r4} pop {r0} bx r0 .align 2, 0 _080A2D84: .4byte 0x00000544 thumb_func_end sub_80A2D68 thumb_func_start sub_80A2D88 sub_80A2D88: push {r4-r7,lr} adds r6, r0, 0 movs r0, 0xA8 lsls r0, 3 adds r7, r6, r0 ldr r0, [r7] cmp r0, 0 beq _080A2DC6 movs r1, 0x89 lsls r1, 3 adds r5, r6, r1 ldr r2, _080A2DCC adds r4, r6, r2 movs r1, 0 ldrsh r0, [r4, r1] lsls r0, 8 movs r1, 0x6 bl MemoryAlloc ldr r2, _080A2DD0 adds r1, r6, r2 str r0, [r1] subs r2, 0xDC adds r1, r6, r2 ldr r1, [r1] movs r2, 0 ldrsh r3, [r4, r2] ldr r4, [r7] adds r2, r5, 0 bl _call_via_r4 _080A2DC6: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080A2DCC: .4byte 0x0000053a _080A2DD0: .4byte 0x00000544 thumb_func_end sub_80A2D88 thumb_func_start sub_80A2DD4 sub_80A2DD4: push {r4-r6,lr} adds r6, r0, 0 movs r0, 0xFA lsls r0, 2 adds r4, r6, r0 movs r5, 0x1 _080A2DE0: ldr r0, [r4] cmp r0, 0 beq _080A2DEE bl CloseFile movs r0, 0 str r0, [r4] _080A2DEE: adds r4, 0x28 subs r5, 0x1 cmp r5, 0 bge _080A2DE0 ldr r0, _080A2E5C adds r4, r6, r0 ldr r0, [r4] cmp r0, 0 beq _080A2E08 bl CloseFile movs r0, 0 str r0, [r4] _080A2E08: movs r0, 0x88 lsls r0, 3 adds r4, r6, r0 ldr r0, [r4] cmp r0, 0 beq _080A2E1C bl CloseFile movs r0, 0 str r0, [r4] _080A2E1C: movs r0, 0x86 lsls r0, 3 adds r4, r6, r0 ldr r0, [r4] cmp r0, 0 beq _080A2E30 bl CloseFile movs r0, 0 str r0, [r4] _080A2E30: ldr r0, _080A2E60 adds r4, r6, r0 ldr r0, [r4] cmp r0, 0 beq _080A2E42 bl CloseFile movs r0, 0 str r0, [r4] _080A2E42: movs r0, 0x87 lsls r0, 3 adds r4, r6, r0 ldr r0, [r4] cmp r0, 0 beq _080A2E56 bl CloseFile movs r0, 0 str r0, [r4] _080A2E56: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080A2E5C: .4byte 0x0000043c _080A2E60: .4byte 0x00000434 thumb_func_end sub_80A2DD4 thumb_func_start sub_80A2E64 sub_80A2E64: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 adds r7, r0, 0 bl sub_80A2DD4 ldr r0, _080A2FA4 adds r1, r7, r0 ldr r0, _080A2FA8 strh r0, [r1] movs r1, 0xA5 lsls r1, 3 adds r0, r7, r1 movs r1, 0 movs r2, 0 strh r2, [r0] movs r3, 0x89 lsls r3, 3 adds r0, r7, r3 strb r1, [r0] ldr r4, _080A2FAC adds r0, r7, r4 strb r1, [r0] adds r3, 0x2 adds r0, r7, r3 strb r1, [r0] adds r4, 0x2 adds r0, r7, r4 strb r1, [r0] adds r3, 0x2 adds r0, r7, r3 strb r1, [r0] adds r4, 0x2 adds r0, r7, r4 strb r1, [r0] adds r3, r7, 0 adds r4, 0x1F adds r0, r7, r4 str r2, [r0] movs r2, 0x8E lsls r2, 3 adds r0, r7, r2 strb r1, [r0] adds r4, 0x5 adds r0, r7, r4 strb r1, [r0] movs r0, 0 movs r1, 0xD _080A2ECA: strh r0, [r3] strh r0, [r3, 0x2] str r0, [r3, 0x8] str r0, [r3, 0x4] subs r1, 0x1 adds r3, 0x10 cmp r1, 0 bge _080A2ECA movs r1, 0 movs r2, 0xF8 lsls r2, 2 adds r0, r7, r2 movs r2, 0x1 _080A2EE4: strb r1, [r0] strb r1, [r0, 0x1] strh r1, [r0, 0x2] strh r1, [r0, 0x4] str r1, [r0, 0x8] str r1, [r0, 0xC] str r1, [r0, 0x14] str r1, [r0, 0x10] str r1, [r0, 0x1C] str r1, [r0, 0x18] str r1, [r0, 0x20] str r1, [r0, 0x24] adds r0, 0x28 subs r2, 0x1 cmp r2, 0 bge _080A2EE4 ldr r3, _080A2FB0 adds r0, r7, r3 movs r4, 0 ldrsh r0, [r0, r4] lsls r0, 20 lsrs r6, r0, 16 movs r5, 0 ldr r1, _080A2FB4 adds r0, r7, r1 movs r2, 0 ldrsh r0, [r0, r2] cmp r5, r0 bge _080A2F78 mov r10, r5 add r4, sp, 0x4 movs r3, 0xFF mov r9, r3 _080A2F26: mov r0, r10 str r0, [sp] ldrb r0, [r4] mov r1, r9 orrs r0, r1 strb r0, [r4] ldrb r0, [r4, 0x1] orrs r0, r1 strb r0, [r4, 0x1] ldrb r0, [r4, 0x2] orrs r0, r1 strb r0, [r4, 0x2] mov r2, r10 strb r2, [r4, 0x3] adds r0, r6, 0 adds r1, r0, 0x1 lsls r1, 16 lsrs r6, r1, 16 ldr r1, [sp] bl sub_8003810 adds r5, 0x1 mov r8, r5 movs r5, 0xE _080A2F56: adds r0, r6, 0 adds r1, r0, 0x1 lsls r1, 16 lsrs r6, r1, 16 ldr r1, [sp, 0x4] bl sub_8003810 subs r5, 0x1 cmp r5, 0 bge _080A2F56 mov r5, r8 ldr r3, _080A2FB4 adds r0, r7, r3 movs r1, 0 ldrsh r0, [r0, r1] cmp r5, r0 blt _080A2F26 _080A2F78: adds r0, r7, 0 movs r1, 0 bl sub_80A3BB0 movs r2, 0x91 lsls r2, 3 adds r0, r7, r2 bl sub_80A3EB0 ldr r3, _080A2FB8 adds r1, r7, r3 movs r0, 0x1 strb r0, [r1] add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080A2FA4: .4byte 0x00000444 _080A2FA8: .4byte 0x0000ffff _080A2FAC: .4byte 0x00000449 _080A2FB0: .4byte 0x0000052c _080A2FB4: .4byte 0x0000052e _080A2FB8: .4byte 0x0000052a thumb_func_end sub_80A2E64 thumb_func_start sub_80A2FBC sub_80A2FBC: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x2C mov r9, r0 lsls r1, 16 asrs r4, r1, 16 movs r0, 0x1 negs r0, r0 cmp r4, r0 bne _080A2FDE mov r0, r9 bl sub_80A2E64 b _080A3428 _080A2FDE: mov r0, r9 bl sub_80A2DD4 ldr r0, _080A3284 add r0, r9 strh r4, [r0] lsls r0, r4, 3 subs r0, r4 lsls r0, 2 ldr r1, _080A3288 adds r0, r1 str r0, [sp, 0xC] ldr r0, [r0] ldr r4, _080A328C adds r1, r4, 0 bl OpenFileAndGetFileDataPtr movs r6, 0x86 lsls r6, 3 add r6, r9 str r0, [r6] ldr r1, [sp, 0xC] ldr r0, [r1, 0x4] adds r1, r4, 0 bl OpenFileAndGetFileDataPtr ldr r5, _080A3290 add r5, r9 str r0, [r5] ldr r2, [sp, 0xC] ldr r0, [r2, 0x8] adds r1, r4, 0 bl OpenFileAndGetFileDataPtr movs r1, 0x87 lsls r1, 3 add r1, r9 str r0, [r1] ldr r1, [r6] ldr r1, [r1, 0x4] str r1, [sp, 0x18] ldr r1, [r5] ldr r1, [r1, 0x4] mov r8, r1 ldr r6, [r0, 0x4] ldr r3, _080A3294 add r3, r9 str r3, [sp, 0x10] ldr r4, _080A3298 add r4, r9 str r4, [sp, 0x14] movs r5, 0x89 lsls r5, 3 add r5, r9 mov r10, r5 ldr r7, [sp, 0x18] ldrb r0, [r7] strh r0, [r3] adds r0, r7, 0 adds r0, 0x2 str r0, [sp, 0x18] ldrb r0, [r0] strh r0, [r3, 0x2] ldr r1, [sp, 0x18] adds r1, 0x2 str r1, [sp, 0x18] mov r2, r8 ldrh r0, [r2] strh r0, [r4] movs r3, 0x2 add r8, r3 mov r4, r8 ldrh r0, [r4] ldr r5, [sp, 0x14] strh r0, [r5, 0x2] add r8, r3 mov r7, r8 ldrh r0, [r7] strh r0, [r5, 0x4] add r8, r3 add r3, sp, 0x8 ldr r0, _080A329C add r0, r9 str r0, [sp, 0x1C] adds r1, r0, 0 movs r2, 0x3 _080A308A: mov r4, r8 ldrh r0, [r4] strh r0, [r1] movs r5, 0x2 add r8, r5 adds r1, 0x2 subs r2, 0x1 cmp r2, 0 bge _080A308A mov r7, r8 ldrh r0, [r7] movs r2, 0 movs r1, 0 ldr r4, [sp, 0x14] strh r0, [r4, 0xE] add r8, r5 ldrb r0, [r6] mov r5, r10 strb r0, [r5] adds r6, 0x1 ldrb r0, [r6] strb r0, [r5, 0x1] adds r6, 0x1 ldrb r0, [r6] strb r0, [r5, 0x2] adds r6, 0x1 ldrb r0, [r6] strb r0, [r5, 0x3] adds r6, 0x1 ldrb r0, [r6] strb r0, [r5, 0x4] adds r6, 0x1 ldrb r0, [r6] strb r0, [r5, 0x5] adds r6, 0x1 ldrb r0, [r6] strh r0, [r5, 0x6] adds r6, 0x2 ldrb r0, [r6] strh r0, [r5, 0x8] adds r6, 0x2 ldrb r0, [r6] strh r0, [r5, 0xA] adds r6, 0x2 ldr r7, [sp, 0x18] ldr r0, _080A32A0 add r0, r9 movs r4, 0 ldrsh r0, [r0, r4] lsls r0, 20 lsrs r5, r0, 16 str r1, [sp, 0x4] movs r0, 0xFF strb r0, [r3] movs r0, 0x1 negs r0, r0 strb r0, [r3, 0x1] strb r0, [r3, 0x2] strb r2, [r3, 0x3] movs r4, 0 ldr r1, [sp, 0x10] movs r2, 0 ldrsh r0, [r1, r2] ldr r3, [sp, 0xC] adds r3, 0xC str r3, [sp, 0x20] cmp r4, r0 bge _080A3158 ldr r0, _080A32A4 add r0, r9 movs r1, 0 ldrsh r0, [r0, r1] cmp r4, r0 bge _080A3198 _080A311E: adds r0, r5, 0 adds r1, r0, 0x1 lsls r1, 16 lsrs r5, r1, 16 ldr r1, [sp, 0x4] bl sub_8003810 adds r0, r5, 0 adds r1, r7, 0 movs r2, 0xF bl sub_809971C adds r0, r5, 0 adds r0, 0xF lsls r0, 16 lsrs r5, r0, 16 adds r7, 0x3C adds r4, 0x1 ldr r2, [sp, 0x10] movs r3, 0 ldrsh r0, [r2, r3] cmp r4, r0 bge _080A3158 ldr r0, _080A32A4 add r0, r9 movs r1, 0 ldrsh r0, [r0, r1] cmp r4, r0 blt _080A311E _080A3158: ldr r0, _080A32A4 add r0, r9 movs r2, 0 ldrsh r0, [r0, r2] cmp r4, r0 bge _080A3198 _080A3164: adds r0, r5, 0 adds r1, r0, 0x1 lsls r1, 16 lsrs r5, r1, 16 ldr r1, [sp, 0x4] bl sub_8003810 adds r7, r4, 0x1 movs r4, 0xE _080A3176: adds r0, r5, 0 adds r1, r0, 0x1 lsls r1, 16 lsrs r5, r1, 16 ldr r1, [sp, 0x8] bl sub_8003810 subs r4, 0x1 cmp r4, 0 bge _080A3176 adds r4, r7, 0 ldr r0, _080A32A4 add r0, r9 movs r3, 0 ldrsh r0, [r0, r3] cmp r4, r0 blt _080A3164 _080A3198: movs r0, 0xA6 lsls r0, 3 add r0, r9 movs r4, 0 ldrsh r0, [r0, r4] lsls r0, 5 ldr r5, _080A32A8 adds r0, r5 ldr r4, _080A32A0 add r4, r9 ldr r5, _080A3298 add r5, r9 mov r1, r8 adds r2, r4, 0 adds r3, r5, 0 bl sub_80A37C4 movs r0, 0xA9 lsls r0, 3 add r0, r9 ldr r0, [r0] movs r1, 0xA5 lsls r1, 3 add r1, r9 ldr r7, [sp, 0x14] movs r3, 0x4 ldrsh r2, [r7, r3] subs r2, 0x1 lsls r2, 5 add r2, r8 str r5, [sp] adds r3, r4, 0 bl sub_80A382C ldr r0, _080A32AC add r0, r9 movs r3, 0x89 lsls r3, 3 add r3, r9 adds r1, r6, 0 adds r2, r4, 0 bl sub_80A3908 adds r6, r0, 0 movs r0, 0x8D lsls r0, 3 add r0, r9 str r6, [r0] ldr r0, _080A32B0 add r0, r9 ldr r2, [r0] cmp r2, 0 beq _080A321C movs r1, 0xA8 lsls r1, 3 add r1, r9 ldr r0, _080A32B4 add r0, r9 movs r4, 0 ldrsh r3, [r0, r4] ldr r4, [r1] adds r0, r2, 0 adds r1, r6, 0 mov r2, r10 bl _call_via_r4 _080A321C: mov r2, r9 movs r4, 0 ldr r5, [sp, 0x10] movs r6, 0x2 ldrsh r0, [r5, r6] cmp r0, 0 beq _080A32E4 movs r7, 0 ldrsh r1, [r5, r7] lsls r0, r1, 4 subs r0, r1 lsls r0, 2 ldr r5, [sp, 0x18] adds r3, r5, r0 lsls r1, 2 adds r6, r3, r1 ldr r0, _080A32B8 add r0, r9 str r3, [r0] movs r0, 0x8E lsls r0, 3 add r0, r9 movs r1, 0x1 strb r1, [r0] ldr r0, _080A32BC add r0, r9 strb r1, [r0] ldr r7, [sp, 0x10] movs r1, 0 ldrsh r0, [r7, r1] cmp r4, r0 bge _080A32F8 ldr r1, _080A32A4 add r1, r9 movs r5, 0 ldrsh r0, [r1, r5] cmp r4, r0 bge _080A32F8 movs r5, 0 mov r8, r1 _080A326C: movs r7, 0x2 ldrsh r0, [r3, r7] cmp r0, 0 ble _080A32C0 str r6, [r2, 0x4] movs r0, 0x2 ldrsh r1, [r3, r0] lsls r0, r1, 4 subs r0, r1 lsls r0, 2 adds r6, r0 b _080A32C2 .align 2, 0 _080A3284: .4byte 0x00000444 _080A3288: .4byte gUnknown_81188F0 _080A328C: .4byte gUnknown_9890000 _080A3290: .4byte 0x00000434 _080A3294: .4byte 0x00000464 _080A3298: .4byte 0x00000454 _080A329C: .4byte 0x0000045a _080A32A0: .4byte 0x0000052c _080A32A4: .4byte 0x0000052e _080A32A8: .4byte 0x06008000 _080A32AC: .4byte 0x0000054c _080A32B0: .4byte 0x00000544 _080A32B4: .4byte 0x0000053a _080A32B8: .4byte 0x0000046c _080A32BC: .4byte 0x00000471 _080A32C0: str r5, [r2, 0x4] _080A32C2: strh r5, [r2] strh r5, [r2, 0x2] str r5, [r2, 0x8] adds r4, 0x1 adds r2, 0x10 adds r3, 0x4 ldr r1, [sp, 0x10] movs r7, 0 ldrsh r0, [r1, r7] cmp r4, r0 bge _080A32F8 mov r1, r8 movs r7, 0 ldrsh r0, [r1, r7] cmp r4, r0 blt _080A326C b _080A32F8 _080A32E4: ldr r0, _080A3384 add r0, r9 str r4, [r0] movs r0, 0x8E lsls r0, 3 add r0, r9 strb r4, [r0] ldr r0, _080A3388 add r0, r9 strb r4, [r0] _080A32F8: cmp r4, 0xD bgt _080A330E movs r0, 0 _080A32FE: strh r0, [r2] strh r0, [r2, 0x2] str r0, [r2, 0x8] str r0, [r2, 0x4] adds r4, 0x1 adds r2, 0x10 cmp r4, 0xD ble _080A32FE _080A330E: movs r0, 0xA6 lsls r0, 3 add r0, r9 movs r1, 0 ldrsh r0, [r0, r1] ldr r2, [sp, 0x14] movs r3, 0x4 ldrsh r1, [r2, r3] adds r0, r1 lsls r0, 5 ldr r4, _080A338C adds r5, r0, r4 movs r7, 0 movs r6, 0 mov r8, r6 movs r4, 0xF8 lsls r4, 2 add r4, r9 ldr r0, [sp, 0x1C] str r0, [sp, 0x28] ldr r3, [sp, 0x20] _080A3338: ldr r0, [r3] cmp r0, 0 beq _080A3394 ldr r1, _080A3390 str r3, [sp, 0x24] bl OpenFileAndGetFileDataPtr str r0, [r4, 0x8] movs r1, 0x1 strb r1, [r4] strb r1, [r4, 0x1] ldr r2, [r0, 0x4] str r2, [r4, 0xC] adds r1, r2, 0x4 movs r0, 0x2 ldrsh r6, [r2, r0] lsls r6, 2 adds r0, r1, r6 str r1, [r4, 0x14] str r1, [r4, 0x10] str r0, [r4, 0x1C] str r0, [r4, 0x18] mov r1, r8 strh r1, [r4, 0x2] ldr r0, [r2, 0x4] strh r0, [r4, 0x4] str r5, [r4, 0x20] ldr r2, [sp, 0x28] movs r6, 0 ldrsh r0, [r2, r6] lsls r0, 5 str r0, [r4, 0x24] movs r1, 0 ldrsh r0, [r2, r1] lsls r0, 5 adds r5, r0 ldr r3, [sp, 0x24] b _080A33AC .align 2, 0 _080A3384: .4byte 0x0000046c _080A3388: .4byte 0x00000471 _080A338C: .4byte 0x06008000 _080A3390: .4byte gUnknown_9890000 _080A3394: strb r0, [r4] strb r0, [r4, 0x1] strh r0, [r4, 0x4] strh r0, [r4, 0x2] str r0, [r4, 0x8] str r0, [r4, 0xC] str r0, [r4, 0x14] str r0, [r4, 0x10] str r0, [r4, 0x1C] str r0, [r4, 0x18] str r0, [r4, 0x20] str r0, [r4, 0x24] _080A33AC: adds r4, 0x28 ldr r2, [sp, 0x28] adds r2, 0x2 str r2, [sp, 0x28] adds r3, 0x4 adds r7, 0x1 cmp r7, 0x1 ble _080A3338 cmp r7, 0x3 bgt _080A340E _080A33C0: lsls r0, r7, 2 ldr r3, [sp, 0x20] adds r0, r3, r0 ldr r0, [r0] adds r4, r7, 0x1 cmp r0, 0 beq _080A3408 ldr r1, _080A3438 bl OpenFileAndGetFileDataPtr adds r3, r0, 0 ldr r0, [r3, 0x4] adds r1, r0, 0x4 movs r6, 0x2 ldrsh r0, [r0, r6] lsls r0, 2 adds r1, r0 lsls r0, r7, 1 ldr r7, [sp, 0x1C] adds r0, r7, r0 movs r2, 0 ldrsh r0, [r0, r2] lsls r0, 4 cmp r0, 0 ble _080A3402 adds r2, r0, 0 _080A33F4: ldrh r0, [r1] strh r0, [r5] adds r1, 0x2 adds r5, 0x2 subs r2, 0x1 cmp r2, 0 bne _080A33F4 _080A3402: adds r0, r3, 0 bl CloseFile _080A3408: adds r7, r4, 0 cmp r7, 0x3 ble _080A33C0 _080A340E: mov r0, r9 movs r1, 0 bl sub_80A3BB0 movs r0, 0x91 lsls r0, 3 add r0, r9 bl sub_80A3EB0 ldr r1, _080A343C add r1, r9 movs r0, 0x1 strb r0, [r1] _080A3428: add sp, 0x2C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080A3438: .4byte gUnknown_9890000 _080A343C: .4byte 0x0000052a thumb_func_end sub_80A2FBC thumb_func_start sub_80A3440 sub_80A3440: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4C mov r9, r0 str r2, [sp, 0x34] str r3, [sp, 0x38] lsls r1, 16 asrs r5, r1, 16 movs r0, 0x1 negs r0, r0 cmp r5, r0 beq _080A3464 ldrb r0, [r2] cmp r0, 0x63 bne _080A346C _080A3464: mov r0, r9 bl sub_80A2E64 b _080A376C _080A346C: mov r0, r9 adds r1, r5, 0 bl sub_80A2FBC mov r0, r9 bl sub_80A2DD4 ldr r0, _080A377C add r0, r9 strh r5, [r0] lsls r4, r5, 3 subs r4, r5 lsls r4, 2 ldr r0, _080A3780 adds r4, r0 ldr r0, [r4] ldr r5, _080A3784 adds r1, r5, 0 bl OpenFileAndGetFileDataPtr movs r1, 0x86 lsls r1, 3 add r1, r9 mov r8, r1 str r0, [r1] ldr r0, [r4, 0x4] adds r1, r5, 0 bl OpenFileAndGetFileDataPtr ldr r6, _080A3788 add r6, r9 str r0, [r6] ldr r0, [r4, 0x8] adds r1, r5, 0 bl OpenFileAndGetFileDataPtr movs r1, 0x87 lsls r1, 3 add r1, r9 str r0, [r1] mov r2, r8 ldr r1, [r2] ldr r2, [r1, 0x4] ldr r1, [r6] ldr r3, [r1, 0x4] ldr r7, [r0, 0x4] ldr r1, _080A378C add r1, r9 ldr r4, _080A3790 add r4, r9 str r4, [sp, 0x3C] movs r0, 0x89 lsls r0, 3 add r0, r9 mov r10, r0 ldrb r0, [r2] strh r0, [r1] ldrb r0, [r2, 0x2] strh r0, [r1, 0x2] ldrh r0, [r3] strh r0, [r4] adds r3, 0x2 ldrh r0, [r3] strh r0, [r4, 0x2] adds r3, 0x2 ldrh r0, [r3] strh r0, [r4, 0x4] adds r3, 0x2 add r5, sp, 0x2C ldr r1, _080A3794 add r1, r9 str r1, [sp, 0x48] movs r2, 0x3 _080A34FE: ldrh r0, [r3] strh r0, [r1] adds r3, 0x2 adds r1, 0x2 subs r2, 0x1 cmp r2, 0 bge _080A34FE ldrh r0, [r3] movs r2, 0 mov r8, r2 ldr r4, [sp, 0x3C] strh r0, [r4, 0xE] ldrb r0, [r7] mov r1, r10 strb r0, [r1] adds r7, 0x1 ldrb r0, [r7] strb r0, [r1, 0x1] adds r7, 0x1 ldrb r0, [r7] strb r0, [r1, 0x2] adds r7, 0x1 ldrb r0, [r7] strb r0, [r1, 0x3] adds r7, 0x1 ldrb r0, [r7] strb r0, [r1, 0x4] adds r7, 0x1 ldrb r0, [r7] strb r0, [r1, 0x5] adds r7, 0x1 ldrb r0, [r7] strh r0, [r1, 0x6] adds r7, 0x2 ldrb r0, [r7] strh r0, [r1, 0x8] adds r7, 0x2 ldrb r0, [r7] strh r0, [r1, 0xA] adds r7, 0x2 ldr r4, _080A3798 add r4, r9 ldr r0, [r4] str r0, [sp, 0x2C] str r2, [r5, 0x4] ldr r2, _080A379C add r2, r9 movs r3, 0x89 lsls r3, 3 add r3, r9 adds r0, r5, 0 adds r1, r7, 0 bl sub_80A3908 adds r7, r0, 0 movs r0, 0x8D lsls r0, 3 add r0, r9 str r7, [r0] ldr r5, _080A37A0 add r5, r9 movs r6, 0x88 lsls r6, 3 add r6, r9 ldr r2, _080A37A4 movs r0, 0xA9 lsls r0, 3 add r0, r9 ldr r3, [r0] ldr r0, _080A37A8 add r0, r9 ldr r0, [r0] str r0, [sp] ldr r0, [sp, 0x34] str r0, [sp, 0x4] ldr r1, [sp, 0x38] str r1, [sp, 0x8] movs r0, 0x40 str r0, [sp, 0xC] mov r1, r10 ldrb r0, [r1, 0x5] str r0, [sp, 0x10] ldr r0, [r4] str r0, [sp, 0x14] mov r0, r8 str r0, [sp, 0x18] adds r0, r5, 0 adds r1, r6, 0 bl sub_80ADD9C ldr r0, [r5] movs r1, 0 bl GetFileDataPtr ldr r0, [r6] movs r1, 0 bl GetFileDataPtr movs r2, 0xA8 lsls r2, 3 add r2, r9 ldr r0, [r4] ldr r1, _080A37AC add r1, r9 movs r4, 0 ldrsh r3, [r1, r4] ldr r4, [r2] adds r1, r7, 0 mov r2, r10 bl _call_via_r4 movs r0, 0x80 lsls r0, 2 ldr r1, [sp, 0x3C] strh r0, [r1, 0x4] ldr r1, [sp, 0x48] movs r2, 0 adds r0, r1, 0x6 _080A35EA: strh r2, [r0] subs r0, 0x2 cmp r0, r1 bge _080A35EA movs r2, 0 movs r0, 0xFA ldr r4, [sp, 0x3C] strh r0, [r4, 0xE] ldr r1, _080A378C add r1, r9 movs r0, 0xC strh r0, [r1] ldr r0, _080A37B0 add r0, r9 strh r2, [r0] ldr r0, _080A37A0 add r0, r9 ldr r0, [r0] cmp r0, 0 beq _080A36E6 ldr r4, [r0, 0x4] movs r7, 0 str r7, [sp, 0x1C] add r1, sp, 0x20 movs r0, 0xFF strb r0, [r1] movs r0, 0x1 negs r0, r0 strb r0, [r1, 0x1] strb r0, [r1, 0x2] movs r0, 0 strb r0, [r1, 0x3] movs r5, 0 ldr r0, _080A37B4 add r0, r9 movs r1, 0 ldrsh r0, [r0, r1] cmp r5, r0 bge _080A36E6 mov r2, sp adds r2, 0x28 str r2, [sp, 0x40] mov r0, sp adds r0, 0x29 str r0, [sp, 0x44] movs r1, 0x2A add r1, sp mov r10, r1 movs r2, 0x2B add r2, sp mov r8, r2 _080A3650: adds r0, r7, 0 adds r1, r0, 0x1 lsls r1, 16 lsrs r7, r1, 16 ldr r1, [sp, 0x1C] bl sub_8003810 adds r4, 0x4 adds r6, r5, 0x1 movs r5, 0xE _080A3664: ldrb r0, [r4] ldr r1, [sp, 0x40] strb r0, [r1] ldrb r0, [r4, 0x1] ldr r2, [sp, 0x44] strb r0, [r2] ldrb r0, [r4, 0x2] mov r1, r10 strb r0, [r1] ldrb r0, [r4, 0x3] mov r2, r8 strb r0, [r2] ldr r1, [sp, 0x28] str r1, [sp, 0x24] adds r0, r7, 0 adds r2, r0, 0x1 lsls r2, 16 lsrs r7, r2, 16 bl sub_8003810 adds r4, 0x4 subs r5, 0x1 cmp r5, 0 bge _080A3664 adds r5, r6, 0 cmp r5, 0xB bgt _080A36A6 ldr r0, _080A37B4 add r0, r9 movs r1, 0 ldrsh r0, [r0, r1] cmp r5, r0 blt _080A3650 _080A36A6: ldr r0, _080A37B4 add r0, r9 movs r2, 0 ldrsh r0, [r0, r2] cmp r5, r0 bge _080A36E6 _080A36B2: adds r0, r7, 0 adds r1, r0, 0x1 lsls r1, 16 lsrs r7, r1, 16 ldr r1, [sp, 0x1C] bl sub_8003810 adds r6, r5, 0x1 movs r5, 0xE _080A36C4: adds r0, r7, 0 adds r1, r0, 0x1 lsls r1, 16 lsrs r7, r1, 16 ldr r1, [sp, 0x20] bl sub_8003810 subs r5, 0x1 cmp r5, 0 bge _080A36C4 adds r5, r6, 0 ldr r0, _080A37B4 add r0, r9 movs r4, 0 ldrsh r0, [r0, r4] cmp r5, r0 blt _080A36B2 _080A36E6: mov r4, r9 movs r0, 0x88 lsls r0, 3 add r0, r9 ldr r1, [r0] cmp r1, 0 beq _080A36FE mov r0, r9 adds r0, 0xE0 movs r2, 0x20 bl sub_8004AA4 _080A36FE: ldr r0, _080A37B8 add r0, r9 movs r1, 0 str r1, [r0] movs r0, 0x8E lsls r0, 3 add r0, r9 strb r1, [r0] ldr r0, _080A37BC add r0, r9 strb r1, [r0] movs r0, 0 movs r1, 0xD _080A3718: strh r0, [r4] strh r0, [r4, 0x2] str r0, [r4, 0x8] str r0, [r4, 0x4] subs r1, 0x1 adds r4, 0x10 cmp r1, 0 bge _080A3718 movs r1, 0 movs r0, 0xF8 lsls r0, 2 add r0, r9 movs r2, 0x1 _080A3732: strb r1, [r0] strb r1, [r0, 0x1] strh r1, [r0, 0x4] strh r1, [r0, 0x2] str r1, [r0, 0x8] str r1, [r0, 0xC] str r1, [r0, 0x14] str r1, [r0, 0x10] str r1, [r0, 0x1C] str r1, [r0, 0x18] str r1, [r0, 0x20] str r1, [r0, 0x24] adds r0, 0x28 subs r2, 0x1 cmp r2, 0 bge _080A3732 mov r0, r9 movs r1, 0 bl sub_80A3BB0 movs r0, 0x91 lsls r0, 3 add r0, r9 bl sub_80A3EB0 ldr r1, _080A37C0 add r1, r9 movs r0, 0x1 strb r0, [r1] _080A376C: add sp, 0x4C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080A377C: .4byte 0x00000444 _080A3780: .4byte gUnknown_81188F0 _080A3784: .4byte gUnknown_9890000 _080A3788: .4byte 0x00000434 _080A378C: .4byte 0x00000464 _080A3790: .4byte 0x00000454 _080A3794: .4byte 0x0000045a _080A3798: .4byte 0x00000544 _080A379C: .4byte 0x0000052c _080A37A0: .4byte 0x0000043c _080A37A4: .4byte 0x06008000 _080A37A8: .4byte 0x0000054c _080A37AC: .4byte 0x0000053a _080A37B0: .4byte 0x00000466 _080A37B4: .4byte 0x0000052e _080A37B8: .4byte 0x0000046c _080A37BC: .4byte 0x00000471 _080A37C0: .4byte 0x0000052a thumb_func_end sub_80A3440 thumb_func_start sub_80A37C4 sub_80A37C4: push {r4-r6,lr} adds r6, r2, 0 adds r4, r1, 0 adds r2, r0, 0 movs r0, 0 movs r1, 0xF _080A37D0: strh r0, [r2] adds r2, 0x2 subs r1, 0x1 cmp r1, 0 bge _080A37D0 movs r0, 0x1 movs r1, 0x4 ldrsh r3, [r3, r1] cmp r0, r3 bge _080A37FE adds r5, r3, 0 _080A37E6: adds r3, r0, 0x1 movs r1, 0xF _080A37EA: ldrh r0, [r4] strh r0, [r2] adds r4, 0x2 adds r2, 0x2 subs r1, 0x1 cmp r1, 0 bge _080A37EA adds r0, r3, 0 cmp r0, r5 blt _080A37E6 _080A37FE: movs r3, 0x6 ldrsh r1, [r6, r3] cmp r0, r1 bge _080A3820 ldr r3, _080A3828 adds r4, r3, 0 adds r5, r1, 0 _080A380C: adds r3, r0, 0x1 movs r1, 0xF _080A3810: strh r4, [r2] adds r2, 0x2 subs r1, 0x1 cmp r1, 0 bge _080A3810 adds r0, r3, 0 cmp r0, r5 blt _080A380C _080A3820: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080A3828: .4byte 0x0000ffff thumb_func_end sub_80A37C4 thumb_func_start sub_80A382C sub_80A382C: push {r4-r7,lr} mov r7, r8 push {r7} adds r5, r1, 0 mov r8, r3 ldr r3, [sp, 0x18] adds r4, r2, 0 adds r2, r0, 0 mov r1, r8 ldrh r0, [r1] lsls r0, 12 ldrh r1, [r1, 0x4] orrs r0, r1 lsls r0, 16 lsrs r6, r0, 16 ldr r1, [r3] ldr r0, _080A385C cmp r1, r0 bne _080A3860 movs r0, 0x1 strh r0, [r5] movs r5, 0x4 b _080A3890 .align 2, 0 _080A385C: .4byte 0x00020002 _080A3860: ldr r0, _080A3870 cmp r1, r0 bne _080A3874 movs r0, 0x2 strh r0, [r5] movs r5, 0x9 b _080A3890 .align 2, 0 _080A3870: .4byte 0x00030003 _080A3874: movs r0, 0 strh r0, [r5] ldr r0, _080A3888 ldr r1, _080A388C movs r4, 0 ldrsh r2, [r3, r4] movs r6, 0x2 ldrsh r3, [r3, r6] bl FatalError .align 2, 0 _080A3888: .4byte gUnknown_81172E8 _080A388C: .4byte gUnknown_81172F4 _080A3890: movs r0, 0 movs r1, 0x8 _080A3894: strh r0, [r2] adds r2, 0x2 subs r1, 0x1 cmp r1, 0 bge _080A3894 movs r0, 0x1 movs r7, 0xE ldrsh r1, [r3, r7] cmp r0, r1 bge _080A38DC mov r12, r1 _080A38AA: movs r1, 0 adds r3, r0, 0x1 cmp r1, r5 bge _080A38C6 adds r1, r5, 0 _080A38B4: ldrh r0, [r4] adds r0, r6, r0 strh r0, [r2] adds r4, 0x2 adds r2, 0x2 subs r1, 0x1 cmp r1, 0 bne _080A38B4 adds r1, r5, 0 _080A38C6: cmp r1, 0x8 bgt _080A38D6 movs r0, 0 _080A38CC: strh r0, [r2] adds r2, 0x2 adds r1, 0x1 cmp r1, 0x8 ble _080A38CC _080A38D6: adds r0, r3, 0 cmp r0, r12 blt _080A38AA _080A38DC: mov r1, r8 movs r4, 0x8 ldrsh r3, [r1, r4] cmp r0, r3 bge _080A38FE movs r4, 0 adds r5, r3, 0 _080A38EA: adds r3, r0, 0x1 movs r1, 0x8 _080A38EE: strh r4, [r2] adds r2, 0x2 subs r1, 0x1 cmp r1, 0 bge _080A38EE adds r0, r3, 0 cmp r0, r5 blt _080A38EA _080A38FE: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80A382C thumb_func_start sub_80A3908 sub_80A3908: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 str r0, [sp] str r2, [sp, 0x4] mov r9, r3 adds r6, r1, 0 movs r2, 0 ldr r1, [sp, 0x4] movs r3, 0xC ldrsh r0, [r1, r3] cmp r2, r0 blt _080A392A b _080A3B6C _080A392A: lsls r0, r2, 2 ldr r4, [sp] adds r0, r4 ldr r0, [r0] mov r12, r0 movs r1, 0 adds r2, 0x1 str r2, [sp, 0x8] mov r5, r9 ldrb r5, [r5, 0x5] cmp r1, r5 blt _080A3944 b _080A3B2A _080A3944: ldr r0, _080A39A4 mov r10, r0 _080A3948: movs r2, 0 mov r8, r2 cmp r1, 0 bne _080A3A18 movs r3, 0x1 str r3, [sp, 0xC] mov r4, r9 ldrb r4, [r4, 0x4] cmp r1, r4 blt _080A395E b _080A3B04 _080A395E: ldrb r1, [r6] adds r6, 0x1 cmp r1, 0xBF ble _080A39A8 adds r2, r1, 0 subs r2, 0xBF cmp r1, 0xBF ble _080A39A0 ldr r5, _080A39A4 adds r4, r5, 0 adds r3, r2, 0 _080A3974: ldrb r1, [r6] ldrb r0, [r6, 0x1] lsls r0, 8 orrs r1, r0 ldrb r0, [r6, 0x2] lsls r0, 16 orrs r1, r0 adds r6, 0x3 adds r0, r1, 0 ands r0, r4 mov r5, r12 strh r0, [r5] movs r0, 0x2 add r12, r0 asrs r1, 12 ands r1, r4 mov r5, r12 strh r1, [r5] add r12, r0 subs r3, 0x1 cmp r3, 0 bne _080A3974 _080A39A0: lsls r0, r2, 1 b _080A3A0C .align 2, 0 _080A39A4: .4byte 0x00000fff _080A39A8: cmp r1, 0x7F ble _080A39EA ldrb r2, [r6] ldrb r0, [r6, 0x1] lsls r0, 8 orrs r2, r0 ldrb r0, [r6, 0x2] lsls r0, 16 orrs r2, r0 adds r6, 0x3 adds r4, r1, 0 subs r4, 0x7F cmp r1, 0x7F ble _080A39E6 adds r0, r2, 0 mov r1, r10 ands r0, r1 asrs r1, r2, 12 mov r2, r10 ands r1, r2 adds r3, r4, 0 _080A39D2: mov r5, r12 strh r0, [r5] movs r2, 0x2 add r12, r2 mov r5, r12 strh r1, [r5] add r12, r2 subs r3, 0x1 cmp r3, 0 bne _080A39D2 _080A39E6: lsls r0, r4, 1 b _080A3A0C _080A39EA: movs r3, 0 adds r0, r1, 0x1 cmp r3, r1 bgt _080A3A0A movs r1, 0 adds r3, r0, 0 _080A39F6: mov r2, r12 strh r1, [r2] movs r4, 0x2 add r12, r4 mov r5, r12 strh r1, [r5] add r12, r4 subs r3, 0x1 cmp r3, 0 bne _080A39F6 _080A3A0A: lsls r0, 1 _080A3A0C: add r8, r0 mov r0, r9 ldrb r0, [r0, 0x4] cmp r8, r0 blt _080A395E b _080A3B04 _080A3A18: mov r4, r12 subs r4, 0x80 adds r1, 0x1 str r1, [sp, 0xC] mov r1, r9 ldrb r1, [r1, 0x4] cmp r8, r1 bge _080A3B04 _080A3A28: ldrb r1, [r6] adds r6, 0x1 cmp r1, 0xBF ble _080A3A80 adds r5, r1, 0 subs r5, 0xBF cmp r1, 0xBF ble _080A3A78 ldr r2, _080A3A7C adds r7, r2, 0 adds r3, r5, 0 _080A3A3E: ldrb r2, [r6] ldrb r0, [r6, 0x1] lsls r0, 8 orrs r2, r0 ldrb r0, [r6, 0x2] lsls r0, 16 orrs r2, r0 adds r6, 0x3 adds r0, r2, 0 ands r0, r7 ldrh r1, [r4] eors r0, r1 mov r1, r12 strh r0, [r1] adds r4, 0x2 movs r0, 0x2 add r12, r0 asrs r2, 12 ands r2, r7 ldrh r0, [r4] eors r2, r0 mov r1, r12 strh r2, [r1] adds r4, 0x2 movs r2, 0x2 add r12, r2 subs r3, 0x1 cmp r3, 0 bne _080A3A3E _080A3A78: lsls r0, r5, 1 b _080A3AFA .align 2, 0 _080A3A7C: .4byte 0x00000fff _080A3A80: cmp r1, 0x7F ble _080A3AD2 ldrb r2, [r6] ldrb r0, [r6, 0x1] lsls r0, 8 orrs r2, r0 ldrb r0, [r6, 0x2] lsls r0, 16 orrs r2, r0 adds r6, 0x3 adds r7, r1, 0 subs r7, 0x7F cmp r1, 0x7F ble _080A3ACE adds r5, r2, 0 mov r3, r10 ands r5, r3 asrs r2, 12 ands r2, r3 adds r3, r7, 0 _080A3AA8: ldrh r1, [r4] adds r0, r5, 0 eors r0, r1 mov r1, r12 strh r0, [r1] adds r4, 0x2 movs r0, 0x2 add r12, r0 ldrh r1, [r4] adds r0, r2, 0 eors r0, r1 mov r1, r12 strh r0, [r1] adds r4, 0x2 movs r0, 0x2 add r12, r0 subs r3, 0x1 cmp r3, 0 bne _080A3AA8 _080A3ACE: lsls r0, r7, 1 b _080A3AFA _080A3AD2: movs r3, 0 adds r2, r1, 0x1 cmp r3, r1 bgt _080A3AF8 adds r3, r2, 0 _080A3ADC: ldrh r0, [r4] mov r1, r12 strh r0, [r1] adds r4, 0x2 movs r5, 0x2 add r12, r5 ldrh r0, [r4] mov r1, r12 strh r0, [r1] adds r4, 0x2 add r12, r5 subs r3, 0x1 cmp r3, 0 bne _080A3ADC _080A3AF8: lsls r0, r2, 1 _080A3AFA: add r8, r0 mov r2, r9 ldrb r2, [r2, 0x4] cmp r8, r2 blt _080A3A28 _080A3B04: mov r3, r8 cmp r3, 0x3F bgt _080A3B1E movs r0, 0 _080A3B0C: mov r4, r12 strh r0, [r4] movs r5, 0x2 add r12, r5 movs r1, 0x1 add r8, r1 mov r2, r8 cmp r2, 0x3F ble _080A3B0C _080A3B1E: ldr r1, [sp, 0xC] mov r3, r9 ldrb r3, [r3, 0x5] cmp r1, r3 bge _080A3B2A b _080A3948 _080A3B2A: ldr r4, [sp, 0x4] movs r5, 0x10 ldrsh r0, [r4, r5] cmp r1, r0 bge _080A3B5E movs r2, 0 _080A3B36: adds r1, 0x1 str r1, [sp, 0xC] movs r0, 0x3F mov r8, r0 _080A3B3E: mov r1, r12 strh r2, [r1] movs r3, 0x2 add r12, r3 movs r4, 0x1 negs r4, r4 add r8, r4 mov r5, r8 cmp r5, 0 bge _080A3B3E ldr r1, [sp, 0xC] ldr r3, [sp, 0x4] movs r4, 0x10 ldrsh r0, [r3, r4] cmp r1, r0 blt _080A3B36 _080A3B5E: ldr r2, [sp, 0x8] ldr r5, [sp, 0x4] movs r1, 0xC ldrsh r0, [r5, r1] cmp r2, r0 bge _080A3B6C b _080A392A _080A3B6C: adds r0, r6, 0 add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80A3908 thumb_func_start sub_80A3B80 sub_80A3B80: push {r4,lr} adds r3, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r2, 24 lsrs r2, 24 ldr r4, _080A3BA8 adds r0, r3, r4 ldr r0, [r0] cmp r0, 0 beq _080A3BA2 adds r4, 0x4 adds r0, r3, r4 strb r1, [r0] ldr r1, _080A3BAC adds r0, r3, r1 strb r2, [r0] _080A3BA2: pop {r4} pop {r0} bx r0 .align 2, 0 _080A3BA8: .4byte 0x0000046c _080A3BAC: .4byte 0x00000471 thumb_func_end sub_80A3B80 thumb_func_start sub_80A3BB0 sub_80A3BB0: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r5, r0, 0 lsls r1, 16 asrs r1, 16 adds r6, r1, 0 movs r0, 0x91 lsls r0, 3 adds r0, r5 mov r8, r0 cmp r1, 0 blt _080A3BD4 cmp r1, 0x1 ble _080A3BD4 cmp r1, 0x4 ble _080A3C00 _080A3BD4: ldr r1, _080A3BFC adds r0, r5, r1 movs r1, 0x1 str r1, [r0] movs r2, 0xA7 lsls r2, 3 adds r0, r5, r2 movs r1, 0 ldrsh r3, [r0, r1] movs r0, 0 cmp r6, 0x1 bne _080A3BEE movs r0, 0x1 _080A3BEE: str r0, [sp] mov r0, r8 adds r1, r5, 0 movs r2, 0 bl sub_80A3D40 b _080A3C48 .align 2, 0 _080A3BFC: .4byte 0x00000474 _080A3C00: ldr r2, _080A3C88 adds r0, r5, r2 movs r7, 0x2 str r7, [r0] movs r0, 0xA7 lsls r0, 3 adds r4, r5, r0 movs r2, 0 ldrsh r0, [r4, r2] subs r3, r0, 0x1 movs r0, 0 cmp r1, 0x4 bne _080A3C1C movs r0, 0x1 _080A3C1C: str r0, [sp] mov r0, r8 adds r1, r5, 0 movs r2, 0 bl sub_80A3D40 movs r1, 0x9B lsls r1, 3 adds r0, r5, r1 movs r1, 0 ldrsh r2, [r4, r1] subs r2, 0x1 adds r3, r7, 0 eors r3, r6 negs r1, r3 orrs r1, r3 lsrs r1, 31 str r1, [sp] adds r1, r5, 0 movs r3, 0x1 bl sub_80A3D40 _080A3C48: movs r6, 0 ldr r2, _080A3C88 adds r0, r5, r2 ldr r0, [r0] cmp r6, r0 bge _080A3CF0 movs r0, 0x8F lsls r0, 3 adds r7, r5, r0 mov r4, r8 _080A3C5C: adds r0, r5, 0 adds r1, r6, 0 ldr r2, _080A3C8C bl sub_80A456C movs r1, 0x4 ldrsh r0, [r4, r1] cmp r0, 0x1 beq _080A3C72 cmp r0, 0x2 beq _080A3CB4 _080A3C72: movs r2, 0 ldrsh r0, [r4, r2] cmp r0, 0x1 beq _080A3C94 cmp r0, 0x1 ble _080A3C82 cmp r0, 0x2 beq _080A3C9C _080A3C82: ldr r0, _080A3C90 b _080A3CD6 .align 2, 0 _080A3C88: .4byte 0x00000474 _080A3C8C: .4byte gUnknown_8117314 _080A3C90: .4byte sub_80A3EBC _080A3C94: ldr r0, _080A3C98 b _080A3CD6 .align 2, 0 _080A3C98: .4byte sub_80A3EF4 _080A3C9C: ldrb r0, [r4, 0x6] ldr r1, _080A3CAC cmp r0, 0 beq _080A3CA6 ldr r1, _080A3CB0 _080A3CA6: str r1, [r4, 0x18] b _080A3CD8 .align 2, 0 _080A3CAC: .4byte sub_80A4088 _080A3CB0: .4byte sub_80A41C4 _080A3CB4: movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0x1 beq _080A3CCC cmp r0, 0x1 ble _080A3CC4 cmp r0, 0x2 beq _080A3CD4 _080A3CC4: ldr r0, _080A3CC8 b _080A3CD6 .align 2, 0 _080A3CC8: .4byte sub_80A3ED4 _080A3CCC: ldr r0, _080A3CD0 b _080A3CD6 .align 2, 0 _080A3CD0: .4byte sub_80A3F94 _080A3CD4: ldr r0, _080A3D34 _080A3CD6: str r0, [r4, 0x18] _080A3CD8: adds r0, r4, 0 adds r1, r7, 0 bl sub_80A3E14 adds r7, 0x8 adds r4, 0x50 adds r6, 0x1 ldr r2, _080A3D38 adds r0, r5, r2 ldr r0, [r0] cmp r6, r0 blt _080A3C5C _080A3CF0: ldr r1, _080A3D38 adds r0, r5, r1 ldr r6, [r0] cmp r6, 0x1 bgt _080A3D26 lsls r0, r6, 2 adds r0, r6 lsls r0, 4 mov r2, r8 adds r4, r0, r2 _080A3D04: adds r0, r5, 0 adds r1, r6, 0 ldr r2, _080A3D3C bl sub_80A456C movs r0, 0 str r0, [sp] adds r0, r4, 0 adds r1, r5, 0 movs r2, 0 movs r3, 0 bl sub_80A3D40 adds r4, 0x50 adds r6, 0x1 cmp r6, 0x1 ble _080A3D04 _080A3D26: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080A3D34: .4byte sub_80A4358 _080A3D38: .4byte 0x00000474 _080A3D3C: .4byte gUnknown_8117314 thumb_func_end sub_80A3BB0 thumb_func_start sub_80A3D40 sub_80A3D40: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r4, r0, 0 adds r5, r1, 0 mov r8, r3 ldr r1, [sp, 0x1C] movs r3, 0xA5 lsls r3, 3 adds r0, r5, r3 ldrh r0, [r0] strh r0, [r4] strh r2, [r4, 0x2] mov r7, r8 strh r7, [r4, 0x4] strb r1, [r4, 0x6] ldr r1, _080A3E10 adds r0, r5, r1 ldrb r0, [r0] str r0, [r4, 0x8] subs r3, 0xDB adds r0, r5, r3 ldrb r0, [r0] str r0, [r4, 0xC] movs r7, 0x89 lsls r7, 3 adds r0, r5, r7 ldrb r0, [r0] lsls r0, 3 str r0, [r4, 0x10] subs r1, 0x3 adds r0, r5, r1 ldrb r0, [r0] lsls r0, 3 str r0, [r4, 0x14] adds r3, 0xFB adds r0, r5, r3 ldr r0, [r0] str r0, [r4, 0x1C] movs r3, 0 cmp r3, r8 bge _080A3DE0 adds r7, 0xF0 adds r6, r5, r7 movs r1, 0 ldrsh r0, [r6, r1] cmp r2, r0 bge _080A3DE0 lsls r0, r2, 2 adds r7, 0x14 adds r0, r7 adds r1, r0, r5 movs r0, 0x20 adds r0, r4 mov r12, r0 movs r7, 0x28 adds r7, r4 mov r9, r7 _080A3DB6: ldr r0, [r1] mov r7, r12 adds r7, 0x4 mov r12, r7 subs r7, 0x4 stm r7!, {r0} ldr r0, [r1, 0x8] mov r7, r9 adds r7, 0x4 mov r9, r7 subs r7, 0x4 stm r7!, {r0} adds r3, 0x1 adds r1, 0x4 adds r2, 0x1 cmp r3, r8 bge _080A3DE0 movs r7, 0 ldrsh r0, [r6, r7] cmp r2, r0 blt _080A3DB6 _080A3DE0: cmp r3, 0x1 bgt _080A3DF8 movs r1, 0 lsls r0, r3, 2 adds r0, 0x20 adds r0, r4 _080A3DEC: str r1, [r0] str r1, [r0, 0x8] adds r0, 0x4 adds r3, 0x1 cmp r3, 0x1 ble _080A3DEC _080A3DF8: movs r0, 0x8F lsls r0, 3 adds r1, r5, r0 adds r0, r4, 0 bl sub_80A3E14 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080A3E10: .4byte 0x0000044c thumb_func_end sub_80A3D40 thumb_func_start sub_80A3E14 sub_80A3E14: push {r4-r7,lr} mov r7, r8 push {r7} adds r4, r0, 0 adds r0, r1, 0 ldr r1, [r0] mov r8, r1 str r1, [r4, 0x30] cmp r1, 0 bge _080A3E2A adds r1, 0x7 _080A3E2A: asrs r6, r1, 3 str r6, [r4, 0x38] ldr r7, [r0, 0x4] str r7, [r4, 0x34] adds r0, r7, 0 cmp r7, 0 bge _080A3E3A adds r0, r7, 0x7 _080A3E3A: asrs r5, r0, 3 str r5, [r4, 0x3C] movs r3, 0 ldrsh r2, [r4, r3] cmp r2, 0x1 beq _080A3E60 cmp r2, 0x1 bgt _080A3E50 cmp r2, 0 beq _080A3E56 b _080A3EA4 _080A3E50: cmp r2, 0x2 beq _080A3E7E b _080A3EA4 _080A3E56: str r2, [r4, 0x40] str r2, [r4, 0x44] str r2, [r4, 0x48] str r2, [r4, 0x4C] b _080A3EA4 _080A3E60: lsrs r1, 31 adds r1, r6, r1 asrs r1, 1 str r1, [r4, 0x40] lsrs r0, 31 adds r0, r5, r0 asrs r0, 1 str r0, [r4, 0x44] lsls r1, 4 mov r2, r8 subs r1, r2, r1 str r1, [r4, 0x48] lsls r0, 4 subs r0, r7, r0 b _080A3EA2 _080A3E7E: adds r0, r6, 0 movs r1, 0x3 bl __divsi3 str r0, [r4, 0x40] adds r0, r5, 0 movs r1, 0x3 bl __divsi3 str r0, [r4, 0x44] lsls r0, r6, 3 mov r3, r8 subs r0, r3, r0 str r0, [r4, 0x48] adds r0, r7, 0 movs r1, 0x18 bl __modsi3 _080A3EA2: str r0, [r4, 0x4C] _080A3EA4: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80A3E14 thumb_func_start sub_80A3EB0 sub_80A3EB0: push {lr} ldr r1, [r0, 0x18] bl _call_via_r1 pop {r0} bx r0 thumb_func_end sub_80A3EB0 thumb_func_start sub_80A3EBC sub_80A3EBC: push {lr} ldr r0, [r0, 0x28] movs r2, 0 movs r1, 0x80 lsls r1, 3 _080A3EC6: strh r2, [r0] adds r0, 0x2 subs r1, 0x1 cmp r1, 0 bne _080A3EC6 pop {r0} bx r0 thumb_func_end sub_80A3EBC thumb_func_start sub_80A3ED4 sub_80A3ED4: push {lr} ldr r1, [r0, 0x28] ldr r0, [r0, 0x2C] movs r3, 0 movs r2, 0x80 lsls r2, 3 _080A3EE0: strh r3, [r1] adds r1, 0x2 strh r3, [r0] adds r0, 0x2 subs r2, 0x1 cmp r2, 0 bne _080A3EE0 pop {r0} bx r0 thumb_func_end sub_80A3ED4 thumb_func_start sub_80A3EF4 sub_80A3EF4: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 ldr r1, [r0, 0x44] lsls r1, 6 ldr r2, [r0, 0x40] adds r1, r2 lsls r1, 1 ldr r2, [r0, 0x20] adds r2, r1 movs r1, 0 mov r12, r1 ldr r3, [r0, 0x28] str r3, [sp, 0xC] ldr r0, [r0, 0x1C] mov r10, r0 mov r0, sp str r0, [sp, 0x8] _080A3F1E: adds r5, r2, 0 movs r2, 0x80 adds r2, r5 mov r9, r2 adds r1, 0x1 mov r8, r1 ldr r1, [sp, 0x8] mov r3, r12 lsls r0, r3, 1 ldr r2, [sp, 0xC] adds r0, r2 movs r2, 0x1 _080A3F36: stm r1!, {r0} adds r0, 0x40 movs r3, 0x20 add r12, r3 subs r2, 0x1 cmp r2, 0 bge _080A3F36 movs r4, 0 mov r7, sp _080A3F48: ldrh r1, [r5] lsls r0, r1, 3 adds r0, r1 lsls r0, 1 mov r1, r10 adds r3, r1, r0 adds r5, 0x2 adds r6, r4, 0x1 adds r4, r7, 0 movs r2, 0x1 _080A3F5C: ldr r0, [r4] ldrh r1, [r3] strh r1, [r0] adds r3, 0x2 adds r0, 0x2 ldrh r1, [r3] strh r1, [r0] adds r3, 0x2 adds r0, 0x2 stm r4!, {r0} subs r2, 0x1 cmp r2, 0 bge _080A3F5C adds r4, r6, 0 cmp r4, 0xF ble _080A3F48 mov r2, r9 mov r1, r8 cmp r1, 0xA ble _080A3F1E add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80A3EF4 thumb_func_start sub_80A3F94 sub_80A3F94: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x34 ldr r1, [r0, 0x44] lsls r1, 6 ldr r2, [r0, 0x40] adds r1, r2 lsls r1, 1 ldr r2, [r0, 0x20] adds r3, r2, r1 ldr r2, [r0, 0x24] adds r2, r1 movs r1, 0 ldr r4, [r0, 0x28] str r4, [sp, 0x2C] ldr r5, [r0, 0x2C] str r5, [sp, 0x18] ldr r0, [r0, 0x1C] str r0, [sp, 0x1C] mov r0, sp str r0, [sp, 0x10] mov r4, sp adds r4, 0x8 str r4, [sp, 0x14] movs r5, 0 str r5, [sp, 0x30] _080A3FCE: mov r8, r3 mov r12, r2 mov r0, r8 adds r0, 0x80 str r0, [sp, 0x20] mov r4, r12 adds r4, 0x80 str r4, [sp, 0x24] adds r1, 0x1 str r1, [sp, 0x28] ldr r3, [sp, 0x14] ldr r2, [sp, 0x10] ldr r5, [sp, 0x30] ldr r0, [sp, 0x18] adds r1, r5, r0 ldr r4, [sp, 0x2C] adds r0, r5, r4 movs r5, 0x1 _080A3FF2: stm r2!, {r0} stm r3!, {r1} adds r1, 0x40 adds r0, 0x40 ldr r4, [sp, 0x30] adds r4, 0x40 str r4, [sp, 0x30] subs r5, 0x1 cmp r5, 0 bge _080A3FF2 movs r2, 0 ldr r5, [sp, 0x1C] mov r9, r5 _080A400C: mov r0, r8 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 1 mov r1, r9 adds r4, r1, r0 movs r5, 0x2 add r8, r5 mov r0, r12 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 1 mov r1, r9 adds r3, r1, r0 add r12, r5 movs r5, 0 adds r2, 0x1 mov r10, r2 ldr r7, [sp, 0x14] ldr r6, [sp, 0x10] _080A4038: ldr r1, [r6] ldr r2, [r7] ldrh r0, [r4] strh r0, [r1] adds r4, 0x2 adds r1, 0x2 ldrh r0, [r4] strh r0, [r1] adds r4, 0x2 adds r1, 0x2 ldrh r0, [r3] strh r0, [r2] adds r3, 0x2 adds r2, 0x2 ldrh r0, [r3] strh r0, [r2] adds r3, 0x2 adds r2, 0x2 stm r6!, {r1} stm r7!, {r2} adds r5, 0x1 cmp r5, 0x1 ble _080A4038 mov r2, r10 cmp r2, 0xF ble _080A400C ldr r3, [sp, 0x20] ldr r2, [sp, 0x24] ldr r1, [sp, 0x28] cmp r1, 0xA ble _080A3FCE add sp, 0x34 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80A3F94 thumb_func_start sub_80A4088 sub_80A4088: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 adds r4, r0, 0 ldr r0, [r4, 0x38] movs r1, 0x3 bl __modsi3 adds r7, r0, 0 ldr r0, [r4, 0x44] lsls r0, 6 ldr r1, [r4, 0x40] adds r0, r1 lsls r0, 1 ldr r1, [r4, 0x20] adds r1, r0 movs r0, 0 mov r8, r0 ldr r2, [r4, 0x28] str r2, [sp, 0xC] ldr r4, [r4, 0x1C] mov r12, r4 _080A40BA: adds r5, r1, 0 movs r1, 0x80 adds r1, r5 mov r9, r1 adds r0, 0x1 mov r10, r0 mov r1, sp mov r2, r8 lsls r0, r2, 1 ldr r2, [sp, 0xC] adds r0, r2 movs r3, 0x2 _080A40D2: stm r1!, {r0} adds r0, 0x40 movs r2, 0x20 add r8, r2 subs r3, 0x1 cmp r3, 0 bge _080A40D2 cmp r7, 0 beq _080A412E ldrh r1, [r5] lsls r0, r1, 3 adds r0, r1 lsls r0, 1 mov r1, r12 adds r2, r1, r0 adds r5, 0x2 cmp r7, 0x1 bne _080A4116 adds r2, 0x2 mov r4, sp movs r3, 0x2 _080A40FC: ldr r0, [r4] ldrh r1, [r2] strh r1, [r0] adds r0, 0x2 ldrh r1, [r2, 0x2] strh r1, [r0] adds r0, 0x2 stm r4!, {r0} adds r2, 0x6 subs r3, 0x1 cmp r3, 0 bge _080A40FC b _080A412E _080A4116: adds r2, 0x4 mov r4, sp movs r3, 0x2 _080A411C: ldr r1, [r4] ldrh r0, [r2] strh r0, [r1] adds r1, 0x2 stm r4!, {r1} adds r2, 0x6 subs r3, 0x1 cmp r3, 0 bge _080A411C _080A412E: movs r3, 0 _080A4130: ldrh r1, [r5] lsls r0, r1, 3 adds r0, r1 lsls r0, 1 mov r1, r12 adds r2, r1, r0 adds r5, 0x2 adds r6, r3, 0x1 mov r4, sp movs r3, 0x2 _080A4144: ldr r1, [r4] ldrh r0, [r2] strh r0, [r1] adds r2, 0x2 adds r1, 0x2 ldrh r0, [r2] strh r0, [r1] adds r2, 0x2 adds r1, 0x2 ldrh r0, [r2] strh r0, [r1] adds r2, 0x2 adds r1, 0x2 stm r4!, {r1} subs r3, 0x1 cmp r3, 0 bge _080A4144 adds r3, r6, 0 cmp r3, 0x9 ble _080A4130 cmp r7, 0x1 beq _080A41AA ldrh r1, [r5] lsls r0, r1, 3 adds r0, r1 lsls r0, 1 mov r1, r12 adds r2, r1, r0 cmp r7, 0 bne _080A4198 mov r4, sp movs r3, 0x2 _080A4184: ldm r4!, {r0} ldrh r1, [r2] strh r1, [r0] ldrh r1, [r2, 0x2] strh r1, [r0, 0x2] adds r2, 0x6 subs r3, 0x1 cmp r3, 0 bge _080A4184 b _080A41AA _080A4198: mov r4, sp movs r3, 0x2 _080A419C: ldm r4!, {r1} ldrh r0, [r2] strh r0, [r1] adds r2, 0x6 subs r3, 0x1 cmp r3, 0 bge _080A419C _080A41AA: mov r1, r9 mov r0, r10 cmp r0, 0x7 ble _080A40BA add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80A4088 thumb_func_start sub_80A41C4 sub_80A41C4: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x20 mov r8, r0 ldr r0, [r0, 0x38] movs r1, 0x3 bl __modsi3 str r0, [sp, 0xC] mov r0, r8 ldr r2, [r0, 0x44] lsls r0, r2, 6 mov r1, r8 ldr r3, [r1, 0x40] adds r0, r3 lsls r0, 1 ldr r1, [r1, 0x20] adds r4, r1, r0 movs r0, 0 str r0, [sp, 0x10] mov r1, r8 ldr r0, [r1, 0xC] subs r0, r2 mov r10, r0 ldr r0, [r1, 0x8] subs r0, r3 str r0, [sp, 0x14] movs r2, 0 _080A4202: ldr r5, [sp, 0x14] mov r3, r10 cmp r3, 0 ble _080A4212 movs r0, 0x1 negs r0, r0 add r10, r0 b _080A4222 _080A4212: mov r1, r8 ldr r1, [r1, 0xC] mov r10, r1 mov r3, r8 ldr r0, [r3, 0x40] lsls r0, 1 ldr r1, [r3, 0x20] adds r4, r1, r0 _080A4222: adds r6, r4, 0 mov r0, r8 ldr r1, [r0, 0x28] ldrh r7, [r4] ldr r3, [r0, 0x1C] mov r9, r3 adds r0, r4, 0x2 mov r12, r0 adds r4, 0x80 str r4, [sp, 0x18] adds r2, 0x1 str r2, [sp, 0x1C] mov r2, sp ldr r3, [sp, 0x10] lsls r0, r3, 1 adds r0, r1 movs r3, 0x2 _080A4244: stm r2!, {r0} adds r0, 0x40 ldr r4, [sp, 0x10] adds r4, 0x20 str r4, [sp, 0x10] subs r3, 0x1 cmp r3, 0 bge _080A4244 ldr r0, [sp, 0xC] cmp r0, 0 beq _080A42B2 lsls r0, r7, 3 adds r0, r7 lsls r0, 1 mov r1, r9 adds r2, r1, r0 mov r6, r12 ldr r3, [sp, 0xC] cmp r3, 0x1 bne _080A428C adds r2, 0x2 mov r4, sp movs r3, 0x2 _080A4272: ldr r0, [r4] ldrh r1, [r2] strh r1, [r0] adds r0, 0x2 ldrh r1, [r2, 0x2] strh r1, [r0] adds r0, 0x2 stm r4!, {r0} adds r2, 0x6 subs r3, 0x1 cmp r3, 0 bge _080A4272 b _080A42A4 _080A428C: adds r2, 0x4 mov r4, sp movs r3, 0x2 _080A4292: ldr r1, [r4] ldrh r0, [r2] strh r0, [r1] adds r1, 0x2 stm r4!, {r1} adds r2, 0x6 subs r3, 0x1 cmp r3, 0 bge _080A4292 _080A42A4: subs r5, 0x1 cmp r5, 0 bgt _080A42B2 mov r4, r8 ldr r5, [r4, 0x8] lsls r0, r5, 1 subs r6, r0 _080A42B2: movs r3, 0 _080A42B4: ldrh r1, [r6] lsls r0, r1, 3 adds r0, r1 lsls r0, 1 mov r1, r9 adds r2, r1, r0 adds r6, 0x2 subs r5, 0x1 adds r7, r3, 0x1 mov r4, sp movs r3, 0x2 _080A42CA: ldr r1, [r4] ldrh r0, [r2] strh r0, [r1] adds r2, 0x2 adds r1, 0x2 ldrh r0, [r2] strh r0, [r1] adds r2, 0x2 adds r1, 0x2 ldrh r0, [r2] strh r0, [r1] adds r2, 0x2 adds r1, 0x2 stm r4!, {r1} subs r3, 0x1 cmp r3, 0 bge _080A42CA cmp r5, 0 bgt _080A42F8 mov r3, r8 ldr r5, [r3, 0x8] lsls r0, r5, 1 subs r6, r0 _080A42F8: adds r3, r7, 0 cmp r3, 0x9 ble _080A42B4 ldr r4, [sp, 0xC] cmp r4, 0x1 beq _080A433E ldrh r1, [r6] lsls r0, r1, 3 adds r0, r1 lsls r0, 1 mov r1, r9 adds r2, r1, r0 cmp r4, 0 bne _080A432C mov r4, sp movs r3, 0x2 _080A4318: ldm r4!, {r0} ldrh r1, [r2] strh r1, [r0] ldrh r1, [r2, 0x2] strh r1, [r0, 0x2] adds r2, 0x6 subs r3, 0x1 cmp r3, 0 bge _080A4318 b _080A433E _080A432C: mov r4, sp movs r3, 0x2 _080A4330: ldm r4!, {r1} ldrh r0, [r2] strh r0, [r1] adds r2, 0x6 subs r3, 0x1 cmp r3, 0 bge _080A4330 _080A433E: ldr r4, [sp, 0x18] ldr r2, [sp, 0x1C] cmp r2, 0x7 bgt _080A4348 b _080A4202 _080A4348: add sp, 0x20 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80A41C4 thumb_func_start sub_80A4358 sub_80A4358: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x3C adds r4, r0, 0 ldr r0, [r4, 0x38] movs r1, 0x3 bl __modsi3 str r0, [sp, 0x18] ldr r0, [r4, 0x44] lsls r0, 6 ldr r1, [r4, 0x40] adds r0, r1 lsls r0, 1 ldr r1, [r4, 0x20] adds r2, r1, r0 ldr r1, [r4, 0x24] adds r1, r0 movs r0, 0 ldr r3, [r4, 0x28] str r3, [sp, 0x24] ldr r5, [r4, 0x2C] str r5, [sp, 0x28] ldr r4, [r4, 0x1C] str r4, [sp, 0x20] mov r3, sp adds r3, 0xC str r3, [sp, 0x1C] movs r4, 0 str r4, [sp, 0x38] _080A439A: mov r12, r2 mov r8, r1 mov r5, r12 adds r5, 0x80 str r5, [sp, 0x30] adds r1, 0x80 str r1, [sp, 0x34] adds r0, 0x1 str r0, [sp, 0x2C] add r3, sp, 0xC mov r2, sp ldr r4, [sp, 0x38] ldr r5, [sp, 0x28] adds r1, r4, r5 ldr r5, [sp, 0x24] adds r0, r4, r5 movs r5, 0x2 _080A43BC: stm r2!, {r0} stm r3!, {r1} adds r1, 0x40 adds r0, 0x40 ldr r4, [sp, 0x38] adds r4, 0x40 str r4, [sp, 0x38] subs r5, 0x1 cmp r5, 0 bge _080A43BC ldr r5, [sp, 0x18] cmp r5, 0 beq _080A445C mov r0, r12 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 1 ldr r1, [sp, 0x20] adds r4, r1, r0 movs r3, 0x2 add r12, r3 mov r5, r8 ldrh r1, [r5] lsls r0, r1, 3 adds r0, r1 lsls r0, 1 ldr r1, [sp, 0x20] adds r3, r1, r0 movs r5, 0x2 add r8, r5 ldr r0, [sp, 0x18] cmp r0, 0x1 bne _080A4434 adds r4, 0x2 adds r3, 0x2 ldr r7, [sp, 0x1C] mov r6, sp _080A4408: ldr r1, [r6] ldr r2, [r7] ldrh r0, [r4] strh r0, [r1] adds r1, 0x2 ldrh r0, [r4, 0x2] strh r0, [r1] adds r1, 0x2 ldrh r0, [r3] strh r0, [r2] adds r2, 0x2 ldrh r0, [r3, 0x2] strh r0, [r2] adds r2, 0x2 stm r6!, {r1} stm r7!, {r2} adds r4, 0x6 adds r3, 0x6 subs r5, 0x1 cmp r5, 0 bge _080A4408 b _080A445C _080A4434: adds r4, 0x4 adds r3, 0x4 ldr r6, [sp, 0x1C] mov r2, sp movs r5, 0x2 _080A443E: ldr r1, [r2] ldrh r0, [r4] strh r0, [r1] adds r1, 0x2 stm r2!, {r1} ldr r1, [r6] ldrh r0, [r3] strh r0, [r1] adds r1, 0x2 stm r6!, {r1} adds r4, 0x6 adds r3, 0x6 subs r5, 0x1 cmp r5, 0 bge _080A443E _080A445C: movs r2, 0 ldr r1, [sp, 0x20] mov r9, r1 _080A4462: mov r3, r12 ldrh r1, [r3] lsls r0, r1, 3 adds r0, r1 lsls r0, 1 mov r5, r9 adds r4, r5, r0 movs r0, 0x2 add r12, r0 mov r3, r8 ldrh r1, [r3] lsls r0, r1, 3 adds r0, r1 lsls r0, 1 adds r3, r5, r0 movs r5, 0x2 add r8, r5 movs r5, 0 adds r2, 0x1 mov r10, r2 mov r7, sp add r6, sp, 0xC _080A448E: ldr r1, [r7] ldr r2, [r6] ldrh r0, [r4] strh r0, [r1] adds r4, 0x2 adds r1, 0x2 ldrh r0, [r4] strh r0, [r1] adds r4, 0x2 adds r1, 0x2 ldrh r0, [r4] strh r0, [r1] adds r4, 0x2 adds r1, 0x2 ldrh r0, [r3] strh r0, [r2] adds r3, 0x2 adds r2, 0x2 ldrh r0, [r3] strh r0, [r2] adds r3, 0x2 adds r2, 0x2 ldrh r0, [r3] strh r0, [r2] adds r3, 0x2 adds r2, 0x2 stm r7!, {r1} stm r6!, {r2} adds r5, 0x1 cmp r5, 0x2 ble _080A448E mov r2, r10 cmp r2, 0x9 ble _080A4462 ldr r0, [sp, 0x18] cmp r0, 0x1 beq _080A453A mov r3, r12 ldrh r1, [r3] lsls r0, r1, 3 adds r0, r1 lsls r0, 1 ldr r5, [sp, 0x20] adds r4, r5, r0 mov r0, r8 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 1 adds r3, r5, r0 ldr r1, [sp, 0x18] cmp r1, 0 bne _080A451E ldr r7, [sp, 0x1C] mov r6, sp movs r5, 0x2 _080A44FE: ldm r6!, {r1} ldm r7!, {r2} ldrh r0, [r4] strh r0, [r1] ldrh r0, [r4, 0x2] strh r0, [r1, 0x2] ldrh r0, [r3] strh r0, [r2] ldrh r0, [r3, 0x2] strh r0, [r2, 0x2] adds r4, 0x6 adds r3, 0x6 subs r5, 0x1 cmp r5, 0 bge _080A44FE b _080A453A _080A451E: ldr r6, [sp, 0x1C] mov r2, sp movs r5, 0x2 _080A4524: ldm r2!, {r1} ldrh r0, [r4] strh r0, [r1] ldm r6!, {r1} ldrh r0, [r3] strh r0, [r1] adds r4, 0x6 adds r3, 0x6 subs r5, 0x1 cmp r5, 0 bge _080A4524 _080A453A: ldr r2, [sp, 0x30] ldr r1, [sp, 0x34] ldr r0, [sp, 0x2C] cmp r0, 0x7 bgt _080A4546 b _080A439A _080A4546: add sp, 0x3C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80A4358 thumb_func_start sub_80A4558 sub_80A4558: lsls r1, 3 movs r3, 0x8F lsls r3, 3 adds r0, r3 adds r0, r1 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [r2] str r1, [r2, 0x4] bx lr thumb_func_end sub_80A4558 thumb_func_start sub_80A456C sub_80A456C: lsls r1, 3 movs r3, 0x8F lsls r3, 3 adds r0, r3 adds r0, r1 ldr r1, [r2] ldr r2, [r2, 0x4] str r1, [r0] str r2, [r0, 0x4] bx lr thumb_func_end sub_80A456C thumb_func_start sub_80A4580 sub_80A4580: push {r4,lr} adds r3, r2, 0 lsls r2, r1, 2 adds r2, r1 lsls r2, 4 movs r1, 0x91 lsls r1, 3 adds r2, r1 adds r2, r0, r2 ldr r0, [r3] cmp r0, 0 bge _080A45AE ldrb r0, [r2, 0x6] ldr r4, [r3, 0x4] cmp r0, 0 beq _080A45CA ldr r1, [r2, 0x10] _080A45A2: ldr r0, [r3] adds r0, r1 str r0, [r3] cmp r0, 0 blt _080A45A2 b _080A45CC _080A45AE: ldr r1, [r2, 0x10] ldr r4, [r3, 0x4] cmp r0, r1 blt _080A45CC ldrb r0, [r2, 0x6] cmp r0, 0 beq _080A45C8 _080A45BC: ldr r0, [r3] subs r0, r1 str r0, [r3] cmp r0, r1 bge _080A45BC b _080A45CC _080A45C8: subs r0, r1, 0x1 _080A45CA: str r0, [r3] _080A45CC: cmp r4, 0 bge _080A45E4 ldrb r0, [r2, 0x6] cmp r0, 0 beq _080A45FE ldr r1, [r2, 0x14] _080A45D8: ldr r0, [r3, 0x4] adds r0, r1 str r0, [r3, 0x4] cmp r0, 0 blt _080A45D8 b _080A4600 _080A45E4: ldr r1, [r2, 0x14] cmp r4, r1 blt _080A4600 ldrb r0, [r2, 0x6] cmp r0, 0 beq _080A45FC _080A45F0: ldr r0, [r3, 0x4] subs r0, r1 str r0, [r3, 0x4] cmp r0, r1 bge _080A45F0 b _080A4600 _080A45FC: subs r0, r1, 0x1 _080A45FE: str r0, [r3, 0x4] _080A4600: pop {r4} pop {r0} bx r0 thumb_func_end sub_80A4580 thumb_func_start sub_80A4608 sub_80A4608: movs r3, 0x89 lsls r3, 3 adds r2, r0, r3 ldrb r2, [r2] str r2, [r1] ldr r2, _080A461C adds r0, r2 ldrb r0, [r0] str r0, [r1, 0x4] bx lr .align 2, 0 _080A461C: .4byte 0x00000449 thumb_func_end sub_80A4608 thumb_func_start sub_80A4620 sub_80A4620: movs r3, 0x89 lsls r3, 3 adds r2, r0, r3 ldrb r2, [r2] lsls r2, 3 str r2, [r1] ldr r2, _080A4638 adds r0, r2 ldrb r0, [r0] lsls r0, 3 str r0, [r1, 0x4] bx lr .align 2, 0 _080A4638: .4byte 0x00000449 thumb_func_end sub_80A4620 thumb_func_start sub_80A463C sub_80A463C: movs r3, 0 str r3, [r1] str r3, [r1, 0x4] movs r3, 0x89 lsls r3, 3 adds r1, r0, r3 ldrb r1, [r1] lsls r1, 11 str r1, [r2] ldr r1, _080A465C adds r0, r1 ldrb r0, [r0] lsls r0, 11 str r0, [r2, 0x4] bx lr .align 2, 0 _080A465C: .4byte 0x00000449 thumb_func_end sub_80A463C thumb_func_start sub_80A4660 sub_80A4660: push {r4-r7,lr} adds r6, r3, 0 lsls r1, 24 lsrs r5, r1, 24 ldr r1, _080A4678 adds r0, r1 ldr r4, [r0] cmp r4, 0 bne _080A467C movs r0, 0 b _080A46B6 .align 2, 0 _080A4678: .4byte 0x00000544 _080A467C: ldr r0, [r2, 0x4] lsls r0, 8 ldr r1, [r2] adds r0, r1 ldr r1, _080A46BC adds r0, r1 adds r4, r0 ldr r3, [r6, 0x4] cmp r3, 0 ble _080A46B4 movs r7, 0x80 lsls r7, 1 _080A4694: ldr r1, [r6] adds r2, r4, 0 cmp r1, 0 ble _080A46AC _080A469C: ldrb r0, [r2] ands r0, r5 adds r2, 0x1 cmp r0, 0 bne _080A46B6 subs r1, 0x1 cmp r1, 0 bgt _080A469C _080A46AC: adds r4, r7 subs r3, 0x1 cmp r3, 0 bgt _080A4694 _080A46B4: movs r0, 0 _080A46B6: pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080A46BC: .4byte 0x00000405 thumb_func_end sub_80A4660 thumb_func_start sub_80A46C0 sub_80A46C0: push {r4-r7,lr} adds r6, r3, 0 lsls r1, 24 lsrs r5, r1, 24 ldr r1, _080A46D8 adds r0, r1 ldr r4, [r0] cmp r4, 0 bne _080A46DC _080A46D2: movs r0, 0 b _080A4716 .align 2, 0 _080A46D8: .4byte 0x00000544 _080A46DC: ldr r0, [r2, 0x4] lsls r0, 8 ldr r1, [r2] adds r0, r1 ldr r1, _080A471C adds r0, r1 adds r4, r0 ldr r3, [r6, 0x4] cmp r3, 0 ble _080A4714 movs r7, 0x80 lsls r7, 1 _080A46F4: ldr r1, [r6] adds r2, r4, 0 cmp r1, 0 ble _080A470C _080A46FC: ldrb r0, [r2] ands r0, r5 adds r2, 0x1 cmp r0, r5 bne _080A46D2 subs r1, 0x1 cmp r1, 0 bgt _080A46FC _080A470C: adds r4, r7 subs r3, 0x1 cmp r3, 0 bgt _080A46F4 _080A4714: movs r0, 0x1 _080A4716: pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080A471C: .4byte 0x00000405 thumb_func_end sub_80A46C0 thumb_func_start sub_80A4720 sub_80A4720: lsls r1, 2 ldr r3, _080A473C adds r0, r3 adds r0, r1 ldr r1, [r2, 0x4] lsls r1, 7 ldr r3, [r0] adds r3, r1 ldr r0, [r2] lsls r0, 1 adds r3, r0 ldrh r0, [r3] bx lr .align 2, 0 _080A473C: .4byte 0x0000054c thumb_func_end sub_80A4720 thumb_func_start sub_80A4740 sub_80A4740: push {r4,lr} lsls r1, 2 ldr r4, _080A4760 adds r0, r4 adds r0, r1 ldr r1, [r2, 0x4] lsls r1, 7 ldr r4, [r0] adds r4, r1 ldr r0, [r2] lsls r0, 1 adds r4, r0 strh r3, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _080A4760: .4byte 0x0000054c thumb_func_end sub_80A4740 thumb_func_start sub_80A4764 sub_80A4764: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 mov r9, r0 ldr r0, _080A47E8 add r0, r9 movs r2, 0 ldrsh r1, [r0, r2] movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _080A4784 b _080A49CE _080A4784: ldr r0, _080A47EC add r0, r9 movs r6, 0 ldrsh r0, [r0, r6] cmp r0, 0 beq _080A4864 mov r4, r9 ldr r0, _080A47F0 add r0, r9 ldr r5, [r0] ldr r0, _080A47F4 add r0, r9 movs r1, 0 ldrsh r0, [r0, r1] lsls r0, 20 lsrs r6, r0, 16 movs r7, 0 ldr r0, _080A47F8 add r0, r9 movs r2, 0 ldrsh r0, [r0, r2] cmp r7, r0 bge _080A484C _080A47B2: ldr r1, [r4, 0x4] cmp r1, 0 beq _080A4832 ldrh r0, [r4, 0x2] subs r0, 0x1 strh r0, [r4, 0x2] lsls r0, 16 cmp r0, 0 bgt _080A4832 ldrh r0, [r4] subs r0, 0x1 strh r0, [r4] lsls r0, 16 cmp r0, 0 bgt _080A4808 ldr r0, _080A47FC add r0, r9 ldrb r0, [r0] cmp r0, 0 beq _080A4800 ldrh r0, [r5] strh r0, [r4, 0x2] ldrh r0, [r5, 0x2] strh r0, [r4] str r1, [r4, 0x8] b _080A480C .align 2, 0 _080A47E8: .4byte 0x00000444 _080A47EC: .4byte 0x00000466 _080A47F0: .4byte 0x0000046c _080A47F4: .4byte 0x0000052c _080A47F8: .4byte 0x00000464 _080A47FC: .4byte 0x00000471 _080A4800: strh r0, [r4] strh r0, [r4, 0x2] str r0, [r4, 0x8] b _080A480C _080A4808: ldrh r0, [r5] strh r0, [r4, 0x2] _080A480C: ldr r0, [r4, 0x8] cmp r0, 0 beq _080A4832 movs r0, 0 str r0, [sp] adds r0, r6, 0 movs r1, 0 bl sub_8003810 adds r0, r6, 0x1 lsls r0, 16 lsrs r0, 16 ldr r1, [r4, 0x8] movs r2, 0xF bl sub_809971C ldr r0, [r4, 0x8] adds r0, 0x3C str r0, [r4, 0x8] _080A4832: adds r7, 0x1 adds r4, 0x10 adds r5, 0x4 adds r0, r6, 0 adds r0, 0x10 lsls r0, 16 lsrs r6, r0, 16 ldr r0, _080A485C add r0, r9 movs r1, 0 ldrsh r0, [r0, r1] cmp r7, r0 blt _080A47B2 _080A484C: movs r0, 0x8E lsls r0, 3 add r0, r9 ldrb r1, [r0] ldr r0, _080A4860 add r0, r9 strb r1, [r0] b _080A48E6 .align 2, 0 _080A485C: .4byte 0x00000464 _080A4860: .4byte 0x00000471 _080A4864: movs r0, 0x88 lsls r0, 3 add r0, r9 ldr r0, [r0] cmp r0, 0 beq _080A48E6 mov r4, r9 adds r4, 0xE0 movs r6, 0xA0 movs r5, 0x1F _080A4878: adds r0, r4, 0 movs r1, 0x1 bl sub_8004D14 lsls r0, 24 cmp r0, 0 beq _080A48DC adds r0, r4, 0 movs r1, 0x1 bl sub_8004D40 lsls r0, 24 cmp r0, 0 bne _080A48DC ldrh r0, [r4, 0x6] subs r0, 0x1 strh r0, [r4, 0x6] lsls r0, 16 cmp r0, 0 bgt _080A48DC ldrh r0, [r4, 0x4] strh r0, [r4, 0x6] ldr r1, [r4, 0xC] ldr r0, [r4, 0x10] cmp r1, r0 bcc _080A48B0 ldr r0, [r4, 0x8] str r0, [r4, 0xC] _080A48B0: ldr r1, [r4, 0xC] ldm r1!, {r0} str r0, [r4, 0x14] str r1, [r4, 0xC] ldrb r1, [r4, 0x14] add r0, sp, 0x4 strb r1, [r0] ldrb r1, [r4, 0x15] adds r0, 0x1 strb r1, [r0] ldrb r1, [r4, 0x16] adds r0, 0x1 strb r1, [r0] ldrb r1, [r4, 0x17] adds r0, 0x1 strb r1, [r0] ldr r1, [sp, 0x4] str r1, [sp] lsls r0, r6, 16 lsrs r0, 16 bl sub_8003810 _080A48DC: subs r5, 0x1 adds r4, 0x18 adds r6, 0x1 cmp r5, 0 bge _080A4878 _080A48E6: movs r5, 0 movs r4, 0x1 _080A48EA: movs r2, 0xF8 lsls r2, 2 adds r0, r5, r2 mov r6, r9 adds r2, r6, r0 ldrb r0, [r2] cmp r0, 0 beq _080A4942 ldrh r1, [r2, 0x4] subs r0, r1, 0x1 strh r0, [r2, 0x4] lsls r1, 16 cmp r1, 0 bgt _080A4942 ldr r0, [r2, 0x14] adds r0, 0x4 str r0, [r2, 0x14] ldr r1, [r2, 0x24] lsrs r1, 1 lsls r1, 1 ldr r0, [r2, 0x1C] adds r0, r1 str r0, [r2, 0x1C] ldrh r0, [r2, 0x2] adds r0, 0x1 movs r3, 0 strh r0, [r2, 0x2] ldr r1, [r2, 0xC] lsls r0, 16 asrs r0, 16 movs r6, 0x2 ldrsh r1, [r1, r6] cmp r0, r1 blt _080A4938 ldr r0, [r2, 0x10] str r0, [r2, 0x14] ldr r0, [r2, 0x18] str r0, [r2, 0x1C] strh r3, [r2, 0x2] _080A4938: movs r0, 0x1 strb r0, [r2, 0x1] ldr r0, [r2, 0x14] ldr r0, [r0] strh r0, [r2, 0x4] _080A4942: adds r5, 0x28 subs r4, 0x1 cmp r4, 0 bge _080A48EA movs r4, 0x91 lsls r4, 3 add r4, r9 movs r7, 0x8F lsls r7, 3 add r7, r9 movs r0, 0 mov r8, r0 b _080A49BC _080A495C: adds r0, r4, 0 adds r1, r7, 0 bl sub_80A3E14 adds r0, r4, 0 bl sub_80A3EB0 movs r6, 0 movs r2, 0x2 ldrsh r1, [r4, r2] ldr r0, _080A4998 add r0, r9 movs r2, 0 ldrsh r0, [r0, r2] adds r5, r1, r0 movs r1, 0x4 ldrsh r0, [r4, r1] movs r2, 0x1 add r8, r2 movs r1, 0x50 adds r1, r4 mov r10, r1 adds r7, 0x8 cmp r6, r0 bge _080A49BA _080A498E: cmp r5, 0 beq _080A499C cmp r5, 0x1 beq _080A49A6 b _080A49AE .align 2, 0 _080A4998: .4byte 0x00000536 _080A499C: ldr r0, [r4, 0x48] ldr r1, [r4, 0x4C] bl sub_800CCA0 b _080A49AE _080A49A6: ldr r0, [r4, 0x48] ldr r1, [r4, 0x4C] bl sub_800CCAC _080A49AE: adds r6, 0x1 adds r5, 0x1 movs r2, 0x4 ldrsh r0, [r4, r2] cmp r6, r0 blt _080A498E _080A49BA: mov r4, r10 _080A49BC: ldr r0, _080A49E0 add r0, r9 ldr r0, [r0] cmp r8, r0 blt _080A495C ldr r1, _080A49E4 add r1, r9 movs r0, 0x1 strb r0, [r1] _080A49CE: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080A49E0: .4byte 0x00000474 _080A49E4: .4byte 0x0000052a thumb_func_end sub_80A4764 thumb_func_start sub_80A49E8 sub_80A49E8: push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 ldr r0, _080A4A74 adds r5, r6, r0 movs r1, 0xFF lsls r1, 2 adds r4, r6, r1 ldr r0, _080A4A78 adds r0, r6 mov r8, r0 movs r7, 0x1 _080A4A02: ldrb r0, [r5] cmp r0, 0 beq _080A4A1C ldr r0, [r4, 0x4] ldr r1, [r4] ldr r2, [r4, 0x8] bl MemoryCopy32 movs r0, 0 strb r0, [r5] movs r0, 0x1 mov r1, r8 strb r0, [r1] _080A4A1C: adds r5, 0x28 adds r4, 0x28 subs r7, 0x1 cmp r7, 0 bge _080A4A02 ldr r1, _080A4A78 adds r0, r6, r1 ldrb r0, [r0] cmp r0, 0 beq _080A4A68 movs r5, 0 adds r1, 0xC adds r0, r6, r1 movs r1, 0 ldrsh r4, [r0, r1] movs r1, 0xA7 lsls r1, 3 adds r0, r6, r1 movs r1, 0 ldrsh r0, [r0, r1] cmp r5, r0 bge _080A4A60 movs r0, 0xA7 lsls r0, 3 adds r7, r6, r0 _080A4A4E: adds r0, r4, 0x2 bl sub_80098F8 adds r5, 0x1 adds r4, 0x1 movs r1, 0 ldrsh r0, [r7, r1] cmp r5, r0 blt _080A4A4E _080A4A60: ldr r0, _080A4A78 adds r1, r6, r0 movs r0, 0 strb r0, [r1] _080A4A68: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080A4A74: .4byte 0x000003e1 _080A4A78: .4byte 0x0000052a thumb_func_end sub_80A49E8 thumb_func_start sub_80A4A7C sub_80A4A7C: push {r4,lr} sub sp, 0x4 ldr r4, _080A4AB8 movs r0, 0x88 lsls r0, 1 movs r1, 0x6 bl MemoryAlloc str r0, [r4] adds r2, r0, 0 adds r2, 0xE4 ldr r1, _080A4ABC strh r1, [r2] ldr r1, _080A4AC0 movs r3, 0x1 negs r3, r3 str r3, [sp] movs r2, 0 bl sub_809D600 movs r0, 0 bl sub_80A5E8C bl sub_80A4AEC add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080A4AB8: .4byte gUnknown_3001B6C _080A4ABC: .4byte 0x0000ffff _080A4AC0: .4byte gUnknown_811736C thumb_func_end sub_80A4A7C thumb_func_start sub_80A4AC4 sub_80A4AC4: push {r4,lr} bl sub_80A4AEC bl sub_80A5EBC ldr r4, _080A4AE8 ldr r0, [r4] bl sub_809D648 ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _080A4AE8: .4byte gUnknown_3001B6C thumb_func_end sub_80A4AC4 thumb_func_start sub_80A4AEC sub_80A4AEC: push {r4,lr} movs r0, 0 movs r1, 0x37 bl sub_80015C0 movs r0, 0 movs r1, 0x38 bl sub_80015C0 ldr r0, _080A4B2C ldr r0, [r0] ldr r1, _080A4B30 bl sub_809D754 ldr r4, _080A4B34 ldr r0, [r4] cmp r0, 0 beq _080A4B1E bl sub_80A2D00 ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _080A4B1E: movs r0, 0 bl sub_80A5EDC pop {r4} pop {r0} bx r0 .align 2, 0 _080A4B2C: .4byte gUnknown_3001B6C _080A4B30: .4byte gUnknown_8117538 _080A4B34: .4byte gUnknown_3001B70 thumb_func_end sub_80A4AEC thumb_func_start sub_80A4B38 sub_80A4B38: push {lr} bl nullsub_121 ldr r0, _080A4B50 ldr r0, [r0] cmp r0, 0 beq _080A4B4A bl sub_80A2D68 _080A4B4A: pop {r0} bx r0 .align 2, 0 _080A4B50: .4byte gUnknown_3001B70 thumb_func_end sub_80A4B38 thumb_func_start sub_80A4B54 sub_80A4B54: push {lr} ldr r0, _080A4B6C ldr r0, [r0] cmp r0, 0 beq _080A4B62 bl sub_80A2D88 _080A4B62: bl nullsub_122 pop {r0} bx r0 .align 2, 0 _080A4B6C: .4byte gUnknown_3001B70 thumb_func_end sub_80A4B54 thumb_func_start sub_80A4B70 sub_80A4B70: push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x4 mov r8, r0 adds r4, r1, 0 adds r6, r2, 0 adds r5, r3, 0 lsls r4, 16 asrs r4, 16 lsls r6, 16 asrs r6, 16 lsls r5, 24 asrs r5, 24 adds r0, r4, 0 bl sub_80A77A0 ldr r1, _080A4BE0 adds r0, r4, 0 bl sub_80A77D0 mov r9, r0 ldr r1, _080A4BE4 str r5, [sp] movs r0, 0 adds r2, r4, 0 adds r3, r6, 0 bl Log lsls r1, r6, 3 mov r2, r9 ldr r0, [r2, 0x4] adds r0, r1 lsls r1, r5, 2 adds r1, r5 lsls r1, 3 ldr r0, [r0, 0x4] adds r0, r1 ldr r0, [r0, 0x24] ldr r0, [r0] ldr r0, [r0, 0x8] mov r1, r8 str r0, [r1] movs r0, 0x2 strh r0, [r1, 0x4] strh r6, [r1, 0x6] strb r5, [r1, 0x8] add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080A4BE0: .4byte gUnknown_8117560 _080A4BE4: .4byte gUnknown_811756C thumb_func_end sub_80A4B70 thumb_func_start sub_80A4BE8 sub_80A4BE8: push {lr} lsls r1, 16 asrs r1, 16 movs r2, 0 movs r3, 0 bl sub_80A4B70 pop {r0} bx r0 thumb_func_end sub_80A4BE8 thumb_func_start sub_80A4BFC sub_80A4BFC: push {r4,r5,lr} sub sp, 0xC adds r4, r0, 0 adds r5, r1, 0 lsls r4, 16 asrs r4, 16 lsls r5, 24 lsrs r5, 24 ldr r1, _080A4C44 movs r0, 0 adds r2, r4, 0 adds r3, r5, 0 bl Log movs r0, 0 mov r1, sp adds r2, r4, 0 bl sub_809D710 cmp r5, 0 beq _080A4C2C mov r1, sp movs r0, 0x5 strh r0, [r1, 0x4] _080A4C2C: ldr r0, _080A4C48 ldr r0, [r0] ldr r3, _080A4C4C movs r1, 0 mov r2, sp bl sub_809D790 add sp, 0xC pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080A4C44: .4byte gUnknown_8117594 _080A4C48: .4byte gUnknown_3001B6C _080A4C4C: .4byte gUnknown_81175E0 thumb_func_end sub_80A4BFC thumb_func_start sub_80A4C50 sub_80A4C50: push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x14 adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 mov r8, r3 lsls r4, 16 asrs r4, 16 lsls r5, 16 asrs r5, 16 lsls r6, 24 asrs r6, 24 mov r0, r8 lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r1, _080A4CB8 str r6, [sp] str r0, [sp, 0x4] movs r0, 0 adds r2, r4, 0 adds r3, r5, 0 bl Log add r0, sp, 0x8 adds r1, r4, 0 adds r2, r5, 0 adds r3, r6, 0 bl sub_80A4B70 mov r0, r8 cmp r0, 0 beq _080A4C9C add r1, sp, 0x8 movs r0, 0x5 strh r0, [r1, 0x4] _080A4C9C: ldr r0, _080A4CBC ldr r0, [r0] ldr r3, _080A4CC0 movs r1, 0 add r2, sp, 0x8 bl sub_809D790 add sp, 0x14 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080A4CB8: .4byte gUnknown_81175EC _080A4CBC: .4byte gUnknown_3001B6C _080A4CC0: .4byte gUnknown_8117644 thumb_func_end sub_80A4C50 thumb_func_start sub_80A4CC4 sub_80A4CC4: push {r4,lr} sub sp, 0xC adds r4, r0, 0 lsls r4, 16 asrs r4, 16 ldr r1, _080A4D08 movs r0, 0 adds r2, r4, 0 bl Log mov r0, sp adds r1, r4, 0 bl sub_80A4BE8 mov r1, sp movs r3, 0 movs r2, 0 movs r0, 0x2 strh r0, [r1, 0x4] mov r0, sp strh r2, [r0, 0x6] strb r3, [r0, 0x8] ldr r0, _080A4D0C ldr r0, [r0] ldr r3, _080A4D10 movs r1, 0 mov r2, sp bl sub_809D790 add sp, 0xC pop {r4} pop {r0} bx r0 .align 2, 0 _080A4D08: .4byte gUnknown_8117650 _080A4D0C: .4byte gUnknown_3001B6C _080A4D10: .4byte gUnknown_8117698 thumb_func_end sub_80A4CC4 thumb_func_start sub_80A4D14 sub_80A4D14: push {lr} ldr r0, _080A4D28 ldr r0, [r0] bl sub_809D678 lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _080A4D28: .4byte gUnknown_3001B6C thumb_func_end sub_80A4D14 thumb_func_start sub_80A4D2C sub_80A4D2C: push {lr} adds r1, r0, 0 lsls r1, 16 asrs r1, 16 ldr r0, _080A4D44 ldr r0, [r0] bl sub_809D968 lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _080A4D44: .4byte gUnknown_3001B6C thumb_func_end sub_80A4D2C thumb_func_start sub_80A4D48 sub_80A4D48: push {lr} lsls r0, 16 asrs r2, r0, 16 movs r0, 0x1 negs r0, r0 cmp r2, r0 beq _080A4D74 ldr r1, _080A4D70 lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0x5 beq _080A4D6C cmp r0, 0x8 bne _080A4D74 _080A4D6C: movs r0, 0 b _080A4D76 .align 2, 0 _080A4D70: .4byte gUnknown_811BAF4 _080A4D74: movs r0, 0x1 _080A4D76: pop {r1} bx r1 thumb_func_end sub_80A4D48 thumb_func_start sub_80A4D7C sub_80A4D7C: push {r4,r5,lr} lsls r0, 16 asrs r5, r0, 16 cmp r5, 0x9 beq _080A4D94 cmp r5, 0x9 bgt _080A4D90 cmp r5, 0x2 beq _080A4DB6 b _080A4DC4 _080A4D90: cmp r5, 0xC bne _080A4DC4 _080A4D94: movs r0, 0 movs r1, 0x27 bl sub_8001658 adds r4, r0, 0 movs r0, 0 movs r1, 0x28 bl sub_8001658 lsls r1, r4, 1 adds r1, r4 lsls r1, 1 adds r1, r0 adds r1, r5, r1 lsls r1, 16 asrs r5, r1, 16 b _080A4DC4 _080A4DB6: movs r0, 0x6 bl sub_80023E4 lsls r0, 24 cmp r0, 0 beq _080A4DC4 movs r5, 0x3 _080A4DC4: adds r0, r5, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80A4D7C thumb_func_start sub_80A4DCC sub_80A4DCC: push {r4-r6,lr} lsls r0, 16 asrs r5, r0, 16 ldr r1, _080A4E38 movs r0, 0 adds r2, r5, 0 bl Log movs r0, 0 movs r1, 0x37 bl sub_80015C0 movs r0, 0 movs r1, 0x38 bl sub_80015C0 movs r0, 0 bl sub_80A5EDC ldr r4, _080A4E3C ldr r0, [r4] cmp r0, 0 beq _080A4E08 bl sub_80A2D00 ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _080A4E08: ldr r0, _080A4E40 movs r1, 0x6 bl MemoryAlloc adds r2, r0, 0 str r2, [r4] ldr r0, _080A4E44 ldr r0, [r0] adds r0, 0xE4 strh r5, [r0] movs r0, 0x1 negs r0, r0 cmp r5, r0 bne _080A4E4C ldr r1, _080A4E48 adds r0, r2, 0 bl sub_80A2B40 ldr r0, [r4] adds r1, r5, 0 bl sub_80A2FBC b _080A50BA .align 2, 0 _080A4E38: .4byte gUnknown_81176A4 _080A4E3C: .4byte gUnknown_3001B70 _080A4E40: .4byte 0x0000055c _080A4E44: .4byte gUnknown_3001B6C _080A4E48: .4byte gUnknown_8117324 _080A4E4C: lsls r0, r5, 1 adds r0, r5 lsls r0, 2 ldr r1, _080A4E6C adds r6, r0, r1 ldrh r0, [r6] adds r0, 0x1 lsls r0, 16 asrs r0, 16 cmp r0, 0xC bhi _080A4F20 lsls r0, 2 ldr r1, _080A4E70 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080A4E6C: .4byte gUnknown_811BAF4 _080A4E70: .4byte _080A4E74 .align 2, 0 _080A4E74: .4byte _080A4F08 .4byte _080A4F20 .4byte _080A4F20 .4byte _080A4F20 .4byte _080A4F20 .4byte _080A4F20 .4byte _080A4EA8 .4byte _080A4EA8 .4byte _080A4EA8 .4byte _080A4EA8 .4byte _080A4EA8 .4byte _080A4ECC .4byte _080A4ECC _080A4EA8: ldr r0, _080A4EC0 ldr r0, [r0] ldr r1, _080A4EC4 bl sub_80A2B40 ldr r1, _080A4EC8 movs r2, 0x80 lsls r2, 5 adds r0, r2, 0 strh r0, [r1] b _080A4F30 .align 2, 0 _080A4EC0: .4byte gUnknown_3001B70 _080A4EC4: .4byte gUnknown_811733C _080A4EC8: .4byte gUnknown_2026E4E _080A4ECC: ldr r4, _080A4EDC movs r1, 0 ldrsh r0, [r4, r1] movs r1, 0x1 negs r1, r1 ldr r6, _080A4EE0 b _080A4EEA .align 2, 0 _080A4EDC: .4byte gUnknown_81173C0 _080A4EE0: .4byte gUnknown_3001B70 _080A4EE4: adds r4, 0xC movs r2, 0 ldrsh r0, [r4, r2] _080A4EEA: cmp r0, r1 beq _080A4EF2 cmp r0, r5 bne _080A4EE4 _080A4EF2: ldr r0, [r6] bl MemoryFree movs r0, 0 str r0, [r6] adds r1, r4, 0x4 ldr r2, [r4, 0x8] adds r0, r5, 0 bl sub_80A50C8 b _080A50BA _080A4F08: ldr r0, _080A4F18 ldr r1, _080A4F1C movs r2, 0 ldrsh r3, [r6, r2] adds r2, r5, 0 bl FatalError .align 2, 0 _080A4F18: .4byte gUnknown_81176D0 _080A4F1C: .4byte gUnknown_81176DC _080A4F20: ldr r0, _080A4FA0 ldr r0, [r0] ldr r1, _080A4FA4 bl sub_80A2B40 movs r0, 0x1 bl sub_80A5EDC _080A4F30: ldr r5, _080A4FA0 ldr r0, [r5] movs r2, 0x4 ldrsh r1, [r6, r2] bl sub_80A2FBC ldr r0, _080A4FA8 ldr r0, [r0] mov r12, r0 adds r0, 0xE8 movs r1, 0 str r1, [r0] adds r0, 0x4 str r1, [r0] adds r0, 0x4 str r1, [r0] adds r0, 0x4 str r1, [r0] adds r0, 0x4 str r1, [r0] adds r0, 0x4 str r1, [r0] movs r4, 0x80 lsls r4, 1 add r4, r12 movs r3, 0x82 lsls r3, 1 add r3, r12 movs r2, 0x84 lsls r2, 1 add r2, r12 movs r0, 0x86 lsls r0, 1 add r0, r12 str r1, [r0] str r1, [r2] str r1, [r3] str r1, [r4] mov r0, r12 adds r0, 0xE4 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0xAD beq _080A5034 cmp r0, 0xAD bgt _080A4FC0 cmp r0, 0xA3 bgt _080A4FAC cmp r0, 0xA2 bge _080A4FEE cmp r0, 0x4 beq _080A5084 cmp r0, 0xA1 beq _080A5084 b _080A50A2 .align 2, 0 _080A4FA0: .4byte gUnknown_3001B70 _080A4FA4: .4byte gUnknown_8117324 _080A4FA8: .4byte gUnknown_3001B6C _080A4FAC: cmp r0, 0xAA beq _080A500C cmp r0, 0xAA bgt _080A4FBA cmp r0, 0xA8 beq _080A500C b _080A50A2 _080A4FBA: cmp r0, 0xAB beq _080A5018 b _080A50A2 _080A4FC0: cmp r0, 0xBA beq _080A506A cmp r0, 0xBA bgt _080A4FD6 cmp r0, 0xAF beq _080A5072 cmp r0, 0xAF blt _080A5044 cmp r0, 0xB0 beq _080A5060 b _080A50A2 _080A4FD6: cmp r0, 0xDF beq _080A4FEE cmp r0, 0xDF bgt _080A4FE4 cmp r0, 0xC0 beq _080A5020 b _080A50A2 _080A4FE4: cmp r0, 0xE0 beq _080A508E cmp r0, 0xE1 beq _080A5096 b _080A50A2 _080A4FEE: ldr r0, _080A5000 ldr r0, [r0] movs r1, 0x4 bl sub_80A3BB0 ldr r1, _080A5004 ldr r2, _080A5008 b _080A5050 .align 2, 0 _080A5000: .4byte gUnknown_3001B70 _080A5004: .4byte gUnknown_2026E4E _080A5008: .4byte 0x00000808 _080A500C: ldr r0, _080A5014 ldr r0, [r0] b _080A5062 .align 2, 0 _080A5014: .4byte gUnknown_3001B70 _080A5018: ldr r0, [r5] movs r1, 0x1 bl sub_80A3BB0 _080A5020: ldr r0, _080A5030 ldr r0, [r0] movs r1, 0 movs r2, 0 bl sub_80A3B80 b _080A50A2 .align 2, 0 _080A5030: .4byte gUnknown_3001B70 _080A5034: ldr r1, _080A503C ldr r2, _080A5040 b _080A5050 .align 2, 0 _080A503C: .4byte gUnknown_2026E4E _080A5040: .4byte 0x00001010 _080A5044: ldr r0, [r5] movs r1, 0x4 bl sub_80A3BB0 ldr r1, _080A5058 ldr r2, _080A505C _080A5050: adds r0, r2, 0 strh r0, [r1] b _080A50A2 .align 2, 0 _080A5058: .4byte gUnknown_2026E4E _080A505C: .4byte 0x0000080c _080A5060: ldr r0, [r5] _080A5062: movs r1, 0x1 bl sub_80A3BB0 b _080A50A2 _080A506A: ldr r0, _080A507C ldr r2, _080A5080 adds r1, r2, 0 strh r1, [r0] _080A5072: ldr r0, [r5] movs r1, 0x4 bl sub_80A3BB0 b _080A50A2 .align 2, 0 _080A507C: .4byte gUnknown_2026E4E _080A5080: .4byte 0x00001010 _080A5084: ldr r0, [r5] movs r1, 0x3 bl sub_80A3BB0 b _080A50A2 _080A508E: ldr r0, [r5] movs r1, 0x3 bl sub_80A3BB0 _080A5096: ldr r0, _080A50C0 ldr r0, [r0] movs r1, 0 movs r2, 0 bl sub_80A3B80 _080A50A2: movs r0, 0x6 ldrsh r1, [r6, r0] movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _080A50B4 adds r0, r1, 0 bl sub_80A5F50 _080A50B4: ldr r0, _080A50C4 bl sub_80A56D8 _080A50BA: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080A50C0: .4byte gUnknown_3001B70 _080A50C4: .4byte gUnknown_81176F8 thumb_func_end sub_80A4DCC thumb_func_start sub_80A50C8 sub_80A50C8: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} mov r8, r1 mov r10, r2 lsls r0, 16 asrs r5, r0, 16 ldr r1, _080A514C movs r0, 0 adds r2, r5, 0 bl Log movs r0, 0 movs r1, 0x37 bl sub_80015C0 movs r0, 0 movs r1, 0x38 bl sub_80015C0 movs r0, 0 bl sub_80A5EDC ldr r7, _080A5150 ldr r0, [r7] cmp r0, 0 beq _080A5110 bl sub_80A2D00 ldr r0, [r7] bl MemoryFree movs r0, 0 str r0, [r7] _080A5110: ldr r0, _080A5154 movs r1, 0x6 bl MemoryAlloc adds r2, r0, 0 str r2, [r7] ldr r0, _080A5158 mov r9, r0 ldr r0, [r0] adds r0, 0xE4 movs r4, 0 strh r5, [r0] movs r6, 0x1 negs r6, r6 cmp r5, r6 beq _080A5138 mov r1, r8 ldrb r0, [r1] cmp r0, 0x63 bne _080A5160 _080A5138: ldr r1, _080A515C adds r0, r2, 0 bl sub_80A2B40 ldr r0, [r7] adds r1, r6, 0 bl sub_80A2FBC b _080A51EC .align 2, 0 _080A514C: .4byte gUnknown_8117700 _080A5150: .4byte gUnknown_3001B70 _080A5154: .4byte 0x0000055c _080A5158: .4byte gUnknown_3001B6C _080A515C: .4byte gUnknown_8117324 _080A5160: lsls r0, r5, 1 adds r0, r5 lsls r0, 2 ldr r1, _080A5180 adds r6, r0, r1 ldrh r0, [r6] subs r0, 0xA lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bls _080A518C ldr r0, _080A5184 ldr r1, _080A5188 adds r2, r5, 0 bl FatalError .align 2, 0 _080A5180: .4byte gUnknown_811BAF4 _080A5184: .4byte gUnknown_8117734 _080A5188: .4byte gUnknown_8117740 _080A518C: ldr r1, _080A51FC adds r0, r2, 0 bl sub_80A2B40 movs r0, 0x1 bl sub_80A5EDC ldr r0, [r7] movs r2, 0x4 ldrsh r1, [r6, r2] mov r2, r8 mov r3, r10 bl sub_80A3440 mov r0, r9 ldr r0, [r0] mov r12, r0 adds r0, 0xE8 str r4, [r0] adds r0, 0x4 str r4, [r0] adds r0, 0x4 str r4, [r0] adds r0, 0x4 str r4, [r0] adds r0, 0x4 str r4, [r0] adds r0, 0x4 str r4, [r0] movs r3, 0x80 lsls r3, 1 add r3, r12 movs r2, 0x82 lsls r2, 1 add r2, r12 movs r1, 0x84 lsls r1, 1 add r1, r12 movs r0, 0x86 lsls r0, 1 add r0, r12 str r4, [r0] str r4, [r1] str r4, [r2] str r4, [r3] ldr r0, _080A5200 bl sub_80A56D8 _080A51EC: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080A51FC: .4byte gUnknown_8117354 _080A5200: .4byte gUnknown_8117754 thumb_func_end sub_80A50C8 thumb_func_start sub_80A5204 sub_80A5204: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x18 str r0, [sp] mov r8, r1 str r2, [sp, 0x4] str r3, [sp, 0x8] movs r1, 0x8 ldrsh r0, [r2, r1] cmp r0, 0 bgt _080A5222 b _080A53EA _080A5222: mov r5, r8 ldr r2, [sp] mov r12, r2 movs r0, 0 ldr r3, [sp, 0x4] ldrb r3, [r3, 0x1] str r3, [sp, 0x10] ldr r1, [sp, 0x4] ldrh r2, [r1, 0xA] mov r1, sp strh r2, [r1, 0xC] movs r1, 0xFF _080A523A: adds r0, 0x1 mov r10, r0 movs r3, 0xFF mov r9, r3 _080A5242: mov r0, r12 strb r1, [r0] movs r2, 0x1 add r12, r2 movs r3, 0x1 negs r3, r3 add r9, r3 mov r0, r9 cmp r0, 0 bge _080A5242 mov r0, r10 cmp r0, 0x3 ble _080A523A movs r1, 0 ldr r2, [sp, 0x10] cmp r1, r2 blt _080A5266 b _080A53BA _080A5266: ldr r3, [sp, 0x4] ldrb r7, [r3] _080A526A: adds r0, 0x1 mov r10, r0 adds r0, r1, 0x1 str r0, [sp, 0x14] movs r0, 0xFF movs r2, 0x4 mov r9, r2 _080A5278: mov r3, r12 strb r0, [r3] movs r2, 0x1 add r12, r2 movs r3, 0x1 negs r3, r3 add r9, r3 mov r2, r9 cmp r2, 0 bge _080A5278 movs r3, 0x5 mov r9, r3 movs r0, 0 cmp r1, 0 bne _080A5308 cmp r1, r7 bge _080A5394 _080A529A: ldrb r1, [r5] adds r5, 0x1 cmp r1, 0xBF ble _080A52C2 adds r6, r0, 0 subs r6, 0xBF cmp r1, 0xBF ble _080A5300 adds r2, r1, 0 subs r2, 0xBF _080A52AE: ldrb r0, [r5] mov r3, r12 strb r0, [r3] adds r5, 0x1 movs r0, 0x1 add r12, r0 subs r2, 0x1 cmp r2, 0 bne _080A52AE b _080A5300 _080A52C2: cmp r1, 0x7F ble _080A52E6 ldrb r4, [r5] adds r5, 0x1 adds r6, r0, 0 subs r6, 0x7F cmp r1, 0x7F ble _080A5300 adds r2, r1, 0 subs r2, 0x7F _080A52D6: mov r3, r12 strb r4, [r3] movs r0, 0x1 add r12, r0 subs r2, 0x1 cmp r2, 0 bne _080A52D6 b _080A5300 _080A52E6: movs r2, 0 adds r6, r0, 0x1 cmp r2, r1 bgt _080A5300 movs r0, 0 adds r2, r1, 0x1 _080A52F2: mov r3, r12 strb r0, [r3] movs r3, 0x1 add r12, r3 subs r2, 0x1 cmp r2, 0 bne _080A52F2 _080A5300: adds r0, r6, r1 cmp r0, r7 blt _080A529A b _080A5394 _080A5308: ldr r4, _080A5340 add r4, r12 cmp r0, r7 bge _080A5394 _080A5310: ldrb r3, [r5] adds r5, 0x1 cmp r3, 0xBF ble _080A5344 adds r6, r0, 0 subs r6, 0xBF cmp r3, 0xBF ble _080A538E adds r2, r3, 0 subs r2, 0xBF _080A5324: ldrb r1, [r5] ldrb r0, [r4] eors r1, r0 mov r0, r12 strb r1, [r0] adds r4, 0x1 adds r5, 0x1 movs r1, 0x1 add r12, r1 subs r2, 0x1 cmp r2, 0 bne _080A5324 b _080A538E .align 2, 0 _080A5340: .4byte 0xffffff00 _080A5344: cmp r3, 0x7F ble _080A5372 ldrb r2, [r5] mov r8, r2 adds r5, 0x1 adds r6, r0, 0 subs r6, 0x7F cmp r3, 0x7F ble _080A538E adds r2, r3, 0 subs r2, 0x7F _080A535A: ldrb r1, [r4] mov r0, r8 eors r0, r1 mov r1, r12 strb r0, [r1] adds r4, 0x1 movs r0, 0x1 add r12, r0 subs r2, 0x1 cmp r2, 0 bne _080A535A b _080A538E _080A5372: movs r2, 0 adds r6, r0, 0x1 cmp r2, r3 bgt _080A538E adds r2, r3, 0x1 _080A537C: ldrb r0, [r4] mov r1, r12 strb r0, [r1] adds r4, 0x1 movs r0, 0x1 add r12, r0 subs r2, 0x1 cmp r2, 0 bne _080A537C _080A538E: adds r0, r6, r3 cmp r0, r7 blt _080A5310 _080A5394: add r9, r7 mov r1, r9 cmp r1, 0xFF bgt _080A53AE movs r0, 0xFF _080A539E: mov r2, r12 strb r0, [r2] movs r3, 0x1 add r12, r3 add r9, r3 mov r1, r9 cmp r1, 0xFF ble _080A539E _080A53AE: ldr r1, [sp, 0x14] mov r0, r10 ldr r2, [sp, 0x10] cmp r1, r2 bge _080A53BA b _080A526A _080A53BA: ldr r3, [sp, 0x8] cmp r0, r3 bge _080A53E6 movs r1, 0xFF _080A53C2: adds r0, 0x1 mov r10, r0 movs r0, 0xFF mov r9, r0 _080A53CA: mov r2, r12 strb r1, [r2] movs r3, 0x1 add r12, r3 movs r0, 0x1 negs r0, r0 add r9, r0 mov r2, r9 cmp r2, 0 bge _080A53CA mov r0, r10 ldr r3, [sp, 0x8] cmp r0, r3 blt _080A53C2 _080A53E6: mov r8, r5 b _080A547E _080A53EA: ldr r1, [sp] movs r0, 0 ldr r2, [sp, 0x4] ldrb r2, [r2, 0x1] str r2, [sp, 0x10] ldr r3, [sp, 0x4] ldrh r2, [r3, 0xA] mov r3, sp strh r2, [r3, 0xC] movs r6, 0xFF _080A53FE: adds r5, r0, 0x1 movs r4, 0xFF _080A5402: strb r6, [r1] adds r1, 0x1 subs r4, 0x1 cmp r4, 0 bge _080A5402 adds r0, r5, 0 cmp r0, 0x3 ble _080A53FE movs r4, 0 ldr r3, [sp, 0x10] cmp r4, r3 bge _080A5460 ldr r2, [sp, 0x4] ldrb r7, [r2] movs r3, 0xFF _080A5420: adds r5, r0, 0x1 adds r2, r4, 0x1 movs r4, 0x4 _080A5426: strb r3, [r1] adds r1, 0x1 subs r4, 0x1 cmp r4, 0 bge _080A5426 movs r4, 0x5 cmp r7, 0 beq _080A5444 movs r6, 0 adds r0, r7, 0 _080A543A: strb r6, [r1] adds r1, 0x1 subs r0, 0x1 cmp r0, 0 bne _080A543A _080A5444: adds r4, r7 cmp r4, 0xFF bgt _080A5456 movs r0, 0xFF _080A544C: strb r0, [r1] adds r1, 0x1 adds r4, 0x1 cmp r4, 0xFF ble _080A544C _080A5456: adds r4, r2, 0 adds r0, r5, 0 ldr r2, [sp, 0x10] cmp r4, r2 blt _080A5420 _080A5460: ldr r3, [sp, 0x8] cmp r0, r3 bge _080A547E movs r6, 0xFF _080A5468: adds r5, r0, 0x1 movs r4, 0xFF _080A546C: strb r6, [r1] adds r1, 0x1 subs r4, 0x1 cmp r4, 0 bge _080A546C adds r0, r5, 0 ldr r2, [sp, 0x8] cmp r0, r2 blt _080A5468 _080A547E: mov r3, sp ldrh r3, [r3, 0xC] lsls r0, r3, 16 cmp r0, 0 bgt _080A548A b _080A5590 _080A548A: mov r6, r8 ldr r0, [sp] movs r1, 0x80 lsls r1, 3 adds r2, r0, r1 movs r0, 0 ldr r3, [sp, 0x10] cmp r0, r3 bge _080A5586 movs r1, 0xFB mov r10, r1 _080A54A0: adds r2, 0x5 movs r4, 0 cmp r0, 0 bne _080A54EC ldr r3, [sp, 0x4] ldrb r7, [r3] movs r1, 0x1 mov r9, r1 cmp r0, r7 bge _080A5574 _080A54B4: ldrb r1, [r6] adds r6, 0x1 cmp r1, 0x7F ble _080A54DE subs r4, 0x7F cmp r1, 0x7F ble _080A54D6 movs r5, 0x80 adds r3, r1, 0 subs r3, 0x7F _080A54C8: ldrb r0, [r2] orrs r0, r5 strb r0, [r2] adds r2, 0x1 subs r3, 0x1 cmp r3, 0 bne _080A54C8 _080A54D6: adds r4, r1 ldr r3, [sp, 0x4] ldrb r7, [r3] b _080A54E6 _080A54DE: adds r0, r1, 0x1 adds r2, r0 adds r0, r4, 0x1 adds r4, r0, r1 _080A54E6: cmp r4, r7 blt _080A54B4 b _080A5574 _080A54EC: ldr r1, _080A5538 adds r1, r2 mov r12, r1 ldr r3, [sp, 0x4] ldrb r7, [r3] adds r0, 0x1 mov r9, r0 cmp r4, r7 bge _080A5574 _080A54FE: ldrb r5, [r6] adds r6, 0x1 cmp r5, 0x7F ble _080A553C subs r4, 0x7F cmp r5, 0x7F ble _080A556A movs r7, 0x80 movs r0, 0x80 mov r8, r0 adds r3, r5, 0 subs r3, 0x7F _080A5516: mov r0, r12 ldrb r1, [r0] mov r0, r8 ands r0, r1 movs r1, 0x1 add r12, r1 cmp r0, 0 bne _080A552C ldrb r0, [r2] orrs r0, r7 strb r0, [r2] _080A552C: adds r2, 0x1 subs r3, 0x1 cmp r3, 0 bne _080A5516 b _080A556A .align 2, 0 _080A5538: .4byte 0xffffff00 _080A553C: movs r3, 0 adds r4, 0x1 cmp r3, r5 bgt _080A556A movs r7, 0x80 movs r3, 0x80 mov r8, r3 adds r3, r5, 0x1 _080A554C: mov r0, r12 ldrb r1, [r0] mov r0, r8 ands r0, r1 movs r1, 0x1 add r12, r1 cmp r0, 0 beq _080A5562 ldrb r0, [r2] orrs r0, r7 strb r0, [r2] _080A5562: adds r2, 0x1 subs r3, 0x1 cmp r3, 0 bne _080A554C _080A556A: adds r4, r5 ldr r3, [sp, 0x4] ldrb r7, [r3] cmp r4, r7 blt _080A54FE _080A5574: mov r1, r10 subs r0, r1, r7 adds r2, r0 mov r0, r9 ldr r3, [sp, 0x4] ldrb r3, [r3, 0x1] str r3, [sp, 0x10] cmp r0, r3 blt _080A54A0 _080A5586: mov r8, r6 ldr r0, [sp, 0x4] ldrh r1, [r0, 0xA] mov r0, sp strh r1, [r0, 0xC] _080A5590: mov r2, sp ldrh r2, [r2, 0xC] lsls r0, r2, 16 asrs r0, 16 cmp r0, 0x1 ble _080A568C mov r6, r8 ldr r3, [sp] movs r0, 0x80 lsls r0, 3 adds r2, r3, r0 movs r0, 0 b _080A5684 _080A55AA: adds r2, 0x5 movs r4, 0 cmp r0, 0 bne _080A55F2 ldr r3, [sp, 0x4] ldrb r7, [r3] movs r1, 0x1 mov r10, r1 cmp r0, r7 bge _080A567C _080A55BE: ldrb r1, [r6] adds r6, 0x1 cmp r1, 0x7F ble _080A55E4 subs r4, 0x7F cmp r1, 0x7F ble _080A55E0 movs r5, 0x40 adds r3, r1, 0 subs r3, 0x7F _080A55D2: ldrb r0, [r2] orrs r0, r5 strb r0, [r2] adds r2, 0x1 subs r3, 0x1 cmp r3, 0 bne _080A55D2 _080A55E0: adds r4, r1 b _080A55EC _080A55E4: adds r0, r1, 0x1 adds r2, r0 adds r0, r4, 0x1 adds r4, r0, r1 _080A55EC: cmp r4, r7 blt _080A55BE b _080A567C _080A55F2: ldr r3, _080A5640 adds r3, r2 mov r12, r3 ldr r1, [sp, 0x4] ldrb r7, [r1] adds r0, 0x1 mov r10, r0 cmp r4, r7 bge _080A567C _080A5604: ldrb r5, [r6] adds r6, 0x1 cmp r5, 0x7F ble _080A5644 subs r4, 0x7F cmp r5, 0x7F ble _080A5676 movs r3, 0x40 mov r8, r3 movs r0, 0x40 mov r9, r0 adds r3, r5, 0 subs r3, 0x7F _080A561E: mov r0, r12 ldrb r1, [r0] mov r0, r9 ands r0, r1 movs r1, 0x1 add r12, r1 cmp r0, 0 bne _080A5636 ldrb r0, [r2] mov r1, r8 orrs r0, r1 strb r0, [r2] _080A5636: adds r2, 0x1 subs r3, 0x1 cmp r3, 0 bne _080A561E b _080A5676 .align 2, 0 _080A5640: .4byte 0xffffff00 _080A5644: movs r3, 0 adds r4, 0x1 cmp r3, r5 bgt _080A5676 movs r3, 0x40 mov r8, r3 movs r0, 0x40 mov r9, r0 adds r3, r5, 0x1 _080A5656: mov r0, r12 ldrb r1, [r0] mov r0, r9 ands r0, r1 movs r1, 0x1 add r12, r1 cmp r0, 0 beq _080A566E ldrb r0, [r2] mov r1, r8 orrs r0, r1 strb r0, [r2] _080A566E: adds r2, 0x1 subs r3, 0x1 cmp r3, 0 bne _080A5656 _080A5676: adds r4, r5 cmp r4, r7 blt _080A5604 _080A567C: movs r3, 0xFB subs r0, r3, r7 adds r2, r0 mov r0, r10 _080A5684: ldr r1, [sp, 0x10] cmp r0, r1 blt _080A55AA mov r8, r6 _080A568C: mov r0, r8 add sp, 0x18 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80A5204 thumb_func_start sub_80A56A0 sub_80A56A0: push {lr} adds r3, r0, 0 adds r2, r1, 0 lsls r3, 24 lsrs r3, 24 lsls r2, 24 lsrs r2, 24 ldr r0, _080A56BC ldr r0, [r0] adds r1, r3, 0 bl sub_80A3B80 pop {r0} bx r0 .align 2, 0 _080A56BC: .4byte gUnknown_3001B70 thumb_func_end sub_80A56A0 thumb_func_start sub_80A56C0 sub_80A56C0: push {lr} adds r2, r0, 0 ldr r0, _080A56D4 ldr r0, [r0] movs r1, 0 bl sub_80A4558 pop {r0} bx r0 .align 2, 0 _080A56D4: .4byte gUnknown_3001B70 thumb_func_end sub_80A56C0 thumb_func_start sub_80A56D8 sub_80A56D8: push {lr} adds r2, r0, 0 ldr r0, _080A56EC ldr r0, [r0] movs r1, 0 bl sub_80A456C pop {r0} bx r0 .align 2, 0 _080A56EC: .4byte gUnknown_3001B70 thumb_func_end sub_80A56D8 thumb_func_start sub_80A56F0 sub_80A56F0: ldr r1, _080A5700 ldr r2, [r1] adds r2, 0xE8 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [r2] str r1, [r2, 0x4] bx lr .align 2, 0 _080A5700: .4byte gUnknown_3001B6C thumb_func_end sub_80A56F0 thumb_func_start sub_80A5704 sub_80A5704: ldr r1, _080A5724 ldr r3, [r1] adds r2, r3, 0 adds r2, 0xF8 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [r2] str r1, [r2, 0x4] adds r0, r3, 0 adds r0, 0xF0 movs r1, 0 str r1, [r0] adds r0, 0x4 str r1, [r0] bx lr .align 2, 0 _080A5724: .4byte gUnknown_3001B6C thumb_func_end sub_80A5704 thumb_func_start sub_80A5728 sub_80A5728: ldr r0, _080A5734 ldr r0, [r0] adds r0, 0xE4 movs r1, 0 ldrsh r0, [r0, r1] bx lr .align 2, 0 _080A5734: .4byte gUnknown_3001B6C thumb_func_end sub_80A5728 thumb_func_start sub_80A5738 sub_80A5738: ldr r0, _080A5750 ldr r0, [r0] adds r0, 0xE4 movs r2, 0 ldrsh r1, [r0, r2] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _080A5754 adds r0, r1 bx lr .align 2, 0 _080A5750: .4byte gUnknown_3001B6C _080A5754: .4byte gUnknown_811BAF4 thumb_func_end sub_80A5738 thumb_func_start sub_80A5758 sub_80A5758: push {lr} adds r1, r0, 0 ldr r0, _080A5768 ldr r0, [r0] cmp r0, 0 bne _080A576C movs r0, 0 b _080A5772 .align 2, 0 _080A5768: .4byte gUnknown_3001B70 _080A576C: bl sub_80A4608 movs r0, 0x1 _080A5772: pop {r1} bx r1 thumb_func_end sub_80A5758 thumb_func_start sub_80A5778 sub_80A5778: push {lr} adds r3, r0, 0 adds r2, r1, 0 ldr r0, _080A578C ldr r0, [r0] cmp r0, 0 bne _080A5790 movs r0, 0 b _080A5798 .align 2, 0 _080A578C: .4byte gUnknown_3001B70 _080A5790: adds r1, r3, 0 bl sub_80A463C movs r0, 0x1 _080A5798: pop {r1} bx r1 thumb_func_end sub_80A5778 thumb_func_start sub_80A579C sub_80A579C: push {r4-r7,lr} adds r6, r0, 0 adds r5, r1, 0 ldr r0, _080A5838 ldr r3, [r0] cmp r3, 0 beq _080A5854 ldr r0, _080A583C ldr r0, [r0] adds r2, r0, 0 adds r2, 0xE4 movs r0, 0 ldrsh r1, [r2, r0] movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _080A5854 adds r0, r1, 0 lsls r4, r0, 1 adds r4, r0 lsls r4, 2 ldr r0, _080A5840 adds r4, r0 adds r0, r3, 0 adds r1, r6, 0 adds r2, r5, 0 bl sub_80A463C ldr r2, [r6] mov r12, r2 movs r0, 0xF0 lsls r0, 7 add r0, r12 str r0, [r6] ldr r3, [r6, 0x4] movs r7, 0xA0 lsls r7, 7 adds r0, r3, r7 str r0, [r6, 0x4] ldr r2, [r5] ldr r1, _080A5844 adds r0, r2, r1 str r0, [r5] ldr r1, [r5, 0x4] ldr r7, _080A5848 adds r0, r1, r7 str r0, [r5, 0x4] movs r7, 0 ldrsh r0, [r4, r7] cmp r0, 0xA bne _080A581E movs r0, 0x90 lsls r0, 8 add r0, r12 str r0, [r6] movs r4, 0xD0 lsls r4, 7 adds r0, r3, r4 str r0, [r6, 0x4] ldr r7, _080A584C adds r0, r2, r7 str r0, [r5] ldr r2, _080A5850 adds r0, r1, r2 str r0, [r5, 0x4] _080A581E: ldr r1, [r6] ldr r0, [r5] cmp r1, r0 ble _080A5828 str r1, [r5] _080A5828: ldr r1, [r6, 0x4] ldr r0, [r5, 0x4] cmp r1, r0 ble _080A5832 str r1, [r5, 0x4] _080A5832: movs r0, 0x1 b _080A5856 .align 2, 0 _080A5838: .4byte gUnknown_3001B70 _080A583C: .4byte gUnknown_3001B6C _080A5840: .4byte gUnknown_811BAF4 _080A5844: .4byte 0xffff8800 _080A5848: .4byte 0xffffb000 _080A584C: .4byte 0xffff7000 _080A5850: .4byte 0xffff9800 _080A5854: movs r0, 0 _080A5856: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80A579C thumb_func_start sub_80A585C sub_80A585C: push {r4-r7,lr} adds r7, r1, 0 ldr r1, _080A5884 ldr r2, [r1] ldr r1, _080A5888 adds r2, r1 ldr r1, [r0, 0x4] lsls r1, 8 ldr r0, [r0] adds r1, r0 ldr r0, _080A588C adds r1, r0 ldr r0, [r2] adds r5, r0, r1 ldr r4, [r7, 0x4] cmp r0, 0 bne _080A5890 _080A587E: movs r0, 0x1 b _080A58C0 .align 2, 0 _080A5884: .4byte gUnknown_3001B70 _080A5888: .4byte 0x00000544 _080A588C: .4byte 0x00000405 _080A5890: cmp r4, 0 ble _080A58BE movs r1, 0x80 lsls r1, 1 mov r12, r1 _080A589A: ldr r2, [r7] adds r3, r5, 0 cmp r2, 0 ble _080A58B6 movs r6, 0x80 _080A58A4: ldrb r1, [r3] adds r0, r6, 0 ands r0, r1 adds r3, 0x1 cmp r0, 0 bne _080A587E subs r2, 0x1 cmp r2, 0 bgt _080A58A4 _080A58B6: add r5, r12 subs r4, 0x1 cmp r4, 0 bgt _080A589A _080A58BE: movs r0, 0 _080A58C0: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80A585C thumb_func_start sub_80A58C8 sub_80A58C8: push {r4-r7,lr} adds r7, r1, 0 ldr r1, _080A58F0 ldr r2, [r1] ldr r1, _080A58F4 adds r2, r1 ldr r1, [r0, 0x4] lsls r1, 8 ldr r0, [r0] adds r1, r0 ldr r0, _080A58F8 adds r1, r0 ldr r0, [r2] adds r5, r0, r1 ldr r4, [r7, 0x4] cmp r0, 0 bne _080A58FC _080A58EA: movs r0, 0x1 b _080A592C .align 2, 0 _080A58F0: .4byte gUnknown_3001B70 _080A58F4: .4byte 0x00000544 _080A58F8: .4byte 0x00000405 _080A58FC: cmp r4, 0 ble _080A592A movs r1, 0x80 lsls r1, 1 mov r12, r1 _080A5906: ldr r2, [r7] adds r3, r5, 0 cmp r2, 0 ble _080A5922 movs r6, 0x40 _080A5910: ldrb r1, [r3] adds r0, r6, 0 ands r0, r1 adds r3, 0x1 cmp r0, 0 bne _080A58EA subs r2, 0x1 cmp r2, 0 bgt _080A5910 _080A5922: add r5, r12 subs r4, 0x1 cmp r4, 0 bgt _080A5906 _080A592A: movs r0, 0 _080A592C: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80A58C8 thumb_func_start sub_80A5934 sub_80A5934: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 adds r3, r2, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _080A5958 ldr r0, [r0] adds r1, r4, 0 adds r2, r5, 0 bl sub_80A4660 lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080A5958: .4byte gUnknown_3001B70 thumb_func_end sub_80A5934 thumb_func_start sub_80A595C sub_80A595C: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 adds r3, r2, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _080A5980 ldr r0, [r0] adds r1, r4, 0 adds r2, r5, 0 bl sub_80A46C0 lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080A5980: .4byte gUnknown_3001B70 thumb_func_end sub_80A595C thumb_func_start sub_80A5984 sub_80A5984: push {lr} adds r3, r0, 0 adds r2, r1, 0 ldr r0, _080A599C ldr r0, [r0] adds r1, r3, 0 bl sub_80A4720 lsls r0, 16 lsrs r0, 16 pop {r1} bx r1 .align 2, 0 _080A599C: .4byte gUnknown_3001B70 thumb_func_end sub_80A5984 thumb_func_start sub_80A59A0 sub_80A59A0: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 lsls r3, r2, 16 lsrs r3, 16 ldr r0, _080A59BC ldr r0, [r0] adds r1, r4, 0 adds r2, r5, 0 bl sub_80A4740 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080A59BC: .4byte gUnknown_3001B70 thumb_func_end sub_80A59A0 thumb_func_start sub_80A59C0 sub_80A59C0: push {lr} bl nullsub_123 ldr r0, _080A59D4 ldr r0, [r0] ldr r1, _080A59D8 bl sub_809DA70 pop {r0} bx r0 .align 2, 0 _080A59D4: .4byte gUnknown_3001B6C _080A59D8: .4byte gUnknown_8117770 thumb_func_end sub_80A59C0 thumb_func_start sub_80A59DC sub_80A59DC: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x58 ldr r7, _080A5A34 ldr r0, [r7] cmp r0, 0 bne _080A59F0 b _080A5E5A _080A59F0: mov r9, sp mov r0, sp bl sub_809D248 lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _080A5A04 str r0, [sp] str r0, [sp, 0x4] _080A5A04: ldr r0, _080A5A38 mov r8, r0 ldr r3, [r0] adds r0, r3, 0 adds r0, 0xE4 movs r1, 0 ldrsh r0, [r0, r1] mov r6, r8 cmp r0, 0xAB bne _080A5A1A b _080A5BBE _080A5A1A: cmp r0, 0xAB bgt _080A5A46 cmp r0, 0xA3 bgt _080A5A3C cmp r0, 0xA2 bge _080A5A76 cmp r0, 0x4 bne _080A5A2C b _080A5D76 _080A5A2C: cmp r0, 0xA1 bne _080A5A32 b _080A5E28 _080A5A32: b _080A5E46 .align 2, 0 _080A5A34: .4byte gUnknown_3001B70 _080A5A38: .4byte gUnknown_3001B6C _080A5A3C: cmp r0, 0xA8 beq _080A5AF4 cmp r0, 0xAA beq _080A5AF4 b _080A5E46 _080A5A46: cmp r0, 0xB0 bne _080A5A4C b _080A5C76 _080A5A4C: cmp r0, 0xB0 bgt _080A5A5E cmp r0, 0xAE bne _080A5A56 b _080A5B58 _080A5A56: cmp r0, 0xAF bne _080A5A5C b _080A5BD8 _080A5A5C: b _080A5E46 _080A5A5E: cmp r0, 0xDF beq _080A5A76 cmp r0, 0xDF bgt _080A5A6E cmp r0, 0xBA bne _080A5A6C b _080A5D18 _080A5A6C: b _080A5E46 _080A5A6E: cmp r0, 0xE0 bne _080A5A74 b _080A5DDA _080A5A74: b _080A5E46 _080A5A76: ldr r3, [r6] adds r2, r3, 0 adds r2, 0xF4 ldr r1, [r2] adds r0, r1, 0x2 str r0, [r2] adds r4, r3, 0 adds r4, 0xFC cmp r0, 0 bge _080A5A8C adds r0, r1, 0x5 _080A5A8C: asrs r1, r0, 2 ldr r0, [r4] adds r0, r1 str r0, [r4] ldr r0, [r2] movs r1, 0x3 ands r0, r1 str r0, [r2] ldr r5, _080A5AF0 ldr r0, [r5] adds r2, r3, 0 adds r2, 0xF8 movs r1, 0 bl sub_80A4580 ldr r0, [sp] str r0, [sp, 0x8] ldr r0, [r6] adds r0, 0xFC ldr r1, [sp, 0x4] ldr r0, [r0] adds r1, r0 add r4, sp, 0x8 str r1, [r4, 0x4] ldr r0, [r5] movs r1, 0 adds r2, r4, 0 bl sub_80A4580 ldr r0, [r5] movs r1, 0 adds r2, r4, 0 bl sub_80A456C ldr r0, [sp] str r0, [sp, 0x8] ldr r0, [r6] adds r0, 0xFC ldr r1, [sp, 0x4] ldr r0, [r0] subs r1, r0 str r1, [r4, 0x4] ldr r0, [r5] movs r1, 0x1 adds r2, r4, 0 bl sub_80A4580 ldr r0, [r5] b _080A5DD0 .align 2, 0 _080A5AF0: .4byte gUnknown_3001B70 _080A5AF4: ldr r2, [r6] adds r3, r2, 0 adds r3, 0xF0 adds r0, r2, 0 adds r0, 0xE8 ldr r1, [r3] ldr r0, [r0] adds r1, r0 str r1, [r3] adds r2, 0xF8 cmp r1, 0 bge _080A5B0E adds r1, 0x7 _080A5B0E: asrs r1, 3 ldr r0, [r2] adds r0, r1 str r0, [r2] ldr r1, [r3] adds r0, r1, 0 cmp r1, 0 bge _080A5B20 adds r0, r1, 0x7 _080A5B20: asrs r0, 3 lsls r0, 3 subs r0, r1, r0 str r0, [r3] ldr r5, _080A5B54 ldr r0, [r5] movs r1, 0 bl sub_80A4580 ldr r0, [r6] adds r0, 0xF8 ldr r1, [sp] ldr r0, [r0] adds r1, r0 str r1, [sp, 0x10] ldr r0, [sp, 0x4] add r4, sp, 0x10 str r0, [r4, 0x4] ldr r0, [r5] movs r1, 0 adds r2, r4, 0 bl sub_80A4580 ldr r0, [r5] movs r1, 0 b _080A5DD2 .align 2, 0 _080A5B54: .4byte gUnknown_3001B70 _080A5B58: adds r4, r3, 0 adds r4, 0xF0 adds r0, r3, 0 adds r0, 0xE8 ldr r1, [r4] ldr r0, [r0] adds r1, r0 str r1, [r4] adds r2, r3, 0 adds r2, 0xF8 cmp r1, 0 bge _080A5B72 adds r1, 0x7 _080A5B72: asrs r1, 3 ldr r0, [r2] adds r0, r1 str r0, [r2] ldr r1, [r4] adds r0, r1, 0 cmp r1, 0 bge _080A5B84 adds r0, r1, 0x7 _080A5B84: asrs r0, 3 lsls r0, 3 subs r0, r1, r0 str r0, [r4] ldr r0, [r7] movs r1, 0 bl sub_80A4580 mov r1, r8 ldr r0, [r1] adds r0, 0xF8 ldr r1, [sp] ldr r0, [r0] adds r1, r0 str r1, [sp, 0x18] ldr r0, [sp, 0x4] add r4, sp, 0x18 str r0, [r4, 0x4] ldr r0, [r7] movs r1, 0 adds r2, r4, 0 bl sub_80A4580 ldr r0, [r7] movs r1, 0 adds r2, r4, 0 bl sub_80A456C b _080A5DCE _080A5BBE: ldr r0, [sp] ldr r1, [sp, 0x4] str r0, [sp, 0x20] str r1, [sp, 0x24] ldr r0, [r7] add r4, sp, 0x20 movs r1, 0 adds r2, r4, 0 bl sub_80A4580 ldr r0, [r7] movs r1, 0 b _080A5DD2 _080A5BD8: ldr r0, [r7] movs r1, 0 mov r2, sp bl sub_80A456C mov r0, r8 ldr r3, [r0] adds r4, r3, 0 adds r4, 0xF0 adds r1, r3, 0 adds r1, 0xE8 ldr r0, [r4] ldr r1, [r1] adds r0, r1 str r0, [r4] adds r5, r3, 0 adds r5, 0xF4 adds r1, r3, 0 adds r1, 0xEC ldr r0, [r5] ldr r1, [r1] adds r0, r1 str r0, [r5] adds r2, r3, 0 adds r2, 0xF8 ldr r1, [r4] cmp r1, 0 bge _080A5C12 adds r1, 0x7 _080A5C12: asrs r1, 3 ldr r0, [r2] adds r0, r1 str r0, [r2] adds r3, 0xFC ldr r1, [r5] cmp r1, 0 bge _080A5C24 adds r1, 0x7 _080A5C24: asrs r1, 3 ldr r0, [r3] adds r0, r1 str r0, [r3] ldr r1, [r4] adds r0, r1, 0 cmp r1, 0 bge _080A5C36 adds r0, r1, 0x7 _080A5C36: asrs r0, 3 lsls r0, 3 subs r0, r1, r0 str r0, [r4] ldr r1, [r5] adds r0, r1, 0 cmp r1, 0 bge _080A5C48 adds r0, r1, 0x7 _080A5C48: asrs r0, 3 lsls r0, 3 subs r0, r1, r0 str r0, [r5] ldr r0, [r7] movs r1, 0 bl sub_80A4580 mov r1, r8 ldr r2, [r1] adds r1, r2, 0 adds r1, 0xF8 ldr r0, [sp] ldr r1, [r1] adds r0, r1 str r0, [sp, 0x28] adds r2, 0xFC mov r1, r9 ldr r0, [r1, 0x4] ldr r1, [r2] adds r0, r1 add r4, sp, 0x28 b _080A5DC2 _080A5C76: adds r4, r3, 0 adds r4, 0xF0 adds r1, r3, 0 adds r1, 0xE8 ldr r0, [r4] ldr r1, [r1] adds r0, r1 str r0, [r4] adds r5, r3, 0 adds r5, 0xF4 adds r1, r3, 0 adds r1, 0xEC ldr r0, [r5] ldr r1, [r1] adds r0, r1 str r0, [r5] adds r6, r3, 0 adds r6, 0xF8 ldr r1, [r4] cmp r1, 0 bge _080A5CA2 adds r1, 0x7 _080A5CA2: asrs r1, 3 ldr r0, [r6] adds r0, r1 str r0, [r6] adds r2, r3, 0 adds r2, 0xFC ldr r1, [r5] cmp r1, 0 bge _080A5CB6 adds r1, 0x7 _080A5CB6: asrs r1, 3 ldr r0, [r2] adds r0, r1 str r0, [r2] ldr r1, [r4] adds r0, r1, 0 cmp r1, 0 bge _080A5CC8 adds r0, r1, 0x7 _080A5CC8: asrs r0, 3 lsls r0, 3 subs r0, r1, r0 str r0, [r4] ldr r1, [r5] adds r0, r1, 0 cmp r1, 0 bge _080A5CDA adds r0, r1, 0x7 _080A5CDA: asrs r0, 3 lsls r0, 3 subs r0, r1, r0 str r0, [r5] ldr r0, [r7] movs r1, 0 adds r2, r6, 0 bl sub_80A4580 mov r0, r8 ldr r2, [r0] adds r1, r2, 0 adds r1, 0xF8 ldr r0, [sp] ldr r1, [r1] adds r0, r1 str r0, [sp, 0x30] adds r2, 0xFC ldr r0, [sp, 0x4] ldr r1, [r2] adds r0, r1 add r4, sp, 0x30 str r0, [r4, 0x4] ldr r0, [r7] movs r1, 0 adds r2, r4, 0 bl sub_80A4580 ldr r0, [r7] movs r1, 0 b _080A5DD2 _080A5D18: ldr r0, [r7] movs r1, 0x1 mov r2, sp bl sub_80A456C mov r0, r8 ldr r1, [r0] adds r3, r1, 0 adds r3, 0xF0 ldr r4, [r3] adds r0, r4, 0x1 str r0, [r3] adds r2, r1, 0 adds r2, 0xF8 cmp r0, 0 bge _080A5D3A adds r0, r4, 0x4 _080A5D3A: asrs r1, r0, 2 ldr r0, [r2] adds r0, r1 str r0, [r2] ldr r0, [r3] movs r1, 0x3 ands r0, r1 str r0, [r3] ldr r0, [r7] movs r1, 0x1 bl sub_80A4580 mov r1, r8 ldr r0, [r1] adds r0, 0xF8 ldr r1, [sp] ldr r0, [r0] adds r1, r0 str r1, [sp, 0x38] ldr r0, [sp, 0x4] add r4, sp, 0x38 str r0, [r4, 0x4] ldr r0, [r7] movs r1, 0 adds r2, r4, 0 bl sub_80A4580 ldr r0, [r7] movs r1, 0 b _080A5DD2 _080A5D76: ldr r0, [r7] movs r1, 0 mov r2, sp bl sub_80A456C mov r0, r8 ldr r1, [r0] adds r3, r1, 0 adds r3, 0xF0 ldr r4, [r3] adds r0, r4, 0x1 str r0, [r3] adds r2, r1, 0 adds r2, 0xF8 cmp r0, 0 bge _080A5D98 adds r0, 0x7 _080A5D98: asrs r1, r0, 3 ldr r0, [r2] adds r0, r1 str r0, [r2] ldr r0, [r3] movs r1, 0x7 ands r0, r1 str r0, [r3] ldr r0, [r7] movs r1, 0x1 bl sub_80A4580 mov r1, r8 ldr r0, [r1] adds r0, 0xF8 ldr r1, [sp] ldr r0, [r0] adds r1, r0 str r1, [sp, 0x40] ldr r0, [sp, 0x4] add r4, sp, 0x40 _080A5DC2: str r0, [r4, 0x4] ldr r0, [r7] movs r1, 0x1 adds r2, r4, 0 bl sub_80A4580 _080A5DCE: ldr r0, [r7] _080A5DD0: movs r1, 0x1 _080A5DD2: adds r2, r4, 0 bl sub_80A456C b _080A5E52 _080A5DDA: ldr r0, [r7] movs r1, 0 mov r2, sp bl sub_80A456C mov r0, r8 ldr r1, [r0] adds r3, r1, 0 adds r3, 0xF0 ldr r4, [r3] adds r0, r4, 0x1 str r0, [r3] adds r2, r1, 0 adds r2, 0xF8 cmp r0, 0 bge _080A5DFC adds r0, 0x7 _080A5DFC: asrs r1, r0, 3 ldr r0, [r2] adds r0, r1 str r0, [r2] ldr r0, [r3] movs r1, 0x7 ands r0, r1 str r0, [r3] ldr r0, [r7] movs r1, 0x1 bl sub_80A4580 mov r1, r8 ldr r0, [r1] adds r0, 0xF8 ldr r0, [r0] str r0, [sp, 0x48] ldr r0, [sp, 0x4] add r2, sp, 0x48 str r0, [r2, 0x4] ldr r0, [r7] b _080A5E3E _080A5E28: ldr r0, [r7] movs r1, 0 mov r2, sp bl sub_80A456C movs r0, 0 movs r1, 0 str r0, [sp, 0x50] str r1, [sp, 0x54] ldr r0, [r7] add r2, sp, 0x50 _080A5E3E: movs r1, 0x1 bl sub_80A456C b _080A5E52 _080A5E46: ldr r0, _080A5E6C ldr r0, [r0] movs r1, 0 mov r2, sp bl sub_80A456C _080A5E52: ldr r0, _080A5E6C ldr r0, [r0] bl sub_80A4764 _080A5E5A: bl sub_80A60D8 add sp, 0x58 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080A5E6C: .4byte gUnknown_3001B70 thumb_func_end sub_80A59DC thumb_func_start sub_80A5E70 sub_80A5E70: push {lr} ldr r0, _080A5E88 ldr r0, [r0] cmp r0, 0 beq _080A5E7E bl sub_80A49E8 _080A5E7E: bl sub_80A62D0 pop {r0} bx r0 .align 2, 0 _080A5E88: .4byte gUnknown_3001B70 thumb_func_end sub_80A5E70 thumb_func_start sub_80A5E8C sub_80A5E8C: push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r5, _080A5EB4 movs r0, 0x24 movs r1, 0x6 bl MemoryAlloc str r0, [r5] ldr r1, _080A5EB8 strh r1, [r0] movs r1, 0 strb r1, [r0, 0x2] adds r0, r4, 0 bl sub_80A5EDC pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080A5EB4: .4byte gUnknown_3001B74 _080A5EB8: .4byte 0x0000ffff thumb_func_end sub_80A5E8C thumb_func_start sub_80A5EBC sub_80A5EBC: push {r4,lr} movs r0, 0 bl sub_80A5EDC ldr r4, _080A5ED8 ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _080A5ED8: .4byte gUnknown_3001B74 thumb_func_end sub_80A5EBC thumb_func_start sub_80A5EDC sub_80A5EDC: push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 adds r5, r0, 0 movs r6, 0x1 negs r6, r6 movs r0, 0 movs r1, 0x1B adds r2, r6, 0 bl sub_80018D8 ldr r0, _080A5F34 ldr r1, [r0] ldr r0, _080A5F38 strh r0, [r1] strb r5, [r1, 0x2] ldr r4, _080A5F3C ldr r0, [r4] cmp r0, 0 beq _080A5F12 bl sub_80A2D00 ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _080A5F12: cmp r5, 0 beq _080A5F2E ldr r0, _080A5F40 movs r1, 0x6 bl MemoryAlloc str r0, [r4] ldr r1, _080A5F44 bl sub_80A2B40 ldr r0, [r4] adds r1, r6, 0 bl sub_80A2FBC _080A5F2E: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080A5F34: .4byte gUnknown_3001B74 _080A5F38: .4byte 0x0000ffff _080A5F3C: .4byte gUnknown_3001B78 _080A5F40: .4byte 0x0000055c _080A5F44: .4byte gUnknown_8117784 thumb_func_end sub_80A5EDC thumb_func_start nullsub_121 nullsub_121: bx lr thumb_func_end nullsub_121 thumb_func_start nullsub_122 nullsub_122: bx lr thumb_func_end nullsub_122 thumb_func_start sub_80A5F50 sub_80A5F50: push {r4-r7,lr} lsls r0, 16 asrs r5, r0, 16 adds r7, r5, 0 ldr r1, _080A5F94 ldr r6, _080A5F98 ldr r0, [r6] ldrb r3, [r0, 0x2] movs r0, 0 adds r2, r5, 0 bl Log movs r0, 0 movs r1, 0x1B adds r2, r5, 0 bl sub_80018D8 ldr r0, [r6] movs r4, 0 strh r5, [r0] ldrb r0, [r0, 0x2] cmp r0, 0 bne _080A5F80 b _080A60B4 _080A5F80: movs r0, 0x1 negs r0, r0 cmp r5, r0 bne _080A5FA0 ldr r0, _080A5F9C ldr r0, [r0] adds r1, r5, 0 bl sub_80A2FBC b _080A60B4 .align 2, 0 _080A5F94: .4byte gUnknown_811779C _080A5F98: .4byte gUnknown_3001B74 _080A5F9C: .4byte gUnknown_3001B78 _080A5FA0: lsls r1, r7, 2 ldr r0, _080A5FD8 adds r5, r1, r0 ldr r0, _080A5FDC ldr r0, [r0] movs r2, 0x2 ldrsh r1, [r5, r2] bl sub_80A2FBC ldr r0, [r6] str r4, [r0, 0x4] str r4, [r0, 0x8] str r4, [r0, 0xC] str r4, [r0, 0x10] str r4, [r0, 0x20] str r4, [r0, 0x1C] str r4, [r0, 0x18] str r4, [r0, 0x14] movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0xF bhi _080A6098 lsls r0, 2 ldr r1, _080A5FE0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080A5FD8: .4byte gUnknown_811E5F4 _080A5FDC: .4byte gUnknown_3001B78 _080A5FE0: .4byte _080A5FE4 .align 2, 0 _080A5FE4: .4byte _080A6088 .4byte _080A6098 .4byte _080A6098 .4byte _080A6088 .4byte _080A6088 .4byte _080A6088 .4byte _080A6098 .4byte _080A6040 .4byte _080A6088 .4byte _080A6024 .4byte _080A6098 .4byte _080A6098 .4byte _080A6098 .4byte _080A6098 .4byte _080A6050 .4byte _080A606C _080A6024: ldr r0, _080A6034 ldr r0, [r0] movs r1, 0x1 bl sub_80A3BB0 ldr r1, _080A6038 ldr r2, _080A603C b _080A60B0 .align 2, 0 _080A6034: .4byte gUnknown_3001B78 _080A6038: .4byte gUnknown_2026E4E _080A603C: .4byte 0x0000040c _080A6040: ldr r1, _080A6048 ldr r2, _080A604C b _080A60B0 .align 2, 0 _080A6048: .4byte gUnknown_2026E4E _080A604C: .4byte 0x00000808 _080A6050: ldr r0, _080A6060 ldr r0, [r0] movs r1, 0x1 bl sub_80A3BB0 ldr r1, _080A6064 ldr r2, _080A6068 b _080A60B0 .align 2, 0 _080A6060: .4byte gUnknown_3001B78 _080A6064: .4byte gUnknown_2026E4E _080A6068: .4byte 0x00001010 _080A606C: ldr r0, _080A607C ldr r0, [r0] movs r1, 0x1 bl sub_80A3BB0 ldr r1, _080A6080 ldr r2, _080A6084 b _080A60B0 .align 2, 0 _080A607C: .4byte gUnknown_3001B78 _080A6080: .4byte gUnknown_2026E4E _080A6084: .4byte 0x0000040c _080A6088: ldr r1, _080A6090 ldr r2, _080A6094 b _080A60B0 .align 2, 0 _080A6090: .4byte gUnknown_2026E4E _080A6094: .4byte 0x00001010 _080A6098: movs r1, 0 ldrsh r0, [r5, r1] cmp r0, 0x1 bne _080A60AA ldr r0, _080A60BC ldr r0, [r0] movs r1, 0x1 bl sub_80A3BB0 _080A60AA: ldr r1, _080A60C0 movs r2, 0x80 lsls r2, 5 _080A60B0: adds r0, r2, 0 strh r0, [r1] _080A60B4: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080A60BC: .4byte gUnknown_3001B78 _080A60C0: .4byte gUnknown_2026E4E thumb_func_end sub_80A5F50 thumb_func_start sub_80A60C4 sub_80A60C4: ldr r0, _080A60D0 ldr r0, [r0] movs r1, 0 ldrsh r0, [r0, r1] bx lr .align 2, 0 _080A60D0: .4byte gUnknown_3001B74 thumb_func_end sub_80A60C4 thumb_func_start nullsub_123 nullsub_123: bx lr thumb_func_end nullsub_123 thumb_func_start sub_80A60D8 sub_80A60D8: push {r4-r6,lr} sub sp, 0x28 ldr r0, _080A6104 ldr r3, [r0] ldrb r1, [r3, 0x2] adds r6, r0, 0 cmp r1, 0 bne _080A60EA b _080A62C0 _080A60EA: ldrh r0, [r3] adds r0, 0x1 lsls r0, 16 asrs r0, 16 cmp r0, 0x10 bls _080A60F8 b _080A6278 _080A60F8: lsls r0, 2 ldr r1, _080A6108 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080A6104: .4byte gUnknown_3001B74 _080A6108: .4byte _080A610C .align 2, 0 _080A610C: .4byte _080A62AC .4byte _080A6278 .4byte _080A6278 .4byte _080A6278 .4byte _080A6278 .4byte _080A6278 .4byte _080A6278 .4byte _080A6278 .4byte _080A6278 .4byte _080A6278 .4byte _080A6150 .4byte _080A61CC .4byte _080A61CC .4byte _080A61CC .4byte _080A61CC .4byte _080A61D0 .4byte _080A6224 _080A6150: ldr r2, [r6] ldr r1, [r2, 0x4] adds r0, r1, 0x2 str r0, [r2, 0x4] ldr r4, [r2, 0x8] adds r3, r4, 0x1 str r3, [r2, 0x8] cmp r0, 0 bge _080A6164 adds r0, r1, 0x5 _080A6164: asrs r1, r0, 2 ldr r0, [r2, 0xC] adds r0, r1 str r0, [r2, 0xC] adds r1, r3, 0 cmp r1, 0 bge _080A6174 adds r1, r4, 0x4 _080A6174: asrs r1, 2 ldr r0, [r2, 0x10] adds r0, r1 str r0, [r2, 0x10] ldr r4, _080A61C8 ldr r0, [r4] adds r2, 0xC movs r1, 0 bl sub_80A4580 ldr r1, [r6] ldr r0, [r1, 0x4] movs r2, 0x3 ands r0, r2 str r0, [r1, 0x4] ldr r0, [r1, 0x8] ands r0, r2 str r0, [r1, 0x8] mov r0, sp bl sub_80A56C0 ldr r2, [r6] ldr r0, [sp] ldr r1, [r2, 0xC] subs r0, r1 str r0, [sp] ldr r0, [sp, 0x4] ldr r1, [r2, 0x10] adds r0, r1 str r0, [sp, 0x4] ldr r0, [r4] movs r1, 0 mov r2, sp bl sub_80A4580 ldr r0, [r4] movs r1, 0 mov r2, sp bl sub_80A456C b _080A62B8 .align 2, 0 _080A61C8: .4byte gUnknown_3001B78 _080A61CC: add r4, sp, 0x8 b _080A628E _080A61D0: ldr r2, [r6] ldr r1, [r2, 0x4] adds r0, r1, 0x1 str r0, [r2, 0x4] cmp r0, 0 bge _080A61DE adds r0, r1, 0x4 _080A61DE: asrs r1, r0, 2 ldr r0, [r2, 0xC] adds r0, r1 str r0, [r2, 0xC] ldr r5, _080A6220 ldr r0, [r5] adds r2, 0xC movs r1, 0 bl sub_80A4580 ldr r2, [r6] ldr r0, [r2, 0x4] movs r1, 0x3 ands r0, r1 str r0, [r2, 0x4] add r4, sp, 0x10 adds r0, r4, 0 bl sub_80A56C0 ldr r1, [r6] ldr r0, [sp, 0x10] ldr r1, [r1, 0xC] subs r0, r1 str r0, [sp, 0x10] movs r0, 0 str r0, [r4, 0x4] ldr r0, [r5] movs r1, 0 adds r2, r4, 0 bl sub_80A4580 ldr r0, [r5] b _080A6298 .align 2, 0 _080A6220: .4byte gUnknown_3001B78 _080A6224: ldr r2, [r6] ldr r1, [r2, 0x4] adds r0, r1, 0x2 str r0, [r2, 0x4] cmp r0, 0 bge _080A6232 adds r0, r1, 0x5 _080A6232: asrs r1, r0, 2 ldr r0, [r2, 0xC] adds r0, r1 str r0, [r2, 0xC] ldr r5, _080A6274 ldr r0, [r5] adds r2, 0xC movs r1, 0 bl sub_80A4580 ldr r2, [r6] ldr r0, [r2, 0x4] movs r1, 0x3 ands r0, r1 str r0, [r2, 0x4] add r4, sp, 0x18 adds r0, r4, 0 bl sub_80A56C0 ldr r1, [r6] ldr r0, [sp, 0x18] ldr r1, [r1, 0xC] subs r0, r1 str r0, [sp, 0x18] movs r0, 0 str r0, [r4, 0x4] ldr r0, [r5] movs r1, 0 adds r2, r4, 0 bl sub_80A4580 ldr r0, [r5] b _080A6298 .align 2, 0 _080A6274: .4byte gUnknown_3001B78 _080A6278: ldr r0, [r6] movs r1, 0 ldrsh r0, [r0, r1] lsls r0, 2 ldr r1, _080A62A4 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080A62AC add r4, sp, 0x20 _080A628E: adds r0, r4, 0 bl sub_80A56C0 ldr r0, _080A62A8 ldr r0, [r0] _080A6298: movs r1, 0 adds r2, r4, 0 bl sub_80A456C b _080A62B8 .align 2, 0 _080A62A4: .4byte gUnknown_811E5F4 _080A62A8: .4byte gUnknown_3001B78 _080A62AC: ldr r0, _080A62C8 ldr r0, [r0] ldr r2, _080A62CC movs r1, 0 bl sub_80A456C _080A62B8: ldr r0, _080A62C8 ldr r0, [r0] bl sub_80A4764 _080A62C0: add sp, 0x28 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080A62C8: .4byte gUnknown_3001B78 _080A62CC: .4byte gUnknown_81177BC thumb_func_end sub_80A60D8 thumb_func_start sub_80A62D0 sub_80A62D0: push {lr} ldr r0, _080A62E8 ldr r0, [r0] ldrb r0, [r0, 0x2] cmp r0, 0 beq _080A62E4 ldr r0, _080A62EC ldr r0, [r0] bl sub_80A49E8 _080A62E4: pop {r0} bx r0 .align 2, 0 _080A62E8: .4byte gUnknown_3001B74 _080A62EC: .4byte gUnknown_3001B78 thumb_func_end sub_80A62D0 thumb_func_start sub_80A62F0 sub_80A62F0: push {r4-r7,lr} ldr r4, _080A6378 movs r0, 0x88 lsls r0, 1 movs r1, 0x6 bl MemoryAlloc str r0, [r4] ldr r0, _080A637C ldr r1, _080A6380 bl OpenFileAndGetFileDataPtr ldr r1, _080A6384 str r0, [r1] movs r0, 0x1 bl sub_800DAC0 ldr r4, [r4] ldr r1, _080A6388 movs r0, 0x16 str r0, [r1] ldr r1, _080A638C movs r0, 0x1 strb r0, [r1] movs r0, 0 movs r2, 0 movs r1, 0x80 lsls r1, 9 adds r3, r1, 0 _080A632A: str r2, [r4] lsls r0, 4 str r0, [r4, 0x4] str r2, [r4, 0x8] adds r0, r1, 0 adds r1, r3 asrs r0, 16 adds r4, 0xC cmp r0, 0x15 ble _080A632A ldr r0, _080A6378 ldr r0, [r0] movs r1, 0x84 lsls r1, 1 adds r4, r0, r1 movs r6, 0 movs r7, 0 movs r5, 0xE8 lsls r5, 13 _080A6350: strh r7, [r4] strh r7, [r4, 0x2] lsrs r0, r5, 16 movs r1, 0 bl sub_80997F4 movs r0, 0x80 lsls r0, 9 adds r5, r0 adds r6, 0x1 adds r4, 0x4 cmp r6, 0x1 ble _080A6350 movs r0, 0x1 negs r0, r0 bl sub_80A6390 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080A6378: .4byte gUnknown_3001B7C _080A637C: .4byte gUnknown_81177CC _080A6380: .4byte gUnknown_83B0000 _080A6384: .4byte gUnknown_203B4B4 _080A6388: .4byte gUnknown_2039DD4 _080A638C: .4byte gUnknown_2039DD0 thumb_func_end sub_80A62F0 thumb_func_start sub_80A6390 sub_80A6390: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 16 asrs r0, 16 mov r9, r0 ldr r1, _080A641C movs r0, 0 bl Log ldr r0, _080A6420 movs r1, 0 mov r8, r1 strh r1, [r0] ldr r0, _080A6424 strh r1, [r0] bl sub_80A6460 mov r0, r9 bl sub_80A4D48 lsls r0, 24 movs r1, 0x2 cmp r0, 0 beq _080A63C6 movs r1, 0x3 _080A63C6: movs r0, 0xF8 lsls r0, 1 bl sub_808E53C ldr r5, _080A6428 adds r0, r5, 0 bl sub_8004E8C ldr r4, _080A642C adds r0, r4, 0 bl sub_8004E8C ldrh r1, [r4, 0x4] ldr r6, _080A6430 adds r0, r6, 0 ands r0, r1 strh r0, [r4, 0x4] ldrh r1, [r4, 0xA] adds r0, r6, 0 ands r0, r1 movs r2, 0x80 lsls r2, 4 adds r7, r2, 0 orrs r0, r7 strh r0, [r4, 0xA] mov r0, r9 bl sub_80A4D48 lsls r0, 24 cmp r0, 0 beq _080A6434 ldrh r1, [r5, 0x4] adds r0, r6, 0 ands r0, r1 strh r0, [r5, 0x4] ldrh r1, [r5, 0xA] adds r0, r6, 0 ands r0, r1 movs r2, 0xC0 lsls r2, 4 adds r1, r2, 0 orrs r0, r1 b _080A6444 .align 2, 0 _080A641C: .4byte gUnknown_81177D8 _080A6420: .4byte gUnknown_2039DCC _080A6424: .4byte gUnknown_2039DCE _080A6428: .4byte gUnknown_2039DB0 _080A642C: .4byte gUnknown_2039DC0 _080A6430: .4byte 0x0000f3ff _080A6434: ldrh r1, [r5, 0x4] adds r0, r6, 0 ands r0, r1 strh r0, [r5, 0x4] ldrh r1, [r5, 0xA] adds r0, r6, 0 ands r0, r1 orrs r0, r7 _080A6444: strh r0, [r5, 0xA] movs r0, 0x1 bl sub_8004D8C movs r0, 0x1 bl nullsub_10 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80A6390 thumb_func_start sub_80A6460 sub_80A6460: push {r4-r7,lr} ldr r0, _080A649C ldr r1, _080A64A0 bl OpenFileAndGetFileDataPtr adds r7, r0, 0 movs r5, 0x80 lsls r5, 1 ldr r4, [r7, 0x4] movs r6, 0xC _080A6474: adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x10 bl sub_809971C adds r0, r5, 0 adds r0, 0x10 lsls r0, 16 lsrs r5, r0, 16 adds r4, 0x40 subs r6, 0x1 cmp r6, 0 bge _080A6474 adds r0, r7, 0 bl CloseFile pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080A649C: .4byte gUnknown_81177EC _080A64A0: .4byte gUnknown_8510000 thumb_func_end sub_80A6460 thumb_func_start sub_80A64A4 sub_80A64A4: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r0, _080A6508 ldr r0, [r0] movs r1, 0x84 lsls r1, 1 adds r7, r0, r1 bl sub_80A6460 movs r0, 0 mov r8, r0 _080A64C0: movs r1, 0x2 ldrsh r0, [r7, r1] cmp r0, 0 ble _080A6568 ldrh r5, [r7] mov r0, r8 adds r0, 0x1D lsls r0, 16 lsrs r0, 16 mov r10, r0 mov r1, r8 lsls r0, r1, 20 movs r1, 0xE8 lsls r1, 17 adds r0, r1 lsrs r0, 16 mov r9, r0 movs r0, 0x80 lsls r0, 2 adds r1, r0, 0 adds r0, r5, 0 ands r0, r1 cmp r0, 0 beq _080A6514 ldr r0, _080A650C ldr r1, _080A6510 bl OpenFileAndGetFileDataPtr adds r6, r0, 0 movs r0, 0xFF ands r0, r5 lsls r0, 6 ldr r1, [r6, 0x4] adds r2, r1, r0 b _080A652A .align 2, 0 _080A6508: .4byte gUnknown_3001B7C _080A650C: .4byte gUnknown_81177EC _080A6510: .4byte gUnknown_8510000 _080A6514: movs r0, 0xFF ands r0, r5 lsls r0, 2 ldr r1, _080A6584 adds r0, r1 ldr r0, [r0] ldr r1, _080A6588 bl OpenFileAndGetFileDataPtr adds r6, r0, 0 ldr r2, [r6, 0x4] _080A652A: movs r1, 0x80 lsls r1, 5 adds r0, r1, 0 adds r1, r5, 0 ands r1, r0 lsls r1, 16 lsrs r1, 16 negs r1, r1 lsrs r4, r1, 31 movs r1, 0x80 lsls r1, 6 adds r0, r1, 0 ands r5, r0 cmp r5, 0 beq _080A654C movs r0, 0x2 orrs r4, r0 _080A654C: mov r0, r9 adds r1, r2, 0 movs r2, 0x10 bl sub_809971C mov r0, r10 adds r1, r4, 0 bl sub_80997F4 cmp r6, 0 beq _080A6568 adds r0, r6, 0 bl CloseFile _080A6568: movs r0, 0x1 add r8, r0 adds r7, 0x4 mov r1, r8 cmp r1, 0x1 ble _080A64C0 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080A6584: .4byte gUnknown_81178F4 _080A6588: .4byte gUnknown_9E60000 thumb_func_end sub_80A64A4 thumb_func_start sub_80A658C sub_80A658C: push {r4,lr} bl sub_800DB7C movs r0, 0 bl sub_8004D8C movs r0, 0 bl nullsub_10 bl sub_8005180 bl nullsub_12 bl CopySpritesToOam bl nullsub_13 bl sub_8005304 bl nullsub_14 ldr r0, _080A65D0 ldr r0, [r0] bl CloseFile ldr r4, _080A65D4 ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _080A65D0: .4byte gUnknown_203B4B4 _080A65D4: .4byte gUnknown_3001B7C thumb_func_end sub_80A658C thumb_func_start sub_80A65D8 sub_80A65D8: adds r0, 0x50 ldrh r0, [r0] bx lr thumb_func_end sub_80A65D8 thumb_func_start sub_80A65E0 sub_80A65E0: lsrs r0, 16 ldr r2, _080A65EC adds r1, r2, 0 ands r0, r1 bx lr .align 2, 0 _080A65EC: .4byte 0x0000337f thumb_func_end sub_80A65E0 thumb_func_start sub_80A65F0 sub_80A65F0: push {r4-r6,lr} adds r3, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, 0x50 strh r1, [r0] movs r0, 0x4 ands r0, r1 lsls r0, 16 lsrs r0, 16 negs r0, r0 asrs r2, r0, 31 movs r0, 0x40 ands r2, r0 movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080A6616 subs r2, 0x40 _080A6616: movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080A6624 adds r1, r2, 0 adds r1, 0x48 b _080A6628 _080A6624: adds r1, r2, 0 adds r1, 0x40 _080A6628: adds r0, r3, 0 adds r0, 0x6A strh r1, [r0] adds r2, r3, 0 adds r2, 0x50 ldrh r1, [r2] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _080A6648 adds r1, r3, 0 adds r1, 0x3C ldr r0, _080A6644 b _080A664E .align 2, 0 _080A6644: .4byte gUnknown_2039DC0 _080A6648: adds r1, r3, 0 adds r1, 0x3C ldr r0, _080A6680 _080A664E: ldm r0!, {r4-r6} stm r1!, {r4-r6} ldrh r1, [r2] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _080A6678 ldrh r2, [r3, 0x3C] ldr r1, _080A6684 adds r0, r1, 0 ands r0, r2 strh r0, [r3, 0x3C] adds r2, r3, 0 adds r2, 0x42 ldrh r0, [r2] ands r1, r0 movs r3, 0x80 lsls r3, 3 adds r0, r3, 0 orrs r1, r0 strh r1, [r2] _080A6678: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080A6680: .4byte gUnknown_2039DB0 _080A6684: .4byte 0x0000f3ff thumb_func_end sub_80A65F0 thumb_func_start sub_80A6688 sub_80A6688: push {r4,lr} adds r4, r0, 0 adds r0, r1, 0 bl sub_80A65E0 adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 bl sub_80A65F0 pop {r4} pop {r0} bx r0 thumb_func_end sub_80A6688 thumb_func_start sub_80A66A4 sub_80A66A4: push {lr} movs r1, 0 adds r0, 0x48 movs r2, 0 ldrsh r0, [r0, r2] cmp r0, 0 ble _080A66B4 movs r1, 0x1 _080A66B4: adds r0, r1, 0 pop {r1} bx r1 thumb_func_end sub_80A66A4 thumb_func_start sub_80A66BC sub_80A66BC: push {lr} adds r0, 0x52 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bge _080A66CC movs r0, 0 b _080A66CE _080A66CC: movs r0, 0x1 _080A66CE: pop {r1} bx r1 thumb_func_end sub_80A66BC thumb_func_start sub_80A66D4 sub_80A66D4: push {lr} adds r1, r0, 0 adds r0, 0x52 movs r2, 0 ldrsh r0, [r0, r2] cmp r0, 0 bge _080A66F2 adds r0, r1, 0 adds r0, 0x48 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 ble _080A66F2 movs r0, 0x1 b _080A66F4 _080A66F2: movs r0, 0 _080A66F4: pop {r1} bx r1 thumb_func_end sub_80A66D4 thumb_func_start sub_80A66F8 sub_80A66F8: push {lr} adds r1, r0, 0 adds r0, 0x52 movs r2, 0 ldrsh r0, [r0, r2] cmp r0, 0 blt _080A6716 ldrh r1, [r1] movs r0, 0x80 lsls r0, 6 ands r0, r1 cmp r0, 0 bne _080A6716 lsrs r0, r1, 15 b _080A6718 _080A6716: movs r0, 0 _080A6718: pop {r1} bx r1 thumb_func_end sub_80A66F8 thumb_func_start sub_80A671C sub_80A671C: push {r4-r6,lr} adds r4, r0, 0 adds r6, r4, 0 adds r6, 0x58 movs r0, 0 ldrsh r1, [r6, r0] cmp r1, 0 beq _080A6752 movs r0, 0xE0 lsls r0, 1 cmp r1, r0 beq _080A674A ldr r0, [r4, 0x5C] movs r5, 0x1 negs r5, r5 cmp r0, r5 beq _080A674A bl sub_800E9E4 lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _080A674E _080A674A: movs r0, 0x1 b _080A6754 _080A674E: str r5, [r4, 0x5C] strh r0, [r6] _080A6752: movs r0, 0 _080A6754: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80A671C thumb_func_start sub_80A675C sub_80A675C: push {r4-r6,lr} sub sp, 0x8 adds r6, r1, 0 mov r0, sp bl sub_809D248 lsls r0, 24 cmp r0, 0 beq _080A678C ldr r1, [r6] cmp r1, 0 bge _080A6776 adds r1, 0xFF _080A6776: asrs r1, 8 ldr r0, [sp] subs r4, r1, r0 ldr r1, [r6, 0x4] cmp r1, 0 bge _080A6784 adds r1, 0xFF _080A6784: asrs r1, 8 ldr r0, [sp, 0x4] subs r5, r1, r0 b _080A67A0 _080A678C: ldr r0, [r6] cmp r0, 0 bge _080A6794 adds r0, 0xFF _080A6794: asrs r4, r0, 8 ldr r1, [r6, 0x4] cmp r1, 0 bge _080A679E adds r1, 0xFF _080A679E: asrs r5, r1, 8 _080A67A0: adds r1, r4, 0 adds r1, 0x40 ldr r0, _080A67BC cmp r1, r0 bhi _080A67C0 movs r0, 0x10 negs r0, r0 cmp r5, r0 blt _080A67C0 cmp r5, 0xCF bgt _080A67C0 movs r0, 0x1 b _080A67C2 .align 2, 0 _080A67BC: .4byte 0x0000016f _080A67C0: movs r0, 0 _080A67C2: add sp, 0x8 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80A675C thumb_func_start sub_80A67CC sub_80A67CC: push {r4-r7,lr} adds r4, r0, 0 adds r5, r1, 0 movs r7, 0 cmp r5, 0 beq _080A67E2 movs r1, 0 ldrsh r0, [r5, r1] cmp r0, 0 ble _080A67E2 movs r7, 0x1 _080A67E2: adds r0, r2, 0 bl sub_80A65E0 adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 bl sub_80A65F0 movs r1, 0 str r1, [r4, 0x74] str r1, [r4, 0x78] movs r6, 0x1 negs r6, r6 str r6, [r4, 0x7C] adds r0, r4, 0 adds r0, 0x70 strb r1, [r0] subs r0, 0x4 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r2, r4, 0 adds r2, 0x52 ldr r0, _080A6884 strh r0, [r2] str r1, [r4, 0x54] adds r0, r4, 0 adds r0, 0x64 strh r1, [r0] adds r2, 0x14 adds r0, r6, 0 adds r3, r0, 0 strh r0, [r2] adds r0, r4, 0 adds r0, 0x68 strh r1, [r0] subs r0, 0x10 strh r1, [r0] adds r1, r4, 0 adds r1, 0x5A movs r0, 0xFF strb r0, [r1] str r6, [r4, 0x5C] str r6, [r4, 0x60] cmp r7, 0 beq _080A6888 ldr r0, [r5] ldr r1, [r5, 0x4] str r0, [r4, 0x48] str r1, [r4, 0x4C] adds r5, r4, 0 adds r5, 0x48 adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 bl sub_80A68F8 lsls r0, 24 cmp r0, 0 bne _080A689A adds r0, r4, 0 adds r0, 0x50 ldrh r1, [r0] movs r0, 0x80 lsls r0, 5 ands r0, r1 cmp r0, 0 bne _080A689A adds r0, r5, 0 bl sub_80A6CF4 lsls r0, 24 cmp r0, 0 beq _080A689A adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 bl sub_80A68F8 b _080A689A .align 2, 0 _080A6884: .4byte 0x0000ffff _080A6888: adds r1, r4, 0 adds r1, 0x48 ldrh r0, [r1] orrs r0, r3 strh r0, [r1] adds r0, r4, 0 adds r0, 0x4A strh r7, [r0] str r7, [r4, 0x4C] _080A689A: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80A67CC thumb_func_start sub_80A68A0 sub_80A68A0: push {r4,lr} adds r4, r0, 0 adds r0, 0x50 ldrh r1, [r0] movs r0, 0x80 lsls r0, 2 ands r0, r1 cmp r0, 0 beq _080A68CE adds r0, r4, 0 adds r0, 0x58 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 beq _080A68CE ldr r1, [r4, 0x5C] movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _080A68CE adds r0, r1, 0 bl sub_800DC14 _080A68CE: ldr r0, [r4, 0x54] cmp r0, 0 beq _080A68DC bl CloseFile movs r0, 0 str r0, [r4, 0x54] _080A68DC: adds r0, r4, 0 bl sub_80A69FC pop {r4} pop {r0} bx r0 thumb_func_end sub_80A68A0 thumb_func_start sub_80A68E8 sub_80A68E8: push {lr} movs r0, 0x15 _080A68EC: subs r0, 0x1 cmp r0, 0 bge _080A68EC pop {r0} bx r0 thumb_func_end sub_80A68E8 thumb_func_start sub_80A68F8 sub_80A68F8: push {r4-r7,lr} mov r12, r0 adds r5, r2, 0 ldr r0, _080A6924 ldr r4, [r0] movs r2, 0 ldrsh r0, [r1, r2] cmp r0, r5 blt _080A6956 adds r5, r0, 0 movs r3, 0 ldr r0, [r4] mov r6, r12 adds r6, 0x52 mov r7, r12 adds r7, 0x64 cmp r0, 0 bne _080A6928 movs r2, 0x1 cmp r2, r5 blt _080A692A b _080A6986 .align 2, 0 _080A6924: .4byte gUnknown_3001B7C _080A6928: movs r2, 0 _080A692A: adds r0, r3, 0x1 lsls r0, 16 asrs r3, r0, 16 adds r4, 0xC cmp r3, 0x15 bgt _080A6986 ldr r0, [r4] cmp r0, 0 bne _080A6928 adds r2, 0x1 cmp r2, r5 blt _080A692A lsls r0, r2, 1 adds r0, r2 lsls r0, 2 subs r0, 0xC subs r4, r0 adds r0, r3, 0x1 subs r0, r2 lsls r0, 16 asrs r3, r0, 16 b _080A6986 _080A6956: movs r3, 0x15 adds r4, 0xFC ldr r0, [r4] mov r6, r12 adds r6, 0x52 mov r7, r12 adds r7, 0x64 cmp r0, 0 bne _080A696C movs r2, 0x1 b _080A6982 _080A696C: movs r2, 0 _080A696E: subs r0, r3, 0x1 lsls r0, 16 asrs r3, r0, 16 subs r4, 0xC cmp r3, 0 blt _080A6986 ldr r0, [r4] cmp r0, 0 bne _080A696C adds r2, 0x1 _080A6982: cmp r2, r5 blt _080A696E _080A6986: cmp r2, r5 blt _080A69C4 strh r3, [r6] strh r5, [r7] movs r0, 0x1 str r0, [r4] mov r0, r12 str r0, [r4, 0x8] ldrh r1, [r1, 0x2] bl sub_80A6A90 cmp r5, 0x1 ble _080A69B2 movs r2, 0x2 adds r0, r4, 0 adds r0, 0xC subs r1, r5, 0x1 _080A69A8: str r2, [r0] adds r0, 0xC subs r1, 0x1 cmp r1, 0 bne _080A69A8 _080A69B2: ldr r1, _080A69C0 ldr r0, [r1] subs r0, r5 str r0, [r1] movs r0, 0x1 b _080A69EC .align 2, 0 _080A69C0: .4byte gUnknown_2039DD4 _080A69C4: ldr r1, _080A69F4 movs r0, 0 strb r0, [r1] movs r0, 0x1 negs r0, r0 mov r1, r12 str r0, [r1, 0x7C] mov r0, r12 adds r0, 0x70 movs r1, 0 strb r1, [r0] ldr r0, _080A69F8 strh r0, [r6] strh r1, [r7] mov r0, r12 adds r0, 0x6C strh r1, [r0] adds r0, 0x2 strh r1, [r0] movs r0, 0 _080A69EC: pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080A69F4: .4byte gUnknown_2039DD0 _080A69F8: .4byte 0x0000ffff thumb_func_end sub_80A68F8 thumb_func_start sub_80A69FC sub_80A69FC: push {r4-r7,lr} adds r6, r0, 0 adds r7, r6, 0 adds r7, 0x52 movs r0, 0 ldrsh r4, [r7, r0] ldr r0, _080A6A80 lsls r1, r4, 1 adds r1, r4 lsls r1, 2 ldr r0, [r0] adds r5, r0, r1 cmp r4, 0 blt _080A6A7A adds r0, r6, 0 bl sub_80A6C88 movs r0, 0 str r0, [r5, 0x8] str r0, [r5] adds r5, 0xC ldr r1, _080A6A84 ldr r0, [r1] adds r0, 0x1 str r0, [r1] adds r0, r4, 0x1 lsls r0, 16 asrs r4, r0, 16 adds r6, 0x64 mov r12, r6 cmp r4, 0x15 bgt _080A6A6A ldr r0, [r5] cmp r0, 0x2 bne _080A6A6A movs r6, 0 adds r2, r1, 0 lsls r1, r4, 16 movs r0, 0x80 lsls r0, 9 adds r1, r0 adds r3, r0, 0 _080A6A50: str r6, [r5] adds r5, 0xC ldr r0, [r2] adds r0, 0x1 str r0, [r2] adds r0, r1, 0 adds r1, r3 asrs r4, r0, 16 cmp r4, 0x15 bgt _080A6A6A ldr r0, [r5] cmp r0, 0x2 beq _080A6A50 _080A6A6A: ldr r0, _080A6A88 strh r0, [r7] movs r0, 0 mov r1, r12 strh r0, [r1] ldr r1, _080A6A8C movs r0, 0x1 strb r0, [r1] _080A6A7A: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080A6A80: .4byte gUnknown_3001B7C _080A6A84: .4byte gUnknown_2039DD4 _080A6A88: .4byte 0x0000ffff _080A6A8C: .4byte gUnknown_2039DD0 thumb_func_end sub_80A69FC thumb_func_start sub_80A6A90 sub_80A6A90: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 mov r10, r0 lsls r1, 16 lsrs r2, r1, 16 adds r5, r2, 0 movs r0, 0xC0 lsls r0, 2 ands r0, r2 cmp r0, 0 bne _080A6AB0 b _080A6C6C _080A6AB0: movs r0, 0x80 lsls r0, 3 ands r0, r2 cmp r0, 0 beq _080A6AD8 ldr r0, _080A6AD4 ldr r1, [r0] movs r3, 0x86 lsls r3, 1 adds r4, r1, r3 ldrh r1, [r4] adds r3, r0, 0 cmp r1, r2 bne _080A6B36 ldrh r0, [r4, 0x2] adds r0, 0x1 strh r0, [r4, 0x2] b _080A6C78 .align 2, 0 _080A6AD4: .4byte gUnknown_3001B7C _080A6AD8: movs r0, 0 mov r8, r0 ldr r1, _080A6B1C ldr r0, [r1] movs r2, 0x84 lsls r2, 1 adds r4, r0, r2 adds r3, r1, 0 movs r1, 0xE8 lsls r1, 13 _080A6AEC: ldrh r0, [r4] cmp r0, r5 bne _080A6B24 lsrs r1, 16 adds r3, r1, 0 ldrh r0, [r4, 0x2] adds r0, 0x1 strh r0, [r4, 0x2] mov r0, r10 cmp r0, 0 beq _080A6B08 subs r1, 0x10 adds r0, 0x68 strh r1, [r0] _080A6B08: adds r0, r3, 0 subs r0, 0x10 str r0, [sp] str r5, [sp, 0x4] movs r0, 0 ldr r1, _080A6B20 mov r2, r8 bl Log b _080A6C78 .align 2, 0 _080A6B1C: .4byte gUnknown_3001B7C _080A6B20: .4byte gUnknown_81177F4 _080A6B24: movs r2, 0x80 lsls r2, 9 adds r1, r2 movs r0, 0x1 add r8, r0 adds r4, 0x4 mov r2, r8 cmp r2, 0x1 ble _080A6AEC _080A6B36: movs r0, 0x80 lsls r0, 3 ands r0, r5 cmp r0, 0 beq _080A6B68 movs r0, 0x1 mov r8, r0 ldr r0, [r3] movs r1, 0x86 lsls r1, 1 adds r4, r0, r1 movs r2, 0x2 ldrsh r0, [r4, r2] cmp r0, 0 ble _080A6BA8 ldr r0, _080A6B60 ldr r1, _080A6B64 adds r2, r5, 0 bl FatalError .align 2, 0 _080A6B60: .4byte gUnknown_8117858 _080A6B64: .4byte gUnknown_8117864 _080A6B68: movs r0, 0 mov r8, r0 ldr r0, [r3] movs r1, 0x84 lsls r1, 1 adds r4, r0, r1 movs r2, 0x2 ldrsh r0, [r4, r2] cmp r0, 0 ble _080A6B90 _080A6B7C: movs r3, 0x1 add r8, r3 adds r4, 0x4 mov r0, r8 cmp r0, 0x1 bgt _080A6B96 movs r1, 0x2 ldrsh r0, [r4, r1] cmp r0, 0 bgt _080A6B7C _080A6B90: mov r2, r8 cmp r2, 0x1 ble _080A6BA8 _080A6B96: ldr r0, _080A6BA0 ldr r1, _080A6BA4 adds r2, r5, 0 bl FatalError .align 2, 0 _080A6BA0: .4byte gUnknown_8117888 _080A6BA4: .4byte gUnknown_8117864 _080A6BA8: mov r0, r8 adds r0, 0x1D lsls r0, 16 lsrs r0, 16 str r0, [sp, 0xC] mov r3, r8 lsls r0, r3, 20 movs r1, 0xE8 lsls r1, 17 adds r0, r1 lsrs r0, 16 str r0, [sp, 0x10] movs r0, 0x80 lsls r0, 2 ands r0, r5 cmp r0, 0 beq _080A6BE8 ldr r0, _080A6BE0 ldr r1, _080A6BE4 bl OpenFileAndGetFileDataPtr mov r9, r0 ldr r7, [r0, 0x4] movs r0, 0xFF ands r0, r5 lsls r0, 6 adds r7, r0 b _080A6BFE .align 2, 0 _080A6BE0: .4byte gUnknown_81177EC _080A6BE4: .4byte gUnknown_8510000 _080A6BE8: movs r0, 0xFF ands r0, r5 lsls r0, 2 ldr r1, _080A6C60 adds r0, r1 ldr r0, [r0] ldr r1, _080A6C64 bl OpenFileAndGetFileDataPtr mov r9, r0 ldr r7, [r0, 0x4] _080A6BFE: movs r0, 0x80 lsls r0, 5 ands r0, r5 lsls r0, 16 lsrs r0, 16 negs r0, r0 lsrs r6, r0, 31 movs r0, 0x80 lsls r0, 6 ands r0, r5 cmp r0, 0 beq _080A6C1A movs r0, 0x2 orrs r6, r0 _080A6C1A: ldr r0, [sp, 0xC] adds r1, r6, 0 bl sub_80997F4 ldr r0, [sp, 0x10] adds r1, r7, 0 movs r2, 0x10 bl sub_809971C strh r5, [r4] movs r0, 0x1 strh r0, [r4, 0x2] ldr r2, [sp, 0xC] subs r2, 0x10 mov r3, r10 cmp r3, 0 beq _080A6C42 mov r0, r10 adds r0, 0x68 strh r2, [r0] _080A6C42: ldr r1, _080A6C68 str r2, [sp] str r5, [sp, 0x4] str r6, [sp, 0x8] movs r0, 0 mov r2, r8 ldr r3, [sp, 0xC] bl Log mov r0, r9 cmp r0, 0 beq _080A6C78 bl CloseFile b _080A6C78 .align 2, 0 _080A6C60: .4byte gUnknown_81178F4 _080A6C64: .4byte gUnknown_9E60000 _080A6C68: .4byte gUnknown_8117894 _080A6C6C: mov r1, r10 cmp r1, 0 beq _080A6C78 mov r0, r10 adds r0, 0x68 strh r5, [r0] _080A6C78: add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80A6A90 thumb_func_start sub_80A6C88 sub_80A6C88: push {r4-r6,lr} adds r2, r0, 0 cmp r2, 0 beq _080A6C9E adds r0, 0x68 ldrh r0, [r0] adds r5, r0, 0 subs r5, 0xD cmp r5, 0 blt _080A6CE6 b _080A6CA0 _080A6C9E: movs r5, 0x1 _080A6CA0: ldr r0, _080A6CEC lsls r1, r5, 2 movs r3, 0x84 lsls r3, 1 adds r1, r3 ldr r0, [r0] adds r4, r0, r1 cmp r2, 0 beq _080A6CBA adds r1, r2, 0 adds r1, 0x68 movs r0, 0 strh r0, [r1] _080A6CBA: ldrh r0, [r4, 0x2] subs r0, 0x1 movs r6, 0 strh r0, [r4, 0x2] lsls r0, 16 cmp r0, 0 bgt _080A6CE6 ldr r1, _080A6CF0 ldrh r3, [r4] movs r0, 0 adds r2, r5, 0 bl Log strh r6, [r4] strh r6, [r4, 0x2] adds r0, r5, 0 adds r0, 0x1D lsls r0, 16 lsrs r0, 16 movs r1, 0 bl sub_80997F4 _080A6CE6: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080A6CEC: .4byte gUnknown_3001B7C _080A6CF0: .4byte gUnknown_81178C0 thumb_func_end sub_80A6C88 thumb_func_start sub_80A6CF4 sub_80A6CF4: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x68 movs r1, 0 mov r8, r1 movs r1, 0 ldrsh r2, [r0, r1] mov r9, r2 movs r2, 0 mov r10, r2 movs r0, 0x1 negs r0, r0 str r0, [sp, 0x60] str r0, [sp, 0x64] add r4, sp, 0x58 adds r0, r4, 0 bl sub_809D248 movs r7, 0 ldr r0, _080A6D70 ldr r3, [r0] movs r1, 0x80 lsls r1, 6 mov r12, r1 mov r4, sp _080A6D2C: ldr r0, [r3] cmp r0, 0x1 bne _080A6DB4 ldr r2, [r3, 0x8] adds r0, r2, 0 adds r0, 0x50 ldrh r1, [r0] mov r0, r12 ands r0, r1 cmp r0, 0 bne _080A6DB4 ldr r0, [r2, 0x7C] cmp r0, 0 blt _080A6DB4 ldr r1, [r2, 0x74] cmp r1, 0 bge _080A6D50 adds r1, 0xFF _080A6D50: asrs r1, 8 ldr r0, [sp, 0x58] subs r5, r1, r0 ldr r1, [r2, 0x78] cmp r1, 0 bge _080A6D5E adds r1, 0xFF _080A6D5E: asrs r1, 8 ldr r0, [sp, 0x5C] subs r1, r0 adds r6, r1, 0 cmp r1, 0 ble _080A6D74 adds r0, r6, 0 adds r0, 0x28 b _080A6D78 .align 2, 0 _080A6D70: .4byte gUnknown_3001B7C _080A6D74: movs r0, 0x28 subs r0, r6 _080A6D78: str r0, [r2, 0x7C] cmp r5, 0 ble _080A6D88 ldr r0, [r2, 0x7C] cmp r5, r0 ble _080A6D92 str r5, [r2, 0x7C] b _080A6D92 _080A6D88: negs r1, r5 ldr r0, [r2, 0x7C] cmp r1, r0 ble _080A6D92 str r1, [r2, 0x7C] _080A6D92: adds r0, r2, 0 adds r0, 0x48 movs r1, 0 ldrsh r0, [r0, r1] add r10, r0 cmp r0, r9 blt _080A6DAE ldr r0, [r2, 0x7C] ldr r1, [sp, 0x64] cmp r1, r0 bge _080A6DAE mov r1, r8 str r1, [sp, 0x60] str r0, [sp, 0x64] _080A6DAE: stm r4!, {r2} movs r2, 0x1 add r8, r2 _080A6DB4: adds r0, r7, 0x1 lsls r0, 16 asrs r7, r0, 16 adds r3, 0xC cmp r7, 0x15 ble _080A6D2C cmp r10, r9 blt _080A6E54 ldr r0, [sp, 0x60] cmp r0, 0 blt _080A6DD8 lsls r0, 2 add r0, sp ldr r0, [r0] bl sub_80A69FC movs r0, 0x1 b _080A6E56 _080A6DD8: mov r1, r8 cmp r1, 0 ble _080A6E54 _080A6DDE: movs r5, 0x1 negs r5, r5 adds r3, r5, 0 movs r6, 0 mov r7, r8 subs r7, 0x1 mov r2, r8 cmp r2, 0 ble _080A6E08 mov r2, sp mov r1, r8 _080A6DF4: ldr r0, [r2] ldr r0, [r0, 0x7C] cmp r3, r0 bge _080A6E00 mov r5, r8 adds r3, r0, 0 _080A6E00: adds r2, 0x4 subs r1, 0x1 cmp r1, 0 bne _080A6DF4 _080A6E08: lsls r0, r5, 2 mov r1, sp adds r4, r1, r0 ldr r0, [r4] bl sub_80A69FC mov r8, r7 adds r1, r5, 0 cmp r1, r8 bge _080A6E28 adds r2, r4, 0 _080A6E1E: ldr r0, [r2, 0x4] stm r2!, {r0} adds r1, 0x1 cmp r1, r8 blt _080A6E1E _080A6E28: movs r1, 0 ldr r0, _080A6E40 ldr r3, [r0] _080A6E2E: ldr r0, [r3] cmp r0, 0 bne _080A6E44 adds r6, 0x1 cmp r6, r9 blt _080A6E46 movs r0, 0x1 b _080A6E56 .align 2, 0 _080A6E40: .4byte gUnknown_3001B7C _080A6E44: movs r6, 0 _080A6E46: adds r1, 0x1 adds r3, 0xC cmp r1, 0x15 ble _080A6E2E mov r2, r8 cmp r2, 0 bgt _080A6DDE _080A6E54: movs r0, 0 _080A6E56: add sp, 0x68 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80A6CF4 thumb_func_start sub_80A6E68 sub_80A6E68: push {lr} movs r0, 0 bl sub_8004D8C movs r0, 0 bl nullsub_10 bl sub_800E970 pop {r0} bx r0 thumb_func_end sub_80A6E68 thumb_func_start sub_80A6E80 sub_80A6E80: push {r4,lr} sub sp, 0x4 ldr r4, _080A6EC4 adds r0, r4, 0 bl sub_809D248 lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _080A6E98 str r0, [r4] str r0, [r4, 0x4] _080A6E98: bl sub_80ABA7C bl sub_80ACAD4 bl sub_80AD7AC ldrh r1, [r4, 0x4] lsls r1, 16 ldrh r0, [r4] orrs r0, r1 str r0, [sp] mov r0, sp bl sub_800E90C bl sub_8005180 bl nullsub_12 add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080A6EC4: .4byte gUnknown_2039DD8 thumb_func_end sub_80A6E80 thumb_func_start sub_80A6EC8 sub_80A6EC8: push {lr} adds r2, r0, 0 adds r0, 0x52 movs r3, 0 ldrsh r0, [r0, r3] cmp r0, 0 ble _080A6EF6 adds r0, r2, 0 adds r0, 0x48 movs r3, 0 ldrsh r0, [r0, r3] cmp r1, r0 bgt _080A6EE4 adds r1, r0, 0 _080A6EE4: adds r0, r2, 0 adds r0, 0x64 movs r3, 0 ldrsh r0, [r0, r3] cmp r0, r1 beq _080A6EF6 adds r0, r2, 0 adds r0, 0x66 strh r1, [r0] _080A6EF6: pop {r0} bx r0 thumb_func_end sub_80A6EC8 thumb_func_start sub_80A6EFC sub_80A6EFC: push {r4-r7,lr} sub sp, 0xC adds r4, r0, 0 lsls r1, 16 asrs r7, r1, 16 lsls r2, 24 asrs r6, r2, 24 adds r0, 0x52 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bge _080A6F48 adds r5, r4, 0 adds r5, 0x66 movs r2, 0 ldrsh r0, [r5, r2] cmp r0, 0 blt _080A6F28 adds r1, r4, 0 adds r1, 0x48 adds r2, r0, 0 b _080A6F62 _080A6F28: adds r1, r4, 0 adds r1, 0x48 movs r2, 0 ldrsh r0, [r1, r2] cmp r0, 0 bgt _080A6F36 b _080A7038 _080A6F36: movs r2, 0x1 negs r2, r2 adds r0, r4, 0 bl sub_80A68F8 lsls r0, 24 cmp r0, 0 beq _080A7038 b _080A6F72 _080A6F48: adds r5, r4, 0 adds r5, 0x66 movs r1, 0 ldrsh r0, [r5, r1] cmp r0, 0 blt _080A6F72 adds r0, r4, 0 bl sub_80A69FC adds r1, r4, 0 adds r1, 0x48 movs r0, 0 ldrsh r2, [r5, r0] _080A6F62: adds r0, r4, 0 bl sub_80A68F8 lsls r0, 24 cmp r0, 0 beq _080A7038 ldr r0, _080A6F8C strh r0, [r5] _080A6F72: movs r0, 0x80 lsls r0, 3 ands r0, r7 lsls r0, 16 asrs r3, r0, 16 cmp r3, 0 beq _080A6F94 ldrh r1, [r4] ldr r0, _080A6F90 ands r0, r1 strh r0, [r4] b _080A7038 .align 2, 0 _080A6F8C: .4byte 0x0000ffff _080A6F90: .4byte 0x0000efff _080A6F94: ldr r2, _080A6FE0 adds r0, r4, 0 adds r0, 0x52 movs r5, 0 ldrsh r1, [r0, r5] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, [r2] adds r1, r0 mov r12, r1 adds r1, r4, 0 adds r1, 0x70 movs r0, 0x1 strb r0, [r1] subs r0, 0x2 str r0, [r4, 0x7C] movs r1, 0xE0 lsls r1, 3 ands r1, r7 movs r0, 0x80 lsls r0, 1 cmp r1, r0 beq _080A6FE4 cmp r1, r0 ble _080A6FEE movs r0, 0x80 lsls r0, 2 cmp r1, r0 beq _080A6FFA movs r0, 0xC0 lsls r0, 2 cmp r1, r0 bne _080A6FEE adds r0, r4, 0 adds r0, 0x6C strh r3, [r0] b _080A7000 .align 2, 0 _080A6FE0: .4byte gUnknown_3001B7C _080A6FE4: adds r1, r4, 0 adds r1, 0x6C movs r0, 0x80 strh r0, [r1] b _080A7000 _080A6FEE: adds r1, r4, 0 adds r1, 0x6C movs r0, 0x80 lsls r0, 1 strh r0, [r1] b _080A7000 _080A6FFA: adds r0, r4, 0 adds r0, 0x6C strh r1, [r0] _080A7000: adds r0, r4, 0 adds r0, 0x6E movs r1, 0 strh r1, [r0] ldr r5, [r4, 0x4C] movs r0, 0xFF ands r0, r7 adds r2, r6, 0 cmp r6, 0 bge _080A7016 adds r2, r6, 0x7 _080A7016: asrs r2, 3 adds r2, r0, r2 movs r3, 0x7 ands r3, r6 mov r6, r12 ldr r0, [r6, 0x4] str r0, [sp] str r1, [sp, 0x4] lsls r0, r7, 16 lsrs r0, 27 movs r1, 0x1 ands r0, r1 str r0, [sp, 0x8] adds r0, r4, 0 adds r1, r5, 0 bl sub_80053D0 _080A7038: add sp, 0xC pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80A6EFC thumb_func_start sub_80A7040 sub_80A7040: push {r4,r5,lr} adds r4, r0, 0 adds r5, r3, 0 lsls r1, 16 asrs r3, r1, 16 lsls r2, 24 asrs r2, 24 adds r0, 0x50 ldrh r1, [r0] movs r0, 0x80 lsls r0, 2 ands r0, r1 cmp r0, 0 beq _080A708C cmp r3, 0 beq _080A7068 movs r0, 0xE0 lsls r0, 1 cmp r3, r0 bne _080A7080 _080A7068: adds r0, r4, 0 bl sub_80A671C lsls r0, 24 cmp r0, 0 beq _080A708C adds r1, r4, 0 adds r1, 0x58 movs r0, 0xE0 lsls r0, 1 strh r0, [r1] b _080A708C _080A7080: adds r0, r4, 0 adds r0, 0x58 strh r3, [r0] adds r0, 0x2 strb r2, [r0] str r5, [r4, 0x60] _080A708C: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80A7040 thumb_func_start sub_80A7094 sub_80A7094: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x40 adds r7, r0, 0 mov r10, r1 mov r8, r2 str r3, [sp, 0x3C] ldr r0, [r2] ldr r1, [r2, 0x4] str r0, [r7, 0x74] str r1, [r7, 0x78] movs r6, 0 str r6, [r7, 0x7C] adds r0, r7, 0 adds r0, 0x50 ldrh r1, [r0] movs r0, 0x80 lsls r0, 2 ands r0, r1 cmp r0, 0 beq _080A7172 adds r4, r7, 0 adds r4, 0x58 movs r0, 0 ldrsh r1, [r4, r0] cmp r1, 0 beq _080A7172 movs r0, 0xE0 lsls r0, 1 cmp r1, r0 bne _080A70EC ldr r0, [r7, 0x5C] movs r5, 0x1 negs r5, r5 cmp r0, r5 beq _080A70E8 bl sub_800DC14 str r5, [r7, 0x5C] _080A70E8: strh r6, [r4] b _080A7172 _080A70EC: ldr r0, [r7, 0x5C] movs r1, 0x1 negs r1, r1 mov r9, r1 cmp r0, r9 bne _080A7160 add r1, sp, 0x8 ldr r0, _080A715C ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} movs r1, 0 ldrsh r0, [r4, r1] bl sub_800EE5C bl sub_800EF64 add r2, sp, 0x14 movs r3, 0 ldrsh r0, [r4, r3] str r0, [sp, 0x14] str r6, [r2, 0x4] adds r0, r7, 0 adds r0, 0x5A ldrb r0, [r0] lsls r0, 24 asrs r0, 24 str r0, [r2, 0x8] mov r4, r8 ldr r0, [r4] cmp r0, 0 bge _080A712C adds r0, 0xFF _080A712C: asrs r0, 8 strh r0, [r2, 0xC] mov r5, r8 ldr r0, [r5, 0x4] cmp r0, 0 bge _080A713A adds r0, 0xFF _080A713A: asrs r0, 8 strh r0, [r2, 0xE] strh r6, [r2, 0x10] strh r6, [r2, 0x12] mov r0, r9 str r0, [r2, 0x14] str r6, [r2, 0x18] add r1, sp, 0x30 add r0, sp, 0x8 ldm r0!, {r3-r5} stm r1!, {r3-r5} adds r0, r2, 0 bl sub_800E890 str r0, [r7, 0x5C] b _080A7172 .align 2, 0 _080A715C: .4byte gUnknown_81178E0 _080A7160: bl sub_800E9E4 lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _080A7172 mov r1, r9 str r1, [r7, 0x5C] strh r0, [r4] _080A7172: adds r0, r7, 0 adds r0, 0x52 movs r2, 0 ldrsh r0, [r0, r2] cmp r0, 0 blt _080A7222 adds r0, r7, 0 adds r0, 0x50 ldrh r4, [r0] movs r0, 0x40 ands r0, r4 lsls r0, 16 lsrs r0, 16 mov r9, r0 cmp r0, 0 bne _080A7222 mov r3, r8 ldr r1, [r3] cmp r1, 0 bge _080A719C adds r1, 0xFF _080A719C: asrs r1, 8 ldr r2, _080A7228 ldr r0, [r2] subs r5, r1, r0 mov r1, r8 ldr r0, [r1, 0x4] cmp r0, 0 bge _080A71AE adds r0, 0xFF _080A71AE: asrs r1, r0, 8 ldr r0, [r2, 0x4] subs r6, r1, r0 ldr r3, [sp, 0x3C] cmp r3, 0 bge _080A71BC adds r3, 0xFF _080A71BC: asrs r0, r3, 8 subs r0, r6, r0 mov r8, r0 adds r1, r5, 0 adds r1, 0x40 ldr r0, _080A722C cmp r1, r0 bhi _080A7274 movs r0, 0x10 negs r0, r0 cmp r6, r0 blt _080A7274 cmp r6, 0xCF bgt _080A7274 cmp r8, r0 blt _080A7274 mov r2, r8 cmp r2, 0xCF bgt _080A7274 movs r0, 0x10 ands r0, r4 cmp r0, 0 beq _080A7234 ldr r0, _080A7230 ldrh r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080A7234 adds r0, r7, 0 movs r1, 0 bl sub_80A72B8 movs r1, 0x98 lsls r1, 1 adds r0, r7, 0 adds r0, 0x68 ldrh r0, [r0] str r0, [sp] adds r0, r7, 0 adds r0, 0x3C str r0, [sp, 0x4] adds r0, r7, 0 movs r2, 0xD0 movs r3, 0 bl sub_800558C adds r0, r7, 0 adds r0, 0x70 mov r3, r9 strb r3, [r0] _080A7222: movs r0, 0 b _080A72A6 .align 2, 0 _080A7228: .4byte gUnknown_2039DD8 _080A722C: .4byte 0x0000016f _080A7230: .4byte gUnknown_2039DCC _080A7234: adds r4, r7, 0 adds r4, 0x70 ldrb r1, [r4] adds r0, r7, 0 bl sub_80A72B8 adds r0, r7, 0 adds r0, 0x6A movs r1, 0 ldrsh r3, [r0, r1] adds r3, r6 subs r0, 0x2 ldrh r0, [r0] str r0, [sp] adds r0, r7, 0 adds r0, 0x3C str r0, [sp, 0x4] adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 bl sub_800558C movs r0, 0 strb r0, [r4] mov r2, r10 cmp r2, 0 beq _080A7270 mov r3, r10 str r5, [r3] str r6, [r3, 0x4] _080A7270: movs r0, 0x1 b _080A72A6 _080A7274: adds r4, r7, 0 adds r4, 0x70 ldrb r0, [r4] cmp r0, 0 beq _080A7222 adds r0, r7, 0 movs r1, 0x1 bl sub_80A72B8 movs r1, 0x98 lsls r1, 1 adds r0, r7, 0 adds r0, 0x68 ldrh r0, [r0] str r0, [sp] adds r0, r7, 0 adds r0, 0x3C str r0, [sp, 0x4] adds r0, r7, 0 movs r2, 0xD0 movs r3, 0 bl sub_800558C movs r0, 0 strb r0, [r4] _080A72A6: add sp, 0x40 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80A7094 thumb_func_start sub_80A72B8 sub_80A72B8: push {r4-r7,lr} adds r6, r0, 0 lsls r1, 24 cmp r1, 0 beq _080A72D2 adds r1, r6, 0 adds r1, 0x6E movs r0, 0 strh r0, [r1] adds r0, r6, 0 bl sub_80054BC b _080A7304 _080A72D2: adds r5, r6, 0 adds r5, 0x6E adds r0, r6, 0 adds r0, 0x6C ldrh r0, [r0] ldrh r1, [r5] adds r0, r1 strh r0, [r5] lsls r0, 16 asrs r0, 16 cmp r0, 0xFF ble _080A7304 ldr r0, _080A730C adds r7, r0, 0 _080A72EE: adds r4, r5, 0 ldrh r1, [r5] adds r0, r7, r1 strh r0, [r5] adds r0, r6, 0 bl sub_80054BC movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0xFF bgt _080A72EE _080A7304: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080A730C: .4byte 0xffffff00 thumb_func_end sub_80A72B8 thumb_func_start sub_80A7310 sub_80A7310: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x8 mov r12, r0 adds r4, r1, 0 adds r5, r2, 0 adds r0, 0x50 ldrh r1, [r0] movs r0, 0x80 lsls r0, 2 ands r0, r1 cmp r0, 0 beq _080A73DC mov r0, r12 ldr r0, [r0, 0x5C] mov r8, r0 movs r0, 0x1 negs r0, r0 cmp r8, r0 beq _080A73DC ldr r0, [r4] cmp r0, 0 bge _080A7344 adds r0, 0xFF _080A7344: lsls r0, 8 lsrs r0, 16 ldr r1, _080A73D0 mov r9, r1 ldr r2, [sp, 0x4] ands r2, r1 orrs r2, r0 str r2, [sp, 0x4] ldr r0, [r4, 0x4] cmp r0, 0 bge _080A735C adds r0, 0xFF _080A735C: lsls r0, 8 lsrs r0, 16 lsls r0, 16 ldr r6, _080A73D4 adds r4, r6, 0 ands r4, r2 orrs r4, r0 str r4, [sp, 0x4] asrs r2, r4, 16 ldr r0, _080A73D8 ldr r0, [r0, 0x4] subs r0, r2, r0 mov r1, r12 adds r1, 0x6A movs r7, 0 ldrsh r1, [r1, r7] adds r0, r1 adds r7, r0, 0x2 cmp r3, 0 bge _080A7386 adds r3, 0xFF _080A7386: asrs r0, r3, 8 subs r0, r2, r0 lsls r0, 16 adds r2, r6, 0 ands r2, r4 orrs r2, r0 str r2, [sp, 0x4] cmp r5, 0 beq _080A73B8 ldr r1, [r5] add r0, sp, 0x4 ldrh r0, [r0] adds r1, r0 lsls r1, 16 lsrs r1, 16 mov r0, r9 ands r0, r2 orrs r0, r1 asrs r2, r0, 16 ldr r1, [r5, 0x4] adds r1, r2 lsls r1, 16 ands r0, r6 orrs r0, r1 str r0, [sp, 0x4] _080A73B8: mov r0, r12 adds r0, 0x3C str r0, [sp] mov r0, r8 add r1, sp, 0x4 movs r2, 0 adds r3, r7, 0 bl sub_800E8AC movs r0, 0x1 b _080A73DE .align 2, 0 _080A73D0: .4byte 0xffff0000 _080A73D4: .4byte 0x0000ffff _080A73D8: .4byte gUnknown_2039DD8 _080A73DC: movs r0, 0 _080A73DE: add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80A7310 thumb_func_start sub_80A73EC sub_80A73EC: push {lr} bl CopySpritesToOam bl nullsub_13 bl sub_8005304 bl nullsub_14 ldr r1, _080A7420 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] ldr r1, _080A7424 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] lsls r0, 16 lsrs r0, 16 cmp r0, 0xB bls _080A741A movs r0, 0 strh r0, [r1] _080A741A: pop {r0} bx r0 .align 2, 0 _080A7420: .4byte gUnknown_2039DCC _080A7424: .4byte gUnknown_2039DCE thumb_func_end sub_80A73EC thumb_func_start sub_80A7428 sub_80A7428: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x14 adds r6, r0, 0 mov r8, r3 lsls r1, 16 asrs r7, r1, 16 lsls r2, 16 asrs r2, 16 adds r4, r2, 0 ldr r1, _080A7480 mov r0, sp bl sprintf ldr r1, _080A7484 mov r0, sp bl OpenFile adds r5, r0, 0 movs r1, 0 bl GetFileDataPtr adds r0, r4, 0 bl sub_808DACC lsls r0, 24 lsrs r0, 24 ldr r1, _080A7488 ldr r2, [sp, 0xC] ands r2, r1 orrs r2, r0 str r2, [sp, 0xC] movs r0, 0xD3 lsls r0, 1 cmp r4, r0 bne _080A7490 ldr r0, _080A748C ands r0, r2 movs r1, 0x91 lsls r1, 17 orrs r0, r1 str r0, [sp, 0xC] b _080A74AC .align 2, 0 _080A7480: .4byte gUnknown_8117EDC _080A7484: .4byte gUnknown_8510000 _080A7488: .4byte 0xffff0000 _080A748C: .4byte 0x0000ffff _080A7490: movs r1, 0 cmp r7, 0x47 bne _080A7498 movs r1, 0x1 _080A7498: adds r0, r4, 0 bl sub_808DD68 lsls r0, 24 lsrs r0, 8 ldr r2, _080A74E0 ldr r1, [sp, 0xC] ands r1, r2 orrs r1, r0 str r1, [sp, 0xC] _080A74AC: ldr r0, [r5, 0x4] add r1, sp, 0xC str r0, [r1, 0x4] adds r0, r6, 0 mov r2, r8 bl sub_80A67CC str r5, [r6, 0x54] adds r0, r6, 0 adds r0, 0x52 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 blt _080A74D4 movs r1, 0xC0 lsls r1, 2 adds r0, r6, 0 movs r2, 0 bl sub_80A6EFC _080A74D4: add sp, 0x14 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080A74E0: .4byte 0x0000ffff thumb_func_end sub_80A7428 thumb_func_start sub_80A74E4 sub_80A74E4: push {lr} bl sub_80A68A0 pop {r0} bx r0 thumb_func_end sub_80A74E4 thumb_func_start sub_80A74F0 sub_80A74F0: push {r4-r6,lr} adds r6, r0, 0 lsls r1, 16 asrs r4, r1, 16 lsls r2, 24 asrs r5, r2, 24 cmp r3, 0 bge _080A7514 movs r0, 0xE0 lsls r0, 1 cmp r4, r0 beq _080A7512 adds r0, r4, 0 bl sub_800E700 adds r3, r0, 0 b _080A7514 _080A7512: movs r3, 0 _080A7514: adds r0, r6, 0 adds r1, r4, 0 adds r2, r5, 0 bl sub_80A7040 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80A74F0 thumb_func_start sub_80A7524 sub_80A7524: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x18 adds r5, r0, 0 adds r6, r2, 0 adds r7, r3, 0 lsls r1, 16 asrs r1, 16 mov r8, r1 mov r1, sp bl sub_80A7094 lsls r0, 24 cmp r0, 0 beq _080A75C0 ldr r1, [r5, 0x5C] movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _080A758C ldr r2, [r5, 0x60] cmp r2, 0x3 bgt _080A7580 cmp r2, 0 blt _080A7580 add r4, sp, 0x8 lsls r2, 24 lsrs r2, 24 adds r0, r4, 0 adds r1, r5, 0 bl sub_800569C movs r1, 0 ldrsh r0, [r4, r1] str r0, [sp, 0xC] movs r1, 0x2 ldrsh r0, [r4, r1] add r2, sp, 0xC str r0, [r2, 0x4] adds r0, r5, 0 adds r1, r6, 0 adds r3, r7, 0 bl sub_80A7310 b _080A758C _080A7580: adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 adds r3, r7, 0 bl sub_80A7310 _080A758C: adds r0, r5, 0 adds r0, 0x50 ldrh r1, [r0] movs r0, 0x80 lsls r0, 1 ands r0, r1 cmp r0, 0 beq _080A75B4 ldr r0, [sp] lsls r0, 16 ldr r1, [sp, 0x4] lsls r1, 16 lsrs r0, 16 orrs r0, r1 str r0, [sp, 0x14] add r1, sp, 0x14 mov r0, r8 adds r2, r5, 0 bl sub_808E668 _080A75B4: adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 adds r3, r7, 0 bl sub_80A7310 _080A75C0: add sp, 0x18 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80A7524 thumb_func_start sub_80A75CC sub_80A75CC: push {r4-r6,lr} sub sp, 0x8 adds r4, r0, 0 adds r6, r3, 0 lsls r2, 16 asrs r2, 13 ldr r0, _080A7618 adds r2, r0 movs r5, 0 movs r0, 0 ldrsb r0, [r2, r0] lsls r0, 16 lsrs r0, 16 ldr r3, _080A761C ldr r1, [sp] ands r1, r3 orrs r1, r0 str r1, [sp] ldrh r3, [r2, 0x2] lsls r3, 16 ldr r0, _080A7620 ands r0, r1 orrs r0, r3 str r0, [sp] ldr r0, [r2, 0x4] cmp r0, 0 beq _080A7628 ldr r1, _080A7624 bl OpenFile adds r5, r0, 0 movs r1, 0 bl GetFileDataPtr ldr r0, [r5, 0x4] str r0, [sp, 0x4] b _080A762A .align 2, 0 _080A7618: .4byte gUnknown_8117AE4 _080A761C: .4byte 0xffff0000 _080A7620: .4byte 0x0000ffff _080A7624: .4byte gUnknown_9E60000 _080A7628: str r5, [sp, 0x4] _080A762A: adds r0, r4, 0 mov r1, sp adds r2, r6, 0 bl sub_80A67CC str r5, [r4, 0x54] adds r0, r4, 0 adds r0, 0x52 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 blt _080A764E movs r1, 0x80 lsls r1, 4 adds r0, r4, 0 movs r2, 0 bl sub_80A6EFC _080A764E: add sp, 0x8 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80A75CC thumb_func_start sub_80A7658 sub_80A7658: push {lr} bl sub_80A68A0 pop {r0} bx r0 thumb_func_end sub_80A7658 thumb_func_start sub_80A7664 sub_80A7664: push {r4-r6,lr} adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 movs r1, 0 adds r2, r5, 0 adds r3, r6, 0 bl sub_80A7094 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0 adds r3, r6, 0 bl sub_80A7310 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80A7664 thumb_func_start sub_80A7688 sub_80A7688: push {r4-r6,lr} sub sp, 0x8 adds r4, r0, 0 adds r6, r3, 0 lsls r2, 16 asrs r2, 13 ldr r0, _080A76D4 adds r2, r0 movs r5, 0 movs r0, 0 ldrsb r0, [r2, r0] lsls r0, 16 lsrs r0, 16 ldr r3, _080A76D8 ldr r1, [sp] ands r1, r3 orrs r1, r0 str r1, [sp] ldrh r3, [r2, 0x2] lsls r3, 16 ldr r0, _080A76DC ands r0, r1 orrs r0, r3 str r0, [sp] ldr r0, [r2, 0x4] cmp r0, 0 beq _080A76E4 ldr r1, _080A76E0 bl OpenFile adds r5, r0, 0 movs r1, 0 bl GetFileDataPtr ldr r0, [r5, 0x4] str r0, [sp, 0x4] b _080A76E6 .align 2, 0 _080A76D4: .4byte gUnknown_8117E8C _080A76D8: .4byte 0xffff0000 _080A76DC: .4byte 0x0000ffff _080A76E0: .4byte gUnknown_9E60000 _080A76E4: str r5, [sp, 0x4] _080A76E6: adds r0, r4, 0 mov r1, sp adds r2, r6, 0 bl sub_80A67CC str r5, [r4, 0x54] adds r0, r4, 0 adds r0, 0x52 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 blt _080A770A movs r1, 0x80 lsls r1, 4 adds r0, r4, 0 movs r2, 0 bl sub_80A6EFC _080A770A: add sp, 0x8 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80A7688 thumb_func_start sub_80A7714 sub_80A7714: push {lr} bl sub_80A68A0 pop {r0} bx r0 thumb_func_end sub_80A7714 thumb_func_start sub_80A7720 sub_80A7720: push {r4-r6,lr} adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 movs r1, 0 adds r2, r5, 0 adds r3, r6, 0 bl sub_80A7094 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0 adds r3, r6, 0 bl sub_80A7310 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80A7720 thumb_func_start sub_80A7744 sub_80A7744: ldr r1, _080A7750 movs r2, 0x1 negs r2, r2 adds r0, r2, 0 strh r0, [r1] bx lr .align 2, 0 _080A7750: .4byte gUnknown_2039DE0 thumb_func_end sub_80A7744 thumb_func_start sub_80A7754 sub_80A7754: ldr r1, _080A7760 movs r2, 0x1 negs r2, r2 adds r0, r2, 0 strh r0, [r1] bx lr .align 2, 0 _080A7760: .4byte gUnknown_2039DE0 thumb_func_end sub_80A7754 thumb_func_start sub_80A7764 sub_80A7764: push {r4,lr} lsls r0, 16 asrs r4, r0, 16 bl sub_80A7784 movs r0, 0x1 negs r0, r0 cmp r4, r0 beq _080A777A ldr r0, _080A7780 strh r4, [r0] _080A777A: pop {r4} pop {r0} bx r0 .align 2, 0 _080A7780: .4byte gUnknown_2039DE0 thumb_func_end sub_80A7764 thumb_func_start sub_80A7784 sub_80A7784: push {lr} ldr r2, _080A779C movs r1, 0 ldrsh r0, [r2, r1] movs r1, 0x1 negs r1, r1 cmp r0, r1 beq _080A7796 strh r1, [r2] _080A7796: pop {r0} bx r0 .align 2, 0 _080A779C: .4byte gUnknown_2039DE0 thumb_func_end sub_80A7784 thumb_func_start sub_80A77A0 sub_80A77A0: push {lr} lsls r0, 16 asrs r1, r0, 16 adds r2, r1, 0 ldr r0, _080A77BC movs r3, 0 ldrsh r0, [r0, r3] cmp r0, r1 beq _080A77CA cmp r1, 0 bge _080A77C0 bl sub_80A7784 b _080A77C6 .align 2, 0 _080A77BC: .4byte gUnknown_2039DE0 _080A77C0: adds r0, r2, 0 bl sub_80A7764 _080A77C6: movs r0, 0x1 b _080A77CC _080A77CA: movs r0, 0 _080A77CC: pop {r1} bx r1 thumb_func_end sub_80A77A0 thumb_func_start sub_80A77D0 sub_80A77D0: push {lr} lsls r0, 16 asrs r1, r0, 16 movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _080A77E8 ldr r0, _080A77E4 b _080A77F0 .align 2, 0 _080A77E4: .4byte gUnknown_8117EFC _080A77E8: ldr r0, _080A77F4 lsls r1, 2 adds r1, r0 ldr r0, [r1] _080A77F0: pop {r1} bx r1 .align 2, 0 _080A77F4: .4byte gUnknown_811E258 thumb_func_end sub_80A77D0 thumb_func_start sub_80A77F8 sub_80A77F8: push {r4,r5,lr} ldr r4, _080A7860 movs r0, 0xCE lsls r0, 2 movs r1, 0x6 bl MemoryAlloc str r0, [r4] ldr r4, _080A7864 movs r0, 0xBA lsls r0, 6 movs r1, 0x6 bl MemoryAlloc str r0, [r4] adds r1, r0, 0 ldr r0, _080A7868 adds r5, r0, 0 movs r4, 0xF8 lsls r4, 1 movs r2, 0x80 lsls r2, 9 adds r3, r2, 0 _080A7826: ldrh r0, [r1, 0x2] orrs r0, r5 strh r0, [r1, 0x2] adds r0, r2, 0 adds r2, r3 asrs r0, 16 adds r1, r4 cmp r0, 0x17 ble _080A7826 ldr r4, _080A7860 ldr r1, [r4] movs r0, 0xCB lsls r0, 2 adds r1, r0 movs r0, 0 movs r2, 0x19 bl sub_809D710 ldr r0, [r4] movs r1, 0xCC lsls r1, 2 adds r0, r1 movs r1, 0x1 strh r1, [r0] bl sub_80A786C pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080A7860: .4byte gUnknown_3001B80 _080A7864: .4byte gUnknown_3001B84 _080A7868: .4byte 0x0000ffff thumb_func_end sub_80A77F8 thumb_func_start sub_80A786C sub_80A786C: push {r4-r6,lr} ldr r0, _080A78E8 ldr r4, [r0] movs r1, 0 movs r6, 0x1 negs r6, r6 movs r5, 0x80 lsls r5, 9 _080A787C: movs r2, 0x2 ldrsh r0, [r4, r2] cmp r0, r6 beq _080A788A adds r0, r1, 0 bl sub_80A8684 _080A788A: adds r0, r5, 0 movs r1, 0x80 lsls r1, 9 adds r5, r1 asrs r1, r0, 16 movs r2, 0xF8 lsls r2, 1 adds r4, r2 cmp r1, 0x17 ble _080A787C ldr r3, _080A78EC ldr r0, [r3] movs r2, 0x1 negs r2, r2 str r2, [r0, 0x24] adds r0, 0x28 movs r1, 0xFF strb r1, [r0] movs r5, 0 movs r4, 0 movs r1, 0x2 _080A78B4: ldr r0, [r3] adds r0, r4 str r2, [r0, 0x8] str r5, [r0] str r5, [r0, 0x4] adds r4, 0xC subs r1, 0x1 cmp r1, 0 bge _080A78B4 ldr r4, _080A78EC movs r2, 0 movs r3, 0x2C movs r1, 0x3F _080A78CE: ldr r0, [r4] adds r0, r3 str r2, [r0] str r2, [r0, 0x4] str r2, [r0, 0x8] adds r3, 0xC subs r1, 0x1 cmp r1, 0 bge _080A78CE pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080A78E8: .4byte gUnknown_3001B84 _080A78EC: .4byte gUnknown_3001B80 thumb_func_end sub_80A786C thumb_func_start sub_80A78F0 sub_80A78F0: push {r4,r5,lr} bl sub_80A786C ldr r4, _080A7914 ldr r0, [r4] bl MemoryFree movs r5, 0 str r5, [r4] ldr r4, _080A7918 ldr r0, [r4] bl MemoryFree str r5, [r4] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080A7914: .4byte gUnknown_3001B84 _080A7918: .4byte gUnknown_3001B80 thumb_func_end sub_80A78F0 thumb_func_start sub_80A791C sub_80A791C: push {r4-r7,lr} sub sp, 0x4 adds r4, r0, 0 lsls r4, 16 asrs r4, 16 lsls r1, 16 asrs r7, r1, 16 lsls r2, 24 asrs r6, r2, 24 ldr r1, _080A7980 adds r0, r4, 0 bl sub_80A77D0 adds r5, r0, 0 ldr r1, _080A7984 str r6, [sp] movs r0, 0 adds r2, r4, 0 adds r3, r7, 0 bl Log lsls r1, r7, 3 ldr r0, [r5, 0x4] adds r0, r1 lsls r1, r6, 2 adds r1, r6 lsls r1, 3 ldr r0, [r0, 0x4] adds r0, r1 ldr r5, [r0, 0x4] ldr r0, [r0] cmp r0, 0 ble _080A7976 adds r4, r0, 0 _080A7960: movs r0, 0x1 negs r0, r0 adds r1, r5, 0 adds r2, r7, 0 adds r3, r6, 0 bl sub_80A80A4 subs r4, 0x1 adds r5, 0x18 cmp r4, 0 bne _080A7960 _080A7976: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080A7980: .4byte gUnknown_811808C _080A7984: .4byte gUnknown_8118098 thumb_func_end sub_80A791C thumb_func_start sub_80A7988 sub_80A7988: push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 16 asrs r7, r0, 16 lsls r1, 24 asrs r5, r1, 24 ldr r1, _080A79F4 movs r0, 0 adds r2, r7, 0 adds r3, r5, 0 bl Log movs r1, 0 ldr r0, _080A79F8 ldr r4, [r0] movs r0, 0x1 negs r0, r0 mov r8, r0 movs r6, 0x80 lsls r6, 9 _080A79B2: movs r2, 0x2 ldrsh r0, [r4, r2] cmp r0, r8 beq _080A79D4 movs r2, 0x4 ldrsh r0, [r4, r2] cmp r0, r7 bne _080A79D4 cmp r5, 0 blt _080A79CE movs r0, 0x6 ldrsb r0, [r4, r0] cmp r0, r5 bne _080A79D4 _080A79CE: adds r0, r1, 0 bl sub_80A8684 _080A79D4: adds r0, r6, 0 movs r1, 0x80 lsls r1, 9 adds r6, r1 asrs r1, r0, 16 movs r2, 0xF8 lsls r2, 1 adds r4, r2 cmp r1, 0x17 ble _080A79B2 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080A79F4: .4byte gUnknown_81180BC _080A79F8: .4byte gUnknown_3001B84 thumb_func_end sub_80A7988 thumb_func_start sub_80A79FC sub_80A79FC: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 ldr r1, _080A7A70 movs r0, 0 bl Log movs r6, 0 ldr r0, _080A7A74 ldr r4, [r0] movs r0, 0x1 negs r0, r0 mov r8, r0 movs r1, 0xA2 lsls r1, 1 adds r5, r4, r1 mov r7, sp _080A7A20: movs r1, 0x2 ldrsh r0, [r4, r1] cmp r0, r8 beq _080A7A50 ldr r0, [r5] ldr r1, [r4, 0x14] adds r0, r1 str r0, [sp] ldr r0, [r5, 0x4] ldr r1, [r4, 0x18] adds r0, r1 str r0, [r7, 0x4] movs r1, 0xB8 lsls r1, 1 adds r0, r4, r1 mov r1, sp bl sub_80A675C lsls r0, 24 cmp r0, 0 bne _080A7A50 adds r0, r6, 0 bl sub_80A8684 _080A7A50: adds r0, r6, 0x1 lsls r0, 16 asrs r6, r0, 16 movs r0, 0xF8 lsls r0, 1 adds r5, r0 adds r4, r0 cmp r6, 0x17 ble _080A7A20 add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080A7A70: .4byte gUnknown_81180D8 _080A7A74: .4byte gUnknown_3001B84 thumb_func_end sub_80A79FC thumb_func_start sub_80A7A78 sub_80A7A78: push {r4-r7,lr} ldr r1, _080A7AC0 movs r0, 0 bl Log movs r6, 0 ldr r0, _080A7AC4 ldr r4, [r0] movs r7, 0x1 negs r7, r7 movs r0, 0x9F lsls r0, 1 adds r5, r4, r0 _080A7A92: movs r1, 0x2 ldrsh r0, [r4, r1] cmp r0, r7 beq _080A7ACC movs r1, 0x8E lsls r1, 1 adds r0, r4, r1 ldr r0, [r0] movs r1, 0x80 lsls r1, 4 ands r0, r1 cmp r0, 0 beq _080A7AC8 movs r0, 0xA2 lsls r0, 1 adds r1, r4, r0 adds r0, 0x8 adds r2, r4, r0 movs r0, 0x20 bl sub_80ADCA0 b _080A7ACA .align 2, 0 _080A7AC0: .4byte gUnknown_81180D8 _080A7AC4: .4byte gUnknown_3001B84 _080A7AC8: ldr r0, _080A7AE4 _080A7ACA: strh r0, [r5] _080A7ACC: adds r0, r6, 0x1 lsls r0, 16 asrs r6, r0, 16 movs r1, 0xF8 lsls r1, 1 adds r5, r1 adds r4, r1 cmp r6, 0x17 ble _080A7A92 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080A7AE4: .4byte 0x0000ffff thumb_func_end sub_80A7A78 thumb_func_start sub_80A7AE8 sub_80A7AE8: push {r4-r7,lr} sub sp, 0x4 mov r1, sp strh r0, [r1] mov r0, sp bl sub_80A7B94 mov r0, sp movs r1, 0 ldrsh r2, [r0, r1] movs r0, 0x1 negs r0, r0 cmp r2, r0 beq _080A7B34 movs r3, 0 ldr r0, _080A7B24 ldr r1, [r0] adds r4, r2, 0 movs r2, 0x80 lsls r2, 9 adds r6, r2, 0 movs r5, 0xF8 lsls r5, 1 _080A7B16: movs r7, 0x2 ldrsh r0, [r1, r7] cmp r0, r4 bne _080A7B28 adds r0, r3, 0 b _080A7B38 .align 2, 0 _080A7B24: .4byte gUnknown_3001B84 _080A7B28: adds r0, r2, 0 adds r2, r6 asrs r3, r0, 16 adds r1, r5 cmp r3, 0x17 ble _080A7B16 _080A7B34: movs r0, 0x1 negs r0, r0 _080A7B38: add sp, 0x4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80A7AE8 thumb_func_start sub_80A7B40 sub_80A7B40: push {r4-r7,lr} lsls r0, 16 asrs r4, r0, 16 movs r3, 0 ldr r0, _080A7B70 ldr r1, [r0] movs r6, 0x1 negs r6, r6 movs r2, 0x80 lsls r2, 9 movs r5, 0x9E lsls r5, 1 _080A7B58: movs r7, 0x2 ldrsh r0, [r1, r7] cmp r0, r6 beq _080A7B74 adds r0, r1, r5 movs r7, 0 ldrsh r0, [r0, r7] cmp r0, r4 bne _080A7B74 adds r0, r3, 0 b _080A7B8C .align 2, 0 _080A7B70: .4byte gUnknown_3001B84 _080A7B74: adds r0, r2, 0 movs r3, 0x80 lsls r3, 9 adds r2, r3 asrs r3, r0, 16 movs r7, 0xF8 lsls r7, 1 adds r1, r7 cmp r3, 0x17 ble _080A7B58 movs r0, 0x1 negs r0, r0 _080A7B8C: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80A7B40 thumb_func_start sub_80A7B94 sub_80A7B94: push {r4-r7,lr} sub sp, 0x10 adds r7, r0, 0 movs r0, 0 ldrsh r2, [r7, r0] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 ldr r1, _080A7BD4 adds r0, r1 movs r6, 0x1 negs r6, r6 movs r1, 0 ldrsh r5, [r0, r1] cmp r5, 0x1 bne _080A7C14 adds r0, r2, 0 cmp r0, 0 bne _080A7C10 movs r0, 0 movs r1, 0x1C bl sub_8001658 adds r4, r0, 0 cmp r4, 0x1 beq _080A7BDE cmp r4, 0x1 bgt _080A7BD8 cmp r4, 0 beq _080A7BF2 b _080A7C08 .align 2, 0 _080A7BD4: .4byte gUnknown_811E63C _080A7BD8: cmp r4, 0x2 beq _080A7BE4 b _080A7C08 _080A7BDE: movs r0, 0x2 strh r0, [r7] b _080A7C10 _080A7BE4: bl sub_808D33C adds r6, r0, 0 bl sub_808D3BC cmp r0, r6 bne _080A7BF6 _080A7BF2: strh r5, [r7] b _080A7C10 _080A7BF6: bl sub_808D3F8 cmp r0, r6 bne _080A7C02 strh r4, [r7] b _080A7C10 _080A7C02: movs r0, 0x3 strh r0, [r7] b _080A7C10 _080A7C08: movs r1, 0x1 negs r1, r1 adds r0, r1, 0 b _080A7DAC _080A7C10: movs r6, 0 b _080A7DD2 _080A7C14: cmp r5, 0x2 bne _080A7CD2 movs r0, 0 movs r1, 0x1D bl sub_8001658 adds r4, r0, 0 movs r0, 0 movs r1, 0x1E bl sub_8001658 adds r2, r0, 0 ldrh r1, [r7] subs r0, r1, 0x4 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bhi _080A7C82 cmp r1, 0x4 bne _080A7C44 adds r0, r4, 0 cmp r0, 0 bne _080A7C4C b _080A7C4A _080A7C44: movs r0, 0 cmp r4, 0 beq _080A7C4C _080A7C4A: adds r0, r2, 0 _080A7C4C: cmp r0, 0x2 beq _080A7C7A cmp r0, 0x2 bhi _080A7C5A cmp r0, 0x1 beq _080A7C6E b _080A7DA6 _080A7C5A: cmp r0, 0x3 beq _080A7C60 b _080A7DA6 _080A7C60: bl sub_808D33C adds r4, r0, 0 bl sub_808D3BC cmp r0, r4 bne _080A7C72 _080A7C6E: movs r0, 0x6 b _080A7C80 _080A7C72: bl sub_808D3F8 cmp r0, r4 bne _080A7C7E _080A7C7A: movs r0, 0x7 b _080A7C80 _080A7C7E: movs r0, 0x8 _080A7C80: strh r0, [r7] _080A7C82: movs r0, 0 ldrsh r5, [r7, r0] cmp r5, 0x7 beq _080A7CB0 cmp r5, 0x7 bgt _080A7C94 cmp r5, 0x6 beq _080A7C9A b _080A7CCA _080A7C94: cmp r5, 0x8 beq _080A7CC6 b _080A7CCA _080A7C9A: movs r6, 0x2 bl sub_808D33C adds r4, r0, 0 bl sub_808D3BC cmp r4, r0 beq _080A7CAC b _080A7DD2 _080A7CAC: strh r5, [r7] b _080A7DD2 _080A7CB0: movs r6, 0x1 bl sub_808D33C adds r4, r0, 0 bl sub_808D3F8 cmp r4, r0 beq _080A7CC2 b _080A7DD2 _080A7CC2: movs r0, 0x6 b _080A7DD0 _080A7CC6: movs r6, 0x2 b _080A7DD2 _080A7CCA: movs r1, 0x1 negs r1, r1 adds r0, r1, 0 b _080A7DAC _080A7CD2: cmp r5, 0x3 bne _080A7DB0 ldrh r1, [r7] adds r0, r1, 0 subs r0, 0xA lsls r0, 16 lsrs r0, 16 cmp r0, 0x3 bhi _080A7D12 adds r4, r2, 0 subs r4, 0xA bl sub_8098F88 lsls r0, 24 cmp r0, 0 bne _080A7DD2 movs r0, 0x9 bl sub_80023E4 lsls r0, 24 cmp r0, 0 beq _080A7D06 mov r0, sp bl sub_808D6A4 b _080A7D0C _080A7D06: mov r0, sp bl sub_808D654 _080A7D0C: cmp r4, r0 bge _080A7DA6 b _080A7D7E _080A7D12: adds r0, r1, 0 subs r0, 0xE lsls r0, 16 lsrs r0, 16 cmp r0, 0xF bhi _080A7DA6 movs r0, 0 movs r1, 0x10 bl sub_8001658 lsls r0, 16 asrs r0, 16 bl sub_8002658 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 beq _080A7DA6 movs r2, 0 ldrsh r0, [r7, r2] adds r4, r0, 0 subs r4, 0xE adds r0, r1, 0 mov r1, sp movs r2, 0 movs r3, 0 bl sub_8092638 mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] cmp r4, r0 bge _080A7DA6 ldr r2, _080A7D84 ldr r0, [sp, 0x8] adds r0, r4 movs r1, 0x58 muls r1, r0 ldr r0, [r2] adds r4, r0, r1 movs r0, 0x9 bl sub_80023E4 lsls r0, 24 cmp r0, 0 beq _080A7D88 ldrb r1, [r4] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080A7DA6 ldrb r0, [r4, 0x2] cmp r0, 0 bne _080A7DA6 _080A7D7E: movs r0, 0x1 negs r0, r0 b _080A7DD4 .align 2, 0 _080A7D84: .4byte gUnknown_203B45C _080A7D88: ldrb r1, [r4] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080A7DA6 ldrb r0, [r4, 0x2] cmp r0, 0 bne _080A7DA6 movs r1, 0 ldrb r0, [r4, 0x4] cmp r0, 0x41 bne _080A7DA2 movs r1, 0x1 _080A7DA2: cmp r1, 0 beq _080A7D7E _080A7DA6: movs r2, 0x1 negs r2, r2 adds r0, r2, 0 _080A7DAC: strh r0, [r7] b _080A7D7E _080A7DB0: cmp r2, 0x23 bne _080A7DD2 bl sub_808D33C adds r4, r0, 0 bl sub_808D3BC cmp r0, r4 bne _080A7DC6 movs r0, 0x21 b _080A7DD0 _080A7DC6: bl sub_808D3F8 cmp r0, r4 bne _080A7DD2 movs r0, 0x22 _080A7DD0: strh r0, [r7] _080A7DD2: adds r0, r6, 0 _080A7DD4: add sp, 0x10 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80A7B94 thumb_func_start sub_80A7DDC sub_80A7DDC: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x24 adds r7, r0, 0 adds r5, r1, 0 bl sub_80A7B94 lsls r0, 16 asrs r0, 16 mov r8, r0 movs r0, 0 strh r0, [r5] ldrh r3, [r7] movs r1, 0 ldrsh r0, [r7, r1] movs r6, 0x1 negs r6, r6 cmp r0, r6 bne _080A7E0A _080A7E04: movs r0, 0x1 negs r0, r0 b _080A8098 _080A7E0A: movs r0, 0 ldrsh r2, [r7, r0] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 ldr r1, _080A7E50 adds r4, r0, r1 movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0x3 beq _080A7E22 b _080A7F38 _080A7E22: adds r0, r3, 0 subs r0, 0xA lsls r0, 16 lsrs r0, 16 cmp r0, 0x3 bhi _080A7E90 adds r4, r2, 0 subs r4, 0xA bl sub_8098F88 lsls r0, 24 cmp r0, 0 beq _080A7E58 ldr r0, _080A7E54 lsls r1, r4, 1 adds r1, r0 ldrh r0, [r1] strh r0, [r5] cmp r0, 0 bne _080A7E04 strh r6, [r7] b _080A7E04 .align 2, 0 _080A7E50: .4byte gUnknown_811E63C _080A7E54: .4byte gUnknown_81180F0 _080A7E58: movs r0, 0x9 bl sub_80023E4 lsls r0, 24 cmp r0, 0 beq _080A7E6C mov r0, sp bl sub_808D6A4 b _080A7E72 _080A7E6C: mov r0, sp bl sub_808D654 _080A7E72: cmp r4, r0 blt _080A7E78 b _080A8080 _080A7E78: ldr r2, _080A7E8C lsls r0, r4, 2 add r0, sp ldr r1, [r0] movs r0, 0x58 muls r1, r0 ldr r0, [r2] adds r0, r1 ldrh r0, [r0, 0x8] b _080A800A .align 2, 0 _080A7E8C: .4byte gUnknown_203B45C _080A7E90: adds r0, r3, 0 subs r0, 0xE lsls r0, 16 lsrs r0, 16 cmp r0, 0xF bls _080A7E9E b _080A8080 _080A7E9E: movs r0, 0 movs r1, 0x10 bl sub_8001658 lsls r0, 16 asrs r0, 16 bl sub_8002658 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _080A7EB8 b _080A8080 _080A7EB8: movs r2, 0 ldrsh r0, [r7, r2] adds r4, r0, 0 subs r4, 0xE adds r0, r1, 0 mov r1, sp movs r2, 0 movs r3, 0 bl sub_8092638 mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] cmp r4, r0 blt _080A7ED8 b _080A8080 _080A7ED8: ldr r2, _080A7F0C ldr r0, [sp, 0x8] adds r0, r4 movs r1, 0x58 muls r1, r0 ldr r0, [r2] adds r4, r0, r1 movs r0, 0x9 bl sub_80023E4 lsls r0, 24 cmp r0, 0 beq _080A7F10 ldrb r1, [r4] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080A7EFE b _080A8080 _080A7EFE: ldrb r0, [r4, 0x2] cmp r0, 0 beq _080A7F06 b _080A8080 _080A7F06: ldrh r0, [r4, 0x8] b _080A800A .align 2, 0 _080A7F0C: .4byte gUnknown_203B45C _080A7F10: ldrb r1, [r4] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080A7F1C b _080A8080 _080A7F1C: ldrb r0, [r4, 0x2] cmp r0, 0 beq _080A7F24 b _080A8080 _080A7F24: movs r1, 0 ldrb r0, [r4, 0x4] cmp r0, 0x41 bne _080A7F2E movs r1, 0x1 _080A7F2E: cmp r1, 0 beq _080A7F34 b _080A8080 _080A7F34: ldrh r0, [r4, 0x8] b _080A800A _080A7F38: subs r0, r3, 0x1 lsls r0, 16 asrs r0, 16 cmp r0, 0x23 bls _080A7F44 b _080A808A _080A7F44: lsls r0, 2 ldr r1, _080A7F50 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080A7F50: .4byte _080A7F54 .align 2, 0 _080A7F54: .4byte _080A7FE4 .4byte _080A7FEC .4byte _080A7FF4 .4byte _080A808A .4byte _080A808A .4byte _080A7FE4 .4byte _080A7FEC .4byte _080A7FF4 .4byte _080A808A .4byte _080A808A .4byte _080A808A .4byte _080A808A .4byte _080A808A .4byte _080A808A .4byte _080A808A .4byte _080A808A .4byte _080A808A .4byte _080A808A .4byte _080A808A .4byte _080A808A .4byte _080A808A .4byte _080A808A .4byte _080A808A .4byte _080A808A .4byte _080A808A .4byte _080A808A .4byte _080A808A .4byte _080A808A .4byte _080A808A .4byte _080A8032 .4byte _080A8032 .4byte _080A8014 .4byte _080A7FE4 .4byte _080A7FEC .4byte _080A7FF4 .4byte _080A7FFC _080A7FE4: bl sub_808D3BC ldrh r0, [r0, 0x8] b _080A8094 _080A7FEC: bl sub_808D3F8 ldrh r0, [r0, 0x8] b _080A8094 _080A7FF4: bl sub_808D33C ldrh r0, [r0, 0x8] b _080A8094 _080A7FFC: movs r0, 0xF bl RandomCapped ldr r1, _080A8010 lsls r0, 1 adds r0, r1 ldrh r0, [r0] _080A800A: strh r0, [r5] b _080A7E04 .align 2, 0 _080A8010: .4byte gUnknown_81180FC _080A8014: movs r0, 0 movs r1, 0x1F bl sub_8001658 lsls r0, 16 asrs r0, 16 cmp r0, 0 beq _080A8028 strh r0, [r5] b _080A7E04 _080A8028: movs r1, 0x1 negs r1, r1 adds r0, r1, 0 strh r0, [r7] b _080A7E04 _080A8032: movs r0, 0x89 strh r0, [r5] add r6, sp, 0x10 adds r0, r6, 0 bl sub_8099328 lsls r0, 24 cmp r0, 0 bne _080A8046 b _080A7E04 _080A8046: 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, [r6] adds r0, r4, 0 bl sub_8096AF8 ldrb r0, [r4] cmp r0, 0 beq _080A8076 movs r2, 0 ldrsh r0, [r7, r2] cmp r0, 0x1E bne _080A8072 ldrh r0, [r4, 0x2] b _080A8074 _080A8072: ldrh r0, [r4, 0x4] _080A8074: strh r0, [r5] _080A8076: movs r1, 0 ldrsh r0, [r5, r1] cmp r0, 0 beq _080A8080 b _080A7E04 _080A8080: movs r2, 0x1 negs r2, r2 adds r0, r2, 0 strh r0, [r7] b _080A7E04 _080A808A: movs r1, 0 ldrsh r0, [r5, r1] cmp r0, 0 bne _080A8096 ldrh r0, [r4, 0x2] _080A8094: strh r0, [r5] _080A8096: mov r0, r8 _080A8098: add sp, 0x24 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80A7DDC thumb_func_start sub_80A80A4 sub_80A80A4: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x24 str r1, [sp, 0x10] lsls r0, 16 asrs r6, r0, 16 lsls r2, 16 asrs r2, 16 str r2, [sp, 0x14] lsls r3, 24 asrs r3, 24 str r3, [sp, 0x18] ldrb r1, [r1] add r0, sp, 0xC strh r1, [r0] movs r0, 0 mov r8, r0 mov r4, sp adds r4, 0xE add r0, sp, 0xC adds r1, r4, 0 bl sub_80A7DDC lsls r0, 16 asrs r7, r0, 16 add r0, sp, 0xC movs r2, 0 ldrsh r1, [r0, r2] movs r0, 0x1 negs r0, r0 mov r9, r4 cmp r1, r0 beq _080A81AE cmp r7, 0x1 beq _080A8104 cmp r7, 0x1 bgt _080A80FA cmp r7, 0 beq _080A8100 b _080A8118 _080A80FA: cmp r7, 0x2 beq _080A8108 b _080A8118 _080A8100: movs r6, 0 b _080A8118 _080A8104: movs r6, 0x1 b _080A8118 _080A8108: movs r0, 0 movs r1, 0x1D bl sub_8001658 cmp r0, 0 bne _080A8116 movs r7, 0x1 _080A8116: movs r6, 0x2 _080A8118: add r0, sp, 0xC movs r3, 0 ldrsh r2, [r0, r3] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 ldr r1, _080A813C adds r0, r1 str r0, [sp, 0x1C] cmp r6, 0 bge _080A81B4 cmp r2, 0x21 beq _080A8140 cmp r2, 0x23 beq _080A8154 adds r0, r2, 0 b _080A8162 .align 2, 0 _080A813C: .4byte gUnknown_811E63C _080A8140: ldr r0, _080A8150 ldr r0, [r0] movs r4, 0x2 ldrsh r0, [r0, r4] cmp r0, 0x1 beq _080A81AE movs r0, 0x21 b _080A8162 .align 2, 0 _080A8150: .4byte gUnknown_3001B84 _080A8154: ldr r0, _080A8188 ldr r0, [r0] movs r1, 0x2 ldrsh r0, [r0, r1] cmp r0, 0x3 beq _080A81AE movs r0, 0x23 _080A8162: bl sub_80A7AE8 adds r6, r0, 0 cmp r6, 0 bge _080A81B4 movs r2, 0x3 ldr r0, _080A8188 ldr r0, [r0] movs r3, 0xBA lsls r3, 3 adds r5, r0, r3 movs r4, 0x2 ldrsh r1, [r5, r4] movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _080A818C movs r6, 0x3 b _080A81B4 .align 2, 0 _080A8188: .4byte gUnknown_3001B84 _080A818C: adds r0, r2, 0x1 lsls r0, 16 asrs r2, r0, 16 movs r0, 0xF8 lsls r0, 1 adds r5, r0 cmp r2, 0x17 bgt _080A81AA movs r3, 0x2 ldrsh r1, [r5, r3] movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _080A818C adds r6, r2, 0 _080A81AA: cmp r6, 0 bge _080A81B4 _080A81AE: movs r0, 0x1 negs r0, r0 b _080A8674 _080A81B4: ldr r1, _080A8234 lsls r0, r6, 5 subs r0, r6 lsls r0, 4 ldr r1, [r1] adds r5, r1, r0 ldr r1, _080A8238 add r0, sp, 0xC movs r4, 0 ldrsh r3, [r0, r4] ldr r2, [sp, 0x1C] movs r4, 0 ldrsh r0, [r2, r4] str r0, [sp] ldr r0, [sp, 0x14] str r0, [sp, 0x4] ldr r2, [sp, 0x18] str r2, [sp, 0x8] movs r0, 0 adds r2, r6, 0 bl Log movs r2, 0 movs r3, 0x2 ldrsh r1, [r5, r3] movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _080A81F0 movs r2, 0x1 _080A81F0: str r2, [sp, 0x20] strh r6, [r5] add r0, sp, 0xC ldrh r0, [r0] strh r0, [r5, 0x2] mov r4, sp ldrh r4, [r4, 0x14] strh r4, [r5, 0x4] mov r0, sp ldrb r0, [r0, 0x18] strb r0, [r5, 0x6] mov r1, r9 ldrh r0, [r1] strh r0, [r5, 0x8] movs r2, 0x90 lsls r2, 1 adds r4, r5, r2 adds r0, r4, 0 bl sub_809CD68 movs r0, 0x9 str r0, [r4] ldr r3, [sp, 0x1C] ldrh r0, [r3] subs r0, 0x1 lsls r0, 16 asrs r0, 16 cmp r0, 0x9 bhi _080A82D8 lsls r0, 2 ldr r1, _080A823C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080A8234: .4byte gUnknown_3001B84 _080A8238: .4byte gUnknown_811811C _080A823C: .4byte _080A8240 .align 2, 0 _080A8240: .4byte _080A8268 .4byte _080A8280 .4byte _080A8290 .4byte _080A82D8 .4byte _080A82D8 .4byte _080A8298 .4byte _080A82A8 .4byte _080A82B4 .4byte _080A82BE .4byte _080A82CA _080A8268: movs r4, 0x8E lsls r4, 1 adds r1, r5, r4 ldr r0, _080A827C str r0, [r1] movs r0, 0x90 lsls r0, 1 adds r1, r5, r0 movs r0, 0x1 b _080A82E0 .align 2, 0 _080A827C: .4byte 0x2300181d _080A8280: movs r2, 0x8E lsls r2, 1 adds r1, r5, r2 ldr r0, _080A828C b _080A82E0 .align 2, 0 _080A828C: .4byte 0x23001000 _080A8290: movs r3, 0x8E lsls r3, 1 adds r1, r5, r3 b _080A82DE _080A8298: movs r4, 0x8E lsls r4, 1 adds r1, r5, r4 ldr r0, _080A82A4 b _080A82E0 .align 2, 0 _080A82A4: .4byte 0x2000000d _080A82A8: movs r0, 0x8E lsls r0, 1 adds r1, r5, r0 movs r0, 0x80 lsls r0, 10 b _080A82E0 _080A82B4: movs r2, 0x8E lsls r2, 1 adds r1, r5, r2 movs r0, 0 b _080A82E0 _080A82BE: movs r3, 0x8E lsls r3, 1 adds r1, r5, r3 movs r0, 0xC0 lsls r0, 12 b _080A82E0 _080A82CA: movs r4, 0x8E lsls r4, 1 adds r1, r5, r4 ldr r0, _080A82D4 b _080A82E0 .align 2, 0 _080A82D4: .4byte 0x20010000 _080A82D8: movs r0, 0x8E lsls r0, 1 adds r1, r5, r0 _080A82DE: ldr r0, _080A83DC _080A82E0: str r0, [r1] ldr r2, [sp, 0x1C] ldrb r1, [r2, 0x8] lsls r1, 11 str r1, [r5, 0xC] ldrb r0, [r2, 0x9] lsls r0, 11 str r0, [r5, 0x10] lsrs r1, 1 str r1, [r5, 0x14] lsrs r0, 1 str r0, [r5, 0x18] ldr r3, [sp, 0x10] ldrb r0, [r3, 0x1] strb r0, [r5, 0x1C] adds r2, r3, 0 adds r2, 0x4 adds r4, r5, 0 adds r4, 0x20 ldrb r1, [r2, 0x2] movs r0, 0x4 ands r0, r1 cmp r0, 0 bne _080A8328 ldrb r0, [r3, 0x4] lsls r3, r0, 11 str r3, [r5, 0x20] ldrb r1, [r2, 0x2] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080A8328 movs r1, 0x80 lsls r1, 3 adds r0, r3, r1 str r0, [r5, 0x20] _080A8328: ldrb r1, [r2, 0x3] movs r0, 0x4 ands r0, r1 cmp r0, 0 bne _080A834A ldrb r0, [r2, 0x1] lsls r3, r0, 11 str r3, [r4, 0x4] ldrb r1, [r2, 0x3] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080A834A movs r2, 0x80 lsls r2, 3 adds r0, r3, r2 str r0, [r4, 0x4] _080A834A: ldr r3, [sp, 0x20] cmp r3, 0 beq _080A83EC ldrb r0, [r5, 0x1C] movs r4, 0xA1 lsls r4, 1 adds r1, r5, r4 movs r3, 0 strb r0, [r1] movs r0, 0xA2 lsls r0, 1 adds r2, r5, r0 ldr r0, [r5, 0x20] ldr r1, [r5, 0x14] subs r0, r1 str r0, [r2] movs r1, 0xA6 lsls r1, 1 adds r2, r5, r1 ldr r0, [r5, 0x20] ldr r1, [r5, 0x14] adds r0, r1 str r0, [r2] adds r4, 0x6 adds r2, r5, r4 ldr r0, [r5, 0x24] ldr r1, [r5, 0x18] subs r0, r1 str r0, [r2] movs r0, 0xA8 lsls r0, 1 adds r2, r5, r0 ldr r0, [r5, 0x24] ldr r1, [r5, 0x18] adds r0, r1 str r0, [r2] movs r2, 0xAA lsls r2, 1 adds r1, r5, r2 adds r4, 0x10 adds r0, r5, r4 str r3, [r0] str r3, [r1] movs r1, 0x9E lsls r1, 1 adds r0, r5, r1 strh r7, [r0] ldr r1, _080A83E0 lsls r0, r7, 1 adds r0, r7 lsls r0, 2 ldr r1, [r1] adds r1, r0 movs r0, 0x1 negs r0, r0 str r0, [r1, 0x8] str r3, [r1] str r3, [r1, 0x4] ldrh r0, [r5, 0x2] subs r0, 0xE lsls r0, 16 lsrs r0, 16 cmp r0, 0xF bhi _080A83E4 movs r0, 0x12 bl OtherRandomCapped movs r2, 0xA0 lsls r2, 1 adds r1, r5, r2 strh r0, [r1] b _080A83EC .align 2, 0 _080A83DC: .4byte 0x2300068d _080A83E0: .4byte gUnknown_3001B80 _080A83E4: movs r4, 0xA0 lsls r4, 1 adds r0, r5, r4 strh r3, [r0] _080A83EC: movs r1, 0x8E lsls r1, 1 adds r0, r5, r1 ldr r0, [r0] movs r1, 0x80 lsls r1, 4 ands r0, r1 cmp r0, 0 beq _080A8418 movs r2, 0xA2 lsls r2, 1 adds r1, r5, r2 movs r3, 0xA6 lsls r3, 1 adds r2, r5, r3 movs r0, 0x20 bl sub_80ADCA0 movs r4, 0x9F lsls r4, 1 adds r1, r5, r4 b _080A8420 _080A8418: movs r0, 0x9F lsls r0, 1 adds r1, r5, r0 ldr r0, _080A849C _080A8420: strh r0, [r1] adds r0, r5, 0 adds r0, 0x28 adds r1, r5, 0 adds r1, 0x30 bl sub_80A5778 ldr r1, [sp, 0x20] cmp r1, 0 beq _080A84AC ldr r2, _080A84A0 adds r1, r5, r2 movs r0, 0xFF strb r0, [r1] movs r3, 0xAF lsls r3, 1 adds r1, r5, r3 movs r3, 0 movs r0, 0xC0 lsls r0, 2 strh r0, [r1] movs r4, 0xB0 lsls r4, 1 adds r1, r5, r4 movs r2, 0x1 movs r0, 0x1 strh r0, [r1] movs r1, 0xB2 lsls r1, 1 adds r0, r5, r1 str r3, [r0] adds r4, 0x8 adds r1, r5, r4 ldr r0, _080A84A4 strh r0, [r1] movs r1, 0xAE lsls r1, 1 adds r0, r5, r1 strb r2, [r0] movs r2, 0xB5 lsls r2, 1 adds r0, r5, r2 strh r3, [r0] movs r3, 0xB8 lsls r3, 1 adds r0, r5, r3 movs r4, 0x2 ldrsh r1, [r5, r4] movs r3, 0x8 ldrsh r2, [r5, r3] movs r4, 0x8E lsls r4, 1 adds r3, r5, r4 ldr r3, [r3] bl sub_80A7428 adds r4, r5, 0 adds r4, 0x38 ldr r1, _080A84A8 ldr r0, [sp, 0x18] str r0, [sp] b _080A855C .align 2, 0 _080A849C: .4byte 0x0000ffff _080A84A0: .4byte 0x0000015d _080A84A4: .4byte 0x00000807 _080A84A8: .4byte gUnknown_8117F10 _080A84AC: adds r4, r5, 0 adds r4, 0x38 ldr r0, _080A84F0 ldr r1, [r0] movs r2, 0xCB lsls r2, 2 adds r1, r2 adds r0, r4, 0 bl sub_809D684 lsls r0, 24 cmp r0, 0 beq _080A8550 adds r0, r5, 0 adds r0, 0xBE movs r3, 0 ldrsh r0, [r0, r3] cmp r0, 0 beq _080A84F4 adds r0, r5, 0 adds r0, 0xE0 ldrh r0, [r0] mov r10, r0 adds r0, r5, 0 adds r0, 0xE2 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 mov r9, r0 adds r7, r5, 0 adds r7, 0x80 movs r0, 0x82 adds r0, r5 b _080A8508 .align 2, 0 _080A84F0: .4byte gUnknown_3001B80 _080A84F4: adds r1, r5, 0 adds r1, 0x80 ldrh r2, [r1] mov r10, r2 adds r0, r5, 0 adds r0, 0x82 movs r3, 0 ldrsb r3, [r0, r3] mov r9, r3 adds r7, r1, 0 _080A8508: mov r8, r0 adds r0, r4, 0 bl sub_809D648 ldr r1, _080A8544 ldr r0, [sp, 0x18] str r0, [sp] adds r0, r4, 0 adds r2, r5, 0 ldr r3, [sp, 0x14] bl sub_809D600 ldr r0, _080A8548 ldr r2, [r0] movs r1, 0xCB lsls r1, 2 adds r2, r1 ldr r3, _080A854C adds r0, r4, 0 movs r1, 0 bl sub_809D790 mov r2, r10 strh r2, [r7] mov r0, r9 mov r3, r8 strb r0, [r3] movs r1, 0x1 mov r8, r1 b _080A8566 .align 2, 0 _080A8544: .4byte gUnknown_8117F10 _080A8548: .4byte gUnknown_3001B80 _080A854C: .4byte gUnknown_8118170 _080A8550: adds r0, r4, 0 bl sub_809D648 ldr r1, _080A861C ldr r2, [sp, 0x18] str r2, [sp] _080A855C: adds r0, r4, 0 adds r2, r5, 0 ldr r3, [sp, 0x14] bl sub_809D600 _080A8566: ldr r3, [sp, 0x10] ldr r2, [r3, 0xC] cmp r2, 0 bne _080A8574 ldr r0, _080A8620 adds r0, 0xEC ldr r2, [r0] _080A8574: adds r0, r4, 0 movs r1, 0x1 bl sub_809D6D8 ldr r0, [sp, 0x10] ldr r2, [r0, 0x10] cmp r2, 0 bne _080A8588 ldr r0, _080A8620 ldr r2, [r0, 0x38] _080A8588: adds r0, r4, 0 movs r1, 0x2 bl sub_809D6D8 ldr r1, [sp, 0x10] ldr r2, [r1, 0x14] cmp r2, 0 bne _080A859C ldr r0, _080A8620 ldr r2, [r0, 0x50] _080A859C: adds r0, r4, 0 movs r1, 0x3 bl sub_809D6D8 ldr r3, [sp, 0x10] ldr r2, [r3, 0x8] cmp r2, 0 beq _080A8630 adds r0, r4, 0 movs r1, 0 bl sub_809D6D8 ldr r0, [sp, 0x20] cmp r0, 0 bne _080A860C mov r1, r8 cmp r1, 0 bne _080A860C movs r2, 0x8E lsls r2, 1 adds r0, r5, r2 ldr r0, [r0] movs r1, 0xC0 lsls r1, 5 ands r0, r1 cmp r0, 0 bne _080A860C ldr r0, _080A8624 ldr r2, [r0] movs r3, 0xCB lsls r3, 2 adds r2, r3 ldr r3, _080A8628 adds r0, r4, 0 movs r1, 0 bl sub_809D790 movs r1, 0xB0 lsls r1, 1 adds r0, r5, r1 movs r2, 0xAF lsls r2, 1 adds r1, r5, r2 ldrh r0, [r0] ldrh r1, [r1] orrs r0, r1 adds r1, r5, 0 adds r1, 0x80 strh r0, [r1] movs r3, 0xA1 lsls r3, 1 adds r0, r5, r3 ldrb r1, [r0] adds r0, r5, 0 adds r0, 0x82 strb r1, [r0] _080A860C: ldr r3, _080A862C adds r0, r4, 0 movs r1, 0 movs r2, 0 bl sub_809D8C0 b _080A865A .align 2, 0 _080A861C: .4byte gUnknown_8117F10 _080A8620: .4byte gUnknown_812F1F8 _080A8624: .4byte gUnknown_3001B80 _080A8628: .4byte gUnknown_811817C _080A862C: .4byte gUnknown_8118188 _080A8630: mov r4, r8 cmp r4, 0 beq _080A865A movs r0, 0xAE lsls r0, 1 adds r1, r5, r0 movs r0, 0x1 strb r0, [r1] adds r0, r5, 0 adds r0, 0x82 ldrb r0, [r0] movs r2, 0xA1 lsls r2, 1 adds r1, r5, r2 strb r0, [r1] adds r0, r5, 0 adds r0, 0x80 ldrh r1, [r0] adds r0, r5, 0 bl sub_80A9750 _080A865A: ldr r3, [sp, 0x1C] movs r4, 0 ldrsh r0, [r3, r4] cmp r0, 0x1 bne _080A8672 ldr r0, [sp, 0x20] cmp r0, 0 beq _080A8672 movs r0, 0x1 adds r1, r6, 0 bl sub_809D170 _080A8672: adds r0, r6, 0 _080A8674: add sp, 0x24 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80A80A4 thumb_func_start sub_80A8684 sub_80A8684: push {r4,lr} adds r2, r0, 0 lsls r2, 16 asrs r2, 16 ldr r1, _080A86BC lsls r0, r2, 5 subs r0, r2 lsls r0, 4 ldr r1, [r1] adds r4, r1, r0 ldr r1, _080A86C0 movs r0, 0 bl Log movs r1, 0xB8 lsls r1, 1 adds r0, r4, r1 bl sub_80A74E4 adds r0, r4, 0 adds r0, 0x38 bl sub_809D648 ldr r0, _080A86C4 strh r0, [r4, 0x2] pop {r4} pop {r0} bx r0 .align 2, 0 _080A86BC: .4byte gUnknown_3001B84 _080A86C0: .4byte gUnknown_8118194 _080A86C4: .4byte 0x0000ffff thumb_func_end sub_80A8684 thumb_func_start sub_80A86C8 sub_80A86C8: push {r4,r5,lr} adds r5, r1, 0 lsls r0, 16 asrs r0, 16 ldr r2, _080A8708 lsls r1, r0, 5 subs r1, r0 lsls r1, 4 ldr r0, [r2] adds r4, r0, r1 movs r1, 0x2 ldrsh r0, [r4, r1] movs r3, 0x1 negs r3, r3 cmp r0, r3 beq _080A8744 movs r2, 0x9E lsls r2, 1 adds r1, r4, r2 movs r2, 0 ldrsh r0, [r1, r2] cmp r0, 0 bne _080A870C movs r0, 0xC0 lsls r0, 6 ands r0, r5 cmp r0, 0 beq _080A872E bl sub_80AB5A4 b _080A872E .align 2, 0 _080A8708: .4byte gUnknown_3001B84 _080A870C: movs r0, 0x80 lsls r0, 5 ands r0, r5 cmp r0, 0 beq _080A872E ldr r2, _080A874C movs r0, 0 ldrsh r1, [r1, r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, [r2] adds r1, r0 str r3, [r1, 0x8] movs r0, 0 str r0, [r1] str r0, [r1, 0x4] _080A872E: movs r1, 0x8E lsls r1, 1 adds r0, r4, r1 ldr r1, [r0] orrs r1, r5 str r1, [r0] movs r2, 0xB8 lsls r2, 1 adds r0, r4, r2 bl sub_80A6688 _080A8744: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080A874C: .4byte gUnknown_3001B80 thumb_func_end sub_80A86C8 thumb_func_start sub_80A8750 sub_80A8750: push {r4,r5,lr} adds r5, r1, 0 lsls r0, 16 asrs r0, 16 ldr r2, _080A87A8 lsls r1, r0, 5 subs r1, r0 lsls r1, 4 ldr r0, [r2] adds r4, r0, r1 movs r0, 0x2 ldrsh r1, [r4, r0] movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _080A87A2 movs r1, 0x9E lsls r1, 1 adds r0, r4, r1 movs r2, 0 ldrsh r0, [r0, r2] cmp r0, 0 bne _080A878C movs r0, 0xC0 lsls r0, 6 ands r0, r5 cmp r0, 0 beq _080A878C bl sub_80AB5A4 _080A878C: movs r1, 0x8E lsls r1, 1 adds r0, r4, r1 ldr r1, [r0] bics r1, r5 str r1, [r0] movs r2, 0xB8 lsls r2, 1 adds r0, r4, r2 bl sub_80A6688 _080A87A2: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080A87A8: .4byte gUnknown_3001B84 thumb_func_end sub_80A8750 thumb_func_start sub_80A87AC sub_80A87AC: push {lr} adds r3, r1, 0 lsls r0, 16 asrs r0, 16 ldr r2, _080A87DC lsls r1, r0, 5 subs r1, r0 lsls r1, 4 ldr r0, [r2] adds r2, r0, r1 movs r0, 0x2 ldrsh r1, [r2, r0] movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _080A87D8 movs r1, 0x90 lsls r1, 1 adds r0, r2, r1 adds r1, r3, 0 bl sub_809CD8C _080A87D8: pop {r0} bx r0 .align 2, 0 _080A87DC: .4byte gUnknown_3001B84 thumb_func_end sub_80A87AC thumb_func_start sub_80A87E0 sub_80A87E0: push {r4,lr} adds r3, r1, 0 lsls r0, 16 asrs r0, 16 ldr r2, _080A8820 lsls r1, r0, 5 subs r1, r0 lsls r1, 4 ldr r0, [r2] adds r4, r0, r1 movs r0, 0x2 ldrsh r1, [r4, r0] movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _080A8824 movs r0, 0x7 movs r1, 0 adds r2, r3, 0 bl sub_809B1C0 lsls r0, 24 cmp r0, 0 beq _080A8824 movs r1, 0x90 lsls r1, 1 adds r0, r4, r1 movs r1, 0x5 bl sub_809CD8C movs r0, 0x1 b _080A8826 .align 2, 0 _080A8820: .4byte gUnknown_3001B84 _080A8824: movs r0, 0 _080A8826: pop {r4} pop {r1} bx r1 thumb_func_end sub_80A87E0 thumb_func_start sub_80A882C sub_80A882C: push {lr} lsls r0, 16 asrs r0, 16 ldr r2, _080A8850 lsls r1, r0, 5 subs r1, r0 lsls r1, 4 ldr r0, [r2] adds r2, r0, r1 movs r0, 0x2 ldrsh r1, [r2, r0] movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _080A8854 movs r0, 0 b _080A8858 .align 2, 0 _080A8850: .4byte gUnknown_3001B84 _080A8854: adds r0, r2, 0 adds r0, 0x38 _080A8858: pop {r1} bx r1 thumb_func_end sub_80A882C thumb_func_start sub_80A885C sub_80A885C: push {r4,lr} adds r4, r1, 0 lsls r0, 16 asrs r0, 16 lsls r2, 16 asrs r3, r2, 16 ldr r2, _080A8884 lsls r1, r0, 5 subs r1, r0 lsls r1, 4 ldr r0, [r2] adds r2, r0, r1 movs r0, 0x2 ldrsh r1, [r2, r0] movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _080A8888 movs r0, 0 b _080A8898 .align 2, 0 _080A8884: .4byte gUnknown_3001B84 _080A8888: adds r0, r2, 0 adds r0, 0x38 adds r1, r4, 0 adds r2, r3, 0 bl sub_809D6E4 lsls r0, 24 lsrs r0, 24 _080A8898: pop {r4} pop {r1} bx r1 thumb_func_end sub_80A885C thumb_func_start sub_80A88A0 sub_80A88A0: push {lr} lsls r0, 16 asrs r0, 16 ldr r2, _080A88C4 lsls r1, r0, 5 subs r1, r0 lsls r1, 4 ldr r0, [r2] adds r2, r0, r1 movs r0, 0x2 ldrsh r1, [r2, r0] movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _080A88C8 movs r0, 0 b _080A88D4 .align 2, 0 _080A88C4: .4byte gUnknown_3001B84 _080A88C8: adds r0, r2, 0 adds r0, 0x38 bl sub_809D678 lsls r0, 24 lsrs r0, 24 _080A88D4: pop {r1} bx r1 thumb_func_end sub_80A88A0 thumb_func_start sub_80A88D8 sub_80A88D8: push {r4-r7,lr} sub sp, 0x4 adds r4, r0, 0 adds r7, r1, 0 adds r6, r2, 0 lsls r4, 16 asrs r4, 16 ldr r1, _080A8914 lsls r0, r4, 5 subs r0, r4 lsls r0, 4 ldr r1, [r1] adds r5, r1, r0 ldr r1, _080A8918 movs r0, 0x2 ldrsh r3, [r5, r0] str r6, [sp] movs r0, 0 adds r2, r4, 0 bl Log movs r0, 0x2 ldrsh r1, [r5, r0] movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _080A891C movs r0, 0 b _080A8934 .align 2, 0 _080A8914: .4byte gUnknown_3001B84 _080A8918: .4byte gUnknown_81181B0 _080A891C: adds r0, r5, 0 adds r0, 0x38 ldr r3, _080A893C adds r1, r7, 0 adds r2, r6, 0 bl sub_809D790 movs r0, 0xAE lsls r0, 1 adds r1, r5, r0 movs r0, 0x1 strb r0, [r1] _080A8934: add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080A893C: .4byte gUnknown_81181F4 thumb_func_end sub_80A88D8 thumb_func_start sub_80A8940 sub_80A8940: push {r4,r5,lr} adds r3, r0, 0 adds r5, r1, 0 adds r4, r2, 0 movs r0, 0xAF lsls r0, 1 adds r1, r3, r0 movs r2, 0 movs r0, 0xC0 lsls r0, 2 strh r0, [r1] movs r0, 0xB0 lsls r0, 1 adds r1, r3, r0 movs r0, 0x1 strh r0, [r1] movs r1, 0xB2 lsls r1, 1 adds r0, r3, r1 str r2, [r0] movs r0, 0xB4 lsls r0, 1 adds r2, r3, r0 movs r1, 0 ldrsh r0, [r2, r1] ldr r1, _080A898C cmp r0, r1 beq _080A8984 strh r1, [r2] movs r0, 0xAE lsls r0, 1 adds r1, r3, r0 movs r0, 0x1 strb r0, [r1] _080A8984: cmp r4, 0 bne _080A8990 movs r0, 0 b _080A89A2 .align 2, 0 _080A898C: .4byte 0x00000807 _080A8990: adds r0, r3, 0 adds r0, 0x38 ldr r3, _080A89A8 adds r1, r5, 0 adds r2, r4, 0 bl sub_809D790 lsls r0, 24 lsrs r0, 24 _080A89A2: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080A89A8: .4byte gUnknown_8118218 thumb_func_end sub_80A8940 thumb_func_start sub_80A89AC sub_80A89AC: push {r4,lr} lsls r0, 16 asrs r0, 16 ldr r4, _080A89CC lsls r3, r0, 5 subs r3, r0 lsls r3, 4 ldr r0, [r4] adds r0, r3 bl sub_80A8940 lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 .align 2, 0 _080A89CC: .4byte gUnknown_3001B84 thumb_func_end sub_80A89AC thumb_func_start sub_80A89D0 sub_80A89D0: push {r4-r6,lr} sub sp, 0x10 lsls r0, 16 asrs r2, r0, 16 lsls r1, 16 asrs r4, r1, 16 cmp r2, 0 blt _080A8A50 cmp r4, 0 blt _080A8A50 ldr r1, _080A8A48 lsls r0, r2, 5 subs r0, r2 lsls r0, 4 ldr r1, [r1] adds r5, r1, r0 lsls r0, r4, 5 subs r0, r4 lsls r0, 4 adds r1, r0 movs r2, 0x2 ldrsh r0, [r5, r2] movs r2, 0x1 negs r2, r2 cmp r0, r2 beq _080A8A50 movs r3, 0x2 ldrsh r0, [r1, r3] cmp r0, r2 beq _080A8A50 adds r6, r1, 0 adds r6, 0x38 adds r0, r6, 0 mov r1, sp movs r2, 0x2 bl sub_809D6E4 lsls r0, 24 cmp r0, 0 beq _080A8A50 movs r1, 0x1 lsls r0, r4, 16 orrs r0, r1 str r0, [sp, 0xC] adds r1, r5, 0 adds r1, 0x40 ldr r3, _080A8A4C adds r0, r6, 0 movs r2, 0x3 bl sub_809D8C0 add r1, sp, 0xC adds r0, r5, 0 mov r2, sp bl sub_80A8940 lsls r0, 24 lsrs r0, 24 b _080A8A52 .align 2, 0 _080A8A48: .4byte gUnknown_3001B84 _080A8A4C: .4byte gUnknown_8118250 _080A8A50: movs r0, 0 _080A8A52: add sp, 0x10 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80A89D0 thumb_func_start sub_80A8A5C sub_80A8A5C: push {r4-r6,lr} sub sp, 0x1C lsls r0, 16 asrs r2, r0, 16 lsls r1, 16 asrs r5, r1, 16 cmp r2, 0 blt _080A8AC0 cmp r5, 0 blt _080A8AC0 ldr r1, _080A8ABC lsls r0, r2, 5 subs r0, r2 lsls r0, 4 ldr r1, [r1] adds r6, r1, r0 adds r0, r5, 0 mov r1, sp movs r2, 0x2 bl sub_80AC274 lsls r0, 24 cmp r0, 0 beq _080A8AC0 movs r1, 0x2 lsls r0, r5, 16 orrs r0, r1 str r0, [sp, 0x18] add r4, sp, 0xC adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x3 bl sub_80AC274 adds r1, r6, 0 adds r1, 0x40 adds r0, r5, 0 adds r2, r4, 0 bl sub_80AC2BC add r1, sp, 0x18 adds r0, r6, 0 mov r2, sp bl sub_80A8940 lsls r0, 24 lsrs r0, 24 b _080A8AC2 .align 2, 0 _080A8ABC: .4byte gUnknown_3001B84 _080A8AC0: movs r0, 0 _080A8AC2: add sp, 0x1C pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80A8A5C thumb_func_start sub_80A8ACC sub_80A8ACC: push {r4,lr} sub sp, 0xC lsls r0, 16 asrs r2, r0, 16 lsls r1, 16 asrs r3, r1, 16 cmp r2, 0 blt _080A8B10 cmp r3, 0 blt _080A8B10 ldr r1, _080A8B0C lsls r0, r2, 5 subs r0, r2 lsls r0, 4 ldr r1, [r1] adds r4, r1, r0 adds r0, r3, 0 mov r1, sp bl sub_80ADC64 lsls r0, 24 cmp r0, 0 beq _080A8B10 adds r0, r4, 0 movs r1, 0 mov r2, sp bl sub_80A8940 lsls r0, 24 lsrs r0, 24 b _080A8B12 .align 2, 0 _080A8B0C: .4byte gUnknown_3001B84 _080A8B10: movs r0, 0 _080A8B12: add sp, 0xC pop {r4} pop {r1} bx r1 thumb_func_end sub_80A8ACC thumb_func_start sub_80A8B1C sub_80A8B1C: push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 16 asrs r7, r0, 16 ldr r0, _080A8B70 ldr r4, [r0] movs r5, 0 movs r0, 0x1 negs r0, r0 mov r8, r0 movs r6, 0x80 lsls r6, 9 _080A8B36: movs r1, 0x2 ldrsh r0, [r4, r1] cmp r0, r8 beq _080A8B4E adds r0, r4, 0 adds r0, 0x38 adds r1, r7, 0 bl sub_809D968 orrs r5, r0 lsls r0, r5, 24 lsrs r5, r0, 24 _080A8B4E: adds r0, r6, 0 movs r1, 0x80 lsls r1, 9 adds r6, r1 asrs r0, 16 movs r1, 0xF8 lsls r1, 1 adds r4, r1 cmp r0, 0x17 ble _080A8B36 adds r0, r5, 0 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080A8B70: .4byte gUnknown_3001B84 thumb_func_end sub_80A8B1C thumb_func_start sub_80A8B74 sub_80A8B74: push {r4-r7,lr} ldr r0, _080A8BB8 ldr r4, [r0] movs r5, 0 movs r7, 0x1 negs r7, r7 movs r6, 0x80 lsls r6, 9 _080A8B84: movs r1, 0x2 ldrsh r0, [r4, r1] cmp r0, r7 beq _080A8B9A adds r0, r4, 0 adds r0, 0x38 bl sub_809D92C orrs r5, r0 lsls r0, r5, 24 lsrs r5, r0, 24 _080A8B9A: adds r0, r6, 0 movs r1, 0x80 lsls r1, 9 adds r6, r1 asrs r0, 16 movs r1, 0xF8 lsls r1, 1 adds r4, r1 cmp r0, 0x17 ble _080A8B84 adds r0, r5, 0 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080A8BB8: .4byte gUnknown_3001B84 thumb_func_end sub_80A8B74 thumb_func_start sub_80A8BBC sub_80A8BBC: lsls r0, 16 asrs r0, 16 ldr r2, _080A8BD4 lsls r1, r0, 5 subs r1, r0 lsls r1, 4 ldr r0, [r2] adds r0, r1 movs r1, 0x2 ldrsh r0, [r0, r1] bx lr .align 2, 0 _080A8BD4: .4byte gUnknown_3001B84 thumb_func_end sub_80A8BBC thumb_func_start sub_80A8BD8 sub_80A8BD8: lsls r0, 16 asrs r0, 16 ldr r3, _080A8BF8 lsls r2, r0, 5 subs r2, r0 lsls r2, 4 ldr r0, [r3] adds r0, r2 movs r3, 0x8E lsls r3, 1 adds r2, r0, r3 ldr r2, [r2] str r2, [r1] movs r1, 0x2 ldrsh r0, [r0, r1] bx lr .align 2, 0 _080A8BF8: .4byte gUnknown_3001B84 thumb_func_end sub_80A8BD8 thumb_func_start sub_80A8BFC sub_80A8BFC: push {lr} lsls r0, 16 asrs r0, 16 ldr r2, _080A8C20 lsls r1, r0, 5 subs r1, r0 lsls r1, 4 ldr r0, [r2] adds r2, r0, r1 movs r0, 0x2 ldrsh r1, [r2, r0] movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _080A8C24 movs r0, 0 b _080A8C28 .align 2, 0 _080A8C20: .4byte gUnknown_3001B84 _080A8C24: movs r1, 0x8 ldrsh r0, [r2, r1] _080A8C28: pop {r1} bx r1 thumb_func_end sub_80A8BFC thumb_func_start sub_80A8C2C sub_80A8C2C: push {r4,lr} sub sp, 0x4 mov r1, sp strh r0, [r1] mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl sub_80A7DDC movs r1, 0 ldrsh r0, [r4, r1] add sp, 0x4 pop {r4} pop {r1} bx r1 thumb_func_end sub_80A8C2C thumb_func_start sub_80A8C4C sub_80A8C4C: push {r4,r5,lr} adds r5, r1, 0 lsls r0, 16 asrs r0, 16 ldr r2, _080A8C80 lsls r1, r0, 5 subs r1, r0 lsls r1, 4 ldr r0, [r2] adds r4, r0, r1 movs r0, 0x2 ldrsh r1, [r4, r0] movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _080A8C90 adds r0, r1, 0 bl sub_80A8D54 adds r1, r0, 0 cmp r1, 0 beq _080A8C84 ldr r0, [r1, 0x4] str r0, [r5] b _080A8C8A .align 2, 0 _080A8C80: .4byte gUnknown_3001B84 _080A8C84: movs r0, 0x63 strb r0, [r5] strb r1, [r5, 0x1] _080A8C8A: movs r1, 0x8 ldrsh r0, [r4, r1] b _080A8C92 _080A8C90: movs r0, 0 _080A8C92: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80A8C4C thumb_func_start sub_80A8C98 sub_80A8C98: push {r4,lr} lsls r0, 16 asrs r0, 16 ldr r2, _080A8CD4 lsls r1, r0, 5 subs r1, r0 lsls r1, 4 ldr r0, [r2] adds r3, r0, r1 movs r0, 0x2 ldrsh r1, [r3, r0] movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _080A8CE8 ldr r1, _080A8CD8 ldrh r2, [r1] movs r4, 0 ldrsh r0, [r1, r4] cmp r0, 0 beq _080A8CE8 movs r0, 0x8 ldrsh r3, [r3, r0] _080A8CC6: lsls r0, r2, 16 asrs r0, 16 cmp r0, r3 bne _080A8CDC movs r0, 0x1 b _080A8CEA .align 2, 0 _080A8CD4: .4byte gUnknown_3001B84 _080A8CD8: .4byte gUnknown_8117FCE _080A8CDC: adds r1, 0x2 ldrh r2, [r1] movs r4, 0 ldrsh r0, [r1, r4] cmp r0, 0 bne _080A8CC6 _080A8CE8: movs r0, 0 _080A8CEA: pop {r4} pop {r1} bx r1 thumb_func_end sub_80A8C98 thumb_func_start sub_80A8CF0 sub_80A8CF0: push {r4,lr} lsls r0, 16 asrs r3, r0, 16 ldr r1, _080A8CFC b _080A8D0E .align 2, 0 _080A8CFC: .4byte gUnknown_8117FCE _080A8D00: lsls r0, r2, 16 asrs r0, 16 cmp r0, r3 bne _080A8D0C movs r0, 0x1 b _080A8D1A _080A8D0C: adds r1, 0x2 _080A8D0E: ldrh r2, [r1] movs r4, 0 ldrsh r0, [r1, r4] cmp r0, 0 bne _080A8D00 movs r0, 0 _080A8D1A: pop {r4} pop {r1} bx r1 thumb_func_end sub_80A8CF0 thumb_func_start sub_80A8D20 sub_80A8D20: push {lr} movs r0, 0 bl sub_80A7AE8 lsls r0, 16 asrs r0, 16 ldr r2, _080A8D50 lsls r1, r0, 5 subs r1, r0 lsls r1, 4 ldr r0, [r2] adds r0, r1 movs r1, 0x90 lsls r1, 1 adds r0, r1 bl sub_809CDB8 movs r1, 0 cmp r0, 0x1 bne _080A8D4A movs r1, 0x1 _080A8D4A: adds r0, r1, 0 pop {r1} bx r1 .align 2, 0 _080A8D50: .4byte gUnknown_3001B84 thumb_func_end sub_80A8D20 thumb_func_start sub_80A8D54 sub_80A8D54: push {r4,r5,lr} sub sp, 0x14 mov r1, sp strh r0, [r1] mov r0, sp bl sub_80A7B94 mov r0, sp ldrh r1, [r0] movs r2, 0 ldrsh r0, [r0, r2] cmp r0, 0x1 beq _080A8D76 cmp r0, 0x6 beq _080A8D76 cmp r0, 0x21 bne _080A8D7C _080A8D76: bl sub_808D3BC b _080A8E94 _080A8D7C: cmp r0, 0x2 beq _080A8D88 cmp r0, 0x7 beq _080A8D88 cmp r0, 0x22 bne _080A8D8E _080A8D88: bl sub_808D3F8 b _080A8E94 _080A8D8E: cmp r0, 0x3 beq _080A8D9A cmp r0, 0x8 beq _080A8D9A cmp r0, 0x23 bne _080A8DA0 _080A8D9A: bl sub_808D33C b _080A8E94 _080A8DA0: adds r0, r1, 0 subs r0, 0xA lsls r0, 16 lsrs r0, 16 cmp r0, 0x3 bhi _080A8DF8 mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] adds r5, r0, 0 subs r5, 0xA bl sub_8098F88 lsls r0, 24 cmp r0, 0 bne _080A8E92 movs r0, 0x9 bl sub_80023E4 lsls r0, 24 cmp r0, 0 beq _080A8DD6 add r4, sp, 0x4 adds r0, r4, 0 bl sub_808D6A4 b _080A8DDE _080A8DD6: add r4, sp, 0x4 adds r0, r4, 0 bl sub_808D654 _080A8DDE: cmp r5, r0 bge _080A8E92 ldr r2, _080A8DF4 lsls r0, r5, 2 adds r0, r4, r0 ldr r1, [r0] movs r0, 0x58 muls r1, r0 ldr r0, [r2] adds r0, r1 b _080A8E94 .align 2, 0 _080A8DF4: .4byte gUnknown_203B45C _080A8DF8: adds r0, r1, 0 subs r0, 0xE lsls r0, 16 lsrs r0, 16 cmp r0, 0xF bhi _080A8E92 movs r0, 0 movs r1, 0x10 bl sub_8001658 lsls r0, 16 asrs r0, 16 bl sub_8002658 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 beq _080A8E92 mov r0, sp movs r2, 0 ldrsh r0, [r0, r2] adds r5, r0, 0 subs r5, 0xE add r4, sp, 0x4 adds r0, r1, 0 adds r1, r4, 0 movs r2, 0 movs r3, 0 bl sub_8092638 movs r1, 0 ldrsh r0, [r4, r1] cmp r5, r0 bge _080A8E92 ldr r2, _080A8E6C ldr r0, [r4, 0x8] adds r0, r5 movs r1, 0x58 muls r1, r0 ldr r0, [r2] adds r4, r0, r1 movs r0, 0x9 bl sub_80023E4 lsls r0, 24 cmp r0, 0 beq _080A8E70 ldrb r1, [r4] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080A8E92 ldrb r0, [r4, 0x2] cmp r0, 0 bne _080A8E92 adds r0, r4, 0 b _080A8E94 .align 2, 0 _080A8E6C: .4byte gUnknown_203B45C _080A8E70: ldrb r1, [r4] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080A8E92 ldrb r0, [r4, 0x2] cmp r0, 0 bne _080A8E92 movs r1, 0 ldrb r0, [r4, 0x4] cmp r0, 0x41 bne _080A8E8A movs r1, 0x1 _080A8E8A: cmp r1, 0 bne _080A8E92 adds r0, r4, 0 b _080A8E94 _080A8E92: movs r0, 0 _080A8E94: add sp, 0x14 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80A8D54 thumb_func_start sub_80A8E9C sub_80A8E9C: push {lr} lsls r0, 16 asrs r0, 16 ldr r2, _080A8EBC lsls r1, r0, 5 subs r1, r0 lsls r1, 4 ldr r0, [r2] adds r0, r1 movs r1, 0x2 ldrsh r0, [r0, r1] bl sub_80A8D54 pop {r1} bx r1 .align 2, 0 _080A8EBC: .4byte gUnknown_3001B84 thumb_func_end sub_80A8E9C thumb_func_start sub_80A8EC0 sub_80A8EC0: push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 mov r0, sp strh r1, [r0] mov r5, sp adds r5, 0x2 adds r1, r5, 0 bl sub_80A7DDC mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] bl sub_80A8D54 cmp r0, 0 beq _080A8EF0 adds r1, r0, 0 adds r1, 0x4C adds r0, r4, 0 movs r2, 0xA bl sub_80922B4 b _080A8F44 _080A8EF0: mov r0, sp movs r2, 0 ldrsh r1, [r0, r2] cmp r1, 0x20 bne _080A8F00 movs r0, 0 ldrsh r1, [r5, r0] b _080A8F34 _080A8F00: movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _080A8F3C mov r0, sp movs r1, 0 ldrsh r2, [r0, r1] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 ldr r1, _080A8F2C adds r0, r1 cmp r2, 0x34 beq _080A8F20 cmp r2, 0x64 bne _080A8F30 _080A8F20: ldr r1, [r0, 0x4] adds r0, r4, 0 bl strcpy b _080A8F44 .align 2, 0 _080A8F2C: .4byte gUnknown_811E63C _080A8F30: movs r2, 0x2 ldrsh r1, [r0, r2] _080A8F34: adds r0, r4, 0 bl sub_808D8BC b _080A8F44 _080A8F3C: ldr r1, _080A8F4C adds r0, r4, 0 bl strcpy _080A8F44: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080A8F4C: .4byte gUnknown_811825C thumb_func_end sub_80A8EC0 thumb_func_start sub_80A8F50 sub_80A8F50: push {r4,r5,lr} sub sp, 0x80 adds r4, r0, 0 adds r5, r2, 0 lsls r1, 16 asrs r1, 16 mov r0, sp bl sub_80A8EC0 adds r0, r4, 0 mov r1, sp adds r2, r5, 0 bl sub_8092310 add sp, 0x80 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80A8F50 thumb_func_start sub_80A8F74 sub_80A8F74: push {lr} adds r3, r1, 0 lsls r0, 16 asrs r0, 16 ldr r2, _080A8F98 lsls r1, r0, 5 subs r1, r0 lsls r1, 4 ldr r0, [r2] adds r0, r1 movs r2, 0x2 ldrsh r1, [r0, r2] adds r0, r3, 0 bl sub_80A8EC0 pop {r0} bx r0 .align 2, 0 _080A8F98: .4byte gUnknown_3001B84 thumb_func_end sub_80A8F74 thumb_func_start sub_80A8F9C sub_80A8F9C: push {lr} adds r3, r1, 0 lsls r0, 16 asrs r0, 16 ldr r2, _080A8FC4 lsls r1, r0, 5 subs r1, r0 lsls r1, 4 ldr r0, [r2] adds r2, r0, r1 movs r0, 0x2 ldrsh r1, [r2, r0] movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _080A8FC8 movs r0, 0 str r0, [r3] str r0, [r3, 0x4] b _080A8FD0 .align 2, 0 _080A8FC4: .4byte gUnknown_3001B84 _080A8FC8: ldr r0, [r2, 0xC] ldr r1, [r2, 0x10] str r0, [r3] str r1, [r3, 0x4] _080A8FD0: movs r1, 0x2 ldrsh r0, [r2, r1] pop {r1} bx r1 thumb_func_end sub_80A8F9C thumb_func_start sub_80A8FD8 sub_80A8FD8: push {lr} adds r3, r1, 0 lsls r0, 16 asrs r0, 16 ldr r2, _080A9000 lsls r1, r0, 5 subs r1, r0 lsls r1, 4 ldr r0, [r2] adds r2, r0, r1 movs r0, 0x2 ldrsh r1, [r2, r0] movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _080A9004 movs r0, 0 str r0, [r3] b _080A901E .align 2, 0 _080A9000: .4byte gUnknown_3001B84 _080A9004: movs r1, 0xA2 lsls r1, 1 adds r0, r2, r1 ldr r0, [r0] ldr r1, [r2, 0x14] adds r0, r1 str r0, [r3] movs r1, 0xA4 lsls r1, 1 adds r0, r2, r1 ldr r0, [r0] ldr r1, [r2, 0x18] adds r0, r1 _080A901E: str r0, [r3, 0x4] movs r1, 0x2 ldrsh r0, [r2, r1] pop {r1} bx r1 thumb_func_end sub_80A8FD8 thumb_func_start sub_80A9028 sub_80A9028: push {r4,lr} lsls r0, 16 asrs r0, 16 ldr r3, _080A904C lsls r2, r0, 5 subs r2, r0 lsls r2, 4 ldr r4, [r3] adds r4, r2 adds r0, r4, 0 bl sub_80A9F20 movs r1, 0x2 ldrsh r0, [r4, r1] pop {r4} pop {r1} bx r1 .align 2, 0 _080A904C: .4byte gUnknown_3001B84 thumb_func_end sub_80A9028 thumb_func_start sub_80A9050 sub_80A9050: push {r4,lr} adds r4, r1, 0 lsls r0, 16 asrs r0, 16 ldr r2, _080A9078 lsls r1, r0, 5 subs r1, r0 lsls r1, 4 ldr r0, [r2] adds r2, r0, r1 movs r0, 0x2 ldrsh r1, [r2, r0] movs r0, 0x1 negs r0, r0 adds r3, r0, 0 cmp r1, r0 bne _080A907C strb r3, [r4] b _080A9086 .align 2, 0 _080A9078: .4byte gUnknown_3001B84 _080A907C: movs r1, 0xA1 lsls r1, 1 adds r0, r2, r1 ldrb r0, [r0] strb r0, [r4] _080A9086: movs r1, 0x2 ldrsh r0, [r2, r1] pop {r4} pop {r1} bx r1 thumb_func_end sub_80A9050 thumb_func_start sub_80A9090 sub_80A9090: push {lr} lsls r0, 16 asrs r0, 16 lsls r1, 24 asrs r3, r1, 24 ldr r2, _080A90C4 lsls r1, r0, 5 subs r1, r0 lsls r1, 4 ldr r0, [r2] adds r2, r0, r1 movs r0, 0x2 ldrsh r1, [r2, r0] movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _080A90BA movs r1, 0xA1 lsls r1, 1 adds r0, r2, r1 strb r3, [r0] _080A90BA: movs r1, 0x2 ldrsh r0, [r2, r1] pop {r1} bx r1 .align 2, 0 _080A90C4: .4byte gUnknown_3001B84 thumb_func_end sub_80A9090 thumb_func_start sub_80A90C8 sub_80A90C8: lsls r0, 16 asrs r0, 16 ldr r2, _080A90E4 lsls r1, r0, 5 subs r1, r0 lsls r1, 4 ldr r0, [r2] adds r0, r1 movs r1, 0xA0 lsls r1, 1 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] bx lr .align 2, 0 _080A90E4: .4byte gUnknown_3001B84 thumb_func_end sub_80A90C8 thumb_func_start sub_80A90E8 sub_80A90E8: push {r4,r5,lr} sub sp, 0x10 lsls r0, 16 asrs r2, r0, 16 lsls r1, 16 asrs r3, r1, 16 cmp r2, r3 beq _080A9196 ldr r1, _080A916C lsls r0, r2, 5 subs r0, r2 lsls r0, 4 ldr r1, [r1] adds r5, r1, r0 lsls r0, r3, 5 subs r0, r3 lsls r0, 4 adds r4, r1, r0 movs r1, 0x2 ldrsh r0, [r5, r1] movs r1, 0x1 negs r1, r1 cmp r0, r1 beq _080A9196 movs r2, 0x2 ldrsh r0, [r4, r2] cmp r0, r1 beq _080A9196 movs r3, 0xA2 lsls r3, 1 adds r0, r5, r3 ldr r0, [r0] ldr r1, [r5, 0x14] adds r0, r1 str r0, [sp] movs r2, 0xA4 lsls r2, 1 adds r0, r5, r2 ldr r0, [r0] ldr r1, [r5, 0x18] adds r0, r1 str r0, [sp, 0x4] adds r3, r4, r3 ldr r0, [r3] ldr r1, [r4, 0x14] adds r0, r1 str r0, [sp, 0x8] adds r2, r4, r2 ldr r0, [r2] ldr r1, [r4, 0x18] adds r0, r1 add r2, sp, 0x8 str r0, [r2, 0x4] movs r1, 0x2 ldrsh r0, [r5, r1] cmp r0, 0x24 bgt _080A9170 adds r1, r5, 0 adds r1, 0xC adds r3, r4, 0 adds r3, 0xC mov r0, sp bl sub_8002DF0 b _080A917E .align 2, 0 _080A916C: .4byte gUnknown_3001B84 _080A9170: adds r1, r5, 0 adds r1, 0xC adds r3, r4, 0 adds r3, 0xC mov r0, sp bl sub_8002D54 _080A917E: lsls r0, 24 asrs r1, r0, 24 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _080A9196 movs r2, 0xA1 lsls r2, 1 adds r0, r5, r2 strb r1, [r0] movs r0, 0x1 b _080A9198 _080A9196: movs r0, 0 _080A9198: add sp, 0x10 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80A90E8 thumb_func_start sub_80A91A0 sub_80A91A0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 lsls r0, 16 asrs r2, r0, 16 lsls r1, 16 asrs r4, r1, 16 cmp r2, r4 beq _080A928E ldr r1, _080A9260 lsls r0, r2, 5 subs r0, r2 lsls r0, 4 ldr r1, [r1] adds r7, r1, r0 lsls r0, r4, 5 subs r0, r4 lsls r0, 4 adds r1, r0 mov r8, r1 movs r1, 0x2 ldrsh r0, [r7, r1] movs r2, 0x1 negs r2, r2 mov r10, r2 cmp r0, r10 beq _080A928E mov r3, r8 movs r1, 0x2 ldrsh r0, [r3, r1] cmp r0, r10 beq _080A928E movs r3, 0xA2 lsls r3, 1 adds r0, r7, r3 ldr r0, [r0] ldr r1, [r7, 0x14] adds r0, r1 str r0, [sp] movs r2, 0xA4 lsls r2, 1 adds r0, r7, r2 ldr r0, [r0] ldr r1, [r7, 0x18] adds r0, r1 str r0, [sp, 0x4] add r3, r8 ldr r0, [r3] mov r3, r8 ldr r1, [r3, 0x14] adds r0, r1 str r0, [sp, 0x8] add r2, r8 ldr r0, [r2] ldr r1, [r3, 0x18] adds r0, r1 add r4, sp, 0x8 str r0, [r4, 0x4] adds r5, r7, 0 adds r5, 0xC mov r6, r8 adds r6, 0xC mov r0, sp adds r1, r5, 0 adds r2, r4, 0 adds r3, r6, 0 bl sub_8002DF0 lsls r0, 24 asrs r0, 24 mov r9, r0 mov r0, sp adds r1, r5, 0 adds r2, r4, 0 adds r3, r6, 0 bl sub_8002D54 lsls r0, 24 asrs r1, r0, 24 cmp r9, r10 beq _080A928E cmp r1, r10 beq _080A928E movs r2, 0x2 ldrsh r0, [r7, r2] cmp r0, 0x24 bgt _080A9264 movs r3, 0xA1 lsls r3, 1 adds r0, r7, r3 mov r2, r9 strb r2, [r0] b _080A926C .align 2, 0 _080A9260: .4byte gUnknown_3001B84 _080A9264: movs r3, 0xA1 lsls r3, 1 adds r0, r7, r3 strb r1, [r0] _080A926C: mov r2, r8 movs r3, 0x2 ldrsh r0, [r2, r3] cmp r0, 0x25 bgt _080A927A mov r0, r9 b _080A927C _080A927A: adds r0, r1, 0 _080A927C: movs r1, 0x5 bl sub_8002984 movs r1, 0xA1 lsls r1, 1 add r1, r8 strb r0, [r1] movs r0, 0x1 b _080A9290 _080A928E: movs r0, 0 _080A9290: add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80A91A0 thumb_func_start sub_80A92A0 sub_80A92A0: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} mov r9, r1 adds r4, r2, 0 lsls r0, 16 asrs r6, r0, 16 ldr r0, _080A931C ldr r0, [r0] mov r12, r0 movs r2, 0 movs r0, 0x1 negs r0, r0 mov r8, r0 movs r5, 0x80 lsls r5, 9 _080A92C2: cmp r2, r6 beq _080A9320 mov r1, r12 movs r7, 0x2 ldrsh r0, [r1, r7] cmp r0, r8 beq _080A9320 movs r0, 0x8E lsls r0, 1 add r0, r12 ldr r0, [r0] mov r1, r9 ands r0, r1 cmp r0, 0 beq _080A9320 movs r0, 0xA2 lsls r0, 1 add r0, r12 ldr r1, [r0] ldr r0, [r3] cmp r1, r0 bge _080A9320 movs r0, 0xA6 lsls r0, 1 add r0, r12 ldr r1, [r0] ldr r0, [r4] cmp r1, r0 ble _080A9320 movs r0, 0xA4 lsls r0, 1 add r0, r12 ldr r1, [r0] ldr r0, [r3, 0x4] cmp r1, r0 bge _080A9320 movs r0, 0xA8 lsls r0, 1 add r0, r12 ldr r1, [r0] ldr r0, [r4, 0x4] cmp r1, r0 ble _080A9320 adds r0, r2, 0 b _080A9338 .align 2, 0 _080A931C: .4byte gUnknown_3001B84 _080A9320: adds r0, r5, 0 movs r7, 0x80 lsls r7, 9 adds r5, r7 asrs r2, r0, 16 movs r0, 0xF8 lsls r0, 1 add r12, r0 cmp r2, 0x17 ble _080A92C2 movs r0, 0x1 negs r0, r0 _080A9338: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80A92A0 thumb_func_start sub_80A9344 sub_80A9344: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 mov r9, r1 str r2, [sp] adds r5, r3, 0 lsls r0, 16 asrs r0, 16 mov r8, r0 ldr r0, _080A93C4 ldr r0, [r0] mov r12, r0 movs r4, 0 movs r0, 0x1 negs r0, r0 mov r10, r0 movs r7, 0x80 lsls r7, 9 _080A936E: cmp r4, r8 beq _080A93C8 mov r1, r12 movs r2, 0x2 ldrsh r0, [r1, r2] cmp r0, r10 beq _080A93C8 movs r0, 0x8E lsls r0, 1 add r0, r12 ldr r0, [r0] mov r6, r9 ands r0, r6 cmp r0, 0 beq _080A93C8 movs r0, 0xA2 lsls r0, 1 add r0, r12 ldr r1, [r0] mov r6, r12 ldr r0, [r6, 0x14] adds r2, r1, r0 movs r0, 0xA4 lsls r0, 1 add r0, r12 ldr r1, [r0] ldr r0, [r6, 0x18] adds r3, r1, r0 ldr r0, [r5] cmp r2, r0 bge _080A93C8 ldr r1, [sp] ldr r0, [r1] cmp r2, r0 ble _080A93C8 ldr r0, [r5, 0x4] cmp r3, r0 bge _080A93C8 ldr r0, [r1, 0x4] cmp r3, r0 ble _080A93C8 adds r0, r4, 0 b _080A93E0 .align 2, 0 _080A93C4: .4byte gUnknown_3001B84 _080A93C8: adds r0, r7, 0 movs r2, 0x80 lsls r2, 9 adds r7, r2 asrs r4, r0, 16 movs r6, 0xF8 lsls r6, 1 add r12, r6 cmp r4, 0x17 ble _080A936E movs r0, 0x1 negs r0, r0 _080A93E0: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80A9344 thumb_func_start sub_80A93F0 sub_80A93F0: push {r4-r7,lr} sub sp, 0x10 lsls r0, 16 asrs r0, 16 lsls r1, 24 lsrs r6, r1, 24 ldr r2, _080A947C lsls r1, r0, 5 subs r1, r0 lsls r1, 4 ldr r0, [r2] adds r0, r1 mov r12, r0 movs r0, 0xA2 lsls r0, 1 add r0, r12 ldr r0, [r0] cmp r0, 0 bge _080A941A ldr r1, _080A9480 adds r0, r1 _080A941A: asrs r5, r0, 11 str r5, [sp] movs r0, 0xA4 lsls r0, 1 add r0, r12 ldr r0, [r0] cmp r0, 0 bge _080A942E ldr r7, _080A9480 adds r0, r7 _080A942E: asrs r4, r0, 11 str r4, [sp, 0x4] movs r0, 0xA6 lsls r0, 1 add r0, r12 ldr r0, [r0] subs r1, r0, 0x1 cmp r1, 0 bge _080A9444 ldr r7, _080A9484 adds r1, r0, r7 _080A9444: asrs r2, r1, 11 movs r0, 0xA8 lsls r0, 1 add r0, r12 ldr r0, [r0] subs r1, r0, 0x1 cmp r1, 0 bge _080A9458 ldr r7, _080A9484 adds r1, r0, r7 _080A9458: asrs r3, r1, 11 subs r0, r2, r5 adds r0, 0x1 str r0, [sp, 0x8] subs r0, r3, r4 adds r0, 0x1 add r2, sp, 0x8 str r0, [r2, 0x4] adds r0, r6, 0 mov r1, sp bl sub_80A5934 lsls r0, 24 lsrs r0, 24 add sp, 0x10 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080A947C: .4byte gUnknown_3001B84 _080A9480: .4byte 0x000007ff _080A9484: .4byte 0x000007fe thumb_func_end sub_80A93F0 thumb_func_start sub_80A9488 sub_80A9488: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x10 adds r5, r0, 0 adds r7, r1, 0 mov r8, r2 ldr r0, [r7] cmp r0, 0 bge _080A94A0 ldr r1, _080A9528 adds r0, r1 _080A94A0: asrs r0, 11 mov r12, r0 str r0, [sp] ldr r0, [r7, 0x4] cmp r0, 0 bge _080A94B0 ldr r3, _080A9528 adds r0, r3 _080A94B0: asrs r4, r0, 11 str r4, [sp, 0x4] mov r6, r8 ldr r3, [r6] subs r0, r3, 0x1 cmp r0, 0 bge _080A94C2 ldr r6, _080A952C adds r0, r3, r6 _080A94C2: asrs r1, r0, 11 mov r0, r8 ldr r3, [r0, 0x4] subs r0, r3, 0x1 cmp r0, 0 bge _080A94D2 ldr r6, _080A952C adds r0, r3, r6 _080A94D2: asrs r2, r0, 11 mov r3, r12 subs r0, r1, r3 adds r0, 0x1 str r0, [sp, 0x8] subs r0, r2, r4 adds r0, 0x1 add r2, sp, 0x8 str r0, [r2, 0x4] movs r6, 0x8E lsls r6, 1 adds r0, r5, r6 ldr r0, [r0] movs r1, 0x1 ands r0, r1 adds r4, r2, 0 cmp r0, 0 beq _080A9504 mov r0, sp adds r1, r4, 0 bl sub_80A585C lsls r0, 24 cmp r0, 0 bne _080A9522 _080A9504: movs r1, 0x8E lsls r1, 1 adds r0, r5, r1 ldr r0, [r0] movs r1, 0x2 ands r0, r1 cmp r0, 0 beq _080A9530 mov r0, sp adds r1, r4, 0 bl sub_80A58C8 lsls r0, 24 cmp r0, 0 beq _080A9530 _080A9522: movs r0, 0x1 b _080A95A0 .align 2, 0 _080A9528: .4byte 0x000007ff _080A952C: .4byte 0x000007fe _080A9530: movs r3, 0x8E lsls r3, 1 adds r0, r5, r3 ldr r0, [r0] movs r1, 0x4 ands r0, r1 cmp r0, 0 beq _080A9556 movs r6, 0 ldrsh r0, [r5, r6] adds r2, r7, 0 mov r3, r8 bl sub_80A92A0 lsls r0, 16 cmp r0, 0 blt _080A9556 movs r0, 0x4 b _080A95A0 _080A9556: movs r1, 0x8E lsls r1, 1 adds r0, r5, r1 ldr r0, [r0] movs r1, 0x8 ands r0, r1 cmp r0, 0 beq _080A957A movs r0, 0x4 adds r1, r7, 0 mov r2, r8 bl sub_80AC4C8 lsls r0, 16 cmp r0, 0 blt _080A957A movs r0, 0x8 b _080A95A0 _080A957A: movs r3, 0x8E lsls r3, 1 adds r0, r5, r3 ldr r0, [r0] movs r1, 0x10 ands r0, r1 cmp r0, 0 beq _080A959E movs r0, 0x40 adds r1, r7, 0 mov r2, r8 bl sub_80ADCA0 lsls r0, 16 cmp r0, 0 blt _080A959E movs r0, 0x10 b _080A95A0 _080A959E: movs r0, 0 _080A95A0: add sp, 0x10 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80A9488 thumb_func_start sub_80A95AC sub_80A95AC: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x14 adds r5, r0, 0 adds r7, r1, 0 mov r8, r2 ldr r0, [r7] cmp r0, 0 bge _080A95C6 ldr r1, _080A96BC adds r0, r1 _080A95C6: asrs r0, 11 mov r9, r0 str r0, [sp] ldr r0, [r7, 0x4] cmp r0, 0 bge _080A95D6 ldr r2, _080A96BC adds r0, r2 _080A95D6: asrs r4, r0, 11 str r4, [sp, 0x4] mov r6, r8 ldr r3, [r6] subs r0, r3, 0x1 cmp r0, 0 bge _080A95E8 ldr r6, _080A96C0 adds r0, r3, r6 _080A95E8: asrs r1, r0, 11 mov r0, r8 ldr r3, [r0, 0x4] subs r0, r3, 0x1 cmp r0, 0 bge _080A95F8 ldr r6, _080A96C0 adds r0, r3, r6 _080A95F8: asrs r2, r0, 11 mov r3, r9 subs r0, r1, r3 adds r0, 0x1 str r0, [sp, 0x8] subs r0, r2, r4 adds r0, 0x1 add r2, sp, 0x8 str r0, [r2, 0x4] movs r6, 0x8E lsls r6, 1 adds r0, r5, r6 ldr r0, [r0] movs r1, 0x1 ands r0, r1 adds r4, r2, 0 cmp r0, 0 beq _080A962C mov r0, sp adds r1, r4, 0 bl sub_80A585C lsls r0, 24 cmp r0, 0 beq _080A962C b _080A973C _080A962C: movs r1, 0x8E lsls r1, 1 adds r0, r5, r1 ldr r0, [r0] movs r1, 0x2 ands r0, r1 cmp r0, 0 beq _080A964A mov r0, sp adds r1, r4, 0 bl sub_80A58C8 lsls r0, 24 cmp r0, 0 bne _080A973C _080A964A: movs r4, 0x8E lsls r4, 1 adds r0, r5, r4 ldr r0, [r0] movs r1, 0x4 ands r0, r1 cmp r0, 0 beq _080A96C8 movs r2, 0 ldrsh r0, [r5, r2] movs r1, 0x44 adds r2, r7, 0 mov r3, r8 bl sub_80A92A0 lsls r0, 16 asrs r2, r0, 16 mov r9, r2 cmp r2, 0 blt _080A96C8 ldr r1, _080A96C4 lsls r0, r2, 5 subs r0, r2 lsls r0, 4 ldr r1, [r1] adds r6, r1, r0 adds r0, r6, r4 ldr r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _080A973C movs r0, 0x80 lsls r0, 2 ands r1, r0 cmp r1, 0 beq _080A96A8 adds r4, 0x26 adds r0, r5, r4 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 movs r1, 0x5 bl sub_8002984 adds r4, r6, r4 strb r0, [r4] _080A96A8: movs r3, 0 ldrsh r0, [r5, r3] mov r1, r9 bl sub_80A89D0 _080A96B2: lsls r0, 24 cmp r0, 0 bne _080A9738 b _080A973C .align 2, 0 _080A96BC: .4byte 0x000007ff _080A96C0: .4byte 0x000007fe _080A96C4: .4byte gUnknown_3001B84 _080A96C8: movs r6, 0x8E lsls r6, 1 adds r0, r5, r6 ldr r0, [r0] movs r1, 0x8 ands r0, r1 cmp r0, 0 beq _080A9708 movs r0, 0x44 adds r1, r7, 0 mov r2, r8 bl sub_80AC4C8 lsls r0, 16 asrs r4, r0, 16 cmp r4, 0 blt _080A9708 add r1, sp, 0x10 adds r0, r4, 0 bl sub_80AC3E0 ldr r0, [sp, 0x10] movs r1, 0x40 ands r0, r1 cmp r0, 0 beq _080A973C movs r1, 0 ldrsh r0, [r5, r1] adds r1, r4, 0 bl sub_80A8A5C b _080A96B2 _080A9708: movs r2, 0x8E lsls r2, 1 adds r0, r5, r2 ldr r0, [r0] movs r1, 0x10 ands r0, r1 cmp r0, 0 beq _080A9740 movs r0, 0x40 adds r1, r7, 0 mov r2, r8 bl sub_80ADCA0 lsls r0, 16 asrs r1, r0, 16 cmp r1, 0 blt _080A9740 movs r3, 0 ldrsh r0, [r5, r3] bl sub_80A8ACC lsls r0, 24 cmp r0, 0 beq _080A973C _080A9738: movs r0, 0x2 b _080A9742 _080A973C: movs r0, 0x1 b _080A9742 _080A9740: movs r0, 0 _080A9742: add sp, 0x14 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80A95AC thumb_func_start sub_80A9750 sub_80A9750: push {r4,lr} mov r12, r0 lsls r1, 16 lsrs r1, 16 adds r4, r1, 0 movs r3, 0xFF ands r3, r1 movs r2, 0xF0 lsls r2, 4 ands r2, r1 cmp r3, 0 beq _080A9770 movs r0, 0xB0 lsls r0, 1 add r0, r12 strh r3, [r0] _080A9770: cmp r2, 0 beq _080A977C movs r0, 0xAF lsls r0, 1 add r0, r12 strh r2, [r0] _080A977C: movs r2, 0xB0 lsls r2, 1 add r2, r12 ldrh r0, [r2] cmp r0, 0x1 bne _080A97A8 movs r0, 0x80 lsls r0, 5 cmp r1, r0 beq _080A97B6 movs r0, 0xB2 lsls r0, 1 add r0, r12 ldr r0, [r0] ldr r2, _080A97A4 cmp r0, 0 bgt _080A97A0 b _080A9E98 _080A97A0: b _080A97C0 .align 2, 0 _080A97A4: .4byte 0x00000807 _080A97A8: cmp r0, 0x2 beq _080A97AE b _080A9E8C _080A97AE: movs r0, 0x80 lsls r0, 5 cmp r4, r0 bne _080A97C6 _080A97B6: movs r1, 0xB2 lsls r1, 1 add r1, r12 movs r0, 0x4 str r0, [r1] _080A97C0: movs r2, 0x80 lsls r2, 4 b _080A9E98 _080A97C6: movs r0, 0xB2 lsls r0, 1 add r0, r12 ldr r0, [r0] cmp r0, 0 bgt _080A97C0 mov r1, r12 ldrh r0, [r1, 0x8] subs r0, 0xC lsls r0, 16 asrs r1, r0, 16 ldr r0, _080A97F0 cmp r1, r0 bls _080A97E4 b _080A9E7E _080A97E4: lsls r0, r1, 2 ldr r1, _080A97F4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080A97F0: .4byte 0x00000197 _080A97F4: .4byte _080A97F8 .align 2, 0 _080A97F8: .4byte _080A9E58 .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E58 .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E58 .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E58 .4byte _080A9E60 .4byte _080A9E60 .4byte _080A9E7E .4byte _080A9E60 .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E60 .4byte _080A9E60 .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E68 .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E60 .4byte _080A9E60 .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E58 .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E58 .4byte _080A9E60 .4byte _080A9E60 .4byte _080A9E7E .4byte _080A9E58 .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E58 .4byte _080A9E7E .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E60 .4byte _080A9E60 .4byte _080A9E7E .4byte _080A9E60 .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E7E .4byte _080A9E58 .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E58 .4byte _080A9E7E .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E58 .4byte _080A9E7E .4byte _080A9E58 .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E58 .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E58 .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E58 .4byte _080A9E60 .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E58 .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E58 .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E58 .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E60 .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E60 .4byte _080A9E60 .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E58 .4byte _080A9E7E .4byte _080A9E58 .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E58 .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E60 .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E60 .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E58 .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E60 .4byte _080A9E60 .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E60 .4byte _080A9E58 .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E58 .4byte _080A9E60 .4byte _080A9E60 .4byte _080A9E7E .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E58 .4byte _080A9E7E .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E7E .4byte _080A9E58 .4byte _080A9E7E .4byte _080A9E58 .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E58 .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E58 .4byte _080A9E60 .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E60 .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E7E .4byte _080A9E7E .4byte _080A9E58 .4byte _080A9E7E .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E7E .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E58 .4byte _080A9E58 _080A9E58: ldr r2, _080A9E5C b _080A9E98 .align 2, 0 _080A9E5C: .4byte 0x00000807 _080A9E60: ldr r2, _080A9E64 b _080A9E98 .align 2, 0 _080A9E64: .4byte 0x00000307 _080A9E68: movs r0, 0xB4 lsls r0, 1 add r0, r12 movs r2, 0 ldrsh r1, [r0, r2] ldr r2, _080A9E84 cmp r1, r2 beq _080A9E98 ldr r0, _080A9E88 cmp r1, r0 beq _080A9E98 _080A9E7E: movs r2, 0xC0 lsls r2, 2 b _080A9E98 .align 2, 0 _080A9E84: .4byte 0x00000807 _080A9E88: .4byte 0x00000307 _080A9E8C: ldr r1, _080A9EC4 ldrh r0, [r2] lsls r0, 1 adds r0, r1 movs r4, 0 ldrsh r2, [r0, r4] _080A9E98: movs r0, 0xE0 lsls r0, 3 ands r0, r2 cmp r0, 0 bne _080A9EEE movs r0, 0xAF lsls r0, 1 add r0, r12 ldrh r1, [r0] movs r0, 0xC0 lsls r0, 2 cmp r1, r0 beq _080A9EEE cmp r1, r0 bgt _080A9EC8 movs r3, 0x80 lsls r3, 1 cmp r1, r3 beq _080A9EDA movs r0, 0x80 lsls r0, 2 b _080A9ED4 .align 2, 0 _080A9EC4: .4byte gUnknown_8117F64 _080A9EC8: movs r3, 0x80 lsls r3, 3 cmp r1, r3 beq _080A9EDE movs r0, 0x80 lsls r0, 4 _080A9ED4: cmp r1, r0 beq _080A9EEC b _080A9EEE _080A9EDA: orrs r2, r0 b _080A9EEE _080A9EDE: movs r1, 0x80 lsls r1, 2 adds r0, r1, 0 orrs r2, r0 lsls r0, r2, 16 asrs r2, r0, 16 b _080A9EEE _080A9EEC: orrs r2, r3 _080A9EEE: movs r1, 0xB4 lsls r1, 1 add r1, r12 ldrh r3, [r1] movs r4, 0 ldrsh r0, [r1, r4] cmp r0, r2 beq _080A9F02 strh r2, [r1] b _080A9F0C _080A9F02: movs r0, 0x80 lsls r0, 5 ands r0, r3 cmp r0, 0 beq _080A9F16 _080A9F0C: movs r1, 0xAE lsls r1, 1 add r1, r12 movs r0, 0x1 strb r0, [r1] _080A9F16: movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_80A9750 thumb_func_start sub_80A9F20 sub_80A9F20: push {r4,r5,lr} sub sp, 0x10 adds r5, r0, 0 ldr r2, [r1] ldr r4, [r5, 0x14] subs r0, r2, r4 str r0, [sp] ldr r3, [r1, 0x4] ldr r1, [r5, 0x18] subs r0, r3, r1 str r0, [sp, 0x4] adds r2, r4 str r2, [sp, 0x8] adds r3, r1 add r2, sp, 0x8 str r3, [r2, 0x4] ldr r1, [r5, 0x28] ldr r0, [sp] cmp r0, r1 blt _080A9F5E ldr r1, [r5, 0x30] ldr r0, [sp, 0x8] cmp r0, r1 bge _080A9F5E ldr r1, [r5, 0x2C] ldr r0, [sp, 0x4] cmp r0, r1 blt _080A9F5E ldr r0, [r5, 0x34] cmp r3, r0 blt _080A9F62 _080A9F5E: movs r0, 0x1 b _080A9F8C _080A9F62: adds r0, r5, 0 mov r1, sp bl sub_80A9488 cmp r0, 0 bne _080A9F8C movs r0, 0xA2 lsls r0, 1 adds r2, r5, r0 ldr r0, [sp] ldr r1, [sp, 0x4] str r0, [r2] str r1, [r2, 0x4] movs r0, 0xA6 lsls r0, 1 adds r2, r5, r0 ldr r0, [sp, 0x8] ldr r1, [sp, 0xC] str r0, [r2] str r1, [r2, 0x4] movs r0, 0 _080A9F8C: add sp, 0x10 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80A9F20 thumb_func_start sub_80A9F94 sub_80A9F94: push {r4-r6,lr} sub sp, 0x10 adds r4, r0, 0 movs r2, 0xA2 lsls r2, 1 adds r0, r4, r2 ldr r0, [r0] ldr r2, [r1] adds r0, r2 str r0, [sp] movs r3, 0xA4 lsls r3, 1 adds r0, r4, r3 ldr r0, [r0] ldr r1, [r1, 0x4] adds r0, r1 str r0, [sp, 0x4] adds r3, 0x4 adds r0, r4, r3 ldr r0, [r0] adds r0, r2 str r0, [sp, 0x8] movs r2, 0xA8 lsls r2, 1 adds r0, r4, r2 ldr r0, [r0] adds r0, r1 add r1, sp, 0x8 str r0, [r1, 0x4] movs r6, 0 ldr r3, [r4, 0x28] ldr r0, [sp] adds r2, r1, 0 cmp r0, r3 bge _080A9FE4 str r3, [sp] ldr r0, [r4, 0xC] adds r0, r3, r0 str r0, [sp, 0x8] b _080A9FF4 _080A9FE4: ldr r1, [r4, 0x30] ldr r0, [sp, 0x8] cmp r0, r1 blt _080A9FF6 ldr r0, [r4, 0xC] subs r0, r1, r0 str r0, [sp] str r1, [sp, 0x8] _080A9FF4: movs r6, 0x1 _080A9FF6: ldr r1, [r4, 0x2C] ldr r0, [sp, 0x4] cmp r0, r1 bge _080AA008 str r1, [sp, 0x4] ldr r0, [r4, 0x10] adds r0, r1, r0 str r0, [r2, 0x4] b _080AA018 _080AA008: ldr r1, [r4, 0x34] ldr r0, [r2, 0x4] cmp r0, r1 blt _080AA01A ldr r0, [r4, 0x10] subs r0, r1, r0 str r0, [sp, 0x4] str r1, [r2, 0x4] _080AA018: movs r6, 0x1 _080AA01A: adds r0, r4, 0 mov r1, sp bl sub_80A9488 adds r5, r0, 0 cmp r5, 0 beq _080AA034 adds r0, r4, 0 movs r1, 0 bl sub_80AAF68 adds r0, r5, 0 b _080AA06A _080AA034: movs r3, 0xA2 lsls r3, 1 adds r2, r4, r3 ldr r0, [sp] ldr r1, [sp, 0x4] str r0, [r2] str r1, [r2, 0x4] movs r0, 0xA6 lsls r0, 1 adds r2, r4, r0 ldr r0, [sp, 0x8] ldr r1, [sp, 0xC] str r0, [r2] str r1, [r2, 0x4] cmp r6, 0 bne _080AA060 adds r0, r4, 0 movs r1, 0x1 bl sub_80AAF68 movs r0, 0 b _080AA06A _080AA060: adds r0, r4, 0 movs r1, 0 bl sub_80AAF68 movs r0, 0x1 _080AA06A: add sp, 0x10 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80A9F94 thumb_func_start sub_80AA074 sub_80AA074: push {r4-r7,lr} sub sp, 0x10 adds r4, r0, 0 movs r2, 0xA2 lsls r2, 1 adds r0, r4, r2 ldr r0, [r0] ldr r2, [r1] adds r0, r2 str r0, [sp] movs r3, 0xA4 lsls r3, 1 adds r0, r4, r3 ldr r0, [r0] ldr r1, [r1, 0x4] adds r0, r1 str r0, [sp, 0x4] adds r3, 0x4 adds r0, r4, r3 ldr r0, [r0] adds r0, r2 str r0, [sp, 0x8] movs r2, 0xA8 lsls r2, 1 adds r0, r4, r2 ldr r0, [r0] adds r0, r1 add r1, sp, 0x8 str r0, [r1, 0x4] ldr r3, [r4, 0x28] ldr r0, [sp] adds r5, r1, 0 cmp r0, r3 bge _080AA0C2 str r3, [sp] ldr r0, [r4, 0xC] adds r0, r3, r0 str r0, [sp, 0x8] b _080AA0D2 _080AA0C2: ldr r1, [r4, 0x30] ldr r0, [sp, 0x8] cmp r0, r1 blt _080AA0D2 ldr r0, [r4, 0xC] subs r0, r1, r0 str r0, [sp] str r1, [sp, 0x8] _080AA0D2: ldr r1, [r4, 0x2C] ldr r0, [sp, 0x4] cmp r0, r1 bge _080AA0E4 str r1, [sp, 0x4] ldr r0, [r4, 0x10] adds r0, r1, r0 str r0, [r5, 0x4] b _080AA0F4 _080AA0E4: ldr r1, [r4, 0x34] ldr r0, [r5, 0x4] cmp r0, r1 blt _080AA0F4 ldr r0, [r4, 0x10] subs r0, r1, r0 str r0, [sp, 0x4] str r1, [r5, 0x4] _080AA0F4: adds r0, r4, 0 mov r1, sp adds r2, r5, 0 bl sub_80A95AC adds r6, r0, 0 cmp r6, 0 bne _080AA170 movs r3, 0xA2 lsls r3, 1 adds r2, r4, r3 ldr r0, [sp] ldr r1, [sp, 0x4] str r0, [r2] str r1, [r2, 0x4] movs r0, 0xA6 lsls r0, 1 adds r2, r4, r0 ldr r0, [sp, 0x8] ldr r1, [sp, 0xC] str r0, [r2] str r1, [r2, 0x4] movs r1, 0x8E lsls r1, 1 adds r0, r4, r1 ldr r0, [r0] movs r1, 0x10 ands r0, r1 cmp r0, 0 beq _080AA170 movs r0, 0x20 mov r1, sp adds r2, r5, 0 bl sub_80ADCA0 lsls r0, 16 asrs r5, r0, 16 cmp r5, 0 blt _080AA166 movs r2, 0x9F lsls r2, 1 adds r7, r4, r2 movs r3, 0 ldrsh r0, [r7, r3] cmp r0, r5 beq _080AA170 movs r1, 0 ldrsh r0, [r4, r1] adds r1, r5, 0 bl sub_80A8ACC lsls r0, 24 cmp r0, 0 beq _080AA170 strh r5, [r7] movs r6, 0x2 b _080AA170 _080AA166: movs r2, 0x9F lsls r2, 1 adds r1, r4, r2 ldr r0, _080AA17C strh r0, [r1] _080AA170: adds r0, r6, 0 add sp, 0x10 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080AA17C: .4byte 0x0000ffff thumb_func_end sub_80AA074 thumb_func_start sub_80AA180 sub_80AA180: push {r4-r7,lr} sub sp, 0x10 adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 adds r7, r3, 0 movs r0, 0x4 ands r0, r5 cmp r0, 0 beq _080AA220 movs r1, 0 ldrsh r0, [r4, r1] movs r1, 0x80 bl sub_80A9344 lsls r0, 16 asrs r0, 16 cmp r0, 0 blt _080AA220 mov r1, sp bl sub_80A8FD8 movs r2, 0xA2 lsls r2, 1 adds r0, r4, r2 ldr r1, [r0] ldr r0, [r4, 0x14] adds r1, r0 ldr r0, [sp] subs r0, r1 str r0, [sp, 0x8] movs r3, 0xA4 lsls r3, 1 adds r0, r4, r3 ldr r0, [r0] ldr r1, [r4, 0x18] adds r0, r1 ldr r1, [sp, 0x4] subs r1, r0 add r0, sp, 0x8 str r1, [r0, 0x4] bl sub_8002C60 lsls r0, 24 asrs r1, r0, 24 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _080AA2B2 movs r0, 0xA1 lsls r0, 1 adds r2, r4, r0 lsls r0, r1, 24 lsrs r0, 24 strb r0, [r2] ldr r3, _080AA21C adds r1, r4, r3 ldrb r1, [r1] lsls r1, 24 asrs r1, 24 lsls r0, 24 asrs r0, 24 cmp r1, r0 beq _080AA20A movs r0, 0xAE lsls r0, 1 adds r1, r4, r0 movs r0, 0x1 strb r0, [r1] _080AA20A: movs r1, 0 ldrsb r1, [r2, r1] adds r0, r4, 0 bl sub_80AA3F8 lsls r0, 24 cmp r0, 0 bne _080AA2AE b _080AA2B2 .align 2, 0 _080AA21C: .4byte 0x0000015d _080AA220: movs r0, 0x8 ands r0, r5 cmp r0, 0 beq _080AA2B2 movs r0, 0x80 adds r1, r6, 0 adds r2, r7, 0 bl sub_80AC554 lsls r0, 16 asrs r0, 16 cmp r0, 0 blt _080AA2B2 mov r1, sp bl sub_80AC448 movs r1, 0xA2 lsls r1, 1 adds r0, r4, r1 ldr r1, [r0] ldr r0, [r4, 0x14] adds r1, r0 ldr r0, [sp] subs r0, r1 str r0, [sp, 0x8] add r0, sp, 0x8 movs r2, 0xA4 lsls r2, 1 adds r1, r4, r2 ldr r2, [r1] ldr r1, [r4, 0x18] adds r2, r1 ldr r1, [sp, 0x4] subs r1, r2 str r1, [r0, 0x4] bl sub_8002C60 lsls r0, 24 asrs r1, r0, 24 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _080AA2B2 movs r3, 0xA1 lsls r3, 1 adds r2, r4, r3 lsls r0, r1, 24 lsrs r0, 24 strb r0, [r2] adds r3, 0x1B adds r1, r4, r3 ldrb r1, [r1] lsls r1, 24 asrs r1, 24 lsls r0, 24 asrs r0, 24 cmp r1, r0 beq _080AA29E movs r0, 0xAE lsls r0, 1 adds r1, r4, r0 movs r0, 0x1 strb r0, [r1] _080AA29E: movs r1, 0 ldrsb r1, [r2, r1] adds r0, r4, 0 bl sub_80AA3F8 lsls r0, 24 cmp r0, 0 beq _080AA2B2 _080AA2AE: movs r0, 0x3 b _080AA2B4 _080AA2B2: movs r0, 0 _080AA2B4: add sp, 0x10 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80AA180 thumb_func_start sub_80AA2BC sub_80AA2BC: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x20 adds r7, r0, 0 mov r8, r1 ldr r0, [r2] ldr r1, [r2, 0x4] str r0, [sp] str r1, [sp, 0x4] ldr r0, [r3] ldr r1, [r3, 0x4] str r0, [sp, 0x10] str r1, [sp, 0x14] ldr r0, [sp] cmp r0, 0 bge _080AA2E6 ldr r1, _080AA3C4 adds r0, r1 _080AA2E6: asrs r0, 11 str r0, [sp, 0x8] ldr r0, [sp, 0x4] cmp r0, 0 bge _080AA2F4 ldr r2, _080AA3C4 adds r0, r2 _080AA2F4: asrs r0, 11 add r1, sp, 0x8 str r0, [r1, 0x4] ldr r4, [sp, 0x10] subs r0, r4, 0x1 mov r10, r1 cmp r0, 0 bge _080AA308 ldr r1, _080AA3C8 adds r0, r4, r1 _080AA308: asrs r2, r0, 11 add r0, sp, 0x10 ldr r4, [r0, 0x4] subs r1, r4, 0x1 mov r9, r0 cmp r1, 0 bge _080AA31A ldr r0, _080AA3C8 adds r1, r4, r0 _080AA31A: asrs r3, r1, 11 ldr r0, [sp, 0x8] subs r0, r2, r0 adds r0, 0x1 str r0, [sp, 0x18] mov r1, r10 ldr r0, [r1, 0x4] subs r0, r3, r0 adds r0, 0x1 add r1, sp, 0x18 str r0, [r1, 0x4] movs r0, 0x4 mov r2, r8 ands r0, r2 cmp r0, 0 beq _080AA394 movs r1, 0 ldrsh r0, [r7, r1] movs r1, 0x80 mov r2, sp mov r3, r9 bl sub_80A92A0 lsls r0, 16 asrs r5, r0, 16 cmp r5, 0 blt _080AA394 ldr r1, _080AA3CC lsls r0, r5, 5 subs r0, r5 lsls r0, 4 ldr r1, [r1] adds r6, r1, r0 movs r2, 0x8E lsls r2, 1 adds r0, r6, r2 ldr r0, [r0] movs r1, 0x80 lsls r1, 2 ands r0, r1 cmp r0, 0 beq _080AA384 movs r4, 0xA1 lsls r4, 1 adds r0, r7, r4 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 movs r1, 0x5 bl sub_8002984 adds r4, r6, r4 strb r0, [r4] _080AA384: movs r1, 0 ldrsh r0, [r7, r1] adds r1, r5, 0 bl sub_80A89D0 lsls r0, 24 cmp r0, 0 bne _080AA3BE _080AA394: movs r0, 0x8 mov r2, r8 ands r0, r2 cmp r0, 0 beq _080AA3D0 movs r0, 0x80 mov r1, sp mov r2, r9 bl sub_80AC4C8 lsls r0, 16 asrs r1, r0, 16 cmp r1, 0 blt _080AA3D0 movs r2, 0 ldrsh r0, [r7, r2] bl sub_80A8A5C lsls r0, 24 cmp r0, 0 beq _080AA3D0 _080AA3BE: movs r0, 0x3 b _080AA3E6 .align 2, 0 _080AA3C4: .4byte 0x000007ff _080AA3C8: .4byte 0x000007fe _080AA3CC: .4byte gUnknown_3001B84 _080AA3D0: movs r0, 0x10 mov r1, r10 add r2, sp, 0x18 bl sub_80A595C lsls r0, 24 cmp r0, 0 bne _080AA3E4 movs r0, 0 b _080AA3E6 _080AA3E4: movs r0, 0x6 _080AA3E6: add sp, 0x20 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80AA2BC thumb_func_start sub_80AA3F8 sub_80AA3F8: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x40 adds r6, r0, 0 lsls r1, 24 asrs r1, 24 str r1, [sp, 0x28] movs r2, 0x80 lsls r2, 1 mov r0, sp bl sub_8002BB8 ldr r4, [sp] ldr r5, [sp, 0x4] movs r0, 0xA2 lsls r0, 1 adds r0, r6 mov r9, r0 ldr r0, [r0] adds r0, r4 str r0, [sp, 0x8] movs r1, 0xA4 lsls r1, 1 adds r1, r6 mov r10, r1 ldr r0, [r1] adds r0, r5 add r2, sp, 0x8 str r0, [r2, 0x4] movs r1, 0xA6 lsls r1, 1 adds r0, r6, r1 ldr r0, [r0] adds r0, r4 str r0, [sp, 0x10] adds r1, 0x4 adds r0, r6, r1 ldr r0, [r0] adds r0, r5 add r3, sp, 0x10 str r0, [r3, 0x4] adds r0, r6, 0 movs r1, 0xC bl sub_80AA2BC adds r7, r0, 0 cmp r7, 0x3 bne _080AA462 _080AA45E: movs r0, 0x1 b _080AA650 _080AA462: ldr r0, [r6, 0xC] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 movs r2, 0x80 lsls r2, 2 mov r8, r2 add r0, r8 muls r0, r4 cmp r0, 0 bge _080AA47A adds r0, 0xFF _080AA47A: asrs r0, 8 str r0, [sp, 0x2C] ldr r0, [r6, 0x10] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 add r0, r8 muls r0, r5 cmp r0, 0 bge _080AA490 adds r0, 0xFF _080AA490: asrs r0, 8 str r0, [sp, 0x30] mov r1, r9 ldr r0, [r1] ldr r1, [r6, 0x14] adds r0, r1 ldr r2, [sp, 0x2C] adds r0, r2 ldr r2, _080AA4F4 adds r0, r2 str r0, [sp, 0x18] mov r1, r10 ldr r0, [r1] ldr r1, [r6, 0x18] adds r0, r1 ldr r1, [sp, 0x30] adds r0, r1 adds r0, r2 add r2, sp, 0x18 str r0, [r2, 0x4] movs r1, 0xC0 lsls r1, 3 ldr r0, [sp, 0x18] adds r0, r1 str r0, [sp, 0x20] ldr r0, [r2, 0x4] adds r0, r1 add r3, sp, 0x20 str r0, [r3, 0x4] ldr r0, _080AA4F8 mov r9, r0 ldr r0, [sp, 0x28] lsls r1, r0, 2 add r9, r1 mov r0, r9 ldr r0, [r0] str r0, [sp, 0x34] ldr r0, _080AA4FC adds r0, r1, r0 ldr r0, [r0] str r0, [sp, 0x38] ldr r0, _080AA500 adds r1, r0 ldr r1, [r1] str r1, [sp, 0x3C] mov r10, r8 mov r9, r2 mov r8, r3 b _080AA568 .align 2, 0 _080AA4F4: .4byte 0xfffffd00 _080AA4F8: .4byte gUnknown_8117FF0 _080AA4FC: .4byte gUnknown_8118010 _080AA500: .4byte gUnknown_8118030 _080AA504: ldr r1, [r6, 0x28] ldr r0, [sp, 0x18] cmp r0, r1 bge _080AA50E b _080AA64E _080AA50E: ldr r1, [r6, 0x30] ldr r0, [sp, 0x20] cmp r0, r1 blt _080AA518 b _080AA64E _080AA518: ldr r1, [r6, 0x2C] mov r2, r9 ldr r0, [r2, 0x4] cmp r0, r1 bge _080AA524 b _080AA64E _080AA524: ldr r1, [r6, 0x34] mov r2, r8 ldr r0, [r2, 0x4] cmp r0, r1 blt _080AA530 b _080AA64E _080AA530: adds r0, r6, 0 movs r1, 0xC mov r2, r9 mov r3, r8 bl sub_80AA2BC adds r7, r0, 0 cmp r7, 0x3 beq _080AA45E ldr r0, [sp, 0x18] adds r0, r4 str r0, [sp, 0x18] mov r1, r9 ldr r0, [r1, 0x4] adds r0, r5 str r0, [r1, 0x4] ldr r0, [sp, 0x20] adds r0, r4 str r0, [sp, 0x20] mov r2, r8 ldr r0, [r2, 0x4] adds r0, r5 str r0, [r2, 0x4] cmp r7, 0x6 beq _080AA572 movs r0, 0x80 lsls r0, 1 add r10, r0 _080AA568: ldr r1, [sp, 0x34] cmp r10, r1 blt _080AA504 cmp r7, 0x6 bne _080AA64E _080AA572: ldr r2, [sp, 0x38] cmp r10, r2 bge _080AA5DC _080AA578: ldr r1, [sp, 0x18] ldr r0, [r6, 0x28] cmp r1, r0 blt _080AA64E ldr r1, [sp, 0x20] ldr r0, [r6, 0x30] cmp r1, r0 bge _080AA64E mov r0, r9 ldr r1, [r0, 0x4] ldr r0, [r6, 0x2C] cmp r1, r0 blt _080AA64E mov r2, r8 ldr r1, [r2, 0x4] ldr r0, [r6, 0x34] cmp r1, r0 bge _080AA64E adds r0, r6, 0 movs r1, 0x4 mov r2, r9 mov r3, r8 bl sub_80AA2BC adds r7, r0, 0 cmp r7, 0x3 bne _080AA5B0 b _080AA45E _080AA5B0: ldr r0, [sp, 0x18] adds r0, r4 str r0, [sp, 0x18] mov r1, r9 ldr r0, [r1, 0x4] adds r0, r5 str r0, [r1, 0x4] ldr r0, [sp, 0x20] adds r0, r4 str r0, [sp, 0x20] mov r2, r8 ldr r0, [r2, 0x4] adds r0, r5 str r0, [r2, 0x4] cmp r7, 0x6 bne _080AA5E0 movs r0, 0x80 lsls r0, 1 add r10, r0 ldr r1, [sp, 0x38] cmp r10, r1 blt _080AA578 _080AA5DC: cmp r7, 0x6 beq _080AA64E _080AA5E0: movs r2, 0 mov r10, r2 ldr r0, [sp, 0x3C] cmp r10, r0 bge _080AA64E _080AA5EA: ldr r1, [sp, 0x18] ldr r0, [r6, 0x28] cmp r1, r0 blt _080AA64E ldr r1, [sp, 0x20] ldr r0, [r6, 0x30] cmp r1, r0 bge _080AA64E mov r2, r9 ldr r1, [r2, 0x4] ldr r0, [r6, 0x2C] cmp r1, r0 blt _080AA64E mov r0, r8 ldr r1, [r0, 0x4] ldr r0, [r6, 0x34] cmp r1, r0 bge _080AA64E adds r0, r6, 0 movs r1, 0x4 mov r2, r9 mov r3, r8 bl sub_80AA2BC adds r7, r0, 0 cmp r7, 0x3 bne _080AA622 b _080AA45E _080AA622: cmp r7, 0x6 beq _080AA64E ldr r0, [sp, 0x18] adds r0, r4 str r0, [sp, 0x18] mov r1, r9 ldr r0, [r1, 0x4] adds r0, r5 str r0, [r1, 0x4] ldr r0, [sp, 0x20] adds r0, r4 str r0, [sp, 0x20] mov r2, r8 ldr r0, [r2, 0x4] adds r0, r5 str r0, [r2, 0x4] movs r0, 0x80 lsls r0, 1 add r10, r0 ldr r1, [sp, 0x3C] cmp r10, r1 blt _080AA5EA _080AA64E: movs r0, 0 _080AA650: add sp, 0x40 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80AA3F8 thumb_func_start sub_80AA660 sub_80AA660: push {r4,lr} adds r4, r0, 0 movs r0, 0x80 lsls r0, 1 bl sub_80AC4C8 lsls r0, 16 asrs r1, r0, 16 cmp r1, 0 blt _080AA686 movs r2, 0 ldrsh r0, [r4, r2] bl sub_80A8A5C lsls r0, 24 cmp r0, 0 beq _080AA686 movs r0, 0x4 b _080AA688 _080AA686: movs r0, 0 _080AA688: pop {r4} pop {r1} bx r1 thumb_func_end sub_80AA660 thumb_func_start sub_80AA690 sub_80AA690: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x18 adds r7, r0, 0 lsls r1, 24 asrs r1, 24 mov r9, r1 movs r2, 0x80 lsls r2, 1 mov r0, sp bl sub_8002BB8 ldr r5, [sp] ldr r6, [sp, 0x4] ldr r0, [r7, 0xC] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 movs r1, 0x80 lsls r1, 2 mov r8, r1 add r0, r8 muls r0, r5 cmp r0, 0 bge _080AA6CA adds r0, 0xFF _080AA6CA: asrs r3, r0, 8 ldr r0, [r7, 0x10] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 add r0, r8 muls r0, r6 cmp r0, 0 bge _080AA6DE adds r0, 0xFF _080AA6DE: asrs r4, r0, 8 movs r2, 0xA2 lsls r2, 1 adds r0, r7, r2 ldr r0, [r0] ldr r1, [r7, 0x14] adds r0, r1 adds r0, r3 ldr r2, _080AA76C adds r0, r2 str r0, [sp, 0x8] movs r1, 0xA4 lsls r1, 1 adds r0, r7, r1 ldr r0, [r0] ldr r1, [r7, 0x18] adds r0, r1 adds r0, r4 adds r0, r2 add r2, sp, 0x8 str r0, [r2, 0x4] movs r1, 0xC0 lsls r1, 3 ldr r0, [sp, 0x8] adds r0, r1 str r0, [sp, 0x10] ldr r0, [r2, 0x4] adds r0, r1 add r3, sp, 0x10 str r0, [r3, 0x4] ldr r1, _080AA770 mov r4, r9 lsls r0, r4, 2 adds r0, r1 ldr r0, [r0] mov r10, r0 mov r9, r8 mov r8, r2 adds r4, r3, 0 cmp r9, r10 bge _080AA79C _080AA730: ldr r1, [r7, 0x28] ldr r0, [sp, 0x8] cmp r0, r1 blt _080AA79C ldr r1, [r7, 0x30] ldr r0, [sp, 0x10] cmp r0, r1 bge _080AA79C ldr r1, [r7, 0x2C] mov r2, r8 ldr r0, [r2, 0x4] cmp r0, r1 blt _080AA79C ldr r1, [r7, 0x34] ldr r0, [r4, 0x4] cmp r0, r1 bge _080AA79C adds r0, r7, 0 mov r1, r8 adds r2, r4, 0 bl sub_80AA660 cmp r0, 0x4 beq _080AA774 cmp r0, 0x4 bhi _080AA778 cmp r0, 0 bne _080AA778 b _080AA79C .align 2, 0 _080AA76C: .4byte 0xfffffd00 _080AA770: .4byte gUnknown_8117FF0 _080AA774: movs r0, 0x1 b _080AA79E _080AA778: ldr r0, [sp, 0x8] adds r0, r5 str r0, [sp, 0x8] mov r1, r8 ldr r0, [r1, 0x4] adds r0, r6 str r0, [r1, 0x4] ldr r0, [sp, 0x10] adds r0, r5 str r0, [sp, 0x10] ldr r0, [r4, 0x4] adds r0, r6 str r0, [r4, 0x4] movs r2, 0x80 lsls r2, 1 add r9, r2 cmp r9, r10 blt _080AA730 _080AA79C: movs r0, 0 _080AA79E: add sp, 0x18 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80AA690 thumb_func_start sub_80AA7B0 sub_80AA7B0: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x20 adds r7, r0, 0 adds r6, r1, 0 mov r12, r2 ldr r2, [sp, 0x38] ldr r0, [r3] ldr r1, [r3, 0x4] str r0, [sp] str r1, [sp, 0x4] ldr r0, [r2] ldr r1, [r2, 0x4] str r0, [sp, 0x10] str r1, [sp, 0x14] ldr r0, [sp] cmp r0, 0 bge _080AA7DA ldr r1, _080AA884 adds r0, r1 _080AA7DA: asrs r0, 11 str r0, [sp, 0x8] ldr r0, [sp, 0x4] cmp r0, 0 bge _080AA7E8 ldr r2, _080AA884 adds r0, r2 _080AA7E8: asrs r0, 11 add r1, sp, 0x8 str r0, [r1, 0x4] ldr r4, [sp, 0x10] subs r0, r4, 0x1 mov r8, r1 cmp r0, 0 bge _080AA7FC ldr r5, _080AA888 adds r0, r4, r5 _080AA7FC: asrs r2, r0, 11 add r4, sp, 0x10 ldr r1, [r4, 0x4] subs r0, r1, 0x1 cmp r0, 0 bge _080AA80C ldr r5, _080AA888 adds r0, r1, r5 _080AA80C: asrs r3, r0, 11 ldr r0, [sp, 0x8] subs r0, r2, r0 adds r0, 0x1 str r0, [sp, 0x18] mov r1, r8 ldr r0, [r1, 0x4] subs r0, r3, r0 adds r0, 0x1 add r1, sp, 0x18 str r0, [r1, 0x4] movs r0, 0x4 mov r2, r12 ands r0, r2 adds r5, r1, 0 cmp r0, 0 beq _080AA890 movs r1, 0 ldrsh r0, [r7, r1] movs r1, 0x80 mov r2, sp adds r3, r4, 0 bl sub_80A92A0 lsls r0, 16 asrs r4, r0, 16 cmp r4, 0 blt _080AA890 adds r0, r4, 0 bl sub_80A8BBC lsls r0, 16 ldr r2, _080AA88C adds r0, r2 lsrs r0, 16 cmp r0, 0xF bhi _080AA890 adds r0, r4, 0 bl sub_80A8E9C cmp r0, 0 beq _080AA890 strh r4, [r6] movs r5, 0xA1 lsls r5, 1 adds r0, r7, r5 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 movs r1, 0x5 bl sub_8002984 adds r1, r0, 0 lsls r1, 24 asrs r1, 24 adds r0, r4, 0 bl sub_80A9090 movs r0, 0x5 b _080AA8AE .align 2, 0 _080AA884: .4byte 0x000007ff _080AA888: .4byte 0x000007fe _080AA88C: .4byte 0xfff20000 _080AA890: movs r1, 0x1 negs r1, r1 adds r0, r1, 0 strh r0, [r6] movs r0, 0x10 mov r1, r8 adds r2, r5, 0 bl sub_80A595C lsls r0, 24 cmp r0, 0 bne _080AA8AC movs r0, 0 b _080AA8AE _080AA8AC: movs r0, 0x6 _080AA8AE: add sp, 0x20 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80AA7B0 thumb_func_start sub_80AA8BC sub_80AA8BC: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x30 adds r6, r0, 0 str r1, [sp, 0x1C] lsls r2, 24 asrs r2, 24 mov r8, r2 movs r2, 0x80 lsls r2, 1 add r0, sp, 0x4 mov r1, r8 bl sub_8002BB8 ldr r4, [sp, 0x4] ldr r5, [sp, 0x8] ldr r0, [r6, 0xC] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 movs r1, 0x80 lsls r1, 2 mov r9, r1 add r0, r9 muls r0, r4 cmp r0, 0 bge _080AA8FA adds r0, 0xFF _080AA8FA: asrs r0, 8 str r0, [sp, 0x20] ldr r0, [r6, 0x10] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 add r0, r9 muls r0, r5 cmp r0, 0 bge _080AA910 adds r0, 0xFF _080AA910: asrs r0, 8 str r0, [sp, 0x24] movs r2, 0xA2 lsls r2, 1 adds r0, r6, r2 ldr r0, [r0] ldr r1, [r6, 0x14] adds r0, r1 ldr r7, [sp, 0x20] adds r0, r7 ldr r2, _080AA9F0 adds r0, r2 str r0, [sp, 0xC] movs r1, 0xA4 lsls r1, 1 adds r0, r6, r1 ldr r0, [r0] ldr r1, [r6, 0x18] adds r0, r1 ldr r7, [sp, 0x24] adds r0, r7 adds r0, r2 add r2, sp, 0xC str r0, [r2, 0x4] movs r1, 0xC0 lsls r1, 3 ldr r0, [sp, 0xC] adds r0, r1 str r0, [sp, 0x14] ldr r0, [r2, 0x4] adds r0, r1 add r3, sp, 0x14 str r0, [r3, 0x4] ldr r0, _080AA9F4 mov r7, r8 lsls r1, r7, 2 adds r0, r1, r0 ldr r0, [r0] mov r10, r0 ldr r0, _080AA9F8 adds r0, r1, r0 ldr r0, [r0] str r0, [sp, 0x28] ldr r0, _080AA9FC adds r1, r0 ldr r1, [r1] str r1, [sp, 0x2C] movs r1, 0 movs r7, 0x1 negs r7, r7 adds r0, r7, 0 ldr r7, [sp, 0x1C] strh r0, [r7] mov r8, r2 adds r7, r3, 0 cmp r9, r10 bge _080AA9E8 _080AA982: ldr r1, [r6, 0x28] ldr r0, [sp, 0xC] cmp r0, r1 bge _080AA98C b _080AAAD4 _080AA98C: ldr r1, [r6, 0x30] ldr r0, [sp, 0x14] cmp r0, r1 blt _080AA996 b _080AAAD4 _080AA996: ldr r1, [r6, 0x2C] mov r2, r8 ldr r0, [r2, 0x4] cmp r0, r1 bge _080AA9A2 b _080AAAD4 _080AA9A2: ldr r1, [r6, 0x34] ldr r0, [r7, 0x4] cmp r0, r1 blt _080AA9AC b _080AAAD4 _080AA9AC: str r7, [sp] adds r0, r6, 0 ldr r1, [sp, 0x1C] movs r2, 0xC mov r3, r8 bl sub_80AA7B0 adds r1, r0, 0 cmp r1, 0x5 beq _080AAA66 ldr r0, [sp, 0xC] adds r0, r4 str r0, [sp, 0xC] mov r2, r8 ldr r0, [r2, 0x4] adds r0, r5 str r0, [r2, 0x4] ldr r0, [sp, 0x14] adds r0, r4 str r0, [sp, 0x14] ldr r0, [r7, 0x4] adds r0, r5 str r0, [r7, 0x4] cmp r1, 0x6 beq _080AAA5A movs r0, 0x80 lsls r0, 1 add r9, r0 cmp r9, r10 blt _080AA982 _080AA9E8: cmp r1, 0x6 bne _080AAAD4 b _080AAA5A .align 2, 0 _080AA9F0: .4byte 0xfffffd00 _080AA9F4: .4byte gUnknown_8117FF0 _080AA9F8: .4byte gUnknown_8118010 _080AA9FC: .4byte gUnknown_8118030 _080AAA00: ldr r1, [sp, 0xC] ldr r0, [r6, 0x28] cmp r1, r0 blt _080AAAD4 ldr r1, [sp, 0x14] ldr r0, [r6, 0x30] cmp r1, r0 bge _080AAAD4 mov r0, r8 ldr r1, [r0, 0x4] ldr r0, [r6, 0x2C] cmp r1, r0 blt _080AAAD4 ldr r1, [r7, 0x4] ldr r0, [r6, 0x34] cmp r1, r0 bge _080AAAD4 str r7, [sp] adds r0, r6, 0 ldr r1, [sp, 0x1C] movs r2, 0x4 mov r3, r8 bl sub_80AA7B0 adds r1, r0, 0 cmp r1, 0x5 beq _080AAA66 ldr r0, [sp, 0xC] adds r0, r4 str r0, [sp, 0xC] mov r2, r8 ldr r0, [r2, 0x4] adds r0, r5 str r0, [r2, 0x4] ldr r0, [sp, 0x14] adds r0, r4 str r0, [sp, 0x14] ldr r0, [r7, 0x4] adds r0, r5 str r0, [r7, 0x4] cmp r1, 0x6 bne _080AAA6A movs r0, 0x80 lsls r0, 1 add r9, r0 _080AAA5A: ldr r2, [sp, 0x28] cmp r9, r2 blt _080AAA00 cmp r1, 0x6 bne _080AAA6A b _080AAAD4 _080AAA66: movs r0, 0x1 b _080AAAD6 _080AAA6A: movs r0, 0 mov r9, r0 ldr r1, [sp, 0x2C] cmp r9, r1 bge _080AAAD4 _080AAA74: ldr r1, [sp, 0xC] ldr r0, [r6, 0x28] cmp r1, r0 blt _080AAAD4 ldr r1, [sp, 0x14] ldr r0, [r6, 0x30] cmp r1, r0 bge _080AAAD4 mov r2, r8 ldr r1, [r2, 0x4] ldr r0, [r6, 0x2C] cmp r1, r0 blt _080AAAD4 ldr r1, [r7, 0x4] ldr r0, [r6, 0x34] cmp r1, r0 bge _080AAAD4 str r7, [sp] adds r0, r6, 0 ldr r1, [sp, 0x1C] movs r2, 0x4 mov r3, r8 bl sub_80AA7B0 adds r1, r0, 0 cmp r1, 0x5 beq _080AAA66 cmp r1, 0x6 beq _080AAAD4 ldr r0, [sp, 0xC] adds r0, r4 str r0, [sp, 0xC] mov r1, r8 ldr r0, [r1, 0x4] adds r0, r5 str r0, [r1, 0x4] ldr r0, [sp, 0x14] adds r0, r4 str r0, [sp, 0x14] ldr r0, [r7, 0x4] adds r0, r5 str r0, [r7, 0x4] movs r2, 0x80 lsls r2, 1 add r9, r2 ldr r0, [sp, 0x2C] cmp r9, r0 blt _080AAA74 _080AAAD4: movs r0, 0 _080AAAD6: add sp, 0x30 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80AA8BC thumb_func_start sub_80AAAE8 sub_80AAAE8: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x80 adds r5, r0, 0 adds r3, r1, 0 lsls r2, 24 asrs r4, r2, 24 movs r0, 0x1 negs r0, r0 str r0, [sp, 0x78] movs r2, 0xAF lsls r2, 1 adds r1, r5, r2 movs r0, 0xC0 lsls r0, 2 strh r0, [r1] movs r6, 0xB0 lsls r6, 1 adds r1, r5, r6 movs r0, 0x1 strh r0, [r1] ldr r0, [sp, 0x78] cmp r4, r0 beq _080AAB26 movs r1, 0xA1 lsls r1, 1 adds r0, r5, r1 strb r4, [r0] _080AAB26: subs r0, r3, 0x1 cmp r0, 0x13 bls _080AAB2E b _080AAEB8 _080AAB2E: lsls r0, 2 ldr r1, _080AAB38 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080AAB38: .4byte _080AAB3C .align 2, 0 _080AAB3C: .4byte _080AAB8C .4byte _080AAD60 .4byte _080AAC9C .4byte _080AAC9C .4byte _080AAC9C .4byte _080AAB9E .4byte _080AAB9E .4byte _080AAB9E .4byte _080AAD7C .4byte _080AADF4 .4byte _080AAE06 .4byte _080AAEB8 .4byte _080AAEB8 .4byte _080AAEB8 .4byte _080AAEB8 .4byte _080AAEB8 .4byte _080AAEB8 .4byte _080AAEB8 .4byte _080AAE32 .4byte _080AAE9C _080AAB8C: movs r4, 0xB2 lsls r4, 1 adds r1, r5, r4 movs r0, 0 str r0, [r1] movs r6, 0xC0 lsls r6, 2 str r6, [sp, 0x78] b _080AAD6E _080AAB9E: movs r0, 0x1 negs r0, r0 cmp r4, r0 beq _080AAC88 movs r6, 0 movs r0, 0xB2 lsls r0, 1 adds r1, r5, r0 movs r0, 0x4 str r0, [r1] cmp r3, 0x7 beq _080AABD2 cmp r3, 0x7 bhi _080AABC0 cmp r3, 0x6 beq _080AABC6 b _080AABEA _080AABC0: cmp r3, 0x8 beq _080AABDE b _080AABEA _080AABC6: movs r1, 0x90 lsls r1, 4 str r1, [sp, 0x78] movs r2, 0x1 str r2, [sp, 0x7C] b _080AABFC _080AABD2: movs r3, 0x80 lsls r3, 4 str r3, [sp, 0x78] movs r0, 0x2 str r0, [sp, 0x7C] b _080AABFC _080AABDE: movs r1, 0xA0 lsls r1, 4 str r1, [sp, 0x78] movs r2, 0x4 str r2, [sp, 0x7C] b _080AABFC _080AABEA: movs r3, 0xB2 lsls r3, 1 adds r1, r5, r3 movs r0, 0 str r0, [r1] ldr r0, _080AAC20 str r0, [sp, 0x78] movs r1, 0 str r1, [sp, 0x7C] _080AABFC: movs r2, 0x80 lsls r2, 1 add r0, sp, 0x28 adds r1, r4, 0 bl sub_8002BB8 ldr r0, [sp, 0x28] ldr r1, [sp, 0x2C] str r0, [sp, 0x38] str r1, [sp, 0x3C] movs r2, 0 mov r10, r2 add r3, sp, 0x40 mov r9, r3 add r4, sp, 0x30 mov r8, r4 b _080AAC42 .align 2, 0 _080AAC20: .4byte 0x00000807 _080AAC24: cmp r6, 0x1 bne _080AAC3E ldr r0, [sp, 0x38] str r0, [sp, 0x30] mov r6, r8 str r7, [r6, 0x4] adds r0, r5, 0 mov r1, r8 bl sub_80AA074 adds r6, r0, 0 cmp r6, 0x2 beq _080AAC78 _080AAC3E: movs r0, 0x1 add r10, r0 _080AAC42: ldr r1, [sp, 0x7C] cmp r10, r1 bge _080AAC74 add r4, sp, 0x38 adds r0, r5, 0 adds r1, r4, 0 bl sub_80AA074 adds r6, r0, 0 cmp r6, 0x2 beq _080AAC78 cmp r6, 0x1 bne _080AAC3E movs r7, 0 str r7, [sp, 0x40] ldr r0, [r4, 0x4] mov r2, r9 str r0, [r2, 0x4] adds r0, r5, 0 mov r1, r9 bl sub_80AA074 adds r6, r0, 0 cmp r6, 0x2 bne _080AAC24 _080AAC74: cmp r6, 0x2 bne _080AAC7E _080AAC78: movs r3, 0x1 negs r3, r3 b _080AAD6C _080AAC7E: adds r0, r5, 0 movs r1, 0x1 bl sub_80AAF68 b _080AAEC0 _080AAC88: movs r4, 0xB2 lsls r4, 1 adds r1, r5, r4 movs r0, 0 str r0, [r1] ldr r6, _080AAC98 str r6, [sp, 0x78] b _080AAD6E .align 2, 0 _080AAC98: .4byte 0x00000807 _080AAC9C: movs r0, 0x1 negs r0, r0 cmp r4, r0 beq _080AAD60 movs r0, 0xB2 lsls r0, 1 adds r1, r5, r0 movs r0, 0x4 str r0, [r1] cmp r3, 0x4 beq _080AACCE cmp r3, 0x4 bhi _080AACBC cmp r3, 0x3 beq _080AACC2 b _080AACE6 _080AACBC: cmp r3, 0x5 beq _080AACDA b _080AACE6 _080AACC2: movs r1, 0x90 lsls r1, 4 str r1, [sp, 0x78] movs r2, 0x1 mov r9, r2 b _080AACF6 _080AACCE: movs r3, 0x80 lsls r3, 4 str r3, [sp, 0x78] movs r6, 0x2 mov r9, r6 b _080AACF6 _080AACDA: movs r0, 0xA0 lsls r0, 4 str r0, [sp, 0x78] movs r1, 0x4 mov r9, r1 b _080AACF6 _080AACE6: movs r2, 0xB2 lsls r2, 1 adds r1, r5, r2 movs r0, 0 str r0, [r1] ldr r3, _080AAD5C str r3, [sp, 0x78] mov r9, r0 _080AACF6: movs r2, 0x80 lsls r2, 1 add r0, sp, 0x48 adds r1, r4, 0 bl sub_8002BB8 ldr r0, [sp, 0x48] ldr r1, [sp, 0x4C] str r0, [sp, 0x50] str r1, [sp, 0x54] movs r6, 0 cmp r6, r9 bge _080AAD52 add r4, sp, 0x50 mov r8, r4 add r7, sp, 0x58 _080AAD16: adds r0, r5, 0 mov r1, r8 bl sub_80A9F94 cmp r0, 0 beq _080AAD4C movs r4, 0 str r4, [sp, 0x58] mov r1, r8 ldr r0, [r1, 0x4] str r0, [r7, 0x4] adds r0, r5, 0 adds r1, r7, 0 bl sub_80A9F94 cmp r0, 0 beq _080AAD4C ldr r0, [sp, 0x50] str r0, [sp, 0x60] add r1, sp, 0x60 str r4, [r1, 0x4] adds r0, r5, 0 bl sub_80A9F94 cmp r0, 0 beq _080AAD4C mov r9, r4 _080AAD4C: adds r6, 0x1 cmp r6, r9 blt _080AAD16 _080AAD52: adds r0, r5, 0 mov r1, r9 bl sub_80AAF68 b _080AAEC0 .align 2, 0 _080AAD5C: .4byte 0x00000807 _080AAD60: movs r2, 0xB2 lsls r2, 1 adds r1, r5, r2 movs r0, 0 str r0, [r1] ldr r3, _080AAD78 _080AAD6C: str r3, [sp, 0x78] _080AAD6E: adds r0, r5, 0 movs r1, 0 bl sub_80AAF68 b _080AAEC0 .align 2, 0 _080AAD78: .4byte 0x00000807 _080AAD7C: movs r6, 0x8E lsls r6, 1 adds r0, r5, r6 ldr r0, [r0] movs r1, 0x80 lsls r1, 5 ands r0, r1 cmp r0, 0 beq _080AAD9C ldr r0, _080AAD98 ldr r0, [r0] adds r0, 0x28 strb r4, [r0] b _080AADA6 .align 2, 0 _080AAD98: .4byte gUnknown_3001B80 _080AAD9C: ldr r0, _080AADF0 ldr r0, [r0] adds r0, 0x28 movs r1, 0xFF strb r1, [r0] _080AADA6: movs r1, 0xB2 lsls r1, 1 adds r0, r5, r1 movs r1, 0 str r1, [r0] movs r2, 0x80 lsls r2, 4 str r2, [sp, 0x78] movs r3, 0xA1 lsls r3, 1 adds r1, r5, r3 movs r0, 0x4 strb r0, [r1] movs r6, 0x1 negs r6, r6 cmp r4, r6 bne _080AADCA b _080AAEC0 _080AADCA: movs r2, 0x80 lsls r2, 1 add r0, sp, 0x68 adds r1, r4, 0 bl sub_8002BB8 ldr r0, [sp, 0x68] ldr r1, [sp, 0x6C] str r0, [sp, 0x70] str r1, [sp, 0x74] add r1, sp, 0x70 adds r0, r5, 0 bl sub_80AA074 cmp r0, 0x2 bne _080AAEC0 str r6, [sp, 0x78] b _080AAEC0 .align 2, 0 _080AADF0: .4byte gUnknown_3001B80 _080AADF4: movs r4, 0xA1 lsls r4, 1 adds r0, r5, r4 movs r1, 0 ldrsb r1, [r0, r1] adds r0, r5, 0 bl sub_80AA3F8 b _080AAEC0 _080AAE06: movs r6, 0xA1 lsls r6, 1 adds r0, r5, r6 movs r1, 0 ldrsb r1, [r0, r1] adds r0, r5, 0 bl sub_80AA690 lsls r0, 24 cmp r0, 0 bne _080AAEC0 movs r0, 0 mov r1, sp movs r2, 0x9 bl sub_809D710 adds r0, r5, 0 movs r1, 0 mov r2, sp bl sub_80A8940 b _080AAEC0 _080AAE32: add r6, sp, 0xC movs r1, 0xA1 lsls r1, 1 adds r0, r5, r1 movs r2, 0 ldrsb r2, [r0, r2] adds r0, r5, 0 adds r1, r6, 0 bl sub_80AA8BC lsls r0, 24 cmp r0, 0 beq _080AAE84 add r4, sp, 0x10 movs r0, 0 adds r1, r4, 0 movs r2, 0x6 bl sub_809D710 movs r2, 0 ldrsh r0, [r6, r2] adds r1, r5, 0 adds r1, 0x40 adds r2, r4, 0 bl sub_80A88D8 adds r0, r5, 0 movs r1, 0 movs r2, 0 bl sub_80A8940 movs r3, 0 ldrsh r0, [r6, r3] bl sub_80A8E9C adds r2, r0, 0 movs r0, 0x7 movs r1, 0 bl sub_809B1C0 b _080AAE8E _080AAE84: movs r0, 0x7 movs r1, 0 movs r2, 0 bl sub_809B1C0 _080AAE8E: movs r4, 0x90 lsls r4, 1 adds r0, r5, r4 movs r1, 0x5 bl sub_809CD8C b _080AAEC0 _080AAE9C: add r4, sp, 0x1C ldr r2, _080AAEB4 movs r0, 0 adds r1, r4, 0 bl sub_809D710 adds r0, r5, 0 movs r1, 0 adds r2, r4, 0 bl sub_80A8940 b _080AAEC0 .align 2, 0 _080AAEB4: .4byte 0x00000195 _080AAEB8: adds r0, r5, 0 movs r1, 0 bl sub_80AAF68 _080AAEC0: movs r0, 0x1 negs r0, r0 ldr r6, [sp, 0x78] cmp r6, r0 beq _080AAF04 movs r0, 0xB4 lsls r0, 1 adds r2, r5, r0 movs r1, 0 ldrsh r0, [r2, r1] cmp r6, r0 beq _080AAF04 movs r3, 0xAE lsls r3, 1 adds r1, r5, r3 movs r0, 0 strb r0, [r1] movs r4, 0xB8 lsls r4, 1 adds r0, r5, r4 strh r6, [r2] movs r1, 0xA1 lsls r1, 1 adds r3, r5, r1 ldrb r1, [r3] subs r4, 0x13 adds r2, r5, r4 strb r1, [r2] movs r2, 0 ldrsb r2, [r3, r2] ldr r1, [sp, 0x78] bl sub_80A6EFC b _080AAF54 _080AAF04: movs r6, 0xAE lsls r6, 1 adds r2, r5, r6 ldrb r0, [r2] cmp r0, 0 bne _080AAF2A ldr r0, _080AAF64 adds r1, r5, r0 movs r3, 0xA1 lsls r3, 1 adds r0, r5, r3 ldrb r1, [r1] lsls r1, 24 asrs r1, 24 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r1, r0 beq _080AAF54 _080AAF2A: movs r0, 0 strb r0, [r2] movs r4, 0xB8 lsls r4, 1 adds r0, r5, r4 movs r6, 0xB4 lsls r6, 1 adds r1, r5, r6 movs r2, 0 ldrsh r1, [r1, r2] movs r3, 0xA1 lsls r3, 1 adds r4, r5, r3 ldrb r2, [r4] subs r6, 0xB adds r3, r5, r6 strb r2, [r3] movs r2, 0 ldrsb r2, [r4, r2] bl sub_80A6EFC _080AAF54: add sp, 0x80 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080AAF64: .4byte 0x0000015d thumb_func_end sub_80AAAE8 thumb_func_start sub_80AAF68 sub_80AAF68: push {r4,lr} adds r4, r0, 0 movs r1, 0x8E lsls r1, 1 adds r0, r4, r1 ldr r0, [r0] movs r1, 0x80 lsls r1, 7 ands r0, r1 cmp r0, 0 beq _080AB002 movs r2, 0 ldrsh r0, [r4, r2] movs r1, 0x1 bl sub_80A93F0 lsls r0, 24 cmp r0, 0 beq _080AAFD0 movs r1, 0xE4 lsls r1, 1 adds r0, r4, r1 movs r2, 0 ldrsh r1, [r0, r2] cmp r1, 0 bne _080AAFA6 movs r0, 0xB5 lsls r0, 1 adds r1, r4, r0 adds r0, 0x4C b _080AAFB4 _080AAFA6: movs r0, 0xDB lsls r0, 1 cmp r1, r0 beq _080AAFC2 subs r0, 0x4C adds r1, r4, r0 adds r0, 0x56 _080AAFB4: strh r0, [r1] movs r2, 0xB6 lsls r2, 1 adds r1, r4, r2 movs r0, 0x1 negs r0, r0 str r0, [r1] _080AAFC2: movs r1, 0 ldrsh r0, [r4, r1] movs r1, 0x80 lsls r1, 17 bl sub_80A8750 b _080AB002 _080AAFD0: movs r2, 0xE4 lsls r2, 1 adds r0, r4, r2 movs r2, 0 ldrsh r1, [r0, r2] movs r0, 0xDB lsls r0, 1 cmp r1, r0 bne _080AAFF6 subs r0, 0x4C adds r1, r4, r0 adds r0, 0x56 strh r0, [r1] movs r2, 0xB6 lsls r2, 1 adds r1, r4, r2 movs r0, 0x1 negs r0, r0 str r0, [r1] _080AAFF6: movs r1, 0 ldrsh r0, [r4, r1] movs r1, 0x80 lsls r1, 17 bl sub_80A86C8 _080AB002: pop {r4} pop {r0} bx r0 thumb_func_end sub_80AAF68 thumb_func_start sub_80AB008 sub_80AB008: movs r1, 0 ldrsh r0, [r0, r1] bx lr thumb_func_end sub_80AB008 thumb_func_start sub_80AB010 sub_80AB010: ldr r2, [r0, 0xC] ldr r3, [r0, 0x10] str r2, [r1] str r3, [r1, 0x4] bx lr thumb_func_end sub_80AB010 thumb_func_start sub_80AB01C sub_80AB01C: push {r4,lr} adds r3, r0, 0 adds r4, r1, 0 cmp r4, 0 beq _080AB05C movs r0, 0xA2 lsls r0, 1 adds r2, r3, r0 ldr r1, [r4] ldr r0, [r3, 0x14] subs r0, r1, r0 str r0, [r2] movs r0, 0xA6 lsls r0, 1 adds r2, r3, r0 ldr r0, [r3, 0x14] adds r1, r0 str r1, [r2] movs r0, 0xA4 lsls r0, 1 adds r2, r3, r0 ldr r1, [r4, 0x4] ldr r0, [r3, 0x18] subs r0, r1, r0 str r0, [r2] movs r0, 0xA8 lsls r0, 1 adds r2, r3, r0 ldr r0, [r3, 0x18] adds r1, r0 str r1, [r2] b _080AB0C2 _080AB05C: movs r0, 0xA2 lsls r0, 1 adds r2, r3, r0 ldr r0, [r3, 0x20] ldr r1, [r3, 0x14] subs r0, r1 str r0, [r2] movs r0, 0xA6 lsls r0, 1 adds r2, r3, r0 ldr r0, [r3, 0x20] ldr r1, [r3, 0x14] adds r0, r1 str r0, [r2] movs r0, 0xA4 lsls r0, 1 adds r2, r3, r0 ldr r0, [r3, 0x24] ldr r1, [r3, 0x18] subs r0, r1 str r0, [r2] movs r0, 0xA8 lsls r0, 1 adds r2, r3, r0 ldr r0, [r3, 0x24] ldr r1, [r3, 0x18] adds r0, r1 str r0, [r2] movs r2, 0xAA lsls r2, 1 adds r1, r3, r2 adds r2, 0x4 adds r0, r3, r2 str r4, [r0] str r4, [r1] movs r0, 0xA1 lsls r0, 1 adds r2, r3, r0 movs r1, 0 ldrsb r1, [r2, r1] movs r0, 0x1C ldrsb r0, [r3, r0] cmp r1, r0 beq _080AB0BE movs r0, 0xAE lsls r0, 1 adds r1, r3, r0 movs r0, 0x1 strb r0, [r1] _080AB0BE: ldrb r0, [r3, 0x1C] strb r0, [r2] _080AB0C2: pop {r4} pop {r0} bx r0 thumb_func_end sub_80AB01C thumb_func_start sub_80AB0C8 sub_80AB0C8: push {r4,lr} ldr r3, [r1] ldr r4, [r1, 0x4] str r3, [r0, 0x28] str r4, [r0, 0x2C] ldr r1, [r2] ldr r2, [r2, 0x4] str r1, [r0, 0x30] str r2, [r0, 0x34] pop {r4} pop {r0} bx r0 thumb_func_end sub_80AB0C8 thumb_func_start sub_80AB0E0 sub_80AB0E0: adds r3, r0, 0 movs r2, 0xA2 lsls r2, 1 adds r0, r3, r2 ldr r0, [r0] ldr r2, [r3, 0x14] adds r0, r2 str r0, [r1] movs r2, 0xA4 lsls r2, 1 adds r0, r3, r2 ldr r0, [r0] ldr r2, [r3, 0x18] adds r0, r2 str r0, [r1, 0x4] bx lr thumb_func_end sub_80AB0E0 thumb_func_start sub_80AB100 sub_80AB100: push {lr} bl sub_80A9F20 pop {r1} bx r1 thumb_func_end sub_80AB100 thumb_func_start sub_80AB10C sub_80AB10C: push {r4,lr} adds r3, r0, 0 movs r4, 0xAA lsls r4, 1 adds r0, r3, r4 ldr r0, [r0] str r0, [r1] movs r1, 0xAC lsls r1, 1 adds r0, r3, r1 ldr r0, [r0] str r0, [r2] pop {r4} pop {r0} bx r0 thumb_func_end sub_80AB10C thumb_func_start sub_80AB12C sub_80AB12C: movs r2, 0xAA lsls r2, 1 adds r0, r2 str r1, [r0] bx lr thumb_func_end sub_80AB12C thumb_func_start sub_80AB138 sub_80AB138: movs r2, 0xA1 lsls r2, 1 adds r0, r2 ldrb r0, [r0] strb r0, [r1] bx lr thumb_func_end sub_80AB138 thumb_func_start sub_80AB144 sub_80AB144: push {lr} adds r3, r0, 0 lsls r1, 24 asrs r1, 24 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _080AB17C movs r0, 0xA1 lsls r0, 1 adds r2, r3, r0 lsls r0, r1, 24 lsrs r0, 24 strb r0, [r2] ldr r2, _080AB180 adds r1, r3, r2 ldrb r1, [r1] lsls r1, 24 asrs r1, 24 lsls r0, 24 asrs r0, 24 cmp r1, r0 beq _080AB17C movs r0, 0xAE lsls r0, 1 adds r1, r3, r0 movs r0, 0x1 strb r0, [r1] _080AB17C: pop {r0} bx r0 .align 2, 0 _080AB180: .4byte 0x0000015d thumb_func_end sub_80AB144 thumb_func_start sub_80AB184 sub_80AB184: push {lr} lsls r1, 16 lsrs r1, 16 bl sub_80A9750 pop {r0} bx r0 thumb_func_end sub_80AB184 thumb_func_start sub_80AB194 sub_80AB194: push {lr} mov r12, r0 lsls r1, 16 asrs r1, 16 adds r3, r1, 0 cmp r1, 0 bne _080AB1A8 movs r0, 0xE0 lsls r0, 1 adds r3, r0, 0 _080AB1A8: movs r0, 0xB5 lsls r0, 1 add r0, r12 strh r3, [r0] movs r0, 0xB6 lsls r0, 1 add r0, r12 str r2, [r0] pop {r0} bx r0 thumb_func_end sub_80AB194 thumb_func_start nullsub_211 nullsub_211: bx lr thumb_func_end nullsub_211 thumb_func_start sub_80AB1C0 sub_80AB1C0: push {lr} adds r1, r0, 0 movs r2, 0xAE lsls r2, 1 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 bne _080AB1DE adds r2, 0x14 adds r0, r1, r2 bl sub_80A66F8 lsls r0, 24 lsrs r0, 24 b _080AB1E0 _080AB1DE: movs r0, 0x1 _080AB1E0: pop {r1} bx r1 thumb_func_end sub_80AB1C0 thumb_func_start sub_80AB1E4 sub_80AB1E4: push {lr} adds r1, r0, 0 movs r2, 0xB5 lsls r2, 1 adds r0, r1, r2 movs r2, 0 ldrsh r0, [r0, r2] cmp r0, 0 bne _080AB206 movs r2, 0xB8 lsls r2, 1 adds r0, r1, r2 bl sub_80A671C lsls r0, 24 lsrs r0, 24 b _080AB208 _080AB206: movs r0, 0x1 _080AB208: pop {r1} bx r1 thumb_func_end sub_80AB1E4 thumb_func_start sub_80AB20C sub_80AB20C: movs r2, 0x8E lsls r2, 1 adds r0, r2 ldr r0, [r0] str r0, [r1] bx lr thumb_func_end sub_80AB20C thumb_func_start sub_80AB218 sub_80AB218: push {lr} movs r2, 0 ldrsh r0, [r0, r2] bl sub_80A86C8 pop {r0} bx r0 thumb_func_end sub_80AB218 thumb_func_start sub_80AB228 sub_80AB228: push {lr} movs r2, 0 ldrsh r0, [r0, r2] bl sub_80A8750 pop {r0} bx r0 thumb_func_end sub_80AB228 thumb_func_start sub_80AB238 sub_80AB238: push {lr} movs r2, 0xB8 lsls r2, 1 adds r0, r2 bl sub_80A6EC8 pop {r0} bx r0 thumb_func_end sub_80AB238 thumb_func_start sub_80AB248 sub_80AB248: push {lr} bl sub_80A9F94 pop {r1} bx r1 thumb_func_end sub_80AB248 thumb_func_start sub_80AB254 sub_80AB254: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x3C ldr r0, _080AB29C ldr r5, [r0] movs r0, 0 mov r9, r0 _080AB266: movs r2, 0x2 ldrsh r1, [r5, r2] movs r3, 0x1 negs r3, r3 mov r8, r3 adds r0, r3, 0 cmp r1, r0 bne _080AB278 b _080AB47C _080AB278: adds r4, r5, 0 adds r4, 0x38 ldr r1, _080AB2A0 adds r0, r4, 0 bl sub_809DA70 lsls r0, 16 asrs r3, r0, 16 cmp r3, 0 beq _080AB2A4 cmp r3, 0x4 beq _080AB292 b _080AB44C _080AB292: mov r0, r9 bl sub_80A8684 b _080AB47C .align 2, 0 _080AB29C: .4byte gUnknown_3001B84 _080AB2A0: .4byte gUnknown_8118280 _080AB2A4: movs r0, 0x8E lsls r0, 1 adds r2, r5, r0 ldr r1, [r2] movs r0, 0x80 lsls r0, 4 ands r0, r1 cmp r0, 0 bne _080AB2B8 b _080AB42E _080AB2B8: str r3, [sp, 0xC] add r0, sp, 0x8 mov r1, r8 strb r1, [r0] str r3, [sp, 0x10] movs r3, 0x90 lsls r3, 1 adds r0, r5, r3 add r1, sp, 0xC add r3, sp, 0x10 add r4, sp, 0x14 str r4, [sp] ldr r2, [r2] str r2, [sp, 0x4] add r2, sp, 0x8 bl sub_809CDC8 subs r0, 0x1 mov r8, r4 cmp r0, 0x7 bls _080AB2E4 b _080AB44C _080AB2E4: lsls r0, 2 ldr r1, _080AB2F0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080AB2F0: .4byte _080AB2F4 .align 2, 0 _080AB2F4: .4byte _080AB314 .4byte _080AB314 .4byte _080AB326 .4byte _080AB44C .4byte _080AB314 .4byte _080AB44C .4byte _080AB44C .4byte _080AB314 _080AB314: ldr r1, [sp, 0xC] add r0, sp, 0x8 movs r2, 0 ldrsb r2, [r0, r2] ldr r3, [sp, 0x10] adds r0, r5, 0 bl sub_80AAAE8 b _080AB44C _080AB326: add r4, sp, 0x1C adds r0, r4, 0 bl sub_809D248 ldr r1, [sp, 0x1C] ldr r0, [sp, 0x14] adds r6, r1, r0 ldr r1, [r4, 0x4] mov r2, r8 ldr r0, [r2, 0x4] adds r7, r1, r0 movs r3, 0xA2 lsls r3, 1 adds r0, r5, r3 ldr r1, [r0] ldr r0, [r5, 0x14] adds r0, r1, r0 cmp r0, 0 bge _080AB34E adds r0, 0xFF _080AB34E: asrs r0, 8 subs r0, r6, r0 str r0, [sp, 0x24] movs r1, 0xA4 lsls r1, 1 adds r0, r5, r1 ldr r1, [r0] ldr r0, [r5, 0x18] adds r0, r1, r0 cmp r0, 0 bge _080AB366 adds r0, 0xFF _080AB366: asrs r0, 8 subs r0, r7, r0 add r1, sp, 0x24 str r0, [r1, 0x4] adds r0, r6, 0 subs r0, 0x10 lsls r0, 8 str r0, [sp, 0x2C] adds r0, r6, 0 adds r0, 0x10 lsls r0, 8 str r0, [sp, 0x34] subs r0, r7, 0x4 lsls r0, 8 add r2, sp, 0x2C str r0, [r2, 0x4] adds r0, r7, 0 adds r0, 0x1C lsls r0, 8 add r3, sp, 0x34 str r0, [r3, 0x4] ldr r0, [sp, 0xC] adds r4, r1, 0 cmp r0, 0xC bne _080AB3C4 adds r0, r5, 0 movs r1, 0xC bl sub_80AA180 cmp r0, 0 bne _080AB44C ldr r0, [sp, 0x24] adds r0, 0x10 cmp r0, 0x20 bhi _080AB44C movs r0, 0x1C negs r0, r0 ldr r1, [r4, 0x4] cmp r1, r0 blt _080AB44C cmp r1, 0x4 bgt _080AB44C movs r2, 0x1 negs r2, r2 adds r0, r5, 0 movs r1, 0x13 b _080AB426 _080AB3C4: ldr r0, [sp, 0x24] adds r0, 0x10 cmp r0, 0x20 bhi _080AB3DA movs r0, 0x1C negs r0, r0 ldr r1, [r4, 0x4] cmp r1, r0 blt _080AB3DA cmp r1, 0x4 ble _080AB44C _080AB3DA: adds r0, r4, 0 bl sub_8002C60 add r1, sp, 0x8 strb r0, [r1] lsls r0, 24 movs r1, 0xFF lsls r1, 24 cmp r0, r1 beq _080AB44C ldr r0, [sp, 0xC] cmp r0, 0x11 beq _080AB410 cmp r0, 0x11 bhi _080AB3FE cmp r0, 0x10 beq _080AB404 b _080AB44C _080AB3FE: cmp r0, 0x12 beq _080AB41C b _080AB44C _080AB404: add r0, sp, 0x8 movs r2, 0 ldrsb r2, [r0, r2] adds r0, r5, 0 movs r1, 0x6 b _080AB426 _080AB410: add r0, sp, 0x8 movs r2, 0 ldrsb r2, [r0, r2] adds r0, r5, 0 movs r1, 0x7 b _080AB426 _080AB41C: add r0, sp, 0x8 movs r2, 0 ldrsb r2, [r0, r2] adds r0, r5, 0 movs r1, 0x8 _080AB426: movs r3, 0 bl sub_80AAAE8 b _080AB44C _080AB42E: movs r0, 0x80 lsls r0, 5 ands r1, r0 cmp r1, 0 beq _080AB440 adds r0, r5, 0 bl sub_80AB5D4 b _080AB44C _080AB440: ldr r3, _080AB4C4 adds r0, r4, 0 movs r1, 0 movs r2, 0x1 bl sub_809D8C0 _080AB44C: movs r2, 0xAE lsls r2, 1 adds r1, r5, r2 ldrb r0, [r1] cmp r0, 0 beq _080AB47C movs r0, 0 strb r0, [r1] movs r3, 0xB8 lsls r3, 1 adds r0, r5, r3 adds r2, 0xC adds r1, r5, r2 movs r3, 0 ldrsh r1, [r1, r3] subs r2, 0x26 adds r4, r5, r2 ldrb r2, [r4] ldr r3, _080AB4C8 strb r2, [r3, r5] movs r2, 0 ldrsb r2, [r4, r2] bl sub_80A6EFC _080AB47C: mov r0, r9 adds r0, 0x1 lsls r0, 16 asrs r0, 16 mov r9, r0 movs r0, 0xF8 lsls r0, 1 adds r5, r0 mov r1, r9 cmp r1, 0x17 bgt _080AB494 b _080AB266 _080AB494: ldr r0, _080AB4CC ldr r6, [r0] ldr r0, _080AB4D0 ldr r5, [r0] movs r0, 0 str r0, [r6] str r0, [r6, 0x4] movs r2, 0x2 ldrsh r1, [r5, r2] subs r0, 0x1 cmp r1, r0 beq _080AB4BE movs r3, 0x8E lsls r3, 1 adds r0, r5, r3 ldr r1, [r0] movs r3, 0x80 lsls r3, 6 ands r3, r1 cmp r3, 0 beq _080AB4D4 _080AB4BE: bl sub_80AB5A4 b _080AB594 .align 2, 0 _080AB4C4: .4byte gUnknown_811828C _080AB4C8: .4byte 0x0000015d _080AB4CC: .4byte gUnknown_3001B80 _080AB4D0: .4byte gUnknown_3001B84 _080AB4D4: movs r0, 0x80 lsls r0, 5 ands r1, r0 cmp r1, 0 beq _080AB590 ldr r7, [r6, 0x24] cmp r7, 0 bge _080AB51E adds r2, r6, 0 adds r2, 0x2C str r3, [r6, 0x24] str r3, [r6, 0x2C] movs r1, 0xA2 lsls r1, 1 adds r0, r5, r1 ldr r0, [r0] ldr r1, [r5, 0x14] adds r0, r1 str r0, [r2, 0x4] movs r3, 0xA4 lsls r3, 1 adds r0, r5, r3 ldr r0, [r0] ldr r1, [r5, 0x18] adds r0, r1 str r0, [r2, 0x8] adds r0, r6, 0 movs r2, 0 movs r1, 0x2 _080AB50E: str r2, [r0, 0x8] str r2, [r0] str r2, [r0, 0x4] subs r1, 0x1 adds r0, 0xC cmp r1, 0 bge _080AB50E b _080AB594 _080AB51E: adds r2, r7, 0x1 adds r0, r2, 0 cmp r2, 0 bge _080AB52A adds r0, r7, 0 adds r0, 0x40 _080AB52A: asrs r1, r0, 6 lsls r0, r1, 6 subs r1, r2, r0 str r1, [r6, 0x24] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, 0x2C adds r0, r6 mov r8, r0 movs r1, 0xA2 lsls r1, 1 adds r0, r5, r1 ldr r2, [r0] ldr r0, [r5, 0x14] adds r2, r0 mov r3, r8 str r2, [r3, 0x4] adds r1, 0x4 adds r0, r5, r1 ldr r1, [r0] ldr r0, [r5, 0x18] adds r1, r0 str r1, [r3, 0x8] lsls r0, r7, 1 adds r0, r7 lsls r0, 2 adds r0, 0x2C adds r0, r6, r0 ldr r3, [r0, 0x4] ldr r0, [r0, 0x8] subs r0, r1, r0 subs r2, r3 cmp r2, 0 bge _080AB572 negs r2, r2 _080AB572: adds r4, r2, 0 cmp r0, 0 bge _080AB57A negs r0, r0 _080AB57A: cmp r0, r4 bge _080AB580 adds r0, r2, 0 _080AB580: mov r2, r8 str r0, [r2] cmp r0, 0 bgt _080AB58C str r7, [r6, 0x24] b _080AB594 _080AB58C: str r0, [r6] b _080AB594 _080AB590: bl sub_80AB5A4 _080AB594: add sp, 0x3C pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80AB254 thumb_func_start sub_80AB5A4 sub_80AB5A4: push {lr} ldr r3, _080AB5D0 ldr r0, [r3] movs r2, 0x1 negs r2, r2 str r2, [r0, 0x24] adds r0, 0x28 movs r1, 0xFF strb r1, [r0] ldr r3, [r3] movs r1, 0 movs r0, 0x2 _080AB5BC: str r2, [r3, 0x8] str r1, [r3] str r1, [r3, 0x4] subs r0, 0x1 adds r3, 0xC cmp r0, 0 bge _080AB5BC pop {r0} bx r0 .align 2, 0 _080AB5D0: .4byte gUnknown_3001B80 thumb_func_end sub_80AB5A4 thumb_func_start sub_80AB5D4 sub_80AB5D4: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x2C mov r9, r0 ldr r4, _080AB6BC movs r2, 0x9E lsls r2, 1 add r2, r9 movs r0, 0 ldrsh r1, [r2, r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r3, [r4] adds r0, r3 mov r8, r0 adds r0, r1, 0 adds r5, r4, 0 cmp r0, 0 bne _080AB604 b _080AB9E6 _080AB604: movs r1, 0xAF lsls r1, 1 add r1, r9 movs r0, 0xC0 lsls r0, 2 strh r0, [r1] movs r1, 0xB0 lsls r1, 1 add r1, r9 movs r0, 0x1 strh r0, [r1] movs r0, 0x8E lsls r0, 1 add r0, r9 ldr r2, [r0] movs r0, 0x80 lsls r0, 6 ands r2, r0 cmp r2, 0 beq _080AB6D4 movs r2, 0xA1 lsls r2, 1 add r2, r9 movs r0, 0 ldrsb r0, [r2, r0] cmp r0, 0x4 bne _080AB64C movs r0, 0xB4 lsls r0, 1 add r0, r9 movs r3, 0 ldrsh r1, [r0, r3] movs r0, 0x80 lsls r0, 4 cmp r1, r0 beq _080AB670 _080AB64C: movs r1, 0xB2 lsls r1, 1 add r1, r9 movs r0, 0 str r0, [r1] movs r1, 0xB4 lsls r1, 1 add r1, r9 movs r0, 0x80 lsls r0, 4 strh r0, [r1] movs r0, 0x4 strb r0, [r2] movs r1, 0xAE lsls r1, 1 add r1, r9 movs r0, 0x1 strb r0, [r1] _080AB670: ldr r0, [r5] adds r2, r0, 0 adds r2, 0x28 movs r1, 0 ldrsb r1, [r2, r1] movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _080AB69C movs r2, 0x80 lsls r2, 1 mov r0, sp bl sub_8002BB8 ldr r0, [sp] ldr r1, [sp, 0x4] str r0, [sp, 0x8] str r1, [sp, 0xC] add r1, sp, 0x8 mov r0, r9 bl sub_80A9F94 _080AB69C: mov r4, r8 ldr r0, [r4, 0x8] cmp r0, 0 blt _080AB6A6 b _080AB9E6 _080AB6A6: ldr r0, [r5] ldr r0, [r0, 0x24] cmp r0, 0 bge _080AB6B0 b _080AB9E6 _080AB6B0: str r0, [r4, 0x8] movs r0, 0 str r0, [r4] str r0, [r4, 0x4] b _080AB9E6 .align 2, 0 _080AB6BC: .4byte gUnknown_3001B80 _080AB6C0: ldr r5, [sp, 0x28] ldr r0, [r5, 0x4] adds r0, r7, r0 str r0, [r5, 0x4] b _080AB7E2 _080AB6CA: ldr r1, [sp, 0x28] ldr r0, [r1, 0x4] subs r0, r7 str r0, [r1, 0x4] b _080AB7E2 _080AB6D4: movs r0, 0xA2 lsls r0, 1 add r0, r9 ldr r1, [r0] mov r5, r9 ldr r0, [r5, 0x14] adds r0, r1, r0 str r0, [sp, 0x20] movs r0, 0xA4 lsls r0, 1 add r0, r9 ldr r1, [r0] ldr r0, [r5, 0x18] adds r0, r1, r0 str r0, [sp, 0x24] ldr r0, [sp, 0x20] ldr r1, [sp, 0x24] str r0, [sp, 0x10] str r1, [sp, 0x14] mov r1, r8 ldr r0, [r1, 0x8] cmp r0, 0 bge _080AB710 ldr r0, [r3, 0x24] cmp r0, 0 bge _080AB70A b _080AB9E6 _080AB70A: str r0, [r1, 0x8] str r2, [r1] str r2, [r1, 0x4] _080AB710: mov r2, r8 ldr r7, [r2] movs r3, 0x1 mov r10, r3 mov r5, sp adds r5, 0x10 str r5, [sp, 0x28] _080AB71E: mov r0, r8 ldr r1, [r0, 0x8] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, 0x2C ldr r2, _080AB754 ldr r1, [r2] adds r1, r0 mov r12, r1 ldr r6, [r1, 0x4] ldr r5, [sp, 0x10] subs r4, r6, r5 adds r2, r4, 0 ldr r1, [r1, 0x8] ldr r0, [sp, 0x14] subs r3, r1, r0 cmp r4, 0 ble _080AB75E cmp r2, r7 ble _080AB758 adds r0, r7, r5 str r0, [sp, 0x10] movs r4, 0 mov r10, r4 b _080AB75A .align 2, 0 _080AB754: .4byte gUnknown_3001B80 _080AB758: str r6, [sp, 0x10] _080AB75A: adds r1, r2, 0 b _080AB778 _080AB75E: cmp r4, 0 bge _080AB776 cmn r2, r7 bge _080AB770 subs r0, r5, r7 str r0, [sp, 0x10] movs r5, 0 mov r10, r5 b _080AB772 _080AB770: str r6, [sp, 0x10] _080AB772: negs r1, r2 b _080AB778 _080AB776: movs r1, 0 _080AB778: cmp r3, 0 ble _080AB78E cmp r3, r7 bgt _080AB6C0 mov r4, r12 ldr r0, [r4, 0x8] str r0, [sp, 0x14] cmp r3, r1 ble _080AB7A2 adds r1, r3, 0 b _080AB7A2 _080AB78E: cmp r3, 0 bge _080AB7A2 cmn r3, r7 blt _080AB6CA mov r5, r12 ldr r0, [r5, 0x8] str r0, [sp, 0x14] cmn r3, r1 bge _080AB7A2 negs r1, r3 _080AB7A2: mov r0, r10 cmp r0, 0 beq _080AB7E2 subs r7, r1 cmp r7, 0 ble _080AB7E2 ldr r1, _080AB7D4 ldr r0, [r1] mov r3, r8 ldr r2, [r3, 0x8] ldr r0, [r0, 0x24] cmp r2, r0 beq _080AB7D8 adds r1, r2, 0x1 adds r0, r1, 0 cmp r1, 0 bge _080AB7C8 adds r0, r2, 0 adds r0, 0x40 _080AB7C8: asrs r0, 6 lsls r0, 6 subs r0, r1, r0 mov r4, r8 str r0, [r4, 0x8] b _080AB7DC .align 2, 0 _080AB7D4: .4byte gUnknown_3001B80 _080AB7D8: movs r5, 0 mov r10, r5 _080AB7DC: mov r0, r10 cmp r0, 0 bne _080AB71E _080AB7E2: mov r1, r8 ldr r0, [r1, 0x8] bl sub_80ABA00 adds r6, r0, 0 ldr r0, _080AB860 ldr r7, [r0] movs r2, 0x9E lsls r2, 1 add r2, r9 mov r10, r2 movs r3, 0 ldrsh r2, [r2, r3] subs r1, r2, 0x1 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r1, r7, 0x4 adds r1, r0 ldr r0, _080AB864 lsls r2, 2 adds r2, r0 ldr r1, [r1] ldr r0, [r2] adds r1, r0 mov r12, r1 mov r4, r8 ldr r1, [r4, 0x8] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, 0x2C adds r0, r7, r0 ldr r3, [r0, 0x4] ldr r2, [sp, 0x10] ldr r1, [r0, 0x8] ldr r5, [sp, 0x28] ldr r0, [r5, 0x4] subs r1, r0 subs r3, r2 cmp r3, 0 bge _080AB838 negs r3, r3 _080AB838: adds r4, r3, 0 cmp r1, 0 bge _080AB840 negs r1, r1 _080AB840: cmp r1, r4 bge _080AB846 adds r1, r3, 0 _080AB846: adds r6, r1 mov r0, r8 str r6, [r0, 0x4] cmp r6, r12 bgt _080AB86C ldr r0, [r0] cmp r0, 0 ble _080AB8B2 ldr r1, _080AB868 adds r0, r1 mov r2, r8 b _080AB8B0 .align 2, 0 _080AB860: .4byte gUnknown_3001B80 _080AB864: .4byte gUnknown_8118050 _080AB868: .4byte 0xffffff00 _080AB86C: mov r3, r10 movs r4, 0 ldrsh r1, [r3, r4] lsls r0, r1, 1 adds r0, r1 lsls r0, 11 cmp r6, r0 bgt _080AB88E mov r5, r8 ldr r0, [r5] cmp r0, 0xFF bgt _080AB8B2 movs r1, 0x80 lsls r1, 1 adds r0, r1 str r0, [r5] b _080AB8B2 _080AB88E: subs r1, 0x1 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r7, r0 ldr r0, [r0] cmp r0, 0xFF bgt _080AB8A2 movs r0, 0x80 lsls r0, 1 _080AB8A2: mov r2, r8 ldr r1, [r2] cmp r1, r0 bge _080AB8B2 movs r3, 0x80 lsls r3, 1 adds r0, r1, r3 _080AB8B0: str r0, [r2] _080AB8B2: ldr r0, _080AB96C ldr r3, [r0] mov r4, r8 ldr r0, [r4, 0x8] subs r0, 0x40 ldr r2, [r3, 0x24] subs r1, r2, r0 adds r0, r1, 0 cmp r1, 0 bge _080AB8C8 adds r0, 0x3F _080AB8C8: asrs r0, 6 lsls r0, 6 subs r0, r1, r0 cmp r0, 0x3B ble _080AB8FC adds r1, r2, 0x5 adds r0, r1, 0 cmp r1, 0 bge _080AB8DE adds r0, r2, 0 adds r0, 0x44 _080AB8DE: asrs r0, 6 lsls r0, 6 subs r0, r1, r0 mov r5, r8 str r0, [r5, 0x8] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r0, r3, 0 adds r0, 0x30 adds r0, r1 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp, 0x10] str r1, [sp, 0x14] _080AB8FC: mov r0, r9 ldr r1, [sp, 0x28] bl sub_80A9F20 adds r6, r0, 0 cmp r6, 0 bne _080AB9E6 ldr r0, [sp, 0x10] ldr r1, [sp, 0x20] subs r0, r1 str r0, [sp, 0x18] ldr r2, [sp, 0x28] ldr r1, [r2, 0x4] ldr r3, [sp, 0x24] subs r1, r3 add r0, sp, 0x18 str r1, [r0, 0x4] movs r5, 0xA1 lsls r5, 1 add r5, r9 movs r4, 0 ldrsb r4, [r5, r4] bl sub_8002C60 adds r1, r0, 0 lsls r1, 24 asrs r1, 24 adds r0, r4, 0 bl sub_8002B04 strb r0, [r5] mov r4, r8 ldr r0, [r4] cmp r0, 0 ble _080AB970 movs r1, 0xB2 lsls r1, 1 add r1, r9 movs r0, 0x4 str r0, [r1] ldr r1, [r4] movs r0, 0x80 lsls r0, 2 movs r2, 0x80 lsls r2, 4 cmp r1, r0 ble _080AB95E movs r2, 0xA0 lsls r2, 4 _080AB95E: adds r4, r2, 0 mov r0, r9 movs r1, 0x1 bl sub_80AAF68 b _080AB982 .align 2, 0 _080AB96C: .4byte gUnknown_3001B80 _080AB970: ldr r4, _080AB9F8 movs r0, 0xB2 lsls r0, 1 add r0, r9 str r6, [r0] mov r0, r9 movs r1, 0 bl sub_80AAF68 _080AB982: movs r0, 0xAE lsls r0, 1 add r0, r9 ldrb r0, [r0] cmp r0, 0 bne _080AB9B6 movs r0, 0xB4 lsls r0, 1 add r0, r9 movs r5, 0 ldrsh r0, [r0, r5] cmp r4, r0 bne _080AB9B6 ldr r1, _080AB9FC add r1, r9 movs r0, 0xA1 lsls r0, 1 add r0, r9 ldrb r1, [r1] lsls r1, 24 asrs r1, 24 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r1, r0 beq _080AB9E6 _080AB9B6: movs r1, 0xAE lsls r1, 1 add r1, r9 movs r0, 0 strb r0, [r1] movs r0, 0xB8 lsls r0, 1 add r0, r9 movs r1, 0xB4 lsls r1, 1 add r1, r9 strh r4, [r1] movs r3, 0xA1 lsls r3, 1 add r3, r9 ldrb r1, [r3] ldr r2, _080AB9FC add r2, r9 strb r1, [r2] movs r2, 0 ldrsb r2, [r3, r2] adds r1, r4, 0 bl sub_80A6EFC _080AB9E6: add sp, 0x2C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080AB9F8: .4byte 0x00000807 _080AB9FC: .4byte 0x0000015d thumb_func_end sub_80AB5D4 thumb_func_start sub_80ABA00 sub_80ABA00: push {r4,r5,lr} adds r1, r0, 0 movs r4, 0 ldr r0, _080ABA34 ldr r2, [r0] ldr r3, [r2, 0x24] adds r5, r0, 0 cmp r3, r1 ble _080ABA38 adds r1, 0x1 cmp r1, r3 bge _080ABA72 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, 0x2C adds r2, r0, r2 subs r1, r3, r1 _080ABA24: ldr r0, [r2] adds r4, r0 adds r2, 0xC subs r1, 0x1 cmp r1, 0 bne _080ABA24 b _080ABA72 .align 2, 0 _080ABA34: .4byte gUnknown_3001B80 _080ABA38: cmp r3, r1 bge _080ABA72 adds r1, 0x1 cmp r1, 0x3F bgt _080ABA58 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, 0x2C adds r2, r0, r2 _080ABA4C: ldr r0, [r2] adds r4, r0 adds r2, 0xC adds r1, 0x1 cmp r1, 0x3F ble _080ABA4C _080ABA58: ldr r1, [r5] ldr r0, [r1, 0x24] cmp r0, 0 ble _080ABA72 adds r2, r1, 0 adds r2, 0x2C adds r1, r0, 0 _080ABA66: ldr r0, [r2] adds r4, r0 adds r2, 0xC subs r1, 0x1 cmp r1, 0 bne _080ABA66 _080ABA72: adds r0, r4, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80ABA00 thumb_func_start sub_80ABA7C sub_80ABA7C: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x8 ldr r0, _080ABB50 ldr r5, [r0] movs r0, 0 mov r8, r0 movs r1, 0xA2 lsls r1, 1 adds r4, r5, r1 movs r2, 0x1 negs r2, r2 mov r9, r2 _080ABA9A: movs r1, 0x2 ldrsh r0, [r5, r1] cmp r0, r9 beq _080ABB2C ldr r0, [r4] ldr r1, [r5, 0x14] adds r0, r1 str r0, [sp] ldr r0, [r4, 0x4] ldr r1, [r5, 0x18] adds r0, r1 str r0, [sp, 0x4] ldr r1, [r4, 0x10] ldr r0, [r4, 0x14] adds r7, r1, r0 ldr r0, [r4, 0x20] cmp r0, 0 ble _080ABADA subs r0, 0x1 str r0, [r4, 0x20] cmp r0, 0 bgt _080ABADA ldrh r0, [r4, 0x1C] subs r0, 0x1 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bhi _080ABADA ldrh r1, [r4, 0x1C] adds r0, r5, 0 bl sub_80A9750 _080ABADA: movs r2, 0xB8 lsls r2, 1 adds r6, r5, r2 adds r0, r6, 0 bl sub_80A66D4 lsls r0, 24 cmp r0, 0 beq _080ABAFE movs r0, 0 strb r0, [r4, 0x18] movs r0, 0x24 ldrsh r1, [r4, r0] movs r2, 0x19 ldrsb r2, [r4, r2] adds r0, r6, 0 bl sub_80A6EFC _080ABAFE: movs r1, 0x26 ldrsh r0, [r4, r1] cmp r0, 0 beq _080ABB1E adds r1, r0, 0 movs r2, 0xA1 lsls r2, 1 adds r0, r5, r2 movs r2, 0 ldrsb r2, [r0, r2] ldr r3, [r4, 0x28] adds r0, r6, 0 bl sub_80A74F0 movs r0, 0 strh r0, [r4, 0x26] _080ABB1E: movs r0, 0x8 ldrsh r1, [r5, r0] adds r0, r6, 0 mov r2, sp adds r3, r7, 0 bl sub_80A7524 _080ABB2C: mov r0, r8 adds r0, 0x1 lsls r0, 16 asrs r0, 16 mov r8, r0 movs r1, 0xF8 lsls r1, 1 adds r4, r1 adds r5, r1 cmp r0, 0x17 ble _080ABA9A add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080ABB50: .4byte gUnknown_3001B84 thumb_func_end sub_80ABA7C thumb_func_start sub_80ABB54 sub_80ABB54: push {r4,r5,lr} ldr r4, _080ABB90 movs r0, 0xE2 lsls r0, 5 movs r1, 0x6 bl MemoryAlloc str r0, [r4] adds r1, r0, 0 ldr r0, _080ABB94 adds r5, r0, 0 movs r4, 0xE2 lsls r4, 1 movs r2, 0x80 lsls r2, 9 adds r3, r2, 0 _080ABB74: ldrh r0, [r1, 0x6] orrs r0, r5 strh r0, [r1, 0x6] adds r0, r2, 0 adds r2, r3 asrs r0, 16 adds r1, r4 cmp r0, 0xF ble _080ABB74 bl sub_80ABB98 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080ABB90: .4byte gUnknown_3001B88 _080ABB94: .4byte 0x0000ffff thumb_func_end sub_80ABB54 thumb_func_start sub_80ABB98 sub_80ABB98: push {r4-r6,lr} ldr r0, _080ABBD0 ldr r4, [r0] movs r1, 0 movs r6, 0x1 negs r6, r6 movs r5, 0x80 lsls r5, 9 _080ABBA8: movs r2, 0x6 ldrsh r0, [r4, r2] cmp r0, r6 beq _080ABBB6 adds r0, r1, 0 bl sub_80AC168 _080ABBB6: adds r0, r5, 0 movs r1, 0x80 lsls r1, 9 adds r5, r1 asrs r1, r0, 16 movs r2, 0xE2 lsls r2, 1 adds r4, r2 cmp r1, 0xF ble _080ABBA8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080ABBD0: .4byte gUnknown_3001B88 thumb_func_end sub_80ABB98 thumb_func_start sub_80ABBD4 sub_80ABBD4: push {r4,lr} bl sub_80ABB98 ldr r4, _080ABBEC ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _080ABBEC: .4byte gUnknown_3001B88 thumb_func_end sub_80ABBD4 thumb_func_start sub_80ABBF0 sub_80ABBF0: push {r4-r7,lr} sub sp, 0x4 adds r4, r0, 0 lsls r4, 16 asrs r4, 16 lsls r1, 16 asrs r7, r1, 16 lsls r2, 24 asrs r6, r2, 24 ldr r1, _080ABC54 adds r0, r4, 0 bl sub_80A77D0 adds r5, r0, 0 ldr r1, _080ABC58 str r6, [sp] movs r0, 0 adds r2, r4, 0 adds r3, r7, 0 bl Log lsls r1, r7, 3 ldr r0, [r5, 0x4] adds r0, r1 lsls r1, r6, 2 adds r1, r6 lsls r1, 3 ldr r0, [r0, 0x4] adds r0, r1 ldr r5, [r0, 0xC] ldr r0, [r0, 0x8] cmp r0, 0 ble _080ABC4A adds r4, r0, 0 _080ABC34: movs r0, 0x1 negs r0, r0 adds r1, r5, 0 adds r2, r7, 0 adds r3, r6, 0 bl sub_80ABD88 subs r4, 0x1 adds r5, 0x18 cmp r4, 0 bne _080ABC34 _080ABC4A: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080ABC54: .4byte gUnknown_81183E4 _080ABC58: .4byte gUnknown_81183F0 thumb_func_end sub_80ABBF0 thumb_func_start sub_80ABC5C sub_80ABC5C: push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 16 asrs r7, r0, 16 lsls r1, 24 asrs r5, r1, 24 ldr r1, _080ABCC4 movs r0, 0 adds r2, r7, 0 bl Log movs r1, 0 ldr r0, _080ABCC8 ldr r4, [r0] movs r0, 0x1 negs r0, r0 mov r8, r0 movs r6, 0x80 lsls r6, 9 _080ABC84: movs r2, 0x6 ldrsh r0, [r4, r2] cmp r0, r8 beq _080ABCA6 movs r2, 0x8 ldrsh r0, [r4, r2] cmp r0, r7 bne _080ABCA6 cmp r5, 0 blt _080ABCA0 movs r0, 0xA ldrsb r0, [r4, r0] cmp r0, r5 bne _080ABCA6 _080ABCA0: adds r0, r1, 0 bl sub_80AC168 _080ABCA6: adds r0, r6, 0 movs r1, 0x80 lsls r1, 9 adds r6, r1 asrs r1, r0, 16 movs r2, 0xE2 lsls r2, 1 adds r4, r2 cmp r1, 0xF ble _080ABC84 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080ABCC4: .4byte gUnknown_8118414 _080ABCC8: .4byte gUnknown_3001B88 thumb_func_end sub_80ABC5C thumb_func_start sub_80ABCCC sub_80ABCCC: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 ldr r1, _080ABD40 movs r0, 0 bl Log movs r6, 0 ldr r0, _080ABD44 ldr r4, [r0] movs r0, 0x1 negs r0, r0 mov r8, r0 movs r1, 0x92 lsls r1, 1 adds r5, r4, r1 mov r7, sp _080ABCF0: movs r1, 0x6 ldrsh r0, [r4, r1] cmp r0, r8 beq _080ABD20 ldr r0, [r5] ldr r1, [r4, 0x14] adds r0, r1 str r0, [sp] ldr r0, [r5, 0x4] ldr r1, [r4, 0x18] adds r0, r1 str r0, [r7, 0x4] movs r1, 0xA2 lsls r1, 1 adds r0, r4, r1 mov r1, sp bl sub_80A675C lsls r0, 24 cmp r0, 0 bne _080ABD20 adds r0, r6, 0 bl sub_80AC168 _080ABD20: adds r0, r6, 0x1 lsls r0, 16 asrs r6, r0, 16 movs r0, 0xE2 lsls r0, 1 adds r5, r0 adds r4, r0 cmp r6, 0xF ble _080ABCF0 add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080ABD40: .4byte gUnknown_811842C _080ABD44: .4byte gUnknown_3001B88 thumb_func_end sub_80ABCCC thumb_func_start sub_80ABD48 sub_80ABD48: push {r4-r7,lr} lsls r0, 16 asrs r4, r0, 16 movs r3, 0 ldr r0, _080ABD6C ldr r1, [r0] movs r6, 0xE2 lsls r6, 1 movs r2, 0x80 lsls r2, 9 adds r5, r2, 0 _080ABD5E: movs r7, 0x6 ldrsh r0, [r1, r7] cmp r0, r4 bne _080ABD70 adds r0, r3, 0 b _080ABD80 .align 2, 0 _080ABD6C: .4byte gUnknown_3001B88 _080ABD70: adds r0, r2, 0 adds r2, r5 asrs r3, r0, 16 adds r1, r6 cmp r3, 0xF ble _080ABD5E movs r0, 0x1 negs r0, r0 _080ABD80: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80ABD48 thumb_func_start sub_80ABD88 sub_80ABD88: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 mov r8, r1 lsls r0, 16 asrs r7, r0, 16 lsls r2, 16 asrs r2, 16 mov r10, r2 lsls r3, 24 asrs r3, 24 mov r9, r3 ldrb r4, [r1] cmp r4, 0x1A bne _080ABDDA movs r0, 0 movs r1, 0x28 bl sub_8001658 cmp r0, 0x1 bgt _080ABDBC movs r4, 0x1B b _080ABDDA _080ABDBC: movs r0, 0 movs r1, 0x29 bl sub_8001658 cmp r0, 0 bne _080ABDD4 movs r0, 0 movs r1, 0x27 bl sub_8001658 adds r0, 0x1C b _080ABDD6 _080ABDD4: adds r0, 0x2B _080ABDD6: lsls r0, 16 asrs r4, r0, 16 _080ABDDA: lsls r1, r4, 2 ldr r0, _080ABE10 adds r6, r1, r0 cmp r7, 0 bge _080ABE40 cmp r4, 0xE bgt _080ABDF4 cmp r4, 0xD blt _080ABDF4 adds r0, r4, 0 bl sub_80ABD48 adds r7, r0, 0 _080ABDF4: cmp r7, 0 bge _080ABE40 movs r3, 0 ldr r0, _080ABE14 ldr r5, [r0] movs r0, 0x6 ldrsh r1, [r5, r0] movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _080ABE18 movs r7, 0 b _080ABE40 .align 2, 0 _080ABE10: .4byte gUnknown_811ED20 _080ABE14: .4byte gUnknown_3001B88 _080ABE18: adds r0, r3, 0x1 lsls r0, 16 asrs r3, r0, 16 movs r1, 0xE2 lsls r1, 1 adds r5, r1 cmp r3, 0xF bgt _080ABE36 movs r2, 0x6 ldrsh r1, [r5, r2] movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _080ABE18 adds r7, r3, 0 _080ABE36: cmp r7, 0 bge _080ABE40 movs r0, 0x1 negs r0, r0 b _080AC142 _080ABE40: ldr r1, _080ABEA8 lsls r0, r7, 3 subs r0, r7 lsls r0, 4 adds r0, r7 lsls r0, 2 ldr r1, [r1] adds r5, r1, r0 ldr r1, _080ABEAC mov r3, r8 ldrb r0, [r3] str r0, [sp] movs r2, 0 ldrsh r0, [r6, r2] str r0, [sp, 0x4] mov r3, r10 str r3, [sp, 0x8] mov r0, r9 str r0, [sp, 0xC] movs r0, 0 adds r2, r7, 0 adds r3, r4, 0 bl Log movs r2, 0 movs r3, 0x6 ldrsh r1, [r5, r3] movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _080ABE80 movs r2, 0x1 _080ABE80: str r2, [sp, 0x10] strh r7, [r5, 0x4] strh r4, [r5, 0x6] mov r0, r10 strh r0, [r5, 0x8] mov r1, r9 strb r1, [r5, 0xA] ldrh r0, [r6] subs r0, 0x1 lsls r0, 16 asrs r0, 16 cmp r0, 0xE bls _080ABE9C b _080ABF8C _080ABE9C: lsls r0, 2 ldr r1, _080ABEB0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080ABEA8: .4byte gUnknown_3001B88 _080ABEAC: .4byte gUnknown_8118448 _080ABEB0: .4byte _080ABEB4 .align 2, 0 _080ABEB4: .4byte _080ABEF0 .4byte _080ABF7C .4byte _080ABF46 .4byte _080ABF54 .4byte _080ABF54 .4byte _080ABF5E .4byte _080ABF68 .4byte _080ABF72 .4byte _080ABF3C .4byte _080ABEFA .4byte _080ABEF0 .4byte _080ABF06 .4byte _080ABF2C .4byte _080ABF1E .4byte _080ABF12 _080ABEF0: movs r2, 0x8E lsls r2, 1 adds r1, r5, r2 movs r0, 0 b _080ABF94 _080ABEFA: movs r3, 0x8E lsls r3, 1 adds r1, r5, r3 movs r0, 0x80 lsls r0, 10 b _080ABF94 _080ABF06: movs r0, 0x8E lsls r0, 1 adds r1, r5, r0 movs r0, 0x80 lsls r0, 11 b _080ABF94 _080ABF12: movs r2, 0x8E lsls r2, 1 adds r1, r5, r2 movs r0, 0x83 lsls r0, 18 b _080ABF94 _080ABF1E: movs r3, 0x8E lsls r3, 1 adds r1, r5, r3 ldr r0, _080ABF28 b _080ABF94 .align 2, 0 _080ABF28: .4byte 0x220c0000 _080ABF2C: movs r0, 0x8E lsls r0, 1 adds r1, r5, r0 ldr r0, _080ABF38 b _080ABF94 .align 2, 0 _080ABF38: .4byte 0x20010000 _080ABF3C: movs r2, 0x8E lsls r2, 1 adds r1, r5, r2 movs r0, 0x5 b _080ABF94 _080ABF46: movs r3, 0x8E lsls r3, 1 adds r1, r5, r3 ldr r0, _080ABF50 b _080ABF94 .align 2, 0 _080ABF50: .4byte 0x22000184 _080ABF54: movs r0, 0x8E lsls r0, 1 adds r1, r5, r0 adds r0, 0x68 b _080ABF94 _080ABF5E: movs r2, 0x8E lsls r2, 1 adds r1, r5, r2 movs r0, 0x44 b _080ABF94 _080ABF68: movs r3, 0x8E lsls r3, 1 adds r1, r5, r3 movs r0, 0x84 b _080ABF94 _080ABF72: movs r0, 0x8E lsls r0, 1 adds r1, r5, r0 adds r0, 0x64 b _080ABF94 _080ABF7C: movs r2, 0x8E lsls r2, 1 adds r1, r5, r2 ldr r0, _080ABF88 b _080ABF94 .align 2, 0 _080ABF88: .4byte 0x020000c4 _080ABF8C: movs r3, 0x8E lsls r3, 1 adds r1, r5, r3 ldr r0, _080ABFA8 _080ABF94: str r0, [r1] ldrb r0, [r6, 0x2] cmp r0, 0 bne _080ABFAC mov r1, r8 ldrb r0, [r1, 0x2] lsls r0, 11 str r0, [r5, 0xC] ldrb r0, [r1, 0x3] b _080ABFB4 .align 2, 0 _080ABFA8: .4byte 0x02000185 _080ABFAC: ldrb r0, [r6, 0x2] lsls r0, 11 str r0, [r5, 0xC] ldrb r0, [r6, 0x3] _080ABFB4: lsls r0, 11 str r0, [r5, 0x10] ldr r0, [r5, 0xC] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 str r0, [r5, 0x14] ldr r0, [r5, 0x10] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 str r0, [r5, 0x18] mov r2, r8 ldrb r0, [r2, 0x1] strb r0, [r5, 0x1C] adds r2, 0x4 adds r4, r5, 0 adds r4, 0x20 ldrb r1, [r2, 0x2] movs r0, 0x4 ands r0, r1 cmp r0, 0 bne _080ABFFC mov r3, r8 ldrb r0, [r3, 0x4] lsls r3, r0, 11 str r3, [r5, 0x20] ldrb r1, [r2, 0x2] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080ABFFC movs r1, 0x80 lsls r1, 3 adds r0, r3, r1 str r0, [r5, 0x20] _080ABFFC: ldrb r1, [r2, 0x3] movs r0, 0x4 ands r0, r1 cmp r0, 0 bne _080AC01E ldrb r0, [r2, 0x1] lsls r3, r0, 11 str r3, [r4, 0x4] ldrb r1, [r2, 0x3] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080AC01E movs r2, 0x80 lsls r2, 3 adds r0, r3, r2 str r0, [r4, 0x4] _080AC01E: ldr r3, [sp, 0x10] cmp r3, 0 beq _080AC076 ldrb r1, [r5, 0x1C] movs r2, 0x90 lsls r2, 1 adds r0, r5, r2 movs r3, 0 strb r1, [r0] movs r0, 0x92 lsls r0, 1 adds r2, r5, r0 ldr r0, [r5, 0x20] ldr r1, [r5, 0x14] subs r0, r1 str r0, [r2] movs r1, 0x96 lsls r1, 1 adds r2, r5, r1 ldr r0, [r5, 0x20] ldr r1, [r5, 0x14] adds r0, r1 str r0, [r2] movs r0, 0x94 lsls r0, 1 adds r2, r5, r0 ldr r0, [r5, 0x24] ldr r1, [r5, 0x18] subs r0, r1 str r0, [r2] movs r1, 0x98 lsls r1, 1 adds r2, r5, r1 ldr r0, [r5, 0x24] ldr r1, [r5, 0x18] adds r0, r1 str r0, [r2] movs r2, 0x9A lsls r2, 1 adds r1, r5, r2 adds r2, 0x4 adds r0, r5, r2 str r3, [r0] str r3, [r1] _080AC076: adds r0, r5, 0 adds r0, 0x28 adds r1, r5, 0 adds r1, 0x30 bl sub_80A5778 ldr r3, [sp, 0x10] cmp r3, 0 beq _080AC0C0 movs r0, 0x9F lsls r0, 1 adds r1, r5, r0 movs r2, 0 movs r0, 0x80 lsls r0, 4 strh r0, [r1] movs r3, 0x9E lsls r3, 1 adds r1, r5, r3 movs r0, 0x1 strb r0, [r1] movs r1, 0xA0 lsls r1, 1 adds r0, r5, r1 strh r2, [r0] movs r2, 0xA2 lsls r2, 1 adds r0, r5, r2 movs r3, 0x6 ldrsh r2, [r5, r3] movs r3, 0x8E lsls r3, 1 adds r1, r5, r3 ldr r3, [r1] adds r1, r7, 0 bl sub_80A75CC _080AC0C0: adds r4, r5, 0 adds r4, 0x38 ldr r1, _080AC154 mov r0, r9 str r0, [sp] adds r0, r4, 0 adds r2, r5, 0 mov r3, r10 bl sub_809D600 adds r6, r4, 0 mov r1, r8 ldr r2, [r1, 0xC] cmp r2, 0 bne _080AC0F2 movs r2, 0xA2 lsls r2, 1 adds r0, r5, r2 bl sub_80A66A4 lsls r0, 24 ldr r2, _080AC158 cmp r0, 0 beq _080AC0F2 ldr r2, _080AC15C _080AC0F2: adds r0, r6, 0 movs r1, 0x1 bl sub_809D6D8 adds r1, r4, 0 mov r3, r8 ldr r2, [r3, 0x10] cmp r2, 0 bne _080AC108 ldr r0, _080AC160 ldr r2, [r0, 0x38] _080AC108: adds r0, r1, 0 movs r1, 0x2 bl sub_809D6D8 mov r0, r8 ldr r2, [r0, 0x14] cmp r2, 0 bne _080AC11C ldr r0, _080AC160 ldr r2, [r0, 0x68] _080AC11C: adds r0, r4, 0 movs r1, 0x3 bl sub_809D6D8 mov r1, r8 ldr r2, [r1, 0x8] cmp r2, 0 beq _080AC140 adds r0, r4, 0 movs r1, 0 bl sub_809D6D8 ldr r3, _080AC164 adds r0, r4, 0 movs r1, 0 movs r2, 0 bl sub_809D8C0 _080AC140: adds r0, r7, 0 _080AC142: add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080AC154: .4byte gUnknown_81182A0 _080AC158: .4byte gUnknown_81182F4 _080AC15C: .4byte gUnknown_8118350 _080AC160: .4byte gUnknown_812F1F8 _080AC164: .4byte gUnknown_81184A4 thumb_func_end sub_80ABD88 thumb_func_start sub_80AC168 sub_80AC168: push {r4,lr} adds r2, r0, 0 lsls r2, 16 asrs r2, 16 ldr r1, _080AC1A4 lsls r0, r2, 3 subs r0, r2 lsls r0, 4 adds r0, r2 lsls r0, 2 ldr r1, [r1] adds r4, r1, r0 ldr r1, _080AC1A8 movs r0, 0 bl Log movs r1, 0xA2 lsls r1, 1 adds r0, r4, r1 bl sub_80A7658 adds r0, r4, 0 adds r0, 0x38 bl sub_809D648 ldr r0, _080AC1AC strh r0, [r4, 0x6] pop {r4} pop {r0} bx r0 .align 2, 0 _080AC1A4: .4byte gUnknown_3001B88 _080AC1A8: .4byte gUnknown_81184B0 _080AC1AC: .4byte 0x0000ffff thumb_func_end sub_80AC168 thumb_func_start sub_80AC1B0 sub_80AC1B0: push {lr} adds r3, r1, 0 lsls r0, 16 asrs r0, 16 ldr r2, _080AC1F0 lsls r1, r0, 3 subs r1, r0 lsls r1, 4 adds r1, r0 lsls r1, 2 ldr r0, [r2] adds r2, r0, r1 movs r0, 0x6 ldrsh r1, [r2, r0] movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _080AC1EA movs r1, 0x8E lsls r1, 1 adds r0, r2, r1 ldr r1, [r0] orrs r1, r3 str r1, [r0] movs r3, 0xA2 lsls r3, 1 adds r0, r2, r3 bl sub_80A6688 _080AC1EA: pop {r0} bx r0 .align 2, 0 _080AC1F0: .4byte gUnknown_3001B88 thumb_func_end sub_80AC1B0 thumb_func_start sub_80AC1F4 sub_80AC1F4: push {r4,lr} adds r4, r1, 0 lsls r0, 16 asrs r0, 16 ldr r2, _080AC238 lsls r1, r0, 3 subs r1, r0 lsls r1, 4 adds r1, r0 lsls r1, 2 ldr r0, [r2] adds r3, r0, r1 movs r0, 0x6 ldrsh r1, [r3, r0] movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _080AC232 movs r0, 0x8E lsls r0, 1 adds r2, r3, r0 ldr r0, _080AC23C eors r0, r4 ldr r1, [r2] ands r1, r0 str r1, [r2] movs r2, 0xA2 lsls r2, 1 adds r0, r3, r2 bl sub_80A6688 _080AC232: pop {r4} pop {r0} bx r0 .align 2, 0 _080AC238: .4byte gUnknown_3001B88 _080AC23C: .4byte 0x337fffff thumb_func_end sub_80AC1F4 thumb_func_start sub_80AC240 sub_80AC240: push {lr} lsls r0, 16 asrs r0, 16 ldr r2, _080AC268 lsls r1, r0, 3 subs r1, r0 lsls r1, 4 adds r1, r0 lsls r1, 2 ldr r0, [r2] adds r2, r0, r1 movs r0, 0x6 ldrsh r1, [r2, r0] movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _080AC26C movs r0, 0 b _080AC270 .align 2, 0 _080AC268: .4byte gUnknown_3001B88 _080AC26C: adds r0, r2, 0 adds r0, 0x38 _080AC270: pop {r1} bx r1 thumb_func_end sub_80AC240 thumb_func_start sub_80AC274 sub_80AC274: push {r4,lr} adds r4, r1, 0 lsls r0, 16 asrs r0, 16 lsls r2, 16 asrs r3, r2, 16 ldr r2, _080AC2A0 lsls r1, r0, 3 subs r1, r0 lsls r1, 4 adds r1, r0 lsls r1, 2 ldr r0, [r2] adds r2, r0, r1 movs r0, 0x6 ldrsh r1, [r2, r0] movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _080AC2A4 movs r0, 0 b _080AC2B4 .align 2, 0 _080AC2A0: .4byte gUnknown_3001B88 _080AC2A4: adds r0, r2, 0 adds r0, 0x38 adds r1, r4, 0 adds r2, r3, 0 bl sub_809D6E4 lsls r0, 24 lsrs r0, 24 _080AC2B4: pop {r4} pop {r1} bx r1 thumb_func_end sub_80AC274 thumb_func_start sub_80AC2BC sub_80AC2BC: push {r4-r6,lr} adds r3, r0, 0 adds r5, r1, 0 adds r6, r2, 0 lsls r3, 16 asrs r3, 16 ldr r1, _080AC2F4 lsls r0, r3, 3 subs r0, r3 lsls r0, 4 adds r0, r3 lsls r0, 2 ldr r1, [r1] adds r4, r1, r0 ldr r1, _080AC2F8 movs r0, 0 adds r2, r3, 0 bl Log movs r0, 0x6 ldrsh r1, [r4, r0] movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _080AC2FC movs r0, 0 b _080AC314 .align 2, 0 _080AC2F4: .4byte gUnknown_3001B88 _080AC2F8: .4byte gUnknown_81184CC _080AC2FC: adds r0, r4, 0 adds r0, 0x38 ldr r3, _080AC31C adds r1, r5, 0 adds r2, r6, 0 bl sub_809D790 movs r0, 0x9E lsls r0, 1 adds r1, r4, r0 movs r0, 0x1 strb r0, [r1] _080AC314: pop {r4-r6} pop {r1} bx r1 .align 2, 0 _080AC31C: .4byte gUnknown_8118504 thumb_func_end sub_80AC2BC thumb_func_start sub_80AC320 sub_80AC320: push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 16 asrs r7, r0, 16 ldr r0, _080AC374 ldr r4, [r0] movs r5, 0 movs r0, 0x1 negs r0, r0 mov r8, r0 movs r6, 0x80 lsls r6, 9 _080AC33A: movs r1, 0x6 ldrsh r0, [r4, r1] cmp r0, r8 beq _080AC352 adds r0, r4, 0 adds r0, 0x38 adds r1, r7, 0 bl sub_809D968 orrs r5, r0 lsls r0, r5, 24 lsrs r5, r0, 24 _080AC352: adds r0, r6, 0 movs r1, 0x80 lsls r1, 9 adds r6, r1 asrs r0, 16 movs r1, 0xE2 lsls r1, 1 adds r4, r1 cmp r0, 0xF ble _080AC33A adds r0, r5, 0 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080AC374: .4byte gUnknown_3001B88 thumb_func_end sub_80AC320 thumb_func_start sub_80AC378 sub_80AC378: push {r4-r7,lr} ldr r0, _080AC3BC ldr r4, [r0] movs r5, 0 movs r7, 0x1 negs r7, r7 movs r6, 0x80 lsls r6, 9 _080AC388: movs r1, 0x6 ldrsh r0, [r4, r1] cmp r0, r7 beq _080AC39E adds r0, r4, 0 adds r0, 0x38 bl sub_809D92C orrs r5, r0 lsls r0, r5, 24 lsrs r5, r0, 24 _080AC39E: adds r0, r6, 0 movs r1, 0x80 lsls r1, 9 adds r6, r1 asrs r0, 16 movs r1, 0xE2 lsls r1, 1 adds r4, r1 cmp r0, 0xF ble _080AC388 adds r0, r5, 0 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080AC3BC: .4byte gUnknown_3001B88 thumb_func_end sub_80AC378 thumb_func_start sub_80AC3C0 sub_80AC3C0: lsls r0, 16 asrs r0, 16 ldr r2, _080AC3DC lsls r1, r0, 3 subs r1, r0 lsls r1, 4 adds r1, r0 lsls r1, 2 ldr r0, [r2] adds r0, r1 movs r1, 0x6 ldrsh r0, [r0, r1] bx lr .align 2, 0 _080AC3DC: .4byte gUnknown_3001B88 thumb_func_end sub_80AC3C0 thumb_func_start sub_80AC3E0 sub_80AC3E0: lsls r0, 16 asrs r0, 16 ldr r3, _080AC404 lsls r2, r0, 3 subs r2, r0 lsls r2, 4 adds r2, r0 lsls r2, 2 ldr r0, [r3] adds r0, r2 movs r3, 0x8E lsls r3, 1 adds r2, r0, r3 ldr r2, [r2] str r2, [r1] movs r1, 0x6 ldrsh r0, [r0, r1] bx lr .align 2, 0 _080AC404: .4byte gUnknown_3001B88 thumb_func_end sub_80AC3E0 thumb_func_start sub_80AC408 sub_80AC408: push {lr} adds r3, r1, 0 lsls r0, 16 asrs r0, 16 ldr r2, _080AC434 lsls r1, r0, 3 subs r1, r0 lsls r1, 4 adds r1, r0 lsls r1, 2 ldr r0, [r2] adds r2, r0, r1 movs r0, 0x6 ldrsh r1, [r2, r0] movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _080AC438 movs r0, 0 str r0, [r3] str r0, [r3, 0x4] b _080AC440 .align 2, 0 _080AC434: .4byte gUnknown_3001B88 _080AC438: ldr r0, [r2, 0xC] ldr r1, [r2, 0x10] str r0, [r3] str r1, [r3, 0x4] _080AC440: movs r1, 0x6 ldrsh r0, [r2, r1] pop {r1} bx r1 thumb_func_end sub_80AC408 thumb_func_start sub_80AC448 sub_80AC448: push {lr} adds r3, r1, 0 lsls r0, 16 asrs r0, 16 ldr r2, _080AC474 lsls r1, r0, 3 subs r1, r0 lsls r1, 4 adds r1, r0 lsls r1, 2 ldr r0, [r2] adds r2, r0, r1 movs r0, 0x6 ldrsh r1, [r2, r0] movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _080AC478 movs r0, 0 str r0, [r3] b _080AC492 .align 2, 0 _080AC474: .4byte gUnknown_3001B88 _080AC478: movs r1, 0x92 lsls r1, 1 adds r0, r2, r1 ldr r0, [r0] ldr r1, [r2, 0x14] adds r0, r1 str r0, [r3] movs r1, 0x94 lsls r1, 1 adds r0, r2, r1 ldr r0, [r0] ldr r1, [r2, 0x18] adds r0, r1 _080AC492: str r0, [r3, 0x4] movs r1, 0x6 ldrsh r0, [r2, r1] pop {r1} bx r1 thumb_func_end sub_80AC448 thumb_func_start sub_80AC49C sub_80AC49C: push {r4,lr} lsls r0, 16 asrs r0, 16 ldr r3, _080AC4C4 lsls r2, r0, 3 subs r2, r0 lsls r2, 4 adds r2, r0 lsls r2, 2 ldr r4, [r3] adds r4, r2 adds r0, r4, 0 bl sub_80AC6AC movs r1, 0x6 ldrsh r0, [r4, r1] pop {r4} pop {r1} bx r1 .align 2, 0 _080AC4C4: .4byte gUnknown_3001B88 thumb_func_end sub_80AC49C thumb_func_start sub_80AC4C8 sub_80AC4C8: push {r4-r7,lr} adds r7, r0, 0 adds r4, r1, 0 ldr r0, _080AC530 ldr r3, [r0] movs r5, 0 movs r0, 0x1 negs r0, r0 mov r12, r0 movs r6, 0x80 lsls r6, 9 _080AC4DE: movs r1, 0x6 ldrsh r0, [r3, r1] cmp r0, r12 beq _080AC534 movs r1, 0x8E lsls r1, 1 adds r0, r3, r1 ldr r0, [r0] ands r0, r7 cmp r0, 0 beq _080AC534 adds r1, 0x8 adds r0, r3, r1 ldr r1, [r0] ldr r0, [r2] cmp r1, r0 bge _080AC534 movs r1, 0x96 lsls r1, 1 adds r0, r3, r1 ldr r1, [r0] ldr r0, [r4] cmp r1, r0 ble _080AC534 movs r1, 0x94 lsls r1, 1 adds r0, r3, r1 ldr r1, [r0] ldr r0, [r2, 0x4] cmp r1, r0 bge _080AC534 movs r1, 0x98 lsls r1, 1 adds r0, r3, r1 ldr r1, [r0] ldr r0, [r4, 0x4] cmp r1, r0 ble _080AC534 adds r0, r5, 0 b _080AC54C .align 2, 0 _080AC530: .4byte gUnknown_3001B88 _080AC534: adds r0, r6, 0 movs r1, 0x80 lsls r1, 9 adds r6, r1 asrs r5, r0, 16 movs r0, 0xE2 lsls r0, 1 adds r3, r0 cmp r5, 0xF ble _080AC4DE movs r0, 0x1 negs r0, r0 _080AC54C: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80AC4C8 thumb_func_start sub_80AC554 sub_80AC554: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} mov r8, r0 mov r10, r1 adds r4, r2, 0 ldr r0, _080AC5C8 ldr r0, [r0] mov r12, r0 movs r6, 0 movs r0, 0x1 negs r0, r0 mov r9, r0 movs r7, 0x80 lsls r7, 9 _080AC576: mov r1, r12 movs r2, 0x6 ldrsh r0, [r1, r2] cmp r0, r9 beq _080AC5CC movs r0, 0x8E lsls r0, 1 add r0, r12 ldr r0, [r0] mov r5, r8 ands r0, r5 cmp r0, 0 beq _080AC5CC movs r0, 0x92 lsls r0, 1 add r0, r12 ldr r1, [r0] mov r5, r12 ldr r0, [r5, 0x14] adds r2, r1, r0 movs r0, 0x94 lsls r0, 1 add r0, r12 ldr r1, [r0] ldr r0, [r5, 0x18] adds r3, r1, r0 ldr r0, [r4] cmp r2, r0 bge _080AC5CC mov r1, r10 ldr r0, [r1] cmp r2, r0 ble _080AC5CC ldr r0, [r4, 0x4] cmp r3, r0 bge _080AC5CC ldr r0, [r1, 0x4] cmp r3, r0 ble _080AC5CC adds r0, r6, 0 b _080AC5E4 .align 2, 0 _080AC5C8: .4byte gUnknown_3001B88 _080AC5CC: adds r0, r7, 0 movs r2, 0x80 lsls r2, 9 adds r7, r2 asrs r6, r0, 16 movs r5, 0xE2 lsls r5, 1 add r12, r5 cmp r6, 0xF ble _080AC576 movs r0, 0x1 negs r0, r0 _080AC5E4: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80AC554 thumb_func_start sub_80AC5F4 sub_80AC5F4: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x10 mov r8, r0 adds r5, r1, 0 adds r6, r2, 0 ldr r0, [r5] cmp r0, 0 bge _080AC60C ldr r1, _080AC670 adds r0, r1 _080AC60C: asrs r0, 11 mov r12, r0 str r0, [sp] ldr r0, [r5, 0x4] cmp r0, 0 bge _080AC61C ldr r3, _080AC670 adds r0, r3 _080AC61C: asrs r4, r0, 11 str r4, [sp, 0x4] ldr r3, [r6] subs r0, r3, 0x1 cmp r0, 0 bge _080AC62C ldr r7, _080AC674 adds r0, r3, r7 _080AC62C: asrs r1, r0, 11 ldr r3, [r6, 0x4] subs r0, r3, 0x1 cmp r0, 0 bge _080AC63A ldr r7, _080AC674 adds r0, r3, r7 _080AC63A: asrs r2, r0, 11 mov r3, r12 subs r0, r1, r3 adds r0, 0x1 str r0, [sp, 0x8] subs r0, r2, r4 adds r0, 0x1 add r2, sp, 0x8 str r0, [r2, 0x4] movs r0, 0x8E lsls r0, 1 add r0, r8 ldr r0, [r0] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _080AC678 mov r0, sp adds r1, r2, 0 bl sub_80A585C lsls r0, 24 cmp r0, 0 beq _080AC678 movs r0, 0x1 b _080AC6A0 .align 2, 0 _080AC670: .4byte 0x000007ff _080AC674: .4byte 0x000007fe _080AC678: movs r0, 0x8E lsls r0, 1 add r0, r8 ldr r0, [r0] movs r1, 0x4 ands r0, r1 cmp r0, 0 beq _080AC69E movs r0, 0x1 negs r0, r0 adds r2, r5, 0 adds r3, r6, 0 bl sub_80A92A0 lsls r0, 16 cmp r0, 0 blt _080AC69E movs r0, 0x4 b _080AC6A0 _080AC69E: movs r0, 0 _080AC6A0: add sp, 0x10 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80AC5F4 thumb_func_start sub_80AC6AC sub_80AC6AC: push {r4,r5,lr} sub sp, 0x10 adds r5, r0, 0 ldr r2, [r1] ldr r4, [r5, 0x14] subs r0, r2, r4 str r0, [sp] ldr r3, [r1, 0x4] ldr r1, [r5, 0x18] subs r0, r3, r1 str r0, [sp, 0x4] adds r2, r4 str r2, [sp, 0x8] adds r3, r1 add r2, sp, 0x8 str r3, [r2, 0x4] ldr r1, [r5, 0x28] ldr r0, [sp] cmp r0, r1 blt _080AC6EA ldr r1, [r5, 0x30] ldr r0, [sp, 0x8] cmp r0, r1 bge _080AC6EA ldr r1, [r5, 0x2C] ldr r0, [sp, 0x4] cmp r0, r1 blt _080AC6EA ldr r0, [r5, 0x34] cmp r3, r0 blt _080AC6EE _080AC6EA: movs r0, 0x1 b _080AC718 _080AC6EE: adds r0, r5, 0 mov r1, sp bl sub_80AC5F4 cmp r0, 0 bne _080AC718 movs r0, 0x92 lsls r0, 1 adds r2, r5, r0 ldr r0, [sp] ldr r1, [sp, 0x4] str r0, [r2] str r1, [r2, 0x4] movs r0, 0x96 lsls r0, 1 adds r2, r5, r0 ldr r0, [sp, 0x8] ldr r1, [sp, 0xC] str r0, [r2] str r1, [r2, 0x4] movs r0, 0 _080AC718: add sp, 0x10 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80AC6AC thumb_func_start sub_80AC720 sub_80AC720: push {r4,r5,lr} sub sp, 0x10 adds r4, r0, 0 movs r2, 0x92 lsls r2, 1 adds r0, r4, r2 ldr r0, [r0] ldr r2, [r1] adds r0, r2 str r0, [sp] movs r3, 0x94 lsls r3, 1 adds r0, r4, r3 ldr r0, [r0] ldr r1, [r1, 0x4] adds r0, r1 str r0, [sp, 0x4] adds r3, 0x4 adds r0, r4, r3 ldr r0, [r0] adds r0, r2 str r0, [sp, 0x8] movs r2, 0x98 lsls r2, 1 adds r0, r4, r2 ldr r0, [r0] adds r0, r1 add r1, sp, 0x8 str r0, [r1, 0x4] movs r5, 0 ldr r3, [r4, 0x28] ldr r0, [sp] adds r2, r1, 0 cmp r0, r3 bge _080AC770 str r3, [sp] ldr r0, [r4, 0xC] adds r0, r3, r0 str r0, [sp, 0x8] b _080AC780 _080AC770: ldr r1, [r4, 0x30] ldr r0, [sp, 0x8] cmp r0, r1 blt _080AC782 ldr r0, [r4, 0xC] subs r0, r1, r0 str r0, [sp] str r1, [sp, 0x8] _080AC780: movs r5, 0x1 _080AC782: ldr r1, [r4, 0x2C] ldr r0, [sp, 0x4] cmp r0, r1 bge _080AC794 str r1, [sp, 0x4] ldr r0, [r4, 0x10] adds r0, r1, r0 str r0, [r2, 0x4] b _080AC7A4 _080AC794: ldr r1, [r4, 0x34] ldr r0, [r2, 0x4] cmp r0, r1 blt _080AC7A6 ldr r0, [r4, 0x10] subs r0, r1, r0 str r0, [sp, 0x4] str r1, [r2, 0x4] _080AC7A4: movs r5, 0x1 _080AC7A6: adds r0, r4, 0 mov r1, sp bl sub_80AC5F4 cmp r0, 0 bne _080AC7D8 movs r3, 0x92 lsls r3, 1 adds r2, r4, r3 ldr r0, [sp] ldr r1, [sp, 0x4] str r0, [r2] str r1, [r2, 0x4] movs r0, 0x96 lsls r0, 1 adds r2, r4, r0 ldr r0, [sp, 0x8] ldr r1, [sp, 0xC] str r0, [r2] str r1, [r2, 0x4] cmp r5, 0 bne _080AC7D6 movs r0, 0 b _080AC7D8 _080AC7D6: movs r0, 0x1 _080AC7D8: add sp, 0x10 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80AC720 thumb_func_start sub_80AC7E0 sub_80AC7E0: movs r1, 0x4 ldrsh r0, [r0, r1] bx lr thumb_func_end sub_80AC7E0 thumb_func_start sub_80AC7E8 sub_80AC7E8: ldr r2, [r0, 0xC] ldr r3, [r0, 0x10] str r2, [r1] str r3, [r1, 0x4] bx lr thumb_func_end sub_80AC7E8 thumb_func_start sub_80AC7F4 sub_80AC7F4: push {r4,lr} adds r3, r0, 0 adds r4, r1, 0 cmp r4, 0 beq _080AC834 movs r0, 0x92 lsls r0, 1 adds r2, r3, r0 ldr r1, [r4] ldr r0, [r3, 0x14] subs r0, r1, r0 str r0, [r2] movs r0, 0x96 lsls r0, 1 adds r2, r3, r0 ldr r0, [r3, 0x14] adds r1, r0 str r1, [r2] movs r0, 0x94 lsls r0, 1 adds r2, r3, r0 ldr r1, [r4, 0x4] ldr r0, [r3, 0x18] subs r0, r1, r0 str r0, [r2] movs r0, 0x98 lsls r0, 1 adds r2, r3, r0 ldr r0, [r3, 0x18] adds r1, r0 str r1, [r2] b _080AC89A _080AC834: movs r0, 0x92 lsls r0, 1 adds r2, r3, r0 ldr r0, [r3, 0x20] ldr r1, [r3, 0x14] subs r0, r1 str r0, [r2] movs r0, 0x96 lsls r0, 1 adds r2, r3, r0 ldr r0, [r3, 0x20] ldr r1, [r3, 0x14] adds r0, r1 str r0, [r2] movs r0, 0x94 lsls r0, 1 adds r2, r3, r0 ldr r0, [r3, 0x24] ldr r1, [r3, 0x18] subs r0, r1 str r0, [r2] movs r0, 0x98 lsls r0, 1 adds r2, r3, r0 ldr r0, [r3, 0x24] ldr r1, [r3, 0x18] adds r0, r1 str r0, [r2] movs r2, 0x9A lsls r2, 1 adds r1, r3, r2 adds r2, 0x4 adds r0, r3, r2 str r4, [r0] str r4, [r1] movs r0, 0x90 lsls r0, 1 adds r2, r3, r0 movs r1, 0 ldrsb r1, [r2, r1] movs r0, 0x1C ldrsb r0, [r3, r0] cmp r1, r0 beq _080AC896 movs r0, 0x9E lsls r0, 1 adds r1, r3, r0 movs r0, 0x1 strb r0, [r1] _080AC896: ldrb r0, [r3, 0x1C] strb r0, [r2] _080AC89A: pop {r4} pop {r0} bx r0 thumb_func_end sub_80AC7F4 thumb_func_start sub_80AC8A0 sub_80AC8A0: push {r4,lr} ldr r3, [r1] ldr r4, [r1, 0x4] str r3, [r0, 0x28] str r4, [r0, 0x2C] ldr r1, [r2] ldr r2, [r2, 0x4] str r1, [r0, 0x30] str r2, [r0, 0x34] pop {r4} pop {r0} bx r0 thumb_func_end sub_80AC8A0 thumb_func_start sub_80AC8B8 sub_80AC8B8: adds r3, r0, 0 movs r2, 0x92 lsls r2, 1 adds r0, r3, r2 ldr r0, [r0] ldr r2, [r3, 0x14] adds r0, r2 str r0, [r1] movs r2, 0x94 lsls r2, 1 adds r0, r3, r2 ldr r0, [r0] ldr r2, [r3, 0x18] adds r0, r2 str r0, [r1, 0x4] bx lr thumb_func_end sub_80AC8B8 thumb_func_start sub_80AC8D8 sub_80AC8D8: push {lr} bl sub_80AC6AC pop {r1} bx r1 thumb_func_end sub_80AC8D8 thumb_func_start sub_80AC8E4 sub_80AC8E4: push {r4,lr} adds r3, r0, 0 movs r4, 0x9A lsls r4, 1 adds r0, r3, r4 ldr r0, [r0] str r0, [r1] movs r1, 0x9C lsls r1, 1 adds r0, r3, r1 ldr r0, [r0] str r0, [r2] pop {r4} pop {r0} bx r0 thumb_func_end sub_80AC8E4 thumb_func_start sub_80AC904 sub_80AC904: movs r2, 0x9A lsls r2, 1 adds r0, r2 str r1, [r0] bx lr thumb_func_end sub_80AC904 thumb_func_start sub_80AC910 sub_80AC910: movs r2, 0x90 lsls r2, 1 adds r0, r2 ldrb r0, [r0] strb r0, [r1] bx lr thumb_func_end sub_80AC910 thumb_func_start sub_80AC91C sub_80AC91C: push {lr} adds r2, r0, 0 lsls r1, 24 asrs r1, 24 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _080AC934 movs r3, 0x90 lsls r3, 1 adds r0, r2, r3 strb r1, [r0] _080AC934: pop {r0} bx r0 thumb_func_end sub_80AC91C thumb_func_start sub_80AC938 sub_80AC938: push {r4,r5,lr} lsls r1, 16 adds r3, r0, 0 movs r0, 0xFF lsls r0, 16 ands r0, r1 lsrs r0, 16 cmp r0, 0 beq _080AC958 ldr r1, _080AC954 lsls r0, 1 adds r0, r1 b _080AC95E .align 2, 0 _080AC954: .4byte gUnknown_81183A0 _080AC958: movs r5, 0x9F lsls r5, 1 adds r0, r3, r5 _080AC95E: movs r1, 0 ldrsh r2, [r0, r1] movs r5, 0x9F lsls r5, 1 adds r1, r3, r5 ldrh r4, [r1] movs r5, 0 ldrsh r0, [r1, r5] cmp r0, r2 beq _080AC97C strh r2, [r1] movs r0, 0x9E lsls r0, 1 adds r1, r3, r0 b _080AC98C _080AC97C: movs r0, 0x80 lsls r0, 5 ands r0, r4 cmp r0, 0 beq _080AC990 movs r5, 0x9E lsls r5, 1 adds r1, r3, r5 _080AC98C: movs r0, 0x1 strb r0, [r1] _080AC990: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80AC938 thumb_func_start sub_80AC998 sub_80AC998: push {lr} lsls r1, 16 asrs r1, 16 adds r2, r1, 0 cmp r1, 0 bne _080AC9AA movs r1, 0xE0 lsls r1, 1 adds r2, r1, 0 _080AC9AA: movs r1, 0xA0 lsls r1, 1 adds r0, r1 strh r2, [r0] pop {r0} bx r0 thumb_func_end sub_80AC998 thumb_func_start sub_80AC9B8 sub_80AC9B8: push {lr} adds r1, r0, 0 movs r2, 0x9E lsls r2, 1 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 bne _080AC9D6 adds r2, 0x8 adds r0, r1, r2 bl sub_80A66F8 lsls r0, 24 lsrs r0, 24 b _080AC9D8 _080AC9D6: movs r0, 0x1 _080AC9D8: pop {r1} bx r1 thumb_func_end sub_80AC9B8 thumb_func_start sub_80AC9DC sub_80AC9DC: push {lr} adds r1, r0, 0 movs r2, 0xA0 lsls r2, 1 adds r0, r1, r2 movs r2, 0 ldrsh r0, [r0, r2] cmp r0, 0 bne _080AC9FE movs r2, 0xA2 lsls r2, 1 adds r0, r1, r2 bl sub_80A671C lsls r0, 24 lsrs r0, 24 b _080ACA00 _080AC9FE: movs r0, 0x1 _080ACA00: pop {r1} bx r1 thumb_func_end sub_80AC9DC thumb_func_start sub_80ACA04 sub_80ACA04: movs r2, 0x8E lsls r2, 1 adds r0, r2 ldr r0, [r0] str r0, [r1] bx lr thumb_func_end sub_80ACA04 thumb_func_start sub_80ACA10 sub_80ACA10: push {lr} movs r2, 0x4 ldrsh r0, [r0, r2] bl sub_80AC1B0 pop {r0} bx r0 thumb_func_end sub_80ACA10 thumb_func_start sub_80ACA20 sub_80ACA20: push {lr} movs r2, 0x4 ldrsh r0, [r0, r2] bl sub_80AC1F4 pop {r0} bx r0 thumb_func_end sub_80ACA20 thumb_func_start sub_80ACA30 sub_80ACA30: push {lr} bl sub_80AC720 pop {r1} bx r1 thumb_func_end sub_80ACA30 thumb_func_start sub_80ACA3C sub_80ACA3C: push {r4-r7,lr} mov r7, r8 push {r7} ldr r0, _080ACA7C ldr r5, [r0] movs r7, 0 movs r0, 0x1 negs r0, r0 mov r8, r0 movs r1, 0x9E lsls r1, 1 adds r6, r5, r1 _080ACA54: movs r3, 0x6 ldrsh r0, [r5, r3] cmp r0, r8 beq _080ACAB2 adds r4, r5, 0 adds r4, 0x38 adds r0, r4, 0 ldr r1, _080ACA80 bl sub_809DA70 lsls r0, 16 asrs r0, 16 cmp r0, 0 beq _080ACA84 cmp r0, 0x4 bne _080ACA90 adds r0, r7, 0 bl sub_80AC168 b _080ACAB2 .align 2, 0 _080ACA7C: .4byte gUnknown_3001B88 _080ACA80: .4byte gUnknown_8118524 _080ACA84: adds r0, r4, 0 movs r1, 0 movs r2, 0x1 ldr r3, _080ACAD0 bl sub_809D8C0 _080ACA90: ldrb r0, [r6] cmp r0, 0 beq _080ACAB2 movs r0, 0 strb r0, [r6] movs r1, 0xA2 lsls r1, 1 adds r0, r5, r1 ldrh r2, [r6, 0x2] movs r3, 0xF8 lsls r3, 5 adds r1, r3, 0 ands r1, r2 lsls r2, 24 asrs r2, 24 bl sub_80A6EFC _080ACAB2: adds r0, r7, 0x1 lsls r0, 16 asrs r7, r0, 16 movs r0, 0xE2 lsls r0, 1 adds r6, r0 adds r5, r0 cmp r7, 0xF ble _080ACA54 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080ACAD0: .4byte gUnknown_8118530 thumb_func_end sub_80ACA3C thumb_func_start sub_80ACAD4 sub_80ACAD4: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x8 ldr r0, _080ACB8C ldr r6, [r0] movs r0, 0 mov r8, r0 movs r1, 0x1 negs r1, r1 mov r9, r1 movs r2, 0x90 lsls r2, 1 adds r4, r6, r2 _080ACAF2: movs r0, 0x6 ldrsh r1, [r6, r0] mov r2, r9 lsls r0, r2, 16 asrs r0, 16 cmp r1, r0 beq _080ACB64 ldr r0, [r4, 0x4] ldr r1, [r6, 0x14] adds r0, r1 str r0, [sp] ldr r0, [r4, 0x8] ldr r1, [r6, 0x18] adds r0, r1 str r0, [sp, 0x4] ldr r1, [r4, 0x14] ldr r0, [r4, 0x18] adds r7, r1, r0 movs r0, 0xA2 lsls r0, 1 adds r5, r6, r0 adds r0, r5, 0 bl sub_80A66D4 lsls r0, 24 cmp r0, 0 beq _080ACB40 movs r0, 0 strb r0, [r4, 0x1C] ldrh r2, [r4, 0x1E] movs r0, 0xF8 lsls r0, 5 adds r1, r0, 0 ands r1, r2 lsls r2, 24 asrs r2, 24 adds r0, r5, 0 bl sub_80A6EFC _080ACB40: movs r1, 0x20 ldrsh r0, [r4, r1] cmp r0, 0 beq _080ACB5A adds r1, r0, 0 movs r2, 0 ldrsb r2, [r4, r2] adds r0, r5, 0 movs r3, 0 bl sub_80A7040 movs r0, 0 strh r0, [r4, 0x20] _080ACB5A: adds r0, r5, 0 mov r1, sp adds r2, r7, 0 bl sub_80A7664 _080ACB64: mov r0, r8 adds r0, 0x1 lsls r0, 16 asrs r0, 16 mov r8, r0 movs r0, 0xE2 lsls r0, 1 adds r4, r0 adds r6, r0 mov r1, r8 cmp r1, 0xF ble _080ACAF2 add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080ACB8C: .4byte gUnknown_3001B88 thumb_func_end sub_80ACAD4 thumb_func_start sub_80ACB90 sub_80ACB90: push {r4,r5,lr} ldr r4, _080ACBCC movs r0, 0xE2 lsls r0, 5 movs r1, 0x6 bl MemoryAlloc str r0, [r4] adds r1, r0, 0 ldr r0, _080ACBD0 adds r5, r0, 0 movs r4, 0xE2 lsls r4, 1 movs r2, 0x80 lsls r2, 9 adds r3, r2, 0 _080ACBB0: ldrh r0, [r1, 0x6] orrs r0, r5 strh r0, [r1, 0x6] adds r0, r2, 0 adds r2, r3 asrs r0, 16 adds r1, r4 cmp r0, 0xF ble _080ACBB0 bl sub_80ACBD4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080ACBCC: .4byte gUnknown_3001B8C _080ACBD0: .4byte 0x0000ffff thumb_func_end sub_80ACB90 thumb_func_start sub_80ACBD4 sub_80ACBD4: push {r4-r6,lr} ldr r0, _080ACC0C ldr r4, [r0] movs r1, 0 movs r6, 0x1 negs r6, r6 movs r5, 0x80 lsls r5, 9 _080ACBE4: movs r2, 0x6 ldrsh r0, [r4, r2] cmp r0, r6 beq _080ACBF2 adds r0, r1, 0 bl sub_80AD080 _080ACBF2: adds r0, r5, 0 movs r1, 0x80 lsls r1, 9 adds r5, r1 asrs r1, r0, 16 movs r2, 0xE2 lsls r2, 1 adds r4, r2 cmp r1, 0xF ble _080ACBE4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080ACC0C: .4byte gUnknown_3001B8C thumb_func_end sub_80ACBD4 thumb_func_start sub_80ACC10 sub_80ACC10: push {r4,lr} bl sub_80ACBD4 ldr r4, _080ACC28 ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _080ACC28: .4byte gUnknown_3001B8C thumb_func_end sub_80ACC10 thumb_func_start sub_80ACC2C sub_80ACC2C: push {r4-r7,lr} sub sp, 0x4 adds r4, r0, 0 lsls r4, 16 asrs r4, 16 lsls r1, 16 asrs r7, r1, 16 lsls r2, 24 asrs r6, r2, 24 ldr r1, _080ACC90 adds r0, r4, 0 bl sub_80A77D0 adds r5, r0, 0 ldr r1, _080ACC94 str r6, [sp] movs r0, 0 adds r2, r4, 0 adds r3, r7, 0 bl Log lsls r1, r7, 3 ldr r0, [r5, 0x4] adds r0, r1 lsls r1, r6, 2 adds r1, r6 lsls r1, 3 ldr r0, [r0, 0x4] adds r0, r1 ldr r5, [r0, 0x14] ldr r0, [r0, 0x10] cmp r0, 0 ble _080ACC86 adds r4, r0, 0 _080ACC70: movs r0, 0x1 negs r0, r0 adds r1, r5, 0 adds r2, r7, 0 adds r3, r6, 0 bl sub_80ACDC4 subs r4, 0x1 adds r5, 0xC cmp r4, 0 bne _080ACC70 _080ACC86: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080ACC90: .4byte gUnknown_8118610 _080ACC94: .4byte gUnknown_811861C thumb_func_end sub_80ACC2C thumb_func_start sub_80ACC98 sub_80ACC98: push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 16 asrs r7, r0, 16 lsls r1, 24 asrs r5, r1, 24 ldr r1, _080ACD00 movs r0, 0 adds r2, r7, 0 bl Log movs r1, 0 ldr r0, _080ACD04 ldr r4, [r0] movs r0, 0x1 negs r0, r0 mov r8, r0 movs r6, 0x80 lsls r6, 9 _080ACCC0: movs r2, 0x6 ldrsh r0, [r4, r2] cmp r0, r8 beq _080ACCE2 movs r2, 0x8 ldrsh r0, [r4, r2] cmp r0, r7 bne _080ACCE2 cmp r5, 0 blt _080ACCDC movs r0, 0xA ldrsb r0, [r4, r0] cmp r0, r5 bne _080ACCE2 _080ACCDC: adds r0, r1, 0 bl sub_80AD080 _080ACCE2: adds r0, r6, 0 movs r1, 0x80 lsls r1, 9 adds r6, r1 asrs r1, r0, 16 movs r2, 0xE2 lsls r2, 1 adds r4, r2 cmp r1, 0xF ble _080ACCC0 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080ACD00: .4byte gUnknown_8118640 _080ACD04: .4byte gUnknown_3001B8C thumb_func_end sub_80ACC98 thumb_func_start sub_80ACD08 sub_80ACD08: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 ldr r1, _080ACD7C movs r0, 0 bl Log movs r6, 0 ldr r0, _080ACD80 ldr r4, [r0] movs r0, 0x1 negs r0, r0 mov r8, r0 movs r1, 0x92 lsls r1, 1 adds r5, r4, r1 mov r7, sp _080ACD2C: movs r1, 0x6 ldrsh r0, [r4, r1] cmp r0, r8 beq _080ACD5C ldr r0, [r5] ldr r1, [r4, 0x14] adds r0, r1 str r0, [sp] ldr r0, [r5, 0x4] ldr r1, [r4, 0x18] adds r0, r1 str r0, [r7, 0x4] movs r1, 0xA2 lsls r1, 1 adds r0, r4, r1 mov r1, sp bl sub_80A675C lsls r0, 24 cmp r0, 0 bne _080ACD5C adds r0, r6, 0 bl sub_80AD080 _080ACD5C: adds r0, r6, 0x1 lsls r0, 16 asrs r6, r0, 16 movs r0, 0xE2 lsls r0, 1 adds r5, r0 adds r4, r0 cmp r6, 0xF ble _080ACD2C add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080ACD7C: .4byte gUnknown_8118658 _080ACD80: .4byte gUnknown_3001B8C thumb_func_end sub_80ACD08 thumb_func_start sub_80ACD84 sub_80ACD84: push {r4-r7,lr} lsls r0, 16 asrs r4, r0, 16 movs r3, 0 ldr r0, _080ACDA8 ldr r1, [r0] movs r6, 0xE2 lsls r6, 1 movs r2, 0x80 lsls r2, 9 adds r5, r2, 0 _080ACD9A: movs r7, 0x6 ldrsh r0, [r1, r7] cmp r0, r4 bne _080ACDAC adds r0, r3, 0 b _080ACDBC .align 2, 0 _080ACDA8: .4byte gUnknown_3001B8C _080ACDAC: adds r0, r2, 0 adds r2, r5 asrs r3, r0, 16 adds r1, r6 cmp r3, 0xF ble _080ACD9A movs r0, 0x1 negs r0, r0 _080ACDBC: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80ACD84 thumb_func_start sub_80ACDC4 sub_80ACDC4: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 adds r7, r1, 0 lsls r0, 16 asrs r6, r0, 16 lsls r2, 16 asrs r2, 16 mov r10, r2 lsls r3, 24 asrs r3, 24 mov r9, r3 ldrb r0, [r7] lsls r0, 2 ldr r1, _080ACE08 adds r0, r1 mov r8, r0 ldr r3, _080ACE0C cmp r6, 0 bge _080ACE38 movs r2, 0 ldr r5, [r3] movs r0, 0x6 ldrsh r1, [r5, r0] movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _080ACE10 movs r6, 0 b _080ACE38 .align 2, 0 _080ACE08: .4byte gUnknown_811EE38 _080ACE0C: .4byte gUnknown_3001B8C _080ACE10: adds r0, r2, 0x1 lsls r0, 16 asrs r2, r0, 16 movs r1, 0xE2 lsls r1, 1 adds r5, r1 cmp r2, 0xF bgt _080ACE2E movs r4, 0x6 ldrsh r1, [r5, r4] movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _080ACE10 adds r6, r2, 0 _080ACE2E: cmp r6, 0 bge _080ACE38 movs r0, 0x1 negs r0, r0 b _080AD062 _080ACE38: lsls r0, r6, 3 subs r0, r6 lsls r0, 4 adds r0, r6 lsls r0, 2 ldr r1, [r3] adds r5, r1, r0 ldr r1, _080ACE9C ldrb r3, [r7] mov r2, r8 movs r4, 0 ldrsh r0, [r2, r4] str r0, [sp] mov r0, r10 str r0, [sp, 0x4] mov r2, r9 str r2, [sp, 0x8] movs r0, 0 adds r2, r6, 0 bl Log movs r2, 0 movs r3, 0x6 ldrsh r1, [r5, r3] movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _080ACE72 movs r2, 0x1 _080ACE72: str r2, [sp, 0xC] strh r6, [r5, 0x4] ldrb r0, [r7] strh r0, [r5, 0x6] mov r4, r10 strh r4, [r5, 0x8] mov r0, r9 strb r0, [r5, 0xA] mov r1, r8 ldrh r0, [r1] subs r0, 0x1 lsls r0, 16 asrs r0, 16 cmp r0, 0x4 bhi _080ACEEC lsls r0, 2 ldr r1, _080ACEA0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080ACE9C: .4byte gUnknown_8118674 _080ACEA0: .4byte _080ACEA4 .align 2, 0 _080ACEA4: .4byte _080ACEB8 .4byte _080ACEEC .4byte _080ACEC4 .4byte _080ACED0 .4byte _080ACEDC _080ACEB8: movs r2, 0x8E lsls r2, 1 adds r1, r5, r2 movs r0, 0x81 lsls r0, 22 b _080ACEF4 _080ACEC4: movs r4, 0x8E lsls r4, 1 adds r1, r5, r4 movs r0, 0x83 lsls r0, 18 b _080ACEF4 _080ACED0: movs r0, 0x8E lsls r0, 1 adds r1, r5, r0 movs r0, 0x88 lsls r0, 22 b _080ACEF4 _080ACEDC: movs r2, 0x8E lsls r2, 1 adds r1, r5, r2 ldr r0, _080ACEE8 b _080ACEF4 .align 2, 0 _080ACEE8: .4byte 0x22020000 _080ACEEC: movs r3, 0x8E lsls r3, 1 adds r1, r5, r3 ldr r0, _080ACF08 _080ACEF4: str r0, [r1] mov r4, r8 ldrb r0, [r4, 0x2] cmp r0, 0 bne _080ACF0C ldrb r0, [r7, 0x2] lsls r0, 11 str r0, [r5, 0xC] ldrb r0, [r7, 0x3] b _080ACF16 .align 2, 0 _080ACF08: .4byte 0x220c0000 _080ACF0C: mov r1, r8 ldrb r0, [r1, 0x2] lsls r0, 11 str r0, [r5, 0xC] ldrb r0, [r1, 0x3] _080ACF16: lsls r0, 11 str r0, [r5, 0x10] ldr r0, [r5, 0xC] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 str r0, [r5, 0x14] ldr r0, [r5, 0x10] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 str r0, [r5, 0x18] ldrb r0, [r7, 0x1] strb r0, [r5, 0x1C] adds r2, r7, 0x4 adds r4, r5, 0 adds r4, 0x20 ldrb r1, [r2, 0x2] movs r0, 0x4 ands r0, r1 cmp r0, 0 bne _080ACF5A ldrb r0, [r7, 0x4] lsls r3, r0, 11 str r3, [r5, 0x20] ldrb r1, [r2, 0x2] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080ACF5A movs r1, 0x80 lsls r1, 3 adds r0, r3, r1 str r0, [r5, 0x20] _080ACF5A: ldrb r1, [r2, 0x3] movs r0, 0x4 ands r0, r1 cmp r0, 0 bne _080ACF7C ldrb r0, [r2, 0x1] lsls r3, r0, 11 str r3, [r4, 0x4] ldrb r1, [r2, 0x3] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080ACF7C movs r2, 0x80 lsls r2, 3 adds r0, r3, r2 str r0, [r4, 0x4] _080ACF7C: ldr r3, [sp, 0xC] cmp r3, 0 beq _080ACFD2 ldrb r1, [r5, 0x1C] movs r4, 0x90 lsls r4, 1 adds r0, r5, r4 movs r3, 0 strb r1, [r0] movs r0, 0x92 lsls r0, 1 adds r2, r5, r0 ldr r0, [r5, 0x20] ldr r1, [r5, 0x14] subs r0, r1 str r0, [r2] movs r1, 0x96 lsls r1, 1 adds r2, r5, r1 ldr r0, [r5, 0x20] ldr r1, [r5, 0x14] adds r0, r1 str r0, [r2] adds r4, 0x8 adds r2, r5, r4 ldr r0, [r5, 0x24] ldr r1, [r5, 0x18] subs r0, r1 str r0, [r2] movs r0, 0x98 lsls r0, 1 adds r2, r5, r0 ldr r0, [r5, 0x24] ldr r1, [r5, 0x18] adds r0, r1 str r0, [r2] movs r2, 0x9A lsls r2, 1 adds r1, r5, r2 adds r4, 0x10 adds r0, r5, r4 str r3, [r0] str r3, [r1] _080ACFD2: adds r0, r5, 0 adds r0, 0x28 adds r1, r5, 0 adds r1, 0x30 bl sub_80A5778 ldr r0, [sp, 0xC] cmp r0, 0 beq _080AD01A movs r2, 0x9F lsls r2, 1 adds r1, r5, r2 movs r2, 0 movs r0, 0x80 lsls r0, 4 strh r0, [r1] movs r3, 0x9E lsls r3, 1 adds r1, r5, r3 movs r0, 0x1 strb r0, [r1] movs r4, 0xA0 lsls r4, 1 adds r0, r5, r4 strh r2, [r0] movs r1, 0xA2 lsls r1, 1 adds r0, r5, r1 movs r3, 0x6 ldrsh r2, [r5, r3] subs r4, 0x24 adds r1, r5, r4 ldr r3, [r1] adds r1, r6, 0 bl sub_80A7688 _080AD01A: adds r4, r5, 0 adds r4, 0x38 ldr r1, _080AD074 mov r0, r9 str r0, [sp] adds r0, r4, 0 adds r2, r5, 0 mov r3, r10 bl sub_809D600 ldr r2, [r7, 0x8] cmp r2, 0 bne _080AD04C mov r1, r8 movs r3, 0 ldrsh r0, [r1, r3] cmp r0, 0x1 bne _080AD048 ldr r0, _080AD078 movs r1, 0xB0 lsls r1, 2 adds r0, r1 ldr r2, [r0] _080AD048: cmp r2, 0 beq _080AD060 _080AD04C: adds r0, r4, 0 movs r1, 0 bl sub_809D6D8 ldr r3, _080AD07C adds r0, r4, 0 movs r1, 0 movs r2, 0 bl sub_809D8C0 _080AD060: adds r0, r6, 0 _080AD062: add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080AD074: .4byte gUnknown_8118544 _080AD078: .4byte gUnknown_812F1F8 _080AD07C: .4byte gUnknown_81186CC thumb_func_end sub_80ACDC4 thumb_func_start sub_80AD080 sub_80AD080: push {r4,lr} adds r2, r0, 0 lsls r2, 16 asrs r2, 16 ldr r1, _080AD0BC lsls r0, r2, 3 subs r0, r2 lsls r0, 4 adds r0, r2 lsls r0, 2 ldr r1, [r1] adds r4, r1, r0 ldr r1, _080AD0C0 movs r0, 0 bl Log movs r1, 0xA2 lsls r1, 1 adds r0, r4, r1 bl sub_80A7714 adds r0, r4, 0 adds r0, 0x38 bl sub_809D648 ldr r0, _080AD0C4 strh r0, [r4, 0x6] pop {r4} pop {r0} bx r0 .align 2, 0 _080AD0BC: .4byte gUnknown_3001B8C _080AD0C0: .4byte gUnknown_81186D8 _080AD0C4: .4byte 0x0000ffff thumb_func_end sub_80AD080 thumb_func_start sub_80AD0C8 sub_80AD0C8: push {lr} adds r3, r1, 0 lsls r0, 16 asrs r0, 16 ldr r2, _080AD108 lsls r1, r0, 3 subs r1, r0 lsls r1, 4 adds r1, r0 lsls r1, 2 ldr r0, [r2] adds r2, r0, r1 movs r0, 0x6 ldrsh r1, [r2, r0] movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _080AD102 movs r1, 0x8E lsls r1, 1 adds r0, r2, r1 ldr r1, [r0] orrs r1, r3 str r1, [r0] movs r3, 0xA2 lsls r3, 1 adds r0, r2, r3 bl sub_80A6688 _080AD102: pop {r0} bx r0 .align 2, 0 _080AD108: .4byte gUnknown_3001B8C thumb_func_end sub_80AD0C8 thumb_func_start sub_80AD10C sub_80AD10C: push {r4,lr} adds r4, r1, 0 lsls r0, 16 asrs r0, 16 ldr r2, _080AD150 lsls r1, r0, 3 subs r1, r0 lsls r1, 4 adds r1, r0 lsls r1, 2 ldr r0, [r2] adds r3, r0, r1 movs r0, 0x6 ldrsh r1, [r3, r0] movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _080AD14A movs r0, 0x8E lsls r0, 1 adds r2, r3, r0 ldr r0, _080AD154 eors r0, r4 ldr r1, [r2] ands r1, r0 str r1, [r2] movs r2, 0xA2 lsls r2, 1 adds r0, r3, r2 bl sub_80A6688 _080AD14A: pop {r4} pop {r0} bx r0 .align 2, 0 _080AD150: .4byte gUnknown_3001B8C _080AD154: .4byte 0x337fffff thumb_func_end sub_80AD10C thumb_func_start sub_80AD158 sub_80AD158: push {lr} lsls r0, 16 asrs r0, 16 ldr r2, _080AD180 lsls r1, r0, 3 subs r1, r0 lsls r1, 4 adds r1, r0 lsls r1, 2 ldr r0, [r2] adds r2, r0, r1 movs r0, 0x6 ldrsh r1, [r2, r0] movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _080AD184 movs r0, 0 b _080AD188 .align 2, 0 _080AD180: .4byte gUnknown_3001B8C _080AD184: adds r0, r2, 0 adds r0, 0x38 _080AD188: pop {r1} bx r1 thumb_func_end sub_80AD158 thumb_func_start sub_80AD18C sub_80AD18C: push {r4,lr} adds r4, r1, 0 lsls r0, 16 asrs r0, 16 lsls r2, 16 asrs r3, r2, 16 ldr r2, _080AD1B8 lsls r1, r0, 3 subs r1, r0 lsls r1, 4 adds r1, r0 lsls r1, 2 ldr r0, [r2] adds r2, r0, r1 movs r0, 0x6 ldrsh r1, [r2, r0] movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _080AD1BC movs r0, 0 b _080AD1CC .align 2, 0 _080AD1B8: .4byte gUnknown_3001B8C _080AD1BC: adds r0, r2, 0 adds r0, 0x38 adds r1, r4, 0 adds r2, r3, 0 bl sub_809D6E4 lsls r0, 24 lsrs r0, 24 _080AD1CC: pop {r4} pop {r1} bx r1 thumb_func_end sub_80AD18C thumb_func_start sub_80AD1D4 sub_80AD1D4: push {r4-r6,lr} adds r3, r0, 0 adds r5, r1, 0 adds r6, r2, 0 lsls r3, 16 asrs r3, 16 ldr r1, _080AD20C lsls r0, r3, 3 subs r0, r3 lsls r0, 4 adds r0, r3 lsls r0, 2 ldr r1, [r1] adds r4, r1, r0 ldr r1, _080AD210 movs r0, 0 adds r2, r3, 0 bl Log movs r0, 0x6 ldrsh r1, [r4, r0] movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _080AD214 movs r0, 0 b _080AD22C .align 2, 0 _080AD20C: .4byte gUnknown_3001B8C _080AD210: .4byte gUnknown_81186F4 _080AD214: adds r0, r4, 0 adds r0, 0x38 ldr r3, _080AD234 adds r1, r5, 0 adds r2, r6, 0 bl sub_809D790 movs r0, 0x9E lsls r0, 1 adds r1, r4, r0 movs r0, 0x1 strb r0, [r1] _080AD22C: pop {r4-r6} pop {r1} bx r1 .align 2, 0 _080AD234: .4byte gUnknown_811872C thumb_func_end sub_80AD1D4 thumb_func_start sub_80AD238 sub_80AD238: push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 16 asrs r7, r0, 16 ldr r0, _080AD28C ldr r4, [r0] movs r5, 0 movs r0, 0x1 negs r0, r0 mov r8, r0 movs r6, 0x80 lsls r6, 9 _080AD252: movs r1, 0x6 ldrsh r0, [r4, r1] cmp r0, r8 beq _080AD26A adds r0, r4, 0 adds r0, 0x38 adds r1, r7, 0 bl sub_809D968 orrs r5, r0 lsls r0, r5, 24 lsrs r5, r0, 24 _080AD26A: adds r0, r6, 0 movs r1, 0x80 lsls r1, 9 adds r6, r1 asrs r0, 16 movs r1, 0xE2 lsls r1, 1 adds r4, r1 cmp r0, 0xF ble _080AD252 adds r0, r5, 0 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080AD28C: .4byte gUnknown_3001B8C thumb_func_end sub_80AD238 thumb_func_start sub_80AD290 sub_80AD290: push {r4-r7,lr} ldr r0, _080AD2D4 ldr r4, [r0] movs r5, 0 movs r7, 0x1 negs r7, r7 movs r6, 0x80 lsls r6, 9 _080AD2A0: movs r1, 0x6 ldrsh r0, [r4, r1] cmp r0, r7 beq _080AD2B6 adds r0, r4, 0 adds r0, 0x38 bl sub_809D92C orrs r5, r0 lsls r0, r5, 24 lsrs r5, r0, 24 _080AD2B6: adds r0, r6, 0 movs r1, 0x80 lsls r1, 9 adds r6, r1 asrs r0, 16 movs r1, 0xE2 lsls r1, 1 adds r4, r1 cmp r0, 0xF ble _080AD2A0 adds r0, r5, 0 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080AD2D4: .4byte gUnknown_3001B8C thumb_func_end sub_80AD290 thumb_func_start sub_80AD2D8 sub_80AD2D8: lsls r0, 16 asrs r0, 16 ldr r2, _080AD2F4 lsls r1, r0, 3 subs r1, r0 lsls r1, 4 adds r1, r0 lsls r1, 2 ldr r0, [r2] adds r0, r1 movs r1, 0x6 ldrsh r0, [r0, r1] bx lr .align 2, 0 _080AD2F4: .4byte gUnknown_3001B8C thumb_func_end sub_80AD2D8 thumb_func_start sub_80AD2F8 sub_80AD2F8: lsls r0, 16 asrs r0, 16 ldr r3, _080AD31C lsls r2, r0, 3 subs r2, r0 lsls r2, 4 adds r2, r0 lsls r2, 2 ldr r0, [r3] adds r0, r2 movs r3, 0x8E lsls r3, 1 adds r2, r0, r3 ldr r2, [r2] str r2, [r1] movs r1, 0x6 ldrsh r0, [r0, r1] bx lr .align 2, 0 _080AD31C: .4byte gUnknown_3001B8C thumb_func_end sub_80AD2F8 thumb_func_start sub_80AD320 sub_80AD320: push {lr} adds r3, r1, 0 lsls r0, 16 asrs r0, 16 ldr r2, _080AD34C lsls r1, r0, 3 subs r1, r0 lsls r1, 4 adds r1, r0 lsls r1, 2 ldr r0, [r2] adds r2, r0, r1 movs r0, 0x6 ldrsh r1, [r2, r0] movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _080AD350 movs r0, 0 str r0, [r3] str r0, [r3, 0x4] b _080AD358 .align 2, 0 _080AD34C: .4byte gUnknown_3001B8C _080AD350: ldr r0, [r2, 0xC] ldr r1, [r2, 0x10] str r0, [r3] str r1, [r3, 0x4] _080AD358: movs r1, 0x6 ldrsh r0, [r2, r1] pop {r1} bx r1 thumb_func_end sub_80AD320 thumb_func_start sub_80AD360 sub_80AD360: push {lr} adds r3, r1, 0 lsls r0, 16 asrs r0, 16 ldr r2, _080AD38C lsls r1, r0, 3 subs r1, r0 lsls r1, 4 adds r1, r0 lsls r1, 2 ldr r0, [r2] adds r2, r0, r1 movs r0, 0x6 ldrsh r1, [r2, r0] movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _080AD390 movs r0, 0 str r0, [r3] b _080AD3AA .align 2, 0 _080AD38C: .4byte gUnknown_3001B8C _080AD390: movs r1, 0x92 lsls r1, 1 adds r0, r2, r1 ldr r0, [r0] ldr r1, [r2, 0x14] adds r0, r1 str r0, [r3] movs r1, 0x94 lsls r1, 1 adds r0, r2, r1 ldr r0, [r0] ldr r1, [r2, 0x18] adds r0, r1 _080AD3AA: str r0, [r3, 0x4] movs r1, 0x6 ldrsh r0, [r2, r1] pop {r1} bx r1 thumb_func_end sub_80AD360 thumb_func_start sub_80AD3B4 sub_80AD3B4: push {r4,lr} lsls r0, 16 asrs r0, 16 ldr r3, _080AD3DC lsls r2, r0, 3 subs r2, r0 lsls r2, 4 adds r2, r0 lsls r2, 2 ldr r4, [r3] adds r4, r2 adds r0, r4, 0 bl sub_80AD3E0 movs r1, 0x6 ldrsh r0, [r4, r1] pop {r4} pop {r1} bx r1 .align 2, 0 _080AD3DC: .4byte gUnknown_3001B8C thumb_func_end sub_80AD3B4 thumb_func_start sub_80AD3E0 sub_80AD3E0: push {r4-r7,lr} mov r12, r0 ldr r3, [r1] ldr r2, [r0, 0x14] subs r6, r3, r2 ldr r1, [r1, 0x4] ldr r0, [r0, 0x18] subs r7, r1, r0 adds r4, r3, r2 adds r5, r1, r0 mov r1, r12 ldr r0, [r1, 0x28] cmp r6, r0 blt _080AD40E ldr r0, [r1, 0x30] cmp r4, r0 bge _080AD40E ldr r0, [r1, 0x2C] cmp r7, r0 blt _080AD40E ldr r0, [r1, 0x34] cmp r5, r0 blt _080AD412 _080AD40E: movs r0, 0x1 b _080AD428 _080AD412: movs r0, 0x92 lsls r0, 1 add r0, r12 str r6, [r0] str r7, [r0, 0x4] movs r0, 0x96 lsls r0, 1 add r0, r12 str r4, [r0] str r5, [r0, 0x4] movs r0, 0 _080AD428: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80AD3E0 thumb_func_start sub_80AD430 sub_80AD430: push {r4-r6,lr} mov r12, r0 movs r0, 0x92 lsls r0, 1 add r0, r12 ldr r0, [r0] ldr r2, [r1] adds r5, r0, r2 movs r0, 0x94 lsls r0, 1 add r0, r12 ldr r0, [r0] ldr r1, [r1, 0x4] adds r6, r0, r1 movs r0, 0x96 lsls r0, 1 add r0, r12 ldr r0, [r0] adds r3, r0, r2 movs r0, 0x98 lsls r0, 1 add r0, r12 ldr r0, [r0] adds r4, r0, r1 mov r0, r12 ldr r1, [r0, 0x28] cmp r5, r1 bge _080AD470 adds r5, r1, 0 ldr r0, [r0, 0xC] adds r3, r1, r0 b _080AD47E _080AD470: mov r2, r12 ldr r1, [r2, 0x30] cmp r3, r1 blt _080AD47E ldr r0, [r2, 0xC] subs r5, r1, r0 adds r3, r1, 0 _080AD47E: mov r0, r12 ldr r1, [r0, 0x2C] cmp r6, r1 bge _080AD48E adds r6, r1, 0 ldr r0, [r0, 0x10] adds r4, r1, r0 b _080AD49C _080AD48E: mov r2, r12 ldr r1, [r2, 0x34] cmp r4, r1 blt _080AD49C ldr r0, [r2, 0x10] subs r6, r1, r0 adds r4, r1, 0 _080AD49C: movs r0, 0x92 lsls r0, 1 add r0, r12 str r5, [r0] str r6, [r0, 0x4] movs r0, 0x96 lsls r0, 1 add r0, r12 str r3, [r0] str r4, [r0, 0x4] movs r0, 0 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80AD430 thumb_func_start sub_80AD4B8 sub_80AD4B8: movs r1, 0x4 ldrsh r0, [r0, r1] bx lr thumb_func_end sub_80AD4B8 thumb_func_start sub_80AD4C0 sub_80AD4C0: ldr r2, [r0, 0xC] ldr r3, [r0, 0x10] str r2, [r1] str r3, [r1, 0x4] bx lr thumb_func_end sub_80AD4C0 thumb_func_start sub_80AD4CC sub_80AD4CC: push {r4,lr} adds r3, r0, 0 adds r4, r1, 0 cmp r4, 0 beq _080AD50C movs r0, 0x92 lsls r0, 1 adds r2, r3, r0 ldr r1, [r4] ldr r0, [r3, 0x14] subs r0, r1, r0 str r0, [r2] movs r0, 0x96 lsls r0, 1 adds r2, r3, r0 ldr r0, [r3, 0x14] adds r1, r0 str r1, [r2] movs r0, 0x94 lsls r0, 1 adds r2, r3, r0 ldr r1, [r4, 0x4] ldr r0, [r3, 0x18] subs r0, r1, r0 str r0, [r2] movs r0, 0x98 lsls r0, 1 adds r2, r3, r0 ldr r0, [r3, 0x18] adds r1, r0 str r1, [r2] b _080AD572 _080AD50C: movs r0, 0x92 lsls r0, 1 adds r2, r3, r0 ldr r0, [r3, 0x20] ldr r1, [r3, 0x14] subs r0, r1 str r0, [r2] movs r0, 0x96 lsls r0, 1 adds r2, r3, r0 ldr r0, [r3, 0x20] ldr r1, [r3, 0x14] adds r0, r1 str r0, [r2] movs r0, 0x94 lsls r0, 1 adds r2, r3, r0 ldr r0, [r3, 0x24] ldr r1, [r3, 0x18] subs r0, r1 str r0, [r2] movs r0, 0x98 lsls r0, 1 adds r2, r3, r0 ldr r0, [r3, 0x24] ldr r1, [r3, 0x18] adds r0, r1 str r0, [r2] movs r2, 0x9A lsls r2, 1 adds r1, r3, r2 adds r2, 0x4 adds r0, r3, r2 str r4, [r0] str r4, [r1] movs r0, 0x90 lsls r0, 1 adds r2, r3, r0 movs r1, 0 ldrsb r1, [r2, r1] movs r0, 0x1C ldrsb r0, [r3, r0] cmp r1, r0 beq _080AD56E movs r0, 0x9E lsls r0, 1 adds r1, r3, r0 movs r0, 0x1 strb r0, [r1] _080AD56E: ldrb r0, [r3, 0x1C] strb r0, [r2] _080AD572: pop {r4} pop {r0} bx r0 thumb_func_end sub_80AD4CC thumb_func_start sub_80AD578 sub_80AD578: push {r4,lr} ldr r3, [r1] ldr r4, [r1, 0x4] str r3, [r0, 0x28] str r4, [r0, 0x2C] ldr r1, [r2] ldr r2, [r2, 0x4] str r1, [r0, 0x30] str r2, [r0, 0x34] pop {r4} pop {r0} bx r0 thumb_func_end sub_80AD578 thumb_func_start sub_80AD590 sub_80AD590: adds r3, r0, 0 movs r2, 0x92 lsls r2, 1 adds r0, r3, r2 ldr r0, [r0] ldr r2, [r3, 0x14] adds r0, r2 str r0, [r1] movs r2, 0x94 lsls r2, 1 adds r0, r3, r2 ldr r0, [r0] ldr r2, [r3, 0x18] adds r0, r2 str r0, [r1, 0x4] bx lr thumb_func_end sub_80AD590 thumb_func_start sub_80AD5B0 sub_80AD5B0: push {lr} bl sub_80AD3E0 pop {r1} bx r1 thumb_func_end sub_80AD5B0 thumb_func_start sub_80AD5BC sub_80AD5BC: push {r4,lr} adds r3, r0, 0 movs r4, 0x9A lsls r4, 1 adds r0, r3, r4 ldr r0, [r0] str r0, [r1] movs r1, 0x9C lsls r1, 1 adds r0, r3, r1 ldr r0, [r0] str r0, [r2] pop {r4} pop {r0} bx r0 thumb_func_end sub_80AD5BC thumb_func_start sub_80AD5DC sub_80AD5DC: movs r2, 0x9A lsls r2, 1 adds r0, r2 str r1, [r0] bx lr thumb_func_end sub_80AD5DC thumb_func_start sub_80AD5E8 sub_80AD5E8: movs r2, 0x90 lsls r2, 1 adds r0, r2 ldrb r0, [r0] strb r0, [r1] bx lr thumb_func_end sub_80AD5E8 thumb_func_start sub_80AD5F4 sub_80AD5F4: push {lr} adds r2, r0, 0 lsls r1, 24 asrs r1, 24 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _080AD60C movs r3, 0x90 lsls r3, 1 adds r0, r2, r3 strb r1, [r0] _080AD60C: pop {r0} bx r0 thumb_func_end sub_80AD5F4 thumb_func_start sub_80AD610 sub_80AD610: push {r4,r5,lr} lsls r1, 16 adds r3, r0, 0 movs r0, 0xFF lsls r0, 16 ands r0, r1 lsrs r0, 16 cmp r0, 0 beq _080AD630 ldr r1, _080AD62C lsls r0, 1 adds r0, r1 b _080AD636 .align 2, 0 _080AD62C: .4byte gUnknown_81185F2 _080AD630: movs r5, 0x9F lsls r5, 1 adds r0, r3, r5 _080AD636: movs r1, 0 ldrsh r2, [r0, r1] movs r5, 0x9F lsls r5, 1 adds r1, r3, r5 ldrh r4, [r1] movs r5, 0 ldrsh r0, [r1, r5] cmp r0, r2 beq _080AD654 strh r2, [r1] movs r0, 0x9E lsls r0, 1 adds r1, r3, r0 b _080AD664 _080AD654: movs r0, 0x80 lsls r0, 5 ands r0, r4 cmp r0, 0 beq _080AD668 movs r5, 0x9E lsls r5, 1 adds r1, r3, r5 _080AD664: movs r0, 0x1 strb r0, [r1] _080AD668: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80AD610 thumb_func_start sub_80AD670 sub_80AD670: push {lr} lsls r1, 16 asrs r1, 16 adds r2, r1, 0 cmp r1, 0 bne _080AD682 movs r1, 0xE0 lsls r1, 1 adds r2, r1, 0 _080AD682: movs r1, 0xA0 lsls r1, 1 adds r0, r1 strh r2, [r0] pop {r0} bx r0 thumb_func_end sub_80AD670 thumb_func_start sub_80AD690 sub_80AD690: push {lr} adds r1, r0, 0 movs r2, 0x9E lsls r2, 1 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 bne _080AD6AE adds r2, 0x8 adds r0, r1, r2 bl sub_80A66F8 lsls r0, 24 lsrs r0, 24 b _080AD6B0 _080AD6AE: movs r0, 0x1 _080AD6B0: pop {r1} bx r1 thumb_func_end sub_80AD690 thumb_func_start sub_80AD6B4 sub_80AD6B4: push {lr} adds r1, r0, 0 movs r2, 0xA0 lsls r2, 1 adds r0, r1, r2 movs r2, 0 ldrsh r0, [r0, r2] cmp r0, 0 bne _080AD6D6 movs r2, 0xA2 lsls r2, 1 adds r0, r1, r2 bl sub_80A671C lsls r0, 24 lsrs r0, 24 b _080AD6D8 _080AD6D6: movs r0, 0x1 _080AD6D8: pop {r1} bx r1 thumb_func_end sub_80AD6B4 thumb_func_start sub_80AD6DC sub_80AD6DC: movs r2, 0x8E lsls r2, 1 adds r0, r2 ldr r0, [r0] str r0, [r1] bx lr thumb_func_end sub_80AD6DC thumb_func_start sub_80AD6E8 sub_80AD6E8: push {lr} movs r2, 0x4 ldrsh r0, [r0, r2] bl sub_80AD0C8 pop {r0} bx r0 thumb_func_end sub_80AD6E8 thumb_func_start sub_80AD6F8 sub_80AD6F8: push {lr} movs r2, 0x4 ldrsh r0, [r0, r2] bl sub_80AD10C pop {r0} bx r0 thumb_func_end sub_80AD6F8 thumb_func_start sub_80AD708 sub_80AD708: push {lr} bl sub_80AD430 pop {r1} bx r1 thumb_func_end sub_80AD708 thumb_func_start sub_80AD714 sub_80AD714: push {r4-r7,lr} mov r7, r8 push {r7} ldr r0, _080AD754 ldr r5, [r0] movs r7, 0 movs r0, 0x1 negs r0, r0 mov r8, r0 movs r1, 0x9E lsls r1, 1 adds r6, r5, r1 _080AD72C: movs r3, 0x6 ldrsh r0, [r5, r3] cmp r0, r8 beq _080AD78A adds r4, r5, 0 adds r4, 0x38 adds r0, r4, 0 ldr r1, _080AD758 bl sub_809DA70 lsls r0, 16 asrs r0, 16 cmp r0, 0 beq _080AD75C cmp r0, 0x4 bne _080AD768 adds r0, r7, 0 bl sub_80AD080 b _080AD78A .align 2, 0 _080AD754: .4byte gUnknown_3001B8C _080AD758: .4byte gUnknown_811874C _080AD75C: adds r0, r4, 0 movs r1, 0 movs r2, 0x1 ldr r3, _080AD7A8 bl sub_809D8C0 _080AD768: ldrb r0, [r6] cmp r0, 0 beq _080AD78A movs r0, 0 strb r0, [r6] movs r1, 0xA2 lsls r1, 1 adds r0, r5, r1 ldrh r2, [r6, 0x2] movs r3, 0xF8 lsls r3, 5 adds r1, r3, 0 ands r1, r2 lsls r2, 24 asrs r2, 24 bl sub_80A6EFC _080AD78A: adds r0, r7, 0x1 lsls r0, 16 asrs r7, r0, 16 movs r0, 0xE2 lsls r0, 1 adds r6, r0 adds r5, r0 cmp r7, 0xF ble _080AD72C pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080AD7A8: .4byte gUnknown_8118758 thumb_func_end sub_80AD714 thumb_func_start sub_80AD7AC sub_80AD7AC: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x8 ldr r0, _080AD864 ldr r6, [r0] movs r0, 0 mov r8, r0 movs r1, 0x1 negs r1, r1 mov r9, r1 movs r2, 0x90 lsls r2, 1 adds r4, r6, r2 _080AD7CA: movs r0, 0x6 ldrsh r1, [r6, r0] mov r2, r9 lsls r0, r2, 16 asrs r0, 16 cmp r1, r0 beq _080AD83C ldr r0, [r4, 0x4] ldr r1, [r6, 0x14] adds r0, r1 str r0, [sp] ldr r0, [r4, 0x8] ldr r1, [r6, 0x18] adds r0, r1 str r0, [sp, 0x4] ldr r1, [r4, 0x14] ldr r0, [r4, 0x18] adds r7, r1, r0 movs r0, 0xA2 lsls r0, 1 adds r5, r6, r0 adds r0, r5, 0 bl sub_80A66D4 lsls r0, 24 cmp r0, 0 beq _080AD818 movs r0, 0 strb r0, [r4, 0x1C] ldrh r2, [r4, 0x1E] movs r0, 0xF8 lsls r0, 5 adds r1, r0, 0 ands r1, r2 lsls r2, 24 asrs r2, 24 adds r0, r5, 0 bl sub_80A6EFC _080AD818: movs r1, 0x20 ldrsh r0, [r4, r1] cmp r0, 0 beq _080AD832 adds r1, r0, 0 movs r2, 0 ldrsb r2, [r4, r2] adds r0, r5, 0 movs r3, 0 bl sub_80A7040 movs r0, 0 strh r0, [r4, 0x20] _080AD832: adds r0, r5, 0 mov r1, sp adds r2, r7, 0 bl sub_80A7720 _080AD83C: mov r0, r8 adds r0, 0x1 lsls r0, 16 asrs r0, 16 mov r8, r0 movs r0, 0xE2 lsls r0, 1 adds r4, r0 adds r6, r0 mov r1, r8 cmp r1, 0xF ble _080AD7CA add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080AD864: .4byte gUnknown_3001B8C thumb_func_end sub_80AD7AC thumb_func_start sub_80AD868 sub_80AD868: ldr r1, _080AD870 movs r0, 0 str r0, [r1] bx lr .align 2, 0 _080AD870: .4byte gUnknown_203B4B8 thumb_func_end sub_80AD868 thumb_func_start sub_80AD874 sub_80AD874: ldr r1, _080AD87C movs r0, 0 str r0, [r1] bx lr .align 2, 0 _080AD87C: .4byte gUnknown_203B4B8 thumb_func_end sub_80AD874 thumb_func_start sub_80AD880 sub_80AD880: push {lr} lsls r0, 16 asrs r0, 16 ldr r1, _080AD898 bl sub_80A77D0 ldr r1, _080AD89C ldr r0, [r0, 0x8] str r0, [r1] pop {r0} bx r0 .align 2, 0 _080AD898: .4byte gUnknown_8118798 _080AD89C: .4byte gUnknown_203B4B8 thumb_func_end sub_80AD880 thumb_func_start sub_80AD8A0 sub_80AD8A0: lsls r0, 16 ldr r1, _080AD8B0 asrs r0, 13 ldr r1, [r1] adds r1, r0 adds r0, r1, 0 bx lr .align 2, 0 _080AD8B0: .4byte gUnknown_203B4B8 thumb_func_end sub_80AD8A0 thumb_func_start sub_80AD8B4 sub_80AD8B4: push {r4,lr} adds r4, r1, 0 lsls r0, 16 ldr r1, _080AD910 asrs r0, 13 ldr r1, [r1] adds r2, r1, r0 ldrb r1, [r2, 0x2] movs r0, 0x4 ands r0, r1 cmp r0, 0 bne _080AD8E4 ldrb r0, [r2] lsls r3, r0, 11 str r3, [r4] ldrb r1, [r2, 0x2] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080AD8E4 movs r1, 0x80 lsls r1, 3 adds r0, r3, r1 str r0, [r4] _080AD8E4: ldrb r1, [r2, 0x3] movs r0, 0x4 ands r0, r1 cmp r0, 0 bne _080AD906 ldrb r0, [r2, 0x1] lsls r3, r0, 11 str r3, [r4, 0x4] ldrb r1, [r2, 0x3] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080AD906 movs r1, 0x80 lsls r1, 3 adds r0, r3, r1 str r0, [r4, 0x4] _080AD906: ldrb r0, [r2, 0x6] pop {r4} pop {r1} bx r1 .align 2, 0 _080AD910: .4byte gUnknown_203B4B8 thumb_func_end sub_80AD8B4 thumb_func_start sub_80AD914 sub_80AD914: push {r4,r5,lr} adds r4, r1, 0 adds r5, r2, 0 lsls r0, 16 ldr r1, _080AD98C asrs r0, 13 ldr r1, [r1] adds r2, r1, r0 ldr r0, [r3] ldr r1, [r3, 0x4] str r0, [r4] str r1, [r4, 0x4] ldrb r1, [r2, 0x2] movs r0, 0x4 ands r0, r1 cmp r0, 0 bne _080AD94E ldrb r0, [r2] lsls r3, r0, 11 str r3, [r4] ldrb r1, [r2, 0x2] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080AD94E movs r1, 0x80 lsls r1, 3 adds r0, r3, r1 str r0, [r4] _080AD94E: ldrb r1, [r2, 0x3] movs r0, 0x4 ands r0, r1 cmp r0, 0 bne _080AD970 ldrb r0, [r2, 0x1] lsls r3, r0, 11 str r3, [r4, 0x4] ldrb r1, [r2, 0x3] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080AD970 movs r1, 0x80 lsls r1, 3 adds r0, r3, r1 str r0, [r4, 0x4] _080AD970: ldrb r1, [r2, 0x4] lsls r1, 11 ldr r0, [r4] adds r0, r1 str r0, [r5] ldrb r1, [r2, 0x5] lsls r1, 11 ldr r0, [r4, 0x4] adds r0, r1 str r0, [r5, 0x4] ldrb r0, [r2, 0x6] pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080AD98C: .4byte gUnknown_203B4B8 thumb_func_end sub_80AD914 thumb_func_start sub_80AD990 sub_80AD990: push {r4,lr} ldr r4, _080AD9C8 movs r0, 0x80 lsls r0, 3 movs r1, 0x6 bl MemoryAlloc str r0, [r4] adds r1, r0, 0 ldr r0, _080AD9CC adds r4, r0, 0 movs r2, 0x80 lsls r2, 9 adds r3, r2, 0 _080AD9AC: ldrh r0, [r1, 0x2] orrs r0, r4 strh r0, [r1, 0x2] adds r0, r2, 0 adds r2, r3 asrs r0, 16 adds r1, 0x20 cmp r0, 0x1F ble _080AD9AC bl sub_80AD9D0 pop {r4} pop {r0} bx r0 .align 2, 0 _080AD9C8: .4byte gUnknown_3001B90 _080AD9CC: .4byte 0x0000ffff thumb_func_end sub_80AD990 thumb_func_start sub_80AD9D0 sub_80AD9D0: push {r4-r6,lr} ldr r0, _080ADA04 ldr r4, [r0] movs r1, 0 movs r6, 0x1 negs r6, r6 movs r5, 0x80 lsls r5, 9 _080AD9E0: movs r2, 0x2 ldrsh r0, [r4, r2] cmp r0, r6 beq _080AD9EE adds r0, r1, 0 bl sub_80ADC34 _080AD9EE: adds r0, r5, 0 movs r1, 0x80 lsls r1, 9 adds r5, r1 asrs r1, r0, 16 adds r4, 0x20 cmp r1, 0x1F ble _080AD9E0 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080ADA04: .4byte gUnknown_3001B90 thumb_func_end sub_80AD9D0 thumb_func_start sub_80ADA08 sub_80ADA08: push {r4,lr} bl sub_80AD9D0 ldr r4, _080ADA20 ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _080ADA20: .4byte gUnknown_3001B90 thumb_func_end sub_80ADA08 thumb_func_start sub_80ADA24 sub_80ADA24: push {r4-r7,lr} sub sp, 0x4 adds r4, r0, 0 lsls r4, 16 asrs r4, 16 lsls r1, 16 asrs r7, r1, 16 lsls r2, 24 asrs r6, r2, 24 ldr r1, _080ADA88 adds r0, r4, 0 bl sub_80A77D0 adds r5, r0, 0 ldr r1, _080ADA8C str r6, [sp] movs r0, 0 adds r2, r4, 0 adds r3, r7, 0 bl Log lsls r1, r7, 3 ldr r0, [r5, 0x4] adds r0, r1 lsls r1, r6, 2 adds r1, r6 lsls r1, 3 ldr r0, [r0, 0x4] adds r0, r1 ldr r5, [r0, 0x1C] ldr r0, [r0, 0x18] cmp r0, 0 ble _080ADA7E adds r4, r0, 0 _080ADA68: movs r0, 0x1 negs r0, r0 adds r1, r5, 0 adds r2, r7, 0 adds r3, r6, 0 bl sub_80ADB00 subs r4, 0x1 adds r5, 0xC cmp r4, 0 bne _080ADA68 _080ADA7E: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080ADA88: .4byte gUnknown_81187DC _080ADA8C: .4byte gUnknown_81187E8 thumb_func_end sub_80ADA24 thumb_func_start sub_80ADA90 sub_80ADA90: push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 16 asrs r7, r0, 16 lsls r1, 24 asrs r5, r1, 24 ldr r1, _080ADAF8 movs r0, 0 adds r2, r7, 0 adds r3, r5, 0 bl Log movs r1, 0 ldr r0, _080ADAFC ldr r4, [r0] movs r0, 0x1 negs r0, r0 mov r8, r0 movs r6, 0x80 lsls r6, 9 _080ADABA: movs r2, 0x2 ldrsh r0, [r4, r2] cmp r0, r8 beq _080ADADC movs r2, 0x4 ldrsh r0, [r4, r2] cmp r0, r7 bne _080ADADC cmp r5, 0 blt _080ADAD6 movs r0, 0x6 ldrsb r0, [r4, r0] cmp r0, r5 bne _080ADADC _080ADAD6: adds r0, r1, 0 bl sub_80ADC34 _080ADADC: adds r0, r6, 0 movs r1, 0x80 lsls r1, 9 adds r6, r1 asrs r1, r0, 16 adds r4, 0x20 cmp r1, 0x1F ble _080ADABA pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080ADAF8: .4byte gUnknown_811880C _080ADAFC: .4byte gUnknown_3001B90 thumb_func_end sub_80ADA90 thumb_func_start sub_80ADB00 sub_80ADB00: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x14 mov r8, r1 lsls r0, 16 asrs r7, r0, 16 lsls r2, 16 asrs r6, r2, 16 lsls r3, 24 asrs r3, 24 mov r9, r3 ldr r5, [r1, 0x8] cmp r7, 0 bge _080ADB60 ldr r0, _080ADB38 ldr r4, [r0] movs r2, 0 movs r0, 0x2 ldrsh r1, [r4, r0] movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _080ADB3C movs r7, 0 b _080ADB68 .align 2, 0 _080ADB38: .4byte gUnknown_3001B90 _080ADB3C: adds r0, r2, 0x1 lsls r0, 16 asrs r2, r0, 16 adds r4, 0x20 cmp r2, 0x1F bgt _080ADB56 movs r3, 0x2 ldrsh r1, [r4, r3] movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _080ADB3C adds r7, r2, 0 _080ADB56: cmp r7, 0 bge _080ADB68 movs r0, 0x1 negs r0, r0 b _080ADC24 _080ADB60: ldr r0, _080ADBA0 lsls r1, r7, 5 ldr r0, [r0] adds r4, r0, r1 _080ADB68: ldr r1, _080ADBA4 movs r0, 0 ldrsh r3, [r5, r0] str r6, [sp] mov r2, r9 str r2, [sp, 0x4] mov r2, r8 ldr r0, [r2, 0x8] ldr r0, [r0, 0x8] str r0, [sp, 0x8] movs r0, 0 adds r2, r7, 0 bl Log strh r7, [r4] ldrh r0, [r5] strh r0, [r4, 0x2] strh r6, [r4, 0x4] mov r3, r9 strb r3, [r4, 0x6] movs r6, 0x2 ldrsh r0, [r5, r6] cmp r0, 0x1 blt _080ADBA8 cmp r0, 0x2 bgt _080ADBA8 movs r0, 0x60 b _080ADBAA .align 2, 0 _080ADBA0: .4byte gUnknown_3001B90 _080ADBA4: .4byte gUnknown_8118828 _080ADBA8: movs r0, 0x20 _080ADBAA: str r0, [r4, 0x8] mov r3, r8 ldrb r0, [r3] lsls r1, r0, 11 ldrb r0, [r3, 0x1] lsls r2, r0, 11 mov r5, r8 adds r5, 0x4 add r6, sp, 0xC mov r12, r6 ldrb r6, [r5, 0x2] movs r0, 0x4 ands r0, r6 cmp r0, 0 bne _080ADBDE ldrb r0, [r3, 0x4] lsls r3, r0, 11 str r3, [sp, 0xC] movs r0, 0x2 ands r0, r6 cmp r0, 0 beq _080ADBDE movs r6, 0x80 lsls r6, 3 adds r0, r3, r6 str r0, [sp, 0xC] _080ADBDE: ldrb r6, [r5, 0x3] movs r0, 0x4 ands r0, r6 cmp r0, 0 bne _080ADC02 ldrb r0, [r5, 0x1] lsls r3, r0, 11 mov r0, r12 str r3, [r0, 0x4] movs r0, 0x2 ands r0, r6 cmp r0, 0 beq _080ADC02 movs r5, 0x80 lsls r5, 3 adds r0, r3, r5 mov r6, r12 str r0, [r6, 0x4] _080ADC02: ldr r0, [sp, 0xC] str r0, [r4, 0xC] ldr r0, [sp, 0xC] adds r0, r1 str r0, [r4, 0x14] ldr r0, [sp, 0x10] str r0, [r4, 0x10] ldr r0, [sp, 0x10] adds r0, r2 str r0, [r4, 0x18] mov r1, r8 ldr r0, [r1, 0x8] ldr r0, [r0, 0x8] str r0, [r4, 0x1C] bl sub_80A7A78 adds r0, r7, 0 _080ADC24: add sp, 0x14 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80ADB00 thumb_func_start sub_80ADC34 sub_80ADC34: push {r4,lr} adds r2, r0, 0 lsls r2, 16 asrs r2, 16 ldr r0, _080ADC58 lsls r1, r2, 5 ldr r4, [r0] adds r4, r1 ldr r1, _080ADC5C movs r0, 0 bl Log ldr r0, _080ADC60 strh r0, [r4, 0x2] pop {r4} pop {r0} bx r0 .align 2, 0 _080ADC58: .4byte gUnknown_3001B90 _080ADC5C: .4byte gUnknown_811886C _080ADC60: .4byte 0x0000ffff thumb_func_end sub_80ADC34 thumb_func_start sub_80ADC64 sub_80ADC64: push {lr} adds r3, r1, 0 lsls r0, 16 ldr r1, _080ADC84 asrs r0, 11 ldr r1, [r1] adds r2, r1, r0 movs r0, 0x2 ldrsh r1, [r2, r0] movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _080ADC88 movs r0, 0 b _080ADC9A .align 2, 0 _080ADC84: .4byte gUnknown_3001B90 _080ADC88: ldr r0, [r2, 0x1C] str r0, [r3] movs r0, 0x2 strh r0, [r3, 0x4] ldrh r0, [r2, 0x4] strh r0, [r3, 0x6] ldrb r0, [r2, 0x6] strb r0, [r3, 0x8] movs r0, 0x1 _080ADC9A: pop {r1} bx r1 thumb_func_end sub_80ADC64 thumb_func_start sub_80ADCA0 sub_80ADCA0: push {r4-r7,lr} adds r7, r0, 0 adds r4, r1, 0 ldr r0, _080ADCEC ldr r3, [r0] movs r5, 0 movs r0, 0x1 negs r0, r0 mov r12, r0 movs r6, 0x80 lsls r6, 9 _080ADCB6: movs r1, 0x2 ldrsh r0, [r3, r1] cmp r0, r12 beq _080ADCF0 ldr r0, [r3, 0x8] ands r0, r7 cmp r0, 0 beq _080ADCF0 ldr r1, [r3, 0xC] ldr r0, [r2] cmp r1, r0 bge _080ADCF0 ldr r1, [r3, 0x14] ldr r0, [r4] cmp r1, r0 ble _080ADCF0 ldr r1, [r3, 0x10] ldr r0, [r2, 0x4] cmp r1, r0 bge _080ADCF0 ldr r1, [r3, 0x18] ldr r0, [r4, 0x4] cmp r1, r0 ble _080ADCF0 adds r0, r5, 0 b _080ADD04 .align 2, 0 _080ADCEC: .4byte gUnknown_3001B90 _080ADCF0: adds r0, r6, 0 movs r1, 0x80 lsls r1, 9 adds r6, r1 asrs r5, r0, 16 adds r3, 0x20 cmp r5, 0x1F ble _080ADCB6 movs r0, 0x1 negs r0, r0 _080ADD04: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80ADCA0 thumb_func_start sub_80ADD0C sub_80ADD0C: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} mov r8, r0 adds r6, r1, 0 adds r5, r2, 0 ldr r0, _080ADD74 ldr r4, [r0] movs r7, 0 movs r0, 0x1 negs r0, r0 mov r9, r0 movs r1, 0x80 lsls r1, 9 mov r12, r1 _080ADD2C: movs r1, 0x2 ldrsh r0, [r4, r1] cmp r0, r9 beq _080ADD78 ldr r0, [r4, 0x8] mov r1, r8 ands r0, r1 cmp r0, 0 beq _080ADD78 ldr r0, [r4, 0xC] ldr r1, [r4, 0x14] adds r0, r1 lsrs r1, r0, 31 adds r0, r1 asrs r2, r0, 1 ldr r0, [r4, 0x10] ldr r1, [r4, 0x18] adds r0, r1 lsrs r1, r0, 31 adds r0, r1 asrs r3, r0, 1 ldr r0, [r5] cmp r2, r0 bge _080ADD78 ldr r0, [r6] cmp r2, r0 ble _080ADD78 ldr r0, [r5, 0x4] cmp r3, r0 bge _080ADD78 ldr r0, [r6, 0x4] cmp r3, r0 ble _080ADD78 adds r0, r7, 0 b _080ADD8C .align 2, 0 _080ADD74: .4byte gUnknown_3001B90 _080ADD78: mov r0, r12 movs r1, 0x80 lsls r1, 9 add r12, r1 asrs r7, r0, 16 adds r4, 0x20 cmp r7, 0x1F ble _080ADD2C movs r0, 0x1 negs r0, r0 _080ADD8C: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80ADD0C thumb_func_start nullsub_124 nullsub_124: bx lr thumb_func_end nullsub_124 thumb_func_start sub_80ADD9C sub_80ADD9C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x30 str r0, [sp, 0x20] str r1, [sp, 0x24] str r2, [sp, 0x28] str r3, [sp, 0x2C] ldr r5, [sp, 0x54] ldr r0, [sp, 0x5C] mov r9, r0 movs r0, 0x93 lsls r0, 4 movs r1, 0x7 bl MemoryAlloc mov r10, r0 ldr r0, _080ADEB4 ldr r7, _080ADEB8 adds r1, r7, 0 bl OpenFileAndGetFileDataPtr adds r6, r0, 0 add r4, sp, 0x1C adds r0, r4, 0 adds r1, r5, 0 bl sub_80901D8 ldrb r5, [r4] ldrb r4, [r4, 0x1] cmp r5, 0x3E bls _080ADDE2 movs r5, 0x3E _080ADDE2: cmp r4, 0 bgt _080ADDE8 movs r4, 0x1 _080ADDE8: adds r0, r5, 0 bl sub_8090298 cmp r4, r0 blt _080ADDFA adds r0, r5, 0 bl sub_8090298 subs r4, r0, 0x1 _080ADDFA: ldr r2, [r6, 0x4] ldr r1, [r2] lsls r0, r5, 2 adds r0, r1 lsls r1, r4, 4 ldr r0, [r0] adds r0, r1 movs r3, 0 ldrsh r1, [r0, r3] ldr r2, [r2, 0x4] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x2] mov r8, r0 adds r0, r6, 0 bl CloseFile ldr r1, _080ADEBC ldr r0, _080ADEC0 add r0, r8 ldrb r5, [r0] add r0, sp, 0x10 adds r2, r5, 0 bl sprintf add r0, sp, 0x10 adds r1, r7, 0 bl OpenFileAndGetFileDataPtr adds r4, r0, 0 ldr r0, [sp, 0x28] movs r1, 0 adds r2, r4, 0 bl sub_800AE28 adds r0, r4, 0 bl CloseFile ldr r1, _080ADEC4 add r0, sp, 0x10 mov r2, r8 bl sprintf add r0, sp, 0x10 adds r1, r7, 0 bl OpenFile ldr r1, [sp, 0x20] str r0, [r1] ldr r1, _080ADEC8 add r0, sp, 0x10 adds r2, r5, 0 bl sprintf add r0, sp, 0x10 adds r1, r7, 0 bl OpenFileAndGetFileDataPtr adds r4, r0, 0 ldr r1, _080ADECC ldr r0, [sp, 0x2C] adds r2, r4, 0 bl sub_800AAA8 adds r0, r4, 0 bl CloseFile mov r2, r8 cmp r2, 0x3F bgt _080ADED4 ldr r1, _080ADED0 add r0, sp, 0x10 adds r2, r5, 0 bl sprintf add r0, sp, 0x10 adds r1, r7, 0 bl OpenFileAndGetFileDataPtr adds r4, r0, 0 mov r0, r10 movs r1, 0x93 lsls r1, 4 adds r2, r4, 0 bl sub_800AAA8 adds r0, r4, 0 bl CloseFile b _080ADEFC .align 2, 0 _080ADEB4: .4byte gUnknown_8118890 _080ADEB8: .4byte gUnknown_83B0000 _080ADEBC: .4byte gUnknown_811889C _080ADEC0: .4byte gUnknown_8108EC0 _080ADEC4: .4byte gUnknown_81188A8 _080ADEC8: .4byte gUnknown_81188B4 _080ADECC: .4byte 0x00001194 _080ADED0: .4byte gUnknown_81188C0 _080ADED4: ldr r1, _080ADF80 add r0, sp, 0x10 mov r2, r8 ldr r3, [sp, 0x58] bl sprintf add r0, sp, 0x10 adds r1, r7, 0 bl OpenFileAndGetFileDataPtr adds r4, r0, 0 movs r1, 0x90 lsls r1, 2 mov r0, r10 adds r2, r4, 0 bl sub_800AAA8 adds r0, r4, 0 bl CloseFile _080ADEFC: movs r5, 0 ldr r3, [sp, 0x60] cmp r5, r3 bge _080ADF52 _080ADF04: mov r0, r8 bl sub_8097F40 lsls r0, 24 movs r7, 0 cmp r0, 0 beq _080ADF14 movs r7, 0x3 _080ADF14: movs r4, 0 adds r6, r5, 0x1 cmp r4, r9 bge _080ADF4A _080ADF1C: ldr r0, [sp, 0x64] str r0, [sp] str r7, [sp, 0x4] mov r1, r10 str r1, [sp, 0x8] mov r2, r8 str r2, [sp, 0xC] adds r0, r4, 0 adds r1, r5, 0 mov r2, r9 ldr r3, [sp, 0x60] bl sub_80ADFB8 mov r1, r9 muls r1, r5 adds r1, r4 lsls r1, 1 ldr r3, [sp, 0x50] adds r1, r3 strh r0, [r1] adds r4, 0x1 cmp r4, r9 blt _080ADF1C _080ADF4A: adds r5, r6, 0 ldr r0, [sp, 0x60] cmp r5, r0 blt _080ADF04 _080ADF52: ldr r1, _080ADF84 add r0, sp, 0x10 mov r2, r8 bl sprintf ldr r1, _080ADF88 add r0, sp, 0x10 bl OpenFile ldr r1, [sp, 0x24] str r0, [r1] mov r0, r10 bl MemoryFree add sp, 0x30 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080ADF80: .4byte gUnknown_81188CC _080ADF84: .4byte gUnknown_81188DC _080ADF88: .4byte gUnknown_83B0000 thumb_func_end sub_80ADD9C thumb_func_start sub_80ADF8C sub_80ADF8C: push {r4,lr} adds r4, r0, 0 ldr r0, [sp, 0xC] cmp r4, 0 blt _080ADFB0 cmp r1, 0 blt _080ADFB0 cmp r4, r2 bge _080ADFB0 cmp r1, r3 bge _080ADFB0 adds r0, r1, 0 muls r0, r2 adds r0, r4, r0 lsls r0, 1 ldr r1, [sp, 0x8] adds r0, r1 ldrh r0, [r0] _080ADFB0: pop {r4} pop {r1} bx r1 thumb_func_end sub_80ADF8C thumb_func_start sub_80ADFB8 sub_80ADFB8: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x30 mov r9, r0 mov r10, r1 adds r6, r2, 0 mov r8, r3 ldr r4, [sp, 0x5C] movs r7, 0 ldr r0, [sp, 0x50] str r0, [sp] ldr r1, [sp, 0x54] str r1, [sp, 0x4] mov r0, r9 mov r1, r10 bl sub_80ADF8C str r0, [sp, 0x28] cmp r4, 0x3F ble _080AE000 mov r0, r9 cmp r0, 0x17 bgt _080ADFFC mov r1, r10 cmp r1, 0x17 bgt _080ADFFC lsls r0, r1, 1 add r0, r10 lsls r0, 3 add r0, r9 b _080AE24E _080ADFFC: ldr r0, [sp, 0x54] b _080AE254 _080AE000: mov r0, r10 adds r0, 0x1 str r0, [sp, 0x2C] ldr r1, [sp, 0x50] str r1, [sp] ldr r0, [sp, 0x54] str r0, [sp, 0x4] mov r0, r9 ldr r1, [sp, 0x2C] adds r2, r6, 0 mov r3, r8 bl sub_80ADF8C str r0, [sp, 0x8] mov r4, r9 adds r4, 0x1 ldr r1, [sp, 0x50] str r1, [sp] ldr r0, [sp, 0x54] str r0, [sp, 0x4] adds r0, r4, 0 ldr r1, [sp, 0x2C] adds r2, r6, 0 mov r3, r8 bl sub_80ADF8C str r0, [sp, 0xC] ldr r1, [sp, 0x50] str r1, [sp] ldr r0, [sp, 0x54] str r0, [sp, 0x4] adds r0, r4, 0 mov r1, r10 adds r2, r6, 0 mov r3, r8 bl sub_80ADF8C str r0, [sp, 0x10] mov r5, r10 subs r5, 0x1 ldr r1, [sp, 0x50] str r1, [sp] ldr r0, [sp, 0x54] str r0, [sp, 0x4] adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 mov r3, r8 bl sub_80ADF8C str r0, [sp, 0x14] ldr r1, [sp, 0x50] str r1, [sp] ldr r0, [sp, 0x54] str r0, [sp, 0x4] mov r0, r9 adds r1, r5, 0 adds r2, r6, 0 mov r3, r8 bl sub_80ADF8C str r0, [sp, 0x18] subs r4, 0x2 ldr r1, [sp, 0x50] str r1, [sp] ldr r0, [sp, 0x54] str r0, [sp, 0x4] adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 mov r3, r8 bl sub_80ADF8C str r0, [sp, 0x1C] ldr r1, [sp, 0x50] str r1, [sp] ldr r0, [sp, 0x54] str r0, [sp, 0x4] adds r0, r4, 0 mov r1, r10 adds r2, r6, 0 mov r3, r8 bl sub_80ADF8C str r0, [sp, 0x20] ldr r1, [sp, 0x50] str r1, [sp] ldr r0, [sp, 0x54] str r0, [sp, 0x4] adds r0, r4, 0 ldr r1, [sp, 0x2C] adds r2, r6, 0 mov r3, r8 bl sub_80ADF8C adds r1, r0, 0 str r1, [sp, 0x24] ldr r0, [sp, 0x28] cmp r0, 0x1 bne _080AE12A movs r7, 0xFF ldr r0, [sp, 0x8] cmp r0, 0 bne _080AE0D2 movs r7, 0xFE _080AE0D2: ldr r0, [sp, 0xC] cmp r0, 0 bne _080AE0DE movs r0, 0x3 negs r0, r0 ands r7, r0 _080AE0DE: ldr r0, [sp, 0x10] cmp r0, 0 bne _080AE0EA movs r0, 0x5 negs r0, r0 ands r7, r0 _080AE0EA: ldr r0, [sp, 0x14] cmp r0, 0 bne _080AE0F6 movs r0, 0x9 negs r0, r0 ands r7, r0 _080AE0F6: ldr r0, [sp, 0x18] cmp r0, 0 bne _080AE102 movs r0, 0x11 negs r0, r0 ands r7, r0 _080AE102: ldr r0, [sp, 0x1C] cmp r0, 0 bne _080AE10E movs r0, 0x21 negs r0, r0 ands r7, r0 _080AE10E: ldr r0, [sp, 0x20] cmp r0, 0 bne _080AE11A movs r0, 0x41 negs r0, r0 ands r7, r0 _080AE11A: cmp r1, 0 bne _080AE124 movs r0, 0x81 negs r0, r0 ands r7, r0 _080AE124: movs r0, 0x80 lsls r0, 2 b _080AE248 _080AE12A: ldr r0, [sp, 0x28] cmp r0, 0x2 bne _080AE192 movs r7, 0xFF ldr r0, [sp, 0x8] cmp r0, 0x2 beq _080AE13A movs r7, 0xFE _080AE13A: ldr r0, [sp, 0xC] cmp r0, 0x2 beq _080AE146 movs r0, 0x3 negs r0, r0 ands r7, r0 _080AE146: ldr r0, [sp, 0x10] cmp r0, 0x2 beq _080AE152 movs r0, 0x5 negs r0, r0 ands r7, r0 _080AE152: ldr r0, [sp, 0x14] cmp r0, 0x2 beq _080AE15E movs r0, 0x9 negs r0, r0 ands r7, r0 _080AE15E: ldr r0, [sp, 0x18] cmp r0, 0x2 beq _080AE16A movs r0, 0x11 negs r0, r0 ands r7, r0 _080AE16A: ldr r0, [sp, 0x1C] cmp r0, 0x2 beq _080AE176 movs r0, 0x21 negs r0, r0 ands r7, r0 _080AE176: ldr r0, [sp, 0x20] cmp r0, 0x2 beq _080AE182 movs r0, 0x41 negs r0, r0 ands r7, r0 _080AE182: cmp r1, 0x2 beq _080AE18C movs r0, 0x81 negs r0, r0 ands r7, r0 _080AE18C: movs r0, 0x80 lsls r0, 1 b _080AE248 _080AE192: ldr r1, [sp, 0x28] cmp r1, 0x3 bne _080AE1FC movs r7, 0xFF ldr r0, [sp, 0x8] cmp r0, 0x3 beq _080AE1A2 movs r7, 0xFE _080AE1A2: ldr r0, [sp, 0xC] cmp r0, 0x3 beq _080AE1AE movs r0, 0x3 negs r0, r0 ands r7, r0 _080AE1AE: ldr r0, [sp, 0x10] cmp r0, 0x3 beq _080AE1BA movs r0, 0x5 negs r0, r0 ands r7, r0 _080AE1BA: ldr r0, [sp, 0x14] cmp r0, 0x3 beq _080AE1C6 movs r0, 0x9 negs r0, r0 ands r7, r0 _080AE1C6: ldr r0, [sp, 0x18] cmp r0, 0x3 beq _080AE1D2 movs r0, 0x11 negs r0, r0 ands r7, r0 _080AE1D2: ldr r0, [sp, 0x1C] cmp r0, 0x3 beq _080AE1DE movs r0, 0x21 negs r0, r0 ands r7, r0 _080AE1DE: ldr r0, [sp, 0x20] cmp r0, 0x3 beq _080AE1EA movs r0, 0x41 negs r0, r0 ands r7, r0 _080AE1EA: ldr r0, [sp, 0x24] cmp r0, 0x3 beq _080AE1F6 movs r0, 0x81 negs r0, r0 ands r7, r0 _080AE1F6: movs r0, 0x80 lsls r0, 1 b _080AE248 _080AE1FC: ldr r0, [sp, 0x8] cmp r0, 0 bne _080AE204 movs r7, 0x1 _080AE204: ldr r0, [sp, 0xC] cmp r0, 0 bne _080AE20E movs r0, 0x2 orrs r7, r0 _080AE20E: ldr r0, [sp, 0x10] cmp r0, 0 bne _080AE218 movs r0, 0x4 orrs r7, r0 _080AE218: ldr r0, [sp, 0x14] cmp r0, 0 bne _080AE222 movs r0, 0x8 orrs r7, r0 _080AE222: ldr r0, [sp, 0x18] cmp r0, 0 bne _080AE22C movs r0, 0x10 orrs r7, r0 _080AE22C: ldr r0, [sp, 0x1C] cmp r0, 0 bne _080AE236 movs r0, 0x20 orrs r7, r0 _080AE236: ldr r0, [sp, 0x20] cmp r0, 0 bne _080AE240 movs r0, 0x40 orrs r7, r0 _080AE240: ldr r0, [sp, 0x24] cmp r0, 0 bne _080AE24A movs r0, 0x80 _080AE248: orrs r7, r0 _080AE24A: lsls r0, r7, 1 adds r0, r7 _080AE24E: ldr r1, [sp, 0x58] adds r0, r1, r0 ldrb r0, [r0] _080AE254: add sp, 0x30 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80ADFB8 .align 2, 0 @ Don't pad with nop.