.include "constants/gba_constants.inc" .include "asm/macros.inc" .syntax unified .text 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 gFileCache + 0x110 _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 gTeamName _08014E40: ldr r0, _08014E4C ldr r1, _08014E50 bl strcpy _08014E48: ldr r4, _08014E4C b _08014F0E .align 2, 0 _08014E4C: .4byte gTeamName _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 ResetSprites 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 ResetSprites 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 ResetSprites 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 gPlayerName _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 ResetSprites 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 .align 2, 0 @ Don't pad with nop.